├── .firebaserc ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── firebase-hosting-merge.yml │ ├── firebase-hosting-pull-request.yml │ └── github-auto-tag.yml ├── .gitignore ├── .idea └── runConfigurations │ └── main_dart.xml ├── .metadata ├── .vscode └── launch.json ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── development │ │ ├── ic_launcher-playstore.png │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ └── ic_launcher_background.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-playstore.png │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── verygoodcore │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launch_image.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── ic_launcher_background.xml │ │ │ └── styles.xml │ │ ├── profile │ │ └── AndroidManifest.xml │ │ └── staging │ │ ├── ic_launcher-playstore.png │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ └── ic_launcher_background.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets └── shared │ ├── bus_rotation--example.gif │ └── z_cubic_text--example.gif ├── codemagic.yaml ├── coverage_badge.svg ├── firebase.json ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ ├── Runner.xcscheme │ │ ├── development.xcscheme │ │ ├── production.xcscheme │ │ └── staging.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon-dev.appiconset │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 128.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 16.png │ │ ├── 167.png │ │ ├── 172.png │ │ ├── 180.png │ │ ├── 196.png │ │ ├── 20.png │ │ ├── 216.png │ │ ├── 256.png │ │ ├── 29.png │ │ ├── 32.png │ │ ├── 40.png │ │ ├── 48.png │ │ ├── 50.png │ │ ├── 512.png │ │ ├── 55.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 64.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ ├── 88.png │ │ └── Contents.json │ ├── AppIcon-stg.appiconset │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 128.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 16.png │ │ ├── 167.png │ │ ├── 172.png │ │ ├── 180.png │ │ ├── 196.png │ │ ├── 20.png │ │ ├── 216.png │ │ ├── 256.png │ │ ├── 29.png │ │ ├── 32.png │ │ ├── 40.png │ │ ├── 48.png │ │ ├── 50.png │ │ ├── 512.png │ │ ├── 55.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 64.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ ├── 88.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 128.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 16.png │ │ ├── 167.png │ │ ├── 172.png │ │ ├── 180.png │ │ ├── 196.png │ │ ├── 20.png │ │ ├── 216.png │ │ ├── 256.png │ │ ├── 29.png │ │ ├── 32.png │ │ ├── 40.png │ │ ├── 48.png │ │ ├── 50.png │ │ ├── 512.png │ │ ├── 55.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 64.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ ├── 88.png │ │ └── Contents.json │ ├── Contents.json │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage@1x.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h ├── l10n.yaml ├── lib ├── app │ ├── app.dart │ └── view │ │ └── app.dart ├── bootstrap.dart ├── firebase_options.dart ├── l10n │ ├── arb │ │ ├── app_en.arb │ │ └── app_es.arb │ └── l10n.dart ├── main.dart ├── main_development.dart ├── main_production.dart ├── main_profile.dart ├── main_staging.dart ├── puzzle │ ├── bloc │ │ ├── puzzle_bloc.dart │ │ ├── puzzle_event.dart │ │ └── puzzle_state.dart │ ├── puzzle.dart │ ├── view │ │ ├── puzzle_page.dart │ │ ├── puzzle_view.dart │ │ ├── puzzle_z_finish_view.dart │ │ ├── puzzle_z_setup_view.dart │ │ └── view.dart │ └── widgets │ │ ├── fireworks.dart │ │ ├── perspective_segmented_control.dart │ │ ├── puzzle_timer.dart │ │ ├── scoreboard.dart │ │ ├── timer_handler.dart │ │ ├── tutorial_button.dart │ │ ├── widgets.dart │ │ ├── ztext │ │ ├── zgame_title.dart │ │ ├── zplay_text.dart │ │ ├── zshare_text.dart │ │ ├── ztext.dart │ │ └── zwon_text.dart │ │ └── zwidgets │ │ ├── zarrow.dart │ │ ├── zclouds.dart │ │ ├── zpuzzle_timer.dart │ │ ├── zscore_board.dart │ │ └── zwidgets.dart ├── timer │ ├── bloc │ │ ├── timer_bloc.dart │ │ ├── timer_event.dart │ │ └── timer_state.dart │ ├── model │ │ └── ticker.dart │ └── timer.dart └── vehicle │ ├── bloc │ ├── vehicle_bloc.dart │ ├── vehicle_event.dart │ └── vehicle_state.dart │ ├── vehicle.dart │ └── widgets │ ├── vehicle_content.dart │ ├── vehicle_hit_box.dart │ ├── vehicle_view.dart │ └── widgets.dart ├── linux ├── .gitignore ├── CMakeLists.txt ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake ├── main.cc ├── my_application.cc └── my_application.h ├── macos ├── .gitignore ├── Flutter │ ├── Flutter-Debug.xcconfig │ ├── Flutter-Release.xcconfig │ └── GeneratedPluginRegistrant.swift ├── Podfile ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── app_icon_1024.png │ │ ├── app_icon_128.png │ │ ├── app_icon_16.png │ │ ├── app_icon_256.png │ │ ├── app_icon_32.png │ │ ├── app_icon_512.png │ │ └── app_icon_64.png │ ├── Base.lproj │ └── MainMenu.xib │ ├── Configs │ ├── AppInfo.xcconfig │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── Warnings.xcconfig │ ├── DebugProfile.entitlements │ ├── Info.plist │ ├── MainFlutterWindow.swift │ └── Release.entitlements ├── packages ├── fireworks │ ├── .gitignore │ ├── .metadata │ ├── LICENSE │ ├── analysis_options.yaml │ ├── lib │ │ ├── fireworks.dart │ │ └── src │ │ │ ├── foundation │ │ │ ├── controller.dart │ │ │ ├── object.dart │ │ │ ├── particle.dart │ │ │ └── rocket.dart │ │ │ ├── rendering │ │ │ └── fireworks.dart │ │ │ └── widgets │ │ │ └── fireworks.dart │ └── pubspec.yaml ├── puzzle_models │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── lib │ │ ├── puzzle_models.dart │ │ └── src │ │ │ └── models │ │ │ ├── driving_boundary.dart │ │ │ ├── models.dart │ │ │ ├── position.dart │ │ │ ├── position.g.dart │ │ │ ├── puzzle_difficulty.dart │ │ │ ├── rush_puzzle.dart │ │ │ ├── rush_puzzle.g.dart │ │ │ ├── steering.dart │ │ │ ├── vehicle.dart │ │ │ ├── vehicle.g.dart │ │ │ └── vehicle_type.dart │ ├── pubspec.yaml │ └── test │ │ └── src │ │ └── models │ │ ├── driving_boundary_test.dart │ │ ├── position_test.dart │ │ ├── rush_puzzle_test.dart │ │ ├── steering_test.dart │ │ ├── vehicle_test.dart │ │ └── vehicle_type_test.dart ├── puzzles_repository │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── assets │ │ ├── 1.json │ │ ├── 10.json │ │ ├── 11.json │ │ ├── 12.json │ │ ├── 13.json │ │ ├── 14.json │ │ ├── 15.json │ │ ├── 16.json │ │ ├── 17.json │ │ ├── 18.json │ │ ├── 19.json │ │ ├── 2.json │ │ ├── 20.json │ │ ├── 21.json │ │ ├── 22.json │ │ ├── 23.json │ │ ├── 24.json │ │ ├── 25.json │ │ ├── 26.json │ │ ├── 27.json │ │ ├── 28.json │ │ ├── 29.json │ │ ├── 3.json │ │ ├── 30.json │ │ ├── 31.json │ │ ├── 32.json │ │ ├── 33.json │ │ ├── 34.json │ │ ├── 35.json │ │ ├── 36.json │ │ ├── 37.json │ │ ├── 38.json │ │ ├── 39.json │ │ ├── 4.json │ │ ├── 40.json │ │ ├── 5.json │ │ ├── 6.json │ │ ├── 7.json │ │ ├── 8.json │ │ ├── 9.json │ │ └── base.json │ ├── lib │ │ ├── puzzles_repository.dart │ │ └── src │ │ │ └── puzzles_repository.dart │ ├── pubspec.yaml │ ├── test │ │ └── src │ │ │ └── puzzles_repository_test.dart │ └── tool │ │ └── verify.dart ├── z_cubic_text │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── example │ │ ├── .gitignore │ │ ├── .metadata │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── android │ │ │ ├── .gitignore │ │ │ ├── app │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ ├── debug │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ ├── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v21 │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── values-night │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── values │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── profile │ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ └── gradle-wrapper.properties │ │ │ └── settings.gradle │ │ ├── ios │ │ │ ├── .gitignore │ │ │ ├── Flutter │ │ │ │ ├── AppFrameworkInfo.plist │ │ │ │ ├── Debug.xcconfig │ │ │ │ └── Release.xcconfig │ │ │ ├── Runner.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ │ └── xcshareddata │ │ │ │ │ └── xcschemes │ │ │ │ │ └── Runner.xcscheme │ │ │ ├── Runner.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── Runner │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ │ └── LaunchImage.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchImage.png │ │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ │ └── README.md │ │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ │ ├── Info.plist │ │ │ │ └── Runner-Bridging-Header.h │ │ ├── lib │ │ │ ├── example_strings.dart │ │ │ └── main.dart │ │ ├── pubspec.yaml │ │ ├── test │ │ │ └── widget_test.dart │ │ ├── web │ │ │ ├── favicon.png │ │ │ ├── icons │ │ │ │ ├── Icon-192.png │ │ │ │ ├── Icon-512.png │ │ │ │ ├── Icon-maskable-192.png │ │ │ │ └── Icon-maskable-512.png │ │ │ ├── index.html │ │ │ └── manifest.json │ │ └── windows │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── flutter │ │ │ ├── CMakeLists.txt │ │ │ ├── generated_plugin_registrant.cc │ │ │ ├── generated_plugin_registrant.h │ │ │ └── generated_plugins.cmake │ │ │ └── runner │ │ │ ├── CMakeLists.txt │ │ │ ├── Runner.rc │ │ │ ├── flutter_window.cpp │ │ │ ├── flutter_window.h │ │ │ ├── main.cpp │ │ │ ├── resource.h │ │ │ ├── resources │ │ │ └── app_icon.ico │ │ │ ├── runner.exe.manifest │ │ │ ├── utils.cpp │ │ │ ├── utils.h │ │ │ ├── win32_window.cpp │ │ │ └── win32_window.h │ ├── lib │ │ ├── src │ │ │ ├── shapes │ │ │ │ ├── shapes.dart │ │ │ │ ├── z_cube.dart │ │ │ │ ├── z_l_shape.dart │ │ │ │ ├── z_slab.dart │ │ │ │ └── z_text_shape.dart │ │ │ ├── z_alphabet_data.dart │ │ │ ├── z_char.dart │ │ │ ├── z_cubic_text.dart │ │ │ └── z_cubic_text_style.dart │ │ └── z_cubic_text.dart │ └── pubspec.yaml ├── zclouds │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── lib │ │ ├── src │ │ │ ├── zcloud.dart │ │ │ ├── zcloud_style.dart │ │ │ ├── zcloud_type.dart │ │ │ └── zcumulus.dart │ │ └── zclouds.dart │ ├── pubspec.yaml │ └── test │ │ └── src │ │ └── zcloud_test.dart ├── zcomponents │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── lib │ │ ├── src │ │ │ ├── rect │ │ │ │ ├── bounding_box.dart │ │ │ │ ├── game_layout.dart │ │ │ │ └── rect.dart │ │ │ ├── utils │ │ │ │ ├── matrix_from_transformation.dart │ │ │ │ ├── utils.dart │ │ │ │ ├── zposition_tween.dart │ │ │ │ └── zvector_tween.dart │ │ │ └── widgets │ │ │ │ ├── debug_game.dart │ │ │ │ ├── widgets.dart │ │ │ │ ├── zboard.dart │ │ │ │ ├── zbounding_box.dart │ │ │ │ ├── zdebug_bounding_box.dart │ │ │ │ ├── zgame.dart │ │ │ │ ├── zgame_theme.dart │ │ │ │ ├── zhit_box.dart │ │ │ │ ├── zinteraction.dart │ │ │ │ ├── zposition_tracker.dart │ │ │ │ └── ztile.dart │ │ └── zcomponents.dart │ ├── pubspec.yaml │ └── test │ │ └── src │ │ ├── rect │ │ ├── bounding_box_test.dart │ │ └── game_layout_test.dart │ │ └── widgets │ │ └── debug_game_test.dart └── zvehicles │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── example │ ├── .gitignore │ ├── .metadata │ ├── README.md │ ├── analysis_options.yaml │ ├── android │ │ ├── .gitignore │ │ ├── app │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ ├── debug │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── kotlin │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── example │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── res │ │ │ │ │ ├── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── values-night │ │ │ │ │ └── styles.xml │ │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ │ └── profile │ │ │ │ └── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ └── settings.gradle │ ├── ios │ │ ├── .gitignore │ │ ├── Flutter │ │ │ ├── AppFrameworkInfo.plist │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Runner.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── Runner.xcscheme │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── Runner │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── LaunchImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ └── README.md │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ └── Runner-Bridging-Header.h │ ├── lib │ │ ├── main.dart │ │ └── z_axis.dart │ ├── pubspec.yaml │ ├── test │ │ └── widget_test.dart │ ├── web │ │ ├── favicon.png │ │ ├── icons │ │ │ ├── Icon-192.png │ │ │ ├── Icon-512.png │ │ │ ├── Icon-maskable-192.png │ │ │ └── Icon-maskable-512.png │ │ ├── index.html │ │ └── manifest.json │ └── windows │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── flutter │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ │ └── runner │ │ ├── CMakeLists.txt │ │ ├── Runner.rc │ │ ├── flutter_window.cpp │ │ ├── flutter_window.h │ │ ├── main.cpp │ │ ├── resource.h │ │ ├── resources │ │ └── app_icon.ico │ │ ├── runner.exe.manifest │ │ ├── utils.cpp │ │ ├── utils.h │ │ ├── win32_window.cpp │ │ └── win32_window.h │ ├── lib │ ├── src │ │ ├── helpers │ │ │ ├── helpers.dart │ │ │ └── zrect_net.dart │ │ ├── zambulance │ │ │ ├── zambulance.dart │ │ │ ├── zambulance_body.dart │ │ │ ├── zambulance_cabin.dart │ │ │ └── zambulance_theme.dart │ │ ├── zbus │ │ │ ├── zbus.dart │ │ │ ├── zbus_body.dart │ │ │ └── zbus_theme.dart │ │ ├── zcar │ │ │ ├── zcar.dart │ │ │ ├── zcar_body.dart │ │ │ └── zcar_theme.dart │ │ ├── ztruck │ │ │ ├── ztruck.dart │ │ │ ├── ztruck_body.dart │ │ │ └── ztruck_theme.dart │ │ ├── zvehicle.dart │ │ ├── zvehicle_side.dart │ │ └── zvehicles_theme_data.dart │ └── zvehicles.dart │ └── pubspec.yaml ├── pubspec.lock ├── pubspec.yaml ├── test ├── helpers │ ├── helpers.dart │ └── pump_app.dart ├── puzzle │ └── bloc │ │ ├── puzzle_bloc_test.dart │ │ ├── puzzle_event_test.dart │ │ └── puzzle_state_test.dart └── timer │ └── bloc │ ├── timer_bloc_test.dart │ ├── timer_event_test.dart │ └── timer_state_test.dart ├── web ├── favicon.png ├── icons │ ├── Icon-192.png │ ├── Icon-512.png │ ├── favicon.png │ └── social.png ├── index.html └── manifest.json └── windows ├── .gitignore ├── CMakeLists.txt ├── flutter ├── CMakeLists.txt ├── generated_plugin_registrant.cc ├── generated_plugin_registrant.h └── generated_plugins.cmake ├── logo.png └── runner ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── resources └── app_icon.ico ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "flutter-rush" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | ## Status 10 | 11 | **READY/IN DEVELOPMENT/HOLD** 12 | 13 | ## Breaking Changes 14 | 15 | YES | NO 16 | 17 | ## Description 18 | 19 | 20 | 21 | ## Type of Change 22 | 23 | 24 | 25 | - [ ] ✨ New feature (non-breaking change which adds functionality) 26 | - [ ] 🛠️ Bug fix (non-breaking change which fixes an issue) 27 | - [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change) 28 | - [ ] 🧹 Code refactor 29 | - [ ] ✅ Build configuration change 30 | - [ ] 📝 Documentation 31 | - [ ] 🗑️ Chore -------------------------------------------------------------------------------- /.github/workflows/firebase-hosting-merge.yml: -------------------------------------------------------------------------------- 1 | # This file was auto-generated by the Firebase CLI 2 | # https://github.com/firebase/firebase-tools 3 | 4 | name: Deploy to Firebase Hosting on merge 5 | 'on': 6 | push: 7 | tags: 8 | - '**' 9 | branches: 10 | - main 11 | jobs: 12 | build_and_deploy: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v2 16 | - uses: subosito/flutter-action@v2 17 | with: 18 | flutter-version: '2.10.3' 19 | channel: 'stable' 20 | - run: flutter build web --web-renderer html 21 | - uses: FirebaseExtended/action-hosting-deploy@v0 22 | with: 23 | repoToken: '${{ secrets.GITHUB_TOKEN }}' 24 | firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FLUTTER_RUSH }}' 25 | channelId: live 26 | projectId: flutter-rush 27 | -------------------------------------------------------------------------------- /.github/workflows/firebase-hosting-pull-request.yml: -------------------------------------------------------------------------------- 1 | # This file was auto-generated by the Firebase CLI 2 | # https://github.com/firebase/firebase-tools 3 | 4 | name: Deploy to Firebase Hosting on PR 5 | 'on': pull_request 6 | jobs: 7 | build_and_preview: 8 | if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}' 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - uses: subosito/flutter-action@v2 13 | with: 14 | flutter-version: '2.10.3' 15 | channel: 'stable' 16 | - run: flutter build web --web-renderer html 17 | - uses: FirebaseExtended/action-hosting-deploy@v0 18 | with: 19 | repoToken: '${{ secrets.GITHUB_TOKEN }}' 20 | firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FLUTTER_RUSH }}' 21 | projectId: flutter-rush 22 | -------------------------------------------------------------------------------- /.github/workflows/github-auto-tag.yml: -------------------------------------------------------------------------------- 1 | name: Create Tag 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Create tag 14 | id: autotag 15 | uses: jacopocarlini/action-autotag@2.0.4 16 | with: 17 | GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 18 | tag_prefix: "v" 19 | - name: Create Release 20 | id: create_release 21 | if: ${{ steps.autotag.outputs.tagname != ''}} 22 | uses: actions/create-release@v1 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token 25 | with: 26 | tag_name: ${{ steps.autotag.outputs.tagname }} 27 | release_name: Rush Puzzle ${{ steps.autotag.outputs.tagname }} 28 | draft: false 29 | prerelease: false -------------------------------------------------------------------------------- /.idea/runConfigurations/main_dart.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: cf4400006550b70f28e4b4af815151d1e74846c6 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Very Good Ventures 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml 2 | linter: 3 | rules: 4 | public_member_api_docs: false 5 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/development/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/development/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/verygoodcore/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package app.flutter.rushpuzzle 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/staging/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/staging/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.6.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | project.evaluationDependsOn(':app') 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /assets/shared/bus_rotation--example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/assets/shared/bus_rotation--example.gif -------------------------------------------------------------------------------- /assets/shared/z_cubic_text--example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/assets/shared/z_cubic_text--example.gif -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "build/web", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ], 9 | "rewrites": [ 10 | { 11 | "source": "**", 12 | "destination": "/index.html" 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 9.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LaunchImage@1x.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LaunchImage@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LaunchImage@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /l10n.yaml: -------------------------------------------------------------------------------- 1 | arb-dir: lib/l10n/arb 2 | template-arb-file: app_en.arb 3 | output-localization-file: app_localizations.dart 4 | nullable-getter: false 5 | -------------------------------------------------------------------------------- /lib/app/app.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | export 'view/app.dart'; 9 | -------------------------------------------------------------------------------- /lib/l10n/l10n.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:flutter/widgets.dart'; 9 | import 'package:flutter_gen/gen_l10n/app_localizations.dart'; 10 | 11 | export 'package:flutter_gen/gen_l10n/app_localizations.dart'; 12 | 13 | extension AppLocalizationsX on BuildContext { 14 | AppLocalizations get l10n => AppLocalizations.of(this); 15 | } 16 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:rush_hour_puzzle/bootstrap.dart'; 2 | 3 | void main() { 4 | bootstrap(); 5 | } 6 | -------------------------------------------------------------------------------- /lib/main_development.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:rush_hour_puzzle/bootstrap.dart'; 9 | 10 | void main() { 11 | bootstrap(); 12 | } 13 | -------------------------------------------------------------------------------- /lib/main_production.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:rush_hour_puzzle/bootstrap.dart'; 9 | 10 | void main() { 11 | bootstrap(); 12 | } 13 | -------------------------------------------------------------------------------- /lib/main_profile.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:rush_hour_puzzle/bootstrap.dart'; 9 | 10 | void main() { 11 | bootstrap(); 12 | } 13 | -------------------------------------------------------------------------------- /lib/main_staging.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:rush_hour_puzzle/bootstrap.dart'; 9 | 10 | void main() { 11 | bootstrap(); 12 | } 13 | -------------------------------------------------------------------------------- /lib/puzzle/puzzle.dart: -------------------------------------------------------------------------------- 1 | export 'bloc/puzzle_bloc.dart'; 2 | export 'view/view.dart'; 3 | export 'widgets/widgets.dart'; 4 | -------------------------------------------------------------------------------- /lib/puzzle/view/view.dart: -------------------------------------------------------------------------------- 1 | export 'puzzle_page.dart'; 2 | export 'puzzle_view.dart'; 3 | export 'puzzle_z_finish_view.dart'; 4 | export 'puzzle_z_setup_view.dart'; 5 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/fireworks.dart: -------------------------------------------------------------------------------- 1 | import 'package:fireworks/fireworks.dart' as fireworks; 2 | import 'package:flutter/cupertino.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class Fireworks extends StatefulWidget { 6 | const Fireworks({Key? key}) : super(key: key); 7 | 8 | @override 9 | State createState() => _FireworksState(); 10 | } 11 | 12 | class _FireworksState extends State 13 | with SingleTickerProviderStateMixin { 14 | late final controller = fireworks.FireworkController(vsync: this); 15 | 16 | @override 17 | void initState() { 18 | controller 19 | ..start() 20 | ..autoLaunchDuration = const Duration(milliseconds: 800); 21 | super.initState(); 22 | } 23 | 24 | @override 25 | void dispose() { 26 | controller.dispose(); 27 | super.dispose(); 28 | } 29 | 30 | @override 31 | Widget build(BuildContext context) { 32 | return RepaintBoundary( 33 | child: fireworks.Fireworks( 34 | controller: controller, 35 | ), 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/puzzle_timer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_bloc/flutter_bloc.dart'; 3 | import 'package:rush_hour_puzzle/timer/timer.dart'; 4 | 5 | class PuzzleTimerText extends StatelessWidget { 6 | const PuzzleTimerText({Key? key}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | final secondsElapsed = context.select((TimerBloc bloc) { 11 | return bloc.state.secondsElapsed; 12 | }); 13 | final timeElapsed = Duration(seconds: secondsElapsed); 14 | 15 | return Text( 16 | formatDuration(timeElapsed), 17 | ); 18 | } 19 | } 20 | 21 | String formatDuration(Duration duration) { 22 | String twoDigits(int n) => n.toString().padLeft(2, '0'); 23 | final twoDigitMinutes = twoDigits(duration.inMinutes.remainder(60)); 24 | final twoDigitSeconds = twoDigits(duration.inSeconds.remainder(60)); 25 | final hoursText = 26 | duration.inHours == 0 ? '' : '${twoDigits(duration.inHours)}:'; 27 | return '$hoursText$twoDigitMinutes:$twoDigitSeconds'; 28 | } 29 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | export 'fireworks.dart'; 2 | export 'perspective_segmented_control.dart'; 3 | export 'puzzle_timer.dart'; 4 | export 'scoreboard.dart'; 5 | export 'timer_handler.dart'; 6 | export 'tutorial_button.dart'; 7 | export 'ztext/ztext.dart'; 8 | export 'zwidgets/zwidgets.dart'; 9 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/ztext/zgame_title.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:z_cubic_text/z_cubic_text.dart'; 4 | import 'package:zcomponents/zcomponents.dart'; 5 | 6 | class ZGameTitle extends StatelessWidget { 7 | const ZGameTitle({Key? key}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | final style = ZCubicTextStyle( 12 | letterSpacing: 10, 13 | frontColor: Colors.grey[900], 14 | ); 15 | return ZPositioned( 16 | translate: ZVector.only( 17 | x: -1, 18 | y: style.fontSize - layout.tileSize, 19 | z: layout.tileDepth, 20 | ), 21 | child: ZGroup( 22 | children: [ 23 | ZCubicText('Rush', style: style), 24 | ZPositioned( 25 | translate: ZVector.only( 26 | y: style.fontSize * 4, 27 | ), 28 | child: ZCubicText('Puzzle', style: style), 29 | ), 30 | ], 31 | ), 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/ztext/zplay_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:z_cubic_text/z_cubic_text.dart'; 4 | import 'package:zcomponents/zcomponents.dart'; 5 | 6 | 7 | class ZPlayText extends StatelessWidget { 8 | const ZPlayText({Key? key}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | final style = ZCubicTextStyle( 13 | letterSpacing: 10, 14 | color: Colors.yellow[700]!, 15 | frontColor: Colors.yellow[600], 16 | ); 17 | return ZPositioned( 18 | translate: ZVector.only( 19 | x: -0.5, 20 | z: layout.tileDepth, 21 | ), 22 | child: ZGroup( 23 | children: [ 24 | ZCubicText( 25 | 'Play', 26 | style: style, 27 | ), 28 | ], 29 | ), 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/ztext/zshare_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:z_cubic_text/z_cubic_text.dart'; 4 | import 'package:zcomponents/zcomponents.dart'; 5 | 6 | class ZShareText extends StatelessWidget { 7 | const ZShareText({Key? key}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | final style = ZCubicTextStyle( 12 | letterSpacing: 6, 13 | fontSize: 6, 14 | color: Colors.yellow[700]!, 15 | frontColor: Colors.yellow[600], 16 | ); 17 | return ZPositioned( 18 | translate: ZVector.only( 19 | x: -0.5, 20 | z: layout.tileDepth, 21 | ), 22 | child: ZGroup( 23 | children: [ 24 | ZCubicText( 25 | '-SHARE-', 26 | style: style, 27 | ), 28 | ], 29 | ), 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/ztext/ztext.dart: -------------------------------------------------------------------------------- 1 | export 'zgame_title.dart'; 2 | export 'zplay_text.dart'; 3 | export 'zshare_text.dart'; 4 | export 'zwon_text.dart'; 5 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/ztext/zwon_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:z_cubic_text/z_cubic_text.dart'; 4 | import 'package:zcomponents/zcomponents.dart'; 5 | 6 | class ZWonText extends StatelessWidget { 7 | const ZWonText({Key? key}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | final style = ZCubicTextStyle( 12 | letterSpacing: 10, 13 | frontColor: Colors.grey[900], 14 | ); 15 | return ZPositioned( 16 | translate: ZVector.only( 17 | x: -1, 18 | y: style.fontSize - layout.tileSize, 19 | z: layout.tileDepth, 20 | ), 21 | child: ZGroup( 22 | children: [ 23 | ZCubicText('YOU', style: style), 24 | ZPositioned( 25 | translate: ZVector.only( 26 | y: style.fontSize * 4, 27 | ), 28 | child: ZCubicText('Won!', style: style), 29 | ), 30 | ], 31 | ), 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/zwidgets/zpuzzle_timer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_bloc/flutter_bloc.dart'; 3 | import 'package:rush_hour_puzzle/puzzle/puzzle.dart'; 4 | import 'package:rush_hour_puzzle/timer/timer.dart'; 5 | import 'package:z_cubic_text/z_cubic_text.dart'; 6 | 7 | class ZPuzzleTimerText extends StatelessWidget { 8 | const ZPuzzleTimerText({Key? key}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | final secondsElapsed = context.select((TimerBloc bloc) { 13 | return bloc.state.secondsElapsed; 14 | }); 15 | final timeElapsed = Duration(seconds: secondsElapsed); 16 | 17 | return ZCubicText( 18 | 'Time: ${formatDuration(timeElapsed)}', 19 | style: ZCubicTextStyle( 20 | color: Colors.grey[900]!, 21 | frontColor: Colors.grey[800], 22 | fontSize: 4, 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/puzzle/widgets/zwidgets/zwidgets.dart: -------------------------------------------------------------------------------- 1 | export 'zclouds.dart'; 2 | export 'zpuzzle_timer.dart'; 3 | export 'zscore_board.dart'; 4 | -------------------------------------------------------------------------------- /lib/timer/bloc/timer_event.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: public_member_api_docs 2 | 3 | part of 'timer_bloc.dart'; 4 | 5 | abstract class TimerEvent extends Equatable { 6 | const TimerEvent(); 7 | 8 | @override 9 | List get props => []; 10 | } 11 | 12 | class TimerStarted extends TimerEvent { 13 | const TimerStarted(); 14 | } 15 | 16 | class TimerTicked extends TimerEvent { 17 | const TimerTicked(this.secondsElapsed); 18 | 19 | final int secondsElapsed; 20 | 21 | @override 22 | List get props => [secondsElapsed]; 23 | } 24 | 25 | class TimerStopped extends TimerEvent { 26 | const TimerStopped(); 27 | } 28 | 29 | class TimerReset extends TimerEvent { 30 | const TimerReset(); 31 | } 32 | -------------------------------------------------------------------------------- /lib/timer/bloc/timer_state.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: public_member_api_docs 2 | 3 | part of 'timer_bloc.dart'; 4 | 5 | class TimerState extends Equatable { 6 | const TimerState({ 7 | this.isRunning = false, 8 | this.secondsElapsed = 0, 9 | }); 10 | 11 | final bool isRunning; 12 | final int secondsElapsed; 13 | 14 | @override 15 | List get props => [isRunning, secondsElapsed]; 16 | 17 | TimerState copyWith({ 18 | bool? isRunning, 19 | int? secondsElapsed, 20 | }) { 21 | return TimerState( 22 | isRunning: isRunning ?? this.isRunning, 23 | secondsElapsed: secondsElapsed ?? this.secondsElapsed, 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/timer/model/ticker.dart: -------------------------------------------------------------------------------- 1 | /// {@template ticker} 2 | /// Object to increment time in seconds. 3 | /// {@endtemplate} 4 | class Ticker { 5 | /// {@macro ticker} 6 | const Ticker(); 7 | 8 | /// Increments time by 1 second. 9 | Stream tick() { 10 | return Stream.periodic(const Duration(seconds: 1), (x) => 1 + x++); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/timer/timer.dart: -------------------------------------------------------------------------------- 1 | export 'bloc/timer_bloc.dart'; 2 | export 'model/ticker.dart'; 3 | -------------------------------------------------------------------------------- /lib/vehicle/bloc/vehicle_event.dart: -------------------------------------------------------------------------------- 1 | part of 'vehicle_bloc.dart'; 2 | 3 | @immutable 4 | abstract class VehicleEvent extends Equatable {} 5 | 6 | class VehicleTransformationUpdated extends VehicleEvent { 7 | VehicleTransformationUpdated(this.transformations); 8 | 9 | final List transformations; 10 | 11 | @override 12 | List get props => [transformations]; 13 | } 14 | 15 | class VehicleDragStarted extends VehicleEvent { 16 | VehicleDragStarted({ 17 | required this.dragPosition, 18 | required this.boundary, 19 | }); 20 | 21 | final Offset dragPosition; 22 | 23 | final BoundingBox boundary; 24 | @override 25 | List get props => [dragPosition]; 26 | } 27 | 28 | class VehicleDragUpdated extends VehicleEvent { 29 | VehicleDragUpdated(this.dragPosition); 30 | 31 | final Offset dragPosition; 32 | 33 | @override 34 | List get props => [dragPosition]; 35 | } 36 | 37 | class VehicleDragEnd extends VehicleEvent { 38 | VehicleDragEnd({this.velocity = Offset.zero}); 39 | 40 | final Offset velocity; 41 | 42 | @override 43 | List get props => [velocity]; 44 | } 45 | -------------------------------------------------------------------------------- /lib/vehicle/vehicle.dart: -------------------------------------------------------------------------------- 1 | export 'bloc/vehicle_bloc.dart'; 2 | 3 | export 'widgets/widgets.dart'; 4 | -------------------------------------------------------------------------------- /lib/vehicle/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | export 'vehicle_content.dart'; 2 | export 'vehicle_hit_box.dart'; 3 | export 'vehicle_view.dart'; 4 | -------------------------------------------------------------------------------- /linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | 11 | void fl_register_plugins(FlPluginRegistry* registry) { 12 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = 13 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); 14 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); 15 | } 16 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | url_launcher_linux 7 | ) 8 | 9 | set(PLUGIN_BUNDLED_LIBRARIES) 10 | 11 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 12 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) 13 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 14 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 15 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 16 | endforeach(plugin) 17 | -------------------------------------------------------------------------------- /linux/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /linux/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | import firebase_analytics 9 | import firebase_core 10 | import firebase_crashlytics 11 | import path_provider_macos 12 | import share_plus_macos 13 | import url_launcher_macos 14 | 15 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 16 | FLTFirebaseAnalyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAnalyticsPlugin")) 17 | FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) 18 | FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin")) 19 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) 20 | SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) 21 | UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) 22 | } 23 | -------------------------------------------------------------------------------- /macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = rush_hour_puzzle 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = app.flutter.rushpuzzle 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2022 com.example.verygoodcore. All rights reserved. 15 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.client 10 | 11 | com.apple.security.network.server 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController.init() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.network.client 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/fireworks/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 63062a64432cce03315d6b5196fda7912866eb37 8 | channel: dev 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /packages/fireworks/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/fireworks/lib/fireworks.dart: -------------------------------------------------------------------------------- 1 | export 'package:fireworks/src/foundation/controller.dart'; 2 | export 'package:fireworks/src/widgets/fireworks.dart'; 3 | -------------------------------------------------------------------------------- /packages/fireworks/lib/src/widgets/fireworks.dart: -------------------------------------------------------------------------------- 1 | /// Copyright (c) 2020-2022, creativecreatorormaybenot 2 | 3 | import 'package:fireworks/src/foundation/controller.dart'; 4 | import 'package:fireworks/src/rendering/fireworks.dart'; 5 | import 'package:flutter/widgets.dart'; 6 | 7 | class Fireworks extends LeafRenderObjectWidget { 8 | Fireworks({ 9 | Key? key, 10 | required this.controller, 11 | }) : super(key: key); 12 | 13 | /// The controller that manages the fireworks and tells the render box what 14 | /// and when to paint. 15 | final FireworkController controller; 16 | 17 | @override 18 | RenderObject createRenderObject(BuildContext context) { 19 | return RenderFireworks( 20 | controller: controller, 21 | ); 22 | } 23 | 24 | @override 25 | void updateRenderObject(BuildContext context, RenderFireworks renderObject) { 26 | renderObject.controller = controller; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/fireworks/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: fireworks 2 | description: Package for displaying virtual fireworks in Flutter. 3 | version: 0.0.1 4 | publish_to: 'none' 5 | 6 | environment: 7 | sdk: '>=2.12.0 <3.0.0' 8 | flutter: '>=2.0.0' 9 | 10 | dependencies: 11 | flutter: 12 | sdk: flutter 13 | 14 | google_fonts: ^2.2.0 15 | 16 | dev_dependencies: 17 | pedantic: ^1.11.0 18 | -------------------------------------------------------------------------------- /packages/puzzle_models/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://www.dartlang.org/guides/libraries/private-files 2 | 3 | # Files and directories created by pub 4 | .dart_tool/ 5 | .packages 6 | build/ 7 | pubspec.lock -------------------------------------------------------------------------------- /packages/puzzle_models/README.md: -------------------------------------------------------------------------------- 1 | # puzzle_models 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Rush Hour puzzle models. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/puzzle_models/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml -------------------------------------------------------------------------------- /packages/puzzle_models/lib/puzzle_models.dart: -------------------------------------------------------------------------------- 1 | library puzzle_models; 2 | 3 | export 'src/models/models.dart'; 4 | -------------------------------------------------------------------------------- /packages/puzzle_models/lib/src/models/driving_boundary.dart: -------------------------------------------------------------------------------- 1 | import 'package:equatable/equatable.dart'; 2 | import 'package:puzzle_models/puzzle_models.dart'; 3 | 4 | /// {@template driving_boundary} 5 | /// Specifies from which [Position] to which [Position] the vehicle can move. 6 | /// {@endtemplate} 7 | class DrivingBoundary extends Equatable { 8 | /// {@macro driving_boundary} 9 | const DrivingBoundary(this.from, this.to) 10 | : assert(from <= to, 'From must be smaller or equal to to.'); 11 | // assert( 12 | // from.x == to.x || from.y == to.y, 13 | // 'From and to must be on the same axis.', 14 | // ); 15 | // 16 | /// The smallest [Position] the vehicle can move. 17 | final Position from; 18 | 19 | /// The greatest [Position] the vehicle can move. 20 | final Position to; 21 | 22 | /// Checks if a [Position] is within [from] and [to]. 23 | bool contains(Position position) { 24 | return from <= position && position <= to; 25 | } 26 | 27 | @override 28 | List get props => [from, to]; 29 | } 30 | -------------------------------------------------------------------------------- /packages/puzzle_models/lib/src/models/models.dart: -------------------------------------------------------------------------------- 1 | export 'driving_boundary.dart'; 2 | export 'models.dart'; 3 | export 'position.dart'; 4 | export 'puzzle_difficulty.dart'; 5 | export 'rush_puzzle.dart'; 6 | export 'steering.dart'; 7 | export 'vehicle.dart'; 8 | export 'vehicle_type.dart'; 9 | -------------------------------------------------------------------------------- /packages/puzzle_models/lib/src/models/position.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'position.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Position _$PositionFromJson(Map json) => Position( 10 | json['x'] as int, 11 | json['y'] as int, 12 | ); 13 | 14 | Map _$PositionToJson(Position instance) => { 15 | 'x': instance.x, 16 | 'y': instance.y, 17 | }; 18 | -------------------------------------------------------------------------------- /packages/puzzle_models/lib/src/models/puzzle_difficulty.dart: -------------------------------------------------------------------------------- 1 | import 'package:puzzle_models/puzzle_models.dart'; 2 | 3 | /// {@template puzzle_difficulty} 4 | /// Difficulty level of a [RushPuzzle] game. 5 | /// {@endtemplate} 6 | enum PuzzleDifficulty { 7 | /// Beginner difficulty 8 | beginner, 9 | 10 | /// Intermediate difficulty 11 | intermediate, 12 | 13 | /// Advanced difficulty 14 | advanced, 15 | 16 | /// Expert difficulty 17 | expert 18 | } 19 | -------------------------------------------------------------------------------- /packages/puzzle_models/lib/src/models/steering.dart: -------------------------------------------------------------------------------- 1 | /// The direction of a vehicle. 2 | enum Steering { 3 | /// Vehicle can move up and down. 4 | horizontal, 5 | 6 | /// Vehicle can move left and right. 7 | vertical, 8 | } 9 | -------------------------------------------------------------------------------- /packages/puzzle_models/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: puzzle_models 2 | description: Rush Hour puzzle models. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.14.0 <3.0.0" 8 | 9 | dependencies: 10 | equatable: ^2.0.3 11 | json_annotation: ^4.4.0 12 | 13 | 14 | 15 | dev_dependencies: 16 | build_runner: ^2.1.8 17 | json_serializable: ^6.1.5 18 | test: ^1.19.2 19 | very_good_analysis: ^2.4.0 20 | -------------------------------------------------------------------------------- /packages/puzzle_models/test/src/models/steering_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:puzzle_models/puzzle_models.dart'; 2 | import 'package:test/expect.dart'; 3 | import 'package:test/scaffolding.dart'; 4 | 5 | void main() { 6 | group('Steering', () { 7 | group('constructor', () { 8 | test('can be instantiated', () { 9 | expect(Steering.horizontal, isA()); 10 | expect(Steering.vertical, isA()); 11 | }); 12 | }); 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /packages/puzzle_models/test/src/models/vehicle_type_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:puzzle_models/puzzle_models.dart'; 2 | import 'package:test/expect.dart'; 3 | import 'package:test/scaffolding.dart'; 4 | 5 | void main() { 6 | group('VehicleTypeX', () { 7 | group('length', () { 8 | test('all types have valid length', () { 9 | for (final type in VehicleType.values) { 10 | expect(type.length, greaterThan(1)); 11 | } 12 | }); 13 | }); 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /packages/puzzles_repository/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://www.dartlang.org/guides/libraries/private-files 2 | 3 | # Files and directories created by pub 4 | .dart_tool/ 5 | .packages 6 | build/ 7 | pubspec.lock -------------------------------------------------------------------------------- /packages/puzzles_repository/README.md: -------------------------------------------------------------------------------- 1 | # puzzles_repository 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Repository that handles puzzles related requests. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/puzzles_repository/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml -------------------------------------------------------------------------------- /packages/puzzles_repository/lib/puzzles_repository.dart: -------------------------------------------------------------------------------- 1 | library puzzles_repository; 2 | 3 | export 'src/puzzles_repository.dart'; 4 | -------------------------------------------------------------------------------- /packages/puzzles_repository/lib/src/puzzles_repository.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:convert'; 3 | 4 | import 'package:flutter/services.dart' show rootBundle; 5 | import 'package:puzzle_models/puzzle_models.dart'; 6 | 7 | /// {@template puzzles_repository} 8 | /// A repository that handles [RushPuzzle]s related requests. 9 | /// {@endtemplate} 10 | class PuzzlesRepository { 11 | /// {@macro puzzles_repository} 12 | const PuzzlesRepository(); 13 | 14 | /// Retrieves a [RushPuzzle]. 15 | /// 16 | /// The [RushPuzzle] is expected to be on the initial state. 17 | FutureOr getPuzzle(int number) async { 18 | String game; 19 | 20 | try { 21 | game = await rootBundle 22 | .loadString('packages/puzzles_repository/assets/$number.json'); 23 | } catch (e) { 24 | game = await rootBundle 25 | .loadString('packages/puzzles_repository/assets/1.json'); 26 | } 27 | final json = jsonDecode(game) as Map; 28 | return RushPuzzle.fromJson(json); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /packages/puzzles_repository/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: puzzles_repository 2 | description: Repository that handles puzzles related requests. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.14.0 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | puzzle_models: 13 | path: ../puzzle_models 14 | 15 | dev_dependencies: 16 | flutter_test: 17 | sdk: flutter 18 | test: ^1.19.2 19 | very_good_analysis: ^2.4.0 20 | 21 | flutter: 22 | assets: 23 | - assets/ -------------------------------------------------------------------------------- /packages/puzzles_repository/test/src/puzzles_repository_test.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | 3 | import 'package:flutter_test/flutter_test.dart'; 4 | import 'package:puzzle_models/puzzle_models.dart'; 5 | import 'package:puzzles_repository/puzzles_repository.dart'; 6 | 7 | void main() { 8 | group('PuzzlesRepository', () { 9 | TestWidgetsFlutterBinding.ensureInitialized(); 10 | test('can be constructed', () { 11 | expect(PuzzlesRepository(), isA()); 12 | }); 13 | 14 | test('gets a puzzle', () { 15 | final repository = PuzzlesRepository(); 16 | expect(repository.getPuzzle(1), completion(isA())); 17 | }); 18 | 19 | test('3', () { 20 | final repository = PuzzlesRepository(); 21 | expect(repository.getPuzzle(1), completion(isA())); 22 | }); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /packages/puzzles_repository/tool/verify.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | 3 | import 'dart:convert'; 4 | import 'dart:developer'; 5 | import 'dart:io'; 6 | 7 | import 'package:puzzle_models/puzzle_models.dart'; 8 | 9 | 10 | Future main() async { 11 | final string = File('assets/1.json').readAsStringSync(); 12 | 13 | final json = jsonDecode(string) as Map; 14 | final puzzle = RushPuzzle.fromJson(json); 15 | inspect(puzzle.toJson()); 16 | } 17 | -------------------------------------------------------------------------------- /packages/z_cubic_text/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # VSCode related 19 | .vscode/ 20 | 21 | # Flutter/Dart/Pub related 22 | **/doc/api/ 23 | **/ios/Flutter/.last_build_id 24 | .dart_tool/ 25 | .flutter-plugins 26 | .flutter-plugins-dependencies 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Symbolication related 36 | app.*.symbols 37 | 38 | # Obfuscation related 39 | app.*.map.json 40 | -------------------------------------------------------------------------------- /packages/z_cubic_text/README.md: -------------------------------------------------------------------------------- 1 | # z_cubic_text 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Collection of cubic letters made with ZFlutter. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/z_cubic_text/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml 2 | 3 | linter: 4 | rules: 5 | # TODO(alestiago): document public member api and remove exclusion. 6 | public_member_api_docs: false -------------------------------------------------------------------------------- /packages/z_cubic_text/example/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Android Studio will place build artifacts here 44 | /android/app/debug 45 | /android/app/profile 46 | /android/app/release 47 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: db747aa1331bd95bc9b3874c842261ca2d302cd5 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/README.md: -------------------------------------------------------------------------------- 1 | # example 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.example 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.6.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 7 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 9.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /packages/z_cubic_text/example/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/lib/example_strings.dart: -------------------------------------------------------------------------------- 1 | const exampleString = [ 2 | 'A', 3 | 'B', 4 | 'C', 5 | 'D', 6 | 'E', 7 | 'F', 8 | 'G', 9 | 'H', 10 | 'I', 11 | 'J', 12 | 'K', 13 | 'L', 14 | 'M', 15 | 'N', 16 | 'O', 17 | 'P', 18 | 'Q', 19 | 'R', 20 | 'S', 21 | 'T', 22 | 'U', 23 | 'V', 24 | 'W', 25 | 'X', 26 | 'Y', 27 | 'Z', 28 | '0', 29 | '1', 30 | '2', 31 | '3', 32 | '4', 33 | '5', 34 | '6', 35 | '7', 36 | '8', 37 | '9', 38 | '!', 39 | '?', 40 | ':', 41 | ';', 42 | '.', 43 | ',', 44 | '-', 45 | '>', 46 | '<', 47 | ]; 48 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: example 2 | description: A new Flutter project. 3 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 4 | 5 | version: 1.0.0+1 6 | 7 | environment: 8 | sdk: ">=2.16.1 <3.0.0" 9 | 10 | dependencies: 11 | flutter: 12 | sdk: flutter 13 | cupertino_icons: ^1.0.2 14 | z_cubic_text: 15 | path: ../ 16 | zflutter: 17 | git: 18 | url: https://github.com/jamesblasco/zflutter 19 | path: zflutter 20 | ref: bde6f320d6d278a82f40420df68a1ab4c466ba4c 21 | 22 | dev_dependencies: 23 | flutter_test: 24 | sdk: flutter 25 | flutter_lints: ^1.0.0 26 | 27 | flutter: 28 | uses-material-design: true -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/web/favicon.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/web/icons/Icon-192.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/web/icons/Icon-512.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /packages/z_cubic_text/example/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "short_name": "example", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | ) 7 | 8 | set(PLUGIN_BUNDLED_LIBRARIES) 9 | 10 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 11 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 12 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 13 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 14 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 15 | endforeach(plugin) 16 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | project(runner LANGUAGES CXX) 3 | 4 | add_executable(${BINARY_NAME} WIN32 5 | "flutter_window.cpp" 6 | "main.cpp" 7 | "utils.cpp" 8 | "win32_window.cpp" 9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 10 | "Runner.rc" 11 | "runner.exe.manifest" 12 | ) 13 | apply_standard_settings(${BINARY_NAME}) 14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 17 | add_dependencies(${BINARY_NAME} flutter_assemble) 18 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/flutter_window.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_FLUTTER_WINDOW_H_ 2 | #define RUNNER_FLUTTER_WINDOW_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "win32_window.h" 10 | 11 | // A window that does nothing but host a Flutter view. 12 | class FlutterWindow : public Win32Window { 13 | public: 14 | // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 | explicit FlutterWindow(const flutter::DartProject& project); 16 | virtual ~FlutterWindow(); 17 | 18 | protected: 19 | // Win32Window: 20 | bool OnCreate() override; 21 | void OnDestroy() override; 22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 | LPARAM const lparam) noexcept override; 24 | 25 | private: 26 | // The project to run. 27 | flutter::DartProject project_; 28 | 29 | // The Flutter instance hosted by this window. 30 | std::unique_ptr flutter_controller_; 31 | }; 32 | 33 | #endif // RUNNER_FLUTTER_WINDOW_H_ 34 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/z_cubic_text/example/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /packages/z_cubic_text/example/windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | -------------------------------------------------------------------------------- /packages/z_cubic_text/lib/src/shapes/shapes.dart: -------------------------------------------------------------------------------- 1 | export 'z_cube.dart'; 2 | export 'z_l_shape.dart'; 3 | export 'z_slab.dart'; 4 | -------------------------------------------------------------------------------- /packages/z_cubic_text/lib/src/shapes/z_cube.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | import 'package:z_cubic_text/z_cubic_text.dart'; 4 | import 'package:zflutter/zflutter.dart'; 5 | 6 | class ZCube extends StatelessWidget { 7 | const ZCube({ 8 | Key? key, 9 | }) : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | final style = context.read(); 14 | 15 | return ZBox( 16 | width: style.fontSize, 17 | height: style.fontSize, 18 | depth: style.fontSize / 2, 19 | color: style.color, 20 | frontColor: style.frontColor, 21 | rearColor: style.rearColor, 22 | leftColor: style.leftColor, 23 | rightColor: style.rightColor, 24 | topColor: style.topColor, 25 | bottomColor: style.bottomColor, 26 | stroke: 0, 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/z_cubic_text/lib/src/shapes/z_text_shape.dart: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/z_cubic_text/lib/src/z_cubic_text_style.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/widgets.dart'; 2 | 3 | class ZCubicTextStyle { 4 | const ZCubicTextStyle({ 5 | this.fontSize = 10.0, 6 | this.letterSpacing = 5, 7 | this.color = const Color(0xFF000000), 8 | this.frontColor, 9 | this.rearColor, 10 | this.leftColor, 11 | this.rightColor, 12 | this.topColor, 13 | this.bottomColor, 14 | }); 15 | 16 | final double fontSize; 17 | final double letterSpacing; 18 | final Color color; 19 | final Color? frontColor; 20 | final Color? rearColor; 21 | final Color? leftColor; 22 | final Color? rightColor; 23 | final Color? topColor; 24 | final Color? bottomColor; 25 | } 26 | -------------------------------------------------------------------------------- /packages/z_cubic_text/lib/z_cubic_text.dart: -------------------------------------------------------------------------------- 1 | library z_cubic_text; 2 | 3 | export 'src/z_cubic_text.dart'; 4 | export 'src/z_cubic_text_style.dart'; 5 | -------------------------------------------------------------------------------- /packages/z_cubic_text/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: z_cubic_text 2 | description: Collection of cubic letters made with ZFlutter. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.16.0 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | provider: ^6.0.2 13 | zflutter: 14 | git: 15 | url: https://github.com/jamesblasco/zflutter 16 | path: zflutter 17 | ref: bde6f320d6d278a82f40420df68a1ab4c466ba4c 18 | 19 | dev_dependencies: 20 | flutter_test: 21 | sdk: flutter 22 | very_good_analysis: ^2.4.0 23 | -------------------------------------------------------------------------------- /packages/zclouds/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # VSCode related 19 | .vscode/ 20 | 21 | # Flutter/Dart/Pub related 22 | **/doc/api/ 23 | **/ios/Flutter/.last_build_id 24 | .dart_tool/ 25 | .flutter-plugins 26 | .flutter-plugins-dependencies 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Symbolication related 36 | app.*.symbols 37 | 38 | # Obfuscation related 39 | app.*.map.json 40 | -------------------------------------------------------------------------------- /packages/zclouds/README.md: -------------------------------------------------------------------------------- 1 | # zclouds 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Collection of clouds made with ZFlutter. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/zclouds/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml -------------------------------------------------------------------------------- /packages/zclouds/lib/src/zcloud_type.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: public_member_api_docs 2 | 3 | import 'package:zclouds/zclouds.dart'; 4 | 5 | /// {@template zclouds.zcloudtype} 6 | /// Represents different types of clouds. 7 | /// 8 | /// Used by [ZCloud] to determine the shape of the cloud. 9 | /// 10 | /// For more information: https://en.wikipedia.org/wiki/List_of_cloud_types 11 | /// {@endtemplate} 12 | enum ZCloudType { 13 | cirrostratus, 14 | cirrocumulus, 15 | cirrus, 16 | altostratus, 17 | altocumulus, 18 | stratus, 19 | stratocumulus, 20 | nimbostratus, 21 | cumulus, 22 | cumulonimbus, 23 | } 24 | -------------------------------------------------------------------------------- /packages/zclouds/lib/zclouds.dart: -------------------------------------------------------------------------------- 1 | library zclouds; 2 | 3 | export 'src/zcloud.dart'; 4 | export 'src/zcloud_style.dart'; 5 | export 'src/zcloud_type.dart'; 6 | -------------------------------------------------------------------------------- /packages/zclouds/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: zclouds 2 | description: Collection of clouds made with ZFlutter. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.16.0 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | provider: ^6.0.2 13 | zflutter: 14 | git: 15 | url: https://github.com/jamesblasco/zflutter 16 | path: zflutter 17 | ref: bde6f320d6d278a82f40420df68a1ab4c466ba4c 18 | 19 | dev_dependencies: 20 | flutter_test: 21 | sdk: flutter 22 | very_good_analysis: ^2.4.0 23 | -------------------------------------------------------------------------------- /packages/zclouds/test/src/zcloud_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:zclouds/src/zcumulus.dart'; 4 | import 'package:zclouds/zclouds.dart'; 5 | 6 | void main() { 7 | group('ZCloud', () { 8 | testWidgets( 9 | 'builds ZCumulus', 10 | (WidgetTester tester) async { 11 | await tester.pumpWidget( 12 | ZCloud( 13 | type: ZCloudType.cumulus, 14 | style: ZCloudStyle.fromSwatch(Colors.grey), 15 | ), 16 | ); 17 | 18 | expect(find.byType(ZCumulus), findsOneWidget); 19 | }, 20 | ); 21 | }); 22 | } 23 | -------------------------------------------------------------------------------- /packages/zcomponents/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # VSCode related 19 | .vscode/ 20 | 21 | # Flutter/Dart/Pub related 22 | **/doc/api/ 23 | **/ios/Flutter/.last_build_id 24 | .dart_tool/ 25 | .flutter-plugins 26 | .flutter-plugins-dependencies 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Symbolication related 36 | app.*.symbols 37 | 38 | # Obfuscation related 39 | app.*.map.json 40 | -------------------------------------------------------------------------------- /packages/zcomponents/README.md: -------------------------------------------------------------------------------- 1 | # zcomponents 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Collection of Rush Hour components made with ZFlutter. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/zcomponents/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml 2 | 3 | linter: 4 | rules: 5 | # TODO(jamesblasco): document public member api and remove exclusion. 6 | public_member_api_docs: false -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/rect/rect.dart: -------------------------------------------------------------------------------- 1 | export 'bounding_box.dart'; 2 | export 'game_layout.dart'; 3 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/utils/matrix_from_transformation.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/widgets.dart'; 2 | import 'package:zcomponents/zcomponents.dart'; 3 | 4 | Matrix4 matrixFromTransformations(List transforms) { 5 | final matrix = Matrix4.identity(); 6 | for (final transform in transforms) { 7 | final matrix4 = Matrix4.translationValues( 8 | transform.translate.x, 9 | transform.translate.y, 10 | transform.translate.z, 11 | ) 12 | ..rotateX(transform.rotate.x) 13 | ..rotateY(-transform.rotate.y) 14 | ..rotateZ(transform.rotate.z) 15 | ..scale( 16 | transform.scale.x, 17 | transform.scale.y, 18 | transform.scale.z, 19 | ); 20 | matrix.multiply(matrix4); 21 | } 22 | return matrix; 23 | } 24 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/utils/utils.dart: -------------------------------------------------------------------------------- 1 | export '../widgets/zposition_tracker.dart'; 2 | export 'matrix_from_transformation.dart'; 3 | export 'zposition_tween.dart'; 4 | export 'zvector_tween.dart'; 5 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/utils/zvector_tween.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/widgets.dart'; 2 | import 'package:zcomponents/zcomponents.dart'; 3 | 4 | class ZVectorTween extends Tween { 5 | ZVectorTween({ 6 | ZVector? begin, 7 | ZVector? end, 8 | }) : super(begin: begin, end: end); 9 | 10 | @override 11 | ZVector lerp(double t) { 12 | return ZVector.lerp(begin, end, t); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | export 'debug_game.dart'; 2 | export 'zboard.dart'; 3 | export 'zbounding_box.dart'; 4 | export 'zdebug_bounding_box.dart'; 5 | export 'zgame.dart'; 6 | export 'zgame_theme.dart'; 7 | export 'zhit_box.dart'; 8 | export 'zhit_box.dart'; 9 | export 'zposition_tracker.dart'; 10 | export 'ztile.dart'; 11 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/src/widgets/zdebug_bounding_box.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:zcomponents/zcomponents.dart'; 3 | 4 | class ZDebugBoundingBox extends StatelessWidget { 5 | const ZDebugBoundingBox({Key? key, required this.box}) : super(key: key); 6 | 7 | final BoundingBox box; 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return ZGroup( 12 | children: [ 13 | ZPositioned( 14 | translate: box.zMinPosition, 15 | child: ZCircle( 16 | diameter: 4, 17 | color: Colors.blue, 18 | stroke: 4, 19 | ), 20 | ), 21 | ZPositioned( 22 | translate: box.zMaxPosition, 23 | child: ZCircle( 24 | diameter: 4, 25 | color: Colors.green, 26 | stroke: 4, 27 | ), 28 | ), 29 | ], 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /packages/zcomponents/lib/zcomponents.dart: -------------------------------------------------------------------------------- 1 | library zcomponents; 2 | 3 | export 'package:zflutter/zflutter.dart'; 4 | 5 | export 'src/rect/rect.dart'; 6 | export 'src/utils/utils.dart'; 7 | export 'src/widgets/widgets.dart'; 8 | -------------------------------------------------------------------------------- /packages/zcomponents/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: zcomponents 2 | description: Collection of Rush Hour components made with ZFlutter. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.14.0 <3.0.0" 8 | 9 | dependencies: 10 | equatable: 11 | flutter: 12 | sdk: flutter 13 | provider: 14 | puzzle_models: 15 | path: ../puzzle_models 16 | vector_math: 17 | zflutter: 18 | git: 19 | url: https://github.com/jamesblasco/zflutter 20 | path: zflutter 21 | ref: bde6f320d6d278a82f40420df68a1ab4c466ba4c 22 | 23 | dev_dependencies: 24 | flutter_test: 25 | sdk: flutter 26 | very_good_analysis: ^2.4.0 -------------------------------------------------------------------------------- /packages/zvehicles/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # VSCode related 19 | .vscode/ 20 | 21 | # Flutter/Dart/Pub related 22 | **/doc/api/ 23 | **/ios/Flutter/.last_build_id 24 | .dart_tool/ 25 | .flutter-plugins 26 | .flutter-plugins-dependencies 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Symbolication related 36 | app.*.symbols 37 | 38 | # Obfuscation related 39 | app.*.map.json 40 | -------------------------------------------------------------------------------- /packages/zvehicles/README.md: -------------------------------------------------------------------------------- 1 | # zvehicles 2 | 3 | [![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] 4 | [![License: MIT][license_badge]][license_link] 5 | 6 | Collection of vehicles made with ZFlutter. 7 | 8 | [license_badge]: https://img.shields.io/badge/license-MIT-blue.svg 9 | [license_link]: https://opensource.org/licenses/MIT 10 | [very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg 11 | [very_good_analysis_link]: https://pub.dev/packages/very_good_analysis -------------------------------------------------------------------------------- /packages/zvehicles/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml -------------------------------------------------------------------------------- /packages/zvehicles/example/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Android Studio will place build artifacts here 44 | /android/app/debug 45 | /android/app/profile 46 | /android/app/release 47 | -------------------------------------------------------------------------------- /packages/zvehicles/example/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: db747aa1331bd95bc9b3874c842261ca2d302cd5 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /packages/zvehicles/example/README.md: -------------------------------------------------------------------------------- 1 | # example 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.example 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.6.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 7 | -------------------------------------------------------------------------------- /packages/zvehicles/example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 9.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /packages/zvehicles/example/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /packages/zvehicles/example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: example 2 | description: A new Flutter project. 3 | publish_to: 'none' 4 | version: 1.0.0+1 5 | 6 | environment: 7 | sdk: ">=2.16.1 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | cupertino_icons: ^1.0.2 13 | zvehicles: 14 | path: ../ 15 | 16 | dev_dependencies: 17 | flutter_test: 18 | sdk: flutter 19 | flutter_lints: ^1.0.0 20 | 21 | flutter: 22 | uses-material-design: true 23 | -------------------------------------------------------------------------------- /packages/zvehicles/example/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/web/favicon.png -------------------------------------------------------------------------------- /packages/zvehicles/example/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/web/icons/Icon-192.png -------------------------------------------------------------------------------- /packages/zvehicles/example/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/web/icons/Icon-512.png -------------------------------------------------------------------------------- /packages/zvehicles/example/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /packages/zvehicles/example/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /packages/zvehicles/example/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "short_name": "example", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | ) 7 | 8 | set(PLUGIN_BUNDLED_LIBRARIES) 9 | 10 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 11 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 12 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 13 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 14 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 15 | endforeach(plugin) 16 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | project(runner LANGUAGES CXX) 3 | 4 | add_executable(${BINARY_NAME} WIN32 5 | "flutter_window.cpp" 6 | "main.cpp" 7 | "utils.cpp" 8 | "win32_window.cpp" 9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 10 | "Runner.rc" 11 | "runner.exe.manifest" 12 | ) 13 | apply_standard_settings(${BINARY_NAME}) 14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 17 | add_dependencies(${BINARY_NAME} flutter_assemble) 18 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/flutter_window.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_FLUTTER_WINDOW_H_ 2 | #define RUNNER_FLUTTER_WINDOW_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "win32_window.h" 10 | 11 | // A window that does nothing but host a Flutter view. 12 | class FlutterWindow : public Win32Window { 13 | public: 14 | // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 | explicit FlutterWindow(const flutter::DartProject& project); 16 | virtual ~FlutterWindow(); 17 | 18 | protected: 19 | // Win32Window: 20 | bool OnCreate() override; 21 | void OnDestroy() override; 22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 | LPARAM const lparam) noexcept override; 24 | 25 | private: 26 | // The project to run. 27 | flutter::DartProject project_; 28 | 29 | // The Flutter instance hosted by this window. 30 | std::unique_ptr flutter_controller_; 31 | }; 32 | 33 | #endif // RUNNER_FLUTTER_WINDOW_H_ 34 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/packages/zvehicles/example/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /packages/zvehicles/example/windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/src/helpers/helpers.dart: -------------------------------------------------------------------------------- 1 | export 'zrect_net.dart'; 2 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/src/zbus/zbus.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | import 'package:zvehicles/src/zbus/zbus_body.dart'; 4 | import 'package:zvehicles/zvehicles.dart'; 5 | 6 | export 'zbus_theme.dart'; 7 | 8 | /// {@template zvehicles.zbus} 9 | /// A [ZBus] is a bus represented by a [ZGroup]. 10 | /// {@endtemplate} 11 | class ZBus extends StatelessWidget { 12 | /// {@macro zvehicles.zbus} 13 | const ZBus({ 14 | Key? key, 15 | required BusThemeData theme, 16 | }) : _theme = theme, 17 | super(key: key); 18 | 19 | final BusThemeData _theme; 20 | 21 | @override 22 | Widget build(BuildContext context) { 23 | return Provider.value( 24 | value: _theme, 25 | child: ZGroup( 26 | sortMode: SortMode.stack, 27 | children: const [ 28 | ZBusBody(), 29 | ], 30 | ), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/src/zcar/zcar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | import 'package:zvehicles/src/zcar/zcar_body.dart'; 4 | import 'package:zvehicles/zvehicles.dart'; 5 | 6 | export 'zcar_theme.dart'; 7 | 8 | /// {@template zvehicles.zcar} 9 | /// A [ZCar] is a car represented by a [ZGroup]. 10 | /// {@endtemplate} 11 | class ZCar extends StatelessWidget { 12 | /// {@macro zvehicles.zcar} 13 | const ZCar({ 14 | Key? key, 15 | required CarThemeData theme, 16 | }) : _theme = theme, 17 | super(key: key); 18 | 19 | final CarThemeData _theme; 20 | 21 | @override 22 | Widget build(BuildContext context) { 23 | return Provider.value( 24 | value: _theme, 25 | child: const ZCarBody(), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/src/ztruck/ztruck.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | import 'package:zvehicles/src/ztruck/ztruck_body.dart'; 4 | import 'package:zvehicles/zvehicles.dart'; 5 | 6 | export 'ztruck_theme.dart'; 7 | 8 | /// {@template zvehicles.ztruck} 9 | /// A [ZTruck] is a truck represented by a [ZGroup]. 10 | /// {@endtemplate} 11 | class ZTruck extends StatelessWidget { 12 | /// {@macro zvehicles.ztruck} 13 | const ZTruck({ 14 | Key? key, 15 | required TruckThemeData theme, 16 | }) : _theme = theme, 17 | super(key: key); 18 | 19 | final TruckThemeData _theme; 20 | 21 | @override 22 | Widget build(BuildContext context) { 23 | return Provider.value( 24 | value: _theme, 25 | child: const ZTruckBody(), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/src/zvehicle_side.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: public_member_api_docs 2 | 3 | enum ZVehicleSide { 4 | right, 5 | left, 6 | rear, 7 | front, 8 | } 9 | 10 | extension ZVehicleSideX on ZVehicleSide { 11 | bool get isSide => isRight || isLeft; 12 | bool get isRight => this == ZVehicleSide.right; 13 | bool get isLeft => this == ZVehicleSide.left; 14 | bool get isRear => this == ZVehicleSide.rear; 15 | bool get isFront => this == ZVehicleSide.front; 16 | } 17 | -------------------------------------------------------------------------------- /packages/zvehicles/lib/zvehicles.dart: -------------------------------------------------------------------------------- 1 | library zvehicles; 2 | 3 | export 'package:zflutter/zflutter.dart'; 4 | 5 | export 'src/zambulance/zambulance.dart'; 6 | export 'src/zbus/zbus.dart'; 7 | export 'src/zcar/zcar.dart'; 8 | export 'src/ztruck/ztruck.dart'; 9 | 10 | export 'src/zvehicle.dart'; 11 | export 'src/zvehicles_theme_data.dart'; 12 | -------------------------------------------------------------------------------- /packages/zvehicles/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: zvehicles 2 | description: Collection of vehicles made with ZFlutter. 3 | version: 1.0.0+1 4 | publish_to: none 5 | 6 | environment: 7 | sdk: ">=2.16.0 <3.0.0" 8 | 9 | dependencies: 10 | equatable: 11 | flutter: 12 | sdk: flutter 13 | provider: 14 | puzzle_models: 15 | path: ../puzzle_models 16 | vector_math: 17 | zflutter: 18 | git: 19 | url: https://github.com/jamesblasco/zflutter 20 | path: zflutter 21 | ref: bde6f320d6d278a82f40420df68a1ab4c466ba4c 22 | 23 | dev_dependencies: 24 | flutter_test: 25 | sdk: flutter 26 | very_good_analysis: ^2.4.0 -------------------------------------------------------------------------------- /test/helpers/helpers.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | export 'pump_app.dart'; 9 | -------------------------------------------------------------------------------- /test/helpers/pump_app.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2021, Very Good Ventures 2 | // https://verygood.ventures 3 | // 4 | // Use of this source code is governed by an MIT-style 5 | // license that can be found in the LICENSE file or at 6 | // https://opensource.org/licenses/MIT. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_localizations/flutter_localizations.dart'; 10 | import 'package:flutter_test/flutter_test.dart'; 11 | import 'package:rush_hour_puzzle/l10n/l10n.dart'; 12 | 13 | extension PumpApp on WidgetTester { 14 | Future pumpApp(Widget widget) { 15 | return pumpWidget( 16 | MaterialApp( 17 | localizationsDelegates: const [ 18 | AppLocalizations.delegate, 19 | GlobalMaterialLocalizations.delegate, 20 | ], 21 | supportedLocales: AppLocalizations.supportedLocales, 22 | home: widget, 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/puzzle/bloc/puzzle_bloc_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_test/flutter_test.dart'; 2 | import 'package:puzzle_models/puzzle_models.dart'; 3 | 4 | class FakeRushPuzzle extends Fake implements RushPuzzle {} 5 | 6 | void main() { 7 | // TODO(alestiago): test for PuzzleVehicleMoved, PuzzleMoveUndid. 8 | 9 | group('PuzzleBloc', () {}); 10 | } 11 | -------------------------------------------------------------------------------- /test/puzzle/bloc/puzzle_event_test.dart: -------------------------------------------------------------------------------- 1 | void main() { 2 | // TODO(alestiago): Write tests. 3 | } 4 | -------------------------------------------------------------------------------- /test/timer/bloc/timer_event_test.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:rush_hour_puzzle/timer/timer.dart'; 4 | 5 | void main() { 6 | const elaspsedSeconds = 1; 7 | 8 | group('TimerEvent', () { 9 | group('TimerStarted', () { 10 | test('supports value comparisons', () { 11 | expect(TimerStarted(), equals(TimerStarted())); 12 | }); 13 | }); 14 | 15 | group('TimerTicked', () { 16 | test('supports value comparisons', () { 17 | expect( 18 | TimerTicked(elaspsedSeconds), 19 | equals(TimerTicked(elaspsedSeconds)), 20 | ); 21 | }); 22 | }); 23 | 24 | group('TimerStopped', () { 25 | test('supports value comparisons', () { 26 | expect( 27 | TimerStopped(), 28 | equals(TimerStopped()), 29 | ); 30 | }); 31 | }); 32 | 33 | group('TimerReset', () { 34 | test('supports value comparisons', () { 35 | expect(TimerReset(), equals(TimerReset())); 36 | }); 37 | }); 38 | }); 39 | } 40 | -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/web/icons/favicon.png -------------------------------------------------------------------------------- /web/icons/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/web/icons/social.png -------------------------------------------------------------------------------- /web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Flutter Rush Puzzle", 3 | "short_name": "Flutter Rush Puzzle", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "Play a daily rush puzzle game.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | 11 | void RegisterPlugins(flutter::PluginRegistry* registry) { 12 | UrlLauncherWindowsRegisterWithRegistrar( 13 | registry->GetRegistrarForPlugin("UrlLauncherWindows")); 14 | } 15 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | url_launcher_windows 7 | ) 8 | 9 | set(PLUGIN_BUNDLED_LIBRARIES) 10 | 11 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 12 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 13 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 14 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 15 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 16 | endforeach(plugin) 17 | -------------------------------------------------------------------------------- /windows/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/windows/logo.png -------------------------------------------------------------------------------- /windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | project(runner LANGUAGES CXX) 3 | 4 | add_executable(${BINARY_NAME} WIN32 5 | "flutter_window.cpp" 6 | "main.cpp" 7 | "utils.cpp" 8 | "win32_window.cpp" 9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 10 | "Runner.rc" 11 | "runner.exe.manifest" 12 | ) 13 | apply_standard_settings(${BINARY_NAME}) 14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 17 | add_dependencies(${BINARY_NAME} flutter_assemble) 18 | -------------------------------------------------------------------------------- /windows/runner/flutter_window.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_FLUTTER_WINDOW_H_ 2 | #define RUNNER_FLUTTER_WINDOW_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "win32_window.h" 10 | 11 | // A window that does nothing but host a Flutter view. 12 | class FlutterWindow : public Win32Window { 13 | public: 14 | // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 | explicit FlutterWindow(const flutter::DartProject& project); 16 | virtual ~FlutterWindow(); 17 | 18 | protected: 19 | // Win32Window: 20 | bool OnCreate() override; 21 | void OnDestroy() override; 22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 | LPARAM const lparam) noexcept override; 24 | 25 | private: 26 | // The project to run. 27 | flutter::DartProject project_; 28 | 29 | // The Flutter instance hosted by this window. 30 | std::unique_ptr flutter_controller_; 31 | }; 32 | 33 | #endif // RUNNER_FLUTTER_WINDOW_H_ 34 | -------------------------------------------------------------------------------- /windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alestiago/flutter_rush_puzzle/628d176c5c88c95eca417a30f145161e7926db98/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | --------------------------------------------------------------------------------