Full Code of flame-engine/flame for AI

main be8607ac4812 cached
2217 files
6.9 MB
1.9M tokens
7169 symbols
1 requests
Download .txt
Showing preview only (7,736K chars total). Download the full file or copy to clipboard to get everything.
Repository: flame-engine/flame
Branch: main
Commit: be8607ac4812
Files: 2217
Total size: 6.9 MB

Directory structure:
gitextract_z4rtht8z/

├── .github/
│   ├── .cspell/
│   │   ├── dart_dictionary.txt
│   │   ├── flame_dictionary.txt
│   │   ├── gamedev_dictionary.txt
│   │   ├── people_usernames.txt
│   │   ├── sphinx_dictionary.txt
│   │   └── words_dictionary.txt
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── improvement_suggestion.yml
│   ├── cspell.json
│   ├── pull_request_template.md
│   └── workflows/
│       ├── cicd.yml
│       ├── gh-pages.yml
│       ├── release-prepare.yml
│       ├── release-publish.yml
│       ├── release-tag.yml
│       ├── spell_checker.yml
│       └── title-validation.yml
├── .gitignore
├── .markdownlint.yaml
├── .markdownlintignore
├── .readthedocs.yaml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── doc/
│   ├── README.md
│   ├── _sphinx/
│   │   ├── Makefile
│   │   ├── conf.py
│   │   ├── extensions/
│   │   │   ├── dart_domain.css
│   │   │   ├── dart_domain.py
│   │   │   ├── flutter_app.css
│   │   │   ├── flutter_app.js
│   │   │   ├── flutter_app.py
│   │   │   ├── package.css
│   │   │   ├── package.py
│   │   │   ├── yarn_lexer.css
│   │   │   └── yarn_lexer.py
│   │   ├── kill-server.py
│   │   ├── make.bat
│   │   ├── requirements.txt
│   │   ├── scripts/
│   │   │   ├── menu-expand.js
│   │   │   └── versions.js
│   │   └── theme/
│   │       ├── copy-button.css
│   │       ├── doctools.js
│   │       ├── flames.css
│   │       ├── layout.html
│   │       ├── search.html
│   │       └── theme.conf
│   ├── bridge_packages/
│   │   ├── bridge_packages.md
│   │   ├── flame_3d/
│   │   │   ├── basic_concepts.md
│   │   │   ├── flame_3d.md
│   │   │   └── getting_started.md
│   │   ├── flame_audio/
│   │   │   ├── audio.md
│   │   │   ├── audio_pool.md
│   │   │   ├── bgm.md
│   │   │   └── flame_audio.md
│   │   ├── flame_behaviors/
│   │   │   ├── collision-detection.md
│   │   │   ├── conventions/
│   │   │   │   ├── coding-conventions.md
│   │   │   │   └── naming-conventions.md
│   │   │   ├── event-behaviors.md
│   │   │   ├── flame_behaviors.md
│   │   │   └── getting_started.md
│   │   ├── flame_bloc/
│   │   │   ├── bloc.md
│   │   │   ├── bloc_components.md
│   │   │   └── flame_bloc.md
│   │   ├── flame_console/
│   │   │   └── flame_console.md
│   │   ├── flame_fire_atlas/
│   │   │   ├── fire_atlas.md
│   │   │   └── flame_fire_atlas.md
│   │   ├── flame_forge2d/
│   │   │   ├── flame_forge2d.md
│   │   │   ├── forge2d.md
│   │   │   └── joints.md
│   │   ├── flame_isolate/
│   │   │   ├── flame_isolate.md
│   │   │   └── isolate.md
│   │   ├── flame_lottie/
│   │   │   └── flame_lottie.md
│   │   ├── flame_network_assets/
│   │   │   └── flame_network_assets.md
│   │   ├── flame_oxygen/
│   │   │   └── flame_oxygen.md
│   │   ├── flame_rive/
│   │   │   ├── flame_rive.md
│   │   │   └── rive.md
│   │   ├── flame_riverpod/
│   │   │   ├── component.md
│   │   │   ├── flame_riverpod.md
│   │   │   ├── riverpod.md
│   │   │   └── widget.md
│   │   ├── flame_spine/
│   │   │   └── flame_spine.md
│   │   ├── flame_splash_screen/
│   │   │   └── flame_splash_screen.md
│   │   ├── flame_svg/
│   │   │   ├── flame_svg.md
│   │   │   └── svg.md
│   │   ├── flame_texturepacker/
│   │   │   └── flame_texturepacker.md
│   │   └── flame_tiled/
│   │       ├── flame_tiled.md
│   │       ├── layers.md
│   │       └── tiled.md
│   ├── development/
│   │   ├── contributing.md
│   │   ├── development.md
│   │   ├── documentation.md
│   │   ├── style_guide.md
│   │   └── testing_guide.md
│   ├── flame/
│   │   ├── camera.md
│   │   ├── collision_detection.md
│   │   ├── components/
│   │   │   ├── components.md
│   │   │   ├── parallax_component.md
│   │   │   ├── position_component.md
│   │   │   ├── shape_components.md
│   │   │   ├── sprite_components.md
│   │   │   └── utility_components.md
│   │   ├── diagrams/
│   │   │   ├── component.md
│   │   │   ├── component_life_cycle.md
│   │   │   ├── flame_3d_components.md
│   │   │   ├── flame_game_life_cycle.md
│   │   │   └── low_level_game_api.md
│   │   ├── effects/
│   │   │   ├── anchor_effects.md
│   │   │   ├── color_effects.md
│   │   │   ├── combined_effect.md
│   │   │   ├── effect_controllers.md
│   │   │   ├── effects.md
│   │   │   ├── function_effect.md
│   │   │   ├── move_effects.md
│   │   │   ├── remove_effect.md
│   │   │   ├── rotate_effects.md
│   │   │   ├── scale_effects.md
│   │   │   ├── sequence_effect.md
│   │   │   └── size_effects.md
│   │   ├── examples/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── rewards.riv
│   │   │   │   └── skills.riv
│   │   │   ├── lib/
│   │   │   │   ├── anchor.dart
│   │   │   │   ├── anchor_by_effect.dart
│   │   │   │   ├── anchor_to_effect.dart
│   │   │   │   ├── collision_detection.dart
│   │   │   │   ├── color_effect.dart
│   │   │   │   ├── decorator_blur.dart
│   │   │   │   ├── decorator_grayscale.dart
│   │   │   │   ├── decorator_hue.dart
│   │   │   │   ├── decorator_rotate3d.dart
│   │   │   │   ├── decorator_shadow3d.dart
│   │   │   │   ├── decorator_tint.dart
│   │   │   │   ├── drag_events.dart
│   │   │   │   ├── ember.dart
│   │   │   │   ├── flower.dart
│   │   │   │   ├── glow_effect.dart
│   │   │   │   ├── hue_effect.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── move_along_path_effect.dart
│   │   │   │   ├── move_by_effect.dart
│   │   │   │   ├── move_to_effect.dart
│   │   │   │   ├── opacity_by_effect.dart
│   │   │   │   ├── opacity_effect_with_target.dart
│   │   │   │   ├── opacity_to_effect.dart
│   │   │   │   ├── pointer_events.dart
│   │   │   │   ├── post_process.dart
│   │   │   │   ├── ray_cast.dart
│   │   │   │   ├── ray_trace.dart
│   │   │   │   ├── remove_effect.dart
│   │   │   │   ├── rive_example.dart
│   │   │   │   ├── rotate_around_effect.dart
│   │   │   │   ├── rotate_by_effect.dart
│   │   │   │   ├── rotate_to_effect.dart
│   │   │   │   ├── router.dart
│   │   │   │   ├── scale_by_effect.dart
│   │   │   │   ├── scale_to_effect.dart
│   │   │   │   ├── sequence_effect.dart
│   │   │   │   ├── size_by_effect.dart
│   │   │   │   ├── size_to_effect.dart
│   │   │   │   ├── tap_events.dart
│   │   │   │   ├── time_scale.dart
│   │   │   │   └── value_route.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── web/
│   │   │       └── index.html
│   │   ├── flame.md
│   │   ├── game.md
│   │   ├── game_widget.md
│   │   ├── inputs/
│   │   │   ├── drag_events.md
│   │   │   ├── gesture_input.md
│   │   │   ├── hardware_keyboard_detector.md
│   │   │   ├── inputs.md
│   │   │   ├── keyboard_input.md
│   │   │   ├── other_inputs.md
│   │   │   ├── pointer_events.md
│   │   │   ├── scale_events.md
│   │   │   └── tap_events.md
│   │   ├── layout/
│   │   │   ├── align_component.md
│   │   │   ├── column_component.md
│   │   │   ├── expanded_component.md
│   │   │   ├── layout.md
│   │   │   ├── padding_component.md
│   │   │   └── row_component.md
│   │   ├── other/
│   │   │   ├── debug.md
│   │   │   ├── other.md
│   │   │   ├── performance.md
│   │   │   ├── util.md
│   │   │   └── widgets.md
│   │   ├── overlays.md
│   │   ├── platforms.md
│   │   ├── rendering/
│   │   │   ├── decorators.md
│   │   │   ├── images.md
│   │   │   ├── layers.md
│   │   │   ├── palette.md
│   │   │   ├── particles.md
│   │   │   ├── post_processing.md
│   │   │   ├── rendering.md
│   │   │   └── text_rendering.md
│   │   ├── router.md
│   │   └── structure.md
│   ├── index.md
│   ├── other_modules/
│   │   ├── jenny/
│   │   │   ├── jenny.md
│   │   │   ├── language/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── character.md
│   │   │   │   │   ├── commands.md
│   │   │   │   │   ├── declare.md
│   │   │   │   │   ├── if.md
│   │   │   │   │   ├── jump.md
│   │   │   │   │   ├── local.md
│   │   │   │   │   ├── set.md
│   │   │   │   │   ├── stop.md
│   │   │   │   │   ├── user_defined_commands.md
│   │   │   │   │   ├── visit.md
│   │   │   │   │   └── wait.md
│   │   │   │   ├── expressions/
│   │   │   │   │   ├── expressions.md
│   │   │   │   │   ├── functions/
│   │   │   │   │   │   ├── functions.md
│   │   │   │   │   │   ├── misc.md
│   │   │   │   │   │   ├── numeric.md
│   │   │   │   │   │   ├── random.md
│   │   │   │   │   │   └── type.md
│   │   │   │   │   ├── operators.md
│   │   │   │   │   └── variables.md
│   │   │   │   ├── language.md
│   │   │   │   ├── lines.md
│   │   │   │   ├── markup.md
│   │   │   │   ├── nodes.md
│   │   │   │   └── options.md
│   │   │   └── runtime/
│   │   │       ├── character.md
│   │   │       ├── character_storage.md
│   │   │       ├── command_storage.md
│   │   │       ├── dialogue_choice.md
│   │   │       ├── dialogue_line.md
│   │   │       ├── dialogue_option.md
│   │   │       ├── dialogue_runner.md
│   │   │       ├── dialogue_view.md
│   │   │       ├── function_storage.md
│   │   │       ├── jenny_runtime.md
│   │   │       ├── markup_attribute.md
│   │   │       ├── node.md
│   │   │       ├── user_defined_command.md
│   │   │       ├── variable_storage.md
│   │   │       └── yarn_project.md
│   │   ├── other_modules.md
│   │   └── oxygen/
│   │       ├── components.md
│   │       └── oxygen.md
│   ├── resources/
│   │   └── resources.md
│   └── tutorials/
│       ├── bare_flame_game.md
│       ├── basic_shader/
│       │   ├── basic_shader.md
│       │   ├── step1.md
│       │   ├── step2.md
│       │   ├── step3.md
│       │   ├── step4.md
│       │   └── takeaways.md
│       ├── klondike/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── main.dart
│       │   │   │   ├── step2/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── foundation.dart
│       │   │   │   │   │   ├── pile.dart
│       │   │   │   │   │   ├── stock.dart
│       │   │   │   │   │   └── waste.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step3/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── card.dart
│       │   │   │   │   │   ├── foundation.dart
│       │   │   │   │   │   ├── pile.dart
│       │   │   │   │   │   ├── stock.dart
│       │   │   │   │   │   └── waste.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   ├── main.dart
│       │   │   │   │   ├── rank.dart
│       │   │   │   │   └── suit.dart
│       │   │   │   ├── step4/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── card.dart
│       │   │   │   │   │   ├── foundation_pile.dart
│       │   │   │   │   │   ├── stock_pile.dart
│       │   │   │   │   │   ├── tableau_pile.dart
│       │   │   │   │   │   └── waste_pile.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   ├── main.dart
│       │   │   │   │   ├── pile.dart
│       │   │   │   │   ├── rank.dart
│       │   │   │   │   └── suit.dart
│       │   │   │   └── step5/
│       │   │   │       ├── components/
│       │   │   │       │   ├── card.dart
│       │   │   │       │   ├── flat_button.dart
│       │   │   │       │   ├── foundation_pile.dart
│       │   │   │       │   ├── stock_pile.dart
│       │   │   │       │   ├── tableau_pile.dart
│       │   │   │       │   └── waste_pile.dart
│       │   │   │       ├── klondike_game.dart
│       │   │   │       ├── klondike_world.dart
│       │   │   │       ├── main.dart
│       │   │   │       ├── pile.dart
│       │   │   │       ├── rank.dart
│       │   │   │       └── suit.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── klondike.md
│       │   ├── step1.md
│       │   ├── step2.md
│       │   ├── step3.md
│       │   ├── step4.md
│       │   └── step5.md
│       ├── platformer/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── actors/
│       │   │   │   │   ├── ember.dart
│       │   │   │   │   └── water_enemy.dart
│       │   │   │   ├── ember_quest.dart
│       │   │   │   ├── main.dart
│       │   │   │   ├── managers/
│       │   │   │   │   └── segment_manager.dart
│       │   │   │   ├── objects/
│       │   │   │   │   ├── ground_block.dart
│       │   │   │   │   ├── platform_block.dart
│       │   │   │   │   └── star.dart
│       │   │   │   └── overlays/
│       │   │   │       ├── game_over.dart
│       │   │   │       ├── heart.dart
│       │   │   │       ├── hud.dart
│       │   │   │       └── main_menu.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── platformer.md
│       │   ├── step_1.md
│       │   ├── step_2.md
│       │   ├── step_3.md
│       │   ├── step_4.md
│       │   ├── step_5.md
│       │   ├── step_6.md
│       │   └── step_7.md
│       ├── space_shooter/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── main.dart
│       │   │   │   ├── step1/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step2/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step3/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step4/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step5/
│       │   │   │   │   └── main.dart
│       │   │   │   └── step6/
│       │   │   │       └── main.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── space_shooter.md
│       │   ├── step_1.md
│       │   ├── step_2.md
│       │   ├── step_3.md
│       │   ├── step_4.md
│       │   ├── step_5.md
│       │   └── step_6.md
│       └── tutorials.md
├── examples/
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── assets/
│   │   ├── audio/
│   │   │   └── music/
│   │   │       └── bg_music.ogg
│   │   ├── images/
│   │   │   ├── animations/
│   │   │   │   ├── chopper.json
│   │   │   │   └── lottieLogo.json
│   │   │   └── parallax/
│   │   │       └── license.txt
│   │   ├── spine/
│   │   │   ├── LICENSE
│   │   │   ├── spineboy-pro.json
│   │   │   ├── spineboy-pro.skel
│   │   │   └── spineboy.atlas
│   │   ├── tiles/
│   │   │   ├── 0x72_DungeonTilesetII_v1.4.tsx
│   │   │   └── dungeon.tmx
│   │   └── yarn/
│   │       ├── advanced.yarn
│   │       ├── command_lifecycle.yarn
│   │       └── simple.yarn
│   ├── games/
│   │   ├── crystal_ball/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── crystal_ball.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       └── game/
│   │   │   │           ├── components/
│   │   │   │           │   ├── camera_target.dart
│   │   │   │           │   └── input_handler.dart
│   │   │   │           ├── constants.dart
│   │   │   │           ├── entities/
│   │   │   │           │   ├── ground.dart
│   │   │   │           │   └── the_ball.dart
│   │   │   │           ├── game.dart
│   │   │   │           └── post_processes/
│   │   │   │               ├── ball_glow.dart
│   │   │   │               ├── firefly.dart
│   │   │   │               ├── foreground_fog.dart
│   │   │   │               └── water.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── shaders/
│   │   │       ├── firefly.frag
│   │   │       ├── fog.frag
│   │   │       ├── ground.frag
│   │   │       └── the_ball.frag
│   │   ├── padracing/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── ball.dart
│   │   │   │   ├── car.dart
│   │   │   │   ├── game_colors.dart
│   │   │   │   ├── game_over.dart
│   │   │   │   ├── lap_line.dart
│   │   │   │   ├── lap_text.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── menu.dart
│   │   │   │   ├── menu_card.dart
│   │   │   │   ├── padracing_game.dart
│   │   │   │   ├── padracing_widget.dart
│   │   │   │   ├── tire.dart
│   │   │   │   ├── trail.dart
│   │   │   │   └── wall.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── scripts/
│   │   │       └── merge_files.sh
│   │   ├── rogue_shooter/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── components/
│   │   │   │   │   ├── bullet_component.dart
│   │   │   │   │   ├── enemy_component.dart
│   │   │   │   │   ├── enemy_creator.dart
│   │   │   │   │   ├── explosion_component.dart
│   │   │   │   │   ├── player_component.dart
│   │   │   │   │   ├── star_background_creator.dart
│   │   │   │   │   └── star_component.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── rogue_shooter_game.dart
│   │   │   │   └── rogue_shooter_widget.dart
│   │   │   └── pubspec.yaml
│   │   └── trex/
│   │       ├── README.md
│   │       ├── analysis_options.yaml
│   │       ├── lib/
│   │       │   ├── background/
│   │       │   │   ├── cloud.dart
│   │       │   │   ├── cloud_manager.dart
│   │       │   │   └── horizon.dart
│   │       │   ├── game_over.dart
│   │       │   ├── main.dart
│   │       │   ├── obstacle/
│   │       │   │   ├── obstacle.dart
│   │       │   │   ├── obstacle_manager.dart
│   │       │   │   └── obstacle_type.dart
│   │       │   ├── player.dart
│   │       │   ├── trex_game.dart
│   │       │   └── trex_widget.dart
│   │       └── pubspec.yaml
│   ├── lib/
│   │   ├── commons/
│   │   │   ├── commons.dart
│   │   │   └── ember.dart
│   │   ├── main.dart
│   │   ├── platform/
│   │   │   ├── page_provider.dart
│   │   │   ├── stub_provider.dart
│   │   │   └── web_provider.dart
│   │   └── stories/
│   │       ├── animations/
│   │       │   ├── animation_group_example.dart
│   │       │   ├── animations.dart
│   │       │   ├── aseprite_example.dart
│   │       │   ├── basic_animation_example.dart
│   │       │   └── benchmark_example.dart
│   │       ├── bridge_libraries/
│   │       │   ├── audio/
│   │       │   │   ├── audio.dart
│   │       │   │   └── basic_audio_example.dart
│   │       │   ├── flame_forge2d/
│   │       │   │   ├── animated_body_example.dart
│   │       │   │   ├── blob_example.dart
│   │       │   │   ├── camera_example.dart
│   │       │   │   ├── composition_example.dart
│   │       │   │   ├── contact_callbacks_example.dart
│   │       │   │   ├── domino_example.dart
│   │       │   │   ├── drag_callbacks_example.dart
│   │       │   │   ├── flame_forge2d.dart
│   │       │   │   ├── joints/
│   │       │   │   │   ├── constant_volume_joint.dart
│   │       │   │   │   ├── distance_joint.dart
│   │       │   │   │   ├── friction_joint.dart
│   │       │   │   │   ├── gear_joint.dart
│   │       │   │   │   ├── motor_joint.dart
│   │       │   │   │   ├── mouse_joint.dart
│   │       │   │   │   ├── prismatic_joint.dart
│   │       │   │   │   ├── pulley_joint.dart
│   │       │   │   │   ├── revolute_joint.dart
│   │       │   │   │   ├── rope_joint.dart
│   │       │   │   │   └── weld_joint.dart
│   │       │   │   ├── raycast_example.dart
│   │       │   │   ├── revolute_joint_with_motor_example.dart
│   │       │   │   ├── sprite_body_example.dart
│   │       │   │   ├── tap_callbacks_example.dart
│   │       │   │   ├── utils/
│   │       │   │   │   ├── balls.dart
│   │       │   │   │   ├── boundaries.dart
│   │       │   │   │   └── boxes.dart
│   │       │   │   └── widget_example.dart
│   │       │   ├── flame_isolate/
│   │       │   │   ├── isolate.dart
│   │       │   │   └── simple_isolate_example.dart
│   │       │   ├── flame_jenny/
│   │       │   │   ├── commons/
│   │       │   │   │   └── commons.dart
│   │       │   │   ├── components/
│   │       │   │   │   ├── button_row.dart
│   │       │   │   │   ├── command_lifecycle_dialogue_controller.dart
│   │       │   │   │   ├── dialogue_box.dart
│   │       │   │   │   ├── dialogue_button.dart
│   │       │   │   │   ├── dialogue_controller_component.dart
│   │       │   │   │   ├── dialogue_text_box.dart
│   │       │   │   │   └── menu_button.dart
│   │       │   │   ├── jenny.dart
│   │       │   │   ├── jenny_advanced_example.dart
│   │       │   │   ├── jenny_command_lifecycle_example.dart
│   │       │   │   └── jenny_simple_example.dart
│   │       │   ├── flame_lottie/
│   │       │   │   ├── lottie.dart
│   │       │   │   └── lottie_animation_example.dart
│   │       │   └── flame_spine/
│   │       │       ├── basic_spine_example.dart
│   │       │       ├── flame_spine.dart
│   │       │       └── shared_data_spine_example.dart
│   │       ├── camera_and_viewport/
│   │       │   ├── camera_and_viewport.dart
│   │       │   ├── camera_component_example.dart
│   │       │   ├── camera_component_properties_example.dart
│   │       │   ├── camera_follow_and_world_bounds.dart
│   │       │   ├── coordinate_systems_example.dart
│   │       │   ├── fixed_resolution_example.dart
│   │       │   ├── follow_component_example.dart
│   │       │   ├── static_components_example.dart
│   │       │   └── zoom_example.dart
│   │       ├── collision_detection/
│   │       │   ├── bouncing_ball_example.dart
│   │       │   ├── circles_example.dart
│   │       │   ├── collidable_animation_example.dart
│   │       │   ├── collision_detection.dart
│   │       │   ├── multiple_shapes_example.dart
│   │       │   ├── multiple_worlds_example.dart
│   │       │   ├── quadtree_example.dart
│   │       │   ├── raycast_example.dart
│   │       │   ├── raycast_light_example.dart
│   │       │   ├── raycast_max_distance_example.dart
│   │       │   ├── rays_in_shape_example.dart
│   │       │   └── raytrace_example.dart
│   │       ├── components/
│   │       │   ├── clip_component_example.dart
│   │       │   ├── component_pool_example.dart
│   │       │   ├── components.dart
│   │       │   ├── components_notifier_example.dart
│   │       │   ├── components_notifier_provider_example.dart
│   │       │   ├── composability_example.dart
│   │       │   ├── debug_example.dart
│   │       │   ├── has_visibility_example.dart
│   │       │   ├── icon_component_example.dart
│   │       │   ├── keys_example.dart
│   │       │   ├── look_at_example.dart
│   │       │   ├── look_at_smooth_example.dart
│   │       │   ├── priority_example.dart
│   │       │   ├── skip_text_box_component_example.dart
│   │       │   ├── spawn_component_example.dart
│   │       │   └── time_scale_example.dart
│   │       ├── effects/
│   │       │   ├── color_effect_example.dart
│   │       │   ├── combined_effect_example.dart
│   │       │   ├── dual_effect_removal_example.dart
│   │       │   ├── effect_controllers_example.dart
│   │       │   ├── effects.dart
│   │       │   ├── function_effect_example.dart
│   │       │   ├── glow_effect_example.dart
│   │       │   ├── hue_effect_example.dart
│   │       │   ├── move_effect_example.dart
│   │       │   ├── opacity_effect_example.dart
│   │       │   ├── remove_effect_example.dart
│   │       │   ├── rotate_around_effect_example.dart
│   │       │   ├── rotate_effect_example.dart
│   │       │   ├── scale_effect_example.dart
│   │       │   ├── sequence_effect_example.dart
│   │       │   └── size_effect_example.dart
│   │       ├── experimental/
│   │       │   ├── experimental.dart
│   │       │   ├── layout_component_example_1.dart
│   │       │   ├── layout_component_example_2.dart
│   │       │   ├── layout_component_example_3.dart
│   │       │   ├── layout_component_example_size.dart
│   │       │   └── shapes.dart
│   │       ├── games/
│   │       │   └── games.dart
│   │       ├── image/
│   │       │   ├── brighten.dart
│   │       │   ├── darken.dart
│   │       │   ├── image.dart
│   │       │   └── resize.dart
│   │       ├── input/
│   │       │   ├── advanced_button_example.dart
│   │       │   ├── double_tap_callbacks_example.dart
│   │       │   ├── drag_callbacks_example.dart
│   │       │   ├── gesture_hitboxes_example.dart
│   │       │   ├── hardware_keyboard_example.dart
│   │       │   ├── hover_callbacks_example.dart
│   │       │   ├── input.dart
│   │       │   ├── joystick_advanced_example.dart
│   │       │   ├── joystick_example.dart
│   │       │   ├── joystick_player.dart
│   │       │   ├── keyboard_example.dart
│   │       │   ├── keyboard_listener_component_example.dart
│   │       │   ├── mouse_cursor_example.dart
│   │       │   ├── mouse_movement_example.dart
│   │       │   ├── multitap_advanced_example.dart
│   │       │   ├── multitap_example.dart
│   │       │   ├── overlapping_tap_callbacks_example.dart
│   │       │   ├── scale_example.dart
│   │       │   ├── scroll_example.dart
│   │       │   ├── secondary_tap_callbacks_example.dart
│   │       │   └── tap_callbacks_example.dart
│   │       ├── layout/
│   │       │   ├── align_component.dart
│   │       │   └── layout.dart
│   │       ├── parallax/
│   │       │   ├── advanced_parallax_example.dart
│   │       │   ├── animation_parallax_example.dart
│   │       │   ├── basic_parallax_example.dart
│   │       │   ├── component_parallax_example.dart
│   │       │   ├── no_fcs_parallax_example.dart
│   │       │   ├── parallax.dart
│   │       │   ├── sandbox_layer_parallax_example.dart
│   │       │   └── small_parallax_example.dart
│   │       ├── rendering/
│   │       │   ├── decorator_hue_example.dart
│   │       │   ├── decorator_vs_effect_example.dart
│   │       │   ├── decorators.dart
│   │       │   ├── flip_sprite_example.dart
│   │       │   ├── isometric_tile_map_example.dart
│   │       │   ├── layers_example.dart
│   │       │   ├── nine_tile_box_custom_grid_example.dart
│   │       │   ├── nine_tile_box_example.dart
│   │       │   ├── particles_example.dart
│   │       │   ├── particles_interactive_example.dart
│   │       │   ├── rendering.dart
│   │       │   ├── rich_text_example.dart
│   │       │   ├── text_box_example.dart
│   │       │   └── text_example.dart
│   │       ├── router/
│   │       │   ├── router.dart
│   │       │   └── router_world_example.dart
│   │       ├── sprites/
│   │       │   ├── base64_sprite_example.dart
│   │       │   ├── basic_sprite_example.dart
│   │       │   ├── sprite_batch_example.dart
│   │       │   ├── sprite_batch_load_example.dart
│   │       │   ├── sprite_group_example.dart
│   │       │   ├── sprite_sheet_example.dart
│   │       │   └── sprites.dart
│   │       ├── structure/
│   │       │   ├── levels.dart
│   │       │   └── structure.dart
│   │       ├── svg/
│   │       │   ├── svg.dart
│   │       │   └── svg_component.dart
│   │       ├── system/
│   │       │   ├── overlays_example.dart
│   │       │   ├── pause_resume_example.dart
│   │       │   ├── resize_example.dart
│   │       │   ├── step_engine_example.dart
│   │       │   ├── system.dart
│   │       │   └── without_flame_game_example.dart
│   │       ├── tiled/
│   │       │   ├── flame_tiled_animation_example.dart
│   │       │   └── tiled.dart
│   │       ├── utils/
│   │       │   ├── timer_component_example.dart
│   │       │   ├── timer_example.dart
│   │       │   └── utils.dart
│   │       └── widgets/
│   │           ├── custom_painter_example.dart
│   │           ├── nine_tile_box_example.dart
│   │           ├── nine_tile_box_example_with_animation.dart
│   │           ├── paints.dart
│   │           ├── partial_sprite_widget_example.dart
│   │           ├── sprite_animation_widget_example.dart
│   │           ├── sprite_button_example.dart
│   │           ├── sprite_widget_example.dart
│   │           └── widgets.dart
│   ├── pubspec.yaml
│   └── web/
│       ├── CNAME
│       ├── index.html
│       └── manifest.json
├── packages/
│   ├── README.md
│   ├── flame/
│   │   ├── .min_coverage
│   │   ├── .pubignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── analysis_options.yaml
│   │   ├── benchmark/
│   │   │   ├── collision_detection_benchmark.dart
│   │   │   ├── components_at_point_benchmark.dart
│   │   │   ├── main.dart
│   │   │   ├── render_components_benchmark.dart
│   │   │   └── update_components_benchmark.dart
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── extension/
│   │   │   └── devtools/
│   │   │       └── config.yaml
│   │   ├── lib/
│   │   │   ├── cache.dart
│   │   │   ├── camera.dart
│   │   │   ├── collisions.dart
│   │   │   ├── components.dart
│   │   │   ├── debug.dart
│   │   │   ├── devtools.dart
│   │   │   ├── effects.dart
│   │   │   ├── events.dart
│   │   │   ├── experimental.dart
│   │   │   ├── extensions.dart
│   │   │   ├── flame.dart
│   │   │   ├── game.dart
│   │   │   ├── geometry.dart
│   │   │   ├── image_composition.dart
│   │   │   ├── input.dart
│   │   │   ├── layers.dart
│   │   │   ├── layout.dart
│   │   │   ├── math.dart
│   │   │   ├── palette.dart
│   │   │   ├── parallax.dart
│   │   │   ├── particles.dart
│   │   │   ├── post_process.dart
│   │   │   ├── rendering.dart
│   │   │   ├── sprite.dart
│   │   │   ├── src/
│   │   │   │   ├── anchor.dart
│   │   │   │   ├── cache/
│   │   │   │   │   ├── assets_cache.dart
│   │   │   │   │   ├── images.dart
│   │   │   │   │   ├── matrix_pool.dart
│   │   │   │   │   ├── memory_cache.dart
│   │   │   │   │   └── value_cache.dart
│   │   │   │   ├── camera/
│   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   ├── bounded_position_behavior.dart
│   │   │   │   │   │   ├── follow_behavior.dart
│   │   │   │   │   │   └── viewport_aware_bounds_behavior.dart
│   │   │   │   │   ├── camera_component.dart
│   │   │   │   │   ├── viewfinder.dart
│   │   │   │   │   ├── viewport.dart
│   │   │   │   │   ├── viewports/
│   │   │   │   │   │   ├── circular_viewport.dart
│   │   │   │   │   │   ├── fixed_aspect_ratio_viewport.dart
│   │   │   │   │   │   ├── fixed_resolution_viewport.dart
│   │   │   │   │   │   ├── fixed_size_viewport.dart
│   │   │   │   │   │   └── max_viewport.dart
│   │   │   │   │   └── world.dart
│   │   │   │   ├── collisions/
│   │   │   │   │   ├── broadphase/
│   │   │   │   │   │   ├── broadphase.dart
│   │   │   │   │   │   ├── prospect_pool.dart
│   │   │   │   │   │   ├── quadtree/
│   │   │   │   │   │   │   ├── has_quadtree_collision_detection.dart
│   │   │   │   │   │   │   ├── quad_tree_broadphase.dart
│   │   │   │   │   │   │   ├── quadtree.dart
│   │   │   │   │   │   │   └── quadtree_collision_detection.dart
│   │   │   │   │   │   └── sweep/
│   │   │   │   │   │       └── sweep.dart
│   │   │   │   │   ├── collision_callbacks.dart
│   │   │   │   │   ├── collision_detection.dart
│   │   │   │   │   ├── collision_passthrough.dart
│   │   │   │   │   ├── has_collision_detection.dart
│   │   │   │   │   ├── hitboxes/
│   │   │   │   │   │   ├── circle_hitbox.dart
│   │   │   │   │   │   ├── composite_hitbox.dart
│   │   │   │   │   │   ├── hitbox.dart
│   │   │   │   │   │   ├── polygon_hitbox.dart
│   │   │   │   │   │   ├── rectangle_hitbox.dart
│   │   │   │   │   │   ├── screen_hitbox.dart
│   │   │   │   │   │   └── shape_hitbox.dart
│   │   │   │   │   └── standard_collision_detection.dart
│   │   │   │   ├── components/
│   │   │   │   │   ├── clip_component.dart
│   │   │   │   │   ├── component_pool.dart
│   │   │   │   │   ├── components_notifier.dart
│   │   │   │   │   ├── core/
│   │   │   │   │   │   ├── component.dart
│   │   │   │   │   │   ├── component_key.dart
│   │   │   │   │   │   ├── component_render_context.dart
│   │   │   │   │   │   ├── component_tree_root.dart
│   │   │   │   │   │   └── recycled_queue.dart
│   │   │   │   │   ├── custom_painter_component.dart
│   │   │   │   │   ├── debug/
│   │   │   │   │   │   ├── child_counter_component.dart
│   │   │   │   │   │   └── time_track_component.dart
│   │   │   │   │   ├── fps_component.dart
│   │   │   │   │   ├── fps_text_component.dart
│   │   │   │   │   ├── icon_component.dart
│   │   │   │   │   ├── input/
│   │   │   │   │   │   ├── advanced_button_component.dart
│   │   │   │   │   │   ├── button_component.dart
│   │   │   │   │   │   ├── hud_button_component.dart
│   │   │   │   │   │   ├── hud_margin_component.dart
│   │   │   │   │   │   ├── joystick_component.dart
│   │   │   │   │   │   ├── keyboard_listener_component.dart
│   │   │   │   │   │   ├── sprite_button_component.dart
│   │   │   │   │   │   └── toggle_button_component.dart
│   │   │   │   │   ├── isometric_tile_map_component.dart
│   │   │   │   │   ├── mixins/
│   │   │   │   │   │   ├── component_viewport_margin.dart
│   │   │   │   │   │   ├── coordinate_transform.dart
│   │   │   │   │   │   ├── gesture_hitboxes.dart
│   │   │   │   │   │   ├── has_ancestor.dart
│   │   │   │   │   │   ├── has_auto_batched_children.dart
│   │   │   │   │   │   ├── has_decorator.dart
│   │   │   │   │   │   ├── has_game_ref.dart
│   │   │   │   │   │   ├── has_game_reference.dart
│   │   │   │   │   │   ├── has_paint.dart
│   │   │   │   │   │   ├── has_time_scale.dart
│   │   │   │   │   │   ├── has_visibility.dart
│   │   │   │   │   │   ├── has_world.dart
│   │   │   │   │   │   ├── ignore_events.dart
│   │   │   │   │   │   ├── keyboard_handler.dart
│   │   │   │   │   │   ├── notifier.dart
│   │   │   │   │   │   ├── parent_is_a.dart
│   │   │   │   │   │   ├── single_child_particle.dart
│   │   │   │   │   │   └── snapshot.dart
│   │   │   │   │   ├── nine_tile_box_component.dart
│   │   │   │   │   ├── parallax_component.dart
│   │   │   │   │   ├── particle_system_component.dart
│   │   │   │   │   ├── position_component.dart
│   │   │   │   │   ├── raster_sprite_component.dart
│   │   │   │   │   ├── router/
│   │   │   │   │   │   ├── overlay_route.dart
│   │   │   │   │   │   ├── route.dart
│   │   │   │   │   │   ├── router_component.dart
│   │   │   │   │   │   ├── value_route.dart
│   │   │   │   │   │   └── world_route.dart
│   │   │   │   │   ├── scroll_text_box_component.dart
│   │   │   │   │   ├── spawn_component.dart
│   │   │   │   │   ├── sprite_animation_component.dart
│   │   │   │   │   ├── sprite_animation_group_component.dart
│   │   │   │   │   ├── sprite_batch_component.dart
│   │   │   │   │   ├── sprite_component.dart
│   │   │   │   │   ├── sprite_group_component.dart
│   │   │   │   │   ├── text_box_component.dart
│   │   │   │   │   ├── text_component.dart
│   │   │   │   │   ├── text_element_component.dart
│   │   │   │   │   └── timer_component.dart
│   │   │   │   ├── device.dart
│   │   │   │   ├── devtools/
│   │   │   │   │   ├── connectors/
│   │   │   │   │   │   ├── component_count_connector.dart
│   │   │   │   │   │   ├── component_snapshot_connector.dart
│   │   │   │   │   │   ├── component_tree_connector.dart
│   │   │   │   │   │   ├── debug_mode_connector.dart
│   │   │   │   │   │   ├── game_loop_connector.dart
│   │   │   │   │   │   ├── overlay_navigation_connector.dart
│   │   │   │   │   │   └── position_component_attributes_connector.dart
│   │   │   │   │   ├── dev_tools_connector.dart
│   │   │   │   │   └── dev_tools_service.dart
│   │   │   │   ├── effects/
│   │   │   │   │   ├── anchor_by_effect.dart
│   │   │   │   │   ├── anchor_effect.dart
│   │   │   │   │   ├── anchor_to_effect.dart
│   │   │   │   │   ├── color_effect.dart
│   │   │   │   │   ├── combined_effect.dart
│   │   │   │   │   ├── component_effect.dart
│   │   │   │   │   ├── controllers/
│   │   │   │   │   │   ├── callback_controller.dart
│   │   │   │   │   │   ├── combined_effect_controller.dart
│   │   │   │   │   │   ├── curved_effect_controller.dart
│   │   │   │   │   │   ├── delayed_effect_controller.dart
│   │   │   │   │   │   ├── duration_effect_controller.dart
│   │   │   │   │   │   ├── effect_controller.dart
│   │   │   │   │   │   ├── infinite_effect_controller.dart
│   │   │   │   │   │   ├── linear_effect_controller.dart
│   │   │   │   │   │   ├── mixins/
│   │   │   │   │   │   │   └── has_single_child_effect_controller.dart
│   │   │   │   │   │   ├── pause_effect_controller.dart
│   │   │   │   │   │   ├── random_effect_controller.dart
│   │   │   │   │   │   ├── repeated_effect_controller.dart
│   │   │   │   │   │   ├── reverse_curved_effect_controller.dart
│   │   │   │   │   │   ├── reverse_linear_effect_controller.dart
│   │   │   │   │   │   ├── sequence_effect_controller.dart
│   │   │   │   │   │   ├── sine_effect_controller.dart
│   │   │   │   │   │   ├── speed_effect_controller.dart
│   │   │   │   │   │   └── zigzag_effect_controller.dart
│   │   │   │   │   ├── effect.dart
│   │   │   │   │   ├── effect_target.dart
│   │   │   │   │   ├── function_effect.dart
│   │   │   │   │   ├── glow_effect.dart
│   │   │   │   │   ├── hue_by_effect.dart
│   │   │   │   │   ├── hue_effect.dart
│   │   │   │   │   ├── hue_to_effect.dart
│   │   │   │   │   ├── measurable_effect.dart
│   │   │   │   │   ├── move_along_path_effect.dart
│   │   │   │   │   ├── move_by_effect.dart
│   │   │   │   │   ├── move_effect.dart
│   │   │   │   │   ├── move_to_effect.dart
│   │   │   │   │   ├── opacity_effect.dart
│   │   │   │   │   ├── provider_interfaces.dart
│   │   │   │   │   ├── remove_effect.dart
│   │   │   │   │   ├── rotate_around_effect.dart
│   │   │   │   │   ├── rotate_effect.dart
│   │   │   │   │   ├── scale_effect.dart
│   │   │   │   │   ├── sequence_effect.dart
│   │   │   │   │   ├── size_effect.dart
│   │   │   │   │   └── transform2d_effect.dart
│   │   │   │   ├── events/
│   │   │   │   │   ├── component_mixins/
│   │   │   │   │   │   ├── double_tap_callbacks.dart
│   │   │   │   │   │   ├── drag_callbacks.dart
│   │   │   │   │   │   ├── hover_callbacks.dart
│   │   │   │   │   │   ├── pointer_move_callbacks.dart
│   │   │   │   │   │   ├── scale_callbacks.dart
│   │   │   │   │   │   ├── secondary_tap_callbacks.dart
│   │   │   │   │   │   └── tap_callbacks.dart
│   │   │   │   │   ├── flame_drag_adapter.dart
│   │   │   │   │   ├── flame_game_mixins/
│   │   │   │   │   │   ├── double_tap_dispatcher.dart
│   │   │   │   │   │   ├── multi_drag_dispatcher.dart
│   │   │   │   │   │   ├── multi_tap_dispatcher.dart
│   │   │   │   │   │   ├── pointer_move_dispatcher.dart
│   │   │   │   │   │   ├── scale_dispatcher.dart
│   │   │   │   │   │   └── secondary_tap_dispatcher.dart
│   │   │   │   │   ├── game_mixins/
│   │   │   │   │   │   ├── multi_touch_drag_detector.dart
│   │   │   │   │   │   └── multi_touch_tap_detector.dart
│   │   │   │   │   ├── hardware_keyboard_detector.dart
│   │   │   │   │   ├── interfaces/
│   │   │   │   │   │   ├── multi_drag_listener.dart
│   │   │   │   │   │   ├── multi_tap_listener.dart
│   │   │   │   │   │   └── scale_listener.dart
│   │   │   │   │   ├── messages/
│   │   │   │   │   │   ├── displacement_event.dart
│   │   │   │   │   │   ├── double_tap_cancel_event.dart
│   │   │   │   │   │   ├── double_tap_down_event.dart
│   │   │   │   │   │   ├── double_tap_event.dart
│   │   │   │   │   │   ├── drag_cancel_event.dart
│   │   │   │   │   │   ├── drag_end_event.dart
│   │   │   │   │   │   ├── drag_start_event.dart
│   │   │   │   │   │   ├── drag_update_event.dart
│   │   │   │   │   │   ├── event.dart
│   │   │   │   │   │   ├── location_context_event.dart
│   │   │   │   │   │   ├── pointer_move_event.dart
│   │   │   │   │   │   ├── position_event.dart
│   │   │   │   │   │   ├── scale_end_event.dart
│   │   │   │   │   │   ├── scale_start_event.dart
│   │   │   │   │   │   ├── scale_update_event.dart
│   │   │   │   │   │   ├── secondary_tap_cancel_event.dart
│   │   │   │   │   │   ├── secondary_tap_down_event.dart
│   │   │   │   │   │   ├── secondary_tap_up_event.dart
│   │   │   │   │   │   ├── tap_cancel_event.dart
│   │   │   │   │   │   ├── tap_down_event.dart
│   │   │   │   │   │   └── tap_up_event.dart
│   │   │   │   │   ├── tagged_component.dart
│   │   │   │   │   └── tap_config.dart
│   │   │   │   ├── experimental/
│   │   │   │   │   ├── column_component.dart
│   │   │   │   │   ├── expanded_component.dart
│   │   │   │   │   ├── geometry/
│   │   │   │   │   │   └── shapes/
│   │   │   │   │   │       ├── circle.dart
│   │   │   │   │   │       ├── polygon.dart
│   │   │   │   │   │       ├── rectangle.dart
│   │   │   │   │   │       ├── rounded_rectangle.dart
│   │   │   │   │   │       └── shape.dart
│   │   │   │   │   ├── layout_component.dart
│   │   │   │   │   ├── linear_layout_component.dart
│   │   │   │   │   ├── padding_component.dart
│   │   │   │   │   ├── raycast_result.dart
│   │   │   │   │   ├── row_component.dart
│   │   │   │   │   └── single_layout_component.dart
│   │   │   │   ├── extensions/
│   │   │   │   │   ├── aabb.dart
│   │   │   │   │   ├── canvas.dart
│   │   │   │   │   ├── color.dart
│   │   │   │   │   ├── double.dart
│   │   │   │   │   ├── fragment_shader.dart
│   │   │   │   │   ├── image.dart
│   │   │   │   │   ├── list.dart
│   │   │   │   │   ├── matrix4.dart
│   │   │   │   │   ├── offset.dart
│   │   │   │   │   ├── paint.dart
│   │   │   │   │   ├── path.dart
│   │   │   │   │   ├── picture.dart
│   │   │   │   │   ├── random.dart
│   │   │   │   │   ├── rect.dart
│   │   │   │   │   ├── rectangle.dart
│   │   │   │   │   ├── size.dart
│   │   │   │   │   └── vector2.dart
│   │   │   │   ├── flame.dart
│   │   │   │   ├── game/
│   │   │   │   │   ├── flame_game.dart
│   │   │   │   │   ├── game.dart
│   │   │   │   │   ├── game_loop.dart
│   │   │   │   │   ├── game_render_box.dart
│   │   │   │   │   ├── game_widget/
│   │   │   │   │   │   ├── game_widget.dart
│   │   │   │   │   │   └── gesture_detector_builder.dart
│   │   │   │   │   ├── mixins/
│   │   │   │   │   │   ├── has_performance_tracker.dart
│   │   │   │   │   │   ├── keyboard.dart
│   │   │   │   │   │   └── single_game_instance.dart
│   │   │   │   │   ├── notifying_vector2.dart
│   │   │   │   │   ├── overlay_manager.dart
│   │   │   │   │   └── transform2d.dart
│   │   │   │   ├── geometry/
│   │   │   │   │   ├── circle_component.dart
│   │   │   │   │   ├── constants.dart
│   │   │   │   │   ├── line.dart
│   │   │   │   │   ├── line_segment.dart
│   │   │   │   │   ├── polygon_component.dart
│   │   │   │   │   ├── polygon_ray_intersection.dart
│   │   │   │   │   ├── ray2.dart
│   │   │   │   │   ├── rectangle_component.dart
│   │   │   │   │   ├── shape_component.dart
│   │   │   │   │   └── shape_intersections.dart
│   │   │   │   ├── gestures/
│   │   │   │   │   ├── detectors.dart
│   │   │   │   │   └── events.dart
│   │   │   │   ├── image_composition.dart
│   │   │   │   ├── layers/
│   │   │   │   │   ├── layer.dart
│   │   │   │   │   └── processors.dart
│   │   │   │   ├── layout/
│   │   │   │   │   └── align_component.dart
│   │   │   │   ├── math/
│   │   │   │   │   ├── block.dart
│   │   │   │   │   ├── random_fallback.dart
│   │   │   │   │   ├── solve_cubic.dart
│   │   │   │   │   ├── solve_quadratic.dart
│   │   │   │   │   └── tmp_vector2.dart
│   │   │   │   ├── nine_tile_box.dart
│   │   │   │   ├── palette.dart
│   │   │   │   ├── parallax.dart
│   │   │   │   ├── particles/
│   │   │   │   │   ├── accelerated_particle.dart
│   │   │   │   │   ├── circle_particle.dart
│   │   │   │   │   ├── component_particle.dart
│   │   │   │   │   ├── composed_particle.dart
│   │   │   │   │   ├── computed_particle.dart
│   │   │   │   │   ├── curved_particle.dart
│   │   │   │   │   ├── image_particle.dart
│   │   │   │   │   ├── moving_particle.dart
│   │   │   │   │   ├── paint_particle.dart
│   │   │   │   │   ├── particle.dart
│   │   │   │   │   ├── rotating_particle.dart
│   │   │   │   │   ├── scaled_particle.dart
│   │   │   │   │   ├── scaling_particle.dart
│   │   │   │   │   ├── sprite_animation_particle.dart
│   │   │   │   │   ├── sprite_particle.dart
│   │   │   │   │   └── translated_particle.dart
│   │   │   │   ├── post_process/
│   │   │   │   │   ├── post_process.dart
│   │   │   │   │   └── post_process_component.dart
│   │   │   │   ├── rendering/
│   │   │   │   │   ├── decorator.dart
│   │   │   │   │   ├── hue_decorator.dart
│   │   │   │   │   ├── mutable_transform.dart
│   │   │   │   │   ├── paint_decorator.dart
│   │   │   │   │   ├── rotate3d_decorator.dart
│   │   │   │   │   ├── shadow3d_decorator.dart
│   │   │   │   │   └── transform2d_decorator.dart
│   │   │   │   ├── sprite.dart
│   │   │   │   ├── sprite_animation.dart
│   │   │   │   ├── sprite_animation_ticker.dart
│   │   │   │   ├── sprite_batch.dart
│   │   │   │   ├── sprite_sheet.dart
│   │   │   │   ├── text/
│   │   │   │   │   ├── common/
│   │   │   │   │   │   ├── glyph.dart
│   │   │   │   │   │   ├── line_metrics.dart
│   │   │   │   │   │   ├── sprite_font.dart
│   │   │   │   │   │   └── utils.dart
│   │   │   │   │   ├── elements/
│   │   │   │   │   │   ├── block_element.dart
│   │   │   │   │   │   ├── group_element.dart
│   │   │   │   │   │   ├── group_text_element.dart
│   │   │   │   │   │   ├── inline_text_element.dart
│   │   │   │   │   │   ├── rect_element.dart
│   │   │   │   │   │   ├── rrect_element.dart
│   │   │   │   │   │   ├── sprite_font_text_element.dart
│   │   │   │   │   │   ├── text_element.dart
│   │   │   │   │   │   └── text_painter_text_element.dart
│   │   │   │   │   ├── nodes/
│   │   │   │   │   │   ├── block_node.dart
│   │   │   │   │   │   ├── bold_text_node.dart
│   │   │   │   │   │   ├── code_text_node.dart
│   │   │   │   │   │   ├── column_node.dart
│   │   │   │   │   │   ├── custom_text_node.dart
│   │   │   │   │   │   ├── document_root.dart
│   │   │   │   │   │   ├── group_text_node.dart
│   │   │   │   │   │   ├── header_node.dart
│   │   │   │   │   │   ├── inline_text_node.dart
│   │   │   │   │   │   ├── italic_text_node.dart
│   │   │   │   │   │   ├── paragraph_node.dart
│   │   │   │   │   │   ├── plain_text_node.dart
│   │   │   │   │   │   ├── strikethrough_text_node.dart
│   │   │   │   │   │   ├── text_block_node.dart
│   │   │   │   │   │   └── text_node.dart
│   │   │   │   │   ├── renderers/
│   │   │   │   │   │   ├── sprite_font_renderer.dart
│   │   │   │   │   │   ├── text_paint.dart
│   │   │   │   │   │   ├── text_renderer.dart
│   │   │   │   │   │   └── text_renderer_factory.dart
│   │   │   │   │   └── styles/
│   │   │   │   │       ├── background_style.dart
│   │   │   │   │       ├── block_style.dart
│   │   │   │   │       ├── document_style.dart
│   │   │   │   │       ├── flame_text_style.dart
│   │   │   │   │       ├── inline_text_style.dart
│   │   │   │   │       └── overflow.dart
│   │   │   │   ├── timer.dart
│   │   │   │   └── widgets/
│   │   │   │       ├── animation_widget.dart
│   │   │   │       ├── base_future_builder.dart
│   │   │   │       ├── components_notifier_builder.dart
│   │   │   │       ├── nine_tile_box.dart
│   │   │   │       ├── sprite_button.dart
│   │   │   │       ├── sprite_painter.dart
│   │   │   │       └── sprite_widget.dart
│   │   │   ├── text.dart
│   │   │   ├── timer.dart
│   │   │   └── widgets.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── _resources/
│   │       │   ├── cave_ace.fa
│   │       │   ├── chopper.json
│   │       │   ├── custom_flame_game.dart
│   │       │   ├── load_image.dart
│   │       │   └── test_text_file.txt
│   │       ├── anchor_test.dart
│   │       ├── cache/
│   │       │   ├── assets_cache_test.dart
│   │       │   ├── images_test.dart
│   │       │   └── memory_cache_test.dart
│   │       ├── camera/
│   │       │   ├── behaviors/
│   │       │   │   ├── bounded_position_behavior_test.dart
│   │       │   │   ├── follow_behavior_test.dart
│   │       │   │   └── viewport_aware_bounds_behavior_test.dart
│   │       │   ├── camera_component_test.dart
│   │       │   ├── camera_test_helpers.dart
│   │       │   ├── viewfinder_test.dart
│   │       │   ├── viewports/
│   │       │   │   ├── circular_viewport_test.dart
│   │       │   │   ├── fixed_aspect_ratio_viewport_test.dart
│   │       │   │   ├── fixed_resolution_viewport_test.dart
│   │       │   │   ├── fixed_size_viewport_test.dart
│   │       │   │   └── max_viewport_test.dart
│   │       │   └── world_test.dart
│   │       ├── collisions/
│   │       │   ├── collision_callback_benchmark_test.dart
│   │       │   ├── collision_callback_test.dart
│   │       │   ├── collision_detection_test.dart
│   │       │   ├── collision_passthrough_test.dart
│   │       │   ├── collision_test_helpers.dart
│   │       │   ├── collision_type_test.dart
│   │       │   └── screen_hibox_test.dart
│   │       ├── components/
│   │       │   ├── advanced_button_component_test.dart
│   │       │   ├── button_component_test.dart
│   │       │   ├── clip_component_test.dart
│   │       │   ├── component_pool_test.dart
│   │       │   ├── component_render_context_test.dart
│   │       │   ├── component_test.dart
│   │       │   ├── components_notifier_test.dart
│   │       │   ├── custom_painter_component_test.dart
│   │       │   ├── element_component_test.dart
│   │       │   ├── fps_component_test.dart
│   │       │   ├── has_auto_batched_children_test.dart
│   │       │   ├── hud_button_component_test.dart
│   │       │   ├── hud_margin_component_test.dart
│   │       │   ├── icon_component_test.dart
│   │       │   ├── input/
│   │       │   │   └── sprite_button_component_test.dart
│   │       │   ├── isometric_tile_map_component_test.dart
│   │       │   ├── joystick_component_test.dart
│   │       │   ├── keyboard_listener_component_test.dart
│   │       │   ├── mixins/
│   │       │   │   ├── component_viewport_margin_test.dart
│   │       │   │   ├── gesture_hitboxes_test.dart
│   │       │   │   ├── has_ancestor_test.dart
│   │       │   │   ├── has_decorator_test.dart
│   │       │   │   ├── has_game_ref_test.dart
│   │       │   │   ├── has_paint_test.dart
│   │       │   │   ├── has_time_scale_test.dart
│   │       │   │   ├── has_visibility_test.dart
│   │       │   │   ├── parent_is_a_test.dart
│   │       │   │   └── snapshot_test.dart
│   │       │   ├── parallax_test.dart
│   │       │   ├── particle_system_component_test.dart
│   │       │   ├── position_component_test.dart
│   │       │   ├── post_process_component_test.dart
│   │       │   ├── priority_test.dart
│   │       │   ├── rectangle_component_test.dart
│   │       │   ├── route_test.dart
│   │       │   ├── router_component_test.dart
│   │       │   ├── scroll_text_box_component_test.dart
│   │       │   ├── shape_component_test.dart
│   │       │   ├── spawn_component_test.dart
│   │       │   ├── sprite_animation_component_test.dart
│   │       │   ├── sprite_animation_group_component_test.dart
│   │       │   ├── sprite_component_test.dart
│   │       │   ├── sprite_group_component_test.dart
│   │       │   ├── text_box_component_test.dart
│   │       │   ├── text_component_test.dart
│   │       │   ├── timer_component_test.dart
│   │       │   ├── toogle_button_component_test.dart
│   │       │   ├── value_route_test.dart
│   │       │   └── world_route_test.dart
│   │       ├── custom_component.dart
│   │       ├── effects/
│   │       │   ├── anchor_by_effect_test.dart
│   │       │   ├── anchor_to_effect_test.dart
│   │       │   ├── color_effect_test.dart
│   │       │   ├── combined_effect_test.dart
│   │       │   ├── controllers/
│   │       │   │   ├── curved_effect_controller_test.dart
│   │       │   │   ├── delayed_effect_controller_test.dart
│   │       │   │   ├── effect_controller_test.dart
│   │       │   │   ├── infinite_effect_controller_test.dart
│   │       │   │   ├── linear_effect_controller_test.dart
│   │       │   │   ├── mixins/
│   │       │   │   │   └── has_single_child_effect_controller_test.dart
│   │       │   │   ├── random_effect_controller_test.dart
│   │       │   │   ├── repeated_effect_controller_test.dart
│   │       │   │   ├── sequence_effect_controller_test.dart
│   │       │   │   ├── sine_effect_controller_test.dart
│   │       │   │   ├── speed_effect_controller_test.dart
│   │       │   │   └── zigzag_effect_controller_test.dart
│   │       │   ├── effect_test.dart
│   │       │   ├── function_effect_test.dart
│   │       │   ├── glow_effect.dart
│   │       │   ├── hue_effect_test.dart
│   │       │   ├── move_along_path_effect_test.dart
│   │       │   ├── move_by_effect_test.dart
│   │       │   ├── move_to_effect_test.dart
│   │       │   ├── opacity_effect_test.dart
│   │       │   ├── remove_effect_test.dart
│   │       │   ├── rotate_around_effect_test.dart
│   │       │   ├── rotate_effect_test.dart
│   │       │   ├── scale_effect_test.dart
│   │       │   ├── sequence_effect_test.dart
│   │       │   ├── size_effect_test.dart
│   │       │   └── transform2d_effect_test.dart
│   │       ├── events/
│   │       │   ├── component_mixins/
│   │       │   │   ├── double_tap_callbacks_test.dart
│   │       │   │   ├── drag_callbacks_test.dart
│   │       │   │   ├── hover_callbacks_test.dart
│   │       │   │   ├── ignore_events_test.dart
│   │       │   │   ├── pointer_move_callbacks_test.dart
│   │       │   │   ├── scale_callbacks_test.dart
│   │       │   │   ├── secondary_tap_callbacks_test.dart
│   │       │   │   └── tap_callbacks_test.dart
│   │       │   ├── game_mixins/
│   │       │   │   ├── multi_touch_drag_detector_test.dart
│   │       │   │   └── multi_touch_tap_detector_test.dart
│   │       │   ├── hardware_keyboard_detector_test.dart
│   │       │   └── tap_config_test.dart
│   │       ├── experimental/
│   │       │   ├── geometry/
│   │       │   │   └── shapes/
│   │       │   │       ├── circle_test.dart
│   │       │   │       ├── polygon_test.dart
│   │       │   │       ├── rectangle_test.dart
│   │       │   │       └── rounded_rectangle_test.dart
│   │       │   ├── has_game_reference_test.dart
│   │       │   ├── has_world_test.dart
│   │       │   ├── linear_layout_component_test.dart
│   │       │   ├── linear_layout_component_test_helpers.dart
│   │       │   └── padding_component_test.dart
│   │       ├── extensions/
│   │       │   ├── aabb_test.dart
│   │       │   ├── canvas_test.dart
│   │       │   ├── color_test.dart
│   │       │   ├── double_test.dart
│   │       │   ├── image_extension_test.dart
│   │       │   ├── list_test.dart
│   │       │   ├── matrix4_test.dart
│   │       │   ├── offset_test.dart
│   │       │   ├── paint_test.dart
│   │       │   ├── picture_extension_test.dart
│   │       │   ├── random_test.dart
│   │       │   ├── rect_test.dart
│   │       │   ├── rectangle_test.dart
│   │       │   ├── size_test.dart
│   │       │   └── vector2_test.dart
│   │       ├── fixtures/
│   │       │   └── fixture_reader.dart
│   │       ├── game/
│   │       │   ├── flame_game_test.dart
│   │       │   ├── game_loop_test.dart
│   │       │   ├── game_render_box_test.dart
│   │       │   ├── game_widget/
│   │       │   │   ├── game_widget_controlled_lifecycle_test.dart
│   │       │   │   ├── game_widget_drag_test.dart
│   │       │   │   ├── game_widget_hot_reload_test.dart
│   │       │   │   ├── game_widget_keyboard_test.dart
│   │       │   │   ├── game_widget_lifecycle_test.dart
│   │       │   │   ├── game_widget_mouse_cursor_test.dart
│   │       │   │   ├── game_widget_pause_test.dart
│   │       │   │   ├── game_widget_tap_passthrough_test.dart
│   │       │   │   ├── game_widget_tap_test.dart
│   │       │   │   └── game_widget_test.dart
│   │       │   ├── mixins/
│   │       │   │   ├── has_performance_tracker_test.dart
│   │       │   │   ├── keyboard_test.dart
│   │       │   │   └── single_game_instance_test.dart
│   │       │   ├── notifying_vector2_test.dart
│   │       │   ├── overlays_manager_test.dart
│   │       │   └── transform2d_test.dart
│   │       ├── geometry/
│   │       │   ├── line_segment_test.dart
│   │       │   └── ray2_test.dart
│   │       ├── gestures/
│   │       │   └── detectors_test.dart
│   │       ├── image_composition_test.dart
│   │       ├── layout/
│   │       │   └── align_component_test.dart
│   │       ├── math/
│   │       │   ├── recycled_queue_test.dart
│   │       │   ├── solve_cubic_test.dart
│   │       │   └── solve_quadratic_test.dart
│   │       ├── nine_tile_box_test.dart
│   │       ├── particles/
│   │       │   ├── circle_particle_test.dart
│   │       │   ├── component_particle_test.dart
│   │       │   ├── composed_particle_test.dart
│   │       │   ├── computed_particle_test.dart
│   │       │   ├── curved_particle_test.dart
│   │       │   ├── moving_particle_test.dart
│   │       │   ├── scaled_particle_test.dart
│   │       │   ├── scaling_particle_test.dart
│   │       │   └── sprite_particle_test.dart
│   │       ├── post_process/
│   │       │   └── post_process_test.dart
│   │       ├── raster_sprite_test.dart
│   │       ├── rendering/
│   │       │   ├── hue_decorator_test.dart
│   │       │   ├── paint_decorator_test.dart
│   │       │   ├── rotate3d_decorator_test.dart
│   │       │   └── shadow3d_decorator_test.dart
│   │       ├── sprite_animation_test.dart
│   │       ├── sprite_animation_ticker_test.dart
│   │       ├── sprite_batch_test.dart
│   │       ├── sprite_test.dart
│   │       ├── spritesheet_test.dart
│   │       ├── text/
│   │       │   ├── common/
│   │       │   │   ├── line_metrics_test.dart
│   │       │   │   └── sprite_font_test.dart
│   │       │   ├── sprite_font_renderer_test.dart
│   │       │   ├── text_element_test.dart
│   │       │   ├── text_layouting_test.dart
│   │       │   ├── text_paint_test.dart
│   │       │   ├── text_renderer_test.dart
│   │       │   └── text_style_test.dart
│   │       ├── timer_test.dart
│   │       └── widgets/
│   │           ├── components_notifier_builder_test.dart
│   │           ├── loading_widget.dart
│   │           ├── nine_tile_box_widget_test.dart
│   │           ├── sprite_animation_widget_test.dart
│   │           ├── sprite_button_test.dart
│   │           └── sprite_widget_test.dart
│   ├── flame_3d/
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── ROADMAP.md
│   │   ├── analysis_options.yaml
│   │   ├── assets/
│   │   │   └── shaders/
│   │   │       └── spatial_material.shaderbundle
│   │   ├── bin/
│   │   │   └── build_shaders.dart
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── objects/
│   │   │   │       └── skeleton.glb
│   │   │   ├── lib/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── commands.dart
│   │   │   │   │   ├── destroy_command.dart
│   │   │   │   │   ├── reset_command.dart
│   │   │   │   │   └── setup_command.dart
│   │   │   │   ├── components/
│   │   │   │   │   ├── crate.dart
│   │   │   │   │   ├── player.dart
│   │   │   │   │   ├── rendered_point_light.dart
│   │   │   │   │   ├── room_bounds.dart
│   │   │   │   │   ├── rotating_light.dart
│   │   │   │   │   └── simple_hud.dart
│   │   │   │   ├── example_camera_3d.dart
│   │   │   │   ├── example_game_3d.dart
│   │   │   │   ├── keyboard_utils.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── scenarios/
│   │   │   │       ├── boxes_scenario.dart
│   │   │   │       ├── colors_scenario.dart
│   │   │   │       ├── game_scenario.dart
│   │   │   │       └── models_scenario.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── camera.dart
│   │   │   ├── components.dart
│   │   │   ├── core.dart
│   │   │   ├── extensions.dart
│   │   │   ├── game.dart
│   │   │   ├── graphics.dart
│   │   │   ├── model.dart
│   │   │   ├── parser.dart
│   │   │   ├── resources.dart
│   │   │   └── src/
│   │   │       ├── camera/
│   │   │       │   ├── camera_component_3d.dart
│   │   │       │   ├── first_person_camera.dart
│   │   │       │   ├── third_person_camera.dart
│   │   │       │   └── world_3d.dart
│   │   │       ├── components/
│   │   │       │   ├── component_3d.dart
│   │   │       │   ├── light_component.dart
│   │   │       │   ├── line_3d.dart
│   │   │       │   ├── mesh_component.dart
│   │   │       │   └── object_3d.dart
│   │   │       ├── extensions/
│   │   │       │   ├── aabb3.dart
│   │   │       │   ├── color.dart
│   │   │       │   ├── matrix4.dart
│   │   │       │   ├── quaternion.dart
│   │   │       │   ├── vector2.dart
│   │   │       │   ├── vector3.dart
│   │   │       │   └── vector4.dart
│   │   │       ├── game/
│   │   │       │   ├── flame_game_3d.dart
│   │   │       │   ├── notifying_quaternion.dart
│   │   │       │   ├── notifying_vector3.dart
│   │   │       │   └── transform_3d.dart
│   │   │       ├── graphics/
│   │   │       │   ├── gpu_context_wrapper.dart
│   │   │       │   ├── graphics_device.dart
│   │   │       │   └── joints_info.dart
│   │   │       ├── model/
│   │   │       │   ├── animation_state.dart
│   │   │       │   ├── model.dart
│   │   │       │   ├── model_animation.dart
│   │   │       │   ├── model_component.dart
│   │   │       │   └── model_node.dart
│   │   │       ├── parser/
│   │   │       │   ├── glb_parser.dart
│   │   │       │   ├── gltf/
│   │   │       │   │   ├── accessor.dart
│   │   │       │   │   ├── accessor_type.dart
│   │   │       │   │   ├── alpha_mode.dart
│   │   │       │   │   ├── animation.dart
│   │   │       │   │   ├── animation_channel.dart
│   │   │       │   │   ├── animation_interpolation.dart
│   │   │       │   │   ├── animation_path.dart
│   │   │       │   │   ├── animation_sampler.dart
│   │   │       │   │   ├── animation_target.dart
│   │   │       │   │   ├── buffer.dart
│   │   │       │   │   ├── buffer_view.dart
│   │   │       │   │   ├── buffer_view_target.dart
│   │   │       │   │   ├── camera.dart
│   │   │       │   │   ├── camera_orthographic.dart
│   │   │       │   │   ├── camera_perspective.dart
│   │   │       │   │   ├── camera_type.dart
│   │   │       │   │   ├── component_type.dart
│   │   │       │   │   ├── glb_chunk.dart
│   │   │       │   │   ├── gltf_node.dart
│   │   │       │   │   ├── gltf_node_with_data.dart
│   │   │       │   │   ├── gltf_ref.dart
│   │   │       │   │   ├── gltf_root.dart
│   │   │       │   │   ├── image.dart
│   │   │       │   │   ├── mag_filter.dart
│   │   │       │   │   ├── material.dart
│   │   │       │   │   ├── mesh.dart
│   │   │       │   │   ├── mime_type.dart
│   │   │       │   │   ├── min_filter.dart
│   │   │       │   │   ├── morph_target.dart
│   │   │       │   │   ├── node.dart
│   │   │       │   │   ├── normal_texture_info.dart
│   │   │       │   │   ├── occlusion_texture_info.dart
│   │   │       │   │   ├── pbr_metallic_roughness.dart
│   │   │       │   │   ├── primitive.dart
│   │   │       │   │   ├── primitive_mode.dart
│   │   │       │   │   ├── sampler.dart
│   │   │       │   │   ├── scene.dart
│   │   │       │   │   ├── skin.dart
│   │   │       │   │   ├── sparse_accessor.dart
│   │   │       │   │   ├── sparse_accessor_indices.dart
│   │   │       │   │   ├── sparse_accessor_values.dart
│   │   │       │   │   ├── texture.dart
│   │   │       │   │   ├── texture_format.dart
│   │   │       │   │   ├── texture_info.dart
│   │   │       │   │   ├── texture_target.dart
│   │   │       │   │   ├── texture_type.dart
│   │   │       │   │   └── wrap_mode.dart
│   │   │       │   ├── gltf_parser.dart
│   │   │       │   ├── model_parser.dart
│   │   │       │   ├── obj/
│   │   │       │   │   └── surface_tool.dart
│   │   │       │   └── obj_parser.dart
│   │   │       └── resources/
│   │   │           ├── light/
│   │   │           │   ├── ambient_light.dart
│   │   │           │   ├── light.dart
│   │   │           │   ├── light_source.dart
│   │   │           │   ├── lighting_info.dart
│   │   │           │   └── point_light.dart
│   │   │           ├── light.dart
│   │   │           ├── material/
│   │   │           │   ├── material.dart
│   │   │           │   └── spatial_material.dart
│   │   │           ├── material.dart
│   │   │           ├── mesh/
│   │   │           │   ├── cone_mesh.dart
│   │   │           │   ├── cuboid_mesh.dart
│   │   │           │   ├── cylinder_mesh.dart
│   │   │           │   ├── mesh.dart
│   │   │           │   ├── plane_mesh.dart
│   │   │           │   ├── sphere_mesh.dart
│   │   │           │   ├── surface.dart
│   │   │           │   └── vertex.dart
│   │   │           ├── mesh.dart
│   │   │           ├── resource.dart
│   │   │           ├── shader/
│   │   │           │   ├── shader.dart
│   │   │           │   ├── uniform_array.dart
│   │   │           │   ├── uniform_instance.dart
│   │   │           │   ├── uniform_sampler.dart
│   │   │           │   ├── uniform_slot.dart
│   │   │           │   └── uniform_value.dart
│   │   │           ├── shader.dart
│   │   │           ├── texture/
│   │   │           │   ├── color_texture.dart
│   │   │           │   ├── image_texture.dart
│   │   │           │   └── texture.dart
│   │   │           └── texture.dart
│   │   ├── pubspec.yaml
│   │   ├── shaders/
│   │   │   ├── spatial_material.frag
│   │   │   └── spatial_material.vert
│   │   └── test/
│   │       ├── components/
│   │       │   └── line_3d_test.dart
│   │       ├── mesh/
│   │       │   └── cone_mesh_test.dart
│   │       ├── quaternion_extensions_test.dart
│   │       ├── resources/
│   │       │   └── shader/
│   │       │       └── uniform_binding_test.dart
│   │       ├── transform_3d_test.dart
│   │       ├── vector2_extensions_test.dart
│   │       ├── vector3_extensions_test.dart
│   │       └── vector4_extensions_test.dart
│   ├── flame_audio/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── CREDITS.md
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── audio/
│   │   │   │       └── music/
│   │   │   │           └── bg_music.ogg
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── bgm.dart
│   │   │   └── flame_audio.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_audio_test.dart
│   ├── flame_behavior_tree/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── behavior_tree/
│   │   │   ├── CHANGELOG.md
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── example/
│   │   │   │   └── behavior_tree_example.dart
│   │   │   ├── lib/
│   │   │   │   ├── behavior_tree.dart
│   │   │   │   └── src/
│   │   │   │       ├── base_node.dart
│   │   │   │       ├── blackboard.dart
│   │   │   │       ├── blackboard_provider.dart
│   │   │   │       ├── composites/
│   │   │   │       │   ├── selector.dart
│   │   │   │       │   └── sequence.dart
│   │   │   │       ├── decorators/
│   │   │   │       │   ├── inverter.dart
│   │   │   │       │   └── limiter.dart
│   │   │   │       ├── node.dart
│   │   │   │       └── tasks/
│   │   │   │           ├── async_task.dart
│   │   │   │           ├── condition.dart
│   │   │   │           └── task.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── async_task_test.dart
│   │   │       ├── blackboard_test.dart
│   │   │       ├── conditon_test.dart
│   │   │       ├── inverter_test.dart
│   │   │       ├── limiter_test.dart
│   │   │       ├── selector_test.dart
│   │   │       ├── sequence_test.dart
│   │   │       └── task_test.dart
│   │   ├── example/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_behavior_tree.dart
│   │   │   └── src/
│   │   │       └── has_behavior_tree.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── has_behavior_tree_test.dart
│   ├── flame_behaviors/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── behaviors/
│   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   └── spawning_behavior.dart
│   │   │   │   ├── entities/
│   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   │   ├── moving_behavior.dart
│   │   │   │   │   │   ├── rotating_behavior.dart
│   │   │   │   │   │   └── screen_colliding_behavior.dart
│   │   │   │   │   ├── circle/
│   │   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   │   │   ├── circle_collision_behavior.dart
│   │   │   │   │   │   │   ├── dragging_behavior.dart
│   │   │   │   │   │   │   ├── rectangle_collision_behavior.dart
│   │   │   │   │   │   │   └── tapping_behavior.dart
│   │   │   │   │   │   └── circle.dart
│   │   │   │   │   ├── entities.dart
│   │   │   │   │   └── rectangle/
│   │   │   │   │       ├── behaviors/
│   │   │   │   │       │   ├── behaviors.dart
│   │   │   │   │       │   ├── circle_colliding_behavior.dart
│   │   │   │   │       │   ├── freezing_behavior.dart
│   │   │   │   │       │   └── rectangle_colliding_behavior.dart
│   │   │   │   │       └── rectangle.dart
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_behaviors.dart
│   │   │   └── src/
│   │   │       ├── behaviors/
│   │   │       │   ├── behavior.dart
│   │   │       │   ├── behaviors.dart
│   │   │       │   ├── events/
│   │   │       │   │   ├── draggable_behavior.dart
│   │   │       │   │   ├── events.dart
│   │   │       │   │   ├── hoverable_behavior.dart
│   │   │       │   │   └── tappable_behavior.dart
│   │   │       │   └── propagating_collision_behavior.dart
│   │   │       └── entity.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   └── throws_behavior_not_found_for.dart
│   │       └── src/
│   │           ├── behaviors/
│   │           │   ├── behavior_test.dart
│   │           │   ├── events/
│   │           │   │   ├── draggable_behavior_test.dart
│   │           │   │   ├── hoverable_behavior_test.dart
│   │           │   │   └── tappable_behavior_test.dart
│   │           │   └── propagating_collision_behavior_test.dart
│   │           └── entity_test.dart
│   ├── flame_bloc/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── DEPRECATED_README.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       ├── game/
│   │   │   │       │   ├── components/
│   │   │   │       │   │   ├── bullet.dart
│   │   │   │       │   │   ├── enemy.dart
│   │   │   │       │   │   ├── enemy_creator.dart
│   │   │   │       │   │   ├── explosion.dart
│   │   │   │       │   │   └── player.dart
│   │   │   │       │   └── game.dart
│   │   │   │       ├── game.dart
│   │   │   │       ├── game_stats/
│   │   │   │       │   ├── bloc/
│   │   │   │       │   │   ├── game_stats_bloc.dart
│   │   │   │       │   │   ├── game_stats_event.dart
│   │   │   │       │   │   └── game_stats_state.dart
│   │   │   │       │   └── view/
│   │   │   │       │       └── game_stat.dart
│   │   │   │       └── inventory/
│   │   │   │           ├── bloc/
│   │   │   │           │   ├── inventory_bloc.dart
│   │   │   │           │   ├── inventory_event.dart
│   │   │   │           │   └── inventory_state.dart
│   │   │   │           └── view/
│   │   │   │               └── inventory.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_bloc.dart
│   │   │   └── src/
│   │   │       ├── flame_bloc_listenable.dart
│   │   │       ├── flame_bloc_listener.dart
│   │   │       ├── flame_bloc_provider.dart
│   │   │       ├── flame_bloc_reader.dart
│   │   │       └── flame_multi_bloc_provider.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── inventory_cubit.dart
│   │       ├── player_cubit.dart
│   │       └── src/
│   │           ├── flame_bloc_listenable_test.dart
│   │           ├── flame_bloc_listener_test.dart
│   │           ├── flame_bloc_provider_test.dart
│   │           ├── flame_bloc_reader_test.dart
│   │           └── flame_multi_bloc_provider_test.dart
│   ├── flame_console/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── clear_effects_command.dart
│   │   │   │   │   └── commands.dart
│   │   │   │   ├── game.dart
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_console.dart
│   │   │   └── src/
│   │   │       ├── commands/
│   │   │       │   ├── commands.dart
│   │   │       │   ├── debug_command.dart
│   │   │       │   ├── ls_command.dart
│   │   │       │   ├── pause_command.dart
│   │   │       │   ├── remove_command.dart
│   │   │       │   └── resume_command.dart
│   │   │       ├── flame_console.dart
│   │   │       └── view/
│   │   │           ├── console_view.dart
│   │   │           ├── container_builder.dart
│   │   │           └── view.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── src/
│   │           ├── commands_test.dart
│   │           ├── debug_command_test.dart
│   │           ├── pause_command_test.dart
│   │           └── resume_command_test.dart
│   ├── flame_devtools/
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── main.dart
│   │   │   ├── providers/
│   │   │   │   └── position_component_attributes_provider.dart
│   │   │   ├── repository.dart
│   │   │   └── widgets/
│   │   │       ├── component_counter.dart
│   │   │       ├── component_snapshot.dart
│   │   │       ├── component_tree.dart
│   │   │       ├── component_tree_model.dart
│   │   │       ├── debug_mode_button.dart
│   │   │       ├── game_loop_controls.dart
│   │   │       ├── incremental_number_form_field.dart
│   │   │       ├── overlay_navigation.dart
│   │   │       └── position_component_attributes_form.dart
│   │   ├── pubspec.yaml
│   │   └── web/
│   │       ├── index.html
│   │       └── manifest.json
│   ├── flame_fire_atlas/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── cave_ace.fa
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   └── flame_fire_atlas.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_fire_atlas_test.dart
│   ├── flame_forge2d/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── body_component.dart
│   │   │   ├── contact_callbacks.dart
│   │   │   ├── flame_forge2d.dart
│   │   │   ├── forge2d_game.dart
│   │   │   ├── forge2d_world.dart
│   │   │   └── world_contact_listener.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── body_component_test.dart
│   │       ├── contact_callbacks_test.dart
│   │       ├── forge2d_game_test.dart
│   │       ├── forge2d_world_test.dart
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   └── mocks.dart
│   │       └── world_contact_listener_test.dart
│   ├── flame_isolate/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── brains/
│   │   │   │   │   ├── path_finder.dart
│   │   │   │   │   ├── worker_overmind.dart
│   │   │   │   │   └── worker_overmind_hud.dart
│   │   │   │   ├── colonists_game.dart
│   │   │   │   ├── constants.dart
│   │   │   │   ├── extensions/
│   │   │   │   │   └── range_extensions.dart
│   │   │   │   ├── game_map/
│   │   │   │   │   └── game_map.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── objects/
│   │   │   │   │   ├── bread.dart
│   │   │   │   │   ├── cheese.dart
│   │   │   │   │   └── colonists_object.dart
│   │   │   │   ├── standard/
│   │   │   │   │   ├── int_vector2.dart
│   │   │   │   │   └── pair.dart
│   │   │   │   ├── terrain/
│   │   │   │   │   ├── grass.dart
│   │   │   │   │   └── terrain.dart
│   │   │   │   └── units/
│   │   │   │       ├── actions/
│   │   │   │       │   └── movable.dart
│   │   │   │       └── worker.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_isolate.dart
│   │   │   └── flame_tailored_isolate.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── flame_isolate_test.dart
│   │       └── flame_tailored_isolate_test.dart
│   ├── flame_jenny/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── jenny/
│   │   │   ├── CHANGELOG.md
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── jenny.dart
│   │   │   │   └── src/
│   │   │   │       ├── character.dart
│   │   │   │       ├── character_storage.dart
│   │   │   │       ├── command_storage.dart
│   │   │   │       ├── dialogue_runner.dart
│   │   │   │       ├── dialogue_view.dart
│   │   │   │       ├── errors.dart
│   │   │   │       ├── function_storage.dart
│   │   │   │       ├── localization.dart
│   │   │   │       ├── parse/
│   │   │   │       │   ├── ascii.dart
│   │   │   │       │   ├── parse.dart
│   │   │   │       │   ├── token.dart
│   │   │   │       │   └── tokenize.dart
│   │   │   │       ├── structure/
│   │   │   │       │   ├── block.dart
│   │   │   │       │   ├── commands/
│   │   │   │       │   │   ├── character_command.dart
│   │   │   │       │   │   ├── command.dart
│   │   │   │       │   │   ├── declare_command.dart
│   │   │   │       │   │   ├── if_command.dart
│   │   │   │       │   │   ├── jump_command.dart
│   │   │   │       │   │   ├── local_command.dart
│   │   │   │       │   │   ├── set_command.dart
│   │   │   │       │   │   ├── stop_command.dart
│   │   │   │       │   │   ├── user_defined_command.dart
│   │   │   │       │   │   ├── visit_command.dart
│   │   │   │       │   │   └── wait_command.dart
│   │   │   │       │   ├── dialogue_choice.dart
│   │   │   │       │   ├── dialogue_entry.dart
│   │   │   │       │   ├── dialogue_line.dart
│   │   │   │       │   ├── dialogue_option.dart
│   │   │   │       │   ├── expressions/
│   │   │   │       │   │   ├── expression.dart
│   │   │   │       │   │   ├── functions/
│   │   │   │       │   │   │   ├── _common.dart
│   │   │   │       │   │   │   ├── bool.dart
│   │   │   │       │   │   │   ├── ceil.dart
│   │   │   │       │   │   │   ├── dec.dart
│   │   │   │       │   │   │   ├── decimal.dart
│   │   │   │       │   │   │   ├── dice.dart
│   │   │   │       │   │   │   ├── floor.dart
│   │   │   │       │   │   │   ├── if.dart
│   │   │   │       │   │   │   ├── inc.dart
│   │   │   │       │   │   │   ├── int.dart
│   │   │   │       │   │   │   ├── number.dart
│   │   │   │       │   │   │   ├── plural.dart
│   │   │   │       │   │   │   ├── random.dart
│   │   │   │       │   │   │   ├── random_range.dart
│   │   │   │       │   │   │   ├── round.dart
│   │   │   │       │   │   │   ├── round_places.dart
│   │   │   │       │   │   │   ├── string.dart
│   │   │   │       │   │   │   ├── user_defined_function.dart
│   │   │   │       │   │   │   ├── visit_count.dart
│   │   │   │       │   │   │   └── visited.dart
│   │   │   │       │   │   ├── literal.dart
│   │   │   │       │   │   ├── operators/
│   │   │   │       │   │   │   ├── _common.dart
│   │   │   │       │   │   │   ├── add.dart
│   │   │   │       │   │   │   ├── and.dart
│   │   │   │       │   │   │   ├── divide.dart
│   │   │   │       │   │   │   ├── equal.dart
│   │   │   │       │   │   │   ├── greater_or_equal.dart
│   │   │   │       │   │   │   ├── greater_than.dart
│   │   │   │       │   │   │   ├── less_or_equal.dart
│   │   │   │       │   │   │   ├── less_than.dart
│   │   │   │       │   │   │   ├── modulo.dart
│   │   │   │       │   │   │   ├── multiply.dart
│   │   │   │       │   │   │   ├── negate.dart
│   │   │   │       │   │   │   ├── not.dart
│   │   │   │       │   │   │   ├── not_equal.dart
│   │   │   │       │   │   │   ├── or.dart
│   │   │   │       │   │   │   ├── subtract.dart
│   │   │   │       │   │   │   └── xor.dart
│   │   │   │       │   │   └── variables.dart
│   │   │   │       │   ├── line_content.dart
│   │   │   │       │   ├── markup_attribute.dart
│   │   │   │       │   └── node.dart
│   │   │   │       ├── variable_storage.dart
│   │   │   │       └── yarn_project.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── character_storage_test.dart
│   │   │       ├── command_storage_test.dart
│   │   │       ├── dialogue_runner_test.dart
│   │   │       ├── dialogue_view_test.dart
│   │   │       ├── function_storage_test.dart
│   │   │       ├── localization_test.dart
│   │   │       ├── parse/
│   │   │       │   ├── ascii_test.dart
│   │   │       │   ├── parse_test.dart
│   │   │       │   ├── token_test.dart
│   │   │       │   └── tokenize_test.dart
│   │   │       ├── structure/
│   │   │       │   ├── block_test.dart
│   │   │       │   ├── commands/
│   │   │       │   │   ├── character_command_test.dart
│   │   │       │   │   ├── declare_command_test.dart
│   │   │       │   │   ├── if_command_test.dart
│   │   │       │   │   ├── jump_command_test.dart
│   │   │       │   │   ├── local_command_test.dart
│   │   │       │   │   ├── set_command_test.dart
│   │   │       │   │   ├── stop_command_test.dart
│   │   │       │   │   ├── user_defined_command_test.dart
│   │   │       │   │   ├── visit_command_test.dart
│   │   │       │   │   └── wait_command_test.dart
│   │   │       │   ├── dialogue_choice_test.dart
│   │   │       │   ├── dialogue_line_test.dart
│   │   │       │   ├── dialogue_option_test.dart
│   │   │       │   ├── expressions/
│   │   │       │   │   ├── arithmetic_test.dart
│   │   │       │   │   ├── functions/
│   │   │       │   │   │   ├── bool_test.dart
│   │   │       │   │   │   ├── ceil_test.dart
│   │   │       │   │   │   ├── dec_test.dart
│   │   │       │   │   │   ├── decimal_test.dart
│   │   │       │   │   │   ├── dice_test.dart
│   │   │       │   │   │   ├── floor_test.dart
│   │   │       │   │   │   ├── if_test.dart
│   │   │       │   │   │   ├── inc_test.dart
│   │   │       │   │   │   ├── int_test.dart
│   │   │       │   │   │   ├── number_test.dart
│   │   │       │   │   │   ├── plural_test.dart
│   │   │       │   │   │   ├── random_range_test.dart
│   │   │       │   │   │   ├── random_test.dart
│   │   │       │   │   │   ├── round_places_test.dart
│   │   │       │   │   │   ├── round_test.dart
│   │   │       │   │   │   ├── string_test.dart
│   │   │       │   │   │   ├── user_defined_function_test.dart
│   │   │       │   │   │   ├── visit_count_test.dart
│   │   │       │   │   │   └── visited_test.dart
│   │   │       │   │   ├── literal_test.dart
│   │   │       │   │   ├── operators/
│   │   │       │   │   │   ├── add_test.dart
│   │   │       │   │   │   ├── and_test.dart
│   │   │       │   │   │   ├── divide_test.dart
│   │   │       │   │   │   ├── equal_test.dart
│   │   │       │   │   │   ├── greater_or_equal_test.dart
│   │   │       │   │   │   ├── greater_than_test.dart
│   │   │       │   │   │   ├── less_or_equal_test.dart
│   │   │       │   │   │   ├── less_than_test.dart
│   │   │       │   │   │   ├── modulo_test.dart
│   │   │       │   │   │   ├── multiply_test.dart
│   │   │       │   │   │   ├── negate_test.dart
│   │   │       │   │   │   ├── not_equal_test.dart
│   │   │       │   │   │   ├── not_test.dart
│   │   │       │   │   │   ├── or_test.dart
│   │   │       │   │   │   ├── subtract_test.dart
│   │   │       │   │   │   └── xor_test.dart
│   │   │       │   │   └── variables_test.dart
│   │   │       │   └── node_test.dart
│   │   │       ├── test_scenario.dart
│   │   │       ├── utils.dart
│   │   │       ├── variable_storage_test.dart
│   │   │       └── yarn_project_test.dart
│   │   └── pubspec.yaml
│   ├── flame_kenney_xml/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── license.txt
│   │   │   │   └── spritesheet_stone.xml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   └── flame_kenney_xml.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_kenney_xml_test.dart
│   ├── flame_lint/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── analysis_options_with_dcm.yaml
│   │   │   └── flame_lint.dart
│   │   └── pubspec.yaml
│   ├── flame_lottie/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── LottieLogo1.json
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_lottie.dart
│   │   │   └── src/
│   │   │       ├── lottie_component.dart
│   │   │       └── lottie_renderer.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_lottie_test.dart
│   ├── flame_markdown/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── fire_and_ice.md
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── custom_attribute_syntax.dart
│   │   │   └── flame_markdown.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_markdown_test.dart
│   ├── flame_network_assets/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_network_assets.dart
│   │   │   └── src/
│   │   │       ├── flame_asset_response.dart
│   │   │       ├── flame_network_assets.dart
│   │   │       └── flame_network_images.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_network_image_test.dart
│   ├── flame_noise/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── flame_noise.dart
│   │   │   └── src/
│   │   │       ├── effects/
│   │   │       │   └── noise_effect_controller.dart
│   │   │       └── effects.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── noise_effect_controller_test.dart
│   ├── flame_oxygen/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── lib/
│   │   │   │   ├── component/
│   │   │   │   │   ├── timer_component.dart
│   │   │   │   │   └── velocity_component.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── system/
│   │   │   │       ├── debug_system.dart
│   │   │   │       ├── kawabunga_system.dart
│   │   │   │       ├── move_system.dart
│   │   │   │       └── sprite_system.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_oxygen.dart
│   │   │   └── src/
│   │   │       ├── component/
│   │   │       │   ├── anchor_component.dart
│   │   │       │   ├── angle_component.dart
│   │   │       │   ├── flip_component.dart
│   │   │       │   ├── particle_component.dart
│   │   │       │   ├── position_component.dart
│   │   │       │   ├── size_component.dart
│   │   │       │   ├── sprite_component.dart
│   │   │       │   └── text_component.dart
│   │   │       ├── component.dart
│   │   │       ├── flame_system_manager.dart
│   │   │       ├── flame_world.dart
│   │   │       ├── oxygen_game.dart
│   │   │       ├── system/
│   │   │       │   ├── base_system.dart
│   │   │       │   ├── game_ref.dart
│   │   │       │   ├── particle_system.dart
│   │   │       │   ├── render_system.dart
│   │   │       │   └── update_system.dart
│   │   │       └── system.dart
│   │   └── pubspec.yaml
│   ├── flame_rive/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── rewards.riv
│   │   │   │   └── skills.riv
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_rive.dart
│   │   │   └── src/
│   │   │       └── rive_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   ├── rewards.riv
│   │       │   └── skills.riv
│   │       ├── flame_rive_test.dart
│   │       └── utils.dart
│   ├── flame_riverpod/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       └── widget_test.dart
│   │   ├── lib/
│   │   │   ├── flame_riverpod.dart
│   │   │   └── src/
│   │   │       ├── consumer.dart
│   │   │       └── widget.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── widget_test.dart
│   ├── flame_spine/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── spineboy-pro.skel
│   │   │   │   └── spineboy.atlas
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_spine.dart
│   │   │   └── src/
│   │   │       └── spine_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_spine_test.dart
│   ├── flame_splash_screen/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_splash_screen.dart
│   │   │   └── src/
│   │   │       ├── controller.dart
│   │   │       ├── splash.dart
│   │   │       └── theme.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── controller_test.dart
│   │       └── theme_test.dart
│   ├── flame_sprite_fusion/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── tiles/
│   │   │   │       └── map.json
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_sprite_fusion.dart
│   │   │   └── src/
│   │   │       ├── sprite_fusion_layer_data.dart
│   │   │       ├── sprite_fusion_tile_data.dart
│   │   │       ├── sprite_fusion_tilemap_component.dart
│   │   │       └── sprite_fusion_tilemap_data.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   └── map.json
│   │       ├── sprite_fusion_data_test.dart
│   │       ├── sprite_fusion_tilemap_component_test.dart
│   │       └── test_asset_bundle.dart
│   ├── flame_steering_behaviors/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       ├── behaviors/
│   │   │   │       │   ├── behaviors.dart
│   │   │   │       │   └── screen_collision_behavior.dart
│   │   │   │       ├── entities/
│   │   │   │       │   ├── dot/
│   │   │   │       │   │   └── dot.dart
│   │   │   │       │   └── entities.dart
│   │   │   │       └── example_game.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── helpers/
│   │   │       │   ├── helpers.dart
│   │   │       │   └── test_game.dart
│   │   │       └── src/
│   │   │           ├── behaviors/
│   │   │           │   └── screen_collision_behavior_test.dart
│   │   │           ├── entities/
│   │   │           │   └── dot_test.dart
│   │   │           └── example_game_test.dart
│   │   ├── lib/
│   │   │   ├── flame_steering_behaviors.dart
│   │   │   └── src/
│   │   │       ├── behaviors/
│   │   │       │   ├── behaviors.dart
│   │   │       │   ├── flee_behavior.dart
│   │   │       │   ├── pursue_behavior.dart
│   │   │       │   ├── separation_behavior.dart
│   │   │       │   ├── steering_behavior.dart
│   │   │       │   └── wander_behavior.dart
│   │   │       ├── mixins/
│   │   │       │   ├── mixins.dart
│   │   │       │   ├── steerable.dart
│   │   │       │   └── steering.dart
│   │   │       └── steering/
│   │   │           ├── flee.dart
│   │   │           ├── pursue.dart
│   │   │           ├── separation.dart
│   │   │           ├── steering.dart
│   │   │           ├── steering_core.dart
│   │   │           └── wander.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   ├── steerable_entity.dart
│   │       │   └── test_game.dart
│   │       └── src/
│   │           ├── behaviors/
│   │           │   ├── flee_behavior_test.dart
│   │           │   ├── pursue_behavior_test.dart
│   │           │   ├── separation_behavior_test.dart
│   │           │   └── wander_behavior_test.dart
│   │           ├── mixins/
│   │           │   ├── steerable_test.dart
│   │           │   └── steering_test.dart
│   │           └── steering/
│   │               ├── flee_test.dart
│   │               ├── pursue_test.dart
│   │               ├── separation_test.dart
│   │               ├── steering_core_test.dart
│   │               └── wander_test.dart
│   ├── flame_studio/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   └── main.dart
│   │   ├── lib/
│   │   │   ├── flame_studio.dart
│   │   │   └── src/
│   │   │       ├── core/
│   │   │       │   ├── component_tree.dart
│   │   │       │   ├── game_controller.dart
│   │   │       │   └── theme.dart
│   │   │       ├── run_flame_studio.dart
│   │   │       └── widgets/
│   │   │           ├── flame_studio.dart
│   │   │           ├── left_panel.dart
│   │   │           ├── left_panel_grip.dart
│   │   │           ├── panels/
│   │   │           │   └── hierarchy_view.dart
│   │   │           ├── toolbar/
│   │   │           │   ├── flame_studio_toolbar.dart
│   │   │           │   ├── next_frame_button.dart
│   │   │           │   ├── pause_button.dart
│   │   │           │   ├── start_button.dart
│   │   │           │   └── toolbar_button.dart
│   │   │           └── ui_scaffold.dart
│   │   └── pubspec.yaml
│   ├── flame_svg/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_svg.dart
│   │   │   ├── svg.dart
│   │   │   └── svg_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── svg_component_test.dart
│   │       └── svg_test.dart
│   ├── flame_test/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── lib/
│   │   │   │   ├── game.dart
│   │   │   │   └── main.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── flame_test_test.dart
│   │   │       └── main_test.dart
│   │   ├── lib/
│   │   │   ├── flame_test.dart
│   │   │   └── src/
│   │   │       ├── close_to_aabb.dart
│   │   │       ├── close_to_matrix4.dart
│   │   │       ├── close_to_quaternion.dart
│   │   │       ├── close_to_vector.dart
│   │   │       ├── close_to_vector3.dart
│   │   │       ├── close_to_vector4.dart
│   │   │       ├── debug_text_renderer.dart
│   │   │       ├── epsilon.dart
│   │   │       ├── expect_color.dart
│   │   │       ├── expect_double.dart
│   │   │       ├── fails_assert.dart
│   │   │       ├── flame_test.dart
│   │   │       ├── is_close_to_vector.dart
│   │   │       ├── mock_gesture_events.dart
│   │   │       ├── mock_image.dart
│   │   │       ├── mock_pointer_move_event.dart
│   │   │       ├── mock_tap_drag_events.dart
│   │   │       ├── random_test.dart
│   │   │       ├── test_flame_game.dart
│   │   │       └── test_golden.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── close_to_aabb_test.dart
│   │       ├── close_to_matrix4_test.dart
│   │       ├── close_to_quaternion_test.dart
│   │       ├── close_to_vector3_test.dart
│   │       ├── close_to_vector4_test.dart
│   │       ├── close_to_vector_test.dart
│   │       ├── debug_text_formatter_test.dart
│   │       ├── epsilon_test.dart
│   │       ├── expect_double_test.dart
│   │       ├── fails_assert_test.dart
│   │       ├── flame_async_test.dart
│   │       ├── golden_test.dart
│   │       ├── random_test_test.dart
│   │       └── test_with_game_test.dart
│   ├── flame_texturepacker/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── images/
│   │   │   │       └── atlas_map.atlas
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_texturepacker.dart
│   │   │   └── src/
│   │   │       ├── extension_on_game.dart
│   │   │       ├── model/
│   │   │       │   ├── page.dart
│   │   │       │   └── region.dart
│   │   │       ├── texture_packer_atlas.dart
│   │   │       ├── texture_packer_parser.dart
│   │   │       └── texture_packer_sprite.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   ├── atlasMap.atlas
│   │       │   ├── legacy/
│   │       │   │   ├── multiplePages/
│   │       │   │   │   ├── MultiplePageAtlasMap.atlas
│   │       │   │   │   └── MultipleTrimmedPageAtlasMap.atlas
│   │       │   │   └── singlePage/
│   │       │   │       ├── SinglePageAtlasMap.atlas
│   │       │   │       └── SingleTrimmedPageAtlasMap.atlas
│   │       │   ├── newFormat/
│   │       │   │   ├── multiplePages/
│   │       │   │   │   ├── MultiplePageAtlasMap.atlas
│   │       │   │   │   └── MultipleTrimmedPageAtlasMap.atlas
│   │       │   │   └── singlePage/
│   │       │   │       ├── SinglePageAtlasMap.atlas
│   │       │   │       └── SingleTrimmedPageAtlasMap.atlas
│   │       │   └── whitelist/
│   │       │       ├── whitelist_test.atlas
│   │       │       └── whitelist_test.tps
│   │       ├── atlas_path_resolution_test.dart
│   │       ├── flame_texturepacker_test.dart
│   │       ├── legacy_format_test.dart
│   │       ├── naming_index_test.dart
│   │       ├── new_format_test.dart
│   │       ├── region_test.dart
│   │       └── separated_parsing_test.dart
│   └── flame_tiled/
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── analysis_options.yaml
│       ├── example/
│       │   ├── README.md
│       │   ├── analysis_options.yaml
│       │   ├── assets/
│       │   │   └── tiles/
│       │   │       └── map.tmx
│       │   ├── lib/
│       │   │   └── main.dart
│       │   └── pubspec.yaml
│       ├── lib/
│       │   ├── flame_tiled.dart
│       │   └── src/
│       │       ├── extensions.dart
│       │       ├── flame_tsx_provider.dart
│       │       ├── mutable_rect.dart
│       │       ├── rectangle_bin_packer.dart
│       │       ├── renderable_layers/
│       │       │   ├── group_layer.dart
│       │       │   ├── image_layer.dart
│       │       │   ├── object_layer.dart
│       │       │   ├── renderable_layer.dart
│       │       │   └── tile_layers/
│       │       │       ├── hexagonal_tile_layer.dart
│       │       │       ├── isometric_tile_layer.dart
│       │       │       ├── orthogonal_tile_layer.dart
│       │       │       ├── staggered_tile_layer.dart
│       │       │       └── tile_layer.dart
│       │       ├── renderable_tile_map.dart
│       │       ├── simple_flips.dart
│       │       ├── tile_animation.dart
│       │       ├── tile_atlas.dart
│       │       ├── tile_stack.dart
│       │       ├── tile_transform.dart
│       │       └── tiled_component.dart
│       ├── pubspec.yaml
│       └── test/
│           ├── README.md
│           ├── assets/
│           │   ├── 2_tiles-green_on_red.tmx
│           │   ├── 8_tiles-flips.tmx
│           │   ├── deleted_layer_map.tmx
│           │   ├── dungeon_animation_hexagonal.tmx
│           │   ├── dungeon_animation_isometric.tmx
│           │   ├── dungeon_animation_orthogonal.tmx
│           │   ├── dungeon_animation_staggered.tmx
│           │   ├── flat_hex_even.tmx
│           │   ├── flat_hex_odd.tmx
│           │   ├── image_layer_full_screen.tmx
│           │   ├── iso_staggered_overlap_x_even.tmx
│           │   ├── iso_staggered_overlap_x_odd.tmx
│           │   ├── iso_staggered_overlap_y_even.tmx
│           │   ├── iso_staggered_overlap_y_odd.tmx
│           │   ├── isometric_plain.tmx
│           │   ├── layers_test.tmx
│           │   ├── map-with-same-level-tsx.tmx
│           │   ├── map.tmx
│           │   ├── oversized_tiles_hexagonal.tmx
│           │   ├── oversized_tiles_isometric.tmx
│           │   ├── oversized_tiles_orthogonal.tmx
│           │   ├── oversized_tiles_staggered.tmx
│           │   ├── pointy_hex_even.tmx
│           │   ├── pointy_hex_odd.tmx
│           │   ├── single_tile_map_1.tmx
│           │   ├── single_tile_map_2.tmx
│           │   ├── test_isometric.tmx
│           │   ├── test_shifted.tmx
│           │   ├── test_tile_offset_hexagonal.tmx
│           │   ├── test_tile_offset_isometric.tmx
│           │   ├── test_tile_offset_orthogonal.tmx
│           │   ├── test_tile_offset_staggered.tmx
│           │   ├── tiles/
│           │   │   ├── external_tileset_1.tsx
│           │   │   ├── isometric_plain_1.tsx
│           │   │   └── samelevel_tileset_1.tsx
│           │   └── tiles_custom_path/
│           │       ├── external_tileset_custom_path.tsx
│           │       └── map_custom_path.tmx
│           ├── extensions_test.dart
│           ├── image_layer_test.dart
│           ├── rectangle_bin_packer_test.dart
│           ├── test_asset_bundle.dart
│           ├── test_image_utils.dart
│           ├── tile_atlas_test.dart
│           ├── tiled_component_sizes_test.dart
│           └── tiled_test.dart
├── pubspec.yaml
└── scripts/
    ├── cspell-run.sh
    ├── cspell-verify.sh
    └── doc-setup.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/.cspell/dart_dictionary.txt
================================================
# keywords/terms specific to the Dart/Flutter ecosystem
cupertino # Flutter module containing iOS-style widgets
dartdoc # documentation tool for dart
dartdocs # plural of dartdoc
endtemplate # Use @endtemplate to close a @template block in dartdoc
pubspec # dependency and configuration file of every Dart project


================================================
FILE: .github/.cspell/flame_dictionary.txt
================================================
# dictionary file for Flame-related words, including companies, tools, and libraries (and their associated concepts) mentioned on our codebase
Artboard # What a project file is called within Rive
Aseprite # Animated sprite editor and pixel art tool https://www.aseprite.org/
Audioplayers # A Flutter plugin to play multiple simultaneously audio files https://github.com/bluefireteam/audioplayers
BGUG # Break Guns Using Gems, a game by BlueFire https://github.com/bluefireteam/bgug
Bodymovin # An After Effects extension to export Lottie animations https://aescripts.com/bodymovin/
Dashbook # UI development tool for Flutter https://github.com/bluefireteam/dashbook
emberquest # Ember Quest, our platformer tutorial game
Hermione # A character from the book Harry Potter
Kawabunga # Word expressing exhilaration, of unclear origins but popularized by the show Teenage Mutant Ninja Turtles
Kenobi # Eminent Jedi Master, General of the Republic Army, Obi-Wan Kenobi
Nakama # An open-source server designed to power modern games and apps https://github.com/Allan-Nava/nakama-flutter
Overmind # A character in the game StarCraft
padracing # A pad racing game by BlueFire https://github.com/flame-engine/flame/tree/main/examples/games/padracing
Prosser # A character from the book The Hitchhiker's Guide to the Galaxy
riverpod # A state management library for Flutter https://github.com/rrousselGit/riverpod
spineboy # Name of a famous character used as an example for Spine https://en.esotericsoftware.com/spine-examples-spineboy
spineboys # Plural of spineboy
Spritecow # A handy tool for locating sprites within a spritesheet http://www.spritecow.com/
Supabase # Supabase, one of our sponsors https://supabase.com/
terminui # A terminal UI library for Flutter
texturepacker # a packed spritesheet format
Tilemap # What tile maps are called within Tiled
vantablack # brand name for a famous super-black ink known as the darkest ever made
Weasley # Ron Weasley, a character from the book Harry Potter
Wyrmsun # An open-source real-time strategy game https://www.indiedb.com/games/wyrmsun
yarnspinner # A tool for building branching narrative and dialogue in games # https://yarnspinner.dev/


================================================
FILE: .github/.cspell/gamedev_dictionary.txt
================================================
# general development-adjacent terms and expressions
AABB # axis aligned bounding box
abelian # Abelian Group, also known as commutative group
ARGB # alpha red green blue
arities # plural of arity
backgrounded # moving the app to the background
backgrounding # moving the app to the background
backpressure # strategy to deal with excess flow of data
BGRA # blue green red alpha
bimedian # line segment joining the midpoints of opposite sides of a shape
bitfield # data structure consisting of adjacent bits
broadphase # common division of collision detection between broad and narrow phases
cathetus # the non-hypotenuse sides of a right triangle
clusterized # past tense of clusterize
gles # OpenGL for Embedded Systems
glsl # OpenGL Shading Language
gltf # OpenGL Transmission Format, a file format for 3D models
goldens # test files used as reference for Golden Tests
highp # high float precission setting on glsl fragment shaders
hitbox # the collision box around objects for the purposes of collision detection
hitboxes # plural of hitbox
IDAT # PNG data chunk
IEND # PNG end chunk
IHDR # PNG header chunk
ints # short for integers
jank # stutter or inconsistent gap or timing
lerp # short for linear interpolation
LTRBR # left top right bottom radius
LTWH # left top width height
mediump # medium GLSL float precision
metalness # a measure of how much a surface reflects light for the purposes of physically based rendering
Minkowski # Minkowski sum, a sum of two sets of vectors, A and B, where the result is the sum of each vector pair
multitap # support from a device to recognize many taps at the same time
orientable # can be oriented
pathfinding # computer algorithm to find the best path through a world or maze
perlin # Perlin Noise, a type of noise generating algorithm
platformers # plural of platformer, a genre of video game
quadtree # a tree-based data structure where each node has exactly 4 children
rasterizing
respawn # when the player character dies and is brought back after some time and penalties
respawned # past tense of respawn
retarget # to direct (something) toward a different target
RGBA # red green blue alpha
RGBO # red green blue opacity
scos # cosine of a rotation multiplied by the scale factor
scrollers # plural of scroller, a genre of video game
shaderbundle # a file extension used to bundle shaders for GLSL
slerp # short for spherical linear interpolation, a method to interpolate quaternions
spritesheet # a single image packing multiple sprites, normally in a grid
ssin # sine of a rotation multiplied by the scale factor
subfolders # plural of subfolders
sublists # plural of sublist
subrange # a range entirely contained on a given range
SVGs # plural of SVG
texel # texture pixel (unit of texture map)
texels # plural of texel
tileset # image with a collection of tiles. in games, tiles are small square sprites laid out in a grid to form the game map
tilesets # plural of tileset
truecolor # truecolor rendering
tweening # the process of tween
viewports # plural of viewport
WASD # movement keys on a keyboard
WBMP # wireless bitmap image format
WebP # WebP image format


================================================
FILE: .github/.cspell/people_usernames.txt
================================================
# specific people's names and/or usernames
akida # github.com/akida 
bdero # github.com/bdero
bluefireteam # github.com/bluefireteam
erayzesen # erayzesen.itch.io
erickzanardo # github.com/erickzanardo 
feroult # github.com/feroult 
fröber # github.com/Brixto
gnarhard # github.com/gnarhard
Hoodead # github.com/kornellapu
kenney # kenney.nl
Klingsbo # github.com/spydon
Kornél # github.com/kornellapu
lapu # Artist of reference art (basic shader tutorial)
Lapu # github.com/kornellapu
luan # github.com/luanpotter
luanpotter # github.com/luanpotter
Lukas # github.com/spydon
pgainullin # github.com/pgainullin 
Schnurber # github.com/schnurber 
spydon # github.com/spydon
stpasha # github.com/stpasha
subosito # github.com/subosito
tavian # tavianator.com
Tellinghuisen # Author of Statistical Error Propagation (2001)
videon # github.com/markvideon
wolfenrain # github.com/wolfenrain
xaha # github.com/xvrh


================================================
FILE: .github/.cspell/sphinx_dictionary.txt
================================================
# keywords used on the sphinx language
infobox
linkcheck
seealso
toctree
toctrees

================================================
FILE: .github/.cspell/words_dictionary.txt
================================================
# actual english words (or common abbreviations) missing from CSpell
bloodlust
collidable
collidables
gamepads
grayscale
hoverable
Hoverables
inactives
layouting
NTSC
orientable
platformer
positionable
postmultiply
preorder
prerender
prerendered
pressable
ptero # short for pterodactyl
rasterizes
refreshable
renderable
rerasterize
rescan
Roboto
tappable
underutilize


================================================
FILE: .github/FUNDING.yml
================================================
open_collective: blue-fire
github: bluefireteam
patreon: bluefireoss

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: You are creating a Game with Flame but you are noticing some strange behavior, that it throws an unexpected exception, or that it is not working according to the specifications.
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        When reporting a bug, please read this complete template and fill in all the questions in order to get a better response!
  - type: textarea
    id: what-happened
    attributes:
      label: What happened?
      description: Tell us, what happened?
    validations:
      required: true
      
  - type: textarea
    id: expectation
    attributes:
      label: What do you expect?
      description: Also tell us, what behavior did you expect? 
    validations:
      required: true

  - type: textarea
    id: reproduction-steps
    attributes:
      label: How can we reproduce this?
      description: Thoroughly explain how to reproduce the bug.
      
  - type: textarea
    id: steps-to-fix
    attributes:
      label: What steps should take to fix this?
      description: If possible please report steps based on the example from this plugin! 
      
  - type: textarea
    id: example-changes
    attributes:
      label: Do have an example of where the bug occurs?
      description: If you can make a minimal reproducible example it is incredibly helpful, the simplest way is to share a link from https://zapp.run, you can start from https://zapp.run/edit/flame where all dependencies are already set up.

  - type: textarea
    id: logs
    attributes:
      label: Relevant log output
      description: If you have any debug / error logging, please fill it here within the code block below
      render: shell

  - type: textarea
    attributes:
      label: Execute in a terminal and put output into the code block below
      value: 'Output of: flutter doctor -v'

  - type: dropdown
    id: affected-platforms
    attributes:
      label: Affected platforms
      multiple: true
      options:
        - All
        - Android
        - iOS
        - Linux
        - macOS
        - Windows
        - Web
    validations:
      required: true

  - type: textarea
    id: other-information
    attributes:
      label: Other information
      description: Do you have any other useful information about this bug report? Please write it down here

  - type: checkboxes
    id: terms
    attributes:
      label: Are you interested in working on a PR for this?
      options:
        - label: I want to work on this


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: I have some questions about Flame.
    url: https://stackoverflow.com/tags/flame
    about: Ask your questions on StackOverflow! The community is always willing to help out.
  - name: Join us on Discord!
    url: https://discord.gg/pxrBmy4
    about: Ask your questions in our community!


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
description: Suggest a new feature for Flame.
labels: ["enhancement"]
body:
  - type: markdown
    attributes:
      value: |
        When suggesting a feature, please read this complete form and fill in all the questions in order to get a better response!
  - type: textarea
    id: problem-to-solve
    attributes:
      label: Problem to solve
      description: Which problem would be solved with this feature?
    validations:
      required: true
  - type: textarea
    id: proposal
    attributes:
      label: Proposal
      description: What do you propose as a solution? Add as much information as you can!
    validations:
      required: true
  - type: textarea
    id: more-information
    attributes:
      label: More information
      description: Do you have any other useful information about this feature report? Please write it down here. Possible helpful information are references to other sites/repositories.
  - type: checkboxes
    id: other
    attributes:
      label: Other
      options:
        - label: Are you interested in working on a PR for this? 


================================================
FILE: .github/ISSUE_TEMPLATE/improvement_suggestion.yml
================================================
name: Improvement suggestion
description: Something in Flame can be improved.
labels: ["enhancement"]
body:
  - type: markdown
    attributes:
      value: |
        When suggesting an improvement, please read this complete form and fill in all the questions in order to get a better response!
  - type: textarea
    id: area-to-improve
    attributes:
      label: What could be improved
      description: What part of the code/functionality could be improved?
    validations:
      required: true
  - type: textarea
    id: why
    attributes:
      label: Why should this be improved
      description: Why is this necessary to be improved?
    validations:
      required: true
  - type: textarea
    id: risks
    attributes:
      label: Risks
      description: Are there any risks in improving this? Will the API change? Will other functionality change?
  - type: textarea
    id: more-information
    attributes:
      label: More information
      description: Do you have any other useful information about this feature report? Please write it down here. Possible helpful information are references to other sites/repositories.
  - type: checkboxes
    id: other
    attributes:
      label: Other
      options:
        - label: Are you interested in working on a PR for this? 


================================================
FILE: .github/cspell.json
================================================
{
  "version": "0.2",
  "language": "en",
  "flagWords": [
    "teh",
    "hte"
  ],
  "ignorePaths": [
    "**/media/**",
    "**/assets/**",
    "**/CHANGELOG.md"
  ],
  "ignoreRegExpList": [
    "\\#[\\w\\-]+"
  ],
  "dictionaries": [
    "en_US",
    "softwareTerms",
    "dart_dictionary",
    "flame_dictionary",
    "gamedev_dictionary",
    "sphinx_dictionary",
    "people_usernames",
    "words_dictionary"
  ],
  "dictionaryDefinitions": [
    {
      "name": "dart_dictionary",
      "path": "./.cspell/dart_dictionary.txt",
      "addWords": true
    },
    {
      "name": "flame_dictionary",
      "path": "./.cspell/flame_dictionary.txt",
      "addWords": true
    },
    {
      "name": "gamedev_dictionary",
      "path": "./.cspell/gamedev_dictionary.txt",
      "addWords": true
    },
    {
      "name": "sphinx_dictionary",
      "path": "./.cspell/sphinx_dictionary.txt",
      "addWords": true
    },
    {
      "name": "people_usernames",
      "path": "./.cspell/people_usernames.txt",
      "addWords": true
    },
    {
      "name": "words_dictionary",
      "path": "./.cspell/words_dictionary.txt",
      "addWords": true
    }
  ]
}


================================================
FILE: .github/pull_request_template.md
================================================
<!-- Exclude from commit message -->
<!--
The title of your PR on the line above should start with a [Conventional Commit] prefix
(`fix:`, `feat:`, `docs:`, `test:`, `chore:`, `refactor:`, `perf:`, `build:`, `ci:`,
`style:`, `revert:`). This title will later become an entry in the [CHANGELOG], so please
make sure that it summarizes the PR adequately.

Don't remove the "exclude from commit message" comments below. They are used to prevent
the PR description template from being included in the git log.
Only change the "Replace this text" parts.
-->

# Description
<!--
Provide a description of what this PR is doing.
If you're modifying existing behavior, describe the existing behavior, how this PR is changing it,
and what motivated the change. If this is a breaking change, specify explicitly which APIs were
changed.
-->
<!-- End of exclude from commit message -->
Replace this text.

<!-- Exclude from commit message -->
## Checklist
<!--
Before you create this PR confirm that it meets all requirements listed below by checking the
relevant checkboxes with `[x]`. If some checkbox is not applicable, mark it as `[-]`.
-->

- [ ] I have followed the [Contributor Guide] when preparing my PR.
- [ ] I have updated/added tests for ALL new/updated/fixed functionality.
- [ ] I have updated/added relevant documentation in `docs` and added dartdoc comments with `///`.
- [ ] I have updated/added relevant examples in `examples` or `docs`.


## Breaking Change?
<!--
Would your PR require Flame users to update their apps following your change?

If yes, then the title of the PR should include "!" (for example, `feat!:`, `fix!:`). See
[Conventional Commit] for details. Also, for a breaking PR uncomment and fill in the "Migration
instructions" section below.
-->

- [ ] Yes, this PR is a breaking change.
- [ ] No, this PR is not a breaking change.

<!--
### Migration instructions

If the PR is breaking, uncomment this header and add instructions for how to migrate from the
currently released version in-between the two following tags:
-->
<!-- End of exclude from commit message -->
<!-- Exclude from commit message -->

## Related Issues
<!--
Indicate which issues this PR resolves, if any. For example:

Closes #1234
!-->

<!-- Links -->
[Contributor Guide]: https://github.com/flame-engine/flame/blob/main/CONTRIBUTING.md
[Conventional Commit]: https://conventionalcommits.org
[CHANGELOG]: https://github.com/flame-engine/flame/blob/main/CHANGELOG.md
<!-- End of exclude from commit message -->


================================================
FILE: .github/workflows/cicd.yml
================================================
name: cicd

on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, reopened, synchronize]

env:
  FLUTTER_MIN_VERSION: '3.41.0'

jobs:
  # BEGIN LINTING STAGE
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: ${{env.FLUTTER_MIN_VERSION}}
      - uses: bluefireteam/melos-action@v3
      - name: "Analyze with lowest supported version"
        uses: invertase/github-action-dart-analyzer@v3
        with:
          fatal-infos: true

  markdown-lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - run: npm install -g markdownlint-cli
      - run: markdownlint . -p .markdownlintignore -c .markdownlint.yaml

  dcm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
      - uses: bluefireteam/melos-action@v3
      - name: Install DCM
        uses: CQLabs/setup-dcm@v2
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

      - name: Run DCM
        run: dcm analyze .
  # END LINTING STAGE


================================================
FILE: .github/workflows/gh-pages.yml
================================================
name: Gh-Pages

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
      - uses: bluefireteam/melos-action@v2
      - uses: bluefireteam/flutter-gh-pages@v9
        with:
          workingDir: examples

  build-docs:
    runs-on: ubuntu-latest

    steps:
      - name: Trigger building the docs
        run: |
          curl -XPOST -u "${{ secrets.DOCS_BUILD_DISPATCH }}" \
          -H "Accept:application/vnd.github" \
          -H "Content-Type:application/json" \
          https://api.github.com/repos/flame-engine/flame-docs-site/actions/workflows/13757924/dispatches \
          --data '{"ref": "main" }'


================================================
FILE: .github/workflows/release-prepare.yml
================================================
name: Prepare release
on:
  workflow_dispatch:
    inputs:
      prerelease:
        description: 'Version as prerelease'
        required: false
        default: false
        type: boolean

jobs:
  prepare-release:
    name: Prepare release
    permissions:
      contents: write
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: subosito/flutter-action@v2
      - uses: bluefireteam/melos-action@v3
        with:
          run-versioning: ${{ inputs.prerelease == false }}
          run-versioning-prerelease: ${{ inputs.prerelease == true }}
          publish-dry-run: true
          create-pr: true


================================================
FILE: .github/workflows/release-publish.yml
================================================
name: Publish packages
on:
  # Enable to also publish, when pushing a tag
  #push:
  #  tags:
  #    - '*'
  workflow_dispatch:

jobs:
  publish-packages:
    name: Publish packages
    permissions:
      contents: write
      id-token: write # Required for authentication using OIDC
    runs-on: [ ubuntu-latest ]
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: subosito/flutter-action@v2
      - uses: bluefireteam/melos-action@v3
        with:
          publish: true



================================================
FILE: .github/workflows/release-tag.yml
================================================
name: Tag release
on:
  push:
    branches: [main]

jobs:
  publish-packages:
    name: Create tags for release
    permissions:
      actions: write
      contents: write
    runs-on: [ ubuntu-latest ]
    if: contains(github.event.head_commit.message, 'chore(release)')
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: subosito/flutter-action@v2
      - uses: bluefireteam/melos-action@v3
        with:
          tag: true
      - run: |
          melos exec -c1 --no-published --no-private --order-dependents -- \
          gh workflow run release-publish.yml \
          --ref \$MELOS_PACKAGE_NAME-v\$MELOS_PACKAGE_VERSION
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}



================================================
FILE: .github/workflows/spell_checker.yml
================================================
name: spell_checker

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, reopened, synchronize]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm -g install cspell@9.2.1
      # spell check
      - run: ./scripts/cspell-run.sh
      # verify dictionary words are sorted and not orphan
      - run: ./scripts/cspell-verify.sh

================================================
FILE: .github/workflows/title-validation.yml
================================================
# See https://github.com/amannn/action-semantic-pull-request
name: 'PR Title is Conventional'

on:
  pull_request_target:
    types:
      - opened
      - edited
      - synchronize

jobs:
  main:
    name: Validate PR title
    runs-on: ubuntu-latest
    steps:
      - uses: amannn/action-semantic-pull-request@v6
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          types: |
            build
            chore
            ci
            docs
            feat
            fix
            perf
            refactor
            revert
            style
            test
          subjectPattern: ^[^a-z].+$
          subjectPatternError: |
            The subject of the PR can't begin with a lowercase letter.


================================================
FILE: .gitignore
================================================
# Miscellaneous
*.class
*.bak
*.fvm
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.vscode/
.venv/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# Flutter/Dart/Pub related
**/doc/api/
**/failures
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
android/
ios/
macos/
windows/
linux/
desktop/
**/build/
coverage/
pubspec.lock
pubspec_overrides.yaml
devtools_options.yaml

# Sphinx related
__pycache__/
_build/

# Custom
lib/generated_plugin_registrant.dart
examples/**/.gitignore

**/example/android
**/example/ios
**/example/linux
**/example/macos
**/example/windows
**/example/web

.metadata

# FVM
.fvm/
.fvmrc

# LLM
.claude/
.cursor/


================================================
FILE: .markdownlint.yaml
================================================
# Default state for all rules
default: true

# MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
MD001: true

# MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
MD002:
  # Heading level
  level: 1

# MD003/heading-style/header-style - Heading style
MD003:
  # Heading style
  style: "atx"

# MD004/ul-style - Unordered list style
MD004:
  # List style
  style: "dash"

# MD005/list-indent - Inconsistent indentation for list items at the same level
MD005: true

# MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
MD006: true

# MD007/ul-indent - Unordered list indentation
MD007:
  # Spaces for indent
  indent: 2
  # Whether to indent the first level of the list
  start_indented: false
  # Spaces for first level indent (when start_indented is set)
  start_indent: 2

# MD009/no-trailing-spaces - Trailing spaces
MD009:
  # Spaces for line break
  br_spaces: 2
  # Allow spaces for empty lines in list items
  list_item_empty_lines: false
  # Include unnecessary breaks
  strict: false

# MD010/no-hard-tabs - Hard tabs
MD010:
  # Include code blocks
  code_blocks: true
  # Fenced code languages to ignore
  ignore_code_languages: []
  # Number of spaces for each hard tab
  spaces_per_tab: 1

# MD011/no-reversed-links - Reversed link syntax
MD011: true

# MD012/no-multiple-blanks - Multiple consecutive blank lines
MD012:
  # Consecutive blank lines
  maximum: 2

# MD013/line-length - Line length
MD013:
  # Number of characters
  line_length: 100
  # Number of characters for headings
  heading_line_length: 80
  # Number of characters for code blocks
  code_block_line_length: 80
  # Include code blocks
  code_blocks: true
  # Include tables
  tables: true
  # Include headings
  headings: true
  # Include headings
  headers: true
  # Strict length checking
  strict: false
  # Stern length checking
  stern: false

# MD014/commands-show-output - Dollar signs used before commands without showing output
MD014: true

# MD018/no-missing-space-atx - No space after hash on atx style heading
MD018: true

# MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
MD019: true

# MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
MD020: true

# MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
MD021: true

# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
MD022:
  # Blank lines above heading
  lines_above: 2
  # Blank lines below heading
  lines_below: 1

# MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
MD023: true

# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
  # Only check sibling headings
  allow_different_nesting: false
  # Only check sibling headings
  siblings_only: false

# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
  # Heading level
  level: 1
  # RegExp for matching title in front matter
  front_matter_title: "^\\s*title\\s*[:=]"

# MD026/no-trailing-punctuation - Trailing punctuation in heading
MD026:
  # Punctuation characters
  punctuation: ".,;:!。,;:!"

# MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
MD027: true

# MD028/no-blanks-blockquote - Blank line inside blockquote
MD028: true

# MD029/ol-prefix - Ordered list item prefix
MD029:
  # List style
  style: "one_or_ordered"

# MD030/list-marker-space - Spaces after list markers
MD030:
  # Spaces for single-line unordered list items
  ul_single: 1
  # Spaces for single-line ordered list items
  ol_single: 1
  # Spaces for multi-line unordered list items
  ul_multi: 1
  # Spaces for multi-line ordered list items
  ol_multi: 1

# MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
MD031:
  # Include list items
  list_items: true

# MD032/blanks-around-lists - Lists should be surrounded by blank lines
MD032: true

# MD033/no-inline-html - Inline HTML
MD033:
  # Allowed elements
  allowed_elements: [p, a, img, h2]

# MD034/no-bare-urls - Bare URL used
MD034: true

# MD035/hr-style - Horizontal rule style
MD035:
  # Horizontal rule style
  style: "---"

# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
MD036:
  # Punctuation characters
  punctuation: ".,;:!?。,;:!?"

# MD037/no-space-in-emphasis - Spaces inside emphasis markers
MD037: true

# MD038/no-space-in-code - Spaces inside code span elements
MD038: true

# MD039/no-space-in-links - Spaces inside link text
MD039: true

# MD040/fenced-code-language - Fenced code blocks should have a language specified
MD040: true

# MD041/first-line-heading - First line in a file should be a top-level heading
MD041: false

# MD042/no-empty-links - No empty links
MD042: true

# MD044/proper-names - Proper names should have the correct capitalization
MD044:
  # List of proper names
  names: []
  # Include code blocks
  code_blocks: true
  # Include HTML elements
  html_elements: true

# MD045/no-alt-text - Images should have alternate text (alt text)
# TODO: Activate this with #2913 
MD045: false

# MD046/code-block-style - Code block style
MD046:
  # Block style
  style: "fenced"

# MD047/single-trailing-newline - Files should end with a single newline character
MD047: true

# MD048/code-fence-style - Code fence style
MD048:
  # Code fence style
  style: "backtick"

# MD049/emphasis-style - Emphasis style should be consistent
MD049:
  # Emphasis style should be consistent
  style: "asterisk"

# MD050/strong-style - Strong style should be consistent
MD050:
  # Strong style should be consistent
  style: "asterisk"

# MD051/link-fragments - Link fragments should be valid
MD051: true

# MD052/reference-links-images - Reference links and images should use a label that is defined
MD052: true

# MD053/link-image-reference-definitions - Link and image reference definitions should be needed
MD053:
  # Ignored definitions
  ignored_definitions: ["//"]


================================================
FILE: .markdownlintignore
================================================
**/CHANGELOG.md
**/ios/**
**/doc/api/static-assets/**
**/macos/**
**/windows/**
**/linux/**


================================================
FILE: .readthedocs.yaml
================================================
# [Read the Docs] configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

sphinx:
  builder: html
  configuration: doc/_sphinx/conf.py
  fail_on_warning: false

python:
  version: "3.8"
  install:
    - requirements: doc/_sphinx/requirements.txt


================================================
FILE: CHANGELOG.md
================================================
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 2026-03-06

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`behavior_tree` - `v0.1.5+1`](#behavior_tree---v0151)
 - [`flame` - `v1.36.0`](#flame---v1360)
 - [`flame_3d` - `v0.1.1+7`](#flame_3d---v0117)
 - [`flame_audio` - `v2.12.0`](#flame_audio---v2120)
 - [`flame_behavior_tree` - `v0.1.4+3`](#flame_behavior_tree---v0143)
 - [`flame_behaviors` - `v1.3.4`](#flame_behaviors---v134)
 - [`flame_bloc` - `v1.12.22`](#flame_bloc---v11222)
 - [`flame_console` - `v0.1.2+17`](#flame_console---v01217)
 - [`flame_fire_atlas` - `v1.8.16`](#flame_fire_atlas---v1816)
 - [`flame_forge2d` - `v0.19.2+5`](#flame_forge2d---v01925)
 - [`flame_isolate` - `v0.6.2+21`](#flame_isolate---v06221)
 - [`flame_kenney_xml` - `v0.1.2`](#flame_kenney_xml---v012)
 - [`flame_lint` - `v1.4.3`](#flame_lint---v143)
 - [`flame_lottie` - `v0.4.2+21`](#flame_lottie---v04221)
 - [`flame_markdown` - `v0.2.4+14`](#flame_markdown---v02414)
 - [`flame_network_assets` - `v0.3.3+21`](#flame_network_assets---v03321)
 - [`flame_noise` - `v0.3.2+21`](#flame_noise---v03221)
 - [`flame_oxygen` - `v0.2.3+21`](#flame_oxygen---v02321)
 - [`flame_rive` - `v1.11.0`](#flame_rive---v1110)
 - [`flame_riverpod` - `v5.5.3`](#flame_riverpod---v553)
 - [`flame_spine` - `v0.3.0+4`](#flame_spine---v0304)
 - [`flame_splash_screen` - `v0.3.1+3`](#flame_splash_screen---v0313)
 - [`flame_sprite_fusion` - `v0.2.3`](#flame_sprite_fusion---v023)
 - [`flame_steering_behaviors` - `v0.2.1+4`](#flame_steering_behaviors---v0214)
 - [`flame_svg` - `v1.12.0`](#flame_svg---v1120)
 - [`flame_test` - `v2.2.3`](#flame_test---v223)
 - [`flame_texturepacker` - `v5.1.0`](#flame_texturepacker---v510)
 - [`flame_tiled` - `v3.1.0`](#flame_tiled---v310)
 - [`jenny` - `v1.5.1`](#jenny---v151)

---

#### `behavior_tree` - `v0.1.5+1`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame` - `v1.36.0`

 - **FIX**: Ray direction normalization drift issues ([#3841](https://github.com/flame-engine/flame/issues/3841)). ([b8e2bab5](https://github.com/flame-engine/flame/commit/b8e2bab58fbfb1b817dd294db3d2389097d31a2d))
 - **FIX**: Initialize center offset in `CircleComponent` ctor ([#3842](https://github.com/flame-engine/flame/issues/3842)). ([a0d2a5f3](https://github.com/flame-engine/flame/commit/a0d2a5f3a2db6ca2b0c25c93ca48fe12a4bdbc11))
 - **FIX**: Resolve `fontPackage` in `IconComponent` (`_rasterizeIcon`) ([#3838](https://github.com/flame-engine/flame/issues/3838)). ([cdb2a0dd](https://github.com/flame-engine/flame/commit/cdb2a0ddf8ec6db733c904696a17ceeaed2e7b5f))
 - **FIX**: Hitboxes now correctly account for parent scale and rotation ([#3834](https://github.com/flame-engine/flame/issues/3834)). ([57adcd60](https://github.com/flame-engine/flame/commit/57adcd60970efb2dbf4f52e396a4e78a51e47be8))
 - **FIX**: Make `buildContext` available during `onLoad` and `onMount` ([#3833](https://github.com/flame-engine/flame/issues/3833)). ([60bfcb30](https://github.com/flame-engine/flame/commit/60bfcb30e7751ee65caa6425d79bbd7bb82ae3ed))
 - **FIX**: Add CJK wrapping for `TextBoxComponent` ([#3830](https://github.com/flame-engine/flame/issues/3830)). ([7f41c261](https://github.com/flame-engine/flame/commit/7f41c2614e1669398bb08858df30270d75dced68))
 - **FIX**: Prevent removed children from being re-added when parent is moved ([#3824](https://github.com/flame-engine/flame/issues/3824)). ([8e77bc2d](https://github.com/flame-engine/flame/commit/8e77bc2d87300a52c03177fb187c4e35b810acc4))
 - **FIX**: Make `removeAll(children)` work in `onRemove` ([#3823](https://github.com/flame-engine/flame/issues/3823)). ([ff760230](https://github.com/flame-engine/flame/commit/ff760230881f2a27f9d3a9462fc831c460d7ffc3))
 - **FIX**: End active collisions in ShapeHitbox.onRemove to fix inconsistent isColliding ([#3821](https://github.com/flame-engine/flame/issues/3821)). ([bc81e7fd](https://github.com/flame-engine/flame/commit/bc81e7fd96c1ec5ffad210d6d027894f6faef77b))
 - **FIX**: Use scaledRadius for CircleHitbox collision detection ([#3808](https://github.com/flame-engine/flame/issues/3808)). ([3498c1e5](https://github.com/flame-engine/flame/commit/3498c1e565985ce7d12212e6a625f538da98c362))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Add `clampDouble` to `Vector2Extension` and its tests ([#3840](https://github.com/flame-engine/flame/issues/3840)). ([6c6ccf31](https://github.com/flame-engine/flame/commit/6c6ccf317f3f397edf30a61c90ed00d087a96e9a))
 - **FEAT**: Add `transformMatrix` setter to `Transform2D` ([#3836](https://github.com/flame-engine/flame/issues/3836)). ([957ff2e0](https://github.com/flame-engine/flame/commit/957ff2e085f03ab43f40f4213d94730b52e2cfc6))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))
 - **FEAT**: Propagate Flutter hot reload through the component tree ([#3828](https://github.com/flame-engine/flame/issues/3828)). ([c44643f1](https://github.com/flame-engine/flame/commit/c44643f1afdf9890d9890d6653f7429366e7f03b))
 - **FEAT**: Add an IconComponent that renders IconData ([#3820](https://github.com/flame-engine/flame/issues/3820)). ([97931a59](https://github.com/flame-engine/flame/commit/97931a59361c51c433d366fecb30b7867813c521))
 - **FEAT**: Add `dispose()` method to `FlameGame` ([#3825](https://github.com/flame-engine/flame/issues/3825)). ([aa5a27b7](https://github.com/flame-engine/flame/commit/aa5a27b791c4bd5a3ab64ee73b34feefedb8b210))
 - **FEAT**: Add object pooling support with `ComponentPool` ([#3816](https://github.com/flame-engine/flame/issues/3816)). ([46802fab](https://github.com/flame-engine/flame/commit/46802fab4705ae8d1ff2a61660b2d80450f6075e))
 - **FEAT**: Add opposite method to Anchor ([#3817](https://github.com/flame-engine/flame/issues/3817)). ([1ffd59f0](https://github.com/flame-engine/flame/commit/1ffd59f09f90d17980b70e494ce585d676888b57))
 - **FEAT**: HitTestBehavior for GameWidget ([#3815](https://github.com/flame-engine/flame/issues/3815)). ([b888d4e2](https://github.com/flame-engine/flame/commit/b888d4e2d7ea95694a0c5f83e2fa68f8cee67069))
 - **DOCS**: Document FlameGame<W extends World> generic type parameter ([#3822](https://github.com/flame-engine/flame/issues/3822)). ([00a66123](https://github.com/flame-engine/flame/commit/00a66123d84d305e66953f1a85e66c46c8e0c4fc))

#### `flame_3d` - `v0.1.1+7`

 - **FIX**(flame_3d): Use float for numLights uniform to fix GLES crash ([#3810](https://github.com/flame-engine/flame/issues/3810)). ([f241ebd6](https://github.com/flame-engine/flame/commit/f241ebd6d73caa43387972cffeb609af2909ac2f))
 - **FIX**(flame_3d): Fix alpha blend factors for transparent background compositing ([#3812](https://github.com/flame-engine/flame/issues/3812)). ([8d7212a1](https://github.com/flame-engine/flame/commit/8d7212a1c79d561330131ea794a0ed318c3945f8))
 - **FIX**(flame_3d): Remove duplicate baseColor multiply in ambient calculation ([#3814](https://github.com/flame-engine/flame/issues/3814)). ([080bde7f](https://github.com/flame-engine/flame/commit/080bde7f4c14c9f4f91e09d9bf6e737f75449351))
 - **FIX**: Use scaledRadius for CircleHitbox collision detection ([#3808](https://github.com/flame-engine/flame/issues/3808)). ([3498c1e5](https://github.com/flame-engine/flame/commit/3498c1e565985ce7d12212e6a625f538da98c362))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_audio` - `v2.12.0`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `flame_behavior_tree` - `v0.1.4+3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_behaviors` - `v1.3.4`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_bloc` - `v1.12.22`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_console` - `v0.1.2+17`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_fire_atlas` - `v1.8.16`

 - **FIX**: Fix warnings on flame_fire_atlas.dart ([#3818](https://github.com/flame-engine/flame/issues/3818)). ([458a79a9](https://github.com/flame-engine/flame/commit/458a79a97d63d128ab127fc15616192114dc9448))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_forge2d` - `v0.19.2+5`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_isolate` - `v0.6.2+21`

 - **FIX**: Use scaledRadius for CircleHitbox collision detection ([#3808](https://github.com/flame-engine/flame/issues/3808)). ([3498c1e5](https://github.com/flame-engine/flame/commit/3498c1e565985ce7d12212e6a625f538da98c362))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_kenney_xml` - `v0.1.2`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `flame_lint` - `v1.4.3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_lottie` - `v0.4.2+21`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_markdown` - `v0.2.4+14`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_network_assets` - `v0.3.3+21`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_noise` - `v0.3.2+21`

 - **FIX**: `NoiseEffectController` producing zero progress on some platforms ([#3831](https://github.com/flame-engine/flame/issues/3831)). ([5d88832f](https://github.com/flame-engine/flame/commit/5d88832fa522a6880beeecb617b565aebcb703e7))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_oxygen` - `v0.2.3+21`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_rive` - `v1.11.0`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Rive 0.14 support ([#3839](https://github.com/flame-engine/flame/issues/3839)). ([8b245181](https://github.com/flame-engine/flame/commit/8b2451813672c25d1783447b966fd2f739492b65))

#### `flame_riverpod` - `v5.5.3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_spine` - `v0.3.0+4`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_splash_screen` - `v0.3.1+3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_sprite_fusion` - `v0.2.3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `flame_steering_behaviors` - `v0.2.1+4`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_svg` - `v1.12.0`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `flame_test` - `v2.2.3`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))

#### `flame_texturepacker` - `v5.1.0`

 - **REFACTOR**: Asset path resolution/loading in TexturePackerAtlas to correctly handle prefixes and different asset types. ([17fac08d](https://github.com/flame-engine/flame/commit/17fac08d8964991a421cde8f5dd1ace4dc4e9063))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `flame_tiled` - `v3.1.0`

 - **FIX**: Use resolved path when loading single-image tilesets ([#3826](https://github.com/flame-engine/flame/issues/3826)). ([bbdff923](https://github.com/flame-engine/flame/commit/bbdff9230f96ab18ee83a1a0ffab5b4d7f4a43bf))
 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))
 - **FEAT**: Add dynamic layer opacity support to flame_tiled ([#3843](https://github.com/flame-engine/flame/issues/3843)). ([b1702997](https://github.com/flame-engine/flame/commit/b17029977b3c5890fe6794942a0553eb3f21ff8d))
 - **FEAT**: Support package argument in asset loading methods and widgets ([#3835](https://github.com/flame-engine/flame/issues/3835)). ([3f6f95b0](https://github.com/flame-engine/flame/commit/3f6f95b0225df9e4035c74de6cfad501e8c45167))

#### `jenny` - `v1.5.1`

 - **FIX**: Bump Flutter min version to 3.41.0 ([#3807](https://github.com/flame-engine/flame/issues/3807)). ([0d505304](https://github.com/flame-engine/flame/commit/0d50530485e5be9ce1c9138a5b437607c7c5c628))


## 2026-02-11

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.35.1`](#flame---v1351)
 - [`flame_behaviors` - `v1.3.3`](#flame_behaviors---v133)
 - [`flame_behavior_tree` - `v0.1.4+2`](#flame_behavior_tree---v0142)
 - [`flame_test` - `v2.2.2`](#flame_test---v222)
 - [`flame_tiled` - `v3.0.11`](#flame_tiled---v3011)
 - [`flame_oxygen` - `v0.2.3+20`](#flame_oxygen---v02320)
 - [`flame_isolate` - `v0.6.2+20`](#flame_isolate---v06220)
 - [`flame_texturepacker` - `v5.0.5`](#flame_texturepacker---v505)
 - [`flame_sprite_fusion` - `v0.2.2+3`](#flame_sprite_fusion---v0223)
 - [`flame_steering_behaviors` - `v0.2.1+3`](#flame_steering_behaviors---v0213)
 - [`flame_fire_atlas` - `v1.8.15`](#flame_fire_atlas---v1815)
 - [`flame_audio` - `v2.11.14`](#flame_audio---v21114)
 - [`flame_spine` - `v0.3.0+3`](#flame_spine---v0303)
 - [`flame_bloc` - `v1.12.21`](#flame_bloc---v11221)
 - [`flame_kenney_xml` - `v0.1.1+20`](#flame_kenney_xml---v01120)
 - [`flame_lottie` - `v0.4.2+20`](#flame_lottie---v04220)
 - [`flame_markdown` - `v0.2.4+13`](#flame_markdown---v02413)
 - [`flame_console` - `v0.1.2+16`](#flame_console---v01216)
 - [`flame_rive` - `v1.10.23`](#flame_rive---v11023)
 - [`flame_forge2d` - `v0.19.2+4`](#flame_forge2d---v01924)
 - [`flame_noise` - `v0.3.2+20`](#flame_noise---v03220)
 - [`flame_riverpod` - `v5.5.2`](#flame_riverpod---v552)
 - [`flame_svg` - `v1.11.20`](#flame_svg---v11120)
 - [`flame_network_assets` - `v0.3.3+20`](#flame_network_assets---v03320)
 - [`flame_3d` - `v0.1.1+6`](#flame_3d---v0116)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behaviors` - `v1.3.3`
 - `flame_behavior_tree` - `v0.1.4+2`
 - `flame_test` - `v2.2.2`
 - `flame_tiled` - `v3.0.11`
 - `flame_oxygen` - `v0.2.3+20`
 - `flame_isolate` - `v0.6.2+20`
 - `flame_texturepacker` - `v5.0.5`
 - `flame_sprite_fusion` - `v0.2.2+3`
 - `flame_steering_behaviors` - `v0.2.1+3`
 - `flame_fire_atlas` - `v1.8.15`
 - `flame_audio` - `v2.11.14`
 - `flame_spine` - `v0.3.0+3`
 - `flame_bloc` - `v1.12.21`
 - `flame_kenney_xml` - `v0.1.1+20`
 - `flame_lottie` - `v0.4.2+20`
 - `flame_markdown` - `v0.2.4+13`
 - `flame_console` - `v0.1.2+16`
 - `flame_rive` - `v1.10.23`
 - `flame_forge2d` - `v0.19.2+4`
 - `flame_noise` - `v0.3.2+20`
 - `flame_riverpod` - `v5.5.2`
 - `flame_svg` - `v1.11.20`
 - `flame_network_assets` - `v0.3.3+20`
 - `flame_3d` - `v0.1.1+6`

---

#### `flame` - `v1.35.1`

 - **FIX**: Cancel taps that start inside the component and end outside ([#3805](https://github.com/flame-engine/flame/issues/3805)). ([ebcdb81c](https://github.com/flame-engine/flame/commit/ebcdb81c83b0aa23906d1c652bad2bfadd5add71))


## 2026-02-01

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.35.0`](#flame---v1350)
 - [`flame_tiled` - `v3.0.10`](#flame_tiled---v3010)
 - [`flame_behaviors` - `v1.3.2`](#flame_behaviors---v132)
 - [`flame_behavior_tree` - `v0.1.4+1`](#flame_behavior_tree---v0141)
 - [`flame_test` - `v2.2.1`](#flame_test---v221)
 - [`flame_oxygen` - `v0.2.3+19`](#flame_oxygen---v02319)
 - [`flame_isolate` - `v0.6.2+19`](#flame_isolate---v06219)
 - [`flame_texturepacker` - `v5.0.4`](#flame_texturepacker---v504)
 - [`flame_sprite_fusion` - `v0.2.2+2`](#flame_sprite_fusion---v0222)
 - [`flame_steering_behaviors` - `v0.2.1+2`](#flame_steering_behaviors---v0212)
 - [`flame_fire_atlas` - `v1.8.14`](#flame_fire_atlas---v1814)
 - [`flame_audio` - `v2.11.13`](#flame_audio---v21113)
 - [`flame_spine` - `v0.3.0+2`](#flame_spine---v0302)
 - [`flame_bloc` - `v1.12.20`](#flame_bloc---v11220)
 - [`flame_kenney_xml` - `v0.1.1+19`](#flame_kenney_xml---v01119)
 - [`flame_lottie` - `v0.4.2+19`](#flame_lottie---v04219)
 - [`flame_markdown` - `v0.2.4+12`](#flame_markdown---v02412)
 - [`flame_console` - `v0.1.2+15`](#flame_console---v01215)
 - [`flame_rive` - `v1.10.22`](#flame_rive---v11022)
 - [`flame_forge2d` - `v0.19.2+3`](#flame_forge2d---v01923)
 - [`flame_noise` - `v0.3.2+19`](#flame_noise---v03219)
 - [`flame_riverpod` - `v5.5.1`](#flame_riverpod---v551)
 - [`flame_svg` - `v1.11.19`](#flame_svg---v11119)
 - [`flame_network_assets` - `v0.3.3+19`](#flame_network_assets---v03319)
 - [`flame_3d` - `v0.1.1+5`](#flame_3d---v0115)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behaviors` - `v1.3.2`
 - `flame_behavior_tree` - `v0.1.4+1`
 - `flame_test` - `v2.2.1`
 - `flame_oxygen` - `v0.2.3+19`
 - `flame_isolate` - `v0.6.2+19`
 - `flame_texturepacker` - `v5.0.4`
 - `flame_sprite_fusion` - `v0.2.2+2`
 - `flame_steering_behaviors` - `v0.2.1+2`
 - `flame_fire_atlas` - `v1.8.14`
 - `flame_audio` - `v2.11.13`
 - `flame_spine` - `v0.3.0+2`
 - `flame_bloc` - `v1.12.20`
 - `flame_kenney_xml` - `v0.1.1+19`
 - `flame_lottie` - `v0.4.2+19`
 - `flame_markdown` - `v0.2.4+12`
 - `flame_console` - `v0.1.2+15`
 - `flame_rive` - `v1.10.22`
 - `flame_forge2d` - `v0.19.2+3`
 - `flame_noise` - `v0.3.2+19`
 - `flame_riverpod` - `v5.5.1`
 - `flame_svg` - `v1.11.19`
 - `flame_network_assets` - `v0.3.3+19`
 - `flame_3d` - `v0.1.1+5`

---

#### `flame` - `v1.35.0`

 - **FIX**: Loading page should always be possible to add to route ([#3800](https://github.com/flame-engine/flame/issues/3800)). ([a2f5df11](https://github.com/flame-engine/flame/commit/a2f5df113293525d3c5cc6626c5fea05a02350c2))
 - **FIX**: Reimplement setLayoutSize to only notify once ([#3796](https://github.com/flame-engine/flame/issues/3796)). ([97f8bebe](https://github.com/flame-engine/flame/commit/97f8bebecaf5bb9a8018c85220609b2d9d67524a))
 - **FEAT**: Use a Free List Strategy on BatchItem indexes within SpriteBatch and return index from .add() ([#3650](https://github.com/flame-engine/flame/issues/3650)). ([8d77c84e](https://github.com/flame-engine/flame/commit/8d77c84e0c05d0b5b6ca57187bd0ee39e94c752f))
 - **FEAT**: Add TextBoxComponent.resetAnimation ([#3787](https://github.com/flame-engine/flame/issues/3787)). ([33fb10c0](https://github.com/flame-engine/flame/commit/33fb10c02a83354030fe0a278c16869f5940941a))
 - **FEAT**: Implement padding component inflateChild ([#3785](https://github.com/flame-engine/flame/issues/3785)). ([9ac53a69](https://github.com/flame-engine/flame/commit/9ac53a69e468a3e3ff073db94c1c5df57997c4f1))

#### `flame_tiled` - `v3.0.10`

 - **FIX**: Image layer paint area fix ([#3783](https://github.com/flame-engine/flame/issues/3783)). ([437d4bec](https://github.com/flame-engine/flame/commit/437d4becb5752e8429f67297b08ceeb2b971388c))


## 2025-12-17

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_riverpod` - `v5.5.0`](#flame_riverpod---v550)

---

#### `flame_riverpod` - `v5.5.0`

 - **FEAT**: Riverpod 3.0 in flame_riverpod ([#3789](https://github.com/flame-engine/flame/issues/3789)). ([57f7f9d8](https://github.com/flame-engine/flame/commit/57f7f9d8b30632717fdf894321758a26d4985907))


## 2025-11-23

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`behavior_tree` - `v0.1.5`](#behavior_tree---v015)
 - [`flame` - `v1.34.0`](#flame---v1340)
 - [`flame_behavior_tree` - `v0.1.4`](#flame_behavior_tree---v014)
 - [`flame_network_assets` - `v0.3.3+18`](#flame_network_assets---v03318)
 - [`flame_spine` - `v0.3.0+1`](#flame_spine---v0301)
 - [`flame_test` - `v2.2.0`](#flame_test---v220)
 - [`flame_behaviors` - `v1.3.1`](#flame_behaviors---v131)
 - [`flame_tiled` - `v3.0.9`](#flame_tiled---v309)
 - [`flame_oxygen` - `v0.2.3+18`](#flame_oxygen---v02318)
 - [`flame_isolate` - `v0.6.2+18`](#flame_isolate---v06218)
 - [`flame_texturepacker` - `v5.0.3`](#flame_texturepacker---v503)
 - [`flame_sprite_fusion` - `v0.2.2+1`](#flame_sprite_fusion---v0221)
 - [`flame_steering_behaviors` - `v0.2.1+1`](#flame_steering_behaviors---v0211)
 - [`flame_fire_atlas` - `v1.8.13`](#flame_fire_atlas---v1813)
 - [`flame_audio` - `v2.11.12`](#flame_audio---v21112)
 - [`flame_bloc` - `v1.12.19`](#flame_bloc---v11219)
 - [`flame_kenney_xml` - `v0.1.1+18`](#flame_kenney_xml---v01118)
 - [`flame_lottie` - `v0.4.2+18`](#flame_lottie---v04218)
 - [`flame_markdown` - `v0.2.4+11`](#flame_markdown---v02411)
 - [`flame_console` - `v0.1.2+14`](#flame_console---v01214)
 - [`flame_rive` - `v1.10.21`](#flame_rive---v11021)
 - [`flame_forge2d` - `v0.19.2+2`](#flame_forge2d---v01922)
 - [`flame_noise` - `v0.3.2+18`](#flame_noise---v03218)
 - [`flame_riverpod` - `v5.4.21`](#flame_riverpod---v5421)
 - [`flame_svg` - `v1.11.18`](#flame_svg---v11118)
 - [`flame_3d` - `v0.1.1+4`](#flame_3d---v0114)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behaviors` - `v1.3.1`
 - `flame_tiled` - `v3.0.9`
 - `flame_oxygen` - `v0.2.3+18`
 - `flame_isolate` - `v0.6.2+18`
 - `flame_texturepacker` - `v5.0.3`
 - `flame_sprite_fusion` - `v0.2.2+1`
 - `flame_steering_behaviors` - `v0.2.1+1`
 - `flame_fire_atlas` - `v1.8.13`
 - `flame_audio` - `v2.11.12`
 - `flame_bloc` - `v1.12.19`
 - `flame_kenney_xml` - `v0.1.1+18`
 - `flame_lottie` - `v0.4.2+18`
 - `flame_markdown` - `v0.2.4+11`
 - `flame_console` - `v0.1.2+14`
 - `flame_rive` - `v1.10.21`
 - `flame_forge2d` - `v0.19.2+2`
 - `flame_noise` - `v0.3.2+18`
 - `flame_riverpod` - `v5.4.21`
 - `flame_svg` - `v1.11.18`
 - `flame_3d` - `v0.1.1+4`

---

#### `behavior_tree` - `v0.1.5`

 - **FEAT**: Add `Blackboard` support for behavior trees ([#3756](https://github.com/flame-engine/flame/issues/3756)). ([955411d3](https://github.com/flame-engine/flame/commit/955411d34a6e85e25524b52938146578fa4aa3e3))

#### `flame` - `v1.34.0`

 - **FEAT**: Add scaling gesture for components ([#3770](https://github.com/flame-engine/flame/issues/3770)). ([f413eddb](https://github.com/flame-engine/flame/commit/f413eddbf1581f30087ba53f9516e22e035bda7a))
 - **FEAT**: Linear layout component text box component ([#3779](https://github.com/flame-engine/flame/issues/3779)). ([476680d7](https://github.com/flame-engine/flame/commit/476680d7b699be7ffd4e3c3421e6f27659a66420))
 - **FEAT**: TextBoxComponent updateBounds on set boxConfig ([#3777](https://github.com/flame-engine/flame/issues/3777)). ([eefb2f9e](https://github.com/flame-engine/flame/commit/eefb2f9e966a4ead5bcf0d3985314609166609f1))
 - **FEAT**: Add the `CombinedEffect` that bundles many effects together in one ([#3776](https://github.com/flame-engine/flame/issues/3776)). ([77869f57](https://github.com/flame-engine/flame/commit/77869f573df8b0eb1ce02de8f2b896286768bc6f))
 - **DOCS**: Fix documentation typos ([#3769](https://github.com/flame-engine/flame/issues/3769)). ([db74da15](https://github.com/flame-engine/flame/commit/db74da154b309e7544f5242c49d56717e385c5fc))

#### `flame_behavior_tree` - `v0.1.4`

 - **FEAT**: Add `Blackboard` support for behavior trees ([#3756](https://github.com/flame-engine/flame/issues/3756)). ([955411d3](https://github.com/flame-engine/flame/commit/955411d34a6e85e25524b52938146578fa4aa3e3))

#### `flame_network_assets` - `v0.3.3+18`

 - **FIX**: Not re-encode image when saving ([#3780](https://github.com/flame-engine/flame/issues/3780)). ([30a344cf](https://github.com/flame-engine/flame/commit/30a344cfae78c6608713d4b194f3112e47068adf))

#### `flame_spine` - `v0.3.0+1`

 - **DOCS**: Updated flame_spine documentation ([#3763](https://github.com/flame-engine/flame/issues/3763)). ([3c721d91](https://github.com/flame-engine/flame/commit/3c721d91f3e3514c79e77b8e2e37a641305a2e04))

#### `flame_test` - `v2.2.0`

 - **FEAT**: Add scaling gesture for components ([#3770](https://github.com/flame-engine/flame/issues/3770)). ([f413eddb](https://github.com/flame-engine/flame/commit/f413eddbf1581f30087ba53f9516e22e035bda7a))


## 2025-11-03

### Changes

---

Packages with breaking changes:

 - [`flame_spine` - `v0.3.0`](#flame_spine---v030)

Packages with other changes:

 - There are no other changes in this release.

---

#### `flame_spine` - `v0.3.0`

 - **BREAKING** **FEAT**: Support Spine 4.3 ([#3760](https://github.com/flame-engine/flame/issues/3760)). ([17bc40c3](https://github.com/flame-engine/flame/commit/17bc40c361471fde35b360671cccef115ed0b4bc))


## 2025-10-29

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`behavior_tree` - `v0.1.4`](#behavior_tree---v014)
 - [`flame_sprite_fusion` - `v0.2.2`](#flame_sprite_fusion---v022)

---

#### `behavior_tree` - `v0.1.4`

 - **CHORE**: Bump dependencies.

#### `flame_sprite_fusion` - `v0.2.2`

 - **FEAT**: Add `getLayerByName` to `SpriteFusionTilemapData` ([#3755](https://github.com/flame-engine/flame/issues/3755)). ([9a6ca27b](https://github.com/flame-engine/flame/commit/9a6ca27b42715c0b9ae52885ab8c94bed3819c11))


## 2025-10-22

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.33.0`](#flame---v1330)
 - [`flame_test` - `v2.1.0`](#flame_test---v210)

Packages with other changes:

 - [`flame_audio` - `v2.11.11`](#flame_audio---v21111)
 - [`flame_behaviors` - `v1.3.0`](#flame_behaviors---v130)
 - [`flame_console` - `v0.1.2+13`](#flame_console---v01213)
 - [`flame_fire_atlas` - `v1.8.12`](#flame_fire_atlas---v1812)
 - [`flame_network_assets` - `v0.3.3+17`](#flame_network_assets---v03317)
 - [`flame_spine` - `v0.2.2+17`](#flame_spine---v02217)
 - [`flame_sprite_fusion` - `v0.2.1`](#flame_sprite_fusion---v021)
 - [`flame_steering_behaviors` - `v0.2.1`](#flame_steering_behaviors---v021)
 - [`flame_tiled` - `v3.0.8`](#flame_tiled---v308)
 - [`flame_behavior_tree` - `v0.1.3+17`](#flame_behavior_tree---v01317)
 - [`flame_oxygen` - `v0.2.3+17`](#flame_oxygen---v02317)
 - [`flame_isolate` - `v0.6.2+17`](#flame_isolate---v06217)
 - [`flame_texturepacker` - `v5.0.2`](#flame_texturepacker---v502)
 - [`flame_bloc` - `v1.12.18`](#flame_bloc---v11218)
 - [`flame_kenney_xml` - `v0.1.1+17`](#flame_kenney_xml---v01117)
 - [`flame_lottie` - `v0.4.2+17`](#flame_lottie---v04217)
 - [`flame_markdown` - `v0.2.4+10`](#flame_markdown---v02410)
 - [`flame_rive` - `v1.10.20`](#flame_rive---v11020)
 - [`flame_forge2d` - `v0.19.2+1`](#flame_forge2d---v01921)
 - [`flame_noise` - `v0.3.2+17`](#flame_noise---v03217)
 - [`flame_riverpod` - `v5.4.20`](#flame_riverpod---v5420)
 - [`flame_svg` - `v1.11.17`](#flame_svg---v11117)
 - [`flame_3d` - `v0.1.1+3`](#flame_3d---v0113)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+17`
 - `flame_oxygen` - `v0.2.3+17`
 - `flame_isolate` - `v0.6.2+17`
 - `flame_texturepacker` - `v5.0.2`
 - `flame_bloc` - `v1.12.18`
 - `flame_kenney_xml` - `v0.1.1+17`
 - `flame_lottie` - `v0.4.2+17`
 - `flame_markdown` - `v0.2.4+10`
 - `flame_rive` - `v1.10.20`
 - `flame_forge2d` - `v0.19.2+1`
 - `flame_noise` - `v0.3.2+17`
 - `flame_riverpod` - `v5.4.20`
 - `flame_svg` - `v1.11.17`
 - `flame_3d` - `v0.1.1+3`

---

#### `flame` - `v1.33.0`

 - **REFACTOR**: Re-organize internal event imports ([#3742](https://github.com/flame-engine/flame/issues/3742)). ([7523e014](https://github.com/flame-engine/flame/commit/7523e014706a2a368eebf4843379d470c5924c68))
 - **PERF**: `addAll` shouldn't create unnecessary growing lists ([#3737](https://github.com/flame-engine/flame/issues/3737)). ([d1fa9d0d](https://github.com/flame-engine/flame/commit/d1fa9d0d5491264fbf4bb2b7e0c731597e8c0fb5))
 - **FIX**: Store json maps directly in AssetsCache ([#3746](https://github.com/flame-engine/flame/issues/3746)). ([8a9f493f](https://github.com/flame-engine/flame/commit/8a9f493fdddf68ba2889f19be71eb9e91071190f))
 - **FIX**: Unique `ComponentKey` toString ([#3739](https://github.com/flame-engine/flame/issues/3739)). ([9a4a8f20](https://github.com/flame-engine/flame/commit/9a4a8f20ff0ad20625ae7db7aca0ca683e4db417))
 - **FIX**: Depreciated AssetManifest.json switched to AssetManifest API ([#3734](https://github.com/flame-engine/flame/issues/3734)). ([a2bd9827](https://github.com/flame-engine/flame/commit/a2bd982764b8e59830e86ba8a07239cedc1bad1c))
 - **FEAT**: Dummy commit. ([8f7437d3](https://github.com/flame-engine/flame/commit/8f7437d3a468a9708f47da8863454e843bbbf72c))
 - **FEAT**: Added fromCache method to AssetsCache ([#3740](https://github.com/flame-engine/flame/issues/3740)). ([33a7123f](https://github.com/flame-engine/flame/commit/33a7123ff9538f222534379a35d9a1074102a3fd))
 - **FEAT**: Add a "raw" field to access the underlying Flutter event in the new event system ([#3731](https://github.com/flame-engine/flame/issues/3731)). ([36eb3929](https://github.com/flame-engine/flame/commit/36eb3929aa44451c1d6aa986a305c436cfa93349))
 - **DOCS**: Layout components ([#3752](https://github.com/flame-engine/flame/issues/3752)). ([0aa145bb](https://github.com/flame-engine/flame/commit/0aa145bbbd6decfa121080b1cf223e9e799c1ac4))
 - **DOCS**: Deprecate TapDetector in favour of TapCallbacks ([#2886](https://github.com/flame-engine/flame/issues/2886)). ([b173697b](https://github.com/flame-engine/flame/commit/b173697bfb7ea61287251c43cd3c9d2fdb448fe3))
 - **BREAKING** **FEAT**: Implements ExpandedComponent ([#3662](https://github.com/flame-engine/flame/issues/3662)). ([212ed354](https://github.com/flame-engine/flame/commit/212ed354d7704915a7585424e216ca83300c9530))
 - **BREAKING** **FEAT**: Support secondary taps (right click) on new callbacks system ([#3741](https://github.com/flame-engine/flame/issues/3741)). ([46bd3856](https://github.com/flame-engine/flame/commit/46bd385675ae781c4614d997e4792f53fc43271d))

#### `flame_test` - `v2.1.0`

 - **BREAKING** **FEAT**: Support secondary taps (right click) on new callbacks system ([#3741](https://github.com/flame-engine/flame/issues/3741)). ([46bd3856](https://github.com/flame-engine/flame/commit/46bd385675ae781c4614d997e4792f53fc43271d))

#### `flame_audio` - `v2.11.11`

 - **DOCS**: Deprecate TapDetector in favour of TapCallbacks ([#2886](https://github.com/flame-engine/flame/issues/2886)). ([b173697b](https://github.com/flame-engine/flame/commit/b173697bfb7ea61287251c43cd3c9d2fdb448fe3))

#### `flame_behaviors` - `v1.3.0`

 - **FEAT**: Add flame_behaviors package ([#3717](https://github.com/flame-engine/flame/issues/3717)). ([e950d79e](https://github.com/flame-engine/flame/commit/e950d79e56bf5902f2a48367a1e899e9b8903dc4))

#### `flame_console` - `v0.1.2+13`

 - **DOCS**: Add console with backtick on flame_console example ([#3743](https://github.com/flame-engine/flame/issues/3743)). ([8534a557](https://github.com/flame-engine/flame/commit/8534a5574083ba3478979a1a619bf67820062bf1))

#### `flame_fire_atlas` - `v1.8.12`

 - **DOCS**: Deprecate TapDetector in favour of TapCallbacks ([#2886](https://github.com/flame-engine/flame/issues/2886)). ([b173697b](https://github.com/flame-engine/flame/commit/b173697bfb7ea61287251c43cd3c9d2fdb448fe3))

#### `flame_network_assets` - `v0.3.3+17`

 - **DOCS**: Deprecate TapDetector in favour of TapCallbacks ([#2886](https://github.com/flame-engine/flame/issues/2886)). ([b173697b](https://github.com/flame-engine/flame/commit/b173697bfb7ea61287251c43cd3c9d2fdb448fe3))

#### `flame_spine` - `v0.2.2+17`

 - **DOCS**: Deprecate TapDetector in favour of TapCallbacks ([#2886](https://github.com/flame-engine/flame/issues/2886)). ([b173697b](https://github.com/flame-engine/flame/commit/b173697bfb7ea61287251c43cd3c9d2fdb448fe3))

#### `flame_sprite_fusion` - `v0.2.1`

 - **FEAT**: Add `hasAttribute` and `getAttribute` methods for `SpriteFusionTileData` ([#3751](https://github.com/flame-engine/flame/issues/3751)). ([17aeb93b](https://github.com/flame-engine/flame/commit/17aeb93b6f0e1bab11f6e237446811824e512b77))

#### `flame_steering_behaviors` - `v0.2.1`

 - **FEAT**: Add flame_steering_behaviors package ([#3748](https://github.com/flame-engine/flame/issues/3748)). ([2d4f0d43](https://github.com/flame-engine/flame/commit/2d4f0d43ef472b5a473cde3fc97579b8a1c0a9fc))

#### `flame_tiled` - `v3.0.8`

 - **FIX**: Show assertion when tiled file is loaded in the wrong way ([#3747](https://github.com/flame-engine/flame/issues/3747)). ([3efedc46](https://github.com/flame-engine/flame/commit/3efedc4653fa33cb239a38cc6ac8c999bcd25a7f))


## 2025-09-08

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_forge2d` - `v0.19.2`](#flame_forge2d---v0192)

---

#### `flame_forge2d` - `v0.19.2`

 - **FEAT**: Allow bodies to not be destroyed when the world is removed from the component tree ([#3716](https://github.com/flame-engine/flame/issues/3716)). ([7d18fd3d](https://github.com/flame-engine/flame/commit/7d18fd3d1cf076bce7032eb60dbfd7777643539d))


## 2025-09-07

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_forge2d` - `v0.19.1`](#flame_forge2d---v0191)
 - [`flame_3d` - `v0.1.1+2`](#flame_3d---v0112)

---

#### `flame_forge2d` - `v0.19.1`

 - **FIX**: Use correct `Forge2DWorld` in `onRemove` ([#3713](https://github.com/flame-engine/flame/issues/3713)). ([140833d1](https://github.com/flame-engine/flame/commit/140833d1eacf6b756f81f0452ec237c6991f2ae0))

#### `flame_3d` - `v0.1.1+2`

 - **DOCS**: Update README.md of flame_3d with newer instructions ([#3711](https://github.com/flame-engine/flame/issues/3711)). ([ad7dc059](https://github.com/flame-engine/flame/commit/ad7dc059f2f97e7bc78a74bdff149b26adb22fbc))


## 2025-08-28

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_3d` - `v0.1.1+1`](#flame_3d---v0111)

---

#### `flame_3d` - `v0.1.1+1`

 - **FIX**: When parsing OBJs with no normals, fallback to normal generation ([#3708](https://github.com/flame-engine/flame/issues/3708)). ([a59ccaa3](https://github.com/flame-engine/flame/commit/a59ccaa341a562c25ad54f4af567b160084e06d8))
 - **FIX**: Update compiled shaderbundle for flame_3d and add color example ([#3704](https://github.com/flame-engine/flame/issues/3704)). ([a1070d97](https://github.com/flame-engine/flame/commit/a1070d975fd3af52d44f3febb13dd97afd4990a6))


## 2025-08-26

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.32.0`](#flame---v1320)
 - [`flame_3d` - `v0.1.1`](#flame_3d---v011)
 - [`flame_tiled` - `v3.0.7`](#flame_tiled---v307)
 - [`flame_behavior_tree` - `v0.1.3+16`](#flame_behavior_tree---v01316)
 - [`flame_test` - `v2.0.3`](#flame_test---v203)
 - [`flame_oxygen` - `v0.2.3+16`](#flame_oxygen---v02316)
 - [`flame_isolate` - `v0.6.2+16`](#flame_isolate---v06216)
 - [`flame_texturepacker` - `v5.0.1`](#flame_texturepacker---v501)
 - [`flame_sprite_fusion` - `v0.2.0+3`](#flame_sprite_fusion---v0203)
 - [`flame_fire_atlas` - `v1.8.11`](#flame_fire_atlas---v1811)
 - [`flame_audio` - `v2.11.10`](#flame_audio---v21110)
 - [`flame_spine` - `v0.2.2+16`](#flame_spine---v02216)
 - [`flame_bloc` - `v1.12.17`](#flame_bloc---v11217)
 - [`flame_kenney_xml` - `v0.1.1+16`](#flame_kenney_xml---v01116)
 - [`flame_lottie` - `v0.4.2+16`](#flame_lottie---v04216)
 - [`flame_markdown` - `v0.2.4+9`](#flame_markdown---v0249)
 - [`flame_console` - `v0.1.2+12`](#flame_console---v01212)
 - [`flame_rive` - `v1.10.19`](#flame_rive---v11019)
 - [`flame_forge2d` - `v0.19.0+6`](#flame_forge2d---v01906)
 - [`flame_noise` - `v0.3.2+16`](#flame_noise---v03216)
 - [`flame_riverpod` - `v5.4.19`](#flame_riverpod---v5419)
 - [`flame_svg` - `v1.11.16`](#flame_svg---v11116)
 - [`flame_network_assets` - `v0.3.3+16`](#flame_network_assets---v03316)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+16`
 - `flame_test` - `v2.0.3`
 - `flame_oxygen` - `v0.2.3+16`
 - `flame_isolate` - `v0.6.2+16`
 - `flame_texturepacker` - `v5.0.1`
 - `flame_sprite_fusion` - `v0.2.0+3`
 - `flame_fire_atlas` - `v1.8.11`
 - `flame_audio` - `v2.11.10`
 - `flame_spine` - `v0.2.2+16`
 - `flame_bloc` - `v1.12.17`
 - `flame_kenney_xml` - `v0.1.1+16`
 - `flame_lottie` - `v0.4.2+16`
 - `flame_markdown` - `v0.2.4+9`
 - `flame_console` - `v0.1.2+12`
 - `flame_rive` - `v1.10.19`
 - `flame_forge2d` - `v0.19.0+6`
 - `flame_noise` - `v0.3.2+16`
 - `flame_riverpod` - `v5.4.19`
 - `flame_svg` - `v1.11.16`
 - `flame_network_assets` - `v0.3.3+16`

---

#### `flame` - `v1.32.0`

 - **REFACTOR**: Move MutableRSTransform out of flame_tiled package and into flame package ([#3695](https://github.com/flame-engine/flame/issues/3695)). ([7d644dd8](https://github.com/flame-engine/flame/commit/7d644dd84ce27e292b53f7310967393cf4c60618))
 - **FEAT**: Add renderLine helper to canvas extensions ([#3697](https://github.com/flame-engine/flame/issues/3697)). ([7ede916f](https://github.com/flame-engine/flame/commit/7ede916f77f20d8c1b0c89627800214dba9facec))

#### `flame_3d` - `v0.1.1`

 - **FIX**: Cleanup and make OBJ parser more resilient ([#3702](https://github.com/flame-engine/flame/issues/3702)). ([b96421d5](https://github.com/flame-engine/flame/commit/b96421d5035393d764a9ec34aeba8db380222f45))
 - **FIX**: Fix color to byte conversion for shaders ([#3700](https://github.com/flame-engine/flame/issues/3700)). ([2426c06b](https://github.com/flame-engine/flame/commit/2426c06b799797720c9df8fbd73e337422654d00))
 - **FIX**: Add fallback default material to avoid crashes ([#3701](https://github.com/flame-engine/flame/issues/3701)). ([8e6b04e3](https://github.com/flame-engine/flame/commit/8e6b04e38855b6fae6761a9f8d20c82c6bff6d76))
 - **FIX**: Expose Line3D on components.dart ([#3698](https://github.com/flame-engine/flame/issues/3698)). ([d58d7b54](https://github.com/flame-engine/flame/commit/d58d7b5482f646e4536160449f4a17317b8aff2b))
 - **FEAT**: Introduce cone mesh ([#3699](https://github.com/flame-engine/flame/issues/3699)). ([874a97fe](https://github.com/flame-engine/flame/commit/874a97fe421dadbed9f3825c8562f8bd7e6c95c9))
 - **DOCS**: Update instructions on how to use flame_3d ([#3696](https://github.com/flame-engine/flame/issues/3696)). ([11cc2a8f](https://github.com/flame-engine/flame/commit/11cc2a8fae0f1c17106f91ef1ac319e6f8e39036))

#### `flame_tiled` - `v3.0.7`

 - **REFACTOR**: Move MutableRSTransform out of flame_tiled package and into flame package ([#3695](https://github.com/flame-engine/flame/issues/3695)). ([7d644dd8](https://github.com/flame-engine/flame/commit/7d644dd84ce27e292b53f7310967393cf4c60618))


## 2025-08-23

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.31.0`](#flame---v1310)
 - [`flame_texturepacker` - `v5.0.0`](#flame_texturepacker---v500)

Packages with other changes:

 - [`flame_3d` - `v0.1.0`](#flame_3d---v010)
 - [`flame_lint` - `v1.4.2`](#flame_lint---v142)
 - [`flame_behavior_tree` - `v0.1.3+15`](#flame_behavior_tree---v01315)
 - [`flame_test` - `v2.0.2`](#flame_test---v202)
 - [`flame_tiled` - `v3.0.6`](#flame_tiled---v306)
 - [`flame_oxygen` - `v0.2.3+15`](#flame_oxygen---v02315)
 - [`flame_isolate` - `v0.6.2+15`](#flame_isolate---v06215)
 - [`flame_sprite_fusion` - `v0.2.0+2`](#flame_sprite_fusion---v0202)
 - [`flame_fire_atlas` - `v1.8.10`](#flame_fire_atlas---v1810)
 - [`flame_audio` - `v2.11.9`](#flame_audio---v2119)
 - [`flame_spine` - `v0.2.2+15`](#flame_spine---v02215)
 - [`flame_bloc` - `v1.12.16`](#flame_bloc---v11216)
 - [`flame_kenney_xml` - `v0.1.1+15`](#flame_kenney_xml---v01115)
 - [`flame_lottie` - `v0.4.2+15`](#flame_lottie---v04215)
 - [`flame_markdown` - `v0.2.4+8`](#flame_markdown---v0248)
 - [`flame_console` - `v0.1.2+11`](#flame_console---v01211)
 - [`flame_rive` - `v1.10.18`](#flame_rive---v11018)
 - [`flame_forge2d` - `v0.19.0+5`](#flame_forge2d---v01905)
 - [`flame_noise` - `v0.3.2+15`](#flame_noise---v03215)
 - [`flame_riverpod` - `v5.4.18`](#flame_riverpod---v5418)
 - [`flame_svg` - `v1.11.15`](#flame_svg---v11115)
 - [`flame_network_assets` - `v0.3.3+15`](#flame_network_assets---v03315)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+15`
 - `flame_test` - `v2.0.2`
 - `flame_tiled` - `v3.0.6`
 - `flame_oxygen` - `v0.2.3+15`
 - `flame_isolate` - `v0.6.2+15`
 - `flame_sprite_fusion` - `v0.2.0+2`
 - `flame_fire_atlas` - `v1.8.10`
 - `flame_audio` - `v2.11.9`
 - `flame_spine` - `v0.2.2+15`
 - `flame_bloc` - `v1.12.16`
 - `flame_kenney_xml` - `v0.1.1+15`
 - `flame_lottie` - `v0.4.2+15`
 - `flame_markdown` - `v0.2.4+8`
 - `flame_console` - `v0.1.2+11`
 - `flame_rive` - `v1.10.18`
 - `flame_forge2d` - `v0.19.0+5`
 - `flame_noise` - `v0.3.2+15`
 - `flame_riverpod` - `v5.4.18`
 - `flame_svg` - `v1.11.15`
 - `flame_network_assets` - `v0.3.3+15`

---

#### `flame` - `v1.31.0`

 - **FIX**: Resume engine on mount if paused by backgrounding ([#3631](https://github.com/flame-engine/flame/issues/3631)) ([#3637](https://github.com/flame-engine/flame/issues/3637)). ([b556dc35](https://github.com/flame-engine/flame/commit/b556dc3557d4b655d605c8e2b3744cafd0635841))
 - **FIX**: Export `ComponentRenderContext` ([#3669](https://github.com/flame-engine/flame/issues/3669)). ([086096ca](https://github.com/flame-engine/flame/commit/086096ca73236aaea79a2651cb9e3fa8b6211d50))
 - **FIX**: The `ParallaxComponent` should respect the `virtualSize` ([#3666](https://github.com/flame-engine/flame/issues/3666)). ([9f29c785](https://github.com/flame-engine/flame/commit/9f29c785a1e17428d3a59965b2bf484267c4b2a8))
 - **FIX**: Attach layout listeners to new children ([#3648](https://github.com/flame-engine/flame/issues/3648)). ([4821ec2c](https://github.com/flame-engine/flame/commit/4821ec2ca9cccbf8017d0b539373f599d168c45c))
 - **FEAT**: Add support for model parsing and rendering in flame_3d, including skeletal animations ([#3675](https://github.com/flame-engine/flame/issues/3675)). ([cc58aef5](https://github.com/flame-engine/flame/commit/cc58aef5b53f208fb1cbb116bfb9f9af9a351e8e))
 - **FEAT**: Add Random extensions ([#3672](https://github.com/flame-engine/flame/issues/3672)). ([50e5f296](https://github.com/flame-engine/flame/commit/50e5f29610e9bcc8d939d1e86b5c8bc398516eb1))
 - **FEAT**: Padding component ([#3661](https://github.com/flame-engine/flame/issues/3661)). ([6c953a28](https://github.com/flame-engine/flame/commit/6c953a2862b46c66b91785c5d481385567596adb))
 - **FEAT**: Add canPop to RouterComponent ([#3659](https://github.com/flame-engine/flame/issues/3659)). ([6bd3b48f](https://github.com/flame-engine/flame/commit/6bd3b48ff34c92b221b8a66ac951238d7e6176e0))
 - **FEAT**: Add children and priority to SpriteBatchComponent ([#3649](https://github.com/flame-engine/flame/issues/3649)). ([97b9ba83](https://github.com/flame-engine/flame/commit/97b9ba837e094d79f9e8d8c1ed413717b9d11663))
 - **BREAKING** **REFACTOR**: Remove shrinkwrap ([#3660](https://github.com/flame-engine/flame/issues/3660)). ([e8860f62](https://github.com/flame-engine/flame/commit/e8860f622acaf7df97ca8fcfbdf94fdae26d5921))

#### `flame_texturepacker` - `v5.0.0`

 - **BREAKING** **PERF**: TexturePacker optimizations ([#3647](https://github.com/flame-engine/flame/issues/3647)). ([5cc2eedb](https://github.com/flame-engine/flame/commit/5cc2eedb1cb17f249c97889ba924e763f83d774e))

#### `flame_3d` - `v0.1.0`

 - **REFACTOR**: Add collections library to flame_3d ([#3680](https://github.com/flame-engine/flame/issues/3680)). ([89e5e58e](https://github.com/flame-engine/flame/commit/89e5e58efb580ec267a0dca78a3a0f320203d4ee))
 - **FIX**: Update flame_3d to support both old and newer Flutter APIs ([#3663](https://github.com/flame-engine/flame/issues/3663)). ([d9f1fe7f](https://github.com/flame-engine/flame/commit/d9f1fe7f9abd8f0307ecc22ff24d3b492e9ca332))
 - **FEAT**: Add ability to run on flame_3d example ([#3679](https://github.com/flame-engine/flame/issues/3679)). ([801692bf](https://github.com/flame-engine/flame/commit/801692bfa1226e01f1540166a8140ab42e36ed87))
 - **FEAT**: Add support for model parsing and rendering in flame_3d, including skeletal animations ([#3675](https://github.com/flame-engine/flame/issues/3675)). ([cc58aef5](https://github.com/flame-engine/flame/commit/cc58aef5b53f208fb1cbb116bfb9f9af9a351e8e))
 - **FEAT**: Add setup command to flame_3d example ([#3671](https://github.com/flame-engine/flame/issues/3671)). ([2f5ba87b](https://github.com/flame-engine/flame/commit/2f5ba87be8068b12c2604b79f7db9c1f3307a4b6))
 - **FEAT**: Organize components and add destroy command to flame_3d example ([#3665](https://github.com/flame-engine/flame/issues/3665)). ([d5915752](https://github.com/flame-engine/flame/commit/d591575263d8b13aee862efe05842001aa60f89d))
 - **FEAT**: Add keybind to jump on flame_3d example ([#3664](https://github.com/flame-engine/flame/issues/3664)). ([7be0bccd](https://github.com/flame-engine/flame/commit/7be0bccda0040bfc3734f90b6bca7d5e99455bee))

#### `flame_lint` - `v1.4.2`

 - **FIX**: Update flame_lint to use lints 6.0.0 ([#3612](https://github.com/flame-engine/flame/issues/3612)). ([ba5f6789](https://github.com/flame-engine/flame/commit/ba5f6789bed68e4cc7ca95584e35ed62d0111da2))


## 2025-07-13

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.30.1`](#flame---v1301)
 - [`flame_lint` - `v1.4.1`](#flame_lint---v141)
 - [`jenny` - `v1.5.0`](#jenny---v150)
 - [`flame_behavior_tree` - `v0.1.3+14`](#flame_behavior_tree---v01314)
 - [`flame_test` - `v2.0.1`](#flame_test---v201)
 - [`flame_tiled` - `v3.0.5`](#flame_tiled---v305)
 - [`flame_oxygen` - `v0.2.3+14`](#flame_oxygen---v02314)
 - [`flame_isolate` - `v0.6.2+14`](#flame_isolate---v06214)
 - [`flame_texturepacker` - `v4.4.1`](#flame_texturepacker---v441)
 - [`flame_sprite_fusion` - `v0.2.0+1`](#flame_sprite_fusion---v0201)
 - [`flame_fire_atlas` - `v1.8.9`](#flame_fire_atlas---v189)
 - [`flame_audio` - `v2.11.8`](#flame_audio---v2118)
 - [`flame_spine` - `v0.2.2+14`](#flame_spine---v02214)
 - [`flame_bloc` - `v1.12.15`](#flame_bloc---v11215)
 - [`flame_kenney_xml` - `v0.1.1+14`](#flame_kenney_xml---v01114)
 - [`flame_lottie` - `v0.4.2+14`](#flame_lottie---v04214)
 - [`flame_markdown` - `v0.2.4+7`](#flame_markdown---v0247)
 - [`flame_console` - `v0.1.2+10`](#flame_console---v01210)
 - [`flame_rive` - `v1.10.17`](#flame_rive---v11017)
 - [`flame_forge2d` - `v0.19.0+4`](#flame_forge2d---v01904)
 - [`flame_noise` - `v0.3.2+14`](#flame_noise---v03214)
 - [`flame_riverpod` - `v5.4.17`](#flame_riverpod---v5417)
 - [`flame_svg` - `v1.11.14`](#flame_svg---v11114)
 - [`flame_network_assets` - `v0.3.3+14`](#flame_network_assets---v03314)
 - [`flame_3d` - `v0.1.0-dev.14`](#flame_3d---v010-dev14)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+14`
 - `flame_test` - `v2.0.1`
 - `flame_tiled` - `v3.0.5`
 - `flame_oxygen` - `v0.2.3+14`
 - `flame_isolate` - `v0.6.2+14`
 - `flame_texturepacker` - `v4.4.1`
 - `flame_sprite_fusion` - `v0.2.0+1`
 - `flame_fire_atlas` - `v1.8.9`
 - `flame_audio` - `v2.11.8`
 - `flame_spine` - `v0.2.2+14`
 - `flame_bloc` - `v1.12.15`
 - `flame_kenney_xml` - `v0.1.1+14`
 - `flame_lottie` - `v0.4.2+14`
 - `flame_markdown` - `v0.2.4+7`
 - `flame_console` - `v0.1.2+10`
 - `flame_rive` - `v1.10.17`
 - `flame_forge2d` - `v0.19.0+4`
 - `flame_noise` - `v0.3.2+14`
 - `flame_riverpod` - `v5.4.17`
 - `flame_svg` - `v1.11.14`
 - `flame_network_assets` - `v0.3.3+14`
 - `flame_3d` - `v0.1.0-dev.14`

---

#### `flame` - `v1.30.1`

 - **FIX**: Hitboxes with vertically flipped ancestor should not reflect angle for vertices ([#3642](https://github.com/flame-engine/flame/issues/3642)). ([7e8d3a98](https://github.com/flame-engine/flame/commit/7e8d3a9885f77da12456b148cd1f425395a00f71))
 - **FIX**: Remove unnecessary breaks ([#3638](https://github.com/flame-engine/flame/issues/3638)). ([ea29929c](https://github.com/flame-engine/flame/commit/ea29929cd86ed00407f2d2aa69dcf6f34ffc5bbd))
 - **FEAT**: Adding priority to layout components ([#3639](https://github.com/flame-engine/flame/issues/3639)). ([2eff267d](https://github.com/flame-engine/flame/commit/2eff267d795fbfbf9f5b3215b6dca4a2da9864e1))

#### `flame_lint` - `v1.4.1`

 - **FIX**: Remove unnecessary breaks ([#3638](https://github.com/flame-engine/flame/issues/3638)). ([ea29929c](https://github.com/flame-engine/flame/commit/ea29929cd86ed00407f2d2aa69dcf6f34ffc5bbd))

#### `jenny` - `v1.5.0`

 - **FEAT**: Expose additional flame_jenny Command classes ([#3641](https://github.com/flame-engine/flame/issues/3641)). ([8ef2587d](https://github.com/flame-engine/flame/commit/8ef2587de4a1bef1d745cc1f5a626a7e84c6230c))


## 2025-06-30

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.30.0`](#flame---v1300)
 - [`flame_sprite_fusion` - `v0.2.0`](#flame_sprite_fusion---v020)
 - [`flame_test` - `v2.0.0`](#flame_test---v200)

Packages with other changes:

 - [`flame_svg` - `v1.11.13`](#flame_svg---v11113)
 - [`flame_texturepacker` - `v4.4.0`](#flame_texturepacker---v440)
 - [`flame_tiled` - `v3.0.4`](#flame_tiled---v304)
 - [`flame_behavior_tree` - `v0.1.3+13`](#flame_behavior_tree---v01313)
 - [`flame_oxygen` - `v0.2.3+13`](#flame_oxygen---v02313)
 - [`flame_isolate` - `v0.6.2+13`](#flame_isolate---v06213)
 - [`flame_fire_atlas` - `v1.8.8`](#flame_fire_atlas---v188)
 - [`flame_audio` - `v2.11.7`](#flame_audio---v2117)
 - [`flame_spine` - `v0.2.2+13`](#flame_spine---v02213)
 - [`flame_bloc` - `v1.12.14`](#flame_bloc---v11214)
 - [`flame_kenney_xml` - `v0.1.1+13`](#flame_kenney_xml---v01113)
 - [`flame_lottie` - `v0.4.2+13`](#flame_lottie---v04213)
 - [`flame_markdown` - `v0.2.4+6`](#flame_markdown---v0246)
 - [`flame_console` - `v0.1.2+9`](#flame_console---v0129)
 - [`flame_rive` - `v1.10.16`](#flame_rive---v11016)
 - [`flame_forge2d` - `v0.19.0+3`](#flame_forge2d---v01903)
 - [`flame_noise` - `v0.3.2+13`](#flame_noise---v03213)
 - [`flame_riverpod` - `v5.4.16`](#flame_riverpod---v5416)
 - [`flame_network_assets` - `v0.3.3+13`](#flame_network_assets---v03313)
 - [`flame_3d` - `v0.1.0-dev.13`](#flame_3d---v010-dev13)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+13`
 - `flame_oxygen` - `v0.2.3+13`
 - `flame_isolate` - `v0.6.2+13`
 - `flame_fire_atlas` - `v1.8.8`
 - `flame_audio` - `v2.11.7`
 - `flame_spine` - `v0.2.2+13`
 - `flame_bloc` - `v1.12.14`
 - `flame_kenney_xml` - `v0.1.1+13`
 - `flame_lottie` - `v0.4.2+13`
 - `flame_markdown` - `v0.2.4+6`
 - `flame_console` - `v0.1.2+9`
 - `flame_rive` - `v1.10.16`
 - `flame_forge2d` - `v0.19.0+3`
 - `flame_noise` - `v0.3.2+13`
 - `flame_riverpod` - `v5.4.16`
 - `flame_network_assets` - `v0.3.3+13`
 - `flame_3d` - `v0.1.0-dev.13`

---

#### `flame` - `v1.30.0`

 - **FIX**: `angleTo` and `lookAt` should consider parental transformations ([#3629](https://github.com/flame-engine/flame/issues/3629)). ([e6f3d105](https://github.com/flame-engine/flame/commit/e6f3d105577cd346d377aaaed42d4ceb93aec077))
 - **FIX**: `angleTo`, `absoluteAngle` and the `angle` setter now returns normalized angles between `[-pi, pi]` ([#3629](https://github.com/flame-engine/flame/issues/3629)). ([e6f3d105](https://github.com/flame-engine/flame/commit/e6f3d105577cd346d377aaaed42d4ceb93aec077))
 - **FIX**: Delay should work with SpeedEffectControllers ([#3618](https://github.com/flame-engine/flame/issues/3618)). ([bfbb49f5](https://github.com/flame-engine/flame/commit/bfbb49f5b6aac4f69c8602cd20a457e95fe02973))
 - **FIX**: Pass in intended parent to remove ([#3626](https://github.com/flame-engine/flame/issues/3626)). ([7a05f74d](https://github.com/flame-engine/flame/commit/7a05f74dff7c3dbac96d8c8eb52ad7f0625266a1))
 - **FIX**: Call `super.onDispose` last and check `mounted` before `setState` ([#3623](https://github.com/flame-engine/flame/issues/3623)). ([3d2716c1](https://github.com/flame-engine/flame/commit/3d2716c1fb2b64d363dbc8e9aea852723e909710))
 - **FIX**: Angled line intersections should work with 32-bit vectors ([#3617](https://github.com/flame-engine/flame/issues/3617)). ([e32bff45](https://github.com/flame-engine/flame/commit/e32bff455c0f5715c1a7018f865b44b2410ed7db))
 - **FIX**: PostProcessComponent should size dynamically ([#3611](https://github.com/flame-engine/flame/issues/3611)). ([baecb861](https://github.com/flame-engine/flame/commit/baecb86186a1bff7f21d804e7867f894d2f9d23c))
 - **FEAT**: Add `target` argument to `SpawnComponent` ([#3635](https://github.com/flame-engine/flame/issues/3635)). ([3747e1e8](https://github.com/flame-engine/flame/commit/3747e1e8bd1f4bde3c6b64fff0f336690f9da6c8))
 - **FEAT**: Add `spawnCount` to `SpawnComponent` ([#3634](https://github.com/flame-engine/flame/issues/3634)). ([f377d7e7](https://github.com/flame-engine/flame/commit/f377d7e702892836a5fded1c8d4f648682e69e50))
 - **FEAT**: Adding RasterSpriteComponent.fromImage constructor ([#3627](https://github.com/flame-engine/flame/issues/3627)). ([74a84ba7](https://github.com/flame-engine/flame/commit/74a84ba7c159631296961eec994179e227ccd1d3))
 - **FEAT**: Implement measure to fix ghost lines and graphical artifacts in Sprites ([#3590](https://github.com/flame-engine/flame/issues/3590)). ([6fd36bc1](https://github.com/flame-engine/flame/commit/6fd36bc1d883d61621806fba54a792dc6924c4e8))
 - **BREAKING** **FEAT**: Pass `WidgetTester` for `testGolden` prepare function ([#3624](https://github.com/flame-engine/flame/issues/3624)). ([10509326](https://github.com/flame-engine/flame/commit/105093266431408db0f9e74042e03e2234d9b22e))

#### `flame_sprite_fusion` - `v0.2.0`

 - **BREAKING** **FEAT**: Pass `WidgetTester` for `testGolden` prepare function ([#3624](https://github.com/flame-engine/flame/issues/3624)). ([10509326](https://github.com/flame-engine/flame/commit/105093266431408db0f9e74042e03e2234d9b22e))

#### `flame_test` - `v2.0.0`

 - **BREAKING** **FEAT**: Pass `WidgetTester` for `testGolden` prepare function ([#3624](https://github.com/flame-engine/flame/issues/3624)). ([10509326](https://github.com/flame-engine/flame/commit/105093266431408db0f9e74042e03e2234d9b22e))

#### `flame_svg` - `v1.11.13`

 - **FIX**: Calculate zoom ratio before rendering svg ([#3616](https://github.com/flame-engine/flame/issues/3616)). ([f8b7ef82](https://github.com/flame-engine/flame/commit/f8b7ef82b7fc54af7171c94ae2112b18cebb236a))

#### `flame_texturepacker` - `v4.4.0`

 - **FEAT**: Implement measure to fix ghost lines and graphical artifacts in Sprites ([#3590](https://github.com/flame-engine/flame/issues/3590)). ([6fd36bc1](https://github.com/flame-engine/flame/commit/6fd36bc1d883d61621806fba54a792dc6924c4e8))

#### `flame_tiled` - `v3.0.4`

 - **FIX**: Add optional key parameter to TiledComponent.load method ([#3630](https://github.com/flame-engine/flame/issues/3630)). ([5a27746e](https://github.com/flame-engine/flame/commit/5a27746ee4dbab17565472133274dd1308525978))
 - **FIX**: PostProcessComponent should size dynamically ([#3611](https://github.com/flame-engine/flame/issues/3611)). ([baecb861](https://github.com/flame-engine/flame/commit/baecb86186a1bff7f21d804e7867f894d2f9d23c))


## 2025-05-23

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.29.0`](#flame---v1290)

Packages with other changes:

 - [`flame_3d` - `v0.1.0-dev.12`](#flame_3d---v010-dev12)
 - [`flame_lint` - `v1.4.0`](#flame_lint---v140)
 - [`jenny` - `v1.4.0`](#jenny---v140)
 - [`flame_behavior_tree` - `v0.1.3+12`](#flame_behavior_tree---v01312)
 - [`flame_test` - `v1.19.2`](#flame_test---v1192)
 - [`flame_tiled` - `v3.0.3`](#flame_tiled---v303)
 - [`flame_oxygen` - `v0.2.3+12`](#flame_oxygen---v02312)
 - [`flame_isolate` - `v0.6.2+12`](#flame_isolate---v06212)
 - [`flame_texturepacker` - `v4.3.1`](#flame_texturepacker---v431)
 - [`flame_sprite_fusion` - `v0.1.3+12`](#flame_sprite_fusion---v01312)
 - [`flame_fire_atlas` - `v1.8.7`](#flame_fire_atlas---v187)
 - [`flame_audio` - `v2.11.6`](#flame_audio---v2116)
 - [`flame_spine` - `v0.2.2+12`](#flame_spine---v02212)
 - [`flame_bloc` - `v1.12.13`](#flame_bloc---v11213)
 - [`flame_kenney_xml` - `v0.1.1+12`](#flame_kenney_xml---v01112)
 - [`flame_lottie` - `v0.4.2+12`](#flame_lottie---v04212)
 - [`flame_markdown` - `v0.2.4+5`](#flame_markdown---v0245)
 - [`flame_console` - `v0.1.2+8`](#flame_console---v0128)
 - [`flame_rive` - `v1.10.15`](#flame_rive---v11015)
 - [`flame_forge2d` - `v0.19.0+2`](#flame_forge2d---v01902)
 - [`flame_noise` - `v0.3.2+12`](#flame_noise---v03212)
 - [`flame_riverpod` - `v5.4.15`](#flame_riverpod---v5415)
 - [`flame_svg` - `v1.11.12`](#flame_svg---v11112)
 - [`flame_network_assets` - `v0.3.3+12`](#flame_network_assets---v03312)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+12`
 - `flame_test` - `v1.19.2`
 - `flame_tiled` - `v3.0.3`
 - `flame_oxygen` - `v0.2.3+12`
 - `flame_isolate` - `v0.6.2+12`
 - `flame_texturepacker` - `v4.3.1`
 - `flame_sprite_fusion` - `v0.1.3+12`
 - `flame_fire_atlas` - `v1.8.7`
 - `flame_audio` - `v2.11.6`
 - `flame_spine` - `v0.2.2+12`
 - `flame_bloc` - `v1.12.13`
 - `flame_kenney_xml` - `v0.1.1+12`
 - `flame_lottie` - `v0.4.2+12`
 - `flame_markdown` - `v0.2.4+5`
 - `flame_console` - `v0.1.2+8`
 - `flame_rive` - `v1.10.15`
 - `flame_forge2d` - `v0.19.0+2`
 - `flame_noise` - `v0.3.2+12`
 - `flame_riverpod` - `v5.4.15`
 - `flame_svg` - `v1.11.12`
 - `flame_network_assets` - `v0.3.3+12`

---

#### `flame` - `v1.29.0`

 - **FIX**: Only expose `ReadOnlyOrderedset` from `component.children` ([#3606](https://github.com/flame-engine/flame/issues/3606)). ([79351d19](https://github.com/flame-engine/flame/commit/79351d195ea968b8016129e79a489ef113a0fdf3))
 - **FIX**: Dispose picture is postprocess  ([#3604](https://github.com/flame-engine/flame/issues/3604)). ([3b24cdac](https://github.com/flame-engine/flame/commit/3b24cdac18ec6d846dbc4d08905fbcb897f90be8))
 - **FIX**: Materialize post process list before removing items ([#3591](https://github.com/flame-engine/flame/issues/3591)). ([e858cc1f](https://github.com/flame-engine/flame/commit/e858cc1fc74814769fc11f49014190d37bda5cbe))
 - **DOCS**: Update structure and add RowComponent + ColumnComponent docs ([#3599](https://github.com/flame-engine/flame/issues/3599)). ([d04843a4](https://github.com/flame-engine/flame/commit/d04843a44c9987825cc927a2ec8952395b423ba4))
 - **BREAKING** **FEAT**: Children should retain `parent` after parent is remove from tree ([#3602](https://github.com/flame-engine/flame/issues/3602)). ([008829af](https://github.com/flame-engine/flame/commit/008829af67e3556a92b926db6b6368acf10e249b))

#### `flame_3d` - `v0.1.0-dev.12`

 - **FIX**: Only expose `ReadOnlyOrderedset` from `component.children` ([#3606](https://github.com/flame-engine/flame/issues/3606)). ([79351d19](https://github.com/flame-engine/flame/commit/79351d195ea968b8016129e79a489ef113a0fdf3))

#### `flame_lint` - `v1.4.0`

 - **FEAT**: Preserve trailing commas in Dart ^3.8.0 ([#3607](https://github.com/flame-engine/flame/issues/3607)). ([433829cb](https://github.com/flame-engine/flame/commit/433829cbdaafa9b1e9f0250b68f5143ec1a4d562))

#### `jenny` - `v1.4.0`

 - **FEAT**(Jenny): Add onCommandFinish lifecycle method to DialogueView ([#3600](https://github.com/flame-engine/flame/issues/3600)). ([bd5a4ca6](https://github.com/flame-engine/flame/commit/bd5a4ca68a46feb6734a70d5320bb7bf23b782d5))


## 2025-04-23

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.28.1`](#flame---v1281)
 - [`flame_3d` - `v0.1.0-dev.11`](#flame_3d---v010-dev11)
 - [`flame_console` - `v0.1.2+7`](#flame_console---v0127)
 - [`flame_texturepacker` - `v4.3.0`](#flame_texturepacker---v430)
 - [`flame_behavior_tree` - `v0.1.3+11`](#flame_behavior_tree---v01311)
 - [`flame_test` - `v1.19.1`](#flame_test---v1191)
 - [`flame_tiled` - `v3.0.2`](#flame_tiled---v302)
 - [`flame_oxygen` - `v0.2.3+11`](#flame_oxygen---v02311)
 - [`flame_isolate` - `v0.6.2+11`](#flame_isolate---v06211)
 - [`flame_sprite_fusion` - `v0.1.3+11`](#flame_sprite_fusion---v01311)
 - [`flame_fire_atlas` - `v1.8.6`](#flame_fire_atlas---v186)
 - [`flame_audio` - `v2.11.5`](#flame_audio---v2115)
 - [`flame_spine` - `v0.2.2+11`](#flame_spine---v02211)
 - [`flame_bloc` - `v1.12.12`](#flame_bloc---v11212)
 - [`flame_kenney_xml` - `v0.1.1+11`](#flame_kenney_xml---v01111)
 - [`flame_lottie` - `v0.4.2+11`](#flame_lottie---v04211)
 - [`flame_markdown` - `v0.2.4+4`](#flame_markdown---v0244)
 - [`flame_rive` - `v1.10.14`](#flame_rive---v11014)
 - [`flame_forge2d` - `v0.19.0+1`](#flame_forge2d---v01901)
 - [`flame_noise` - `v0.3.2+11`](#flame_noise---v03211)
 - [`flame_riverpod` - `v5.4.14`](#flame_riverpod---v5414)
 - [`flame_svg` - `v1.11.11`](#flame_svg---v11111)
 - [`flame_network_assets` - `v0.3.3+11`](#flame_network_assets---v03311)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+11`
 - `flame_test` - `v1.19.1`
 - `flame_tiled` - `v3.0.2`
 - `flame_oxygen` - `v0.2.3+11`
 - `flame_isolate` - `v0.6.2+11`
 - `flame_sprite_fusion` - `v0.1.3+11`
 - `flame_fire_atlas` - `v1.8.6`
 - `flame_audio` - `v2.11.5`
 - `flame_spine` - `v0.2.2+11`
 - `flame_bloc` - `v1.12.12`
 - `flame_kenney_xml` - `v0.1.1+11`
 - `flame_lottie` - `v0.4.2+11`
 - `flame_markdown` - `v0.2.4+4`
 - `flame_rive` - `v1.10.14`
 - `flame_forge2d` - `v0.19.0+1`
 - `flame_noise` - `v0.3.2+11`
 - `flame_riverpod` - `v5.4.14`
 - `flame_svg` - `v1.11.11`
 - `flame_network_assets` - `v0.3.3+11`

---

#### `flame` - `v1.28.1`

 - **REFACTOR**: Replace dart:io usage with defaultTargetPlatform ([#3567](https://github.com/flame-engine/flame/issues/3567)). ([77925eb8](https://github.com/flame-engine/flame/commit/77925eb84e3ab23c301d504ccc85cc84a91cb3e4))
 - **FIX**: Add fragment shader extension from flutter_shaders ([#3578](https://github.com/flame-engine/flame/issues/3578)). ([27115729](https://github.com/flame-engine/flame/commit/271157295209cc3f147d38582c7c9447e2e84844))
 - **FIX**: Use `virtualSize` when calling `onParentResize` on children of `Viewport` ([#3577](https://github.com/flame-engine/flame/issues/3577)). ([245fb3f5](https://github.com/flame-engine/flame/commit/245fb3f5cf286b19076e758b8fea75a410680ffe))
 - **FEAT**: Add method to toggle overlays ([#3581](https://github.com/flame-engine/flame/issues/3581)). ([ad7c37e1](https://github.com/flame-engine/flame/commit/ad7c37e16b20b71c8049d68fd57414b174fd9492))

#### `flame_3d` - `v0.1.0-dev.11`

 - **FEAT**: Add flame_console to flame_3d example to enable more complex setups ([#3580](https://github.com/flame-engine/flame/issues/3580)). ([15a6f8b0](https://github.com/flame-engine/flame/commit/15a6f8b001deb714134976d7cbb5ef0a6ec31c86))
 - **DOCS**: Update flame_3d example to fix movement and camera, organize files ([#3573](https://github.com/flame-engine/flame/issues/3573)). ([54ca8433](https://github.com/flame-engine/flame/commit/54ca8433f20b451eb1a2c3c5f5a47a3430e71a6e))

#### `flame_console` - `v0.1.2+7`

 - **FIX**: Export necessary classes to build custom commands, update docs [flame_console] ([#3579](https://github.com/flame-engine/flame/issues/3579)). ([b05d55bc](https://github.com/flame-engine/flame/commit/b05d55bcc5f331ac8a8d82619b6df3a546848e10))

#### `flame_texturepacker` - `v4.3.0`

 - **FEAT**: Use `XFile` to support web platform ([#3569](https://github.com/flame-engine/flame/issues/3569)). ([20731167](https://github.com/flame-engine/flame/commit/20731167e8574e98d784b9734dbcee9ba6e6aa88))


## 2025-04-18

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.28.0`](#flame---v1280)
 - [`flame_test` - `v1.19.0`](#flame_test---v1190)
 - [`flame_forge2d` - `v0.19.0`](#flame_forge2d---v0190)

Packages with other changes:

 - [`flame_3d` - `v0.1.0-dev.10`](#flame_3d---v010-dev10)
 - [`flame_svg` - `v1.11.10`](#flame_svg---v11110)
 - [`flame_texturepacker` - `v4.2.0`](#flame_texturepacker---v420)
 - [`flame_behavior_tree` - `v0.1.3+10`](#flame_behavior_tree---v01310)
 - [`flame_tiled` - `v3.0.1`](#flame_tiled---v301)
 - [`flame_oxygen` - `v0.2.3+10`](#flame_oxygen---v02310)
 - [`flame_isolate` - `v0.6.2+10`](#flame_isolate---v06210)
 - [`flame_sprite_fusion` - `v0.1.3+10`](#flame_sprite_fusion---v01310)
 - [`flame_fire_atlas` - `v1.8.5`](#flame_fire_atlas---v185)
 - [`flame_audio` - `v2.11.4`](#flame_audio---v2114)
 - [`flame_spine` - `v0.2.2+10`](#flame_spine---v02210)
 - [`flame_bloc` - `v1.12.11`](#flame_bloc---v11211)
 - [`flame_kenney_xml` - `v0.1.1+10`](#flame_kenney_xml---v01110)
 - [`flame_lottie` - `v0.4.2+10`](#flame_lottie---v04210)
 - [`flame_markdown` - `v0.2.4+3`](#flame_markdown---v0243)
 - [`flame_console` - `v0.1.2+6`](#flame_console---v0126)
 - [`flame_rive` - `v1.10.13`](#flame_rive---v11013)
 - [`flame_noise` - `v0.3.2+10`](#flame_noise---v03210)
 - [`flame_riverpod` - `v5.4.13`](#flame_riverpod---v5413)
 - [`flame_network_assets` - `v0.3.3+10`](#flame_network_assets---v03310)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+10`
 - `flame_tiled` - `v3.0.1`
 - `flame_oxygen` - `v0.2.3+10`
 - `flame_isolate` - `v0.6.2+10`
 - `flame_sprite_fusion` - `v0.1.3+10`
 - `flame_fire_atlas` - `v1.8.5`
 - `flame_audio` - `v2.11.4`
 - `flame_spine` - `v0.2.2+10`
 - `flame_bloc` - `v1.12.11`
 - `flame_kenney_xml` - `v0.1.1+10`
 - `flame_lottie` - `v0.4.2+10`
 - `flame_markdown` - `v0.2.4+3`
 - `flame_console` - `v0.1.2+6`
 - `flame_rive` - `v1.10.13`
 - `flame_noise` - `v0.3.2+10`
 - `flame_riverpod` - `v5.4.13`
 - `flame_network_assets` - `v0.3.3+10`

---

#### `flame` - `v1.28.0`

 - **FIX**: Priority change should be reflected directly ([#3564](https://github.com/flame-engine/flame/issues/3564)). ([ab2fd639](https://github.com/flame-engine/flame/commit/ab2fd639f73896c0859dd133337ec2adc7adf832))
 - **FIX**: Deprecate `HasGameRef` in favor of `HasGameReference` ([#3559](https://github.com/flame-engine/flame/issues/3559)). ([a882261b](https://github.com/flame-engine/flame/commit/a882261b63ef21e29dde041d99b2eaf94264d7ad))
 - **FIX**: The SpriteButton label should be nullable ([#3557](https://github.com/flame-engine/flame/issues/3557)). ([80a598cd](https://github.com/flame-engine/flame/commit/80a598cd006f2cf90b1b799bbb51c0c073a94743))
 - **FIX**: Update ordered_set, remove ComponentSet ([#3554](https://github.com/flame-engine/flame/issues/3554)). ([728e13f8](https://github.com/flame-engine/flame/commit/728e13f855d988e8f8e24976557b213b98221603))
 - **FEAT**: Post Process API ([#3404](https://github.com/flame-engine/flame/issues/3404)). ([c3316ae4](https://github.com/flame-engine/flame/commit/c3316ae4a50230e6d9720cb4653a8e3e309f3234))
 - **FEAT**: Add helper methods on LineSegment (translate, inflate, deflate, spread) ([#3561](https://github.com/flame-engine/flame/issues/3561)). ([6d388870](https://github.com/flame-engine/flame/commit/6d388870138b9e02e120647d241d7cf9093795f6))
 - **FEAT**: Support for disabled state for `SpriteButton` ([#3560](https://github.com/flame-engine/flame/issues/3560)). ([eaa2b442](https://github.com/flame-engine/flame/commit/eaa2b442b717ae086cac2d715a322ffa7c7a1116))
 - **FEAT**: Add a Render Context API ([#3409](https://github.com/flame-engine/flame/issues/3409)). ([532f0191](https://github.com/flame-engine/flame/commit/532f0191f658e767fde4c200cf1902cbe36d6e7d))
 - **FEAT**: Adding tickCount to TimerComponent ([#3552](https://github.com/flame-engine/flame/issues/3552)). ([dcd694e8](https://github.com/flame-engine/flame/commit/dcd694e8554c59b4b92f6d05928320c175d433f0))
 - **FEAT**: Ability to reset SpriteAnimation on removal ([#3553](https://github.com/flame-engine/flame/issues/3553)). ([59ae5831](https://github.com/flame-engine/flame/commit/59ae58318eba93e3909bdb2deaa13f6aa7b7d35e))
 - **BREAKING** **FIX**: Use 32bit Vector2 in Flame to be compatible with shaders and forge2d ([#3515](https://github.com/flame-engine/flame/issues/3515)). ([19dcecf5](https://github.com/flame-engine/flame/commit/19dcecf5df85345fd4fac168e1f360cee4665658))

#### `flame_test` - `v1.19.0`

 - **BREAKING** **FIX**: Use 32bit Vector2 in Flame to be compatible with shaders and forge2d ([#3515](https://github.com/flame-engine/flame/issues/3515)). ([19dcecf5](https://github.com/flame-engine/flame/commit/19dcecf5df85345fd4fac168e1f360cee4665658))

#### `flame_forge2d` - `v0.19.0`

 - **BREAKING** **FIX**: Use 32bit Vector2 in Flame to be compatible with shaders and forge2d ([#3515](https://github.com/flame-engine/flame/issues/3515)). ([19dcecf5](https://github.com/flame-engine/flame/commit/19dcecf5df85345fd4fac168e1f360cee4665658))

#### `flame_3d` - `v0.1.0-dev.10`

 - **FIX**: Update ordered_set, remove ComponentSet ([#3554](https://github.com/flame-engine/flame/issues/3554)). ([728e13f8](https://github.com/flame-engine/flame/commit/728e13f855d988e8f8e24976557b213b98221603))

#### `flame_svg` - `v1.11.10`

 - **FIX**: SvgComponent should use `drawImage` on first render too ([#3549](https://github.com/flame-engine/flame/issues/3549)). ([91721a6b](https://github.com/flame-engine/flame/commit/91721a6b7b2ecda338d64d3c982e448e9cd71122))

#### `flame_texturepacker` - `v4.2.0`

 - **FEAT**: Whitelist textures ([#3505](https://github.com/flame-engine/flame/issues/3505)). ([9ca9e858](https://github.com/flame-engine/flame/commit/9ca9e858442031cf91798e0fe09cbadc232b3900))


## 2025-04-02

### Changes

---

Packages with breaking changes:

 - [`flame_tiled` - `v3.0.0`](#flame_tiled---v300)

Packages with other changes:

 - [`jenny` - `v1.3.3`](#jenny---v133)
 - [`flame` - `v1.27.0`](#flame---v1270)
 - [`flame_3d` - `v0.1.0-dev.9`](#flame_3d---v010-dev9)
 - [`flame_forge2d` - `v0.18.3+1`](#flame_forge2d---v01831)
 - [`flame_isolate` - `v0.6.2+9`](#flame_isolate---v0629)
 - [`flame_lint` - `v1.3.0`](#flame_lint---v130)
 - [`flame_rive` - `v1.10.12`](#flame_rive---v11012)
 - [`flame_texturepacker` - `v4.1.9`](#flame_texturepacker---v419)
 - [`flame_behavior_tree` - `v0.1.3+9`](#flame_behavior_tree---v0139)
 - [`flame_test` - `v1.18.3`](#flame_test---v1183)
 - [`flame_oxygen` - `v0.2.3+9`](#flame_oxygen---v0239)
 - [`flame_sprite_fusion` - `v0.1.3+9`](#flame_sprite_fusion---v0139)
 - [`flame_fire_atlas` - `v1.8.4`](#flame_fire_atlas---v184)
 - [`flame_audio` - `v2.11.3`](#flame_audio---v2113)
 - [`flame_spine` - `v0.2.2+9`](#flame_spine---v0229)
 - [`flame_bloc` - `v1.12.10`](#flame_bloc---v11210)
 - [`flame_kenney_xml` - `v0.1.1+9`](#flame_kenney_xml---v0119)
 - [`flame_lottie` - `v0.4.2+9`](#flame_lottie---v0429)
 - [`flame_markdown` - `v0.2.4+2`](#flame_markdown---v0242)
 - [`flame_console` - `v0.1.2+5`](#flame_console---v0125)
 - [`flame_noise` - `v0.3.2+9`](#flame_noise---v0329)
 - [`flame_riverpod` - `v5.4.12`](#flame_riverpod---v5412)
 - [`flame_svg` - `v1.11.9`](#flame_svg---v1119)
 - [`flame_network_assets` - `v0.3.3+9`](#flame_network_assets---v0339)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+9`
 - `flame_test` - `v1.18.3`
 - `flame_oxygen` - `v0.2.3+9`
 - `flame_sprite_fusion` - `v0.1.3+9`
 - `flame_fire_atlas` - `v1.8.4`
 - `flame_audio` - `v2.11.3`
 - `flame_spine` - `v0.2.2+9`
 - `flame_bloc` - `v1.12.10`
 - `flame_kenney_xml` - `v0.1.1+9`
 - `flame_lottie` - `v0.4.2+9`
 - `flame_markdown` - `v0.2.4+2`
 - `flame_console` - `v0.1.2+5`
 - `flame_noise` - `v0.3.2+9`
 - `flame_riverpod` - `v5.4.12`
 - `flame_svg` - `v1.11.9`
 - `flame_network_assets` - `v0.3.3+9`

---

#### `flame_tiled` - `v3.0.0`

 - **BREAKING** **FIX**: Add APIs to get TileData by layer index ([#3539](https://github.com/flame-engine/flame/issues/3539)). ([4676b1b7](https://github.com/flame-engine/flame/commit/4676b1b7a5aefe7a958de55b1d209e554c9b02a6))

#### `jenny` - `v1.3.3`

 - **FEAT**: Bump to new lint package ([#3545](https://github.com/flame-engine/flame/issues/3545)). ([bf6ee518](https://github.com/flame-engine/flame/commit/bf6ee51897591b7ad6e5f9da2193b1eeeaf026f4))

#### `flame` - `v1.27.0`

 - **FIX**: Remove outdated deprecations ([#3541](https://github.com/flame-engine/flame/issues/3541)). ([b918e40d](https://github.com/flame-engine/flame/commit/b918e40d0ce14b89ba9b5c82aed8ff51d6f549c3))
 - **FEAT**: Bump to new lint package ([#3545](https://github.com/flame-engine/flame/issues/3545)). ([bf6ee518](https://github.com/flame-engine/flame/commit/bf6ee51897591b7ad6e5f9da2193b1eeeaf026f4))
 - **FEAT**: The `FunctionEffect`, run any function as an `Effect` ([#3537](https://github.com/flame-engine/flame/issues/3537)). ([f4ac1ec6](https://github.com/flame-engine/flame/commit/f4ac1ec63a22b7a7d0c17d7119787f3ce2acadc1))

#### `flame_3d` - `v0.1.0-dev.9`

 - **FEAT**: Bump to new lint package ([#3545](https://github.com/flame-engine/flame/issues/3545)). ([bf6ee518](https://github.com/flame-engine/flame/commit/bf6ee51897591b7ad6e5f9da2193b1eeeaf026f4))

#### `flame_forge2d` - `v0.18.3+1`

 - **FIX**: Remove outdated deprecations ([#3541](https://github.com/flame-engine/flame/issues/3541)). ([b918e40d](https://github.com/flame-engine/flame/commit/b918e40d0ce14b89ba9b5c82aed8ff51d6f549c3))

#### `flame_isolate` - `v0.6.2+9`

 - **FIX**: Remove outdated deprecations ([#3541](https://github.com/flame-engine/flame/issues/3541)). ([b918e40d](https://github.com/flame-engine/flame/commit/b918e40d0ce14b89ba9b5c82aed8ff51d6f549c3))

#### `flame_lint` - `v1.3.0`

 - **FEAT**: Bump to new lint package ([#3545](https://github.com/flame-engine/flame/issues/3545)). ([bf6ee518](https://github.com/flame-engine/flame/commit/bf6ee51897591b7ad6e5f9da2193b1eeeaf026f4))

#### `flame_rive` - `v1.10.12`

 - **FIX**: Bump Rive version and skip tests ([#3544](https://github.com/flame-engine/flame/issues/3544)). ([a3a7dd51](https://github.com/flame-engine/flame/commit/a3a7dd51faee57d74e89fbc29e7581ed44459832))

#### `flame_texturepacker` - `v4.1.9`

 - **FIX**: Remove outdated deprecations ([#3541](https://github.com/flame-engine/flame/issues/3541)). ([b918e40d](https://github.com/flame-engine/flame/commit/b918e40d0ce14b89ba9b5c82aed8ff51d6f549c3))


## 2025-03-21

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_forge2d` - `v0.18.3`](#flame_forge2d---v0183)
 - [`flame` - `v1.26.1`](#flame---v1261)
 - [`flame_spine` - `v0.2.2+8`](#flame_spine---v0228)
 - [`flame_behavior_tree` - `v0.1.3+8`](#flame_behavior_tree---v0138)
 - [`flame_test` - `v1.18.2`](#flame_test---v1182)
 - [`flame_tiled` - `v2.0.3`](#flame_tiled---v203)
 - [`flame_oxygen` - `v0.2.3+8`](#flame_oxygen---v0238)
 - [`flame_isolate` - `v0.6.2+8`](#flame_isolate---v0628)
 - [`flame_texturepacker` - `v4.1.8`](#flame_texturepacker---v418)
 - [`flame_sprite_fusion` - `v0.1.3+8`](#flame_sprite_fusion---v0138)
 - [`flame_fire_atlas` - `v1.8.3`](#flame_fire_atlas---v183)
 - [`flame_audio` - `v2.11.2`](#flame_audio---v2112)
 - [`flame_bloc` - `v1.12.9`](#flame_bloc---v1129)
 - [`flame_kenney_xml` - `v0.1.1+8`](#flame_kenney_xml---v0118)
 - [`flame_lottie` - `v0.4.2+8`](#flame_lottie---v0428)
 - [`flame_markdown` - `v0.2.4+1`](#flame_markdown---v0241)
 - [`flame_console` - `v0.1.2+4`](#flame_console---v0124)
 - [`flame_rive` - `v1.10.11`](#flame_rive---v11011)
 - [`flame_noise` - `v0.3.2+8`](#flame_noise---v0328)
 - [`flame_riverpod` - `v5.4.11`](#flame_riverpod---v5411)
 - [`flame_svg` - `v1.11.8`](#flame_svg---v1118)
 - [`flame_network_assets` - `v0.3.3+8`](#flame_network_assets---v0338)
 - [`flame_3d` - `v0.1.0-dev.8`](#flame_3d---v010-dev8)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+8`
 - `flame_test` - `v1.18.2`
 - `flame_tiled` - `v2.0.3`
 - `flame_oxygen` - `v0.2.3+8`
 - `flame_isolate` - `v0.6.2+8`
 - `flame_texturepacker` - `v4.1.8`
 - `flame_sprite_fusion` - `v0.1.3+8`
 - `flame_fire_atlas` - `v1.8.3`
 - `flame_audio` - `v2.11.2`
 - `flame_bloc` - `v1.12.9`
 - `flame_kenney_xml` - `v0.1.1+8`
 - `flame_lottie` - `v0.4.2+8`
 - `flame_markdown` - `v0.2.4+1`
 - `flame_console` - `v0.1.2+4`
 - `flame_rive` - `v1.10.11`
 - `flame_noise` - `v0.3.2+8`
 - `flame_riverpod` - `v5.4.11`
 - `flame_svg` - `v1.11.8`
 - `flame_network_assets` - `v0.3.3+8`
 - `flame_3d` - `v0.1.0-dev.8`

---

#### `flame_forge2d` - `v0.18.3`

 - **FIX**: Expose event dispatcher classes ([#3532](https://github.com/flame-engine/flame/issues/3532)). ([db8e0b20](https://github.com/flame-engine/flame/commit/db8e0b20746dc96a221dc4e85b09f5a35ecc7339))

#### `flame` - `v1.26.1`

 - **FIX**: Fix priority rebalancing causing concurrent mutation of component ordered_set ([#3530](https://github.com/flame-engine/flame/issues/3530)). ([c2afe11f](https://github.com/flame-engine/flame/commit/c2afe11f2ce736791a35e77afa5e1ddef0ae7cbb))
 - **FIX**: Expose event dispatcher classes ([#3532](https://github.com/flame-engine/flame/issues/3532)). ([db8e0b20](https://github.com/flame-engine/flame/commit/db8e0b20746dc96a221dc4e85b09f5a35ecc7339))

#### `flame_spine` - `v0.2.2+8`

 - **FIX**: Bump spine version and update example files ([#3534](https://github.com/flame-engine/flame/issues/3534)). ([f346e3f6](https://github.com/flame-engine/flame/commit/f346e3f67793f2ebece3f11c1f440c5d485bf959))


## 2025-03-13

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`behavior_tree` - `v0.1.3+2`](#behavior_tree---v0132)
 - [`flame` - `v1.26.0`](#flame---v1260)
 - [`flame_3d` - `v0.1.0-dev.7`](#flame_3d---v010-dev7)
 - [`flame_audio` - `v2.11.1`](#flame_audio---v2111)
 - [`flame_behavior_tree` - `v0.1.3+7`](#flame_behavior_tree---v0137)
 - [`flame_bloc` - `v1.12.8`](#flame_bloc---v1128)
 - [`flame_fire_atlas` - `v1.8.2`](#flame_fire_atlas---v182)
 - [`flame_forge2d` - `v0.18.2+7`](#flame_forge2d---v01827)
 - [`flame_isolate` - `v0.6.2+7`](#flame_isolate---v0627)
 - [`flame_kenney_xml` - `v0.1.1+7`](#flame_kenney_xml---v0117)
 - [`flame_lint` - `v1.2.3`](#flame_lint---v123)
 - [`flame_lottie` - `v0.4.2+7`](#flame_lottie---v0427)
 - [`flame_markdown` - `v0.2.4`](#flame_markdown---v024)
 - [`flame_noise` - `v0.3.2+7`](#flame_noise---v0327)
 - [`flame_oxygen` - `v0.2.3+7`](#flame_oxygen---v0237)
 - [`flame_rive` - `v1.10.10`](#flame_rive---v11010)
 - [`flame_splash_screen` - `v0.3.1+2`](#flame_splash_screen---v0312)
 - [`flame_sprite_fusion` - `v0.1.3+7`](#flame_sprite_fusion---v0137)
 - [`flame_svg` - `v1.11.7`](#flame_svg---v1117)
 - [`flame_test` - `v1.18.1`](#flame_test---v1181)
 - [`flame_texturepacker` - `v4.1.7`](#flame_texturepacker---v417)
 - [`flame_tiled` - `v2.0.2`](#flame_tiled---v202)
 - [`flame_spine` - `v0.2.2+7`](#flame_spine---v0227)
 - [`flame_console` - `v0.1.2+3`](#flame_console---v0123)
 - [`flame_riverpod` - `v5.4.10`](#flame_riverpod---v5410)
 - [`flame_network_assets` - `v0.3.3+7`](#flame_network_assets---v0337)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_spine` - `v0.2.2+7`
 - `flame_console` - `v0.1.2+3`
 - `flame_riverpod` - `v5.4.10`
 - `flame_network_assets` - `v0.3.3+7`

---

#### `behavior_tree` - `v0.1.3+2`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame` - `v1.26.0`

 - **FIX**: RouterComponent should be on top ([#3524](https://github.com/flame-engine/flame/issues/3524)). ([aa52a2a5](https://github.com/flame-engine/flame/commit/aa52a2a58de9661557113c3d6ae5cc760842b1e7))
 - **FEAT**: Support custom attributes syntax to allow for multiple styles in the text rendering pipeline ([#3519](https://github.com/flame-engine/flame/issues/3519)). ([fbc58053](https://github.com/flame-engine/flame/commit/fbc58053dd12e6dc62b09cb14e4b438ef7b7f1b2))
 - **FEAT**: Layout shrinkwrap ([#3513](https://github.com/flame-engine/flame/issues/3513)). ([b3fbdd9d](https://github.com/flame-engine/flame/commit/b3fbdd9d3fd031083ecf7c53a28e2381579e846c))
 - **FEAT**: Layout Components ([#3507](https://github.com/flame-engine/flame/issues/3507)). ([678cf057](https://github.com/flame-engine/flame/commit/678cf05780580dd2cb61dde5e40c0efb1f3bc928))
 - **FEAT**: Add `RotateAroundEffect` ([#3499](https://github.com/flame-engine/flame/issues/3499)). ([0688f410](https://github.com/flame-engine/flame/commit/0688f41093cd451269366a2c2001a0d88bc6e532))
 - **DOCS**: Fix missing reference on documentation for InlineTextNode ([#3520](https://github.com/flame-engine/flame/issues/3520)). ([e3aa78b2](https://github.com/flame-engine/flame/commit/e3aa78b28206150eb85621e2a788fc31f218ff1d))
 - **DOCS**: Make onRemove() behavior more clear in API doc ([#3502](https://github.com/flame-engine/flame/issues/3502)). ([f387ad76](https://github.com/flame-engine/flame/commit/f387ad7604fca4b652d3c7521004a5d420137634))

#### `flame_3d` - `v0.1.0-dev.7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_audio` - `v2.11.1`

 - **REFACTOR**(flame_audio): Set AudioContext for AudioPool only ([#3511](https://github.com/flame-engine/flame/issues/3511)). ([d5ae35f2](https://github.com/flame-engine/flame/commit/d5ae35f2bbd214159fcb81e2e94e45085bdc2e66))
 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_behavior_tree` - `v0.1.3+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_bloc` - `v1.12.8`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_fire_atlas` - `v1.8.2`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_forge2d` - `v0.18.2+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_isolate` - `v0.6.2+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_kenney_xml` - `v0.1.1+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_lint` - `v1.2.3`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_lottie` - `v0.4.2+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_markdown` - `v0.2.4`

 - **FEAT**: Support custom attributes syntax to allow for multiple styles in the text rendering pipeline ([#3519](https://github.com/flame-engine/flame/issues/3519)). ([fbc58053](https://github.com/flame-engine/flame/commit/fbc58053dd12e6dc62b09cb14e4b438ef7b7f1b2))
 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_noise` - `v0.3.2+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_oxygen` - `v0.2.3+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_rive` - `v1.10.10`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_splash_screen` - `v0.3.1+2`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_sprite_fusion` - `v0.1.3+7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_svg` - `v1.11.7`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_test` - `v1.18.1`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_texturepacker` - `v4.1.7`

 - **FIX**: Use game's asset cache for texture packer ([#3523](https://github.com/flame-engine/flame/issues/3523)). ([835c40fc](https://github.com/flame-engine/flame/commit/835c40fc6bbc81218fe5c7d321a4a81e1853cf85))
 - **FIX**: Unhandled Exception: Unable to load asset. Introduced on Texturepacker 4.16 ([#3506](https://github.com/flame-engine/flame/issues/3506)). ([3af91b0e](https://github.com/flame-engine/flame/commit/3af91b0e6cbb28c0862317d572dde5f659592c2b))
 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))

#### `flame_tiled` - `v2.0.2`

 - **DOCS**: Fix workflow status badge paths ([#3517](https://github.com/flame-engine/flame/issues/3517)). ([149f16fe](https://github.com/flame-engine/flame/commit/149f16fe29f1fb14b3612964b2226c9c5c7daf95))


## 2025-02-13

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`behavior_tree` - `v0.1.3+1`](#behavior_tree---v0131)
 - [`flame` - `v1.25.0`](#flame---v1250)
 - [`flame_3d` - `v0.1.0-dev.6`](#flame_3d---v010-dev6)
 - [`flame_audio` - `v2.11.0`](#flame_audio---v2110)
 - [`flame_behavior_tree` - `v0.1.3+6`](#flame_behavior_tree---v0136)
 - [`flame_bloc` - `v1.12.7`](#flame_bloc---v1127)
 - [`flame_fire_atlas` - `v1.8.1`](#flame_fire_atlas---v181)
 - [`flame_forge2d` - `v0.18.2+6`](#flame_forge2d---v01826)
 - [`flame_isolate` - `v0.6.2+6`](#flame_isolate---v0626)
 - [`flame_kenney_xml` - `v0.1.1+6`](#flame_kenney_xml---v0116)
 - [`flame_lint` - `v1.2.2`](#flame_lint---v122)
 - [`flame_lottie` - `v0.4.2+6`](#flame_lottie---v0426)
 - [`flame_markdown` - `v0.2.3+2`](#flame_markdown---v0232)
 - [`flame_noise` - `v0.3.2+6`](#flame_noise---v0326)
 - [`flame_oxygen` - `v0.2.3+6`](#flame_oxygen---v0236)
 - [`flame_rive` - `v1.10.9`](#flame_rive---v1109)
 - [`flame_splash_screen` - `v0.3.1+1`](#flame_splash_screen---v0311)
 - [`flame_sprite_fusion` - `v0.1.3+6`](#flame_sprite_fusion---v0136)
 - [`flame_svg` - `v1.11.6`](#flame_svg---v1116)
 - [`flame_test` - `v1.18.0`](#flame_test---v1180)
 - [`flame_texturepacker` - `v4.1.6`](#flame_texturepacker---v416)
 - [`flame_tiled` - `v2.0.1`](#flame_tiled---v201)
 - [`flame_spine` - `v0.2.2+6`](#flame_spine---v0226)
 - [`flame_console` - `v0.1.2+2`](#flame_console---v0122)
 - [`flame_riverpod` - `v5.4.9`](#flame_riverpod---v549)
 - [`flame_network_assets` - `v0.3.3+6`](#flame_network_assets---v0336)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_spine` - `v0.2.2+6`
 - `flame_console` - `v0.1.2+2`
 - `flame_riverpod` - `v5.4.9`
 - `flame_network_assets` - `v0.3.3+6`

---

#### `behavior_tree` - `v0.1.3+1`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame` - `v1.25.0`

 - **FEAT**: Add a setter for TextBoxComponent.boxConfig and add a convenience method to skip per-char buildup ([#3490](https://github.com/flame-engine/flame/issues/3490)). ([d1777b7a](https://github.com/flame-engine/flame/commit/d1777b7a9efcf065c4474b7c6702c45d37bf710c))

#### `flame_3d` - `v0.1.0-dev.6`

 - **FEAT**: Add helper methods to create matrix4 with sensible defaults ([#3486](https://github.com/flame-engine/flame/issues/3486)). ([9345c870](https://github.com/flame-engine/flame/commit/9345c870d4de57d8d3a4d07a014d18cb71c01618))
 - **FEAT**: Add setFromMatrix4 to Transform3D ([#3484](https://github.com/flame-engine/flame/issues/3484)). ([1dbb4433](https://github.com/flame-engine/flame/commit/1dbb4433ca9e06b93a49b430fe9c084885551ff2))
 - **FEAT**: Add Line3D mesh component [flame_3d] ([#3412](https://github.com/flame-engine/flame/issues/3412)). ([c332c965](https://github.com/flame-engine/flame/commit/c332c9651ad8b930281c1d0bc13b89754fd0b2c1))

#### `flame_audio` - `v2.11.0`

 - **FEAT**(audio): Set audio context AudioContextConfigFocus.mixWithOthers by default ([#3483](https://github.com/flame-engine/flame/issues/3483)). ([762e0ad8](https://github.com/flame-engine/flame/commit/762e0ad8423e7bf3920139ca71a03b186d09c063))
 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_behavior_tree` - `v0.1.3+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_bloc` - `v1.12.7`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_fire_atlas` - `v1.8.1`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_forge2d` - `v0.18.2+6`

 - **FIX**: Use correct matrix indices in BodyComponent ([#3491](https://github.com/flame-engine/flame/issues/3491)). ([d6c83fab](https://github.com/flame-engine/flame/commit/d6c83fab6c5cf56b047dcd22b9f1f0a075c26201))
 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_isolate` - `v0.6.2+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_kenney_xml` - `v0.1.1+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_lint` - `v1.2.2`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_lottie` - `v0.4.2+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_markdown` - `v0.2.3+2`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_noise` - `v0.3.2+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_oxygen` - `v0.2.3+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_rive` - `v1.10.9`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_splash_screen` - `v0.3.1+1`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_sprite_fusion` - `v0.1.3+6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_svg` - `v1.11.6`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_test` - `v1.18.0`

 - **FEAT**: Implement closeToVector4 and closeToQuaternion by extracing a generic CloseToVector base ([#3480](https://github.com/flame-engine/flame/issues/3480)). ([57e58514](https://github.com/flame-engine/flame/commit/57e58514091248884505d3936e3e0aa076efb30a))
 - **FEAT**: Add closeToMatrix4 test matcher ([#3478](https://github.com/flame-engine/flame/issues/3478)). ([8db2476e](https://github.com/flame-engine/flame/commit/8db2476e8c39723670641f1c2646ecf0d7bb09fb))
 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_texturepacker` - `v4.1.6`

 - **FIX**: Remove forced location of the atlas file. ([#3481](https://github.com/flame-engine/flame/issues/3481)). ([bac68dcb](https://github.com/flame-engine/flame/commit/bac68dcbb95ec420c1401e32e60adf42dc338695))
 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))

#### `flame_tiled` - `v2.0.1`

 - **DOCS**: Remove AI assist badges ([#3477](https://github.com/flame-engine/flame/issues/3477)). ([51d7fbc0](https://github.com/flame-engine/flame/commit/51d7fbc06d88adec2e0238c9c4738893b807ec80))


## 2025-02-05

### Changes

---

Packages with breaking changes:

 - [`flame_fire_atlas` - `v1.8.0`](#flame_fire_atlas---v180)
 - [`flame_3d` - `v0.1.0-dev.5`](#flame_3d---v010-dev5)
 - [`flame_tiled` - `v2.0.0`](#flame_tiled---v200)

Packages with other changes:

 - [`flame` - `v1.24.0`](#flame---v1240)
 - [`flame_test` - `v1.17.5`](#flame_test---v1175)
 - [`flame_behavior_tree` - `v0.1.3+5`](#flame_behavior_tree---v0135)
 - [`flame_oxygen` - `v0.2.3+5`](#flame_oxygen---v0235)
 - [`flame_isolate` - `v0.6.2+5`](#flame_isolate---v0625)
 - [`flame_texturepacker` - `v4.1.5`](#flame_texturepacker---v415)
 - [`flame_sprite_fusion` - `v0.1.3+5`](#flame_sprite_fusion---v0135)
 - [`flame_audio` - `v2.10.8`](#flame_audio---v2108)
 - [`flame_spine` - `v0.2.2+5`](#flame_spine---v0225)
 - [`flame_bloc` - `v1.12.6`](#flame_bloc---v1126)
 - [`flame_kenney_xml` - `v0.1.1+5`](#flame_kenney_xml---v0115)
 - [`flame_lottie` - `v0.4.2+5`](#flame_lottie---v0425)
 - [`flame_markdown` - `v0.2.3+1`](#flame_markdown---v0231)
 - [`flame_console` - `v0.1.2+1`](#flame_console---v0121)
 - [`flame_rive` - `v1.10.8`](#flame_rive---v1108)
 - [`flame_forge2d` - `v0.18.2+5`](#flame_forge2d---v01825)
 - [`flame_noise` - `v0.3.2+5`](#flame_noise---v0325)
 - [`flame_riverpod` - `v5.4.8`](#flame_riverpod---v548)
 - [`flame_svg` - `v1.11.5`](#flame_svg---v1115)
 - [`flame_network_assets` - `v0.3.3+5`](#flame_network_assets---v0335)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+5`
 - `flame_oxygen` - `v0.2.3+5`
 - `flame_isolate` - `v0.6.2+5`
 - `flame_texturepacker` - `v4.1.5`
 - `flame_sprite_fusion` - `v0.1.3+5`
 - `flame_audio` - `v2.10.8`
 - `flame_spine` - `v0.2.2+5`
 - `flame_bloc` - `v1.12.6`
 - `flame_kenney_xml` - `v0.1.1+5`
 - `flame_lottie` - `v0.4.2+5`
 - `flame_markdown` - `v0.2.3+1`
 - `flame_console` - `v0.1.2+1`
 - `flame_rive` - `v1.10.8`
 - `flame_forge2d` - `v0.18.2+5`
 - `flame_noise` - `v0.3.2+5`
 - `flame_riverpod` - `v5.4.8`
 - `flame_svg` - `v1.11.5`
 - `flame_network_assets` - `v0.3.3+5`

---

#### `flame_fire_atlas` - `v1.8.0`

 - **BREAKING** **FIX**: Bump tiled to 0.11.0 and add ColorData extension (#3473).

#### `flame_3d` - `v0.1.0-dev.5`

 - **BREAKING** **FEAT**: Make resource creation be on demand to enable testing (#3411).

#### `flame_tiled` - `v2.0.0`

 - **BREAKING** **FIX**: Bump tiled to 0.11.0 and add ColorData extension (#3473).

#### `flame` - `v1.24.0`

 - **PERF**: Switch from forEach to regular for-loops for about 30% improvement in raw update performance (#3472).
 - **FIX**: SpawnComponent.periodRange should change range each iteration (#3464).
 - **FIX**: Don't use a future when assets for SpriteButton is already loaded (#3456).
 - **FIX**: Darkness increases with higher values (#3448).
 - **FEAT**: NineTileBoxComponent with HasPaint to enable effects (#3459).
 - **FEAT**: Devtools overlay navigation (#3449).
 - **FEAT**: Add direction and length getters and constructor to LineSegment (#3446).
 - **FEAT**: Add multiFactory to SpawnComponent (#3440).

#### `flame_test` - `v1.17.5`

 - **FIX**: Don't use a future when assets for SpriteButton is already loaded (#3456).


## 2025-01-02

### Changes

---

Packages with breaking changes:

 - [`flame_3d` - `v0.1.0-dev.4`](#flame_3d---v010-dev4)

Packages with other changes:

 - [`flame` - `v1.23.0`](#flame---v1230)
 - [`flame_console` - `v0.1.2`](#flame_console---v012)
 - [`flame_forge2d` - `v0.18.2+4`](#flame_forge2d---v01824)
 - [`flame_isolate` - `v0.6.2+4`](#flame_isolate---v0624)
 - [`flame_markdown` - `v0.2.3`](#flame_markdown---v023)
 - [`flame_oxygen` - `v0.2.3+4`](#flame_oxygen---v0234)
 - [`flame_sprite_fusion` - `v0.1.3+4`](#flame_sprite_fusion---v0134)
 - [`flame_svg` - `v1.11.4`](#flame_svg---v1114)
 - [`flame_test` - `v1.17.4`](#flame_test---v1174)
 - [`flame_tiled` - `v1.21.2`](#flame_tiled---v1212)
 - [`flame_behavior_tree` - `v0.1.3+4`](#flame_behavior_tree---v0134)
 - [`flame_texturepacker` - `v4.1.4`](#flame_texturepacker---v414)
 - [`flame_fire_atlas` - `v1.7.1`](#flame_fire_atlas---v171)
 - [`flame_audio` - `v2.10.7`](#flame_audio---v2107)
 - [`flame_spine` - `v0.2.2+4`](#flame_spine---v0224)
 - [`flame_bloc` - `v1.12.5`](#flame_bloc---v1125)
 - [`flame_kenney_xml` - `v0.1.1+4`](#flame_kenney_xml---v0114)
 - [`flame_lottie` - `v0.4.2+4`](#flame_lottie---v0424)
 - [`flame_rive` - `v1.10.7`](#flame_rive---v1107)
 - [`flame_noise` - `v0.3.2+4`](#flame_noise---v0324)
 - [`flame_riverpod` - `v5.4.7`](#flame_riverpod---v547)
 - [`flame_network_assets` - `v0.3.3+4`](#flame_network_assets---v0334)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+4`
 - `flame_texturepacker` - `v4.1.4`
 - `flame_fire_atlas` - `v1.7.1`
 - `flame_audio` - `v2.10.7`
 - `flame_spine` - `v0.2.2+4`
 - `flame_bloc` - `v1.12.5`
 - `flame_kenney_xml` - `v0.1.1+4`
 - `flame_lottie` - `v0.4.2+4`
 - `flame_rive` - `v1.10.7`
 - `flame_noise` - `v0.3.2+4`
 - `flame_riverpod` - `v5.4.7`
 - `flame_network_assets` - `v0.3.3+4`

---

#### `flame_3d` - `v0.1.0-dev.4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))
 - **FIX**: Use saner default value for camera's target ([#3238](https://github.com/flame-engine/flame/issues/3238)). ([78522c62](https://github.com/flame-engine/flame/commit/78522c624d846c827a1c0d7377837e04a30ba4e7))
 - **FIX**: Use saner default value for camera's target ([#3238](https://github.com/flame-engine/flame/issues/3238)). ([99ca355b](https://github.com/flame-engine/flame/commit/99ca355b3d4a3e9c7677454dc9bc2c874ee2e4a9))
 - **FIX**: Fix albedo texture binding on shader ([#3400](https://github.com/flame-engine/flame/issues/3400)). ([c380c91f](https://github.com/flame-engine/flame/commit/c380c91f7a7e22ab71c3617c0386159861a64abc))
 - **FIX**: Make build_shaders script compatible with other platforms [flame_3d] ([#3395](https://github.com/flame-engine/flame/issues/3395)). ([38331309](https://github.com/flame-engine/flame/commit/38331309ca5ee609e85422ee9d740569a35e5e9e))
 - **FIX**: Make `flame_3d` work with latest stable ([#3387](https://github.com/flame-engine/flame/issues/3387)). ([f940d3f9](https://github.com/flame-engine/flame/commit/f940d3f9420d3ce001f47a9155c582b8b4cd1dcb))
 - **FIX**: MeshComponent.bind should bind to the provided device ([#3278](https://github.com/flame-engine/flame/issues/3278)). ([d06b4ce6](https://github.com/flame-engine/flame/commit/d06b4ce6935987705447772f912719c405d39c9e))
 - **FIX**: Improve behavior of Quaternion.slerp function [flame_3d] ([#3306](https://github.com/flame-engine/flame/issues/3306)). ([8872a45a](https://github.com/flame-engine/flame/commit/8872a45a1b49d7ba7688d62ca25b2a8d31c495cb))
 - **FIX**: Improve quaternion slerp logic to avoid NaN edge cases ([#3303](https://github.com/flame-engine/flame/issues/3303)). ([712b03fb](https://github.com/flame-engine/flame/commit/712b03fbe176cf238a3780aee641254436520366))
 - **FIX**: Make the `build_shader` script work for windows ([#3402](https://github.com/flame-engine/flame/issues/3402)). ([ce7822a0](https://github.com/flame-engine/flame/commit/ce7822a0d0c5ac1c766635a5cf2c242d5e5f98ec))
 - **FIX**: MeshComponent.bind should bind to the provided device ([#3278](https://github.com/flame-engine/flame/issues/3278)). ([3ae3ef54](https://github.com/flame-engine/flame/commit/3ae3ef5476fa5f9ead7069efeee35cc31c0e9dd2))
 - **FIX**: Fix typo on loadTexture ([#3253](https://github.com/flame-engine/flame/issues/3253)). ([3a20a8cd](https://github.com/flame-engine/flame/commit/3a20a8cd61543aad21c1015de5c31ec1cbe71aed))
 - **FIX**: Improve behavior of Quaternion.slerp function [flame_3d] ([#3306](https://github.com/flame-engine/flame/issues/3306)). ([b9d6a0f1](https://github.com/flame-engine/flame/commit/b9d6a0f1d34e009cd91ae9d2ab0eed09b546d110))
 - **FIX**: Improve quaternion slerp logic to avoid NaN edge cases ([#3303](https://github.com/flame-engine/flame/issues/3303)). ([565b68b9](https://github.com/flame-engine/flame/commit/565b68b9da52d44281e93f9ae8617f9dbe9551f3))
 - **FIX**: Fix typo on loadTexture ([#3253](https://github.com/flame-engine/flame/issues/3253)). ([3d1f1437](https://github.com/flame-engine/flame/commit/3d1f143700506467798e030450227d8029b74ef2))
 - **FIX**: Add missing export for CylinderMesh [flame_3d] ([#3256](https://github.com/flame-engine/flame/issues/3256)). ([d8fb65c1](https://github.com/flame-engine/flame/commit/d8fb65c158a3cce442972fb24f55fb522729085f))
 - **FIX**: Add missing export for CylinderMesh [flame_3d] ([#3256](https://github.com/flame-engine/flame/issues/3256)). ([d517c169](https://github.com/flame-engine/flame/commit/d517c169ed9b4d4457df6ac1ae363277577597fa))
 - **FEAT**: More Lights! [flame_3d] ([#3250](https://github.com/flame-engine/flame/issues/3250)). ([5c508e81](https://github.com/flame-engine/flame/commit/5c508e81bddfb17857355da80e57f1ac77ab368d))
 - **FEAT**(flame_3d): Add helpful extension functions to Vector ([#3141](https://github.com/flame-engine/flame/issues/3141)). ([92195989](https://github.com/flame-engine/flame/commit/9219598904131d8fceba8d1ad980bea2805e3515))
 - **FEAT**: Add CylinderMesh [flame_3d] ([#3239](https://github.com/flame-engine/flame/issues/3239)). ([d5de1733](https://github.com/flame-engine/flame/commit/d5de1733c64c4fbaeee83089a3b0f9a3fbb3355d))
 - **FEAT**: Refactor shader uniform binding to support shader arrays [flame_3d] ([#3282](https://github.com/flame-engine/flame/issues/3282)). ([edae1662](https://github.com/flame-engine/flame/commit/edae166252a519d38496bb6bf7c84fe9f401b8d4))
 - **FEAT**(flame_3d): Make shader api more useful ([#3085](https://github.com/flame-engine/flame/issues/3085)). ([fe2e4f20](https://github.com/flame-engine/flame/commit/fe2e4f20195b453268b34e589616343fdce6201a))
 - **FEAT**(flame_3d): Make shader api more useful ([#3085](https://github.com/flame-engine/flame/issues/3085)). ([4042d300](https://github.com/flame-engine/flame/commit/4042d3002ce619bf6b8597aa7dc17a803bc57c69))
 - **FEAT**: Add more useful extensions to VectorN and Quaternion [flame_3d] ([#3296](https://github.com/flame-engine/flame/issues/3296)). ([f5f03e5e](https://github.com/flame-engine/flame/commit/f5f03e5ed7095ede713727d6bbab39db0505e7bf))
 - **FEAT**: Expose vector classes on core file [flame_3d] ([#3211](https://github.com/flame-engine/flame/issues/3211)). ([8f403ac2](https://github.com/flame-engine/flame/commit/8f403ac23ae7cdf5343652c30f9c0ee71d627b0a))
 - **FEAT**(flame_3d): Add helpful extension functions to Vector ([#3141](https://github.com/flame-engine/flame/issues/3141)). ([39e15fb3](https://github.com/flame-engine/flame/commit/39e15fb30256cbfaa86f4d7b8e3453c52942d1a5))
 - **FEAT**: Add CylinderMesh [flame_3d] ([#3239](https://github.com/flame-engine/flame/issues/3239)). ([01872fb6](https://github.com/flame-engine/flame/commit/01872fb6e45e10dc380fee7a176a8b37eeaef880))
 - **FEAT**(flame_3d): initial implementation of 3D support ([#3012](https://github.com/flame-engine/flame/issues/3012)). ([acb8e6fc](https://github.com/flame-engine/flame/commit/acb8e6fc07592a7df041512ed9e033b33eda8799))
 - **FEAT**: Support skeletal animation basics [flame_3d]  ([#3291](https://github.com/flame-engine/flame/issues/3291)). ([9c0d1500](https://github.com/flame-engine/flame/commit/9c0d15006047597097dc0e054c1e03a04491cff9))
 - **FEAT**: Add normals to surfaces when not specified ([#3257](https://github.com/flame-engine/flame/issues/3257)). ([1dd21d7d](https://github.com/flame-engine/flame/commit/1dd21d7d6d4f58c9ac54a38363ee2fd0978a9d0c))
 - **FEAT**(flame_3d): initial implementation of 3D support ([#3012](https://github.com/flame-engine/flame/issues/3012)). ([0242e1dd](https://github.com/flame-engine/flame/commit/0242e1dd12a9b50a411d895b662f9df33536f6d9))
 - **FEAT**: Support skeletal animation basics [flame_3d]  ([#3291](https://github.com/flame-engine/flame/issues/3291)). ([12927e41](https://github.com/flame-engine/flame/commit/12927e4100a7b4b46e4218db6792d25be1623f88))
 - **FEAT**: Add more useful extensions to VectorN and Quaternion [flame_3d] ([#3296](https://github.com/flame-engine/flame/issues/3296)). ([9cb95279](https://github.com/flame-engine/flame/commit/9cb9527909a4faa38609d25ebd7463f1e2e1a1ab))
 - **FEAT**: Make it easier work with the Mesh class [flame_3d] ([#3212](https://github.com/flame-engine/flame/issues/3212)). ([ebf2ee62](https://github.com/flame-engine/flame/commit/ebf2ee62e535fd1d0f499112b314e1d88e59bbc1))
 - **FEAT**: More Lights! [flame_3d] ([#3250](https://github.com/flame-engine/flame/issues/3250)). ([1780630e](https://github.com/flame-engine/flame/commit/1780630e7fcb386a331ba1219c15cb1ae8b139e6))
 - **FEAT**: Add normals to surfaces when not specified ([#3257](https://github.com/flame-engine/flame/issues/3257)). ([844c1d72](https://github.com/flame-engine/flame/commit/844c1d726e04e9c3c5739214720cf26fc62d3f9f))
 - **FEAT**(flame_3d): Fix minor nits on flame_3d ([#3140](https://github.com/flame-engine/flame/issues/3140)). ([11cdfb5e](https://github.com/flame-engine/flame/commit/11cdfb5ebeb62dd1aec2d51fd7fadfbfb17c6da5))
 - **FEAT**: Expose vector classes on core file [flame_3d] ([#3211](https://github.com/flame-engine/flame/issues/3211)). ([c3e68dff](https://github.com/flame-engine/flame/commit/c3e68dffd2e53a8dc8d4d3804c47e956dfc0ebb4))
 - **FEAT**(flame_3d): Fix minor nits on flame_3d ([#3140](https://github.com/flame-engine/flame/issues/3140)). ([b537d20a](https://github.com/flame-engine/flame/commit/b537d20ab65ce0312e9c05ba9156d794234d93e0))
 - **FEAT**: Make it easier work with the Mesh class [flame_3d] ([#3212](https://github.com/flame-engine/flame/issues/3212)). ([7f80b530](https://github.com/flame-engine/flame/commit/7f80b53078c037f81d386a44fa9b749cf7835ffa))
 - **DOCS**: Update docs and comments (flame_3d) ([#3057](https://github.com/flame-engine/flame/issues/3057)). ([14047879](https://github.com/flame-engine/flame/commit/14047879a13e1f13e51ce3411feb7c7962d6d7ee))
 - **DOCS**: Update docs and comments (flame_3d) ([#3057](https://github.com/flame-engine/flame/issues/3057)). ([b5fd457a](https://github.com/flame-engine/flame/commit/b5fd457a6b6bcad73006fc77a538c7e8521178a5))
 - **DOCS**: Update README.md docs to reflect current state of affairs ([#3305](https://github.com/flame-engine/flame/issues/3305)). ([ac3f48ff](https://github.com/flame-engine/flame/commit/ac3f48ffa6527c595035e8a9cc24307343dacb31))
 - **DOCS**: Update wording on README to match newer instructions [flame_3d] ([#3399](https://github.com/flame-engine/flame/issues/3399)). ([9c416cbf](https://github.com/flame-engine/flame/commit/9c416cbfcb4106ab7b1ad14324ca9cb89593b80d))
 - **DOCS**: Update README.md docs to reflect current state of affairs ([#3305](https://github.com/flame-engine/flame/issues/3305)). ([be72daee](https://github.com/flame-engine/flame/commit/be72daee6b92bcef2af3af78c1f64abe94c49d18))
 - **BREAKING** **FEAT**: Allow for custom shaders and materials ([#3384](https://github.com/flame-engine/flame/issues/3384)). ([ae731814](https://github.com/flame-engine/flame/commit/ae73181466c7e32b0e5e9e814f5170310c20f263))
 - **BREAKING** **FEAT**: Refactor the `CameraComponent3D` ([#3394](https://github.com/flame-engine/flame/issues/3394)). ([4a61718d](https://github.com/flame-engine/flame/commit/4a61718d3b8d45d18a74f662f1bf1eb8e6069983))

#### `flame` - `v1.23.0`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))
 - **FIX**: Take into consideration when child is added to parent that is removed in the same tick ([#3428](https://github.com/flame-engine/flame/issues/3428)). ([9a5c54be](https://github.com/flame-engine/flame/commit/9a5c54bea858fc8e9e84878f3ac0a0f7bc190b46))
 - **FIX**: Add missing export of GroupTextElement to text.dart ([#3424](https://github.com/flame-engine/flame/issues/3424)). ([c9c0f691](https://github.com/flame-engine/flame/commit/c9c0f691412bb026c1d766ec7b424a468f8929f7))
 - **FIX**: Add missing export of GroupElement to text.dart ([#3423](https://github.com/flame-engine/flame/issues/3423)). ([c0c4bb02](https://github.com/flame-engine/flame/commit/c0c4bb02a32306120a8770122116631f55c1c700))
 - **FIX**: Fix brighten and darken alpha issue ([#3414](https://github.com/flame-engine/flame/issues/3414)). ([de8e3bce](https://github.com/flame-engine/flame/commit/de8e3bcea2c2c2fa5e01dd288176c8f5623d21fb))
 - **FIX**: Set button size in onMount if not set ([#3413](https://github.com/flame-engine/flame/issues/3413)). ([916aa5ce](https://github.com/flame-engine/flame/commit/916aa5ce2ad3851b3044e043d2be7cbe923f2c40))
 - **FIX**: Fix bug preventing removeAll(children) from be called before mount ([#3408](https://github.com/flame-engine/flame/issues/3408)). ([726cb8b6](https://github.com/flame-engine/flame/commit/726cb8b6390c839f9cbab959b2268a7b45fa691c))
 - **FEAT**: Add support for strike-through text for flame_markdown ([#3426](https://github.com/flame-engine/flame/issues/3426)). ([1f9b0ea9](https://github.com/flame-engine/flame/commit/1f9b0ea9f35a7180725ec7f8f79a561c5f544bb7))
 - **FEAT**: Warning and docs about fullscreen methods outside the mobile platforms ([#3419](https://github.com/flame-engine/flame/issues/3419)). ([994e098b](https://github.com/flame-engine/flame/commit/994e098bd699a30aa13aed65f2bd0ab7254ad779))
 - **FEAT**: Add baseColor to Shadow3DDecorator ([#3375](https://github.com/flame-engine/flame/issues/3375)). ([b5d7ee07](https://github.com/flame-engine/flame/commit/b5d7ee0752ee1f2dddf1da4ac817f138296e1c96))

#### `flame_console` - `v0.1.2`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))
 - **FEAT**: Refactoring flame_console to use terminui ([#3388](https://github.com/flame-engine/flame/issues/3388)). ([de74a93b](https://github.com/flame-engine/flame/commit/de74a93b44f442341f816a2988c854f40902ff7e))

#### `flame_forge2d` - `v0.18.2+4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_isolate` - `v0.6.2+4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_markdown` - `v0.2.3`

 - **FIX**: Do not encode HTML by default when parsing markdown [flame_markdown] ([#3425](https://github.com/flame-engine/flame/issues/3425)). ([3067da94](https://github.com/flame-engine/flame/commit/3067da94fbc6df2da5197771cb9617588006a9b9))
 - **FEAT**: Add support for strike-through text for flame_markdown ([#3426](https://github.com/flame-engine/flame/issues/3426)). ([1f9b0ea9](https://github.com/flame-engine/flame/commit/1f9b0ea9f35a7180725ec7f8f79a561c5f544bb7))

#### `flame_oxygen` - `v0.2.3+4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_sprite_fusion` - `v0.1.3+4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_svg` - `v1.11.4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_test` - `v1.17.4`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))

#### `flame_tiled` - `v1.21.2`

 - **REFACTOR**: Fix lint issues from latest flutter release ([#3390](https://github.com/flame-engine/flame/issues/3390)). ([978ad31b](https://github.com/flame-engine/flame/commit/978ad31b429d1801097b0db385a600c85a157867))


## 2024-12-10

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_3d` - `v0.1.0-dev.3`](#flame_3d---v010-dev3)

---

#### `flame_3d` - `v0.1.0-dev.3`

 - **FIX**: Improve behavior of Quaternion.slerp function [flame_3d] ([#3306](https://github.com/flame-engine/flame/issues/3306)). ([b9d6a0f1](https://github.com/flame-engine/flame/commit/b9d6a0f1d34e009cd91ae9d2ab0eed09b546d110))
 - **DOCS**: Update README.md docs to reflect current state of affairs ([#3305](https://github.com/flame-engine/flame/issues/3305)). ([be72daee](https://github.com/flame-engine/flame/commit/be72daee6b92bcef2af3af78c1f64abe94c49d18))


## 2024-12-10

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_3d` - `v0.1.0-dev.2`](#flame_3d---v010-dev2)

---

#### `flame_3d` - `v0.1.0-dev.2`

 - **FIX**: Improve quaternion slerp logic to avoid NaN edge cases ([#3303](https://github.com/flame-engine/flame/issues/3303)). ([565b68b9](https://github.com/flame-engine/flame/commit/565b68b9da52d44281e93f9ae8617f9dbe9551f3))
 - **FIX**: MeshComponent.bind should bind to the provided device ([#3278](https://github.com/flame-engine/flame/issues/3278)). ([3ae3ef54](https://github.com/flame-engine/flame/commit/3ae3ef5476fa5f9ead7069efeee35cc31c0e9dd2))
 - **FIX**: Add missing export for CylinderMesh [flame_3d] ([#3256](https://github.com/flame-engine/flame/issues/3256)). ([d517c169](https://github.com/flame-engine/flame/commit/d517c169ed9b4d4457df6ac1ae363277577597fa))
 - **FIX**: Fix typo on loadTexture ([#3253](https://github.com/flame-engine/flame/issues/3253)). ([3a20a8cd](https://github.com/flame-engine/flame/commit/3a20a8cd61543aad21c1015de5c31ec1cbe71aed))
 - **FIX**: Use saner default value for camera's target ([#3238](https://github.com/flame-engine/flame/issues/3238)). ([78522c62](https://github.com/flame-engine/flame/commit/78522c624d846c827a1c0d7377837e04a30ba4e7))
 - **FIX**: Revert "feat(flame_3d): initial implementation of 3D support" ([#3060](https://github.com/flame-engine/flame/issues/3060)). ([741d9384](https://github.com/flame-engine/flame/commit/741d9384dbfea7bb692f181a7689a7b10a947ef0))
 - **FEAT**: Support skeletal animation basics [flame_3d]  ([#3291](https://github.com/flame-engine/flame/issues/3291)). ([12927e41](https://github.com/flame-engine/flame/commit/12927e4100a7b4b46e4218db6792d25be1623f88))
 - **FEAT**: Add more useful extensions to VectorN and Quaternion [flame_3d] ([#3296](https://github.com/flame-engine/flame/issues/3296)). ([9cb95279](https://github.com/flame-engine/flame/commit/9cb9527909a4faa38609d25ebd7463f1e2e1a1ab))
 - **FEAT**: More Lights! [flame_3d] ([#3250](https://github.com/flame-engine/flame/issues/3250)). ([1780630e](https://github.com/flame-engine/flame/commit/1780630e7fcb386a331ba1219c15cb1ae8b139e6))
 - **FEAT**: Add normals to surfaces when not specified ([#3257](https://github.com/flame-engine/flame/issues/3257)). ([844c1d72](https://github.com/flame-engine/flame/commit/844c1d726e04e9c3c5739214720cf26fc62d3f9f))
 - **FEAT**: Add CylinderMesh [flame_3d] ([#3239](https://github.com/flame-engine/flame/issues/3239)). ([01872fb6](https://github.com/flame-engine/flame/commit/01872fb6e45e10dc380fee7a176a8b37eeaef880))
 - **FEAT**(flame_3d): Make shader api more useful ([#3085](https://github.com/flame-engine/flame/issues/3085)). ([fe2e4f20](https://github.com/flame-engine/flame/commit/fe2e4f20195b453268b34e589616343fdce6201a))
 - **FEAT**: Make it easier work with the Mesh class [flame_3d] ([#3212](https://github.com/flame-engine/flame/issues/3212)). ([ebf2ee62](https://github.com/flame-engine/flame/commit/ebf2ee62e535fd1d0f499112b314e1d88e59bbc1))
 - **FEAT**: Expose vector classes on core file [flame_3d] ([#3211](https://github.com/flame-engine/flame/issues/3211)). ([c3e68dff](https://github.com/flame-engine/flame/commit/c3e68dffd2e53a8dc8d4d3804c47e956dfc0ebb4))
 - **FEAT**(flame_3d): Add helpful extension functions to Vector ([#3141](https://github.com/flame-engine/flame/issues/3141)). ([92195989](https://github.com/flame-engine/flame/commit/9219598904131d8fceba8d1ad980bea2805e3515))
 - **FEAT**(flame_3d): Fix minor nits on flame_3d ([#3140](https://github.com/flame-engine/flame/issues/3140)). ([11cdfb5e](https://github.com/flame-engine/flame/commit/11cdfb5ebeb62dd1aec2d51fd7fadfbfb17c6da5))
 - **FEAT**(flame_3d): initial implementation of 3D support ([#3012](https://github.com/flame-engine/flame/issues/3012)). ([0242e1dd](https://github.com/flame-engine/flame/commit/0242e1dd12a9b50a411d895b662f9df33536f6d9))
 - **FEAT**(flame_3d): initial implementation of 3D support ([#3012](https://github.com/flame-engine/flame/issues/3012)). ([e434bafb](https://github.com/flame-engine/flame/commit/e434bafb15fc486c51b43aaa9d9190b8b7e783cb))
 - **DOCS**: Update docs and comments (flame_3d) ([#3057](https://github.com/flame-engine/flame/issues/3057)). ([14047879](https://github.com/flame-engine/flame/commit/14047879a13e1f13e51ce3411feb7c7962d6d7ee))

## 2024-11-24

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.22.0`](#flame---v1220)
 - [`flame_console` - `v0.1.1`](#flame_console---v011)
 - [`flame_fire_atlas` - `v1.7.0`](#flame_fire_atlas---v170)
 - [`flame_behavior_tree` - `v0.1.3+3`](#flame_behavior_tree---v0133)
 - [`flame_test` - `v1.17.3`](#flame_test---v1173)
 - [`flame_tiled` - `v1.21.1`](#flame_tiled---v1211)
 - [`flame_oxygen` - `v0.2.3+3`](#flame_oxygen---v0233)
 - [`flame_isolate` - `v0.6.2+3`](#flame_isolate---v0623)
 - [`flame_texturepacker` - `v4.1.3`](#flame_texturepacker---v413)
 - [`flame_sprite_fusion` - `v0.1.3+3`](#flame_sprite_fusion---v0133)
 - [`flame_audio` - `v2.10.6`](#flame_audio---v2106)
 - [`flame_spine` - `v0.2.2+3`](#flame_spine---v0223)
 - [`flame_bloc` - `v1.12.4`](#flame_bloc---v1124)
 - [`flame_kenney_xml` - `v0.1.1+3`](#flame_kenney_xml---v0113)
 - [`flame_lottie` - `v0.4.2+3`](#flame_lottie---v0423)
 - [`flame_rive` - `v1.10.6`](#flame_rive---v1106)
 - [`flame_markdown` - `v0.2.2+3`](#flame_markdown---v0223)
 - [`flame_svg` - `v1.11.3`](#flame_svg---v1113)
 - [`flame_forge2d` - `v0.18.2+3`](#flame_forge2d---v01823)
 - [`flame_noise` - `v0.3.2+3`](#flame_noise---v0323)
 - [`flame_riverpod` - `v5.4.6`](#flame_riverpod---v546)
 - [`flame_network_assets` - `v0.3.3+3`](#flame_network_assets---v0333)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_behavior_tree` - `v0.1.3+3`
 - `flame_test` - `v1.17.3`
 - `flame_tiled` - `v1.21.1`
 - `flame_oxygen` - `v0.2.3+3`
 - `flame_isolate` - `v0.6.2+3`
 - `flame_texturepacker` - `v4.1.3`
 - `flame_sprite_fusion` - `v0.1.3+3`
 - `flame_audio` - `v2.10.6`
 - `flame_spine` - `v0.2.2+3`
 - `flame_bloc` - `v1.12.4`
 - `flame_kenney_xml` - `v0.1.1+3`
 - `flame_lottie` - `v0.4.2+3`
 - `flame_rive` - `v1.10.6`
 - `flame_markdown` - `v0.2.2+3`
 - `flame_svg` - `v1.11.3`
 - `flame_forge2d` - `v0.18.2+3`
 - `flame_noise` - `v0.3.2+3`
 - `flame_riverpod` - `v5.4.6`
 - `flame_network_assets` - `v0.3.3+3`

---

#### `flame` - `v1.22.0`

 - **FIX**: Remove extra `implements SizeProvider`s ([#3358](https://github.com/flame-engine/flame/issues/3358)). ([47ba0d87](https://github.com/flame-engine/flame/commit/47ba0d8738b101ed59781f8ba384cf05a16d65f1))
 - **FEAT**: Add WorldRoute to enable swapping worlds from the RouterComponent ([#3372](https://github.com/flame-engine/flame/issues/3372)). ([497f128f](https://github.com/flame-engine/flame/commit/497f128f8c32758f94d8d4752e9166fd3b625608))
 - **FEAT**(overlays): Added the 'priority' parameter for overlays ([#3349](https://github.com/flame-engine/flame/issues/3349)). ([e591ebf8](https://github.com/flame-engine/flame/commit/e591ebf8a320ff3d55b9ae9e50390bf2ab5a8919))

#### `flame_console` - `v0.1.1`

 - **FIX**(flame_console): MemoryRepository can't be const ([#3362](https://github.com/flame-engine/flame/issues/3362)). ([e977bd49](https://github.com/flame-engine/flame/commit/e977bd495b196368582eda4e7d8019adc6c268f4))
 - **FEAT**: Adding FlameConsole ([#3329](https://github.com/flame-engine/flame/issues/3329)). ([cf5358cd](https://github.com/flame-engine/flame/commit/cf5358cd9069dab9e327e766553bd65e151f1540))

#### `flame_fire_atlas` - `v1.7.0`

 - **FEAT**: Adding getters and methods for easier manipulation of selections ([#3350](https://github.com/flame-engine/flame/issues/3350)). ([291af57d](https://github.com/flame-engine/flame/commit/291af57deb7d742a73438b026ca2f4fd1c6a3454))


## 2024-10-16

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.21.0`](#flame---v1210)
 - [`flame_fire_atlas` - `v1.6.0`](#flame_fire_atlas---v160)
 - [`flame_test` - `v1.17.2`](#flame_test---v1172)
 - [`flame_tiled` - `v1.21.0`](#flame_tiled---v1210)
 - [`flame_audio` - `v2.10.5`](#flame_audio---v2105)
 - [`flame_forge2d` - `v0.18.2+2`](#flame_forge2d---v01822)
 - [`flame_oxygen` - `v0.2.3+2`](#flame_oxygen---v0232)
 - [`flame_rive` - `v1.10.5`](#flame_rive---v1105)
 - [`flame_texturepacker` - `v4.1.2`](#flame_texturepacker---v412)
 - [`flame_behavior_tree` - `v0.1.3+2`](#flame_behavior_tree---v0132)
 - [`flame_spine` - `v0.2.2+2`](#flame_spine---v0222)
 - [`flame_riverpod` - `v5.4.5`](#flame_riverpod---v545)
 - [`flame_kenney_xml` - `v0.1.1+2`](#flame_kenney_xml---v0112)
 - [`flame_bloc` - `v1.12.3`](#flame_bloc---v1123)
 - [`flame_noise` - `v0.3.2+2`](#flame_noise---v0322)
 - [`flame_lottie` - `v0.4.2+2`](#flame_lottie---v0422)
 - [`flame_network_assets` - `v0.3.3+2`](#flame_network_assets---v0332)
 - [`flame_svg` - `v1.11.2`](#flame_svg---v1112)
 - [`flame_sprite_fusion` - `v0.1.3+2`](#flame_sprite_fusion---v0132)
 - [`flame_markdown` - `v0.2.2+2`](#flame_markdown---v0222)
 - [`flame_isolate` - `v0.6.2+2`](#flame_isolate---v0622)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_audio` - `v2.10.5`
 - `flame_forge2d` - `v0.18.2+2`
 - `flame_oxygen` - `v0.2.3+2`
 - `flame_rive` - `v1.10.5`
 - `flame_texturepacker` - `v4.1.2`
 - `flame_behavior_tree` - `v0.1.3+2`
 - `flame_spine` - `v0.2.2+2`
 - `flame_riverpod` - `v5.4.5`
 - `flame_kenney_xml` - `v0.1.1+2`
 - `flame_bloc` - `v1.12.3`
 - `flame_noise` - `v0.3.2+2`
 - `flame_lottie` - `v0.4.2+2`
 - `flame_network_assets` - `v0.3.3+2`
 - `flame_svg` - `v1.11.2`
 - `flame_sprite_fusion` - `v0.1.3+2`
 - `flame_markdown` - `v0.2.2+2`
 - `flame_isolate` - `v0.6.2+2`

---

#### `flame` - `v1.21.0`

 - **FIX**: Widgets flickering ([#3343](https://github.com/flame-engine/flame/issues/3343)). ([ff170dc5](https://github.com/flame-engine/flame/commit/ff170dc5c2acc41190249b48e61767ea459fabb4))
 - **FIX**: Ray should not be able to escape `CircleHitbox` ([#3341](https://github.com/flame-engine/flame/issues/3341)). ([7311d034](https://github.com/flame-engine/flame/commit/7311d034d4c3b43592b49472384fe8576809e6a5))
 - **FIX**: Fix SpriteBatch to comply with new drawAtlas requirement ([#3338](https://github.com/flame-engine/flame/issues/3338)). ([a17fe4cd](https://github.com/flame-engine/flame/commit/a17fe4cdfaafa071cfd2ab8ef8279b26b79f00a7))
 - **FIX**: Set SpriteButtonComponent sprites in `onMount` ([#3327](https://github.com/flame-engine/flame/issues/3327)). ([f36533e7](https://github.com/flame-engine/flame/commit/f36533e78c7634866680ab5fb202a3e230529943))
 - **FIX**: Export TapConfig to make visible ([#3323](https://github.com/flame-engine/flame/issues/3323)). ([8e00115c](https://github.com/flame-engine/flame/commit/8e00115cd299423564dfce4b9d1674c9257a3c42))
 - **FIX**: Clarify `SpriteGroupComponent.updateSprite` assertion ([#3317](https://github.com/flame-engine/flame/issues/3317)). ([d976ee8c](https://github.com/flame-engine/flame/commit/d976ee8c7e4fbbca08e549412ca8b5af6928d4f4))
 - **FEAT**: Adding spawnWhenLoaded flag on SpawnComponent ([#3334](https://github.com/flame-engine/flame/issues/3334)). ([51a7e26b](https://github.com/flame-engine/flame/commit/51a7e26b1ab0ef2a2d040548c74aef84b164272d))
 - **FEAT**: Add a getter for images cache keys ([#3324](https://github.com/flame-engine/flame/issues/3324)). ([7746f2f8](https://github.com/flame-engine/flame/commit/7746f2f867092c19222a40aec2b66dc80558dccb))

#### `flame_fire_atlas` - `v1.6.0`

 - **FEAT**: Adding getter for the atlas image on flame fire atlas ([#3326](https://github.com/flame-engine/flame/issues/3326)). ([ae230ffa](https://github.com/flame-engine/flame/commit/ae230ffaaa588df7a99a3e2e8fa8980dc32104c0))

#### `flame_test` - `v1.17.2`

 - **FIX**: Widgets flickering ([#3343](https://github.com/flame-engine/flame/issues/3343)). ([ff170dc5](https://github.com/flame-engine/flame/commit/ff170dc5c2acc41190249b48e61767ea459fabb4))
 - **FIX**: Fix SpriteBatch to comply with new drawAtlas requirement ([#3338](https://github.com/flame-engine/flame/issues/3338)). ([a17fe4cd](https://github.com/flame-engine/flame/commit/a17fe4cdfaafa071cfd2ab8ef8279b26b79f00a7))

#### `flame_tiled` - `v1.21.0`

 - **FEAT**: Add a getter for images cache keys ([#3324](https://github.com/flame-engine/flame/issues/3324)). ([7746f2f8](https://github.com/flame-engine/flame/commit/7746f2f867092c19222a40aec2b66dc80558dccb))


## 2024-09-20

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame` - `v1.20.0`](#flame---v1200)
 - [`flame_oxygen` - `v0.2.3+1`](#flame_oxygen---v0231)
 - [`flame_behavior_tree` - `v0.1.3+1`](#flame_behavior_tree---v0131)
 - [`flame_isolate` - `v0.6.2+1`](#flame_isolate---v0621)
 - [`flame_noise` - `v0.3.2+1`](#flame_noise---v0321)
 - [`flame_svg` - `v1.11.1`](#flame_svg---v1111)
 - [`flame_rive` - `v1.10.4`](#flame_rive---v1104)
 - [`flame_audio` - `v2.10.4`](#flame_audio---v2104)
 - [`flame_texturepacker` - `v4.1.1`](#flame_texturepacker---v411)
 - [`flame_spine` - `v0.2.2+1`](#flame_spine---v0221)
 - [`flame_sprite_fusion` - `v0.1.3+1`](#flame_sprite_fusion---v0131)
 - [`flame_markdown` - `v0.2.2+1`](#flame_markdown---v0221)
 - [`flame_forge2d` - `v0.18.2+1`](#flame_forge2d---v01821)
 - [`flame_test` - `v1.17.1`](#flame_test---v1171)
 - [`flame_fire_atlas` - `v1.5.5`](#flame_fire_atlas---v155)
 - [`flame_bloc` - `v1.12.2`](#flame_bloc---v1122)
 - [`flame_kenney_xml` - `v0.1.1+1`](#flame_kenney_xml---v0111)
 - [`flame_riverpod` - `v5.4.4`](#flame_riverpod---v544)
 - [`flame_network_assets` - `v0.3.3+1`](#flame_network_assets---v0331)
 - [`flame_tiled` - `v1.20.4`](#flame_tiled---v1204)
 - [`flame_lottie` - `v0.4.2+1`](#flame_lottie---v0421)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_oxygen` - `v0.2.3+1`
 - `flame_behavior_tree` - `v0.1.3+1`
 - `flame_isolate` - `v0.6.2+1`
 - `flame_noise` - `v0.3.2+1`
 - `flame_svg` - `v1.11.1`
 - `flame_rive` - `v1.10.4`
 - `flame_audio` - `v2.10.4`
 - `flame_texturepacker` - `v4.1.1`
 - `flame_spine` - `v0.2.2+1`
 - `flame_sprite_fusion` - `v0.1.3+1`
 - `flame_markdown` - `v0.2.2+1`
 - `flame_forge2d` - `v0.18.2+1`
 - `flame_test` - `v1.17.1`
 - `flame_fire_atlas` - `v1.5.5`
 - `flame_bloc` - `v1.12.2`
 - `flame_kenney_xml` - `v0.1.1+1`
 - `flame_riverpod` - `v5.4.4`
 - `flame_network_assets` - `v0.3.3+1`
 - `flame_tiled` - `v1.20.4`
 - `flame_lottie` - `v0.4.2+1`

---

#### `flame` - `v1.20.0`

 - **FIX**: SpriteButtonComponent to initialize sprites in `onLoad` ([#3302](https://github.com/flame-engine/flame/issues/3302)). ([1204216c](https://github.com/flame-engine/flame/commit/1204216cb227d3831b546a54818075065fa7beec))
 - **FIX**: ViewportAwareBounds component and lifecycle issues ([#3276](https://github.com/flame-engine/flame/issues/3276)). ([026bf41f](https://github.com/flame-engine/flame/commit/026bf41f020de66ae9adfcdda9209bfbb75cf60c))
 - **FEAT**: Add ComponentTreeRoot.lifecycleEventsProcessed future ([#3308](https://github.com/flame-engine/flame/issues/3308)). ([ebc47418](https://github.com/flame-engine/flame/commit/ebc474189ceb587bcdebef7d3645ed2f3b3dba6f))
 - **FEAT**: Adding paint attribute to SpriteWidget and SpriteAnimationWidget ([#3298](https://github.com/flame-engine/flame/issues/3298)). ([a5338d0c](https://github.com/flame-engine/flame/commit/a5338d0c20d01bbe461c6d7fed5951d11e1c76f0))
 - **FEAT**: Adding tickOnLoad to TimerComponent ([#3285](https://github.com/flame-engine/flame/issues/3285)). ([0113aa37](https://github.com/flame-engine/flame/commit/0113aa376145109079a89bd310b9e528631ce9d4))
 - **DOCS**: Include information about the Flame DevTools extension in example readme ([#3288](https://github.com/flame-engine/flame/issues/3288)). ([76a9abaf](https://github.com/flame-engine/flame/commit/76a9abaf3c70659323e02bf7b6531b4fbba1f7a2))


## 2024-08-27

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.19.0`](#flame---v1190)

Packages with other changes:

 - [`behavior_tree` - `v0.1.3`](#behavior_tree---v013)
 - [`flame_behavior_tree` - `v0.1.3`](#flame_behavior_tree---v013)
 - [`flame_bloc` - `v1.12.1`](#flame_bloc---v1121)
 - [`flame_forge2d` - `v0.18.2`](#flame_forge2d---v0182)
 - [`flame_isolate` - `v0.6.2`](#flame_isolate---v062)
 - [`flame_kenney_xml` - `v0.1.1`](#flame_kenney_xml---v011)
 - [`flame_lint` - `v1.2.1`](#flame_lint---v121)
 - [`flame_lottie` - `v0.4.2`](#flame_lottie---v042)
 - [`flame_markdown` - `v0.2.2`](#flame_markdown---v022)
 - [`flame_noise` - `v0.3.2`](#flame_noise---v032)
 - [`flame_oxygen` - `v0.2.3`](#flame_oxygen---v023)
 - [`flame_rive` - `v1.10.3`](#flame_rive---v1103)
 - [`flame_spine` - `v0.2.2`](#flame_spine---v022)
 - [`flame_splash_screen` - `v0.3.1`](#flame_splash_screen---v031)
 - [`flame_sprite_fusion` - `v0.1.3`](#flame_sprite_fusion---v013)
 - [`flame_svg` - `v1.11.0`](#flame_svg---v1110)
 - [`flame_test` - `v1.17.0`](#flame_test---v1170)
 - [`flame_texturepacker` - `v4.1.0`](#flame_texturepacker---v410)
 - [`flame_tiled` - `v1.20.3`](#flame_tiled---v1203)
 - [`jenny` - `v1.3.2`](#jenny---v132)
 - [`flame_fire_atlas` - `v1.5.4`](#flame_fire_atlas---v154)
 - [`flame_riverpod` - `v5.4.3`](#flame_riverpod---v543)
 - [`flame_network_assets` - `v0.3.3`](#flame_network_assets---v033)
 - [`flame_audio` - `v2.10.3`](#flame_audio---v2103)

---

#### `flame` - `v1.19.0`

 - **REFACTOR**: Use a temp vector for delta calculations of `FollowBehavior` ([#3230](https://github.com/flame-engine/flame/issues/3230)). ([524793d4](https://github.com/flame-engine/flame/commit/524793d4a0dbe384d42fb9f844685b85abb05574))
 - **FIX**: Add assertion when trying to set "current" that doesn't exist ([#3258](https://github.com/flame-engine/flame/issues/3258)). ([267d6801](https://github.com/flame-engine/flame/commit/267d6801cb7e6cbbaa450e24e38aaa7d8fcfc03f))
 - **FIX**: Update version of lints to comply with new pub requirements ([#3223](https://github.com/flame-engine/flame/issues/3223)). ([1b0bee72](https://github.com/flame-engine/flame/commit/1b0bee726b5937f73d4be5e304bc8780aa3ca6f0))
 - **FIX**: Replace CurvedParticle inheritance with Particle in ScaledParticle ([#3221](https://github.com/flame-engine/flame/issues/3221)). ([8cd054d0](https://github.com/flame-engine/flame/commit/8cd054d02b614d1ee35a71f32dcbacf0952c9780))
 - **FIX**: Fix text rendering issue where spaces are missing ([#3192](https://github.com/flame-engine/flame/issues/3192)). ([28fd2a0f](https://github.com/flame-engine/flame/commit/28fd2a0f0f1ea04872d0c4e8b674c8ce7bca69ee))
 - **FIX**: Add nativeAngle to constructors where it makes sense ([#3197](https://github.com/flame-engine/flame/issues/3197)). ([e8704934](https://github.com/flame-engine/flame/commit/e8704934b19d9ed1982d35ce62819f01ac3de189))
 - **FIX**: Wire in background and foreground colors in TextPaint ([#3191](https://github.com/flame-engine/flame/issues/3191)). ([983cfab6](https://github.com/flame-engine/flame/commit/983cfab6def86dbf68455fb021281caaf0135793))
 - **FIX**: Disallow mutatation of `SpriteGroupComponent.sprites` ([#3185](https://github.com/flame-engine/flame/issues/3185)). ([7c40034d](https://github.com/flame-engine/flame/commit/7c40034d20ed26114b14fd262130d11cf226fb6a))
 - **FIX**: Disallow mutatation of `SpriteAnimationGroupComponent.animations` ([#3183](https://github.com/flame-engine/flame/issues/3183)). ([52773407](https://github.com/flame-engine/flame/commit/527734071b030ec7dbe0f3c017108db0dfda3ced))
 - **FEAT**: Adding scale and angle to devtools attributes ([#3267](https://github.com/flame-engine/flame/issues/3267)). ([b2a5e658](https://github.com/flame-engine/flame/commit/b2a5e6581ebaebc8044d65504efc58309f8a2b9b))
 - **FEAT**: Adding x,y,width and height inputs to position components on Dev Tools ([#3263](https://github.com/flame-engine/flame/issues/3263)). ([003ec3a1](https://github.com/flame-engine/flame/commit/003ec3a17beed2bad5540b968a0f5602c19ada79))
 - **FEAT**: Adding component snapshot to Dev tools ([#3261](https://github.com/flame-engine/flame/issues/3261)). ([1a574917](https://github.com/flame-engine/flame/commit/1a574917cd5311aea2576942d5cf4ea579218aaf))
 - **FEAT**: Fixing tests on flutter 3.24.0 ([#3259](https://github.com/flame-engine/flame/issues/3259)). ([bf9a2481](https://github.com/flame-engine/flame/commit/bf9a2481fbeb77413a26ae96b57843ca51411f9f))
 - **FEAT**: Loading builder for Route ([#3113](https://github.com/flame-engine/flame/issues/3113)). ([1e62b342](https://github.com/flame-engine/flame/commit/1e62b3424578150718514aa762f184485dba024a))
 - **FEAT**: Take in super.curve in ScalingParticle ([#3220](https://github.com/flame-engine/flame/issues/3220)). ([0fbc73cc](https://github.com/flame-engine/flame/commit/0fbc73ccdf36938a20f2eb8ae544881a8dbeae1e))
 - **FEAT**: Add `pause` and `resume` to `HasTimeScale` mixin ([#3216](https://github.com/flame-engine/flame/issues/3216)). ([9a86e7b5](https://github.com/flame-engine/flame/commit/9a86e7b54b55047ec9c63997015f71b7308dec27))
 - **FEAT**: Add missing background and foreground properties to InlineTextStyle ([#3187](https://github.com/flame-engine/flame/issues/3187)). ([34dde50f](https://github.com/flame-engine/flame/commit/34dde50f978f810df89fb1c051d13aee9214b307))
 - **FEAT**: Support inline code blocks on markdown rich text ([#3186](https://github.com/flame-engine/flame/issues/3186)). ([67e069c0](https://github.com/flame-engine/flame/commit/67e069c00dcb32c258231a326b0918739c6f80e6))
 - **DOCS**: Remove `PositionType` from the docs ([#3198](https://github.com/flame-engine/flame/issues/3198)). ([b0ff5c41](https://github.com/flame-engine/flame/commit/b0ff5c41c572da4dfa4221bef89b93b6f6be74c6))
 - **DOCS**: Add dartdocs to inline text node classes ([#3189](https://github.com/flame-engine/flame/issues/3189)). ([84c1ee87](https://github.com/flame-engine/flame/commit/84c1ee87f827a85c7accd92e061077ef291cb433))
 - **BREAKING** **REFACTOR**: Make query() result an Iterable ([#3209](https://github.com/flame-engine/flame/issues/3209)). ([c094caa7](https://github.com/flame-engine/flame/commit/c094caa77b17b1d69856396e27c88db8515bb44a))

#### `behavior_tree` - `v0.1.3`

 - **FIX**: Update version of lints to comply with new pub requirements ([#3223](https://github.com/flame-engine/flame/issues/3223)). ([1b0bee72](https://github.com/flame-engine/flame/commit/1b0bee726b5937f73d4be5e304bc8780aa3ca6f0))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))
 - **DOCS**: Fix capitalization of the Dart programming language on pubspec description field ([#3222](https://github.com/flame-engine/flame/issues/3222)). ([9404241e](https://github.com/flame-engine/flame/commit/9404241e8a14d8d510f693c8557ca62ed76bd390))

#### `flame_behavior_tree` - `v0.1.3`

 - **FIX**: Update version of lints to comply with new pub requirements ([#3223](https://github.com/flame-engine/flame/issues/3223)). ([1b0bee72](https://github.com/flame-engine/flame/commit/1b0bee726b5937f73d4be5e304bc8780aa3ca6f0))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))
 - **DOCS**: Fix capitalization of the Dart programming language on pubspec description field ([#3222](https://github.com/flame-engine/flame/issues/3222)). ([9404241e](https://github.com/flame-engine/flame/commit/9404241e8a14d8d510f693c8557ca62ed76bd390))

#### `flame_bloc` - `v1.12.1`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_forge2d` - `v0.18.2`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_isolate` - `v0.6.2`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_kenney_xml` - `v0.1.1`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_lint` - `v1.2.1`

 - **FIX**: Update version of lints to comply with new pub requirements ([#3223](https://github.com/flame-engine/flame/issues/3223)). ([1b0bee72](https://github.com/flame-engine/flame/commit/1b0bee726b5937f73d4be5e304bc8780aa3ca6f0))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_lottie` - `v0.4.2`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_markdown` - `v0.2.2`

 - **FEAT**: Support inline code blocks on markdown rich text ([#3186](https://github.com/flame-engine/flame/issues/3186)). ([67e069c0](https://github.com/flame-engine/flame/commit/67e069c00dcb32c258231a326b0918739c6f80e6))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_noise` - `v0.3.2`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_oxygen` - `v0.2.3`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_rive` - `v1.10.3`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_spine` - `v0.2.2`

 - **DOCS**: Homepage link typo for flame_spine ([#3277](https://github.com/flame-engine/flame/issues/3277)). ([f76355f1](https://github.com/flame-engine/flame/commit/f76355f151a61fa0eddb5356b7e2a7c27b96c221))

#### `flame_splash_screen` - `v0.3.1`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_sprite_fusion` - `v0.1.3`

 - **FIX**: Add nativeAngle to constructors where it makes sense ([#3197](https://github.com/flame-engine/flame/issues/3197)). ([e8704934](https://github.com/flame-engine/flame/commit/e8704934b19d9ed1982d35ce62819f01ac3de189))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_svg` - `v1.11.0`

 - **FEAT**: Fixing tests on flutter 3.24.0 ([#3259](https://github.com/flame-engine/flame/issues/3259)). ([bf9a2481](https://github.com/flame-engine/flame/commit/bf9a2481fbeb77413a26ae96b57843ca51411f9f))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_test` - `v1.17.0`

 - **FEAT**: Add a closeToVector3 matcher to flame_test ([#3242](https://github.com/flame-engine/flame/issues/3242)). ([965b684a](https://github.com/flame-engine/flame/commit/965b684a286ae2e2a89ba303839004d0b12cb3ef))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_texturepacker` - `v4.1.0`

 - **PERF**: Optimize `TexturePackerSprite` when sprites do not need to be rotated ([#3236](https://github.com/flame-engine/flame/issues/3236)). ([e9512e9b](https://github.com/flame-engine/flame/commit/e9512e9b28188476d5956e875430f1ef195f5882))
 - **FEAT**: Enhance TexturePackerSprite ([#3224](https://github.com/flame-engine/flame/issues/3224)). ([0b0a6c1b](https://github.com/flame-engine/flame/commit/0b0a6c1bacfca8772d1b9518e9433d994e68bae1))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `flame_tiled` - `v1.20.3`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))

#### `jenny` - `v1.3.2`

 - **FIX**: Fix analyze issue on main ([#3265](https://github.com/flame-engine/flame/issues/3265)). ([f60b6e13](https://github.com/flame-engine/flame/commit/f60b6e134177495bcfd0f405a50f9e0e666b8b42))

#### `flame_fire_atlas` - `v1.5.4`

#### `flame_riverpod` - `v5.4.3`

 - Bump "flame_riverpod" to `5.4.3`.

#### `flame_network_assets` - `v0.3.3`

#### `flame_audio` - `v2.10.3`

 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))


## 2024-07-29

### Changes

---

Packages with breaking changes:

 - There are no breaking changes in this release.

Packages with other changes:

 - [`flame_fire_atlas` - `v1.5.3`](#flame_fire_atlas---v153)

---

#### `flame_fire_atlas` - `v1.5.3`

 - **FEAT**: Adding group to flame fire atlas ([#3245](https://github.com/flame-engine/flame/issues/3245)). ([0fab444c](https://github.com/flame-engine/flame/commit/0fab444c3dd9ad8faa1e0e9e702150b950dbf30f))
 - **DOCS**: Add AI assist badge to readme(s) ([#3226](https://github.com/flame-engine/flame/issues/3226)). ([380d6aa9](https://github.com/flame-engine/flame/commit/380d6aa946d6b852c55f4ebbfce53d2087287fa2))


## 2024-05-27

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.18.0`](#flame---v1180)

Packages with other changes:

 - [`behavior_tree` - `v0.1.2`](#behavior_tree---v012)
 - [`flame_behavior_tree` - `v0.1.2`](#flame_behavior_tree---v012)
 - [`flame_forge2d` - `v0.18.1`](#flame_forge2d---v0181)
 - [`flame_isolate` - `v0.6.1`](#flame_isolate---v061)
 - [`flame_markdown` - `v0.2.1`](#flame_markdown---v021)
 - [`flame_oxygen` - `v0.2.2`](#flame_oxygen---v022)
 - [`flame_sprite_fusion` - `v0.1.2`](#flame_sprite_fusion---v012)
 - [`flame_lottie` - `v0.4.1`](#flame_lottie---v041)
 - [`flame_noise` - `v0.3.1`](#flame_noise---v031)
 - [`flame_network_assets` - `v0.3.2`](#flame_network_assets---v032)
 - [`flame_spine` - `v0.2.1`](#flame_spine---v021)
 - [`flame_audio` - `v2.10.2`](#flame_audio---v2102)
 - [`flame_bloc` - `v1.12.0`](#flame_bloc---v1120)
 - [`flame_lint` - `v1.2.0`](#flame_lint---v120)
 - [`flame_rive` - `v1.10.2`](#flame_rive---v1102)
 - [`flame_texturepacker` - `v4.0.1`](#flame_texturepacker---v401)
 - [`flame_tiled` - `v1.20.2`](#flame_tiled---v1202)
 - [`jenny` - `v1.3.1`](#jenny---v131)
 - [`flame_test` - `v1.16.2`](#flame_test---v1162)
 - [`flame_fire_atlas` - `v1.5.2`](#flame_fire_atlas---v152)
 - [`flame_riverpod` - `v5.4.2`](#flame_riverpod---v542)
 - [`flame_svg` - `v1.10.2`](#flame_svg---v1102)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.

 - `flame_test` - `v1.16.2`
 - `flame_fire_atlas` - `v1.5.2`
 - `flame_riverpod` - `v5.4.2`
 - `flame_svg` - `v1.10.2`

---

#### `flame` - `v1.18.0`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))
 - **FIX**: Add key parameters to the rest of the components ([#3170](https://github.com/flame-engine/flame/issues/3170)). ([2477ea0f](https://github.com/flame-engine/flame/commit/2477ea0fcee99e71597983146f4af2dffd866971))
 - **FIX**: Invoke `setToStart` on child effect controller of wrapping effect controllers ([#3168](https://github.com/flame-engine/flame/issues/3168)). ([217c95f0](https://github.com/flame-engine/flame/commit/217c95f0a53fd5a7933bfa57833f951cc0037878))
 - **FIX**: Fix cascading and fallback propagation of text styles ([#3129](https://github.com/flame-engine/flame/issues/3129)). ([7b706d5f](https://github.com/flame-engine/flame/commit/7b706d5f63207aaf82d12a4b26233bc476771b1e))
 - **FEAT**: Add `onReleased` action to `AdvancedButtonComponent` which will be called within `onTapUp` ([#3152](https://github.com/flame-engine/flame/issues/3152)). ([2269732e](https://github.com/flame-engine/flame/commit/2269732e64a2acef2451d283c85b03e1101229ec))
 - **FEAT**: Support text align on new text rendering pipeline ([#3147](https://github.com/flame-engine/flame/issues/3147)). ([194d5536](https://github.com/flame-engine/flame/commit/194d5536560e464644bff8d5582a8ca8996539f5))
 - **FEAT**: Add missing parameters to InlineTextStyle ([#3146](https://github.com/flame-engine/flame/issues/3146)). ([ce9392ab](https://github.com/flame-engine/flame/commit/ce9392abd85fe5fd3ae6f766c3a2957275c6fb8c))
 - **FEAT**: Expand flame_lint to respect required pub.dev checks ([#3139](https://github.com/flame-engine/flame/issues/3139)). ([6e80bf5e](https://github.com/flame-engine/flame/commit/6e80bf5e679d1cdeeb9362d4103690b0b381161d))
 - **FEAT**: Add accessor to determine a TextElement size ([#3130](https://github.com/flame-engine/flame/issues/3130)). ([8a63a07a](https://github.com/flame-engine/flame/commit/8a63a07ae3b569c316eafa23f0378e00180e0963))
 - **FEAT**: Add ability to convert between TextPaint and InlineTextStyle ([#3128](https://github.com/flame-engine/flame/issues/3128)). ([6b63a57a](https://github.com/flame-engine/flame/commit/6b63a57a4888211b284f3a074c17519cb31341e0))
 - **FEAT**: Add completed future for effects ([#3123](https://github.com/flame-engine/flame/issues/3123)). ([5e967deb](https://github.com/flame-engine/flame/commit/5e967deb876ed39fa4ee6839471bbfbcd3b72463))
 - **FEAT**: Add custom long tap delay ([#3110](https://github.com/flame-engine/flame/issues/3110)). ([a95d7df6](https://github.com/flame-engine/flame/commit/a95d7df606bd2119423cc8a7ae51cacfb7b4dbed))
 - **DOCS**: Update the dartdocs for `FixedResolutionViewport` ([#3132](https://github.com/flame-engine/flame/issues/3132)). ([db4b6fd6](https://github.com/flame-engine/flame/commit/db4b6fd6fa5968462d3f89238a92edbb93e4898d))
 - **BREAKING** **FIX**: Update IsometricTileMapComponent to have better defined position and size ([#3142](https://github.com/flame-engine/flame/issues/3142)). ([9a7bdc74](https://github.com/flame-engine/flame/commit/9a7bdc7439322a26a388e3ac1b9c1a7c43742222))

#### `behavior_tree` - `v0.1.2`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_behavior_tree` - `v0.1.2`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_forge2d` - `v0.18.1`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_isolate` - `v0.6.1`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_markdown` - `v0.2.1`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_oxygen` - `v0.2.2`

#### `flame_sprite_fusion` - `v0.1.2`

#### `flame_lottie` - `v0.4.1`

#### `flame_noise` - `v0.3.1`

#### `flame_network_assets` - `v0.3.2`

#### `flame_spine` - `v0.2.1`

#### `flame_audio` - `v2.10.2`

 - **DOCS**: Update flame_audio readme ([#3119](https://github.com/flame-engine/flame/issues/3119)). ([843984de](https://github.com/flame-engine/flame/commit/843984dee5f5f6afd351ef29ad2adb39650f30bb))

#### `flame_bloc` - `v1.12.0`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))
 - **FIX**: Call `super.onLoad` from `FlameBlockReader` ([#3175](https://github.com/flame-engine/flame/issues/3175)). ([349f7bd7](https://github.com/flame-engine/flame/commit/349f7bd71437abad666d05f973b6983970ccd0c6))
 - **FEAT**: Expand flame_lint to respect required pub.dev checks ([#3139](https://github.com/flame-engine/flame/issues/3139)). ([6e80bf5e](https://github.com/flame-engine/flame/commit/6e80bf5e679d1cdeeb9362d4103690b0b381161d))

#### `flame_lint` - `v1.2.0`

 - **FEAT**: Expand flame_lint to respect required pub.dev checks ([#3139](https://github.com/flame-engine/flame/issues/3139)). ([6e80bf5e](https://github.com/flame-engine/flame/commit/6e80bf5e679d1cdeeb9362d4103690b0b381161d))

#### `flame_rive` - `v1.10.2`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `flame_texturepacker` - `v4.0.1`

 - **FIX**: TexturePacker fixes the wrong path for the atlas file. ([#3124](https://github.com/flame-engine/flame/issues/3124)). ([69f5c388](https://github.com/flame-engine/flame/commit/69f5c388ce4e0a64ba5f7331a596777a9eab1e40))

#### `flame_tiled` - `v1.20.2`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))

#### `jenny` - `v1.3.1`

 - **REFACTOR**: Modernize switch; use switch-expressions and no break; ([#3133](https://github.com/flame-engine/flame/issues/3133)). ([b283b82f](https://github.com/flame-engine/flame/commit/b283b82f6cfa7e7f2ce5ff7f657e6569667183d4))


## 2024-04-05

### Changes

---

Packages with breaking changes:

 - [`flame_texturepacker` - `v4.0.0`](#flame_texturepacker---v400)

Packages with other changes:

 - [`flame_forge2d` - `v0.18.0`](#flame_forge2d---v0180)
 - [`flame_tiled` - `v1.20.1`](#flame_tiled---v1201)

---

#### `flame_texturepacker` - `v4.0.0`

 - **BREAKING** **FEAT**: Use `Flame.images` in flame_texturepacker ([#3103](https://github.com/flame-engine/flame/issues/3103)). ([418cc578](https://github.com/flame-engine/flame/commit/418cc578053d969a4a5c3789b1713b9e1a4b3bdd))

#### `flame_forge2d` - `v0.18.0`

 - **FIX**: Use camera argument name in Forge2DGame ([#3115](https://github.com/flame-engine/flame/issues/3115)). ([9d97b123](https://github.com/flame-engine/flame/commit/9d97b12348161b4b150ee4166ba552f28d5f9d8b))
 - **DOCS**: Upgrade dashbook version ([#3109](https://github.com/flame-engine/flame/issues/3109)). ([a717bcb4](https://github.com/flame-engine/flame/commit/a717bcb475a5604c5d8c66a3a5ac53f0dc173109))

#### `flame_tiled` - `v1.20.1`

 - **FIX**: Respect tile offset when drawing tiles ([#3112](https://github.com/flame-engine/flame/issues/3112)). ([e3477474](https://github.com/flame-engine/flame/commit/e34774743038bc75fec14afc3c753fa997e71577))


## 2024-03-29

### Changes

---

Packages with breaking changes:

 - [`flame` - `v1.17.0`](#flame---v1170)

Packages with other changes:

 - [`flame_forge2d` - `v0.17.1`](#flame_forge2d---v0171)
 - [`flame_oxygen` - `v0.2.1`](#flame_oxygen---v021)
 - [`behavior_tree` - `v0.1.1`](#behavior_tree---v011)
 - [`flame_behavior_tree` - `v0.1.1`](#flame_behavior_tree---v011)
 - [`flame_network_assets` - `v0.3.1`](#flame_network_assets---v031)
 - [`flame_sprite_fusion` - `v0.1.1`](#flame_sprite_fusion---v011)
 - [`flame_texturepacker` - `v3.2.0`](#flame_texturepacker---v320)
 - [`flame_tiled` - `v1.20.0`](#flame_tiled---v1200)
 - [`flame_test` - `v1.16.1`](#flame_test---v1161)
 - [`flame_isolate` - `v0.6.0+1`](#flame_isolate---v0601)
 - [`flame_fire_atlas` - `v1.5.1`](#flame_fire_atlas---v151)
 - [`flame_audio` - `v2.10.1`](#flame_audio---v2101)
 - [`flame_spine` - `v0.2.0+1`](#flame_spine---v0201)
 - [`flame_bloc` - `v1.11.1`](#flame_bloc---v1111)
 - [`flame_lottie` - `v0.4.0+1`](#flame_lottie---v0401)
 - [`flame_markdown` - `v0.2.0+1`](#flame_markdown---v0201)
 - [`flame_rive` - `v1.10.1`](#flame_rive---v1101)
 - [`flame_noise` - `v0.3.0+1`](#flame_noise---v0301)
 - [`flame_riverpod` - `v5.4.1`](#flame_riverpod---v541)
 - [`flame_svg` - `v1.10.1`](#flame_svg---v1101)

Packages with dependency updates only:

> Packages listed below depend on other packages in this workspace that have had changes. Their vers
Download .txt
gitextract_z4rtht8z/

├── .github/
│   ├── .cspell/
│   │   ├── dart_dictionary.txt
│   │   ├── flame_dictionary.txt
│   │   ├── gamedev_dictionary.txt
│   │   ├── people_usernames.txt
│   │   ├── sphinx_dictionary.txt
│   │   └── words_dictionary.txt
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── improvement_suggestion.yml
│   ├── cspell.json
│   ├── pull_request_template.md
│   └── workflows/
│       ├── cicd.yml
│       ├── gh-pages.yml
│       ├── release-prepare.yml
│       ├── release-publish.yml
│       ├── release-tag.yml
│       ├── spell_checker.yml
│       └── title-validation.yml
├── .gitignore
├── .markdownlint.yaml
├── .markdownlintignore
├── .readthedocs.yaml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── doc/
│   ├── README.md
│   ├── _sphinx/
│   │   ├── Makefile
│   │   ├── conf.py
│   │   ├── extensions/
│   │   │   ├── dart_domain.css
│   │   │   ├── dart_domain.py
│   │   │   ├── flutter_app.css
│   │   │   ├── flutter_app.js
│   │   │   ├── flutter_app.py
│   │   │   ├── package.css
│   │   │   ├── package.py
│   │   │   ├── yarn_lexer.css
│   │   │   └── yarn_lexer.py
│   │   ├── kill-server.py
│   │   ├── make.bat
│   │   ├── requirements.txt
│   │   ├── scripts/
│   │   │   ├── menu-expand.js
│   │   │   └── versions.js
│   │   └── theme/
│   │       ├── copy-button.css
│   │       ├── doctools.js
│   │       ├── flames.css
│   │       ├── layout.html
│   │       ├── search.html
│   │       └── theme.conf
│   ├── bridge_packages/
│   │   ├── bridge_packages.md
│   │   ├── flame_3d/
│   │   │   ├── basic_concepts.md
│   │   │   ├── flame_3d.md
│   │   │   └── getting_started.md
│   │   ├── flame_audio/
│   │   │   ├── audio.md
│   │   │   ├── audio_pool.md
│   │   │   ├── bgm.md
│   │   │   └── flame_audio.md
│   │   ├── flame_behaviors/
│   │   │   ├── collision-detection.md
│   │   │   ├── conventions/
│   │   │   │   ├── coding-conventions.md
│   │   │   │   └── naming-conventions.md
│   │   │   ├── event-behaviors.md
│   │   │   ├── flame_behaviors.md
│   │   │   └── getting_started.md
│   │   ├── flame_bloc/
│   │   │   ├── bloc.md
│   │   │   ├── bloc_components.md
│   │   │   └── flame_bloc.md
│   │   ├── flame_console/
│   │   │   └── flame_console.md
│   │   ├── flame_fire_atlas/
│   │   │   ├── fire_atlas.md
│   │   │   └── flame_fire_atlas.md
│   │   ├── flame_forge2d/
│   │   │   ├── flame_forge2d.md
│   │   │   ├── forge2d.md
│   │   │   └── joints.md
│   │   ├── flame_isolate/
│   │   │   ├── flame_isolate.md
│   │   │   └── isolate.md
│   │   ├── flame_lottie/
│   │   │   └── flame_lottie.md
│   │   ├── flame_network_assets/
│   │   │   └── flame_network_assets.md
│   │   ├── flame_oxygen/
│   │   │   └── flame_oxygen.md
│   │   ├── flame_rive/
│   │   │   ├── flame_rive.md
│   │   │   └── rive.md
│   │   ├── flame_riverpod/
│   │   │   ├── component.md
│   │   │   ├── flame_riverpod.md
│   │   │   ├── riverpod.md
│   │   │   └── widget.md
│   │   ├── flame_spine/
│   │   │   └── flame_spine.md
│   │   ├── flame_splash_screen/
│   │   │   └── flame_splash_screen.md
│   │   ├── flame_svg/
│   │   │   ├── flame_svg.md
│   │   │   └── svg.md
│   │   ├── flame_texturepacker/
│   │   │   └── flame_texturepacker.md
│   │   └── flame_tiled/
│   │       ├── flame_tiled.md
│   │       ├── layers.md
│   │       └── tiled.md
│   ├── development/
│   │   ├── contributing.md
│   │   ├── development.md
│   │   ├── documentation.md
│   │   ├── style_guide.md
│   │   └── testing_guide.md
│   ├── flame/
│   │   ├── camera.md
│   │   ├── collision_detection.md
│   │   ├── components/
│   │   │   ├── components.md
│   │   │   ├── parallax_component.md
│   │   │   ├── position_component.md
│   │   │   ├── shape_components.md
│   │   │   ├── sprite_components.md
│   │   │   └── utility_components.md
│   │   ├── diagrams/
│   │   │   ├── component.md
│   │   │   ├── component_life_cycle.md
│   │   │   ├── flame_3d_components.md
│   │   │   ├── flame_game_life_cycle.md
│   │   │   └── low_level_game_api.md
│   │   ├── effects/
│   │   │   ├── anchor_effects.md
│   │   │   ├── color_effects.md
│   │   │   ├── combined_effect.md
│   │   │   ├── effect_controllers.md
│   │   │   ├── effects.md
│   │   │   ├── function_effect.md
│   │   │   ├── move_effects.md
│   │   │   ├── remove_effect.md
│   │   │   ├── rotate_effects.md
│   │   │   ├── scale_effects.md
│   │   │   ├── sequence_effect.md
│   │   │   └── size_effects.md
│   │   ├── examples/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── rewards.riv
│   │   │   │   └── skills.riv
│   │   │   ├── lib/
│   │   │   │   ├── anchor.dart
│   │   │   │   ├── anchor_by_effect.dart
│   │   │   │   ├── anchor_to_effect.dart
│   │   │   │   ├── collision_detection.dart
│   │   │   │   ├── color_effect.dart
│   │   │   │   ├── decorator_blur.dart
│   │   │   │   ├── decorator_grayscale.dart
│   │   │   │   ├── decorator_hue.dart
│   │   │   │   ├── decorator_rotate3d.dart
│   │   │   │   ├── decorator_shadow3d.dart
│   │   │   │   ├── decorator_tint.dart
│   │   │   │   ├── drag_events.dart
│   │   │   │   ├── ember.dart
│   │   │   │   ├── flower.dart
│   │   │   │   ├── glow_effect.dart
│   │   │   │   ├── hue_effect.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── move_along_path_effect.dart
│   │   │   │   ├── move_by_effect.dart
│   │   │   │   ├── move_to_effect.dart
│   │   │   │   ├── opacity_by_effect.dart
│   │   │   │   ├── opacity_effect_with_target.dart
│   │   │   │   ├── opacity_to_effect.dart
│   │   │   │   ├── pointer_events.dart
│   │   │   │   ├── post_process.dart
│   │   │   │   ├── ray_cast.dart
│   │   │   │   ├── ray_trace.dart
│   │   │   │   ├── remove_effect.dart
│   │   │   │   ├── rive_example.dart
│   │   │   │   ├── rotate_around_effect.dart
│   │   │   │   ├── rotate_by_effect.dart
│   │   │   │   ├── rotate_to_effect.dart
│   │   │   │   ├── router.dart
│   │   │   │   ├── scale_by_effect.dart
│   │   │   │   ├── scale_to_effect.dart
│   │   │   │   ├── sequence_effect.dart
│   │   │   │   ├── size_by_effect.dart
│   │   │   │   ├── size_to_effect.dart
│   │   │   │   ├── tap_events.dart
│   │   │   │   ├── time_scale.dart
│   │   │   │   └── value_route.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── web/
│   │   │       └── index.html
│   │   ├── flame.md
│   │   ├── game.md
│   │   ├── game_widget.md
│   │   ├── inputs/
│   │   │   ├── drag_events.md
│   │   │   ├── gesture_input.md
│   │   │   ├── hardware_keyboard_detector.md
│   │   │   ├── inputs.md
│   │   │   ├── keyboard_input.md
│   │   │   ├── other_inputs.md
│   │   │   ├── pointer_events.md
│   │   │   ├── scale_events.md
│   │   │   └── tap_events.md
│   │   ├── layout/
│   │   │   ├── align_component.md
│   │   │   ├── column_component.md
│   │   │   ├── expanded_component.md
│   │   │   ├── layout.md
│   │   │   ├── padding_component.md
│   │   │   └── row_component.md
│   │   ├── other/
│   │   │   ├── debug.md
│   │   │   ├── other.md
│   │   │   ├── performance.md
│   │   │   ├── util.md
│   │   │   └── widgets.md
│   │   ├── overlays.md
│   │   ├── platforms.md
│   │   ├── rendering/
│   │   │   ├── decorators.md
│   │   │   ├── images.md
│   │   │   ├── layers.md
│   │   │   ├── palette.md
│   │   │   ├── particles.md
│   │   │   ├── post_processing.md
│   │   │   ├── rendering.md
│   │   │   └── text_rendering.md
│   │   ├── router.md
│   │   └── structure.md
│   ├── index.md
│   ├── other_modules/
│   │   ├── jenny/
│   │   │   ├── jenny.md
│   │   │   ├── language/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── character.md
│   │   │   │   │   ├── commands.md
│   │   │   │   │   ├── declare.md
│   │   │   │   │   ├── if.md
│   │   │   │   │   ├── jump.md
│   │   │   │   │   ├── local.md
│   │   │   │   │   ├── set.md
│   │   │   │   │   ├── stop.md
│   │   │   │   │   ├── user_defined_commands.md
│   │   │   │   │   ├── visit.md
│   │   │   │   │   └── wait.md
│   │   │   │   ├── expressions/
│   │   │   │   │   ├── expressions.md
│   │   │   │   │   ├── functions/
│   │   │   │   │   │   ├── functions.md
│   │   │   │   │   │   ├── misc.md
│   │   │   │   │   │   ├── numeric.md
│   │   │   │   │   │   ├── random.md
│   │   │   │   │   │   └── type.md
│   │   │   │   │   ├── operators.md
│   │   │   │   │   └── variables.md
│   │   │   │   ├── language.md
│   │   │   │   ├── lines.md
│   │   │   │   ├── markup.md
│   │   │   │   ├── nodes.md
│   │   │   │   └── options.md
│   │   │   └── runtime/
│   │   │       ├── character.md
│   │   │       ├── character_storage.md
│   │   │       ├── command_storage.md
│   │   │       ├── dialogue_choice.md
│   │   │       ├── dialogue_line.md
│   │   │       ├── dialogue_option.md
│   │   │       ├── dialogue_runner.md
│   │   │       ├── dialogue_view.md
│   │   │       ├── function_storage.md
│   │   │       ├── jenny_runtime.md
│   │   │       ├── markup_attribute.md
│   │   │       ├── node.md
│   │   │       ├── user_defined_command.md
│   │   │       ├── variable_storage.md
│   │   │       └── yarn_project.md
│   │   ├── other_modules.md
│   │   └── oxygen/
│   │       ├── components.md
│   │       └── oxygen.md
│   ├── resources/
│   │   └── resources.md
│   └── tutorials/
│       ├── bare_flame_game.md
│       ├── basic_shader/
│       │   ├── basic_shader.md
│       │   ├── step1.md
│       │   ├── step2.md
│       │   ├── step3.md
│       │   ├── step4.md
│       │   └── takeaways.md
│       ├── klondike/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── main.dart
│       │   │   │   ├── step2/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── foundation.dart
│       │   │   │   │   │   ├── pile.dart
│       │   │   │   │   │   ├── stock.dart
│       │   │   │   │   │   └── waste.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step3/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── card.dart
│       │   │   │   │   │   ├── foundation.dart
│       │   │   │   │   │   ├── pile.dart
│       │   │   │   │   │   ├── stock.dart
│       │   │   │   │   │   └── waste.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   ├── main.dart
│       │   │   │   │   ├── rank.dart
│       │   │   │   │   └── suit.dart
│       │   │   │   ├── step4/
│       │   │   │   │   ├── components/
│       │   │   │   │   │   ├── card.dart
│       │   │   │   │   │   ├── foundation_pile.dart
│       │   │   │   │   │   ├── stock_pile.dart
│       │   │   │   │   │   ├── tableau_pile.dart
│       │   │   │   │   │   └── waste_pile.dart
│       │   │   │   │   ├── klondike_game.dart
│       │   │   │   │   ├── main.dart
│       │   │   │   │   ├── pile.dart
│       │   │   │   │   ├── rank.dart
│       │   │   │   │   └── suit.dart
│       │   │   │   └── step5/
│       │   │   │       ├── components/
│       │   │   │       │   ├── card.dart
│       │   │   │       │   ├── flat_button.dart
│       │   │   │       │   ├── foundation_pile.dart
│       │   │   │       │   ├── stock_pile.dart
│       │   │   │       │   ├── tableau_pile.dart
│       │   │   │       │   └── waste_pile.dart
│       │   │   │       ├── klondike_game.dart
│       │   │   │       ├── klondike_world.dart
│       │   │   │       ├── main.dart
│       │   │   │       ├── pile.dart
│       │   │   │       ├── rank.dart
│       │   │   │       └── suit.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── klondike.md
│       │   ├── step1.md
│       │   ├── step2.md
│       │   ├── step3.md
│       │   ├── step4.md
│       │   └── step5.md
│       ├── platformer/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── actors/
│       │   │   │   │   ├── ember.dart
│       │   │   │   │   └── water_enemy.dart
│       │   │   │   ├── ember_quest.dart
│       │   │   │   ├── main.dart
│       │   │   │   ├── managers/
│       │   │   │   │   └── segment_manager.dart
│       │   │   │   ├── objects/
│       │   │   │   │   ├── ground_block.dart
│       │   │   │   │   ├── platform_block.dart
│       │   │   │   │   └── star.dart
│       │   │   │   └── overlays/
│       │   │   │       ├── game_over.dart
│       │   │   │       ├── heart.dart
│       │   │   │       ├── hud.dart
│       │   │   │       └── main_menu.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── platformer.md
│       │   ├── step_1.md
│       │   ├── step_2.md
│       │   ├── step_3.md
│       │   ├── step_4.md
│       │   ├── step_5.md
│       │   ├── step_6.md
│       │   └── step_7.md
│       ├── space_shooter/
│       │   ├── app/
│       │   │   ├── analysis_options.yaml
│       │   │   ├── lib/
│       │   │   │   ├── main.dart
│       │   │   │   ├── step1/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step2/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step3/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step4/
│       │   │   │   │   └── main.dart
│       │   │   │   ├── step5/
│       │   │   │   │   └── main.dart
│       │   │   │   └── step6/
│       │   │   │       └── main.dart
│       │   │   ├── pubspec.yaml
│       │   │   └── web/
│       │   │       └── index.html
│       │   ├── space_shooter.md
│       │   ├── step_1.md
│       │   ├── step_2.md
│       │   ├── step_3.md
│       │   ├── step_4.md
│       │   ├── step_5.md
│       │   └── step_6.md
│       └── tutorials.md
├── examples/
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── assets/
│   │   ├── audio/
│   │   │   └── music/
│   │   │       └── bg_music.ogg
│   │   ├── images/
│   │   │   ├── animations/
│   │   │   │   ├── chopper.json
│   │   │   │   └── lottieLogo.json
│   │   │   └── parallax/
│   │   │       └── license.txt
│   │   ├── spine/
│   │   │   ├── LICENSE
│   │   │   ├── spineboy-pro.json
│   │   │   ├── spineboy-pro.skel
│   │   │   └── spineboy.atlas
│   │   ├── tiles/
│   │   │   ├── 0x72_DungeonTilesetII_v1.4.tsx
│   │   │   └── dungeon.tmx
│   │   └── yarn/
│   │       ├── advanced.yarn
│   │       ├── command_lifecycle.yarn
│   │       └── simple.yarn
│   ├── games/
│   │   ├── crystal_ball/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── crystal_ball.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       └── game/
│   │   │   │           ├── components/
│   │   │   │           │   ├── camera_target.dart
│   │   │   │           │   └── input_handler.dart
│   │   │   │           ├── constants.dart
│   │   │   │           ├── entities/
│   │   │   │           │   ├── ground.dart
│   │   │   │           │   └── the_ball.dart
│   │   │   │           ├── game.dart
│   │   │   │           └── post_processes/
│   │   │   │               ├── ball_glow.dart
│   │   │   │               ├── firefly.dart
│   │   │   │               ├── foreground_fog.dart
│   │   │   │               └── water.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── shaders/
│   │   │       ├── firefly.frag
│   │   │       ├── fog.frag
│   │   │       ├── ground.frag
│   │   │       └── the_ball.frag
│   │   ├── padracing/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── ball.dart
│   │   │   │   ├── car.dart
│   │   │   │   ├── game_colors.dart
│   │   │   │   ├── game_over.dart
│   │   │   │   ├── lap_line.dart
│   │   │   │   ├── lap_text.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── menu.dart
│   │   │   │   ├── menu_card.dart
│   │   │   │   ├── padracing_game.dart
│   │   │   │   ├── padracing_widget.dart
│   │   │   │   ├── tire.dart
│   │   │   │   ├── trail.dart
│   │   │   │   └── wall.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── scripts/
│   │   │       └── merge_files.sh
│   │   ├── rogue_shooter/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── components/
│   │   │   │   │   ├── bullet_component.dart
│   │   │   │   │   ├── enemy_component.dart
│   │   │   │   │   ├── enemy_creator.dart
│   │   │   │   │   ├── explosion_component.dart
│   │   │   │   │   ├── player_component.dart
│   │   │   │   │   ├── star_background_creator.dart
│   │   │   │   │   └── star_component.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── rogue_shooter_game.dart
│   │   │   │   └── rogue_shooter_widget.dart
│   │   │   └── pubspec.yaml
│   │   └── trex/
│   │       ├── README.md
│   │       ├── analysis_options.yaml
│   │       ├── lib/
│   │       │   ├── background/
│   │       │   │   ├── cloud.dart
│   │       │   │   ├── cloud_manager.dart
│   │       │   │   └── horizon.dart
│   │       │   ├── game_over.dart
│   │       │   ├── main.dart
│   │       │   ├── obstacle/
│   │       │   │   ├── obstacle.dart
│   │       │   │   ├── obstacle_manager.dart
│   │       │   │   └── obstacle_type.dart
│   │       │   ├── player.dart
│   │       │   ├── trex_game.dart
│   │       │   └── trex_widget.dart
│   │       └── pubspec.yaml
│   ├── lib/
│   │   ├── commons/
│   │   │   ├── commons.dart
│   │   │   └── ember.dart
│   │   ├── main.dart
│   │   ├── platform/
│   │   │   ├── page_provider.dart
│   │   │   ├── stub_provider.dart
│   │   │   └── web_provider.dart
│   │   └── stories/
│   │       ├── animations/
│   │       │   ├── animation_group_example.dart
│   │       │   ├── animations.dart
│   │       │   ├── aseprite_example.dart
│   │       │   ├── basic_animation_example.dart
│   │       │   └── benchmark_example.dart
│   │       ├── bridge_libraries/
│   │       │   ├── audio/
│   │       │   │   ├── audio.dart
│   │       │   │   └── basic_audio_example.dart
│   │       │   ├── flame_forge2d/
│   │       │   │   ├── animated_body_example.dart
│   │       │   │   ├── blob_example.dart
│   │       │   │   ├── camera_example.dart
│   │       │   │   ├── composition_example.dart
│   │       │   │   ├── contact_callbacks_example.dart
│   │       │   │   ├── domino_example.dart
│   │       │   │   ├── drag_callbacks_example.dart
│   │       │   │   ├── flame_forge2d.dart
│   │       │   │   ├── joints/
│   │       │   │   │   ├── constant_volume_joint.dart
│   │       │   │   │   ├── distance_joint.dart
│   │       │   │   │   ├── friction_joint.dart
│   │       │   │   │   ├── gear_joint.dart
│   │       │   │   │   ├── motor_joint.dart
│   │       │   │   │   ├── mouse_joint.dart
│   │       │   │   │   ├── prismatic_joint.dart
│   │       │   │   │   ├── pulley_joint.dart
│   │       │   │   │   ├── revolute_joint.dart
│   │       │   │   │   ├── rope_joint.dart
│   │       │   │   │   └── weld_joint.dart
│   │       │   │   ├── raycast_example.dart
│   │       │   │   ├── revolute_joint_with_motor_example.dart
│   │       │   │   ├── sprite_body_example.dart
│   │       │   │   ├── tap_callbacks_example.dart
│   │       │   │   ├── utils/
│   │       │   │   │   ├── balls.dart
│   │       │   │   │   ├── boundaries.dart
│   │       │   │   │   └── boxes.dart
│   │       │   │   └── widget_example.dart
│   │       │   ├── flame_isolate/
│   │       │   │   ├── isolate.dart
│   │       │   │   └── simple_isolate_example.dart
│   │       │   ├── flame_jenny/
│   │       │   │   ├── commons/
│   │       │   │   │   └── commons.dart
│   │       │   │   ├── components/
│   │       │   │   │   ├── button_row.dart
│   │       │   │   │   ├── command_lifecycle_dialogue_controller.dart
│   │       │   │   │   ├── dialogue_box.dart
│   │       │   │   │   ├── dialogue_button.dart
│   │       │   │   │   ├── dialogue_controller_component.dart
│   │       │   │   │   ├── dialogue_text_box.dart
│   │       │   │   │   └── menu_button.dart
│   │       │   │   ├── jenny.dart
│   │       │   │   ├── jenny_advanced_example.dart
│   │       │   │   ├── jenny_command_lifecycle_example.dart
│   │       │   │   └── jenny_simple_example.dart
│   │       │   ├── flame_lottie/
│   │       │   │   ├── lottie.dart
│   │       │   │   └── lottie_animation_example.dart
│   │       │   └── flame_spine/
│   │       │       ├── basic_spine_example.dart
│   │       │       ├── flame_spine.dart
│   │       │       └── shared_data_spine_example.dart
│   │       ├── camera_and_viewport/
│   │       │   ├── camera_and_viewport.dart
│   │       │   ├── camera_component_example.dart
│   │       │   ├── camera_component_properties_example.dart
│   │       │   ├── camera_follow_and_world_bounds.dart
│   │       │   ├── coordinate_systems_example.dart
│   │       │   ├── fixed_resolution_example.dart
│   │       │   ├── follow_component_example.dart
│   │       │   ├── static_components_example.dart
│   │       │   └── zoom_example.dart
│   │       ├── collision_detection/
│   │       │   ├── bouncing_ball_example.dart
│   │       │   ├── circles_example.dart
│   │       │   ├── collidable_animation_example.dart
│   │       │   ├── collision_detection.dart
│   │       │   ├── multiple_shapes_example.dart
│   │       │   ├── multiple_worlds_example.dart
│   │       │   ├── quadtree_example.dart
│   │       │   ├── raycast_example.dart
│   │       │   ├── raycast_light_example.dart
│   │       │   ├── raycast_max_distance_example.dart
│   │       │   ├── rays_in_shape_example.dart
│   │       │   └── raytrace_example.dart
│   │       ├── components/
│   │       │   ├── clip_component_example.dart
│   │       │   ├── component_pool_example.dart
│   │       │   ├── components.dart
│   │       │   ├── components_notifier_example.dart
│   │       │   ├── components_notifier_provider_example.dart
│   │       │   ├── composability_example.dart
│   │       │   ├── debug_example.dart
│   │       │   ├── has_visibility_example.dart
│   │       │   ├── icon_component_example.dart
│   │       │   ├── keys_example.dart
│   │       │   ├── look_at_example.dart
│   │       │   ├── look_at_smooth_example.dart
│   │       │   ├── priority_example.dart
│   │       │   ├── skip_text_box_component_example.dart
│   │       │   ├── spawn_component_example.dart
│   │       │   └── time_scale_example.dart
│   │       ├── effects/
│   │       │   ├── color_effect_example.dart
│   │       │   ├── combined_effect_example.dart
│   │       │   ├── dual_effect_removal_example.dart
│   │       │   ├── effect_controllers_example.dart
│   │       │   ├── effects.dart
│   │       │   ├── function_effect_example.dart
│   │       │   ├── glow_effect_example.dart
│   │       │   ├── hue_effect_example.dart
│   │       │   ├── move_effect_example.dart
│   │       │   ├── opacity_effect_example.dart
│   │       │   ├── remove_effect_example.dart
│   │       │   ├── rotate_around_effect_example.dart
│   │       │   ├── rotate_effect_example.dart
│   │       │   ├── scale_effect_example.dart
│   │       │   ├── sequence_effect_example.dart
│   │       │   └── size_effect_example.dart
│   │       ├── experimental/
│   │       │   ├── experimental.dart
│   │       │   ├── layout_component_example_1.dart
│   │       │   ├── layout_component_example_2.dart
│   │       │   ├── layout_component_example_3.dart
│   │       │   ├── layout_component_example_size.dart
│   │       │   └── shapes.dart
│   │       ├── games/
│   │       │   └── games.dart
│   │       ├── image/
│   │       │   ├── brighten.dart
│   │       │   ├── darken.dart
│   │       │   ├── image.dart
│   │       │   └── resize.dart
│   │       ├── input/
│   │       │   ├── advanced_button_example.dart
│   │       │   ├── double_tap_callbacks_example.dart
│   │       │   ├── drag_callbacks_example.dart
│   │       │   ├── gesture_hitboxes_example.dart
│   │       │   ├── hardware_keyboard_example.dart
│   │       │   ├── hover_callbacks_example.dart
│   │       │   ├── input.dart
│   │       │   ├── joystick_advanced_example.dart
│   │       │   ├── joystick_example.dart
│   │       │   ├── joystick_player.dart
│   │       │   ├── keyboard_example.dart
│   │       │   ├── keyboard_listener_component_example.dart
│   │       │   ├── mouse_cursor_example.dart
│   │       │   ├── mouse_movement_example.dart
│   │       │   ├── multitap_advanced_example.dart
│   │       │   ├── multitap_example.dart
│   │       │   ├── overlapping_tap_callbacks_example.dart
│   │       │   ├── scale_example.dart
│   │       │   ├── scroll_example.dart
│   │       │   ├── secondary_tap_callbacks_example.dart
│   │       │   └── tap_callbacks_example.dart
│   │       ├── layout/
│   │       │   ├── align_component.dart
│   │       │   └── layout.dart
│   │       ├── parallax/
│   │       │   ├── advanced_parallax_example.dart
│   │       │   ├── animation_parallax_example.dart
│   │       │   ├── basic_parallax_example.dart
│   │       │   ├── component_parallax_example.dart
│   │       │   ├── no_fcs_parallax_example.dart
│   │       │   ├── parallax.dart
│   │       │   ├── sandbox_layer_parallax_example.dart
│   │       │   └── small_parallax_example.dart
│   │       ├── rendering/
│   │       │   ├── decorator_hue_example.dart
│   │       │   ├── decorator_vs_effect_example.dart
│   │       │   ├── decorators.dart
│   │       │   ├── flip_sprite_example.dart
│   │       │   ├── isometric_tile_map_example.dart
│   │       │   ├── layers_example.dart
│   │       │   ├── nine_tile_box_custom_grid_example.dart
│   │       │   ├── nine_tile_box_example.dart
│   │       │   ├── particles_example.dart
│   │       │   ├── particles_interactive_example.dart
│   │       │   ├── rendering.dart
│   │       │   ├── rich_text_example.dart
│   │       │   ├── text_box_example.dart
│   │       │   └── text_example.dart
│   │       ├── router/
│   │       │   ├── router.dart
│   │       │   └── router_world_example.dart
│   │       ├── sprites/
│   │       │   ├── base64_sprite_example.dart
│   │       │   ├── basic_sprite_example.dart
│   │       │   ├── sprite_batch_example.dart
│   │       │   ├── sprite_batch_load_example.dart
│   │       │   ├── sprite_group_example.dart
│   │       │   ├── sprite_sheet_example.dart
│   │       │   └── sprites.dart
│   │       ├── structure/
│   │       │   ├── levels.dart
│   │       │   └── structure.dart
│   │       ├── svg/
│   │       │   ├── svg.dart
│   │       │   └── svg_component.dart
│   │       ├── system/
│   │       │   ├── overlays_example.dart
│   │       │   ├── pause_resume_example.dart
│   │       │   ├── resize_example.dart
│   │       │   ├── step_engine_example.dart
│   │       │   ├── system.dart
│   │       │   └── without_flame_game_example.dart
│   │       ├── tiled/
│   │       │   ├── flame_tiled_animation_example.dart
│   │       │   └── tiled.dart
│   │       ├── utils/
│   │       │   ├── timer_component_example.dart
│   │       │   ├── timer_example.dart
│   │       │   └── utils.dart
│   │       └── widgets/
│   │           ├── custom_painter_example.dart
│   │           ├── nine_tile_box_example.dart
│   │           ├── nine_tile_box_example_with_animation.dart
│   │           ├── paints.dart
│   │           ├── partial_sprite_widget_example.dart
│   │           ├── sprite_animation_widget_example.dart
│   │           ├── sprite_button_example.dart
│   │           ├── sprite_widget_example.dart
│   │           └── widgets.dart
│   ├── pubspec.yaml
│   └── web/
│       ├── CNAME
│       ├── index.html
│       └── manifest.json
├── packages/
│   ├── README.md
│   ├── flame/
│   │   ├── .min_coverage
│   │   ├── .pubignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── analysis_options.yaml
│   │   ├── benchmark/
│   │   │   ├── collision_detection_benchmark.dart
│   │   │   ├── components_at_point_benchmark.dart
│   │   │   ├── main.dart
│   │   │   ├── render_components_benchmark.dart
│   │   │   └── update_components_benchmark.dart
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── extension/
│   │   │   └── devtools/
│   │   │       └── config.yaml
│   │   ├── lib/
│   │   │   ├── cache.dart
│   │   │   ├── camera.dart
│   │   │   ├── collisions.dart
│   │   │   ├── components.dart
│   │   │   ├── debug.dart
│   │   │   ├── devtools.dart
│   │   │   ├── effects.dart
│   │   │   ├── events.dart
│   │   │   ├── experimental.dart
│   │   │   ├── extensions.dart
│   │   │   ├── flame.dart
│   │   │   ├── game.dart
│   │   │   ├── geometry.dart
│   │   │   ├── image_composition.dart
│   │   │   ├── input.dart
│   │   │   ├── layers.dart
│   │   │   ├── layout.dart
│   │   │   ├── math.dart
│   │   │   ├── palette.dart
│   │   │   ├── parallax.dart
│   │   │   ├── particles.dart
│   │   │   ├── post_process.dart
│   │   │   ├── rendering.dart
│   │   │   ├── sprite.dart
│   │   │   ├── src/
│   │   │   │   ├── anchor.dart
│   │   │   │   ├── cache/
│   │   │   │   │   ├── assets_cache.dart
│   │   │   │   │   ├── images.dart
│   │   │   │   │   ├── matrix_pool.dart
│   │   │   │   │   ├── memory_cache.dart
│   │   │   │   │   └── value_cache.dart
│   │   │   │   ├── camera/
│   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   ├── bounded_position_behavior.dart
│   │   │   │   │   │   ├── follow_behavior.dart
│   │   │   │   │   │   └── viewport_aware_bounds_behavior.dart
│   │   │   │   │   ├── camera_component.dart
│   │   │   │   │   ├── viewfinder.dart
│   │   │   │   │   ├── viewport.dart
│   │   │   │   │   ├── viewports/
│   │   │   │   │   │   ├── circular_viewport.dart
│   │   │   │   │   │   ├── fixed_aspect_ratio_viewport.dart
│   │   │   │   │   │   ├── fixed_resolution_viewport.dart
│   │   │   │   │   │   ├── fixed_size_viewport.dart
│   │   │   │   │   │   └── max_viewport.dart
│   │   │   │   │   └── world.dart
│   │   │   │   ├── collisions/
│   │   │   │   │   ├── broadphase/
│   │   │   │   │   │   ├── broadphase.dart
│   │   │   │   │   │   ├── prospect_pool.dart
│   │   │   │   │   │   ├── quadtree/
│   │   │   │   │   │   │   ├── has_quadtree_collision_detection.dart
│   │   │   │   │   │   │   ├── quad_tree_broadphase.dart
│   │   │   │   │   │   │   ├── quadtree.dart
│   │   │   │   │   │   │   └── quadtree_collision_detection.dart
│   │   │   │   │   │   └── sweep/
│   │   │   │   │   │       └── sweep.dart
│   │   │   │   │   ├── collision_callbacks.dart
│   │   │   │   │   ├── collision_detection.dart
│   │   │   │   │   ├── collision_passthrough.dart
│   │   │   │   │   ├── has_collision_detection.dart
│   │   │   │   │   ├── hitboxes/
│   │   │   │   │   │   ├── circle_hitbox.dart
│   │   │   │   │   │   ├── composite_hitbox.dart
│   │   │   │   │   │   ├── hitbox.dart
│   │   │   │   │   │   ├── polygon_hitbox.dart
│   │   │   │   │   │   ├── rectangle_hitbox.dart
│   │   │   │   │   │   ├── screen_hitbox.dart
│   │   │   │   │   │   └── shape_hitbox.dart
│   │   │   │   │   └── standard_collision_detection.dart
│   │   │   │   ├── components/
│   │   │   │   │   ├── clip_component.dart
│   │   │   │   │   ├── component_pool.dart
│   │   │   │   │   ├── components_notifier.dart
│   │   │   │   │   ├── core/
│   │   │   │   │   │   ├── component.dart
│   │   │   │   │   │   ├── component_key.dart
│   │   │   │   │   │   ├── component_render_context.dart
│   │   │   │   │   │   ├── component_tree_root.dart
│   │   │   │   │   │   └── recycled_queue.dart
│   │   │   │   │   ├── custom_painter_component.dart
│   │   │   │   │   ├── debug/
│   │   │   │   │   │   ├── child_counter_component.dart
│   │   │   │   │   │   └── time_track_component.dart
│   │   │   │   │   ├── fps_component.dart
│   │   │   │   │   ├── fps_text_component.dart
│   │   │   │   │   ├── icon_component.dart
│   │   │   │   │   ├── input/
│   │   │   │   │   │   ├── advanced_button_component.dart
│   │   │   │   │   │   ├── button_component.dart
│   │   │   │   │   │   ├── hud_button_component.dart
│   │   │   │   │   │   ├── hud_margin_component.dart
│   │   │   │   │   │   ├── joystick_component.dart
│   │   │   │   │   │   ├── keyboard_listener_component.dart
│   │   │   │   │   │   ├── sprite_button_component.dart
│   │   │   │   │   │   └── toggle_button_component.dart
│   │   │   │   │   ├── isometric_tile_map_component.dart
│   │   │   │   │   ├── mixins/
│   │   │   │   │   │   ├── component_viewport_margin.dart
│   │   │   │   │   │   ├── coordinate_transform.dart
│   │   │   │   │   │   ├── gesture_hitboxes.dart
│   │   │   │   │   │   ├── has_ancestor.dart
│   │   │   │   │   │   ├── has_auto_batched_children.dart
│   │   │   │   │   │   ├── has_decorator.dart
│   │   │   │   │   │   ├── has_game_ref.dart
│   │   │   │   │   │   ├── has_game_reference.dart
│   │   │   │   │   │   ├── has_paint.dart
│   │   │   │   │   │   ├── has_time_scale.dart
│   │   │   │   │   │   ├── has_visibility.dart
│   │   │   │   │   │   ├── has_world.dart
│   │   │   │   │   │   ├── ignore_events.dart
│   │   │   │   │   │   ├── keyboard_handler.dart
│   │   │   │   │   │   ├── notifier.dart
│   │   │   │   │   │   ├── parent_is_a.dart
│   │   │   │   │   │   ├── single_child_particle.dart
│   │   │   │   │   │   └── snapshot.dart
│   │   │   │   │   ├── nine_tile_box_component.dart
│   │   │   │   │   ├── parallax_component.dart
│   │   │   │   │   ├── particle_system_component.dart
│   │   │   │   │   ├── position_component.dart
│   │   │   │   │   ├── raster_sprite_component.dart
│   │   │   │   │   ├── router/
│   │   │   │   │   │   ├── overlay_route.dart
│   │   │   │   │   │   ├── route.dart
│   │   │   │   │   │   ├── router_component.dart
│   │   │   │   │   │   ├── value_route.dart
│   │   │   │   │   │   └── world_route.dart
│   │   │   │   │   ├── scroll_text_box_component.dart
│   │   │   │   │   ├── spawn_component.dart
│   │   │   │   │   ├── sprite_animation_component.dart
│   │   │   │   │   ├── sprite_animation_group_component.dart
│   │   │   │   │   ├── sprite_batch_component.dart
│   │   │   │   │   ├── sprite_component.dart
│   │   │   │   │   ├── sprite_group_component.dart
│   │   │   │   │   ├── text_box_component.dart
│   │   │   │   │   ├── text_component.dart
│   │   │   │   │   ├── text_element_component.dart
│   │   │   │   │   └── timer_component.dart
│   │   │   │   ├── device.dart
│   │   │   │   ├── devtools/
│   │   │   │   │   ├── connectors/
│   │   │   │   │   │   ├── component_count_connector.dart
│   │   │   │   │   │   ├── component_snapshot_connector.dart
│   │   │   │   │   │   ├── component_tree_connector.dart
│   │   │   │   │   │   ├── debug_mode_connector.dart
│   │   │   │   │   │   ├── game_loop_connector.dart
│   │   │   │   │   │   ├── overlay_navigation_connector.dart
│   │   │   │   │   │   └── position_component_attributes_connector.dart
│   │   │   │   │   ├── dev_tools_connector.dart
│   │   │   │   │   └── dev_tools_service.dart
│   │   │   │   ├── effects/
│   │   │   │   │   ├── anchor_by_effect.dart
│   │   │   │   │   ├── anchor_effect.dart
│   │   │   │   │   ├── anchor_to_effect.dart
│   │   │   │   │   ├── color_effect.dart
│   │   │   │   │   ├── combined_effect.dart
│   │   │   │   │   ├── component_effect.dart
│   │   │   │   │   ├── controllers/
│   │   │   │   │   │   ├── callback_controller.dart
│   │   │   │   │   │   ├── combined_effect_controller.dart
│   │   │   │   │   │   ├── curved_effect_controller.dart
│   │   │   │   │   │   ├── delayed_effect_controller.dart
│   │   │   │   │   │   ├── duration_effect_controller.dart
│   │   │   │   │   │   ├── effect_controller.dart
│   │   │   │   │   │   ├── infinite_effect_controller.dart
│   │   │   │   │   │   ├── linear_effect_controller.dart
│   │   │   │   │   │   ├── mixins/
│   │   │   │   │   │   │   └── has_single_child_effect_controller.dart
│   │   │   │   │   │   ├── pause_effect_controller.dart
│   │   │   │   │   │   ├── random_effect_controller.dart
│   │   │   │   │   │   ├── repeated_effect_controller.dart
│   │   │   │   │   │   ├── reverse_curved_effect_controller.dart
│   │   │   │   │   │   ├── reverse_linear_effect_controller.dart
│   │   │   │   │   │   ├── sequence_effect_controller.dart
│   │   │   │   │   │   ├── sine_effect_controller.dart
│   │   │   │   │   │   ├── speed_effect_controller.dart
│   │   │   │   │   │   └── zigzag_effect_controller.dart
│   │   │   │   │   ├── effect.dart
│   │   │   │   │   ├── effect_target.dart
│   │   │   │   │   ├── function_effect.dart
│   │   │   │   │   ├── glow_effect.dart
│   │   │   │   │   ├── hue_by_effect.dart
│   │   │   │   │   ├── hue_effect.dart
│   │   │   │   │   ├── hue_to_effect.dart
│   │   │   │   │   ├── measurable_effect.dart
│   │   │   │   │   ├── move_along_path_effect.dart
│   │   │   │   │   ├── move_by_effect.dart
│   │   │   │   │   ├── move_effect.dart
│   │   │   │   │   ├── move_to_effect.dart
│   │   │   │   │   ├── opacity_effect.dart
│   │   │   │   │   ├── provider_interfaces.dart
│   │   │   │   │   ├── remove_effect.dart
│   │   │   │   │   ├── rotate_around_effect.dart
│   │   │   │   │   ├── rotate_effect.dart
│   │   │   │   │   ├── scale_effect.dart
│   │   │   │   │   ├── sequence_effect.dart
│   │   │   │   │   ├── size_effect.dart
│   │   │   │   │   └── transform2d_effect.dart
│   │   │   │   ├── events/
│   │   │   │   │   ├── component_mixins/
│   │   │   │   │   │   ├── double_tap_callbacks.dart
│   │   │   │   │   │   ├── drag_callbacks.dart
│   │   │   │   │   │   ├── hover_callbacks.dart
│   │   │   │   │   │   ├── pointer_move_callbacks.dart
│   │   │   │   │   │   ├── scale_callbacks.dart
│   │   │   │   │   │   ├── secondary_tap_callbacks.dart
│   │   │   │   │   │   └── tap_callbacks.dart
│   │   │   │   │   ├── flame_drag_adapter.dart
│   │   │   │   │   ├── flame_game_mixins/
│   │   │   │   │   │   ├── double_tap_dispatcher.dart
│   │   │   │   │   │   ├── multi_drag_dispatcher.dart
│   │   │   │   │   │   ├── multi_tap_dispatcher.dart
│   │   │   │   │   │   ├── pointer_move_dispatcher.dart
│   │   │   │   │   │   ├── scale_dispatcher.dart
│   │   │   │   │   │   └── secondary_tap_dispatcher.dart
│   │   │   │   │   ├── game_mixins/
│   │   │   │   │   │   ├── multi_touch_drag_detector.dart
│   │   │   │   │   │   └── multi_touch_tap_detector.dart
│   │   │   │   │   ├── hardware_keyboard_detector.dart
│   │   │   │   │   ├── interfaces/
│   │   │   │   │   │   ├── multi_drag_listener.dart
│   │   │   │   │   │   ├── multi_tap_listener.dart
│   │   │   │   │   │   └── scale_listener.dart
│   │   │   │   │   ├── messages/
│   │   │   │   │   │   ├── displacement_event.dart
│   │   │   │   │   │   ├── double_tap_cancel_event.dart
│   │   │   │   │   │   ├── double_tap_down_event.dart
│   │   │   │   │   │   ├── double_tap_event.dart
│   │   │   │   │   │   ├── drag_cancel_event.dart
│   │   │   │   │   │   ├── drag_end_event.dart
│   │   │   │   │   │   ├── drag_start_event.dart
│   │   │   │   │   │   ├── drag_update_event.dart
│   │   │   │   │   │   ├── event.dart
│   │   │   │   │   │   ├── location_context_event.dart
│   │   │   │   │   │   ├── pointer_move_event.dart
│   │   │   │   │   │   ├── position_event.dart
│   │   │   │   │   │   ├── scale_end_event.dart
│   │   │   │   │   │   ├── scale_start_event.dart
│   │   │   │   │   │   ├── scale_update_event.dart
│   │   │   │   │   │   ├── secondary_tap_cancel_event.dart
│   │   │   │   │   │   ├── secondary_tap_down_event.dart
│   │   │   │   │   │   ├── secondary_tap_up_event.dart
│   │   │   │   │   │   ├── tap_cancel_event.dart
│   │   │   │   │   │   ├── tap_down_event.dart
│   │   │   │   │   │   └── tap_up_event.dart
│   │   │   │   │   ├── tagged_component.dart
│   │   │   │   │   └── tap_config.dart
│   │   │   │   ├── experimental/
│   │   │   │   │   ├── column_component.dart
│   │   │   │   │   ├── expanded_component.dart
│   │   │   │   │   ├── geometry/
│   │   │   │   │   │   └── shapes/
│   │   │   │   │   │       ├── circle.dart
│   │   │   │   │   │       ├── polygon.dart
│   │   │   │   │   │       ├── rectangle.dart
│   │   │   │   │   │       ├── rounded_rectangle.dart
│   │   │   │   │   │       └── shape.dart
│   │   │   │   │   ├── layout_component.dart
│   │   │   │   │   ├── linear_layout_component.dart
│   │   │   │   │   ├── padding_component.dart
│   │   │   │   │   ├── raycast_result.dart
│   │   │   │   │   ├── row_component.dart
│   │   │   │   │   └── single_layout_component.dart
│   │   │   │   ├── extensions/
│   │   │   │   │   ├── aabb.dart
│   │   │   │   │   ├── canvas.dart
│   │   │   │   │   ├── color.dart
│   │   │   │   │   ├── double.dart
│   │   │   │   │   ├── fragment_shader.dart
│   │   │   │   │   ├── image.dart
│   │   │   │   │   ├── list.dart
│   │   │   │   │   ├── matrix4.dart
│   │   │   │   │   ├── offset.dart
│   │   │   │   │   ├── paint.dart
│   │   │   │   │   ├── path.dart
│   │   │   │   │   ├── picture.dart
│   │   │   │   │   ├── random.dart
│   │   │   │   │   ├── rect.dart
│   │   │   │   │   ├── rectangle.dart
│   │   │   │   │   ├── size.dart
│   │   │   │   │   └── vector2.dart
│   │   │   │   ├── flame.dart
│   │   │   │   ├── game/
│   │   │   │   │   ├── flame_game.dart
│   │   │   │   │   ├── game.dart
│   │   │   │   │   ├── game_loop.dart
│   │   │   │   │   ├── game_render_box.dart
│   │   │   │   │   ├── game_widget/
│   │   │   │   │   │   ├── game_widget.dart
│   │   │   │   │   │   └── gesture_detector_builder.dart
│   │   │   │   │   ├── mixins/
│   │   │   │   │   │   ├── has_performance_tracker.dart
│   │   │   │   │   │   ├── keyboard.dart
│   │   │   │   │   │   └── single_game_instance.dart
│   │   │   │   │   ├── notifying_vector2.dart
│   │   │   │   │   ├── overlay_manager.dart
│   │   │   │   │   └── transform2d.dart
│   │   │   │   ├── geometry/
│   │   │   │   │   ├── circle_component.dart
│   │   │   │   │   ├── constants.dart
│   │   │   │   │   ├── line.dart
│   │   │   │   │   ├── line_segment.dart
│   │   │   │   │   ├── polygon_component.dart
│   │   │   │   │   ├── polygon_ray_intersection.dart
│   │   │   │   │   ├── ray2.dart
│   │   │   │   │   ├── rectangle_component.dart
│   │   │   │   │   ├── shape_component.dart
│   │   │   │   │   └── shape_intersections.dart
│   │   │   │   ├── gestures/
│   │   │   │   │   ├── detectors.dart
│   │   │   │   │   └── events.dart
│   │   │   │   ├── image_composition.dart
│   │   │   │   ├── layers/
│   │   │   │   │   ├── layer.dart
│   │   │   │   │   └── processors.dart
│   │   │   │   ├── layout/
│   │   │   │   │   └── align_component.dart
│   │   │   │   ├── math/
│   │   │   │   │   ├── block.dart
│   │   │   │   │   ├── random_fallback.dart
│   │   │   │   │   ├── solve_cubic.dart
│   │   │   │   │   ├── solve_quadratic.dart
│   │   │   │   │   └── tmp_vector2.dart
│   │   │   │   ├── nine_tile_box.dart
│   │   │   │   ├── palette.dart
│   │   │   │   ├── parallax.dart
│   │   │   │   ├── particles/
│   │   │   │   │   ├── accelerated_particle.dart
│   │   │   │   │   ├── circle_particle.dart
│   │   │   │   │   ├── component_particle.dart
│   │   │   │   │   ├── composed_particle.dart
│   │   │   │   │   ├── computed_particle.dart
│   │   │   │   │   ├── curved_particle.dart
│   │   │   │   │   ├── image_particle.dart
│   │   │   │   │   ├── moving_particle.dart
│   │   │   │   │   ├── paint_particle.dart
│   │   │   │   │   ├── particle.dart
│   │   │   │   │   ├── rotating_particle.dart
│   │   │   │   │   ├── scaled_particle.dart
│   │   │   │   │   ├── scaling_particle.dart
│   │   │   │   │   ├── sprite_animation_particle.dart
│   │   │   │   │   ├── sprite_particle.dart
│   │   │   │   │   └── translated_particle.dart
│   │   │   │   ├── post_process/
│   │   │   │   │   ├── post_process.dart
│   │   │   │   │   └── post_process_component.dart
│   │   │   │   ├── rendering/
│   │   │   │   │   ├── decorator.dart
│   │   │   │   │   ├── hue_decorator.dart
│   │   │   │   │   ├── mutable_transform.dart
│   │   │   │   │   ├── paint_decorator.dart
│   │   │   │   │   ├── rotate3d_decorator.dart
│   │   │   │   │   ├── shadow3d_decorator.dart
│   │   │   │   │   └── transform2d_decorator.dart
│   │   │   │   ├── sprite.dart
│   │   │   │   ├── sprite_animation.dart
│   │   │   │   ├── sprite_animation_ticker.dart
│   │   │   │   ├── sprite_batch.dart
│   │   │   │   ├── sprite_sheet.dart
│   │   │   │   ├── text/
│   │   │   │   │   ├── common/
│   │   │   │   │   │   ├── glyph.dart
│   │   │   │   │   │   ├── line_metrics.dart
│   │   │   │   │   │   ├── sprite_font.dart
│   │   │   │   │   │   └── utils.dart
│   │   │   │   │   ├── elements/
│   │   │   │   │   │   ├── block_element.dart
│   │   │   │   │   │   ├── group_element.dart
│   │   │   │   │   │   ├── group_text_element.dart
│   │   │   │   │   │   ├── inline_text_element.dart
│   │   │   │   │   │   ├── rect_element.dart
│   │   │   │   │   │   ├── rrect_element.dart
│   │   │   │   │   │   ├── sprite_font_text_element.dart
│   │   │   │   │   │   ├── text_element.dart
│   │   │   │   │   │   └── text_painter_text_element.dart
│   │   │   │   │   ├── nodes/
│   │   │   │   │   │   ├── block_node.dart
│   │   │   │   │   │   ├── bold_text_node.dart
│   │   │   │   │   │   ├── code_text_node.dart
│   │   │   │   │   │   ├── column_node.dart
│   │   │   │   │   │   ├── custom_text_node.dart
│   │   │   │   │   │   ├── document_root.dart
│   │   │   │   │   │   ├── group_text_node.dart
│   │   │   │   │   │   ├── header_node.dart
│   │   │   │   │   │   ├── inline_text_node.dart
│   │   │   │   │   │   ├── italic_text_node.dart
│   │   │   │   │   │   ├── paragraph_node.dart
│   │   │   │   │   │   ├── plain_text_node.dart
│   │   │   │   │   │   ├── strikethrough_text_node.dart
│   │   │   │   │   │   ├── text_block_node.dart
│   │   │   │   │   │   └── text_node.dart
│   │   │   │   │   ├── renderers/
│   │   │   │   │   │   ├── sprite_font_renderer.dart
│   │   │   │   │   │   ├── text_paint.dart
│   │   │   │   │   │   ├── text_renderer.dart
│   │   │   │   │   │   └── text_renderer_factory.dart
│   │   │   │   │   └── styles/
│   │   │   │   │       ├── background_style.dart
│   │   │   │   │       ├── block_style.dart
│   │   │   │   │       ├── document_style.dart
│   │   │   │   │       ├── flame_text_style.dart
│   │   │   │   │       ├── inline_text_style.dart
│   │   │   │   │       └── overflow.dart
│   │   │   │   ├── timer.dart
│   │   │   │   └── widgets/
│   │   │   │       ├── animation_widget.dart
│   │   │   │       ├── base_future_builder.dart
│   │   │   │       ├── components_notifier_builder.dart
│   │   │   │       ├── nine_tile_box.dart
│   │   │   │       ├── sprite_button.dart
│   │   │   │       ├── sprite_painter.dart
│   │   │   │       └── sprite_widget.dart
│   │   │   ├── text.dart
│   │   │   ├── timer.dart
│   │   │   └── widgets.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── _resources/
│   │       │   ├── cave_ace.fa
│   │       │   ├── chopper.json
│   │       │   ├── custom_flame_game.dart
│   │       │   ├── load_image.dart
│   │       │   └── test_text_file.txt
│   │       ├── anchor_test.dart
│   │       ├── cache/
│   │       │   ├── assets_cache_test.dart
│   │       │   ├── images_test.dart
│   │       │   └── memory_cache_test.dart
│   │       ├── camera/
│   │       │   ├── behaviors/
│   │       │   │   ├── bounded_position_behavior_test.dart
│   │       │   │   ├── follow_behavior_test.dart
│   │       │   │   └── viewport_aware_bounds_behavior_test.dart
│   │       │   ├── camera_component_test.dart
│   │       │   ├── camera_test_helpers.dart
│   │       │   ├── viewfinder_test.dart
│   │       │   ├── viewports/
│   │       │   │   ├── circular_viewport_test.dart
│   │       │   │   ├── fixed_aspect_ratio_viewport_test.dart
│   │       │   │   ├── fixed_resolution_viewport_test.dart
│   │       │   │   ├── fixed_size_viewport_test.dart
│   │       │   │   └── max_viewport_test.dart
│   │       │   └── world_test.dart
│   │       ├── collisions/
│   │       │   ├── collision_callback_benchmark_test.dart
│   │       │   ├── collision_callback_test.dart
│   │       │   ├── collision_detection_test.dart
│   │       │   ├── collision_passthrough_test.dart
│   │       │   ├── collision_test_helpers.dart
│   │       │   ├── collision_type_test.dart
│   │       │   └── screen_hibox_test.dart
│   │       ├── components/
│   │       │   ├── advanced_button_component_test.dart
│   │       │   ├── button_component_test.dart
│   │       │   ├── clip_component_test.dart
│   │       │   ├── component_pool_test.dart
│   │       │   ├── component_render_context_test.dart
│   │       │   ├── component_test.dart
│   │       │   ├── components_notifier_test.dart
│   │       │   ├── custom_painter_component_test.dart
│   │       │   ├── element_component_test.dart
│   │       │   ├── fps_component_test.dart
│   │       │   ├── has_auto_batched_children_test.dart
│   │       │   ├── hud_button_component_test.dart
│   │       │   ├── hud_margin_component_test.dart
│   │       │   ├── icon_component_test.dart
│   │       │   ├── input/
│   │       │   │   └── sprite_button_component_test.dart
│   │       │   ├── isometric_tile_map_component_test.dart
│   │       │   ├── joystick_component_test.dart
│   │       │   ├── keyboard_listener_component_test.dart
│   │       │   ├── mixins/
│   │       │   │   ├── component_viewport_margin_test.dart
│   │       │   │   ├── gesture_hitboxes_test.dart
│   │       │   │   ├── has_ancestor_test.dart
│   │       │   │   ├── has_decorator_test.dart
│   │       │   │   ├── has_game_ref_test.dart
│   │       │   │   ├── has_paint_test.dart
│   │       │   │   ├── has_time_scale_test.dart
│   │       │   │   ├── has_visibility_test.dart
│   │       │   │   ├── parent_is_a_test.dart
│   │       │   │   └── snapshot_test.dart
│   │       │   ├── parallax_test.dart
│   │       │   ├── particle_system_component_test.dart
│   │       │   ├── position_component_test.dart
│   │       │   ├── post_process_component_test.dart
│   │       │   ├── priority_test.dart
│   │       │   ├── rectangle_component_test.dart
│   │       │   ├── route_test.dart
│   │       │   ├── router_component_test.dart
│   │       │   ├── scroll_text_box_component_test.dart
│   │       │   ├── shape_component_test.dart
│   │       │   ├── spawn_component_test.dart
│   │       │   ├── sprite_animation_component_test.dart
│   │       │   ├── sprite_animation_group_component_test.dart
│   │       │   ├── sprite_component_test.dart
│   │       │   ├── sprite_group_component_test.dart
│   │       │   ├── text_box_component_test.dart
│   │       │   ├── text_component_test.dart
│   │       │   ├── timer_component_test.dart
│   │       │   ├── toogle_button_component_test.dart
│   │       │   ├── value_route_test.dart
│   │       │   └── world_route_test.dart
│   │       ├── custom_component.dart
│   │       ├── effects/
│   │       │   ├── anchor_by_effect_test.dart
│   │       │   ├── anchor_to_effect_test.dart
│   │       │   ├── color_effect_test.dart
│   │       │   ├── combined_effect_test.dart
│   │       │   ├── controllers/
│   │       │   │   ├── curved_effect_controller_test.dart
│   │       │   │   ├── delayed_effect_controller_test.dart
│   │       │   │   ├── effect_controller_test.dart
│   │       │   │   ├── infinite_effect_controller_test.dart
│   │       │   │   ├── linear_effect_controller_test.dart
│   │       │   │   ├── mixins/
│   │       │   │   │   └── has_single_child_effect_controller_test.dart
│   │       │   │   ├── random_effect_controller_test.dart
│   │       │   │   ├── repeated_effect_controller_test.dart
│   │       │   │   ├── sequence_effect_controller_test.dart
│   │       │   │   ├── sine_effect_controller_test.dart
│   │       │   │   ├── speed_effect_controller_test.dart
│   │       │   │   └── zigzag_effect_controller_test.dart
│   │       │   ├── effect_test.dart
│   │       │   ├── function_effect_test.dart
│   │       │   ├── glow_effect.dart
│   │       │   ├── hue_effect_test.dart
│   │       │   ├── move_along_path_effect_test.dart
│   │       │   ├── move_by_effect_test.dart
│   │       │   ├── move_to_effect_test.dart
│   │       │   ├── opacity_effect_test.dart
│   │       │   ├── remove_effect_test.dart
│   │       │   ├── rotate_around_effect_test.dart
│   │       │   ├── rotate_effect_test.dart
│   │       │   ├── scale_effect_test.dart
│   │       │   ├── sequence_effect_test.dart
│   │       │   ├── size_effect_test.dart
│   │       │   └── transform2d_effect_test.dart
│   │       ├── events/
│   │       │   ├── component_mixins/
│   │       │   │   ├── double_tap_callbacks_test.dart
│   │       │   │   ├── drag_callbacks_test.dart
│   │       │   │   ├── hover_callbacks_test.dart
│   │       │   │   ├── ignore_events_test.dart
│   │       │   │   ├── pointer_move_callbacks_test.dart
│   │       │   │   ├── scale_callbacks_test.dart
│   │       │   │   ├── secondary_tap_callbacks_test.dart
│   │       │   │   └── tap_callbacks_test.dart
│   │       │   ├── game_mixins/
│   │       │   │   ├── multi_touch_drag_detector_test.dart
│   │       │   │   └── multi_touch_tap_detector_test.dart
│   │       │   ├── hardware_keyboard_detector_test.dart
│   │       │   └── tap_config_test.dart
│   │       ├── experimental/
│   │       │   ├── geometry/
│   │       │   │   └── shapes/
│   │       │   │       ├── circle_test.dart
│   │       │   │       ├── polygon_test.dart
│   │       │   │       ├── rectangle_test.dart
│   │       │   │       └── rounded_rectangle_test.dart
│   │       │   ├── has_game_reference_test.dart
│   │       │   ├── has_world_test.dart
│   │       │   ├── linear_layout_component_test.dart
│   │       │   ├── linear_layout_component_test_helpers.dart
│   │       │   └── padding_component_test.dart
│   │       ├── extensions/
│   │       │   ├── aabb_test.dart
│   │       │   ├── canvas_test.dart
│   │       │   ├── color_test.dart
│   │       │   ├── double_test.dart
│   │       │   ├── image_extension_test.dart
│   │       │   ├── list_test.dart
│   │       │   ├── matrix4_test.dart
│   │       │   ├── offset_test.dart
│   │       │   ├── paint_test.dart
│   │       │   ├── picture_extension_test.dart
│   │       │   ├── random_test.dart
│   │       │   ├── rect_test.dart
│   │       │   ├── rectangle_test.dart
│   │       │   ├── size_test.dart
│   │       │   └── vector2_test.dart
│   │       ├── fixtures/
│   │       │   └── fixture_reader.dart
│   │       ├── game/
│   │       │   ├── flame_game_test.dart
│   │       │   ├── game_loop_test.dart
│   │       │   ├── game_render_box_test.dart
│   │       │   ├── game_widget/
│   │       │   │   ├── game_widget_controlled_lifecycle_test.dart
│   │       │   │   ├── game_widget_drag_test.dart
│   │       │   │   ├── game_widget_hot_reload_test.dart
│   │       │   │   ├── game_widget_keyboard_test.dart
│   │       │   │   ├── game_widget_lifecycle_test.dart
│   │       │   │   ├── game_widget_mouse_cursor_test.dart
│   │       │   │   ├── game_widget_pause_test.dart
│   │       │   │   ├── game_widget_tap_passthrough_test.dart
│   │       │   │   ├── game_widget_tap_test.dart
│   │       │   │   └── game_widget_test.dart
│   │       │   ├── mixins/
│   │       │   │   ├── has_performance_tracker_test.dart
│   │       │   │   ├── keyboard_test.dart
│   │       │   │   └── single_game_instance_test.dart
│   │       │   ├── notifying_vector2_test.dart
│   │       │   ├── overlays_manager_test.dart
│   │       │   └── transform2d_test.dart
│   │       ├── geometry/
│   │       │   ├── line_segment_test.dart
│   │       │   └── ray2_test.dart
│   │       ├── gestures/
│   │       │   └── detectors_test.dart
│   │       ├── image_composition_test.dart
│   │       ├── layout/
│   │       │   └── align_component_test.dart
│   │       ├── math/
│   │       │   ├── recycled_queue_test.dart
│   │       │   ├── solve_cubic_test.dart
│   │       │   └── solve_quadratic_test.dart
│   │       ├── nine_tile_box_test.dart
│   │       ├── particles/
│   │       │   ├── circle_particle_test.dart
│   │       │   ├── component_particle_test.dart
│   │       │   ├── composed_particle_test.dart
│   │       │   ├── computed_particle_test.dart
│   │       │   ├── curved_particle_test.dart
│   │       │   ├── moving_particle_test.dart
│   │       │   ├── scaled_particle_test.dart
│   │       │   ├── scaling_particle_test.dart
│   │       │   └── sprite_particle_test.dart
│   │       ├── post_process/
│   │       │   └── post_process_test.dart
│   │       ├── raster_sprite_test.dart
│   │       ├── rendering/
│   │       │   ├── hue_decorator_test.dart
│   │       │   ├── paint_decorator_test.dart
│   │       │   ├── rotate3d_decorator_test.dart
│   │       │   └── shadow3d_decorator_test.dart
│   │       ├── sprite_animation_test.dart
│   │       ├── sprite_animation_ticker_test.dart
│   │       ├── sprite_batch_test.dart
│   │       ├── sprite_test.dart
│   │       ├── spritesheet_test.dart
│   │       ├── text/
│   │       │   ├── common/
│   │       │   │   ├── line_metrics_test.dart
│   │       │   │   └── sprite_font_test.dart
│   │       │   ├── sprite_font_renderer_test.dart
│   │       │   ├── text_element_test.dart
│   │       │   ├── text_layouting_test.dart
│   │       │   ├── text_paint_test.dart
│   │       │   ├── text_renderer_test.dart
│   │       │   └── text_style_test.dart
│   │       ├── timer_test.dart
│   │       └── widgets/
│   │           ├── components_notifier_builder_test.dart
│   │           ├── loading_widget.dart
│   │           ├── nine_tile_box_widget_test.dart
│   │           ├── sprite_animation_widget_test.dart
│   │           ├── sprite_button_test.dart
│   │           └── sprite_widget_test.dart
│   ├── flame_3d/
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── ROADMAP.md
│   │   ├── analysis_options.yaml
│   │   ├── assets/
│   │   │   └── shaders/
│   │   │       └── spatial_material.shaderbundle
│   │   ├── bin/
│   │   │   └── build_shaders.dart
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── objects/
│   │   │   │       └── skeleton.glb
│   │   │   ├── lib/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── commands.dart
│   │   │   │   │   ├── destroy_command.dart
│   │   │   │   │   ├── reset_command.dart
│   │   │   │   │   └── setup_command.dart
│   │   │   │   ├── components/
│   │   │   │   │   ├── crate.dart
│   │   │   │   │   ├── player.dart
│   │   │   │   │   ├── rendered_point_light.dart
│   │   │   │   │   ├── room_bounds.dart
│   │   │   │   │   ├── rotating_light.dart
│   │   │   │   │   └── simple_hud.dart
│   │   │   │   ├── example_camera_3d.dart
│   │   │   │   ├── example_game_3d.dart
│   │   │   │   ├── keyboard_utils.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── scenarios/
│   │   │   │       ├── boxes_scenario.dart
│   │   │   │       ├── colors_scenario.dart
│   │   │   │       ├── game_scenario.dart
│   │   │   │       └── models_scenario.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── camera.dart
│   │   │   ├── components.dart
│   │   │   ├── core.dart
│   │   │   ├── extensions.dart
│   │   │   ├── game.dart
│   │   │   ├── graphics.dart
│   │   │   ├── model.dart
│   │   │   ├── parser.dart
│   │   │   ├── resources.dart
│   │   │   └── src/
│   │   │       ├── camera/
│   │   │       │   ├── camera_component_3d.dart
│   │   │       │   ├── first_person_camera.dart
│   │   │       │   ├── third_person_camera.dart
│   │   │       │   └── world_3d.dart
│   │   │       ├── components/
│   │   │       │   ├── component_3d.dart
│   │   │       │   ├── light_component.dart
│   │   │       │   ├── line_3d.dart
│   │   │       │   ├── mesh_component.dart
│   │   │       │   └── object_3d.dart
│   │   │       ├── extensions/
│   │   │       │   ├── aabb3.dart
│   │   │       │   ├── color.dart
│   │   │       │   ├── matrix4.dart
│   │   │       │   ├── quaternion.dart
│   │   │       │   ├── vector2.dart
│   │   │       │   ├── vector3.dart
│   │   │       │   └── vector4.dart
│   │   │       ├── game/
│   │   │       │   ├── flame_game_3d.dart
│   │   │       │   ├── notifying_quaternion.dart
│   │   │       │   ├── notifying_vector3.dart
│   │   │       │   └── transform_3d.dart
│   │   │       ├── graphics/
│   │   │       │   ├── gpu_context_wrapper.dart
│   │   │       │   ├── graphics_device.dart
│   │   │       │   └── joints_info.dart
│   │   │       ├── model/
│   │   │       │   ├── animation_state.dart
│   │   │       │   ├── model.dart
│   │   │       │   ├── model_animation.dart
│   │   │       │   ├── model_component.dart
│   │   │       │   └── model_node.dart
│   │   │       ├── parser/
│   │   │       │   ├── glb_parser.dart
│   │   │       │   ├── gltf/
│   │   │       │   │   ├── accessor.dart
│   │   │       │   │   ├── accessor_type.dart
│   │   │       │   │   ├── alpha_mode.dart
│   │   │       │   │   ├── animation.dart
│   │   │       │   │   ├── animation_channel.dart
│   │   │       │   │   ├── animation_interpolation.dart
│   │   │       │   │   ├── animation_path.dart
│   │   │       │   │   ├── animation_sampler.dart
│   │   │       │   │   ├── animation_target.dart
│   │   │       │   │   ├── buffer.dart
│   │   │       │   │   ├── buffer_view.dart
│   │   │       │   │   ├── buffer_view_target.dart
│   │   │       │   │   ├── camera.dart
│   │   │       │   │   ├── camera_orthographic.dart
│   │   │       │   │   ├── camera_perspective.dart
│   │   │       │   │   ├── camera_type.dart
│   │   │       │   │   ├── component_type.dart
│   │   │       │   │   ├── glb_chunk.dart
│   │   │       │   │   ├── gltf_node.dart
│   │   │       │   │   ├── gltf_node_with_data.dart
│   │   │       │   │   ├── gltf_ref.dart
│   │   │       │   │   ├── gltf_root.dart
│   │   │       │   │   ├── image.dart
│   │   │       │   │   ├── mag_filter.dart
│   │   │       │   │   ├── material.dart
│   │   │       │   │   ├── mesh.dart
│   │   │       │   │   ├── mime_type.dart
│   │   │       │   │   ├── min_filter.dart
│   │   │       │   │   ├── morph_target.dart
│   │   │       │   │   ├── node.dart
│   │   │       │   │   ├── normal_texture_info.dart
│   │   │       │   │   ├── occlusion_texture_info.dart
│   │   │       │   │   ├── pbr_metallic_roughness.dart
│   │   │       │   │   ├── primitive.dart
│   │   │       │   │   ├── primitive_mode.dart
│   │   │       │   │   ├── sampler.dart
│   │   │       │   │   ├── scene.dart
│   │   │       │   │   ├── skin.dart
│   │   │       │   │   ├── sparse_accessor.dart
│   │   │       │   │   ├── sparse_accessor_indices.dart
│   │   │       │   │   ├── sparse_accessor_values.dart
│   │   │       │   │   ├── texture.dart
│   │   │       │   │   ├── texture_format.dart
│   │   │       │   │   ├── texture_info.dart
│   │   │       │   │   ├── texture_target.dart
│   │   │       │   │   ├── texture_type.dart
│   │   │       │   │   └── wrap_mode.dart
│   │   │       │   ├── gltf_parser.dart
│   │   │       │   ├── model_parser.dart
│   │   │       │   ├── obj/
│   │   │       │   │   └── surface_tool.dart
│   │   │       │   └── obj_parser.dart
│   │   │       └── resources/
│   │   │           ├── light/
│   │   │           │   ├── ambient_light.dart
│   │   │           │   ├── light.dart
│   │   │           │   ├── light_source.dart
│   │   │           │   ├── lighting_info.dart
│   │   │           │   └── point_light.dart
│   │   │           ├── light.dart
│   │   │           ├── material/
│   │   │           │   ├── material.dart
│   │   │           │   └── spatial_material.dart
│   │   │           ├── material.dart
│   │   │           ├── mesh/
│   │   │           │   ├── cone_mesh.dart
│   │   │           │   ├── cuboid_mesh.dart
│   │   │           │   ├── cylinder_mesh.dart
│   │   │           │   ├── mesh.dart
│   │   │           │   ├── plane_mesh.dart
│   │   │           │   ├── sphere_mesh.dart
│   │   │           │   ├── surface.dart
│   │   │           │   └── vertex.dart
│   │   │           ├── mesh.dart
│   │   │           ├── resource.dart
│   │   │           ├── shader/
│   │   │           │   ├── shader.dart
│   │   │           │   ├── uniform_array.dart
│   │   │           │   ├── uniform_instance.dart
│   │   │           │   ├── uniform_sampler.dart
│   │   │           │   ├── uniform_slot.dart
│   │   │           │   └── uniform_value.dart
│   │   │           ├── shader.dart
│   │   │           ├── texture/
│   │   │           │   ├── color_texture.dart
│   │   │           │   ├── image_texture.dart
│   │   │           │   └── texture.dart
│   │   │           └── texture.dart
│   │   ├── pubspec.yaml
│   │   ├── shaders/
│   │   │   ├── spatial_material.frag
│   │   │   └── spatial_material.vert
│   │   └── test/
│   │       ├── components/
│   │       │   └── line_3d_test.dart
│   │       ├── mesh/
│   │       │   └── cone_mesh_test.dart
│   │       ├── quaternion_extensions_test.dart
│   │       ├── resources/
│   │       │   └── shader/
│   │       │       └── uniform_binding_test.dart
│   │       ├── transform_3d_test.dart
│   │       ├── vector2_extensions_test.dart
│   │       ├── vector3_extensions_test.dart
│   │       └── vector4_extensions_test.dart
│   ├── flame_audio/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── CREDITS.md
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── audio/
│   │   │   │       └── music/
│   │   │   │           └── bg_music.ogg
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── bgm.dart
│   │   │   └── flame_audio.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_audio_test.dart
│   ├── flame_behavior_tree/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── behavior_tree/
│   │   │   ├── CHANGELOG.md
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── example/
│   │   │   │   └── behavior_tree_example.dart
│   │   │   ├── lib/
│   │   │   │   ├── behavior_tree.dart
│   │   │   │   └── src/
│   │   │   │       ├── base_node.dart
│   │   │   │       ├── blackboard.dart
│   │   │   │       ├── blackboard_provider.dart
│   │   │   │       ├── composites/
│   │   │   │       │   ├── selector.dart
│   │   │   │       │   └── sequence.dart
│   │   │   │       ├── decorators/
│   │   │   │       │   ├── inverter.dart
│   │   │   │       │   └── limiter.dart
│   │   │   │       ├── node.dart
│   │   │   │       └── tasks/
│   │   │   │           ├── async_task.dart
│   │   │   │           ├── condition.dart
│   │   │   │           └── task.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── async_task_test.dart
│   │   │       ├── blackboard_test.dart
│   │   │       ├── conditon_test.dart
│   │   │       ├── inverter_test.dart
│   │   │       ├── limiter_test.dart
│   │   │       ├── selector_test.dart
│   │   │       ├── sequence_test.dart
│   │   │       └── task_test.dart
│   │   ├── example/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_behavior_tree.dart
│   │   │   └── src/
│   │   │       └── has_behavior_tree.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── has_behavior_tree_test.dart
│   ├── flame_behaviors/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── behaviors/
│   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   └── spawning_behavior.dart
│   │   │   │   ├── entities/
│   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   │   ├── moving_behavior.dart
│   │   │   │   │   │   ├── rotating_behavior.dart
│   │   │   │   │   │   └── screen_colliding_behavior.dart
│   │   │   │   │   ├── circle/
│   │   │   │   │   │   ├── behaviors/
│   │   │   │   │   │   │   ├── behaviors.dart
│   │   │   │   │   │   │   ├── circle_collision_behavior.dart
│   │   │   │   │   │   │   ├── dragging_behavior.dart
│   │   │   │   │   │   │   ├── rectangle_collision_behavior.dart
│   │   │   │   │   │   │   └── tapping_behavior.dart
│   │   │   │   │   │   └── circle.dart
│   │   │   │   │   ├── entities.dart
│   │   │   │   │   └── rectangle/
│   │   │   │   │       ├── behaviors/
│   │   │   │   │       │   ├── behaviors.dart
│   │   │   │   │       │   ├── circle_colliding_behavior.dart
│   │   │   │   │       │   ├── freezing_behavior.dart
│   │   │   │   │       │   └── rectangle_colliding_behavior.dart
│   │   │   │   │       └── rectangle.dart
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_behaviors.dart
│   │   │   └── src/
│   │   │       ├── behaviors/
│   │   │       │   ├── behavior.dart
│   │   │       │   ├── behaviors.dart
│   │   │       │   ├── events/
│   │   │       │   │   ├── draggable_behavior.dart
│   │   │       │   │   ├── events.dart
│   │   │       │   │   ├── hoverable_behavior.dart
│   │   │       │   │   └── tappable_behavior.dart
│   │   │       │   └── propagating_collision_behavior.dart
│   │   │       └── entity.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   └── throws_behavior_not_found_for.dart
│   │       └── src/
│   │           ├── behaviors/
│   │           │   ├── behavior_test.dart
│   │           │   ├── events/
│   │           │   │   ├── draggable_behavior_test.dart
│   │           │   │   ├── hoverable_behavior_test.dart
│   │           │   │   └── tappable_behavior_test.dart
│   │           │   └── propagating_collision_behavior_test.dart
│   │           └── entity_test.dart
│   ├── flame_bloc/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── DEPRECATED_README.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       ├── game/
│   │   │   │       │   ├── components/
│   │   │   │       │   │   ├── bullet.dart
│   │   │   │       │   │   ├── enemy.dart
│   │   │   │       │   │   ├── enemy_creator.dart
│   │   │   │       │   │   ├── explosion.dart
│   │   │   │       │   │   └── player.dart
│   │   │   │       │   └── game.dart
│   │   │   │       ├── game.dart
│   │   │   │       ├── game_stats/
│   │   │   │       │   ├── bloc/
│   │   │   │       │   │   ├── game_stats_bloc.dart
│   │   │   │       │   │   ├── game_stats_event.dart
│   │   │   │       │   │   └── game_stats_state.dart
│   │   │   │       │   └── view/
│   │   │   │       │       └── game_stat.dart
│   │   │   │       └── inventory/
│   │   │   │           ├── bloc/
│   │   │   │           │   ├── inventory_bloc.dart
│   │   │   │           │   ├── inventory_event.dart
│   │   │   │           │   └── inventory_state.dart
│   │   │   │           └── view/
│   │   │   │               └── inventory.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_bloc.dart
│   │   │   └── src/
│   │   │       ├── flame_bloc_listenable.dart
│   │   │       ├── flame_bloc_listener.dart
│   │   │       ├── flame_bloc_provider.dart
│   │   │       ├── flame_bloc_reader.dart
│   │   │       └── flame_multi_bloc_provider.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── inventory_cubit.dart
│   │       ├── player_cubit.dart
│   │       └── src/
│   │           ├── flame_bloc_listenable_test.dart
│   │           ├── flame_bloc_listener_test.dart
│   │           ├── flame_bloc_provider_test.dart
│   │           ├── flame_bloc_reader_test.dart
│   │           └── flame_multi_bloc_provider_test.dart
│   ├── flame_console/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── commands/
│   │   │   │   │   ├── clear_effects_command.dart
│   │   │   │   │   └── commands.dart
│   │   │   │   ├── game.dart
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_console.dart
│   │   │   └── src/
│   │   │       ├── commands/
│   │   │       │   ├── commands.dart
│   │   │       │   ├── debug_command.dart
│   │   │       │   ├── ls_command.dart
│   │   │       │   ├── pause_command.dart
│   │   │       │   ├── remove_command.dart
│   │   │       │   └── resume_command.dart
│   │   │       ├── flame_console.dart
│   │   │       └── view/
│   │   │           ├── console_view.dart
│   │   │           ├── container_builder.dart
│   │   │           └── view.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── src/
│   │           ├── commands_test.dart
│   │           ├── debug_command_test.dart
│   │           ├── pause_command_test.dart
│   │           └── resume_command_test.dart
│   ├── flame_devtools/
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── main.dart
│   │   │   ├── providers/
│   │   │   │   └── position_component_attributes_provider.dart
│   │   │   ├── repository.dart
│   │   │   └── widgets/
│   │   │       ├── component_counter.dart
│   │   │       ├── component_snapshot.dart
│   │   │       ├── component_tree.dart
│   │   │       ├── component_tree_model.dart
│   │   │       ├── debug_mode_button.dart
│   │   │       ├── game_loop_controls.dart
│   │   │       ├── incremental_number_form_field.dart
│   │   │       ├── overlay_navigation.dart
│   │   │       └── position_component_attributes_form.dart
│   │   ├── pubspec.yaml
│   │   └── web/
│   │       ├── index.html
│   │       └── manifest.json
│   ├── flame_fire_atlas/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── cave_ace.fa
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   └── flame_fire_atlas.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_fire_atlas_test.dart
│   ├── flame_forge2d/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── body_component.dart
│   │   │   ├── contact_callbacks.dart
│   │   │   ├── flame_forge2d.dart
│   │   │   ├── forge2d_game.dart
│   │   │   ├── forge2d_world.dart
│   │   │   └── world_contact_listener.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── body_component_test.dart
│   │       ├── contact_callbacks_test.dart
│   │       ├── forge2d_game_test.dart
│   │       ├── forge2d_world_test.dart
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   └── mocks.dart
│   │       └── world_contact_listener_test.dart
│   ├── flame_isolate/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── brains/
│   │   │   │   │   ├── path_finder.dart
│   │   │   │   │   ├── worker_overmind.dart
│   │   │   │   │   └── worker_overmind_hud.dart
│   │   │   │   ├── colonists_game.dart
│   │   │   │   ├── constants.dart
│   │   │   │   ├── extensions/
│   │   │   │   │   └── range_extensions.dart
│   │   │   │   ├── game_map/
│   │   │   │   │   └── game_map.dart
│   │   │   │   ├── main.dart
│   │   │   │   ├── objects/
│   │   │   │   │   ├── bread.dart
│   │   │   │   │   ├── cheese.dart
│   │   │   │   │   └── colonists_object.dart
│   │   │   │   ├── standard/
│   │   │   │   │   ├── int_vector2.dart
│   │   │   │   │   └── pair.dart
│   │   │   │   ├── terrain/
│   │   │   │   │   ├── grass.dart
│   │   │   │   │   └── terrain.dart
│   │   │   │   └── units/
│   │   │   │       ├── actions/
│   │   │   │       │   └── movable.dart
│   │   │   │       └── worker.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_isolate.dart
│   │   │   └── flame_tailored_isolate.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── flame_isolate_test.dart
│   │       └── flame_tailored_isolate_test.dart
│   ├── flame_jenny/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── jenny/
│   │   │   ├── CHANGELOG.md
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── jenny.dart
│   │   │   │   └── src/
│   │   │   │       ├── character.dart
│   │   │   │       ├── character_storage.dart
│   │   │   │       ├── command_storage.dart
│   │   │   │       ├── dialogue_runner.dart
│   │   │   │       ├── dialogue_view.dart
│   │   │   │       ├── errors.dart
│   │   │   │       ├── function_storage.dart
│   │   │   │       ├── localization.dart
│   │   │   │       ├── parse/
│   │   │   │       │   ├── ascii.dart
│   │   │   │       │   ├── parse.dart
│   │   │   │       │   ├── token.dart
│   │   │   │       │   └── tokenize.dart
│   │   │   │       ├── structure/
│   │   │   │       │   ├── block.dart
│   │   │   │       │   ├── commands/
│   │   │   │       │   │   ├── character_command.dart
│   │   │   │       │   │   ├── command.dart
│   │   │   │       │   │   ├── declare_command.dart
│   │   │   │       │   │   ├── if_command.dart
│   │   │   │       │   │   ├── jump_command.dart
│   │   │   │       │   │   ├── local_command.dart
│   │   │   │       │   │   ├── set_command.dart
│   │   │   │       │   │   ├── stop_command.dart
│   │   │   │       │   │   ├── user_defined_command.dart
│   │   │   │       │   │   ├── visit_command.dart
│   │   │   │       │   │   └── wait_command.dart
│   │   │   │       │   ├── dialogue_choice.dart
│   │   │   │       │   ├── dialogue_entry.dart
│   │   │   │       │   ├── dialogue_line.dart
│   │   │   │       │   ├── dialogue_option.dart
│   │   │   │       │   ├── expressions/
│   │   │   │       │   │   ├── expression.dart
│   │   │   │       │   │   ├── functions/
│   │   │   │       │   │   │   ├── _common.dart
│   │   │   │       │   │   │   ├── bool.dart
│   │   │   │       │   │   │   ├── ceil.dart
│   │   │   │       │   │   │   ├── dec.dart
│   │   │   │       │   │   │   ├── decimal.dart
│   │   │   │       │   │   │   ├── dice.dart
│   │   │   │       │   │   │   ├── floor.dart
│   │   │   │       │   │   │   ├── if.dart
│   │   │   │       │   │   │   ├── inc.dart
│   │   │   │       │   │   │   ├── int.dart
│   │   │   │       │   │   │   ├── number.dart
│   │   │   │       │   │   │   ├── plural.dart
│   │   │   │       │   │   │   ├── random.dart
│   │   │   │       │   │   │   ├── random_range.dart
│   │   │   │       │   │   │   ├── round.dart
│   │   │   │       │   │   │   ├── round_places.dart
│   │   │   │       │   │   │   ├── string.dart
│   │   │   │       │   │   │   ├── user_defined_function.dart
│   │   │   │       │   │   │   ├── visit_count.dart
│   │   │   │       │   │   │   └── visited.dart
│   │   │   │       │   │   ├── literal.dart
│   │   │   │       │   │   ├── operators/
│   │   │   │       │   │   │   ├── _common.dart
│   │   │   │       │   │   │   ├── add.dart
│   │   │   │       │   │   │   ├── and.dart
│   │   │   │       │   │   │   ├── divide.dart
│   │   │   │       │   │   │   ├── equal.dart
│   │   │   │       │   │   │   ├── greater_or_equal.dart
│   │   │   │       │   │   │   ├── greater_than.dart
│   │   │   │       │   │   │   ├── less_or_equal.dart
│   │   │   │       │   │   │   ├── less_than.dart
│   │   │   │       │   │   │   ├── modulo.dart
│   │   │   │       │   │   │   ├── multiply.dart
│   │   │   │       │   │   │   ├── negate.dart
│   │   │   │       │   │   │   ├── not.dart
│   │   │   │       │   │   │   ├── not_equal.dart
│   │   │   │       │   │   │   ├── or.dart
│   │   │   │       │   │   │   ├── subtract.dart
│   │   │   │       │   │   │   └── xor.dart
│   │   │   │       │   │   └── variables.dart
│   │   │   │       │   ├── line_content.dart
│   │   │   │       │   ├── markup_attribute.dart
│   │   │   │       │   └── node.dart
│   │   │   │       ├── variable_storage.dart
│   │   │   │       └── yarn_project.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── character_storage_test.dart
│   │   │       ├── command_storage_test.dart
│   │   │       ├── dialogue_runner_test.dart
│   │   │       ├── dialogue_view_test.dart
│   │   │       ├── function_storage_test.dart
│   │   │       ├── localization_test.dart
│   │   │       ├── parse/
│   │   │       │   ├── ascii_test.dart
│   │   │       │   ├── parse_test.dart
│   │   │       │   ├── token_test.dart
│   │   │       │   └── tokenize_test.dart
│   │   │       ├── structure/
│   │   │       │   ├── block_test.dart
│   │   │       │   ├── commands/
│   │   │       │   │   ├── character_command_test.dart
│   │   │       │   │   ├── declare_command_test.dart
│   │   │       │   │   ├── if_command_test.dart
│   │   │       │   │   ├── jump_command_test.dart
│   │   │       │   │   ├── local_command_test.dart
│   │   │       │   │   ├── set_command_test.dart
│   │   │       │   │   ├── stop_command_test.dart
│   │   │       │   │   ├── user_defined_command_test.dart
│   │   │       │   │   ├── visit_command_test.dart
│   │   │       │   │   └── wait_command_test.dart
│   │   │       │   ├── dialogue_choice_test.dart
│   │   │       │   ├── dialogue_line_test.dart
│   │   │       │   ├── dialogue_option_test.dart
│   │   │       │   ├── expressions/
│   │   │       │   │   ├── arithmetic_test.dart
│   │   │       │   │   ├── functions/
│   │   │       │   │   │   ├── bool_test.dart
│   │   │       │   │   │   ├── ceil_test.dart
│   │   │       │   │   │   ├── dec_test.dart
│   │   │       │   │   │   ├── decimal_test.dart
│   │   │       │   │   │   ├── dice_test.dart
│   │   │       │   │   │   ├── floor_test.dart
│   │   │       │   │   │   ├── if_test.dart
│   │   │       │   │   │   ├── inc_test.dart
│   │   │       │   │   │   ├── int_test.dart
│   │   │       │   │   │   ├── number_test.dart
│   │   │       │   │   │   ├── plural_test.dart
│   │   │       │   │   │   ├── random_range_test.dart
│   │   │       │   │   │   ├── random_test.dart
│   │   │       │   │   │   ├── round_places_test.dart
│   │   │       │   │   │   ├── round_test.dart
│   │   │       │   │   │   ├── string_test.dart
│   │   │       │   │   │   ├── user_defined_function_test.dart
│   │   │       │   │   │   ├── visit_count_test.dart
│   │   │       │   │   │   └── visited_test.dart
│   │   │       │   │   ├── literal_test.dart
│   │   │       │   │   ├── operators/
│   │   │       │   │   │   ├── add_test.dart
│   │   │       │   │   │   ├── and_test.dart
│   │   │       │   │   │   ├── divide_test.dart
│   │   │       │   │   │   ├── equal_test.dart
│   │   │       │   │   │   ├── greater_or_equal_test.dart
│   │   │       │   │   │   ├── greater_than_test.dart
│   │   │       │   │   │   ├── less_or_equal_test.dart
│   │   │       │   │   │   ├── less_than_test.dart
│   │   │       │   │   │   ├── modulo_test.dart
│   │   │       │   │   │   ├── multiply_test.dart
│   │   │       │   │   │   ├── negate_test.dart
│   │   │       │   │   │   ├── not_equal_test.dart
│   │   │       │   │   │   ├── not_test.dart
│   │   │       │   │   │   ├── or_test.dart
│   │   │       │   │   │   ├── subtract_test.dart
│   │   │       │   │   │   └── xor_test.dart
│   │   │       │   │   └── variables_test.dart
│   │   │       │   └── node_test.dart
│   │   │       ├── test_scenario.dart
│   │   │       ├── utils.dart
│   │   │       ├── variable_storage_test.dart
│   │   │       └── yarn_project_test.dart
│   │   └── pubspec.yaml
│   ├── flame_kenney_xml/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── license.txt
│   │   │   │   └── spritesheet_stone.xml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   └── flame_kenney_xml.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_kenney_xml_test.dart
│   ├── flame_lint/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── analysis_options_with_dcm.yaml
│   │   │   └── flame_lint.dart
│   │   └── pubspec.yaml
│   ├── flame_lottie/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── LottieLogo1.json
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_lottie.dart
│   │   │   └── src/
│   │   │       ├── lottie_component.dart
│   │   │       └── lottie_renderer.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_lottie_test.dart
│   ├── flame_markdown/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── fire_and_ice.md
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── custom_attribute_syntax.dart
│   │   │   └── flame_markdown.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_markdown_test.dart
│   ├── flame_network_assets/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_network_assets.dart
│   │   │   └── src/
│   │   │       ├── flame_asset_response.dart
│   │   │       ├── flame_network_assets.dart
│   │   │       └── flame_network_images.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_network_image_test.dart
│   ├── flame_noise/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── lib/
│   │   │   ├── flame_noise.dart
│   │   │   └── src/
│   │   │       ├── effects/
│   │   │       │   └── noise_effect_controller.dart
│   │   │       └── effects.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── noise_effect_controller_test.dart
│   ├── flame_oxygen/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── lib/
│   │   │   │   ├── component/
│   │   │   │   │   ├── timer_component.dart
│   │   │   │   │   └── velocity_component.dart
│   │   │   │   ├── main.dart
│   │   │   │   └── system/
│   │   │   │       ├── debug_system.dart
│   │   │   │       ├── kawabunga_system.dart
│   │   │   │       ├── move_system.dart
│   │   │   │       └── sprite_system.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_oxygen.dart
│   │   │   └── src/
│   │   │       ├── component/
│   │   │       │   ├── anchor_component.dart
│   │   │       │   ├── angle_component.dart
│   │   │       │   ├── flip_component.dart
│   │   │       │   ├── particle_component.dart
│   │   │       │   ├── position_component.dart
│   │   │       │   ├── size_component.dart
│   │   │       │   ├── sprite_component.dart
│   │   │       │   └── text_component.dart
│   │   │       ├── component.dart
│   │   │       ├── flame_system_manager.dart
│   │   │       ├── flame_world.dart
│   │   │       ├── oxygen_game.dart
│   │   │       ├── system/
│   │   │       │   ├── base_system.dart
│   │   │       │   ├── game_ref.dart
│   │   │       │   ├── particle_system.dart
│   │   │       │   ├── render_system.dart
│   │   │       │   └── update_system.dart
│   │   │       └── system.dart
│   │   └── pubspec.yaml
│   ├── flame_rive/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── rewards.riv
│   │   │   │   └── skills.riv
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_rive.dart
│   │   │   └── src/
│   │   │       └── rive_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   ├── rewards.riv
│   │       │   └── skills.riv
│   │       ├── flame_rive_test.dart
│   │       └── utils.dart
│   ├── flame_riverpod/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       └── widget_test.dart
│   │   ├── lib/
│   │   │   ├── flame_riverpod.dart
│   │   │   └── src/
│   │   │       ├── consumer.dart
│   │   │       └── widget.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── widget_test.dart
│   ├── flame_spine/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── spineboy-pro.skel
│   │   │   │   └── spineboy.atlas
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_spine.dart
│   │   │   └── src/
│   │   │       └── spine_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       └── flame_spine_test.dart
│   ├── flame_splash_screen/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_splash_screen.dart
│   │   │   └── src/
│   │   │       ├── controller.dart
│   │   │       ├── splash.dart
│   │   │       └── theme.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── controller_test.dart
│   │       └── theme_test.dart
│   ├── flame_sprite_fusion/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── tiles/
│   │   │   │       └── map.json
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_sprite_fusion.dart
│   │   │   └── src/
│   │   │       ├── sprite_fusion_layer_data.dart
│   │   │       ├── sprite_fusion_tile_data.dart
│   │   │       ├── sprite_fusion_tilemap_component.dart
│   │   │       └── sprite_fusion_tilemap_data.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   └── map.json
│   │       ├── sprite_fusion_data_test.dart
│   │       ├── sprite_fusion_tilemap_component_test.dart
│   │       └── test_asset_bundle.dart
│   ├── flame_steering_behaviors/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   ├── main.dart
│   │   │   │   └── src/
│   │   │   │       ├── behaviors/
│   │   │   │       │   ├── behaviors.dart
│   │   │   │       │   └── screen_collision_behavior.dart
│   │   │   │       ├── entities/
│   │   │   │       │   ├── dot/
│   │   │   │       │   │   └── dot.dart
│   │   │   │       │   └── entities.dart
│   │   │   │       └── example_game.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── helpers/
│   │   │       │   ├── helpers.dart
│   │   │       │   └── test_game.dart
│   │   │       └── src/
│   │   │           ├── behaviors/
│   │   │           │   └── screen_collision_behavior_test.dart
│   │   │           ├── entities/
│   │   │           │   └── dot_test.dart
│   │   │           └── example_game_test.dart
│   │   ├── lib/
│   │   │   ├── flame_steering_behaviors.dart
│   │   │   └── src/
│   │   │       ├── behaviors/
│   │   │       │   ├── behaviors.dart
│   │   │       │   ├── flee_behavior.dart
│   │   │       │   ├── pursue_behavior.dart
│   │   │       │   ├── separation_behavior.dart
│   │   │       │   ├── steering_behavior.dart
│   │   │       │   └── wander_behavior.dart
│   │   │       ├── mixins/
│   │   │       │   ├── mixins.dart
│   │   │       │   ├── steerable.dart
│   │   │       │   └── steering.dart
│   │   │       └── steering/
│   │   │           ├── flee.dart
│   │   │           ├── pursue.dart
│   │   │           ├── separation.dart
│   │   │           ├── steering.dart
│   │   │           ├── steering_core.dart
│   │   │           └── wander.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── helpers/
│   │       │   ├── helpers.dart
│   │       │   ├── steerable_entity.dart
│   │       │   └── test_game.dart
│   │       └── src/
│   │           ├── behaviors/
│   │           │   ├── flee_behavior_test.dart
│   │           │   ├── pursue_behavior_test.dart
│   │           │   ├── separation_behavior_test.dart
│   │           │   └── wander_behavior_test.dart
│   │           ├── mixins/
│   │           │   ├── steerable_test.dart
│   │           │   └── steering_test.dart
│   │           └── steering/
│   │               ├── flee_test.dart
│   │               ├── pursue_test.dart
│   │               ├── separation_test.dart
│   │               ├── steering_core_test.dart
│   │               └── wander_test.dart
│   ├── flame_studio/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   └── main.dart
│   │   ├── lib/
│   │   │   ├── flame_studio.dart
│   │   │   └── src/
│   │   │       ├── core/
│   │   │       │   ├── component_tree.dart
│   │   │       │   ├── game_controller.dart
│   │   │       │   └── theme.dart
│   │   │       ├── run_flame_studio.dart
│   │   │       └── widgets/
│   │   │           ├── flame_studio.dart
│   │   │           ├── left_panel.dart
│   │   │           ├── left_panel_grip.dart
│   │   │           ├── panels/
│   │   │           │   └── hierarchy_view.dart
│   │   │           ├── toolbar/
│   │   │           │   ├── flame_studio_toolbar.dart
│   │   │           │   ├── next_frame_button.dart
│   │   │           │   ├── pause_button.dart
│   │   │           │   ├── start_button.dart
│   │   │           │   └── toolbar_button.dart
│   │   │           └── ui_scaffold.dart
│   │   └── pubspec.yaml
│   ├── flame_svg/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_svg.dart
│   │   │   ├── svg.dart
│   │   │   └── svg_component.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── svg_component_test.dart
│   │       └── svg_test.dart
│   ├── flame_test/
│   │   ├── .min_coverage
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── lib/
│   │   │   │   ├── game.dart
│   │   │   │   └── main.dart
│   │   │   ├── pubspec.yaml
│   │   │   └── test/
│   │   │       ├── flame_test_test.dart
│   │   │       └── main_test.dart
│   │   ├── lib/
│   │   │   ├── flame_test.dart
│   │   │   └── src/
│   │   │       ├── close_to_aabb.dart
│   │   │       ├── close_to_matrix4.dart
│   │   │       ├── close_to_quaternion.dart
│   │   │       ├── close_to_vector.dart
│   │   │       ├── close_to_vector3.dart
│   │   │       ├── close_to_vector4.dart
│   │   │       ├── debug_text_renderer.dart
│   │   │       ├── epsilon.dart
│   │   │       ├── expect_color.dart
│   │   │       ├── expect_double.dart
│   │   │       ├── fails_assert.dart
│   │   │       ├── flame_test.dart
│   │   │       ├── is_close_to_vector.dart
│   │   │       ├── mock_gesture_events.dart
│   │   │       ├── mock_image.dart
│   │   │       ├── mock_pointer_move_event.dart
│   │   │       ├── mock_tap_drag_events.dart
│   │   │       ├── random_test.dart
│   │   │       ├── test_flame_game.dart
│   │   │       └── test_golden.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── close_to_aabb_test.dart
│   │       ├── close_to_matrix4_test.dart
│   │       ├── close_to_quaternion_test.dart
│   │       ├── close_to_vector3_test.dart
│   │       ├── close_to_vector4_test.dart
│   │       ├── close_to_vector_test.dart
│   │       ├── debug_text_formatter_test.dart
│   │       ├── epsilon_test.dart
│   │       ├── expect_double_test.dart
│   │       ├── fails_assert_test.dart
│   │       ├── flame_async_test.dart
│   │       ├── golden_test.dart
│   │       ├── random_test_test.dart
│   │       └── test_with_game_test.dart
│   ├── flame_texturepacker/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── analysis_options.yaml
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── analysis_options.yaml
│   │   │   ├── assets/
│   │   │   │   └── images/
│   │   │   │       └── atlas_map.atlas
│   │   │   ├── lib/
│   │   │   │   └── main.dart
│   │   │   └── pubspec.yaml
│   │   ├── lib/
│   │   │   ├── flame_texturepacker.dart
│   │   │   └── src/
│   │   │       ├── extension_on_game.dart
│   │   │       ├── model/
│   │   │       │   ├── page.dart
│   │   │       │   └── region.dart
│   │   │       ├── texture_packer_atlas.dart
│   │   │       ├── texture_packer_parser.dart
│   │   │       └── texture_packer_sprite.dart
│   │   ├── pubspec.yaml
│   │   └── test/
│   │       ├── assets/
│   │       │   ├── atlasMap.atlas
│   │       │   ├── legacy/
│   │       │   │   ├── multiplePages/
│   │       │   │   │   ├── MultiplePageAtlasMap.atlas
│   │       │   │   │   └── MultipleTrimmedPageAtlasMap.atlas
│   │       │   │   └── singlePage/
│   │       │   │       ├── SinglePageAtlasMap.atlas
│   │       │   │       └── SingleTrimmedPageAtlasMap.atlas
│   │       │   ├── newFormat/
│   │       │   │   ├── multiplePages/
│   │       │   │   │   ├── MultiplePageAtlasMap.atlas
│   │       │   │   │   └── MultipleTrimmedPageAtlasMap.atlas
│   │       │   │   └── singlePage/
│   │       │   │       ├── SinglePageAtlasMap.atlas
│   │       │   │       └── SingleTrimmedPageAtlasMap.atlas
│   │       │   └── whitelist/
│   │       │       ├── whitelist_test.atlas
│   │       │       └── whitelist_test.tps
│   │       ├── atlas_path_resolution_test.dart
│   │       ├── flame_texturepacker_test.dart
│   │       ├── legacy_format_test.dart
│   │       ├── naming_index_test.dart
│   │       ├── new_format_test.dart
│   │       ├── region_test.dart
│   │       └── separated_parsing_test.dart
│   └── flame_tiled/
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── analysis_options.yaml
│       ├── example/
│       │   ├── README.md
│       │   ├── analysis_options.yaml
│       │   ├── assets/
│       │   │   └── tiles/
│       │   │       └── map.tmx
│       │   ├── lib/
│       │   │   └── main.dart
│       │   └── pubspec.yaml
│       ├── lib/
│       │   ├── flame_tiled.dart
│       │   └── src/
│       │       ├── extensions.dart
│       │       ├── flame_tsx_provider.dart
│       │       ├── mutable_rect.dart
│       │       ├── rectangle_bin_packer.dart
│       │       ├── renderable_layers/
│       │       │   ├── group_layer.dart
│       │       │   ├── image_layer.dart
│       │       │   ├── object_layer.dart
│       │       │   ├── renderable_layer.dart
│       │       │   └── tile_layers/
│       │       │       ├── hexagonal_tile_layer.dart
│       │       │       ├── isometric_tile_layer.dart
│       │       │       ├── orthogonal_tile_layer.dart
│       │       │       ├── staggered_tile_layer.dart
│       │       │       └── tile_layer.dart
│       │       ├── renderable_tile_map.dart
│       │       ├── simple_flips.dart
│       │       ├── tile_animation.dart
│       │       ├── tile_atlas.dart
│       │       ├── tile_stack.dart
│       │       ├── tile_transform.dart
│       │       └── tiled_component.dart
│       ├── pubspec.yaml
│       └── test/
│           ├── README.md
│           ├── assets/
│           │   ├── 2_tiles-green_on_red.tmx
│           │   ├── 8_tiles-flips.tmx
│           │   ├── deleted_layer_map.tmx
│           │   ├── dungeon_animation_hexagonal.tmx
│           │   ├── dungeon_animation_isometric.tmx
│           │   ├── dungeon_animation_orthogonal.tmx
│           │   ├── dungeon_animation_staggered.tmx
│           │   ├── flat_hex_even.tmx
│           │   ├── flat_hex_odd.tmx
│           │   ├── image_layer_full_screen.tmx
│           │   ├── iso_staggered_overlap_x_even.tmx
│           │   ├── iso_staggered_overlap_x_odd.tmx
│           │   ├── iso_staggered_overlap_y_even.tmx
│           │   ├── iso_staggered_overlap_y_odd.tmx
│           │   ├── isometric_plain.tmx
│           │   ├── layers_test.tmx
│           │   ├── map-with-same-level-tsx.tmx
│           │   ├── map.tmx
│           │   ├── oversized_tiles_hexagonal.tmx
│           │   ├── oversized_tiles_isometric.tmx
│           │   ├── oversized_tiles_orthogonal.tmx
│           │   ├── oversized_tiles_staggered.tmx
│           │   ├── pointy_hex_even.tmx
│           │   ├── pointy_hex_odd.tmx
│           │   ├── single_tile_map_1.tmx
│           │   ├── single_tile_map_2.tmx
│           │   ├── test_isometric.tmx
│           │   ├── test_shifted.tmx
│           │   ├── test_tile_offset_hexagonal.tmx
│           │   ├── test_tile_offset_isometric.tmx
│           │   ├── test_tile_offset_orthogonal.tmx
│           │   ├── test_tile_offset_staggered.tmx
│           │   ├── tiles/
│           │   │   ├── external_tileset_1.tsx
│           │   │   ├── isometric_plain_1.tsx
│           │   │   └── samelevel_tileset_1.tsx
│           │   └── tiles_custom_path/
│           │       ├── external_tileset_custom_path.tsx
│           │       └── map_custom_path.tmx
│           ├── extensions_test.dart
│           ├── image_layer_test.dart
│           ├── rectangle_bin_packer_test.dart
│           ├── test_asset_bundle.dart
│           ├── test_image_utils.dart
│           ├── tile_atlas_test.dart
│           ├── tiled_component_sizes_test.dart
│           └── tiled_test.dart
├── pubspec.yaml
└── scripts/
    ├── cspell-run.sh
    ├── cspell-verify.sh
    └── doc-setup.sh
Download .txt
Showing preview only (597K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7169 symbols across 1513 files)

FILE: doc/_sphinx/conf.py
  class TitleCollector (line 100) | class TitleCollector(docutils.nodes.SparseNodeVisitor):
    method __init__ (line 101) | def __init__(self, document):
    method visit_section (line 106) | def visit_section(self, node):
    method depart_section (line 114) | def depart_section(self, node):
  function get_local_toc (line 118) | def get_local_toc(document):
  function on_html_page_context (line 146) | def on_html_page_context(app, pagename, templatename, context, doctree):
  function setup (line 150) | def setup(app):

FILE: doc/_sphinx/extensions/dart_domain.py
  class DartdocDirective (line 23) | class DartdocDirective(SphinxDirective):
    method __init__ (line 54) | def __init__(self, name, arguments, options, content, lineno, content_...
    method run (line 76) | def run(self):
    method _parse_option_package (line 93) | def _parse_option_package(self) -> str:
    method _get_root_from_config (line 100) | def _get_root_from_config(self):
    method _parse_option_file (line 112) | def _parse_option_file(self):
    method _parse_option_symbol (line 122) | def _parse_option_symbol(self):
    method _parse_links (line 128) | def _parse_links(self) -> Dict[str, str]:
    method _get_data_record (line 145) | def _get_data_record(self):
    method _scan_source_file_if_needed (line 158) | def _scan_source_file_if_needed(self):
    method _scan_source_file (line 168) | def _scan_source_file(self):
    method _extract_symbol (line 197) | def _extract_symbol(self, json_string: str) -> Dict:
    method _generate_node_for_declaration (line 225) | def _generate_node_for_declaration(self, data: Dict, level: int) -> El...
    method _generate_class_signature_node (line 252) | def _generate_class_signature_node(self, data: Dict, level: int) -> El...
    method _generate_function_signature_node (line 280) | def _generate_function_signature_node(self, data: Dict, level: int) ->...
    method _generate_field_signature_node (line 327) | def _generate_field_signature_node(self, data: Dict, level: int) -> El...
    method _generate_type_parameters_node (line 353) | def _generate_type_parameters_node(self, data: Dict) -> Optional[Eleme...
    method _generate_description (line 368) | def _generate_description(self, data: Dict, level: int) -> Optional[El...
    method _generate_constructors_section (line 376) | def _generate_constructors_section(self, data: Dict, level: int) -> Op...
    method _generate_methods_section (line 387) | def _generate_methods_section(self, data: Dict, level: int) -> Optiona...
    method _generate_properties_section (line 398) | def _generate_properties_section(self, data: Dict, level: int) -> Opti...
    method _select_class_members (line 420) | def _select_class_members(self, data: Dict, kinds: List[str]) -> List[...
    method _augment_comment (line 441) | def _augment_comment(self, text: str) -> str:
  function ParamRole (line 515) | def ParamRole(name: str, rawtext: str, text: str, lineno: int, inliner: ...
  class DartDomain (line 521) | class DartDomain(Domain):
    method merge_domaindata (line 564) | def merge_domaindata(self, docnames: List[str], other_data: Dict) -> N...
    method resolve_any_xref (line 575) | def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, bu...
    method resolve_xref (line 580) | def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builde...
  function copy_asset_files (line 604) | def copy_asset_files(app, exc):
  function on_env_get_outdated (line 619) | def on_env_get_outdated(_: Sphinx, env: BuildEnvironment, added: Set[str...
  function on_env_purge_doc (line 640) | def on_env_purge_doc(_: Sphinx, env: BuildEnvironment, docname: str) -> ...
  function on_env_before_read_docs (line 655) | def on_env_before_read_docs(_: Sphinx, __: BuildEnvironment, docnames: L...
  function setup (line 666) | def setup(app: Sphinx):

FILE: doc/_sphinx/extensions/flutter_app.js
  function run_flutter_app (line 5) | function run_flutter_app(url) {
  function open_code_listings (line 17) | function open_code_listings(id) {
  function create_overlay (line 26) | function create_overlay() {
  function close_flutter_app (line 37) | function close_flutter_app() {
  function compute_iframe_id (line 45) | function compute_iframe_id(url) {

FILE: doc/_sphinx/extensions/flutter_app.py
  class FlutterAppDirective (line 18) | class FlutterAppDirective(SphinxDirective):
    method __init__ (line 79) | def __init__(self, *args, **kwds):
    method run (line 89) | def run(self):
    method _process_show_option (line 142) | def _process_show_option(self):
    method _process_sources_option (line 153) | def _process_sources_option(self):
    method _get_app_name (line 164) | def _get_app_name(self):
    method _ensure_compiled (line 168) | def _ensure_compiled(self):
    method _compile_source (line 184) | def _compile_source(self):
    method _copy_compiled (line 203) | def _copy_compiled(self):
    method _create_index_html (line 216) | def _create_index_html(self):
    method _generate_code_listings (line 228) | def _generate_code_listings(self, code_id):
  function _doc_root (line 257) | def _doc_root():
  class IFrame (line 270) | class IFrame(nodes.Element, nodes.General):
    method visit (line 271) | def visit(self, node):
    method depart (line 277) | def depart(self, _):
  class Button (line 281) | class Button(nodes.Element, nodes.General):
    method visit (line 282) | def visit(self, node):
    method depart (line 288) | def depart(self, _):
  function setup (line 296) | def setup(app):

FILE: doc/_sphinx/extensions/package.py
  class PackageDirective (line 8) | class PackageDirective(SphinxDirective):
    method run (line 13) | def run(self):
    method find_package (line 24) | def find_package(self, pkg_name):
  function setup (line 40) | def setup(app):

FILE: doc/_sphinx/extensions/yarn_lexer.py
  class YarnLexer (line 7) | class YarnLexer(RegexLexer):
  function setup (line 195) | def setup(app):

FILE: doc/_sphinx/scripts/menu-expand.js
  function expandFirstOnHome (line 12) | function expandFirstOnHome() {

FILE: doc/_sphinx/scripts/versions.js
  function getCurrentDocVersion (line 6) | function getCurrentDocVersion() {
  function getLatestVersion (line 20) | function getLatestVersion(versions) {
  function convertVersionsToHtmlLinks (line 26) | function convertVersionsToHtmlLinks(versionsList, currentVersion) {
  function maybeAddWarning (line 54) | function maybeAddWarning(versions, currentVersion) {
  function buildVersionsMenu (line 65) | function buildVersionsMenu(data) {

FILE: doc/_sphinx/theme/doctools.js
  constant BLACKLISTED_KEY_CONTROL_ELEMENTS (line 24) | const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([

FILE: doc/flame/examples/lib/anchor.dart
  class AnchorGame (line 8) | class AnchorGame extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
    method update (line 46) | void update(double dt)
  class _AnchoredRectangle (line 53) | class _AnchoredRectangle extends RectangleComponent with TapCallbacks {
    method onTapDown (line 61) | void onTapDown(TapDownEvent event)

FILE: doc/flame/examples/lib/anchor_by_effect.dart
  class AnchorByEffectGame (line 5) | class AnchorByEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/anchor_to_effect.dart
  class AnchorToEffectGame (line 6) | class AnchorToEffectGame extends FlameGame {
    method onLoad (line 8) | Future<void> onLoad()

FILE: doc/flame/examples/lib/collision_detection.dart
  class CollisionDetectionGame (line 8) | class CollisionDetectionGame extends FlameGame with HasCollisionDetection {
    method onLoad (line 10) | Future<void> onLoad()
  class RectangleCollidable (line 33) | class RectangleCollidable extends PositionComponent with CollisionCallba...
    method onLoad (line 46) | Future<void> onLoad()
    method onCollisionStart (line 57) | void onCollisionStart(
    method onCollisionEnd (line 66) | void onCollisionEnd(PositionComponent other)

FILE: doc/flame/examples/lib/color_effect.dart
  class ColorEffectExample (line 8) | class ColorEffectExample extends FlameGame {
    method onLoad (line 12) | Future<void> onLoad()

FILE: doc/flame/examples/lib/decorator_blur.dart
  class DecoratorBlurGame (line 5) | class DecoratorBlurGame extends FlameGame {
    method onLoad (line 7) | Future<void> onLoad()

FILE: doc/flame/examples/lib/decorator_grayscale.dart
  class DecoratorGrayscaleGame (line 5) | class DecoratorGrayscaleGame extends FlameGame {
    method onLoad (line 7) | Future<void> onLoad()

FILE: doc/flame/examples/lib/decorator_hue.dart
  class DecoratorHueGame (line 7) | class DecoratorHueGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/decorator_rotate3d.dart
  class DecoratorRotate3DGame (line 5) | class DecoratorRotate3DGame extends FlameGame {
    method onLoad (line 7) | Future<void> onLoad()

FILE: doc/flame/examples/lib/decorator_shadow3d.dart
  class DecoratorShadowGame (line 8) | class DecoratorShadowGame extends FlameGame {
    method backgroundColor (line 10) | Color backgroundColor()
    method onLoad (line 13) | Future<void> onLoad()
  class Grid (line 55) | class Grid extends Component {
    method render (line 61) | void render(Canvas canvas)

FILE: doc/flame/examples/lib/decorator_tint.dart
  class DecoratorTintGame (line 7) | class DecoratorTintGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/drag_events.dart
  class DragEventsGame (line 9) | class DragEventsGame extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()
  class DragTarget (line 52) | class DragTarget extends PositionComponent with DragCallbacks {
    method onGameResize (line 62) | void onGameResize(Vector2 size)
    method render (line 72) | void render(Canvas canvas)
    method onDragStart (line 77) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 85) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 90) | void onDragEnd(DragEndEvent event)
    method onDragCancel (line 96) | void onDragCancel(DragCancelEvent event)
  class Trail (line 102) | class Trail extends Component {
    method render (line 128) | void render(Canvas canvas)
    method update (line 147) | void update(double dt)
    method addPoint (line 168) | void addPoint(Vector2 point)
    method end (line 177) | void end()
    method cancel (line 179) | void cancel()
  class Star (line 185) | class Star extends PositionComponent with DragCallbacks {
    method containsLocalPoint (line 216) | bool containsLocalPoint(Vector2 point)
    method render (line 221) | void render(Canvas canvas)
    method onDragStart (line 234) | void onDragStart(DragStartEvent event)
    method onDragEnd (line 240) | void onDragEnd(DragEndEvent event)
    method onDragUpdate (line 246) | void onDragUpdate(DragUpdateEvent event)

FILE: doc/flame/examples/lib/ember.dart
  class EmberPlayer (line 6) | class EmberPlayer extends SpriteAnimationComponent with TapCallbacks {
    method onLoad (line 18) | Future<void> onLoad()
    method update (line 32) | void update(double dt)
    method onTapUp (line 38) | void onTapUp([TapUpEvent? event])

FILE: doc/flame/examples/lib/flower.dart
  type FlowerPaint (line 8) | enum FlowerPaint { paintId1, paintId2, paintId3, paintId4, paintId5 }
  class Flower (line 10) | class Flower extends PositionComponent
    method _makePath (line 37) | Path _makePath(double radius, int n, double sharpness, double f)
    method render (line 52) | void render(Canvas canvas)
    method onTapUp (line 62) | void onTapUp([TapUpEvent? event])

FILE: doc/flame/examples/lib/glow_effect.dart
  class GlowEffectExample (line 7) | class GlowEffectExample extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/hue_effect.dart
  class HueEffectExample (line 8) | class HueEffectExample extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/main.dart
  function main (line 84) | void main()
  class _IndexRoute (line 97) | class _IndexRoute extends StatelessWidget {
    method build (line 105) | Widget build(BuildContext context)

FILE: doc/flame/examples/lib/move_along_path_effect.dart
  class MoveAlongPathEffectGame (line 7) | class MoveAlongPathEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/move_by_effect.dart
  class MoveByEffectGame (line 5) | class MoveByEffectGame extends FlameGame {
    method onLoad (line 8) | Future<void> onLoad()

FILE: doc/flame/examples/lib/move_to_effect.dart
  class MoveToEffectGame (line 5) | class MoveToEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/opacity_by_effect.dart
  class OpacityByEffectGame (line 6) | class OpacityByEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/opacity_effect_with_target.dart
  class OpacityEffectWithTargetGame (line 6) | class OpacityEffectWithTargetGame extends FlameGame {
    method onLoad (line 14) | Future<void> onLoad()
    method _onTap (line 28) | void _onTap(Flower flower)

FILE: doc/flame/examples/lib/opacity_to_effect.dart
  class OpacityToEffectGame (line 6) | class OpacityToEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()
    method _onTap (line 20) | void _onTap(Flower flower)

FILE: doc/flame/examples/lib/pointer_events.dart
  class PointerEventsGame (line 8) | class PointerEventsGame extends FlameGame with TapCallbacks {
    method onLoad (line 10) | Future<void> onLoad()
    method onTapDown (line 17) | void onTapDown(TapDownEvent event)
  class HoverTarget (line 22) | class HoverTarget extends PositionComponent with HoverCallbacks {
    method render (line 41) | void render(Canvas canvas)
    method onHoverEnter (line 46) | void onHoverEnter()
    method onHoverExit (line 51) | void onHoverExit()

FILE: doc/flame/examples/lib/post_process.dart
  class PostProcessGame (line 9) | class PostProcessGame extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()
  class PixelationPostProcess (line 27) | class PixelationPostProcess extends PostProcess {
    method onLoad (line 29) | Future<void> onLoad()
    method update (line 43) | void update(double dt)
    method postProcess (line 51) | void postProcess(Vector2 size, Canvas canvas)

FILE: doc/flame/examples/lib/ray_cast.dart
  class RayCastExample (line 8) | class RayCastExample extends FlameGame with HasCollisionDetection {
    method onLoad (line 21) | Future<void> onLoad()
    method update (line 39) | void update(double dt)
    method render (line 55) | void render(Canvas canvas)

FILE: doc/flame/examples/lib/ray_trace.dart
  class RayTraceExample (line 11) | class RayTraceExample extends FlameGame
    method onLoad (line 29) | Future<void> onLoad()
    method update (line 42) | void update(double dt)
    method render (line 64) | void render(Canvas canvas)
    method onTapUp (line 82) | void onTapUp(TapUpEvent event)

FILE: doc/flame/examples/lib/remove_effect.dart
  class RemoveEffectGame (line 7) | class RemoveEffectGame extends FlameGame with TapCallbacks {
    method onLoad (line 14) | Future<void> onLoad()
    method onTapUp (line 25) | void onTapUp(TapUpEvent event)
    method update (line 35) | void update(double dt)

FILE: doc/flame/examples/lib/rive_example.dart
  class RiveExampleGame (line 7) | class RiveExampleGame extends FlameGame with TapCallbacks {
    method onLoad (line 12) | Future<void> onLoad()
    method onTapDown (line 43) | void onTapDown(_)

FILE: doc/flame/examples/lib/rotate_around_effect.dart
  class RotateAroundEffectGame (line 6) | class RotateAroundEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/rotate_by_effect.dart
  class RotateByEffectGame (line 6) | class RotateByEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/rotate_to_effect.dart
  class RotateToEffectGame (line 6) | class RotateToEffectGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()

FILE: doc/flame/examples/lib/router.dart
  class RouterGame (line 9) | class RouterGame extends FlameGame {
    method onLoad (line 13) | Future<void> onLoad()
  class StartPage (line 28) | class StartPage extends Component with HasGameReference<RouterGame> {
    method onGameResize (line 62) | void onGameResize(Vector2 size)
  class Background (line 70) | class Background extends Component {
    method render (line 75) | void render(Canvas canvas)
  class RoundedButton (line 80) | class RoundedButton extends PositionComponent with TapCallbacks {
    method render (line 117) | void render(Canvas canvas)
    method onTapDown (line 124) | void onTapDown(TapDownEvent event)
    method onTapUp (line 129) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 135) | void onTapCancel(TapCancelEvent event)
  class SimpleButton (line 140) | abstract class SimpleButton extends PositionComponent with TapCallbacks {
    method action (line 152) | void action()
    method render (line 155) | void render(Canvas canvas)
    method onTapDown (line 164) | void onTapDown(TapDownEvent event)
    method onTapUp (line 169) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 175) | void onTapCancel(TapCancelEvent event)
  class BackButton (line 180) | class BackButton extends SimpleButton with HasGameReference<RouterGame> {
    method action (line 193) | void action()
  class PauseButton (line 196) | class PauseButton extends SimpleButton with HasGameReference<RouterGame> {
    method action (line 210) | void action()
  class Level1Page (line 220) | class Level1Page extends DecoratedWorld with HasGameReference {
    method onLoad (line 222) | Future<void> onLoad()
    method onMount (line 252) | void onMount()
    method onRemove (line 261) | void onRemove()
  class Level2Page (line 267) | class Level2Page extends DecoratedWorld with HasGameReference {
    method onLoad (line 269) | Future<void> onLoad()
    method onMount (line 309) | void onMount()
    method onRemove (line 318) | void onRemove()
  class Planet (line 324) | class Planet extends PositionComponent {
    method render (line 337) | void render(Canvas canvas)
  class Orbit (line 342) | class Orbit extends PositionComponent {
    method render (line 362) | void render(Canvas canvas)
    method update (line 367) | void update(double dt)
  class PauseRoute (line 373) | class PauseRoute extends Route {
    method onPush (line 377) | void onPush(Route? previousRoute)
    method onPop (line 386) | void onPop(Route nextRoute)
  class PausePage (line 394) | class PausePage extends Component
    method onLoad (line 397) | Future<void> onLoad()
    method containsLocalPoint (line 419) | bool containsLocalPoint(Vector2 point)
    method onTapUp (line 422) | void onTapUp(TapUpEvent event)
  class DecoratedWorld (line 425) | class DecoratedWorld extends World with HasTimeScale {
    method renderFromCamera (line 429) | void renderFromCamera(Canvas canvas)

FILE: doc/flame/examples/lib/scale_by_effect.dart
  class ScaleByEffectGame (line 5) | class ScaleByEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/scale_to_effect.dart
  class ScaleToEffectGame (line 5) | class ScaleToEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/sequence_effect.dart
  class SequenceEffectGame (line 5) | class SequenceEffectGame extends FlameGame {
    method onLoad (line 7) | Future<void> onLoad()

FILE: doc/flame/examples/lib/size_by_effect.dart
  class SizeByEffectGame (line 6) | class SizeByEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/size_to_effect.dart
  class SizeToEffectGame (line 6) | class SizeToEffectGame extends FlameGame {
    method onLoad (line 9) | Future<void> onLoad()

FILE: doc/flame/examples/lib/tap_events.dart
  class TapEventsGame (line 8) | class TapEventsGame extends FlameGame {
    method onLoad (line 10) | Future<void> onLoad()
  class TapTarget (line 17) | class TapTarget extends PositionComponent with TapCallbacks {
    method onGameResize (line 27) | void onGameResize(Vector2 size)
    method render (line 37) | void render(Canvas canvas)
    method onTapDown (line 42) | void onTapDown(TapDownEvent event)
    method onLongTapDown (line 49) | void onLongTapDown(TapDownEvent event)
    method onTapUp (line 54) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 59) | void onTapCancel(TapCancelEvent event)
  class ExpandingCircle (line 64) | class ExpandingCircle extends Component {
    method release (line 97) | void release()
    method cancel (line 98) | void cancel()
    method accent (line 99) | void accent()
    method render (line 102) | void render(Canvas canvas)
    method update (line 110) | void update(double dt)

FILE: doc/flame/examples/lib/time_scale.dart
  class TimeScaleGame (line 7) | class TimeScaleGame extends FlameGame with HasTimeScale {
    method onLoad (line 12) | Future<void> onLoad()
    method getNextTimeScale (line 23) | double getNextTimeScale()

FILE: doc/flame/examples/lib/value_route.dart
  class ValueRouteExample (line 10) | class ValueRouteExample extends FlameGame {
    method onLoad (line 14) | Future<void> onLoad()
  class HomePage (line 23) | class HomePage extends Component with HasGameReference<ValueRouteExample> {
    method onLoad (line 25) | Future<void> onLoad()
  class RateRoute (line 49) | class RateRoute extends ValueRoute<int>
    method build (line 54) | Component build()
  class DialogBackground (line 84) | class DialogBackground extends RectangleComponent with TapCallbacks {
  class Star (line 92) | class Star extends PositionComponent with TapCallbacks {
    method onLoad (line 107) | Future<void> onLoad()
    method render (line 123) | void render(Canvas canvas)
    method onTapDown (line 131) | void onTapDown(TapDownEvent event)

FILE: doc/tutorials/klondike/app/lib/main.dart
  function main (line 9) | void main()

FILE: doc/tutorials/klondike/app/lib/step2/components/foundation.dart
  class Foundation (line 3) | class Foundation extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step2/components/pile.dart
  class Pile (line 3) | class Pile extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step2/components/stock.dart
  class Stock (line 3) | class Stock extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step2/components/waste.dart
  class Waste (line 3) | class Waste extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step2/klondike_game.dart
  class KlondikeGame (line 10) | class KlondikeGame extends FlameGame {
    method onLoad (line 18) | Future<void> onLoad()
  function klondikeSprite (line 60) | Sprite klondikeSprite(double x, double y, double width, double height)

FILE: doc/tutorials/klondike/app/lib/step2/main.dart
  function main (line 6) | void main()

FILE: doc/tutorials/klondike/app/lib/step3/components/card.dart
  class Card (line 9) | class Card extends PositionComponent {
    method flip (line 21) | void flip()
    method toString (line 24) | String toString()
    method render (line 27) | void render(Canvas canvas)
    method _renderBack (line 52) | void _renderBack(Canvas canvas)
    method _renderFront (line 84) | void _renderFront(Canvas canvas)
    method _drawSprite (line 172) | void _drawSprite(

FILE: doc/tutorials/klondike/app/lib/step3/components/foundation.dart
  class Foundation (line 3) | class Foundation extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step3/components/pile.dart
  class Pile (line 3) | class Pile extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step3/components/stock.dart
  class Stock (line 3) | class Stock extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step3/components/waste.dart
  class Waste (line 3) | class Waste extends PositionComponent {

FILE: doc/tutorials/klondike/app/lib/step3/klondike_game.dart
  class KlondikeGame (line 13) | class KlondikeGame extends FlameGame {
    method onLoad (line 21) | Future<void> onLoad()
  function klondikeSprite (line 76) | Sprite klondikeSprite(double x, double y, double width, double height)

FILE: doc/tutorials/klondike/app/lib/step3/main.dart
  function main (line 6) | void main()

FILE: doc/tutorials/klondike/app/lib/step3/rank.dart
  class Rank (line 5) | @immutable

FILE: doc/tutorials/klondike/app/lib/step3/suit.dart
  class Suit (line 5) | @immutable

FILE: doc/tutorials/klondike/app/lib/step4/components/card.dart
  class Card (line 12) | class Card extends PositionComponent with DragCallbacks {
    method flip (line 27) | void flip()
    method toString (line 30) | String toString()
    method render (line 35) | void render(Canvas canvas)
    method _renderBack (line 60) | void _renderBack(Canvas canvas)
    method _renderFront (line 92) | void _renderFront(Canvas canvas)
    method _drawSprite (line 180) | void _drawSprite(
    method onDragStart (line 210) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 227) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 237) | void onDragEnd(DragEndEvent event)

FILE: doc/tutorials/klondike/app/lib/step4/components/foundation_pile.dart
  class FoundationPile (line 10) | class FoundationPile extends PositionComponent implements Pile {
    method canMoveCard (line 21) | bool canMoveCard(Card card)
    method canAcceptCard (line 26) | bool canAcceptCard(Card card)
    method removeCard (line 34) | void removeCard(Card card)
    method returnCard (line 40) | void returnCard(Card card)
    method acquireCard (line 46) | void acquireCard(Card card)
    method render (line 67) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step4/components/stock_pile.dart
  class StockPile (line 11) | class StockPile extends PositionComponent with TapCallbacks implements P...
    method canMoveCard (line 21) | bool canMoveCard(Card card)
    method canAcceptCard (line 24) | bool canAcceptCard(Card card)
    method removeCard (line 27) | void removeCard(Card card)
    method returnCard (line 30) | void returnCard(Card card)
    method acquireCard (line 33) | void acquireCard(Card card)
    method onTapUp (line 44) | void onTapUp(TapUpEvent event)
    method render (line 74) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step4/components/tableau_pile.dart
  class TableauPile (line 9) | class TableauPile extends PositionComponent implements Pile {
    method canMoveCard (line 20) | bool canMoveCard(Card card)
    method canAcceptCard (line 23) | bool canAcceptCard(Card card)
    method removeCard (line 34) | void removeCard(Card card)
    method returnCard (line 45) | void returnCard(Card card)
    method acquireCard (line 51) | void acquireCard(Card card)
    method flipTopCard (line 60) | void flipTopCard()
    method layOutCards (line 65) | void layOutCards()
    method cardsOnTop (line 78) | List<Card> cardsOnTop(Card card)
    method render (line 92) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step4/components/waste_pile.dart
  class WastePile (line 7) | class WastePile extends PositionComponent implements Pile {
    method canMoveCard (line 16) | bool canMoveCard(Card card)
    method canAcceptCard (line 19) | bool canAcceptCard(Card card)
    method removeCard (line 22) | void removeCard(Card card)
    method returnCard (line 29) | void returnCard(Card card)
    method acquireCard (line 35) | void acquireCard(Card card)
    method removeAllCards (line 46) | List<Card> removeAllCards()
    method _fanOutTopCards (line 52) | void _fanOutTopCards()

FILE: doc/tutorials/klondike/app/lib/step4/klondike_game.dart
  class KlondikeGame (line 13) | class KlondikeGame extends FlameGame {
    method onLoad (line 25) | Future<void> onLoad()
  function klondikeSprite (line 81) | Sprite klondikeSprite(double x, double y, double width, double height)

FILE: doc/tutorials/klondike/app/lib/step4/main.dart
  function main (line 6) | void main()

FILE: doc/tutorials/klondike/app/lib/step4/pile.dart
  class Pile (line 3) | abstract class Pile {
    method canMoveCard (line 6) | bool canMoveCard(Card card)
    method canAcceptCard (line 10) | bool canAcceptCard(Card card)
    method removeCard (line 14) | void removeCard(Card card)
    method acquireCard (line 18) | void acquireCard(Card card)
    method returnCard (line 22) | void returnCard(Card card)

FILE: doc/tutorials/klondike/app/lib/step4/rank.dart
  class Rank (line 5) | @immutable

FILE: doc/tutorials/klondike/app/lib/step4/suit.dart
  class Suit (line 5) | @immutable

FILE: doc/tutorials/klondike/app/lib/step5/components/card.dart
  class Card (line 18) | class Card extends PositionComponent
    method flip (line 48) | void flip()
    method toString (line 60) | String toString()
    method render (line 65) | void render(Canvas canvas)
    method _renderBack (line 94) | void _renderBack(Canvas canvas)
    method _renderBaseCard (line 101) | void _renderBaseCard(Canvas canvas)
    method _renderFront (line 130) | void _renderFront(Canvas canvas)
    method _drawSprite (line 218) | void _drawSprite(
    method onTapCancel (line 248) | void onTapCancel(TapCancelEvent event)
    method onDragStart (line 256) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 279) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 289) | void onDragEnd(DragEndEvent event)
    method onTapUp (line 367) | void onTapUp(TapUpEvent event)
    method handleTapUp (line 371) | void handleTapUp()
    method doMove (line 394) | void doMove(
    method doMoveAndFlip (line 417) | void doMoveAndFlip(
    method turnFaceUp (line 441) | void turnFaceUp({
  class CardMoveEffect (line 481) | class CardMoveEffect extends MoveToEffect {
    method onStart (line 492) | void onStart()

FILE: doc/tutorials/klondike/app/lib/step5/components/flat_button.dart
  class FlatButton (line 6) | class FlatButton extends ButtonComponent {
  class ButtonBackground (line 33) | class ButtonBackground extends PositionComponent with HasAncestor<FlatBu...
    method onMount (line 43) | void onMount()
    method render (line 56) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step5/components/foundation_pile.dart
  class FoundationPile (line 10) | class FoundationPile extends PositionComponent implements Pile {
    method canMoveCard (line 25) | bool canMoveCard(Card card, MoveMethod method)
    method canAcceptCard (line 29) | bool canAcceptCard(Card card)
    method removeCard (line 37) | void removeCard(Card card, MoveMethod method)
    method returnCard (line 43) | void returnCard(Card card)
    method acquireCard (line 49) | void acquireCard(Card card)
    method render (line 73) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step5/components/stock_pile.dart
  class StockPile (line 10) | class StockPile extends PositionComponent
    method canMoveCard (line 22) | bool canMoveCard(Card card, MoveMethod method)
    method canAcceptCard (line 26) | bool canAcceptCard(Card card)
    method removeCard (line 29) | void removeCard(Card card, MoveMethod method)
    method returnCard (line 34) | void returnCard(Card card)
    method acquireCard (line 37) | void acquireCard(Card card)
    method handleTapUp (line 47) | void handleTapUp(Card card)
    method render (line 83) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step5/components/tableau_pile.dart
  class TableauPile (line 9) | class TableauPile extends PositionComponent implements Pile {
    method canMoveCard (line 20) | bool canMoveCard(Card card, MoveMethod method)
    method canAcceptCard (line 25) | bool canAcceptCard(Card card)
    method removeCard (line 36) | void removeCard(Card card, MoveMethod method)
    method returnCard (line 48) | void returnCard(Card card)
    method acquireCard (line 54) | void acquireCard(Card card)
    method dropCards (line 63) | void dropCards(Card firstCard, [List<Card> attachedCards = const []])
    method flipTopCard (line 89) | void flipTopCard({double start = 0.1})
    method layOutCards (line 97) | void layOutCards()
    method calculateHitArea (line 113) | void calculateHitArea()
    method cardsOnTop (line 119) | List<Card> cardsOnTop(Card card)
    method render (line 133) | void render(Canvas canvas)

FILE: doc/tutorials/klondike/app/lib/step5/components/waste_pile.dart
  class WastePile (line 7) | class WastePile extends PositionComponent
    method canMoveCard (line 18) | bool canMoveCard(Card card, MoveMethod method)
    method canAcceptCard (line 22) | bool canAcceptCard(Card card)
    method removeCard (line 25) | void removeCard(Card card, MoveMethod method)
    method returnCard (line 32) | void returnCard(Card card)
    method acquireCard (line 38) | void acquireCard(Card card)
    method removeAllCards (line 49) | List<Card> removeAllCards()
    method _fanOutTopCards (line 55) | void _fanOutTopCards()

FILE: doc/tutorials/klondike/app/lib/step5/klondike_game.dart
  type Action (line 9) | enum Action { newDeal, sameDeal, changeDraw, haveFun }
  class KlondikeGame (line 11) | class KlondikeGame extends FlameGame<KlondikeWorld> {
  function klondikeSprite (line 43) | Sprite klondikeSprite(double x, double y, double width, double height)

FILE: doc/tutorials/klondike/app/lib/step5/klondike_world.dart
  class KlondikeWorld (line 15) | class KlondikeWorld extends World with HasGameReference<KlondikeGame> {
    method onLoad (line 29) | Future<void> onLoad()
    method addButton (line 96) | void addButton(String label, double buttonX, Action action)
    method deal (line 115) | void deal()
    method checkWin (line 165) | void checkWin()
    method letsCelebrate (line 178) | void letsCelebrate({int phase = 1})

FILE: doc/tutorials/klondike/app/lib/step5/main.dart
  function main (line 6) | void main()

FILE: doc/tutorials/klondike/app/lib/step5/pile.dart
  type MoveMethod (line 3) | enum MoveMethod { drag, tap }
  class Pile (line 5) | abstract class Pile {
    method canMoveCard (line 8) | bool canMoveCard(Card card, MoveMethod method)
    method canAcceptCard (line 12) | bool canAcceptCard(Card card)
    method removeCard (line 16) | void removeCard(Card card, MoveMethod method)
    method acquireCard (line 20) | void acquireCard(Card card)
    method returnCard (line 23) | void returnCard(Card card)

FILE: doc/tutorials/klondike/app/lib/step5/rank.dart
  class Rank (line 5) | @immutable

FILE: doc/tutorials/klondike/app/lib/step5/suit.dart
  class Suit (line 5) | @immutable

FILE: doc/tutorials/platformer/app/lib/actors/ember.dart
  class EmberPlayer (line 12) | class EmberPlayer extends SpriteAnimationComponent
    method onLoad (line 31) | Future<void> onLoad()
    method onKeyEvent (line 47) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)
    method update (line 65) | void update(double dt)
    method onCollision (line 115) | void onCollision(Set<Vector2> intersectionPoints, PositionComponent ot...
    method hit (line 153) | void hit()

FILE: doc/tutorials/platformer/app/lib/actors/water_enemy.dart
  class WaterEnemy (line 7) | class WaterEnemy extends SpriteAnimationComponent
    method onLoad (line 20) | Future<void> onLoad()
    method update (line 47) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/ember_quest.dart
  class EmberQuestGame (line 14) | class EmberQuestGame extends FlameGame
    method onLoad (line 28) | Future<void> onLoad()
    method update (line 45) | void update(double dt)
    method backgroundColor (line 53) | Color backgroundColor()
    method loadGameSegments (line 57) | void loadGameSegments(int segmentIndex, double xPositionOffset)
    method initializeGame (line 82) | void initializeGame({required bool loadHud})
    method reset (line 100) | void reset()

FILE: doc/tutorials/platformer/app/lib/main.dart
  function main (line 8) | void main()

FILE: doc/tutorials/platformer/app/lib/managers/segment_manager.dart
  class Block (line 8) | class Block {

FILE: doc/tutorials/platformer/app/lib/objects/ground_block.dart
  class GroundBlock (line 10) | class GroundBlock extends SpriteComponent
    method onLoad (line 24) | Future<void> onLoad()
    method update (line 39) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/objects/platform_block.dart
  class PlatformBlock (line 6) | class PlatformBlock extends SpriteComponent
    method onLoad (line 19) | Future<void> onLoad()
    method update (line 30) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/objects/star.dart
  class Star (line 8) | class Star extends SpriteComponent with HasGameReference<EmberQuestGame> {
    method onLoad (line 20) | Future<void> onLoad()
    method update (line 42) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/overlays/game_over.dart
  class GameOver (line 5) | class GameOver extends StatelessWidget {
    method build (line 11) | Widget build(BuildContext context)

FILE: doc/tutorials/platformer/app/lib/overlays/heart.dart
  type HeartState (line 5) | enum HeartState {
  class HeartHealthComponent (line 10) | class HeartHealthComponent extends SpriteGroupComponent<HeartState>
    method onLoad (line 25) | Future<void> onLoad()
    method update (line 46) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/overlays/hud.dart
  class Hud (line 7) | class Hud extends PositionComponent with HasGameReference<EmberQuestGame> {
    method onLoad (line 21) | Future<void>? onLoad()
    method update (line 60) | void update(double dt)

FILE: doc/tutorials/platformer/app/lib/overlays/main_menu.dart
  class MainMenu (line 5) | class MainMenu extends StatelessWidget {
    method build (line 12) | Widget build(BuildContext context)

FILE: doc/tutorials/space_shooter/app/lib/main.dart
  function main (line 10) | void main()

FILE: doc/tutorials/space_shooter/app/lib/step1/main.dart
  function main (line 5) | void main()
  class Player (line 9) | class Player extends PositionComponent {
    method render (line 12) | void render(Canvas canvas)
  class SpaceShooterGame (line 17) | class SpaceShooterGame extends FlameGame {
    method onLoad (line 19) | Future<void> onLoad()

FILE: doc/tutorials/space_shooter/app/lib/step2/main.dart
  function main (line 7) | void main()
  class SpaceShooterGame (line 11) | class SpaceShooterGame extends FlameGame with PanDetector {
    method onLoad (line 15) | Future<void> onLoad()
    method onPanUpdate (line 21) | void onPanUpdate(DragUpdateInfo info)
  class Player (line 26) | class Player extends SpriteComponent with HasGameReference<SpaceShooterG...
    method onLoad (line 34) | Future<void> onLoad()
    method move (line 43) | void move(Vector2 delta)

FILE: doc/tutorials/space_shooter/app/lib/step3/main.dart
  function main (line 8) | void main()
  class SpaceShooterGame (line 12) | class SpaceShooterGame extends FlameGame with PanDetector {
    method onLoad (line 16) | Future<void> onLoad()
    method onPanUpdate (line 34) | void onPanUpdate(DragUpdateInfo info)
  class Player (line 39) | class Player extends SpriteAnimationComponent
    method onLoad (line 48) | Future<void> onLoad()
    method move (line 63) | void move(Vector2 delta)

FILE: doc/tutorials/space_shooter/app/lib/step4/main.dart
  function main (line 8) | void main()
  class SpaceShooterGame (line 12) | class SpaceShooterGame extends FlameGame with PanDetector {
    method onLoad (line 16) | Future<void> onLoad()
    method onPanUpdate (line 34) | void onPanUpdate(DragUpdateInfo info)
    method onPanStart (line 39) | void onPanStart(DragStartInfo info)
    method onPanEnd (line 44) | void onPanEnd(DragEndInfo info)
  class Player (line 49) | class Player extends SpriteAnimationComponent
    method onLoad (line 60) | Future<void> onLoad()
    method move (line 93) | void move(Vector2 delta)
    method startShooting (line 97) | void startShooting()
    method stopShooting (line 101) | void stopShooting()
  class Bullet (line 106) | class Bullet extends SpriteAnimationComponent
    method onLoad (line 116) | Future<void> onLoad()
    method update (line 130) | void update(double dt)

FILE: doc/tutorials/space_shooter/app/lib/step5/main.dart
  function main (line 9) | void main()
  class SpaceShooterGame (line 13) | class SpaceShooterGame extends FlameGame with PanDetector {
    method onLoad (line 17) | Future<void> onLoad()
    method onPanUpdate (line 45) | void onPanUpdate(DragUpdateInfo info)
    method onPanStart (line 50) | void onPanStart(DragStartInfo info)
    method onPanEnd (line 55) | void onPanEnd(DragEndInfo info)
  class Player (line 60) | class Player extends SpriteAnimationComponent
    method onLoad (line 71) | Future<void> onLoad()
    method move (line 104) | void move(Vector2 delta)
    method startShooting (line 108) | void startShooting()
    method stopShooting (line 112) | void stopShooting()
  class Bullet (line 117) | class Bullet extends SpriteAnimationComponent
    method onLoad (line 127) | Future<void> onLoad()
    method update (line 141) | void update(double dt)
  class Enemy (line 152) | class Enemy extends SpriteAnimationComponent
    method onLoad (line 164) | Future<void> onLoad()
    method update (line 178) | void update(double dt)

FILE: doc/tutorials/space_shooter/app/lib/step6/main.dart
  function main (line 10) | void main()
  class SpaceShooterGame (line 14) | class SpaceShooterGame extends FlameGame
    method onLoad (line 19) | Future<void> onLoad()
    method onPanUpdate (line 47) | void onPanUpdate(DragUpdateInfo info)
    method onPanStart (line 52) | void onPanStart(DragStartInfo info)
    method onPanEnd (line 57) | void onPanEnd(DragEndInfo info)
  class Player (line 62) | class Player extends SpriteAnimationComponent
    method onLoad (line 73) | Future<void> onLoad()
    method move (line 106) | void move(Vector2 delta)
    method startShooting (line 110) | void startShooting()
    method stopShooting (line 114) | void stopShooting()
  class Bullet (line 119) | class Bullet extends SpriteAnimationComponent
    method onLoad (line 129) | Future<void> onLoad()
    method update (line 149) | void update(double dt)
  class Enemy (line 160) | class Enemy extends SpriteAnimationComponent
    method onLoad (line 172) | Future<void> onLoad()
    method update (line 188) | void update(double dt)
    method onCollisionStart (line 199) | void onCollisionStart(
  class Explosion (line 213) | class Explosion extends SpriteAnimationComponent
    method onLoad (line 224) | Future<void> onLoad()

FILE: examples/games/crystal_ball/lib/crystal_ball.dart
  class CrystalBallWidget (line 8) | class CrystalBallWidget extends StatefulWidget {
    method createState (line 19) | State<CrystalBallWidget> createState()
  class _CrystalBallWidgetState (line 22) | class _CrystalBallWidgetState extends State<CrystalBallWidget> {
    method build (line 40) | Widget build(BuildContext context)

FILE: examples/games/crystal_ball/lib/main.dart
  function main (line 4) | void main()

FILE: examples/games/crystal_ball/lib/src/game/components/camera_target.dart
  class CameraTarget (line 6) | class CameraTarget extends PositionComponent
    method onLoad (line 16) | Future<void> onLoad()
    method go (line 20) | void go({
  class MoveCameraTarget (line 30) | class MoveCameraTarget extends Effect with EffectTarget<CameraTarget> {
    method onMount (line 34) | void onMount()
    method apply (line 46) | void apply(double progress)
    method go (line 53) | void go({required Vector2 to})

FILE: examples/games/crystal_ball/lib/src/game/components/input_handler.dart
  class InputHandler (line 7) | class InputHandler extends PositionComponent
    method onLoad (line 16) | Future<void> onLoad()
    method update (line 34) | void update(double dt)
    method onTapDown (line 40) | void onTapDown(TapDownEvent event)
    method onTapUp (line 59) | void onTapUp(TapUpEvent event)
    method onLeftStart (line 74) | bool onLeftStart()
    method onRightStart (line 79) | bool onRightStart()
    method onLeftEnd (line 84) | bool onLeftEnd()
    method onRightEnd (line 91) | bool onRightEnd()

FILE: examples/games/crystal_ball/lib/src/game/entities/ground.dart
  class Ground (line 6) | class Ground extends Component {
  class Rectangle (line 14) | class Rectangle extends PositionComponent

FILE: examples/games/crystal_ball/lib/src/game/entities/the_ball.dart
  class TheBall (line 14) | class TheBall extends PositionComponent
    method jump (line 41) | void jump()
    method update (line 46) | void update(double dt)
    method onCollisionStart (line 60) | void onCollisionStart(

FILE: examples/games/crystal_ball/lib/src/game/game.dart
  class CrystalBallGame (line 18) | class CrystalBallGame extends FlameGame<CrystalBallGameWorld>
    method onLoad (line 56) | FutureOr<void> onLoad()
  class CrystalBallGameWorld (line 66) | class CrystalBallGameWorld extends World {
  type PreloadedPrograms (line 86) | typedef PreloadedPrograms = ({

FILE: examples/games/crystal_ball/lib/src/game/post_processes/ball_glow.dart
  class BallGlow (line 9) | class BallGlow extends PostProcessComponent<BallGlowPostProcess>
    method onLoad (line 23) | Future<void> onLoad()
    method update (line 29) | void update(double dt)
  class BallGlowPostProcess (line 43) | class BallGlowPostProcess extends PostProcess {
    method onLoad (line 49) | Future<void> onLoad()
    method postProcess (line 59) | void postProcess(

FILE: examples/games/crystal_ball/lib/src/game/post_processes/firefly.dart
  class FireflyPostProcess (line 9) | class FireflyPostProcess extends PostProcess {
    method update (line 23) | void update(double dt)
    method postProcess (line 29) | void postProcess(Vector2 size, Canvas canvas)

FILE: examples/games/crystal_ball/lib/src/game/post_processes/foreground_fog.dart
  class ForegroundFogPostProcess (line 9) | class ForegroundFogPostProcess extends PostProcess {
    method update (line 23) | void update(double dt)
    method postProcess (line 29) | void postProcess(Vector2 size, Canvas canvas)

FILE: examples/games/crystal_ball/lib/src/game/post_processes/water.dart
  class WaterPostProcess (line 7) | class WaterPostProcess extends PostProcess {
    method update (line 21) | void update(double dt)
    method postProcess (line 27) | void postProcess(Vector2 size, Canvas canvas)

FILE: examples/games/padracing/lib/ball.dart
  class Ball (line 12) | class Ball extends BodyComponent<PadRacingGame> with ContactCallbacks {
    method onLoad (line 28) | Future<void> onLoad()
    method createBody (line 47) | Body createBody()
    method render (line 62) | void render(Canvas canvas)
    method beginContact (line 67) | void beginContact(Object other, Contact contact)
  function createBalls (line 80) | List<Ball> createBalls(Vector2 trackSize, List<Wall> walls, Ball bigBall)

FILE: examples/games/padracing/lib/car.dart
  class Car (line 12) | class Car extends BodyComponent<PadRacingGame> {
    method onLoad (line 48) | Future<void> onLoad()
    method createBody (line 77) | Body createBody()
    method update (line 118) | void update(double dt)
    method render (line 123) | void render(Canvas canvas)
    method onRemove (line 133) | void onRemove()

FILE: examples/games/padracing/lib/game_colors.dart
  type GameColors (line 4) | enum GameColors {

FILE: examples/games/padracing/lib/game_over.dart
  class GameOver (line 5) | class GameOver extends StatelessWidget {
    method build (line 11) | Widget build(BuildContext context)

FILE: examples/games/padracing/lib/lap_line.dart
  class LapLine (line 12) | class LapLine extends BodyComponent with ContactCallbacks {
    method onLoad (line 24) | Future<void> onLoad()
    method createBody (line 32) | Body createBody()
    method createFinishOverlay (line 60) | Future<Image> createFinishOverlay()
    method render (line 80) | void render(Canvas canvas)
    method beginContact (line 89) | void beginContact(Object other, Contact contact)

FILE: examples/games/padracing/lib/lap_text.dart
  class LapText (line 9) | class LapText extends PositionComponent with HasGameReference<PadRacingG...
    method onLoad (line 18) | Future<void> onLoad()
    method updateLapText (line 42) | void updateLapText()
    method update (line 68) | void update(double dt)
    method render (line 82) | void render(Canvas canvas)

FILE: examples/games/padracing/lib/main.dart
  function main (line 4) | void main()

FILE: examples/games/padracing/lib/menu.dart
  class Menu (line 8) | class Menu extends StatelessWidget {
    method build (line 14) | Widget build(BuildContext context)

FILE: examples/games/padracing/lib/menu_card.dart
  class MenuCard (line 5) | class MenuCard extends StatelessWidget {
    method build (line 11) | Widget build(BuildContext context)

FILE: examples/games/padracing/lib/padracing_game.dart
  class PadRacingGame (line 34) | class PadRacingGame extends Forge2DGame with KeyboardEvents {
    method backgroundColor (line 45) | Color backgroundColor()
    method onLoad (line 59) | Future<void> onLoad()
    method openMenu (line 78) | void openMenu()
    method prepareStart (line 91) | void prepareStart({required int numberOfPlayers})
    method start (line 108) | void start({required int numberOfPlayers})
    method alignedVector (line 113) | Vector2 alignedVector({
    method viewportRimGenerator (line 129) | RectangleComponent viewportRimGenerator()
    method update (line 202) | void update(double dt)
    method onKeyEvent (line 211) | KeyEventResult onKeyEvent(
    method _clearPressedKeys (line 231) | void _clearPressedKeys()
    method reset (line 237) | void reset()
    method _maybePrefixZero (line 251) | String _maybePrefixZero(int number)

FILE: examples/games/padracing/lib/padracing_widget.dart
  class PadracingWidget (line 9) | class PadracingWidget extends StatelessWidget {
    method build (line 13) | Widget build(BuildContext context)

FILE: examples/games/padracing/lib/tire.dart
  class Tire (line 9) | class Tire extends BodyComponent<PadRacingGame> {
    method onLoad (line 67) | Future<void> onLoad()
    method createBody (line 73) | Body createBody()
    method update (line 95) | void update(double dt)
    method render (line 106) | void render(Canvas canvas)
    method _updateFriction (line 111) | void _updateFriction()
    method _updateDrive (line 130) | void _updateDrive()
    method _updateTurn (line 153) | void _updateTurn(double dt)

FILE: examples/games/padracing/lib/trail.dart
  class Trail (line 8) | class Trail extends Component with HasPaint {
    method onLoad (line 21) | Future<void> onLoad()
    method update (line 28) | void update(double dt)
    method render (line 41) | void render(Canvas canvas)

FILE: examples/games/padracing/lib/wall.dart
  function createWalls (line 10) | List<Wall> createWalls(Vector2 size)
  class Wall (line 35) | class Wall extends BodyComponent<PadRacingGame> {
    method onLoad (line 50) | Future<void> onLoad()
    method render (line 84) | void render(Canvas canvas)
    method createBody (line 94) | Body createBody()

FILE: examples/games/rogue_shooter/lib/components/bullet_component.dart
  class BulletComponent (line 5) | class BulletComponent extends SpriteAnimationComponent
    method onLoad (line 15) | Future<void> onLoad()
    method onCollisionStart (line 31) | void onCollisionStart(
    method update (line 43) | void update(double dt)

FILE: examples/games/rogue_shooter/lib/components/enemy_component.dart
  class EnemyComponent (line 6) | class EnemyComponent extends SpriteAnimationComponent
    method onLoad (line 15) | Future<void> onLoad()
    method update (line 28) | void update(double dt)
    method takeHit (line 36) | void takeHit()

FILE: examples/games/rogue_shooter/lib/components/enemy_creator.dart
  class EnemyCreator (line 7) | class EnemyCreator extends TimerComponent
    method onTick (line 15) | void onTick()

FILE: examples/games/rogue_shooter/lib/components/explosion_component.dart
  class ExplosionComponent (line 3) | class ExplosionComponent extends SpriteAnimationComponent
    method onLoad (line 13) | Future<void> onLoad()

FILE: examples/games/rogue_shooter/lib/components/player_component.dart
  class PlayerComponent (line 8) | class PlayerComponent extends SpriteAnimationComponent
    method onLoad (line 15) | Future<void> onLoad()
    method _createBullet (line 37) | void _createBullet()
    method beginFire (line 48) | void beginFire()
    method stopFire (line 52) | void stopFire()
    method takeHit (line 56) | void takeHit()
    method onCollisionStart (line 61) | void onCollisionStart(

FILE: examples/games/rogue_shooter/lib/components/star_background_creator.dart
  class StarBackGroundCreator (line 8) | class StarBackGroundCreator extends Component
    method onLoad (line 18) | Future<void> onLoad()
    method _createStarAt (line 38) | void _createStarAt(double x, double y)
    method _createRowOfStars (line 50) | void _createRowOfStars(double y)
    method _createInitialStars (line 62) | void _createInitialStars()

FILE: examples/games/rogue_shooter/lib/components/star_component.dart
  class StarComponent (line 3) | class StarComponent extends SpriteAnimationComponent with HasGameReferen...
    method update (line 10) | void update(double dt)

FILE: examples/games/rogue_shooter/lib/main.dart
  function main (line 5) | void main()

FILE: examples/games/rogue_shooter/lib/rogue_shooter_game.dart
  class RogueShooterGame (line 9) | class RogueShooterGame extends FlameGame
    method onLoad (line 60) | Future<void> onLoad()
    method update (line 111) | void update(double dt)
    method _updateBatchingLabel (line 122) | void _updateBatchingLabel()
    method onDragStart (line 132) | void onDragStart(DragStartEvent event)
    method onDragEnd (line 138) | void onDragEnd(DragEndEvent event)
    method onDragCancel (line 144) | void onDragCancel(DragCancelEvent event)
    method onDragUpdate (line 150) | void onDragUpdate(DragUpdateEvent event)
    method increaseScore (line 155) | void increaseScore()
  class BatchGroup (line 160) | class BatchGroup extends PositionComponent with HasAutoBatchedChildren {

FILE: examples/games/rogue_shooter/lib/rogue_shooter_widget.dart
  class RogueShooterWidget (line 5) | class RogueShooterWidget extends StatelessWidget {
    method build (line 9) | Widget build(BuildContext context)

FILE: examples/games/trex/lib/background/cloud.dart
  class Cloud (line 6) | class Cloud extends SpriteComponent
    method onLoad (line 28) | Future<void> onLoad()
    method update (line 37) | void update(double dt)
    method onGameResize (line 54) | void onGameResize(Vector2 size)

FILE: examples/games/trex/lib/background/cloud_manager.dart
  class CloudManager (line 6) | class CloudManager extends PositionComponent with HasGameReference<TRexG...
    method addCloud (line 11) | void addCloud()
    method update (line 24) | void update(double dt)
    method reset (line 38) | void reset()

FILE: examples/games/trex/lib/background/horizon.dart
  class Horizon (line 10) | class Horizon extends PositionComponent with HasGameReference<TRexGame> {
    method onLoad (line 31) | Future<void> onLoad()
    method update (line 37) | void update(double dt)
    method onGameResize (line 53) | void onGameResize(Vector2 size)
    method reset (line 61) | void reset()
    method _generateLines (line 67) | List<SpriteComponent> _generateLines()

FILE: examples/games/trex/lib/game_over.dart
  class GameOverPanel (line 6) | class GameOverPanel extends Component {
    method onLoad (line 10) | Future<void> onLoad()
    method renderTree (line 16) | void renderTree(Canvas canvas)
  class GameOverText (line 23) | class GameOverText extends SpriteComponent with HasGameReference<TRexGam...
    method onLoad (line 27) | Future<void> onLoad()
    method onGameResize (line 36) | void onGameResize(Vector2 size)
  class GameOverRestart (line 43) | class GameOverRestart extends SpriteComponent with HasGameReference<TRex...
    method onLoad (line 47) | Future<void> onLoad()
    method onGameResize (line 56) | void onGameResize(Vector2 size)

FILE: examples/games/trex/lib/main.dart
  function main (line 5) | void main()

FILE: examples/games/trex/lib/obstacle/obstacle.dart
  class Obstacle (line 6) | class Obstacle extends SpriteComponent with HasGameReference<TRexGame> {
    method onLoad (line 23) | Future<void> onLoad()
    method computeGap (line 31) | double computeGap(double gapCoefficient, double speed)
    method update (line 39) | void update(double dt)

FILE: examples/games/trex/lib/obstacle/obstacle_manager.dart
  class ObstacleManager (line 9) | class ObstacleManager extends Component with HasGameReference<TRexGame> {
    method update (line 16) | void update(double dt)
    method addNewObstacle (line 35) | void addNewObstacle()
    method duplicateObstacleCheck (line 59) | bool duplicateObstacleCheck(ObstacleType nextType)
    method reset (line 68) | void reset()
    method _groupSize (line 73) | int _groupSize(ObstacleTypeSettings settings)

FILE: examples/games/trex/lib/obstacle/obstacle_type.dart
  type ObstacleType (line 8) | enum ObstacleType {
  class ObstacleTypeSettings (line 13) | class ObstacleTypeSettings {
    method sprite (line 91) | Sprite sprite(Image spriteImage)

FILE: examples/games/trex/lib/player.dart
  type PlayerState (line 5) | enum PlayerState { crashed, jumping, running, waiting }
  class Player (line 7) | class Player extends SpriteAnimationGroupComponent<PlayerState>
    method onLoad (line 24) | Future<void> onLoad()
    method jump (line 63) | void jump(double speed)
    method reset (line 72) | void reset()
    method update (line 79) | void update(double dt)
    method onGameResize (line 97) | void onGameResize(Vector2 size)
    method onCollisionStart (line 103) | void onCollisionStart(
    method _getAnimation (line 111) | SpriteAnimation _getAnimation({

FILE: examples/games/trex/lib/trex_game.dart
  type GameState (line 16) | enum GameState { playing, intro, gameOver }
  class TRexGame (line 18) | class TRexGame extends FlameGame
    method backgroundColor (line 30) | Color backgroundColor()
    method scoreString (line 45) | String scoreString(int score)
    method onLoad (line 51) | Future<void> onLoad()
    method onKeyEvent (line 92) | KeyEventResult onKeyEvent(
    method onTapDown (line 104) | void onTapDown(TapDownEvent event)
    method onAction (line 108) | void onAction()
    method gameOver (line 116) | void gameOver()
    method restart (line 123) | void restart()
    method update (line 138) | void update(double dt)

FILE: examples/games/trex/lib/trex_widget.dart
  class TRexWidget (line 5) | class TRexWidget extends StatelessWidget {
    method build (line 9) | Widget build(BuildContext context)

FILE: examples/lib/commons/commons.dart
  function baseLink (line 1) | String baseLink(String path)

FILE: examples/lib/commons/ember.dart
  class Ember (line 5) | class Ember<T extends FlameGame> extends SpriteAnimationComponent
    method onLoad (line 15) | Future<void> onLoad()

FILE: examples/lib/main.dart
  function main (line 45) | void main()
  function runAsDashbook (line 69) | void runAsDashbook()

FILE: examples/lib/platform/page_provider.dart
  class PageProvider (line 1) | abstract class PageProvider {
    method getPage (line 2) | String? getPage()

FILE: examples/lib/platform/stub_provider.dart
  class PageProviderImpl (line 3) | class PageProviderImpl extends PageProvider {
    method getPage (line 5) | String? getPage()

FILE: examples/lib/platform/web_provider.dart
  class PageProviderImpl (line 4) | class PageProviderImpl extends PageProvider {
    method getPage (line 6) | String? getPage()

FILE: examples/lib/stories/animations/animation_group_example.dart
  type RobotState (line 7) | enum RobotState {
  class AnimationGroupExample (line 12) | class AnimationGroupExample extends FlameGame with TapCallbacks {
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 57) | void onTapDown(_)
    method onTapCancel (line 62) | void onTapCancel(_)
    method onTapUp (line 67) | void onTapUp(_)
    method backgroundColor (line 72) | Color backgroundColor()

FILE: examples/lib/stories/animations/animations.dart
  function addAnimationStories (line 9) | void addAnimationStories(Dashbook dashbook)

FILE: examples/lib/stories/animations/aseprite_example.dart
  class AsepriteExample (line 4) | class AsepriteExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/animations/basic_animation_example.dart
  class BasicAnimationsExample (line 8) | class BasicAnimationsExample extends FlameGame {
  class BasicAnimationsWorld (line 19) | class BasicAnimationsWorld extends World with TapCallbacks, HasGameRefer...
    method onLoad (line 23) | Future<void> onLoad()
    method onTapDown (line 56) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/animations/benchmark_example.dart
  class BenchmarkExample (line 8) | class BenchmarkExample extends FlameGame {
    method onLoad (line 22) | Future<void> onLoad()
    method update (line 39) | void update(double dt)
  class BenchmarkWorld (line 46) | class BenchmarkWorld extends World
    method onTapDown (line 51) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/bridge_libraries/audio/audio.dart
  function addAudioStories (line 6) | void addAudioStories(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/audio/basic_audio_example.dart
  class BasicAudioExample (line 9) | class BasicAudioExample extends FlameGame {
    method onLoad (line 32) | Future<void> onLoad()
    method startBgmMusic (line 77) | void startBgmMusic()
    method fireOne (line 82) | void fireOne()
    method fireTwo (line 86) | void fireTwo()
    method onRemove (line 91) | void onRemove()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/animated_body_example.dart
  class AnimatedBodyExample (line 9) | class AnimatedBodyExample extends Forge2DGame {
  class AnimatedBodyWorld (line 24) | class AnimatedBodyWorld extends Forge2DWorld
    method onLoad (line 30) | Future<void> onLoad()
    method onTapDown (line 48) | void onTapDown(TapDownEvent info)
  class ChopperBody (line 61) | class ChopperBody extends BodyComponent {
    method createBody (line 74) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/blob_example.dart
  class BlobExample (line 8) | class BlobExample extends Forge2DGame {
  class BlobWorld (line 18) | class BlobWorld extends Forge2DWorld
    method onLoad (line 21) | Future<void> onLoad()
    method onTapDown (line 40) | void onTapDown(TapDownEvent info)
  class Ground (line 46) | class Ground extends BodyComponent {
    method createBody (line 52) | Body createBody()
  class BlobPart (line 69) | class BlobPart extends BodyComponent {
    method createBody (line 83) | Body createBody()
  class FallingBox (line 108) | class FallingBox extends BodyComponent {
    method createBody (line 114) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/camera_example.dart
  class CameraExample (line 6) | class CameraExample extends Forge2DGame {
  class CameraExampleWorld (line 15) | class CameraExampleWorld extends DominoExampleWorld {
    method onTapDown (line 17) | void onTapDown(TapDownEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/composition_example.dart
  class CompositionExample (line 11) | class CompositionExample extends Forge2DGame {
    method onLoad (line 20) | Future<void> onLoad()
  class TappableText (line 29) | class TappableText extends TextComponent with TapCallbacks {
    method onLoad (line 39) | Future<void> onLoad()
    method onTapDown (line 52) | void onTapDown(TapDownEvent event)
  class TappableBall (line 65) | class TappableBall extends Ball with TapCallbacks {
    method onLoad (line 76) | Future<void> onLoad()
    method update (line 87) | void update(double dt)
    method onTapDown (line 93) | bool onTapDown(_)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/contact_callbacks_example.dart
  class ContactCallbacksExample (line 9) | class ContactCallbacksExample extends Forge2DGame {
  class ContactCallbackWorld (line 21) | class ContactCallbackWorld extends Forge2DWorld
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 31) | void onTapDown(TapDownEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/domino_example.dart
  class DominoExample (line 9) | class DominoExample extends Forge2DGame {
  class DominoExampleWorld (line 20) | class DominoExampleWorld extends Forge2DWorld
    method onLoad (line 25) | Future<void> onLoad()
    method onTapDown (line 48) | void onTapDown(TapDownEvent info)
  class Platform (line 54) | class Platform extends BodyComponent {
    method createBody (line 60) | Body createBody()
  class DominoBrick (line 70) | class DominoBrick extends BodyComponent {
    method createBody (line 76) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/drag_callbacks_example.dart
  class DragCallbacksExample (line 7) | class DragCallbacksExample extends Forge2DGame {
    method onLoad (line 17) | Future<void> onLoad()
  class DraggableBall (line 25) | class DraggableBall extends Ball with DragCallbacks {
    method onDragStart (line 32) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 38) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 43) | void onDragEnd(DragEndEvent event)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/flame_forge2d.dart
  function link (line 28) | String link(String example)
  function addForge2DStories (line 31) | void addForge2DStories(Dashbook dashbook)
  function addJointsStories (line 109) | void addJointsStories(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/constant_volume_joint.dart
  class ConstantVolumeJointExample (line 9) | class ConstantVolumeJointExample extends Forge2DGame {
  class SpriteBodyWorld (line 18) | class SpriteBodyWorld extends Forge2DWorld
    method onLoad (line 21) | Future<void> onLoad()
    method onTapDown (line 27) | Future<void> onTapDown(TapDownEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/distance_joint.dart
  class DistanceJointExample (line 7) | class DistanceJointExample extends Forge2DGame {
  class DistanceJointWorld (line 16) | class DistanceJointWorld extends Forge2DWorld
    method onLoad (line 19) | Future<void> onLoad()
    method onTapDown (line 25) | Future<void> onTapDown(TapDownEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/friction_joint.dart
  class FrictionJointExample (line 7) | class FrictionJointExample extends Forge2DGame {
  class FrictionJointWorld (line 17) | class FrictionJointWorld extends Forge2DWorld
    method onLoad (line 23) | Future<void> onLoad()
    method onTapDown (line 38) | Future<void> onTapDown(TapDownEvent info)
    method createFrictionJoint (line 43) | void createFrictionJoint(Body first, Body second)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/gear_joint.dart
  class GearJointExample (line 8) | class GearJointExample extends Forge2DGame {
  class GearJointWorld (line 19) | class GearJointWorld extends Forge2DWorld with HasGameReference<Forge2DG...
    method onLoad (line 28) | Future<void> onLoad()
    method createPrismaticJoint (line 57) | PrismaticJoint createPrismaticJoint(Body box, Vector2 anchor)
    method createRevoluteJoint (line 76) | RevoluteJoint createRevoluteJoint(Body ball, Vector2 anchor)
    method createGearJoint (line 91) | void createGearJoint(Joint first, Joint second, double gearRatio)
  class JointRenderer (line 104) | class JointRenderer extends Component {
    method render (line 113) | void render(Canvas canvas)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/motor_joint.dart
  class MotorJointExample (line 9) | class MotorJointExample extends Forge2DGame {
  class MotorJointWorld (line 19) | class MotorJointWorld extends Forge2DWorld with TapCallbacks {
    method onLoad (line 27) | Future<void> onLoad()
    method onTapDown (line 48) | void onTapDown(TapDownEvent info)
    method createMotorJoint (line 53) | MotorJoint createMotorJoint(Body first, Body second)
    method update (line 68) | void update(double dt)
  class JointRenderer (line 86) | class JointRenderer extends Component {
    method render (line 92) | void render(Canvas canvas)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/mouse_joint.dart
  class MouseJointExample (line 8) | class MouseJointExample extends Forge2DGame {
  class MouseJointWorld (line 18) | class MouseJointWorld extends Forge2DWorld
    method onLoad (line 25) | Future<void> onLoad()
    method onDragStart (line 39) | void onDragStart(DragStartEvent info)
    method onDragUpdate (line 58) | void onDragUpdate(DragUpdateEvent info)
    method onDragEnd (line 63) | void onDragEnd(DragEndEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/prismatic_joint.dart
  class PrismaticJointExample (line 7) | class PrismaticJointExample extends Forge2DGame {
    method onLoad (line 18) | Future<void> onLoad()
    method createJoint (line 29) | PrismaticJoint createJoint(Body box, Vector2 anchor)
  class JointRenderer (line 52) | class JointRenderer extends Component {
    method render (line 61) | void render(Canvas canvas)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/pulley_joint.dart
  class PulleyJointExample (line 8) | class PulleyJointExample extends Forge2DGame {
    method onLoad (line 15) | Future<void> onLoad()
    method createJoint (line 51) | PulleyJoint createJoint(
  class PulleyRenderer (line 73) | class PulleyRenderer extends Component {
    method render (line 79) | void render(Canvas canvas)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/revolute_joint.dart
  class RevoluteJointExample (line 9) | class RevoluteJointExample extends Forge2DGame {
  class RevoluteJointWorld (line 21) | class RevoluteJointWorld extends Forge2DWorld
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 30) | void onTapDown(TapDownEvent info)
  class CircleShuffler (line 38) | class CircleShuffler extends BodyComponent {
    method createBody (line 44) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/rope_joint.dart
  class RopeJointExample (line 8) | class RopeJointExample extends Forge2DGame {
  class RopeJointWorld (line 19) | class RopeJointWorld extends Forge2DWorld
    method onLoad (line 24) | Future<void> onLoad()
    method createHandle (line 31) | Future<Body> createHandle()
    method createRope (line 45) | Future<void> createRope(Body handle)
    method createPrismaticJoint (line 59) | void createPrismaticJoint(Body box, Vector2 anchor)
    method createRopeJoint (line 78) | void createRopeJoint(Body first, Body second)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/joints/weld_joint.dart
  class WeldJointExample (line 8) | class WeldJointExample extends Forge2DGame {
  class WeldJointWorld (line 17) | class WeldJointWorld extends Forge2DWorld
    method onLoad (line 23) | Future<void> onLoad()
    method createBridge (line 48) | Future<void> createBridge(
    method createWeldJoint (line 91) | void createWeldJoint(Body first, Body second, Vector2 anchor)
    method onTapDown (line 98) | Future<void> onTapDown(TapDownEvent info)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/raycast_example.dart
  class RaycastExample (line 11) | class RaycastExample extends Forge2DGame with MouseMovementDetector {
    method onLoad (line 29) | Future<void> onLoad()
    method onMouseMove (line 59) | void onMouseMove(PointerHoverInfo info)
    method fireBlueRay (line 77) | void fireBlueRay(Vector2 rayStart, Vector2 rayTarget)
    method fireRedRay (line 92) | void fireRedRay(Vector2 rayStart, Vector2 rayTarget)
    method update (line 108) | void update(double dt)
  class LineComponent (line 124) | class LineComponent extends Component {
    method update (line 132) | void update(double dt)
    method render (line 142) | void render(Canvas canvas)
  class Box (line 153) | class Box extends BodyComponent {
    method createBody (line 159) | Body createBody()
  class NearestBoxRayCastCallback (line 167) | class NearestBoxRayCastCallback extends RayCastCallback {
    method reportFixture (line 173) | double reportFixture(
  class FarthestBoxRayCastCallback (line 190) | class FarthestBoxRayCastCallback extends RayCastCallback {
    method reportFixture (line 197) | double reportFixture(

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/revolute_joint_with_motor_example.dart
  class RevoluteJointWithMotorExample (line 9) | class RevoluteJointWithMotorExample extends Forge2DGame {
  class RevoluteJointWithMotorWorld (line 22) | class RevoluteJointWithMotorWorld extends Forge2DWorld
    method onLoad (line 27) | Future<void> onLoad()
    method onTapDown (line 38) | void onTapDown(TapDownEvent info)
  class CircleShuffler (line 48) | class CircleShuffler extends BodyComponent {
    method createBody (line 54) | Body createBody()
  class CornerRamp (line 94) | class CornerRamp extends BodyComponent {
    method createBody (line 101) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/sprite_body_example.dart
  class SpriteBodyExample (line 8) | class SpriteBodyExample extends Forge2DGame {
  class SpriteBodyWorld (line 21) | class SpriteBodyWorld extends Forge2DWorld
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 30) | void onTapDown(TapDownEvent info)
  class Pizza (line 37) | class Pizza extends BodyComponent {
    method onLoad (line 47) | Future<void> onLoad()
    method createBody (line 61) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/tap_callbacks_example.dart
  class TapCallbacksExample (line 7) | class TapCallbacksExample extends Forge2DGame {
    method onLoad (line 17) | Future<void> onLoad()
  class TappableBall (line 25) | class TappableBall extends Ball with TapCallbacks {
    method onTapDown (line 32) | void onTapDown(_)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/utils/balls.dart
  class Ball (line 6) | class Ball extends BodyComponent with ContactCallbacks {
    method randomPaint (line 31) | Paint randomPaint()
    method createBody (line 34) | Body createBody()
    method renderCircle (line 55) | void renderCircle(Canvas canvas, Offset center, double radius)
    method update (line 65) | void update(double dt)
    method beginContact (line 77) | void beginContact(Object other, Contact contact)
  class WhiteBall (line 96) | class WhiteBall extends Ball with ContactCallbacks {
    method beginContact (line 103) | void beginContact(Object other, Contact contact)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/utils/boundaries.dart
  function createBoundaries (line 4) | List<Wall> createBoundaries(Forge2DGame game, {double? strokeWidth})
  class Wall (line 19) | class Wall extends BodyComponent {
    method createBody (line 28) | Body createBody()

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/utils/boxes.dart
  class Box (line 8) | class Box extends BodyComponent {
    method randomPaint (line 28) | Paint randomPaint()
    method createBody (line 31) | Body createBody()
  class DraggableBox (line 50) | class DraggableBox extends Box with DragCallbacks {
    method update (line 62) | void update(double dt)
    method onDragStart (line 71) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 90) | bool onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 99) | void onDragEnd(DragEndEvent event)

FILE: examples/lib/stories/bridge_libraries/flame_forge2d/widget_example.dart
  class WidgetExample (line 6) | class WidgetExample extends Forge2DGame {
    method onLoad (line 19) | Future<void> onLoad()
    method createBody (line 25) | Body createBody()
    method createBodyId (line 43) | int createBodyId(int id)
    method update (line 49) | void update(double dt)
  class BodyWidgetExample (line 61) | class BodyWidgetExample extends StatelessWidget {
    method build (line 65) | Widget build(BuildContext context)
  class BodyButtonWidget (line 81) | class BodyButtonWidget extends StatefulWidget {
    method createState (line 92) | State<StatefulWidget> createState()
  class _BodyButtonState (line 97) | class _BodyButtonState extends State<BodyButtonWidget> {
    method build (line 111) | Widget build(BuildContext context)

FILE: examples/lib/stories/bridge_libraries/flame_isolate/isolate.dart
  function addFlameIsolateExample (line 6) | void addFlameIsolateExample(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/flame_isolate/simple_isolate_example.dart
  class SimpleIsolateExample (line 11) | class SimpleIsolateExample extends FlameGame {
    method onLoad (line 25) | Future<void> onLoad()
  type ComputeType (line 60) | enum ComputeType {
  class CalculatePrimeNumber (line 70) | class CalculatePrimeNumber extends PositionComponent
    method onLoad (line 82) | void onLoad()
    method onMount (line 88) | Future<void> onMount()
    method update (line 95) | void update(double dt)
    method onRemove (line 100) | void onRemove()
    method _checkNextAgainstPrime (line 115) | Future<void> _checkNextAgainstPrime()
    method onTapDown (line 131) | void onTapDown(_)
    method render (line 149) | void render(Canvas canvas)
  function _isPrime (line 167) | bool _isPrime(int value)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/commons/commons.dart
  function baseLink (line 1) | String baseLink(String path)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/button_row.dart
  class ButtonRow (line 5) | class ButtonRow extends PositionComponent {
    method removeButtons (line 8) | void removeButtons()
    method showNextButton (line 19) | void showNextButton(Function() onNextButtonPressed)
    method showOptionButtons (line 33) | void showOptionButtons({
    method showCloseButton (line 62) | void showCloseButton(Function() onClose)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/command_lifecycle_dialogue_controller.dart
  class CommandLifecycleDialogueController (line 6) | class CommandLifecycleDialogueController extends DialogueControllerCompo...
    method onCommand (line 16) | FutureOr<void> onCommand(UserDefinedCommand command)
    method onCommandFinish (line 22) | FutureOr<void> onCommandFinish(UserDefinedCommand command)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/dialogue_box.dart
  class DialogueBoxComponent (line 6) | class DialogueBoxComponent extends SpriteComponent with HasGameReference {
    method onLoad (line 12) | Future<void> onLoad()
    method changeText (line 23) | void changeText(String newText, Function() goNextLine)
    method showOptions (line 28) | void showOptions({
    method showCloseButton (line 40) | void showCloseButton(Function() onClose)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/dialogue_button.dart
  class DialogueButton (line 6) | class DialogueButton extends SpriteButtonComponent {
    method onLoad (line 19) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/dialogue_controller_component.dart
  class DialogueControllerComponent (line 6) | class DialogueControllerComponent extends Component
    method onNodeStart (line 15) | Future<void> onNodeStart(Node node)
    method _addDialogueBox (line 20) | void _addDialogueBox()
    method onNodeFinish (line 25) | Future<void> onNodeFinish(Node node)
    method _onClose (line 30) | void _onClose()
    method _advance (line 40) | Future<void> _advance()
    method onLineStart (line 45) | FutureOr<bool> onLineStart(DialogueLine line)
    method _changeTextAndShowNextButton (line 52) | void _changeTextAndShowNextButton(DialogueLine line)
    method _goNextLine (line 58) | void _goNextLine()
    method onChoiceStart (line 65) | FutureOr<int?> onChoiceStart(DialogueChoice choice)
    method _onChoice (line 77) | void _onChoice(int optionNumber)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/dialogue_text_box.dart
  class DialogueTextBox (line 5) | class DialogueTextBox extends TextBoxComponent {

FILE: examples/lib/stories/bridge_libraries/flame_jenny/components/menu_button.dart
  class MenuButton (line 7) | class MenuButton extends ButtonComponent {
    method onLoad (line 22) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_jenny/jenny.dart
  function addFlameJennyExample (line 8) | void addFlameJennyExample(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/flame_jenny/jenny_advanced_example.dart
  class JennyAdvancedExample (line 12) | class JennyAdvancedExample extends FlameGame {
    method startDialogue (line 38) | Future<void> startDialogue(String playerName)
    method updateCoins (line 55) | void updateCoins(int amountChange)
    method onLoad (line 61) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_jenny/jenny_command_lifecycle_example.dart
  class JennyCommandLifecycleExample (line 9) | class JennyCommandLifecycleExample extends FlameGame {
    method startDialogue (line 21) | Future<void> startDialogue()
    method onLoad (line 65) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_jenny/jenny_simple_example.dart
  class JennySimpleExample (line 7) | class JennySimpleExample extends FlameGame {
    method startDialogue (line 13) | Future<void> startDialogue()
    method onLoad (line 27) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_lottie/lottie.dart
  function addFlameLottieExample (line 6) | void addFlameLottieExample(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/flame_lottie/lottie_animation_example.dart
  class LottieAnimationExample (line 4) | class LottieAnimationExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/bridge_libraries/flame_spine/basic_spine_example.dart
  class FlameSpineExample (line 6) | class FlameSpineExample extends FlameGame with TapCallbacks {
    method onLoad (line 29) | Future<void> onLoad()
    method onTapDown (line 48) | void onTapDown(_)
    method onDetach (line 54) | void onDetach()

FILE: examples/lib/stories/bridge_libraries/flame_spine/flame_spine.dart
  function addFlameSpineExamples (line 7) | void addFlameSpineExamples(Dashbook dashbook)

FILE: examples/lib/stories/bridge_libraries/flame_spine/shared_data_spine_example.dart
  class SharedDataSpineExample (line 7) | class SharedDataSpineExample extends FlameGame with TapCallbacks {
    method onLoad (line 18) | Future<void> onLoad()
    method onTapDown (line 52) | void onTapDown(_)
    method onDetach (line 64) | void onDetach()

FILE: examples/lib/stories/camera_and_viewport/camera_and_viewport.dart
  function addCameraAndViewportStories (line 13) | void addCameraAndViewportStories(Dashbook dashbook)

FILE: examples/lib/stories/camera_and_viewport/camera_component_example.dart
  class CameraComponentExample (line 12) | class CameraComponentExample extends FlameGame<AntWorld> with PanDetector {
    method backgroundColor (line 29) | Color backgroundColor()
    method onLoad (line 32) | Future<void> onLoad()
    method onPanStart (line 48) | bool onPanStart(DragStartInfo info)
    method onPanUpdate (line 55) | bool onPanUpdate(DragUpdateInfo info)
    method onPanEnd (line 61) | bool onPanEnd(DragEndInfo info)
    method onPanCancel (line 67) | bool onPanCancel()
    method _updateMagnifyingGlassPosition (line 72) | void _updateMagnifyingGlassPosition(Vector2 point)
  class Bezel (line 80) | class Bezel extends PositionComponent {
    method onLoad (line 104) | void onLoad()
    method render (line 154) | void render(Canvas canvas)
  class AntWorld (line 165) | class AntWorld extends World {
    method onLoad (line 171) | Future<void> onLoad()
    method render (line 189) | void render(Canvas canvas)
  class DragonCurve (line 196) | class DragonCurve extends PositionComponent {
    method initPath (line 204) | void initPath()
    method boundingRect (line 220) | Rect boundingRect()
    method onLoad (line 235) | Future<void> onLoad()
    method render (line 254) | void render(Canvas canvas)
  class Ant (line 260) | class Ant extends PositionComponent {
    method legIsMoving (line 294) | bool legIsMoving(int i)
    method setTravelPath (line 296) | void setTravelPath(List<Vector2> path)
    method onLoad (line 307) | Future<void> onLoad()
    method update (line 373) | void update(double dt)
    method planNextStep (line 403) | void planNextStep()
    method planNextMove (line 423) | void planNextMove()
    method render (line 459) | void render(Canvas canvas)
  class InsectLeg (line 481) | class InsectLeg {
    method placeFoot (line 521) | bool placeFoot(Vector2 pos)
  function distance (line 546) | double distance(num x0, num y0, num x1, num y1)

FILE: examples/lib/stories/camera_and_viewport/camera_component_properties_example.dart
  class CameraComponentPropertiesExample (line 8) | class CameraComponentPropertiesExample extends FlameGame {
    method backgroundColor (line 37) | Color backgroundColor()
    method onLoad (line 40) | Future<void> onLoad()
    method onGameResize (line 56) | void onGameResize(Vector2 size)
    method updateSize (line 63) | void updateSize(Vector2 size)
  class ViewportFrame (line 78) | class ViewportFrame extends Component {
    method render (line 85) | void render(Canvas canvas)
  class Background (line 97) | class Background extends Component with TapCallbacks {
    method render (line 110) | void render(Canvas canvas)
    method containsLocalPoint (line 122) | bool containsLocalPoint(Vector2 point)
    method onTapDown (line 125) | void onTapDown(TapDownEvent event)
  class ExpandingCircle (line 130) | class ExpandingCircle extends CircleComponent {
    method update (line 145) | void update(double dt)

FILE: examples/lib/stories/camera_and_viewport/camera_follow_and_world_bounds.dart
  class CameraFollowAndWorldBoundsExample (line 10) | class CameraFollowAndWorldBoundsExample extends FlameGame
    method onLoad (line 22) | Future<void> onLoad()
  class Ground (line 33) | class Ground extends PositionComponent {
    method render (line 58) | void render(Canvas canvas)
  class Player (line 66) | class Player extends PositionComponent with KeyboardHandler {
    method update (line 107) | void update(double dt)
    method render (line 127) | void render(Canvas canvas)
    method onKeyEvent (line 143) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)

FILE: examples/lib/stories/camera_and_viewport/coordinate_systems_example.dart
  class CoordinateSystemsExample (line 14) | class CoordinateSystemsExample extends FlameGame
    method onLoad (line 39) | Future<void> onLoad()
    method render (line 60) | void render(Canvas canvas)
    method onTapUp (line 93) | void onTapUp(int pointerId, TapUpInfo info)
    method onTapDown (line 98) | void onTapDown(int pointerId, TapDownInfo info)
    method onDragStart (line 103) | void onDragStart(int pointerId, DragStartInfo info)
    method onDragUpdate (line 108) | void onDragUpdate(int pointerId, DragUpdateInfo info)
    method onScroll (line 113) | void onScroll(PointerScrollInfo info)
    method _describe (line 119) | String _describe(String name, PositionInfo info)
    method update (line 140) | void update(double dt)
    method _roundDouble (line 150) | double _roundDouble(double val, int places)
    method onKeyEvent (line 157) | KeyEventResult onKeyEvent(
  class CoordinateSystemsWidget (line 186) | class CoordinateSystemsWidget extends StatefulWidget {
    method createState (line 190) | State<StatefulWidget> createState()
  class _CoordinateSystemsState (line 195) | class _CoordinateSystemsState extends State<CoordinateSystemsWidget> {
    method build (line 200) | Widget build(BuildContext context)
    method createBlocks (line 225) | List<Widget> createBlocks({

FILE: examples/lib/stories/camera_and_viewport/fixed_resolution_example.dart
  class FixedResolutionExample (line 9) | class FixedResolutionExample extends FlameGame
    method onLoad (line 28) | Future<void> onLoad()
  class FixedResolutionWorld (line 58) | class FixedResolutionWorld extends World
    method onLoad (line 63) | Future<void> onLoad()
    method onTapDown (line 76) | void onTapDown(TapDownEvent event)
    method onDoubleTapDown (line 87) | void onDoubleTapDown(DoubleTapDownEvent event)
  class Background (line 93) | class Background extends PositionComponent {
    method onLoad (line 103) | Future<void> onLoad()
    method render (line 109) | void render(Canvas canvas)
  class TextButton (line 114) | class TextButton extends ButtonComponent {

FILE: examples/lib/stories/camera_and_viewport/follow_component_example.dart
  class FollowComponentExample (line 15) | class FollowComponentExample extends FlameGame
    method onLoad (line 38) | Future<void> onLoad()
  class MovableEmber (line 50) | class MovableEmber extends Ember<FollowComponentExample>
    method onLoad (line 66) | Future<void> onLoad()
    method update (line 78) | void update(double dt)
    method onCollisionStart (line 87) | void onCollisionStart(
    method onKeyEvent (line 103) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)
  class Map (line 135) | class Map extends Component {
    method render (line 167) | void render(Canvas canvas)
    method generateCoordinates (line 176) | Vector2 generateCoordinates()
  class Rock (line 183) | class Rock extends SpriteComponent with HasGameReference, TapCallbacks {
    method onLoad (line 193) | Future<void> onLoad()
    method onTapDown (line 200) | void onTapDown(_)

FILE: examples/lib/stories/camera_and_viewport/static_components_example.dart
  class StaticComponentsExample (line 11) | class StaticComponentsExample extends FlameGame
    method onLoad (line 33) | Future<void> onLoad()
  class _StaticComponentWorld (line 59) | class _StaticComponentWorld extends World
    method onLoad (line 66) | Future<void> onLoad()
    method onTapDown (line 101) | void onTapDown(TapDownEvent event)
  class MyParallaxComponent (line 118) | class MyParallaxComponent extends ParallaxComponent {
    method onLoad (line 120) | Future<void> onLoad()

FILE: examples/lib/stories/camera_and_viewport/zoom_example.dart
  class ZoomExample (line 6) | class ZoomExample extends FlameGame with ScrollDetector, ScaleDetector {
    method onLoad (line 13) | Future<void> onLoad()
    method clampZoom (line 24) | void clampZoom()
    method onScroll (line 31) | void onScroll(PointerScrollInfo info)
    method onScaleStart (line 40) | void onScaleStart(_)
    method onScaleUpdate (line 45) | void onScaleUpdate(ScaleUpdateInfo info)

FILE: examples/lib/stories/collision_detection/bouncing_ball_example.dart
  class BouncingBallExample (line 9) | class BouncingBallExample extends FlameGame with HasCollisionDetection {
    method onLoad (line 15) | void onLoad()
  class Ball (line 23) | class Ball extends CircleComponent
    method onLoad (line 36) | Future<void> onLoad()
    method update (line 49) | void update(double dt)
    method onCollisionStart (line 74) | void onCollisionStart(

FILE: examples/lib/stories/collision_detection/circles_example.dart
  class CirclesExample (line 7) | class CirclesExample extends FlameGame {
  class MyWorld (line 21) | class MyWorld extends World with TapCallbacks, HasCollisionDetection {
    method onTapDown (line 25) | void onTapDown(TapDownEvent info)
  class MyCollidable (line 30) | class MyCollidable extends PositionComponent
    method onLoad (line 41) | Future<void> onLoad()
    method update (line 54) | void update(double dt)
    method onCollisionStart (line 60) | void onCollisionStart(
    method onCollisionEnd (line 73) | void onCollisionEnd(PositionComponent other)

FILE: examples/lib/stories/collision_detection/collidable_animation_example.dart
  class CollidableAnimationExample (line 9) | class CollidableAnimationExample extends FlameGame with HasCollisionDete...
    method onLoad (line 18) | Future<void> onLoad()
  class AnimatedComponent (line 55) | class AnimatedComponent extends SpriteAnimationComponent
    method onLoad (line 72) | Future<void> onLoad()
    method update (line 100) | void update(double dt)
    method onCollisionStart (line 110) | void onCollisionStart(

FILE: examples/lib/stories/collision_detection/collision_detection.dart
  function addCollisionDetectionStories (line 17) | void addCollisionDetectionStories(Dashbook dashbook)

FILE: examples/lib/stories/collision_detection/multiple_shapes_example.dart
  type Shapes (line 11) | enum Shapes { circle, rectangle, polygon }
  class MultipleShapesExample (line 13) | class MultipleShapesExample extends FlameGame with HasCollisionDetection {
  class MultiShapesWorld (line 34) | class MultiShapesWorld extends World with HasGameReference {
    method onLoad (line 36) | Future<void> onLoad()
    method nextRandomCollidable (line 65) | MyCollidable nextRandomCollidable(
  class MyCollidable (line 92) | abstract class MyCollidable extends PositionComponent
    method onMount (line 114) | void onMount()
    method update (line 120) | void update(double dt)
    method render (line 141) | void render(Canvas canvas)
    method onCollisionStart (line 149) | void onCollisionStart(
    method onCollisionEnd (line 158) | void onCollisionEnd(PositionComponent other)
    method onDragEnd (line 166) | void onDragEnd(DragEndEvent event)
  class CollidablePolygon (line 172) | class CollidablePolygon extends MyCollidable {
  class CollidableRectangle (line 196) | class CollidableRectangle extends MyCollidable {
  class CollidableCircle (line 208) | class CollidableCircle extends MyCollidable {
  class SnowmanPart (line 220) | class SnowmanPart extends CircleHitbox {
    method onCollisionStart (line 232) | void onCollisionStart(Set<Vector2> intersectionPoints, ShapeHitbox other)
    method onCollisionEnd (line 243) | void onCollisionEnd(ShapeHitbox other)
  class CollidableSnowman (line 251) | class CollidableSnowman extends MyCollidable {
  function randomCollidable (line 281) | MyCollidable randomCollidable(

FILE: examples/lib/stories/collision_detection/multiple_worlds_example.dart
  class MultipleWorldsExample (line 10) | class MultipleWorldsExample extends FlameGame {
    method onLoad (line 22) | Future<void> onLoad()
  class CollisionDetectionWorld (line 37) | class CollisionDetectionWorld extends World with HasCollisionDetection {}
  class CollidableEmber (line 39) | class CollidableEmber extends Ember with CollisionCallbacks {
    method onLoad (line 47) | Future<void> onLoad()
    method onCollisionStart (line 63) | void onCollisionStart(

FILE: examples/lib/stories/collision_detection/quadtree_example.dart
  class QuadTreeExample (line 15) | class QuadTreeExample extends FlameGame
    method onLoad (line 47) | Future<void> onLoad()
    method onKeyEvent (line 144) | KeyEventResult onKeyEvent(
    method onScroll (line 194) | void onScroll(PointerScrollInfo info)
  class Player (line 202) | class Player extends SpriteComponent
    method onLoad (line 217) | Future<void> onLoad()
    method onCollisionStart (line 228) | void onCollisionStart(
    method onCollisionEnd (line 257) | void onCollisionEnd(PositionComponent other)
  class Bullet (line 266) | class Bullet extends PositionComponent with CollisionCallbacks, HasPaint {
    method render (line 277) | void render(Canvas canvas)
    method update (line 282) | void update(double dt)
    method onComponentTypeCheck (line 289) | bool onComponentTypeCheck(PositionComponent other)
    method onCollisionStart (line 297) | void onCollisionStart(
  class Brick (line 312) | class Brick extends SpriteComponent
    method renderTree (line 327) | void renderTree(Canvas canvas)
  class Water (line 334) | class Water extends SpriteComponent
  function initCollision (line 348) | void initCollision()
  function initCenter (line 352) | void initCenter()
  function updateTree (line 370) | void updateTree(double dt)
  class StaticLayer (line 378) | class StaticLayer extends PreRenderedLayer {
    method drawLayer (line 384) | void drawLayer()
  class LayerComponent (line 395) | class LayerComponent extends PositionComponent {
    method render (line 401) | void render(Canvas canvas)
  class QuadTreeDebugComponent (line 406) | class QuadTreeDebugComponent extends PositionComponent with HasPaint {
    method render (line 422) | void render(Canvas canvas)

FILE: examples/lib/stories/collision_detection/raycast_example.dart
  class RaycastExample (line 10) | class RaycastExample extends FlameGame with HasCollisionDetection {
    method onLoad (line 34) | Future<void> onLoad()
    method update (line 84) | void update(double dt)
    method render (line 112) | void render(Canvas canvas)
    method renderResult (line 117) | void renderResult(

FILE: examples/lib/stories/collision_detection/raycast_light_example.dart
  class RaycastLightExample (line 12) | class RaycastLightExample extends FlameGame
    method onLoad (line 43) | Future<void> onLoad()
    method onTapDown (line 91) | void onTapDown(TapDownEvent event)
    method onMouseMove (line 98) | void onMouseMove(PointerHoverInfo info)
    method update (line 107) | void update(double dt)
    method render (line 133) | void render(Canvas canvas)
    method renderResult (line 143) | void renderResult(

FILE: examples/lib/stories/collision_detection/raycast_max_distance_example.dart
  class RaycastMaxDistanceExample (line 11) | class RaycastMaxDistanceExample extends FlameGame with HasCollisionDetec...
    method onLoad (line 34) | void onLoad()
    method _addMovingWall (line 59) | void _addMovingWall()
    method update (line 81) | void update(double dt)
  class _Character (line 105) | class _Character extends PositionComponent {
    method onLoad (line 115) | Future<void>? onLoad()
    method render (line 135) | void render(Canvas canvas)

FILE: examples/lib/stories/collision_detection/rays_in_shape_example.dart
  class RaysInShapeExample (line 14) | class RaysInShapeExample extends FlameGame {
  class RaysInShapeWorld (line 49) | class RaysInShapeWorld extends World
    method randomRays (line 57) | List<Ray2> randomRays(int count)
    method onLoad (line 105) | FutureOr<void> onLoad()
    method onTapUp (line 112) | void onTapUp(TapUpEvent event)
    method update (line 124) | void update(double dt)
    method render (line 134) | void render(Canvas canvas)

FILE: examples/lib/stories/collision_detection/raytrace_example.dart
  class RaytraceExample (line 11) | class RaytraceExample extends FlameGame
    method onLoad (line 40) | Future<void> onLoad()
    method onTapDown (line 55) | void onTapDown(_)
    method onMouseMove (line 127) | void onMouseMove(PointerHoverInfo info)
    method update (line 138) | void update(double dt)
    method render (line 159) | void render(Canvas canvas)
    method renderResult (line 166) | void renderResult(

FILE: examples/lib/stories/components/clip_component_example.dart
  class TappableEmber (line 6) | class TappableEmber extends Ember with TapCallbacks {
    method onTapDown (line 11) | bool onTapDown(TapDownEvent event)
  class ClipComponentExample (line 17) | class ClipComponentExample extends FlameGame {
    method onLoad (line 29) | Future<void> onLoad()

FILE: examples/lib/stories/components/component_pool_example.dart
  class ComponentPoolExample (line 8) | class ComponentPoolExample extends FlameGame {
  class _BallWorld (line 29) | class _BallWorld extends World with TapCallbacks {
    method onLoad (line 37) | Future<void> onLoad()
    method onTapDown (line 63) | void onTapDown(TapDownEvent event)
  class _PooledBall (line 93) | class _PooledBall extends PositionComponent
    method onLoad (line 108) | Future<void> onLoad()
    method onMount (line 130) | void onMount()
    method update (line 139) | void update(double dt)
  class _StatsDisplay (line 167) | class _StatsDisplay extends TextComponent with ParentIsA<_BallWorld> {
    method update (line 190) | void update(double dt)

FILE: examples/lib/stories/components/components.dart
  function addComponentsStories (line 20) | void addComponentsStories(Dashbook dashbook)

FILE: examples/lib/stories/components/components_notifier_example.dart
  class ComponentsNotifierExampleWidget (line 7) | class ComponentsNotifierExampleWidget extends StatefulWidget {
    method createState (line 19) | State<ComponentsNotifierExampleWidget> createState()
  class _ComponentsNotifierExampleWidgetState (line 23) | class _ComponentsNotifierExampleWidgetState
    method initState (line 26) | void initState()
    method build (line 35) | Widget build(BuildContext context)
  class GameHud (line 61) | class GameHud extends StatelessWidget {
    method build (line 72) | Widget build(BuildContext context)
  class Enemy (line 87) | class Enemy extends CircleComponent with TapCallbacks, Notifier {
    method onTapUp (line 95) | void onTapUp(_)
  class ComponentNotifierExample (line 100) | class ComponentNotifierExample extends FlameGame {
    method onLoad (line 102) | Future<void> onLoad()
    method replay (line 106) | void replay()

FILE: examples/lib/stories/components/components_notifier_provider_example.dart
  class ComponentsNotifierProviderExampleWidget (line 7) | class ComponentsNotifierProviderExampleWidget extends StatefulWidget {
    method createState (line 16) | State<ComponentsNotifierProviderExampleWidget> createState()
  class _ComponentsNotifierProviderExampleWidgetState (line 20) | class _ComponentsNotifierProviderExampleWidgetState
    method initState (line 23) | void initState()
    method build (line 32) | Widget build(BuildContext context)
  class GameHud (line 58) | class GameHud extends StatelessWidget {
    method build (line 62) | Widget build(BuildContext context)
  class Enemy (line 81) | class Enemy extends CircleComponent with TapCallbacks, Notifier {
    method onTapUp (line 89) | void onTapUp(_)
  class ComponentNotifierExample (line 94) | class ComponentNotifierExample extends FlameGame {
    method onLoad (line 96) | Future<void> onLoad()
    method replay (line 100) | void replay()

FILE: examples/lib/stories/components/composability_example.dart
  class ComposabilityExample (line 7) | class ComposabilityExample extends FlameGame {
    method onLoad (line 20) | Future<void> onLoad()
    method update (line 27) | void update(double dt)
  class ParentSquare (line 33) | class ParentSquare extends RectangleComponent with HasGameReference {
    method onLoad (line 45) | Future<void> onLoad()
    method createChildren (line 49) | void createChildren()

FILE: examples/lib/stories/components/debug_example.dart
  class DebugExample (line 4) | class DebugExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class LogoComponent (line 40) | class LogoComponent extends SpriteComponent
    method update (line 50) | void update(double dt)

FILE: examples/lib/stories/components/has_visibility_example.dart
  class HasVisibilityExample (line 6) | class HasVisibilityExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class LogoComponent (line 28) | class LogoComponent extends SpriteComponent with HasVisibility {

FILE: examples/lib/stories/components/icon_component_example.dart
  class IconComponentExample (line 9) | class IconComponentExample extends FlameGame {
    method onLoad (line 43) | Future<void> onLoad()

FILE: examples/lib/stories/components/keys_example.dart
  class KeysExampleWidget (line 7) | class KeysExampleWidget extends StatefulWidget {
    method createState (line 18) | State<KeysExampleWidget> createState()
  class _KeysExampleWidgetState (line 21) | class _KeysExampleWidgetState extends State<KeysExampleWidget> {
    method selectHero (line 24) | void selectHero(ComponentKey key)
    method build (line 32) | Widget build(BuildContext context)
  class KeysExampleGame (line 71) | class KeysExampleGame extends FlameGame {
    method onLoad (line 73) | FutureOr<void> onLoad()
  class SelectableClass (line 103) | class SelectableClass extends SpriteComponent {

FILE: examples/lib/stories/components/look_at_example.dart
  class LookAtExample (line 13) | class LookAtExample extends FlameGame<_TapWorld>
    method backgroundColor (line 28) | Color backgroundColor()
    method onLoad (line 31) | Future<void> onLoad()
    method _spawnChoppers (line 40) | void _spawnChoppers(SpriteSheet spriteSheet)
  class _TapWorld (line 69) | class _TapWorld extends World
    method onKeyEvent (line 98) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)
    method onTapDown (line 109) | void onTapDown(TapDownEvent event)
    method _cycleFlips (line 113) | void _cycleFlips()
    method _updatePosition (line 122) | void _updatePosition(Vector2 position)
  class _ChopperParent (line 133) | class _ChopperParent extends PositionComponent
    method onLoad (line 144) | FutureOr<void> onLoad()
    method update (line 170) | void update(double dt)
    method _asSigns (line 181) | String _asSigns(Vector2 v)
    method _asSign (line 185) | String _asSign(double value)

FILE: examples/lib/stories/components/look_at_smooth_example.dart
  class LookAtSmoothExample (line 12) | class LookAtSmoothExample extends FlameGame {
    method backgroundColor (line 27) | Color backgroundColor()
    method onLoad (line 30) | Future<void> onLoad()
    method _spawnChoppers (line 40) | void _spawnChoppers(SpriteSheet spriteSheet)
    method _spawnInfoText (line 66) | void _spawnInfoText()
  class _TapWorld (line 97) | class _TapWorld extends World with TapCallbacks {
    method onTapDown (line 107) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/components/priority_example.dart
  class PriorityExample (line 6) | class PriorityExample extends FlameGame {
  class Square (line 23) | class Square extends RectangleComponent
    method onTapDown (line 33) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/components/skip_text_box_component_example.dart
  class SkipTextBoxComponentExample (line 7) | class SkipTextBoxComponentExample extends FlameGame {
    method onLoad (line 13) | FutureOr<void> onLoad()

FILE: examples/lib/stories/components/spawn_component_example.dart
  class SpawnComponentExample (line 9) | class SpawnComponentExample extends FlameGame {
  class SpawnComponentWorld (line 16) | class SpawnComponentWorld extends World with TapCallbacks {
    method onTapDown (line 18) | void onTapDown(TapDownEvent info)
  type Shapes (line 57) | enum Shapes {

FILE: examples/lib/stories/components/time_scale_example.dart
  class TimeScaleExample (line 12) | class TimeScaleExample extends FlameGame
    method backgroundColor (line 40) | Color backgroundColor()
    method onLoad (line 43) | Future<void> onLoad()
    method update (line 71) | void update(double dt)
  class _Chopper (line 77) | class _Chopper extends SpriteAnimationComponent
    method onLoad (line 98) | Future<void> onLoad()
    method updateTree (line 105) | void updateTree(double dt)
    method onCollisionStart (line 111) | void onCollisionStart(
    method onCollisionEnd (line 122) | void onCollisionEnd(PositionComponent other)
    method _reset (line 130) | void _reset()

FILE: examples/lib/stories/effects/color_effect_example.dart
  class ColorEffectExample (line 7) | class ColorEffectExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()

FILE: examples/lib/stories/effects/combined_effect_example.dart
  class CombinedEffectExample (line 8) | class CombinedEffectExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
    method duration (line 17) | EffectController duration(double x)
  class Player (line 36) | class Player extends PositionComponent {
    method render (line 55) | void render(Canvas canvas)

FILE: examples/lib/stories/effects/dual_effect_removal_example.dart
  class DualEffectRemovalExample (line 7) | class DualEffectRemovalExample extends FlameGame with TapCallbacks {
    method onLoad (line 21) | Future<void> onLoad()
    method onTapDown (line 51) | void onTapDown(_)

FILE: examples/lib/stories/effects/effect_controllers_example.dart
  class EffectControllersExample (line 8) | class EffectControllersExample extends FlameGame {
  class _EffectControllerWorld (line 33) | class _EffectControllerWorld extends World {
    method onLoad (line 35) | void onLoad()

FILE: examples/lib/stories/effects/effects.dart
  function addEffectsStories (line 19) | void addEffectsStories(Dashbook dashbook)

FILE: examples/lib/stories/effects/function_effect_example.dart
  type RobotState (line 6) | enum RobotState {
  class FunctionEffectExample (line 11) | class FunctionEffectExample extends FlameGame with TapCallbacks {
    method onLoad (line 20) | Future<void> onLoad()

FILE: examples/lib/stories/effects/glow_effect_example.dart
  function main (line 7) | void main()
  class GlowEffectExample (line 11) | class GlowEffectExample extends FlameGame with TapCallbacks {
    method onLoad (line 17) | Future<void> onLoad()

FILE: examples/lib/stories/effects/hue_effect_example.dart
  class HueEffectExample (line 7) | class HueEffectExample extends FlameGame {
    method onLoad (line 14) | Future<void> onLoad()

FILE: examples/lib/stories/effects/move_effect_example.dart
  class MoveEffectExample (line 10) | class MoveEffectExample extends FlameGame {
  class _MoveEffectWorld (line 35) | class _MoveEffectWorld extends World {
    method onLoad (line 37) | void onLoad()

FILE: examples/lib/stories/effects/opacity_effect_example.dart
  class OpacityEffectExample (line 7) | class OpacityEffectExample extends FlameGame with TapCallbacks {
    method onLoad (line 17) | Future<void> onLoad()
    method onTapDown (line 44) | void onTapDown(_)

FILE: examples/lib/stories/effects/remove_effect_example.dart
  class RemoveEffectExample (line 9) | class RemoveEffectExample extends FlameGame {
  class _RemoveEffectWorld (line 25) | class _RemoveEffectWorld extends World {
    method onLoad (line 27) | void onLoad()
  class _RandomCircle (line 36) | class _RandomCircle extends CircleComponent with TapCallbacks {
    method onTapDown (line 52) | void onTapDown(TapDownEvent info)

FILE: examples/lib/stories/effects/rotate_around_effect_example.dart
  class RotateAroundEffectExample (line 11) | class RotateAroundEffectExample extends FlameGame {
  class _RotateAroundEffectWorld (line 27) | class _RotateAroundEffectWorld extends World {
    method onLoad (line 29) | void onLoad()
  class _GlowingBall (line 52) | class _GlowingBall extends CircleComponent {
    method onLoad (line 61) | Future<void> onLoad()

FILE: examples/lib/stories/effects/rotate_effect_example.dart
  class RotateEffectExample (line 10) | class RotateEffectExample extends FlameGame {
  class _RotateEffectWorld (line 30) | class _RotateEffectWorld extends World {
    method onLoad (line 32) | void onLoad()
  class Compass (line 80) | class Compass extends PositionComponent {
    method onLoad (line 100) | Future<void> onLoad()
    method render (line 125) | void render(Canvas canvas)
  class CompassArrow (line 131) | class CompassArrow extends PositionComponent {
    method onLoad (line 146) | Future<void> onLoad()
    method render (line 160) | void render(Canvas canvas)
  class CompassRim (line 166) | class CompassRim extends PositionComponent {
    method onLoad (line 188) | Future<void> onLoad()
    method render (line 207) | void render(Canvas canvas)

FILE: examples/lib/stories/effects/scale_effect_example.dart
  class ScaleEffectExample (line 12) | class ScaleEffectExample extends FlameGame with TapCallbacks {
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 59) | void onTapDown(_)
  class Star (line 76) | class Star extends PositionComponent {
    method render (line 93) | void render(Canvas canvas)

FILE: examples/lib/stories/effects/sequence_effect_example.dart
  class SequenceEffectExample (line 8) | class SequenceEffectExample extends FlameGame {
    method onLoad (line 17) | Future<void> onLoad()
    method duration (line 18) | EffectController duration(double x)
  class Player (line 39) | class Player extends PositionComponent {
    method render (line 58) | void render(Canvas canvas)

FILE: examples/lib/stories/effects/size_effect_example.dart
  class SizeEffectExample (line 10) | class SizeEffectExample extends FlameGame with TapCallbacks {
    method onLoad (line 22) | Future<void> onLoad()
    method onTapDown (line 34) | void onTapDown(_)

FILE: examples/lib/stories/experimental/experimental.dart
  function addExperimentalStories (line 12) | void addExperimentalStories(Dashbook dashbook)

FILE: examples/lib/stories/experimental/layout_component_example_1.dart
  class LayoutComponentExample1 (line 10) | class LayoutComponentExample1 extends FlameGame with DragCallbacks {
    method onLoad (line 38) | FutureOr<void> onLoad()
    method onDragUpdate (line 70) | void onDragUpdate(DragUpdateEvent event)
  class LayoutDemo1 (line 80) | class LayoutDemo1 extends LinearLayoutComponent {
    method onLoad (line 124) | FutureOr<void> onLoad()
    method createComponentList (line 142) | List<Component> createComponentList({

FILE: examples/lib/stories/experimental/layout_component_example_2.dart
  class LayoutComponentExample2 (line 10) | class LayoutComponentExample2 extends FlameGame with DragCallbacks {
    method onLoad (line 32) | FutureOr<void> onLoad()
    method onDragUpdate (line 60) | void onDragUpdate(DragUpdateEvent event)
  class LayoutDemo2 (line 70) | class LayoutDemo2 extends LinearLayoutComponent {
    method onLoad (line 82) | FutureOr<void> onLoad()
    method createComponentList (line 98) | List<Component> createComponentList({

FILE: examples/lib/stories/experimental/layout_component_example_3.dart
  class LayoutComponentExample3 (line 10) | class LayoutComponentExample3 extends FlameGame with DragCallbacks {
    method onLoad (line 24) | FutureOr<void> onLoad()
    method onDragUpdate (line 48) | void onDragUpdate(DragUpdateEvent event)
  class LayoutDemo3 (line 58) | class LayoutDemo3 extends ColumnComponent {
    method onLoad (line 73) | FutureOr<void> onLoad()

FILE: examples/lib/stories/experimental/layout_component_example_size.dart
  type LayoutComponentExampleSize (line 3) | enum LayoutComponentExampleSize {

FILE: examples/lib/stories/experimental/shapes.dart
  class ShapesExample (line 8) | class ShapesExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
  class ShapesComponent (line 48) | class ShapesComponent extends Component {
    method render (line 67) | void render(Canvas canvas)
  class DotsComponent (line 74) | class DotsComponent extends Component {
    method update (line 90) | void update(double dt)
    method generatePoint (line 94) | void generatePoint()
    method render (line 110) | void render(Canvas canvas)

FILE: examples/lib/stories/games/games.dart
  function gamesLink (line 10) | String gamesLink(String game)
  function addGameStories (line 13) | void addGameStories(Dashbook dashbook)

FILE: examples/lib/stories/image/brighten.dart
  class ImageBrightnessExample (line 5) | class ImageBrightnessExample extends FlameGame {
    method onLoad (line 18) | Future<void> onLoad()

FILE: examples/lib/stories/image/darken.dart
  class ImageDarknessExample (line 5) | class ImageDarknessExample extends FlameGame {
    method onLoad (line 18) | Future<void> onLoad()

FILE: examples/lib/stories/image/image.dart
  function addImageStories (line 9) | void addImageStories(Dashbook dashbook)

FILE: examples/lib/stories/image/resize.dart
  class ImageResizeExample (line 5) | class ImageResizeExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()

FILE: examples/lib/stories/input/advanced_button_example.dart
  class AdvancedButtonExample (line 6) | class AdvancedButtonExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()
  class ToggleButton (line 30) | class ToggleButton extends ToggleButtonComponent {
    method onLoad (line 32) | Future<void> onLoad()
  class DefaultButton (line 75) | class DefaultButton extends AdvancedButtonComponent {
    method onLoad (line 77) | Future<void> onLoad()
  class DisableButton (line 93) | class DisableButton extends AdvancedButtonComponent {
    method onLoad (line 95) | Future<void> onLoad()
  class RoundedRectComponent (line 108) | class RoundedRectComponent extends PositionComponent with HasPaint {
    method render (line 110) | void render(Canvas canvas)

FILE: examples/lib/stories/input/double_tap_callbacks_example.dart
  class DoubleTapCallbacksExample (line 7) | class DoubleTapCallbacksExample extends FlameGame with DoubleTapCallbacks {
    method onLoad (line 15) | Future<void> onLoad()
    method onGameResize (line 20) | void onGameResize(Vector2 size)
    method onDoubleTapDown (line 30) | void onDoubleTapDown(DoubleTapDownEvent event)
  class DoubleTappableEmber (line 41) | class DoubleTappableEmber extends Ember with DoubleTapCallbacks {
    method onDoubleTapUp (line 52) | void onDoubleTapUp(DoubleTapEvent event)
    method onDoubleTapCancel (line 57) | void onDoubleTapCancel(DoubleTapCancelEvent event)
    method onDoubleTapDown (line 62) | void onDoubleTapDown(DoubleTapDownEvent event)

FILE: examples/lib/stories/input/drag_callbacks_example.dart
  class DragCallbacksExample (line 6) | class DragCallbacksExample extends FlameGame {
    method onLoad (line 19) | Future<void> onLoad()
  class DraggableEmber (line 28) | class DraggableEmber extends Ember with DragCallbacks {
    method update (line 35) | void update(double dt)
    method onDragUpdate (line 41) | void onDragUpdate(DragUpdateEvent event)

FILE: examples/lib/stories/input/gesture_hitboxes_example.dart
  type Shapes (line 9) | enum Shapes { circle, rectangle, polygon }
  class GestureHitboxesExample (line 11) | class GestureHitboxesExample extends FlameGame {
  class _GestureHitboxesWorld (line 22) | class _GestureHitboxesWorld extends World with TapCallbacks {
    method randomShape (line 25) | PositionComponent randomShape(Vector2 position)
    method onTapDown (line 52) | void onTapDown(TapDownEvent event)
  class MyShapeComponent (line 57) | class MyShapeComponent extends PositionComponent
    method onLoad (line 71) | Future<void> onLoad()
    method onTapDown (line 80) | void onTapDown(TapDownEvent _)
    method onHoverEnter (line 85) | void onHoverEnter()
    method onHoverExit (line 90) | void onHoverExit()

FILE: examples/lib/stories/input/hardware_keyboard_example.dart
  class HardwareKeyboardExample (line 8) | class HardwareKeyboardExample extends FlameGame {
    method replaceKeyComponents (line 22) | void replaceKeyComponents(List<KeyboardKey> newComponents)
    method onLoad (line 32) | void onLoad()
  class MyKeyboardDetector (line 48) | class MyKeyboardDetector extends HardwareKeyboardDetector
    method onKeyEvent (line 51) | void onKeyEvent(KeyEvent event)
  class KeyboardKey (line 208) | class KeyboardKey extends PositionComponent {
    method render (line 249) | void render(Canvas canvas)

FILE: examples/lib/stories/input/hover_callbacks_example.dart
  class HoverCallbacksExample (line 7) | class HoverCallbacksExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
  class HoverCallbacksWorld (line 22) | class HoverCallbacksWorld extends World with TapCallbacks {
    method onLoad (line 24) | Future<void> onLoad()
    method onTapDown (line 30) | void onTapDown(TapDownEvent event)
  class HoverSquare (line 35) | class HoverSquare extends RectangleComponent with HoverCallbacks {

FILE: examples/lib/stories/input/input.dart
  function addInputStories (line 24) | void addInputStories(Dashbook dashbook)

FILE: examples/lib/stories/input/joystick_advanced_example.dart
  class JoystickAdvancedExample (line 12) | class JoystickAdvancedExample extends FlameGame with HasCollisionDetecti...
    method onLoad (line 34) | Future<void> onLoad()
    method update (line 200) | void update(double dt)

FILE: examples/lib/stories/input/joystick_example.dart
  class JoystickExample (line 7) | class JoystickExample extends FlameGame {
    method onLoad (line 18) | Future<void> onLoad()

FILE: examples/lib/stories/input/joystick_player.dart
  class JoystickPlayer (line 5) | class JoystickPlayer extends SpriteComponent
    method onLoad (line 18) | Future<void> onLoad()
    method update (line 24) | void update(double dt)
    method onCollisionStart (line 34) | void onCollisionStart(

FILE: examples/lib/stories/input/keyboard_example.dart
  class KeyboardExample (line 8) | class KeyboardExample extends FlameGame with KeyboardEvents {
    method onLoad (line 22) | Future<void> onLoad()
    method update (line 33) | void update(double dt)
    method onKeyEvent (line 41) | KeyEventResult onKeyEvent(

FILE: examples/lib/stories/input/keyboard_listener_component_example.dart
  class KeyboardListenerComponentExample (line 7) | class KeyboardListenerComponentExample extends FlameGame
    method onLoad (line 29) | Future<void> onLoad()
    method update (line 60) | void update(double dt)
    method _handleKey (line 71) | bool _handleKey(LogicalKeyboardKey key, bool isDown)

FILE: examples/lib/stories/input/mouse_cursor_example.dart
  class MouseCursorExample (line 9) | class MouseCursorExample extends FlameGame with MouseMovementDetector {
    method onMouseMove (line 26) | void onMouseMove(PointerHoverInfo info)
    method _toRect (line 30) | Rect _toRect()
    method render (line 33) | void render(Canvas canvas)
    method update (line 42) | void update(double dt)

FILE: examples/lib/stories/input/mouse_movement_example.dart
  class MouseMovementExample (line 8) | class MouseMovementExample extends FlameGame with MouseMovementDetector {
    method onMouseMove (line 26) | void onMouseMove(PointerHoverInfo info)
    method _toRect (line 30) | Rect _toRect()
    method render (line 33) | void render(Canvas canvas)
    method update (line 42) | void update(double dt)

FILE: examples/lib/stories/input/multitap_advanced_example.dart
  class MultitapAdvancedExample (line 8) | class MultitapAdvancedExample extends FlameGame
    method onTapDown (line 26) | void onTapDown(int pointerId, TapDownInfo info)
    method onTapUp (line 31) | void onTapUp(int pointerId, _)
    method onTapCancel (line 36) | void onTapCancel(int pointerId)
    method onDragCancel (line 41) | void onDragCancel(int pointerId)
    method onDragStart (line 48) | void onDragStart(int pointerId, DragStartInfo info)
    method onDragUpdate (line 54) | void onDragUpdate(int pointerId, DragUpdateInfo info)
    method onDragEnd (line 59) | void onDragEnd(int pointerId, _)
    method render (line 68) | void render(Canvas canvas)

FILE: examples/lib/stories/input/multitap_example.dart
  class MultitapExample (line 8) | class MultitapExample extends FlameGame with MultiTouchTapDetector {
    method onTapDown (line 21) | void onTapDown(int pointerId, TapDownInfo info)
    method onTapUp (line 26) | void onTapUp(int pointerId, _)
    method onTapCancel (line 31) | void onTapCancel(int pointerId)
    method render (line 36) | void render(Canvas canvas)

FILE: examples/lib/stories/input/overlapping_tap_callbacks_example.dart
  class OverlappingTapCallbacksExample (line 7) | class OverlappingTapCallbacksExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class TapCallbacksSquare (line 27) | class TapCallbacksSquare extends RectangleComponent with TapCallbacks {
    method onTapDown (line 40) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/input/scale_example.dart
  function main (line 7) | void main()
  class ScaleExample (line 11) | class ScaleExample extends FlameGame {
    method onLoad (line 26) | Future<void> onLoad()
    method update (line 66) | void update(double dt)
  class InteractiveRectangle (line 80) | class InteractiveRectangle extends RectangleComponent
    method onLoad (line 100) | Future<void> onLoad()
    method onDragStart (line 114) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 120) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 131) | void onDragEnd(DragEndEvent event)
    method onScaleStart (line 138) | void onScaleStart(ScaleStartEvent event)
    method onScaleUpdate (line 148) | void onScaleUpdate(ScaleUpdateEvent event)
    method onScaleEnd (line 168) | void onScaleEnd(ScaleEndEvent event)
  class DragOnlyRectangle (line 176) | class DragOnlyRectangle extends RectangleComponent
    method onLoad (line 191) | Future<void> onLoad()
    method onDragStart (line 205) | void onDragStart(DragStartEvent event)
    method onDragUpdate (line 211) | void onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 220) | void onDragEnd(DragEndEvent event)
  class ScaleOnlyRectangle (line 227) | class ScaleOnlyRectangle extends RectangleComponent with ScaleCallbacks {
    method onLoad (line 241) | Future<void> onLoad()
    method onScaleStart (line 260) | void onScaleStart(ScaleStartEvent event)
    method onScaleUpdate (line 270) | void onScaleUpdate(ScaleUpdateEvent event)
    method onScaleEnd (line 289) | void onScaleEnd(ScaleEndEvent event)

FILE: examples/lib/stories/input/scroll_example.dart
  class ScrollExample (line 7) | class ScrollExample extends FlameGame with ScrollDetector {
    method onScroll (line 22) | void onScroll(PointerScrollInfo info)
    method render (line 27) | void render(Canvas canvas)
    method update (line 33) | void update(double dt)

FILE: examples/lib/stories/input/secondary_tap_callbacks_example.dart
  class SecondaryTapCallbacksExample (line 8) | class SecondaryTapCallbacksExample extends FlameGame {
    method onLoad (line 17) | Future<void> onLoad()
  class TappableSquare (line 23) | class TappableSquare extends RectangleComponent
    method render (line 42) | void render(Canvas canvas)
    method onTapDown (line 53) | void onTapDown(_)
    method onSecondaryTapDown (line 59) | void onSecondaryTapDown(_)

FILE: examples/lib/stories/input/tap_callbacks_example.dart
  class TapCallbacksExample (line 7) | class TapCallbacksExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class TappableSquare (line 21) | class TappableSquare extends RectangleComponent with TapCallbacks {
    method onTapUp (line 37) | void onTapUp(_)
    method onTapDown (line 42) | void onTapDown(_)
    method onTapCancel (line 48) | void onTapCancel(_)

FILE: examples/lib/stories/layout/align_component.dart
  class AlignComponentExample (line 6) | class AlignComponentExample extends FlameGame {
    method onLoad (line 16) | void onLoad()

FILE: examples/lib/stories/layout/layout.dart
  function addLayoutStories (line 6) | void addLayoutStories(Dashbook dashbook)

FILE: examples/lib/stories/parallax/advanced_parallax_example.dart
  class AdvancedParallaxExample (line 7) | class AdvancedParallaxExample extends FlameGame {
    method onLoad (line 21) | Future<void> onLoad()

FILE: examples/lib/stories/parallax/animation_parallax_example.dart
  class AnimationParallaxExample (line 6) | class AnimationParallaxExample extends FlameGame {
    method onLoad (line 12) | Future<void> onLoad()

FILE: examples/lib/stories/parallax/basic_parallax_example.dart
  class BasicParallaxExample (line 7) | class BasicParallaxExample extends FlameGame {
    method onLoad (line 21) | Future<void> onLoad()

FILE: examples/lib/stories/parallax/component_parallax_example.dart
  class ComponentParallaxExample (line 8) | class ComponentParallaxExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
  class MyParallaxComponent (line 24) | class MyParallaxComponent extends ParallaxComponent<ComponentParallaxExa...
    method onLoad (line 26) | Future<void> onLoad()

FILE: examples/lib/stories/parallax/no_fcs_parallax_example.dart
  class NoFCSParallaxExample (line 7) | class NoFCSParallaxExample extends Game {
    method onLoad (line 19) | Future<void> onLoad()
    method update (line 36) | void update(double dt)
    method render (line 41) | void render(Canvas canvas)

FILE: examples/lib/stories/parallax/parallax.dart
  function addParallaxStories (line 14) | void addParallaxStories(Dashbook dashbook)

FILE: examples/lib/stories/parallax/sandbox_layer_parallax_example.dart
  class SandboxLayerParallaxExample (line 6) | class SandboxLayerParallaxExample extends FlameGame {
    method onLoad (line 26) | Future<void> onLoad()

FILE: examples/lib/stories/parallax/small_parallax_example.dart
  class SmallParallaxExample (line 5) | class SmallParallaxExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/rendering/decorator_hue_example.dart
  class DecoratorHueExample (line 9) | class DecoratorHueExample extends FlameGame with TapCallbacks {
    method onLoad (line 23) | Future<void> onLoad()
    method onTapDown (line 45) | void onTapDown(TapDownEvent event)

FILE: examples/lib/stories/rendering/decorator_vs_effect_example.dart
  class DecoratorVsEffectExample (line 9) | class DecoratorVsEffectExample extends FlameGame {
    method onLoad (line 25) | Future<void> onLoad()
    method _buildItem (line 50) | PositionComponent _buildItem(String title, Component object)
    method _buildCompositeObject (line 65) | Component _buildCompositeObject()
  class _GroupOpacityDecorator (line 82) | class _GroupOpacityDecorator extends Decorator {
    method apply (line 89) | void apply(void Function(Canvas) draw, Canvas canvas)

FILE: examples/lib/stories/rendering/decorators.dart
  function addDecoratorStories (line 7) | void addDecoratorStories(Dashbook dashbook)

FILE: examples/lib/stories/rendering/flip_sprite_example.dart
  class FlipSpriteExample (line 4) | class FlipSpriteExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/rendering/isometric_tile_map_example.dart
  class IsometricTileMapExample (line 10) | class IsometricTileMapExample extends FlameGame with MouseMovementDetect...
    method onLoad (line 35) | Future<void> onLoad()
    method render (line 64) | void render(Canvas canvas)
    method onMouseMove (line 75) | void onMouseMove(PointerHoverInfo info)
  class Selector (line 83) | class Selector extends SpriteComponent {
    method render (line 93) | void render(Canvas canvas)

FILE: examples/lib/stories/rendering/layers_example.dart
  class LayerExample (line 7) | class LayerExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
    method render (line 26) | void render(Canvas canvas)
    method backgroundColor (line 33) | Color backgroundColor()
  class GameLayer (line 36) | class GameLayer extends DynamicLayer {
    method drawLayer (line 45) | void drawLayer()
  class BackgroundLayer (line 59) | class BackgroundLayer extends PreRenderedLayer {
    method drawLayer (line 67) | void drawLayer()

FILE: examples/lib/stories/rendering/nine_tile_box_custom_grid_example.dart
  class NineTileBoxCustomGridExample (line 6) | class NineTileBoxCustomGridExample extends FlameGame
    method onLoad (line 18) | Future<void> onLoad()
    method onTapDown (line 39) | void onTapDown(_)
    method onDoubleTap (line 44) | void onDoubleTap()

FILE: examples/lib/stories/rendering/nine_tile_box_example.dart
  class NineTileBoxExample (line 5) | class NineTileBoxExample extends FlameGame
    method onLoad (line 16) | Future<void> onLoad()
    method onTapDown (line 31) | void onTapDown(_)
    method onDoubleTap (line 36) | void onDoubleTap()

FILE: examples/lib/stories/rendering/particles_example.dart
  class ParticlesExample (line 11) | class ParticlesExample extends FlameGame {
    method onLoad (line 36) | Future<void> onLoad()
    method onMount (line 42) | void onMount()
    method onRemove (line 51) | void onRemove()
    method spawnParticles (line 58) | void spawnParticles()
    method circle (line 109) | Particle circle()
    method smallWhiteCircle (line 117) | Particle smallWhiteCircle()
    method movingParticle (line 126) | Particle movingParticle()
    method randomMovingParticle (line 137) | Particle randomMovingParticle()
    method alignedMovingParticles (line 149) | Particle alignedMovingParticles()
    method randomMovingParticles (line 168) | Particle randomMovingParticles()
    method easedMovingParticle (line 183) | Particle easedMovingParticle()
    method intervalMovingParticle (line 202) | Particle intervalMovingParticle()
    method computedParticle (line 221) | Particle computedParticle()
    method steppedComputedParticle (line 239) | Particle steppedComputedParticle()
    method reuseParticles (line 267) | Particle reuseParticles()
    method imageParticle (line 282) | Particle imageParticle()
    method reuseImageParticle (line 295) | Particle reuseImageParticle()
    method rotatingImage (line 320) | Particle rotatingImage({double initialAngle = 0})
    method acceleratedParticles (line 327) | Particle acceleratedParticles()
    method paintParticle (line 346) | Particle paintParticle()
    method spriteParticle (line 377) | Particle spriteParticle()
    method animationParticle (line 386) | Particle animationParticle()
    method componentParticle (line 397) | Particle componentParticle()
    method fireworkParticle (line 409) | Particle fireworkParticle()
    method chainingBehaviors (line 461) | Particle chainingBehaviors()
    method randomCellVector2 (line 489) | Vector2 randomCellVector2()
    method randomMaterialColor (line 495) | Color randomMaterialColor()
    method randomElement (line 500) | T randomElement<T>(List<T> list)
    method getBoomAnimation (line 505) | SpriteAnimation getBoomAnimation()
  function loadGame (line 520) | Future<FlameGame> loadGame()
  class SineCurve (line 528) | class SineCurve extends Curve {
    method transformInternal (line 530) | double transformInternal(double t)
  class TrafficLightComponent (line 537) | class TrafficLightComponent extends Component {
    method onMount (line 548) | void onMount()
    method render (line 553) | void render(Canvas canvas)
    method update (line 558) | void update(double dt)

FILE: examples/lib/stories/rendering/particles_interactive_example.dart
  class ParticlesInteractiveExample (line 10) | class ParticlesInteractiveExample extends FlameGame with PanDetector {
    method onPanUpdate (line 34) | void onPanUpdate(DragUpdateInfo info)

FILE: examples/lib/stories/rendering/rendering.dart
  function addRenderingStories (line 15) | void addRenderingStories(Dashbook dashbook)

FILE: examples/lib/stories/rendering/rich_text_example.dart
  class RichTextExample (line 6) | class RichTextExample extends FlameGame {
    method backgroundColor (line 15) | Color backgroundColor()
    method onLoad (line 18) | Future<void> onLoad()

FILE: examples/lib/stories/rendering/text_box_example.dart
  type TextBoxConfigMaxWidth (line 8) | enum TextBoxConfigMaxWidth {
  class TextBoxExample (line 18) | class TextBoxExample extends FlameGame {
    method onLoad (line 29) | FutureOr<void> onLoad()

FILE: examples/lib/stories/rendering/text_example.dart
  class TextExample (line 9) | class TextExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class MyTextBox (line 116) | class MyTextBox extends TextBoxComponent {
    method onLoad (line 138) | Future<void> onLoad()
    method render (line 150) | void render(Canvas canvas)
  class MyScrollTextBox (line 156) | class MyScrollTextBox extends ScrollTextBoxComponent {
    method onLoad (line 169) | FutureOr<void> onLoad()
    method render (line 178) | void render(Canvas canvas)

FILE: examples/lib/stories/router/router.dart
  function addRouterStories (line 6) | void addRouterStories(Dashbook dashbook)

FILE: examples/lib/stories/router/router_world_example.dart
  class RouterWorldExample (line 10) | class RouterWorldExample extends FlameGame {
    method onLoad (line 19) | Future<void> onLoad()
  class StartPage (line 34) | class StartPage extends Component with HasGameReference<RouterWorldExamp...
    method onGameResize (line 68) | void onGameResize(Vector2 size)
  class Background (line 76) | class Background extends Component {
    method render (line 81) | void render(Canvas canvas)
  class RoundedButton (line 86) | class RoundedButton extends PositionComponent with TapCallbacks {
    method render (line 123) | void render(Canvas canvas)
    method onTapDown (line 130) | void onTapDown(TapDownEvent event)
    method onTapUp (line 135) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 141) | void onTapCancel(TapCancelEvent event)
  class SimpleButton (line 146) | abstract class SimpleButton extends PositionComponent with TapCallbacks {
    method action (line 158) | void action()
    method render (line 161) | void render(Canvas canvas)
    method onTapDown (line 170) | void onTapDown(TapDownEvent event)
    method onTapUp (line 175) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 181) | void onTapCancel(TapCancelEvent event)
  class BackButton (line 186) | class BackButton extends SimpleButton
    method action (line 200) | void action()
  class PauseButton (line 203) | class PauseButton extends SimpleButton
    method action (line 218) | void action()
  class Level1Page (line 228) | class Level1Page extends DecoratedWorld with HasGameReference {
    method onLoad (line 230) | Future<void> onLoad()
    method onMount (line 260) | void onMount()
    method onRemove (line 269) | void onRemove()
  class Level2Page (line 275) | class Level2Page extends DecoratedWorld with HasGameReference {
    method onLoad (line 277) | Future<void> onLoad()
    method onMount (line 317) | void onMount()
    method onRemove (line 326) | void onRemove()
  class Planet (line 332) | class Planet extends CircleComponent
    method onTapDown (line 341) | void onTapDown(TapDownEvent event)
  class Orbit (line 350) | class Orbit extends CircleComponent {
    method onLoad (line 367) | Future<void> onLoad()
  class PauseRoute (line 384) | class PauseRoute extends Route {
    method onPush (line 388) | void onPush(Route? previousRoute)
    method onPop (line 397) | void onPop(Route nextRoute)
  class PausePage (line 405) | class PausePage extends Component
    method onLoad (line 408) | Future<void> onLoad()
    method containsLocalPoint (line 430) | bool containsLocalPoint(Vector2 point)
    method onTapUp (line 433) | void onTapUp(TapUpEvent event)
  class DecoratedWorld (line 436) | class DecoratedWorld extends World with HasTimeScale {
    method renderFromCamera (line 440) | void renderFromCamera(Canvas canvas)
  class YesNoDialog (line 449) | class YesNoDialog extends ValueRoute<bool> {
    method build (line 453) | Component build()

FILE: examples/lib/stories/sprites/base64_sprite_example.dart
  class Base64SpriteExample (line 4) | class Base64SpriteExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/sprites/basic_sprite_example.dart
  class BasicSpriteExample (line 4) | class BasicSpriteExample extends FlameGame {
    method onLoad (line 11) | Future<void> onLoad()

FILE: examples/lib/stories/sprites/sprite_batch_example.dart
  class SpriteBatchExample (line 8) | class SpriteBatchExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()

FILE: examples/lib/stories/sprites/sprite_batch_load_example.dart
  class SpriteBatchLoadExample (line 8) | class SpriteBatchLoadExample extends FlameGame {
    method onLoad (line 16) | Future<void> onLoad()
  class MySpriteBatchComponent (line 21) | class MySpriteBatchComponent extends SpriteBatchComponent
    method onLoad (line 29) | Future<void> onLoad()

FILE: examples/lib/stories/sprites/sprite_group_example.dart
  type ButtonState (line 5) | enum ButtonState { unpressed, pressed }
  class SpriteGroupExample (line 7) | class SpriteGroupExample extends FlameGame {
    method onLoad (line 15) | Future<void> onLoad()
  class ButtonComponent (line 25) | class ButtonComponent extends SpriteGroupComponent<ButtonState>
    method onLoad (line 28) | Future<void> onLoad()
    method onTapDown (line 48) | void onTapDown(_)
    method onTapUp (line 53) | void onTapUp(_)
    method onTapCancel (line 58) | void onTapCancel(_)

FILE: examples/lib/stories/sprites/sprite_sheet_example.dart
  class SpriteSheetExample (line 5) | class SpriteSheetExample extends FlameGame {
    method onLoad (line 12) | Future<void> onLoad()

FILE: examples/lib/stories/sprites/sprites.dart
  function addSpritesStories (line 11) | void addSpritesStories(Dashbook dashbook)

FILE: examples/lib/stories/structure/levels.dart
  class LevelsExample (line 9) | class LevelsExample extends FlameGame {
    method onLoad (line 22) | Future<void> onLoad()
  class ResettableLevel (line 61) | class ResettableLevel extends Level {
    method onLoad (line 63) | Future<void> onLoad()
  class Level1 (line 76) | class Level1 extends Level {
    method onLoad (line 78) | Future<void> onLoad()
  class Level2 (line 84) | class Level2 extends Level {
    method onLoad (line 86) | Future<void> onLoad()
  class Level3 (line 93) | class Level3 extends Level {
    method onLoad (line 95) | Future<void> onLoad()
  class Level (line 103) | class Level extends World with HasGameReference<LevelsExample>, TapCallb...
    method onTapDown (line 105) | void onTapDown(TapDownEvent event)
  class LevelButton (line 110) | class LevelButton extends ButtonComponent {
  class ButtonBackground (line 127) | class ButtonBackground extends PositionComponent with HasAncestor<LevelB...
    method onMount (line 133) | void onMount()
    method render (line 145) | void render(Canvas canvas)

FILE: examples/lib/stories/structure/structure.dart
  function addStructureStories (line 6) | void addStructureStories(Dashbook dashbook)

FILE: examples/lib/stories/svg/svg.dart
  function addSvgStories (line 6) | void addSvgStories(Dashbook dashbook)

FILE: examples/lib/stories/svg/svg_component.dart
  class Player (line 8) | class Player extends SvgComponent with HasGameReference<SvgComponentExam...
    method onLoad (line 14) | Future<void>? onLoad()
    method update (line 21) | void update(double dt)
  class Background (line 36) | class Background extends SvgComponent
    method onLoad (line 46) | Future<void>? onLoad()
  class Balloons (line 53) | class Balloons extends SvgComponent with HasGameReference<SvgComponentEx...
    method onLoad (line 62) | Future<void>? onLoad()
  class SvgComponentExample (line 71) | class SvgComponentExample extends FlameGame {
  class _SvgComponentWorld (line 89) | class _SvgComponentWorld extends World with TapCallbacks, DoubleTapCallb...
    method onLoad (line 93) | Future<void>? onLoad()
    method onTapUp (line 109) | void onTapUp(TapUpEvent info)
    method onDoubleTapDown (line 114) | void onDoubleTapDown(DoubleTapDownEvent info)

FILE: examples/lib/stories/system/overlays_example.dart
  class OverlaysExample (line 7) | class OverlaysExample extends FlameGame with TapCallbacks {
    method onLoad (line 15) | Future<void> onLoad()
    method onTapDown (line 40) | void onTapDown(_)
    method toggleMenu (line 44) | void toggleMenu()
  function _pauseMenuBuilder (line 55) | Widget _pauseMenuBuilder(
  function _secondaryMenuBuilder (line 75) | Widget _secondaryMenuBuilder(BuildContext buildContext, OverlaysExample ...
  function overlayBuilder (line 98) | Widget overlayBuilder(DashbookContext ctx)

FILE: examples/lib/stories/system/pause_resume_example.dart
  class PauseResumeExample (line 6) | class PauseResumeExample extends FlameGame
    method onLoad (line 20) | Future<void> onLoad()
    method onTapDown (line 41) | void onTapDown(_)
    method onDoubleTap (line 50) | void onDoubleTap()

FILE: examples/lib/stories/system/resize_example.dart
  class ResizingRectangle (line 6) | class ResizingRectangle extends RectangleComponent {
    method onGameResize (line 13) | void onGameResize(Vector2 size)
  class ResizeExampleGame (line 20) | class ResizeExampleGame extends FlameGame {

FILE: examples/lib/stories/system/step_engine_example.dart
  class StepEngineExample (line 13) | class StepEngineExample extends FlameGame
    method backgroundColor (line 31) | Color backgroundColor()
    method onLoad (line 34) | Future<void> onLoad()
    method onKeyEvent (line 62) | KeyEventResult onKeyEvent(
    method _createCircularDetectors (line 81) | List<Component> _createCircularDetectors()
  class _DetectorComponents (line 125) | class _DetectorComponents extends CircleComponent with CollisionCallbacks {
    method onCollisionStart (line 134) | void onCollisionStart(
    method onCollisionEnd (line 143) | void onCollisionEnd(PositionComponent other)

FILE: examples/lib/stories/system/system.dart
  function addSystemStories (line 10) | void addSystemStories(Dashbook dashbook)

FILE: examples/lib/stories/system/without_flame_game_example.dart
  class NoFlameGameExample (line 7) | class NoFlameGameExample extends Game with KeyboardEvents {
    method update (line 21) | void update(double dt)
    method render (line 27) | void render(Canvas canvas)
    method onKeyEvent (line 32) | KeyEventResult onKeyEvent(

FILE: examples/lib/stories/tiled/flame_tiled_animation_example.dart
  class FlameTiledAnimationExample (line 4) | class FlameTiledAnimationExample extends FlameGame {
    method onLoad (line 12) | Future<void> onLoad()

FILE: examples/lib/stories/tiled/tiled.dart
  function addTiledStories (line 7) | void addTiledStories(Dashbook dashbook)

FILE: examples/lib/stories/utils/timer_component_example.dart
  class TimerComponentExample (line 6) | class TimerComponentExample extends FlameGame
    method onTapDown (line 18) | void onTapDown(_)
    method onDoubleTap (line 25) | void onDoubleTap()
  class RenderedTimeComponent (line 32) | class RenderedTimeComponent extends TimerComponent {
    method render (line 46) | void render(Canvas canvas)

FILE: examples/lib/stories/utils/timer_example.dart
  class TimerExample (line 6) | class TimerExample extends FlameGame with TapCallbacks {
    method onLoad (line 22) | Future<void> onLoad()
    method onTapDown (line 33) | void onTapDown(_)
    method update (line 38) | void update(double dt)
    method render (line 45) | void render(Canvas canvas)

FILE: examples/lib/stories/utils/utils.dart
  function addUtilsStories (line 7) | void addUtilsStories(Dashbook dashbook)

FILE: examples/lib/stories/widgets/custom_painter_example.dart
  class CustomPainterExample (line 7) | class CustomPainterExample extends FlameGame with TapCallbacks {
    method onLoad (line 17) | Future<void> onLoad()
    method onTapDown (line 22) | void onTapDown(_)
  function customPainterBuilder (line 31) | Widget customPainterBuilder(DashbookContext ctx)
  class PlayerCustomPainter (line 64) | class PlayerCustomPainter extends CustomPainter {
    method paint (line 70) | void paint(Canvas canvas, Size size)
    method shouldRepaint (line 104) | bool shouldRepaint(CustomPainter oldDelegate)
  class Player (line 109) | class Player extends CustomPainterComponent
    method onLoad (line 116) | Future<void> onLoad()
    method update (line 124) | void update(double dt)

FILE: examples/lib/stories/widgets/nine_tile_box_example.dart
  function nineTileBoxBuilder (line 5) | Widget nineTileBoxBuilder(DashbookContext ctx)

FILE: examples/lib/stories/widgets/nine_tile_box_example_with_animation.dart
  function nineTileBoxBuilderWithAnimation (line 7) | Widget nineTileBoxBuilderWithAnimation(DashbookContext ctx)

FILE: examples/lib/stories/widgets/partial_sprite_widget_example.dart
  function partialSpriteWidgetBuilder (line 8) | Widget partialSpriteWidgetBuilder(DashbookContext ctx)

FILE: examples/lib/stories/widgets/sprite_animation_widget_example.dart
  function spriteAnimationWidgetBuilder (line 9) | Widget spriteAnimationWidgetBuilder(DashbookContext ctx)

FILE: examples/lib/stories/widgets/sprite_button_example.dart
  function spriteButtonBuilder (line 6) | Widget spriteButtonBuilder(DashbookContext ctx)

FILE: examples/lib/stories/widgets/sprite_widget_example.dart
  function spriteWidgetBuilder (line 10) | Widget spriteWidgetBuilder(DashbookContext ctx)

FILE: examples/lib/stories/widgets/widgets.dart
  function addWidgetsStories (line 12) | void addWidgetsStories(Dashbook dashbook)

FILE: packages/flame/benchmark/collision_detection_benchmark.dart
  class FlatCollisionBenchmark (line 13) | class FlatCollisionBenchmark extends AsyncBenchmarkBase {
    method main (line 21) | Future<void> main()
    method setup (line 27) | Future<void> setup()
    method run (line 48) | Future<void> run()
  class NestedCollisionBenchmark (line 58) | class NestedCollisionBenchmark extends AsyncBenchmarkBase {
    method main (line 66) | Future<void> main()
    method setup (line 72) | Future<void> setup()
    method run (line 104) | Future<void> run()
  class GlobalVerticesBenchmark (line 113) | class GlobalVerticesBenchmark extends AsyncBenchmarkBase {
    method main (line 121) | Future<void> main()
    method setup (line 127) | Future<void> setup()
    method run (line 158) | Future<void> run()
  class _CollisionGame (line 170) | class _CollisionGame extends FlameGame with HasCollisionDetection {}
  class _MovingBlock (line 172) | class _MovingBlock extends PositionComponent with CollisionCallbacks {
    method update (line 184) | void update(double dt)
  function main (line 193) | Future<void> main()

FILE: packages/flame/benchmark/components_at_point_benchmark.dart
  class BaselineBenchmark (line 16) | class BaselineBenchmark extends AsyncBenchmarkBase {
    method main (line 24) | Future<void> main()
    method setup (line 30) | Future<void> setup()
    method run (line 37) | Future<void> run()
  class CachedHitTestBenchmark (line 61) | class CachedHitTestBenchmark extends AsyncBenchmarkBase {
    method main (line 69) | Future<void> main()
    method setup (line 75) | Future<void> setup()
    method run (line 82) | Future<void> run()
  class UncachedHitTestBenchmark (line 109) | class UncachedHitTestBenchmark extends AsyncBenchmarkBase {
    method main (line 118) | Future<void> main()
    method setup (line 124) | Future<void> setup()
    method run (line 131) | Future<void> run()
  function _buildGame (line 168) | FlameGame _buildGame()
  function buildTree (line 176) | void buildTree(PositionComponent parent, int depth, double size)
  function _generatePositions (line 218) | List<Vector2> _generatePositions(Random random)
  class _TappableComponent (line 228) | class _TappableComponent extends PositionComponent with TapCallbacks {}
  function main (line 230) | Future<void> main()

FILE: packages/flame/benchmark/main.dart
  function main (line 4) | Future<void> main()

FILE: packages/flame/benchmark/render_components_benchmark.dart
  class RenderComponentsBenchmark (line 14) | class RenderComponentsBenchmark extends AsyncBenchmarkBase {
    method main (line 22) | Future<void> main()
    method setup (line 28) | Future<void> setup()
    method run (line 45) | Future<void> run()
  class _BenchmarkComponent (line 52) | class _BenchmarkComponent extends PositionComponent {
    method onLoad (line 62) | Future<void> onLoad()

FILE: packages/flame/benchmark/update_components_benchmark.dart
  class UpdateComponentsBenchmark (line 12) | class UpdateComponentsBenchmark extends AsyncBenchmarkBase {
    method main (line 23) | Future<void> main()
    method setup (line 29) | Future<void> setup()
    method run (line 49) | Future<void> run()
  class _BenchmarkComponent (line 62) | class _BenchmarkComponent extends PositionComponent {
    method onLoad (line 71) | Future<void> onLoad()
    method input (line 77) | void input({
    method update (line 91) | void update(double dt)
    method toString (line 104) | String toString()

FILE: packages/flame/example/lib/main.dart
  function main (line 12) | void main()
  class MyWorld (line 20) | class MyWorld extends World with TapCallbacks {
    method onLoad (line 22) | Future<void> onLoad()
    method onTapDown (line 27) | void onTapDown(TapDownEvent event)
  class Square (line 36) | class Square extends RectangleComponent with TapCallbacks {
    method onLoad (line 52) | Future<void> onLoad()
    method update (line 71) | void update(double dt)
    method onTapDown (line 78) | void onTapDown(TapDownEvent event)

FILE: packages/flame/lib/src/anchor.dart
  class Anchor (line 18) | @immutable
    method toVector2 (line 42) | Vector2 toVector2()
    method toOtherAnchorPosition (line 49) | Vector2 toOtherAnchorPosition(
    method toString (line 88) | String toString()

FILE: packages/flame/lib/src/cache/assets_cache.dart
  class AssetsCache (line 10) | class AssetsCache {
    method clear (line 24) | void clear(String file)
    method clearCache (line 29) | void clearCache()
    method readFile (line 37) | Future<String> readFile(String fileName, {String? package})
    method readBinaryFile (line 50) | Future<Uint8List> readBinaryFile(String fileName, {String? package})
    method readJson (line 63) | Future<Map<String, dynamic>> readJson(
    method _readFile (line 78) | Future<_StringAsset> _readFile(String fileName, {String? package})
    method _readBinary (line 84) | Future<_BinaryAsset> _readBinary(String fileName, {String? package})
    method _readJson (line 91) | Future<_JsonAsset> _readJson(String fileName, {String? package})
    method fromCache (line 99) | T fromCache<T>(String fileName)
  class _Asset (line 118) | sealed class _Asset<T> {
  class _StringAsset (line 123) | class _StringAsset extends _Asset<String> {
  class _BinaryAsset (line 127) | class _BinaryAsset extends _Asset<Uint8List> {
  class _JsonAsset (line 131) | class _JsonAsset extends _Asset<Map<String, dynamic>> {

FILE: packages/flame/lib/src/cache/images.dart
  class Images (line 9) | class Images {
    method add (line 47) | void add(String name, Image image)
    method addFromBase64Data (line 54) | Future<void> addFromBase64Data(String name, String base64Data)
    method fetchOrGenerate (line 65) | Future<Image> fetchOrGenerate(
    method clear (line 80) | void clear(String name)
    method clearCache (line 90) | void clearCache()
    method fromCache (line 102) | Image fromCache(String name)
    method load (line 120) | Future<Image> load(String fileName, {String? key, String? package})
    method loadAll (line 127) | Future<List<Image>> loadAll(List<String> fileNames)
    method loadAllImages (line 132) | Future<List<Image>> loadAllImages()
    method loadAllFromPattern (line 143) | Future<List<Image>> loadAllFromPattern(Pattern pattern)
    method containsKey (line 156) | bool containsKey(String key)
    method findKeyForImage (line 161) | String? findKeyForImage(Image image)
    method ready (line 168) | Future<void> ready()
    method fromBase64 (line 172) | Future<Image> fromBase64(String key, String base64)
    method _fetchFromBase64 (line 178) | Future<Image> _fetchFromBase64(String base64Data)
    method _fetchToMemory (line 184) | Future<Image> _fetchToMemory(String name, {String? package})
  class _ImageAsset (line 196) | class _ImageAsset {
    method retrieveAsync (line 211) | Future<Image> retrieveAsync()
    method dispose (line 214) | void dispose()

FILE: packages/flame/lib/src/cache/matrix_pool.dart
  class MatrixPool (line 4) | class MatrixPool {
    method getBuffer (line 8) | Float64List getBuffer()
    method releaseBuffer (line 15) | void releaseBuffer(Float64List buffer)
  function canvasTransform (line 22) | void canvasTransform(Canvas canvas, Float32List matrix4)
  function pathTransform (line 33) | Path pathTransform(Path path, Float32List matrix4)

FILE: packages/flame/lib/src/cache/memory_cache.dart
  class MemoryCache (line 4) | class MemoryCache<K, V> {
    method setValue (line 13) | void setValue(K key, V value)
    method clear (line 26) | void clear(K key)
    method clearCache (line 31) | void clearCache()
    method getValue (line 36) | V? getValue(K key)
    method containsKey (line 39) | bool containsKey(K key)

FILE: packages/flame/lib/src/cache/value_cache.dart
  class ValueCache (line 4) | class ValueCache<T> {
    method isCacheValid (line 11) | bool isCacheValid<F>(List<F> validCacheValues)
    method updateCache (line 23) | T updateCache<F>(T value, List<F> validCacheValues)

FILE: packages/flame/lib/src/camera/behaviors/bounded_position_behavior.dart
  class BoundedPositionBehavior (line 20) | class BoundedPositionBehavior extends Component {
    method isValidPoint (line 46) | bool isValidPoint(Vector2 point)
    method onMount (line 58) | void onMount()
    method update (line 75) | void update(double dt)

FILE: packages/flame/lib/src/camera/behaviors/follow_behavior.dart
  class FollowBehavior (line 20) | class FollowBehavior extends Component {
    method onMount (line 53) | void onMount()
    method update (line 64) | void update(double dt)

FILE: packages/flame/lib/src/camera/behaviors/viewport_aware_bounds_behavior.dart
  class ViewportAwareBoundsBehavior (line 19) | class ViewportAwareBoundsBehavior extends Component with ParentIsA<Viewf...
    method onLoad (line 29) | void onLoad()
    method onMount (line 36) | void onMount()
    method onRemove (line 42) | void onRemove()
    method _updateCameraBoundsIfNeeded (line 64) | void _updateCameraBoundsIfNeeded()
    method _updateCameraBounds (line 71) | void _updateCameraBounds()
    method _calculateViewportAwareBounds (line 80) | Shape _calculateViewportAwareBounds()

FILE: packages/flame/lib/src/camera/camera_component.dart
  class CameraComponent (line 53) | class CameraComponent extends Component {
    method renderTree (line 190) | void renderTree(Canvas canvas)
    method renderWorld (line 206) | void renderWorld(Canvas canvas)
    method globalToLocal (line 249) | Vector2 globalToLocal(Vector2 point, {Vector2? output})
    method localToGlobal (line 258) | Vector2 localToGlobal(Vector2 position, {Vector2? output})
    method componentsAtLocation (line 267) | Iterable<Component> componentsAtLocation<T>(
    method follow (line 344) | void follow(
    method stop (line 367) | void stop()
    method moveTo (line 376) | void moveTo(Vector2 point, {double speed = double.infinity})
    method moveBy (line 384) | void moveBy(Vector2 offset, {double speed = double.infinity})
    method setBounds (line 398) | void setBounds(Shape? bounds, {bool considerViewport = false})
    method _addViewPortAwareBoundsBehavior (line 457) | void _addViewPortAwareBoundsBehavior(Shape bounds)
    method canSee (line 478) | bool canSee(PositionComponent component, {World? componentWorld})
  class CameraRenderContext (line 524) | class CameraRenderContext extends ComponentRenderContext {

FILE: packages/flame/lib/src/camera/viewfinder.dart
  class Viewfinder (line 19) | class Viewfinder extends Component
    method globalToLocal (line 110) | Vector2 globalToLocal(Vector2 point, {Vector2? output})
    method localToGlobal (line 121) | Vector2 localToGlobal(Vector2 point, {Vector2? output})
    method computeVisibleRect (line 171) | Rect computeVisibleRect()
    method _updateZoom (line 194) | void _updateZoom()
    method parentToLocal (line 204) | Vector2 parentToLocal(Vector2 point)
    method localToParent (line 209) | Vector2 localToParent(Vector2 point)
    method onGameResize (line 214) | void onGameResize(Vector2 size)
    method onViewportResize (line 221) | void onViewportResize()
    method onLoad (line 232) | void onLoad()
    method onMount (line 240) | void onMount()
    method updateTransform (line 250) | void updateTransform()

FILE: packages/flame/lib/src/camera/viewport.dart
  class Viewport (line 21) | abstract class Viewport extends Component
    method clip (line 110) | void clip(Canvas canvas)
    method containsLocalPoint (line 118) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 130) | void onViewportResize()
    method globalToLocal (line 139) | Vector2 globalToLocal(Vector2 point, {Vector2? output})
    method localToGlobal (line 152) | Vector2 localToGlobal(Vector2 point, {Vector2? output})
    method parentToLocal (line 159) | Vector2 parentToLocal(Vector2 point)
    method localToParent (line 164) | Vector2 localToParent(Vector2 point)
    method transformCanvas (line 168) | void transformCanvas(Canvas canvas)

FILE: packages/flame/lib/src/camera/viewports/circular_viewport.dart
  class CircularViewport (line 11) | class CircularViewport extends Viewport {
    method clip (line 26) | void clip(Canvas canvas)
    method containsLocalPoint (line 29) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 36) | void onViewportResize()
    method renderDebugMode (line 43) | void renderDebugMode(Canvas canvas)

FILE: packages/flame/lib/src/camera/viewports/fixed_aspect_ratio_viewport.dart
  class FixedAspectRatioViewport (line 14) | class FixedAspectRatioViewport extends Viewport {
    method onLoad (line 27) | void onLoad()
    method onGameResize (line 33) | void onGameResize(Vector2 size)
    method _handleResize (line 40) | void _handleResize(Vector2 canvasSize)
    method clip (line 52) | void clip(Canvas canvas)
    method containsLocalPoint (line 55) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 62) | void onViewportResize()

FILE: packages/flame/lib/src/camera/viewports/fixed_resolution_viewport.dart
  class FixedResolutionViewport (line 16) | class FixedResolutionViewport extends FixedAspectRatioViewport
    method containsLocalPoint (line 35) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 42) | void onViewportResize()
    method globalToLocal (line 52) | Vector2 globalToLocal(Vector2 point, {Vector2? output})
    method localToGlobal (line 58) | Vector2 localToGlobal(Vector2 point, {Vector2? output})
    method transformCanvas (line 64) | void transformCanvas(Canvas canvas)

FILE: packages/flame/lib/src/camera/viewports/fixed_size_viewport.dart
  class FixedSizeViewport (line 10) | class FixedSizeViewport extends Viewport {
    method clip (line 22) | void clip(Canvas canvas)
    method containsLocalPoint (line 25) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 32) | void onViewportResize()

FILE: packages/flame/lib/src/camera/viewports/max_viewport.dart
  class MaxViewport (line 10) | class MaxViewport extends Viewport {
    method onLoad (line 15) | void onLoad()
    method onGameResize (line 20) | void onGameResize(Vector2 size)
    method clip (line 26) | void clip(Canvas canvas)
    method containsLocalPoint (line 29) | bool containsLocalPoint(Vector2 point)
    method onViewportResize (line 32) | void onViewportResize()

FILE: packages/flame/lib/src/camera/world.dart
  class World (line 17) | class World extends Component implements CoordinateTransform {
    method renderTree (line 25) | void renderTree(Canvas canvas)
    method renderFromCamera (line 31) | void renderFromCamera(Canvas canvas)
    method containsLocalPoint (line 37) | bool containsLocalPoint(Vector2 point)
    method localToParent (line 40) | Vector2? localToParent(Vector2 point)
    method parentToLocal (line 43) | Vector2? parentToLocal(Vector2 point)

FILE: packages/flame/lib/src/collisions/broadphase/broadphase.dart
  class Broadphase (line 20) | abstract class Broadphase<T extends Hitbox<T>> {
    method update (line 25) | void update()
    method add (line 34) | void add(T item)
    method addAll (line 36) | void addAll(Iterable<T> items)
    method remove (line 45) | void remove(T item)
    method removeAll (line 47) | void removeAll(Iterable<T> items)
    method query (line 54) | Iterable<CollisionProspect<T>> query()
  class CollisionProspect (line 59) | class CollisionProspect<T> {
    method _pairHash (line 74) | int _pairHash(int h1, int h2)
    method set (line 80) | void set(T a, T b)
    method setFrom (line 87) | void setFrom(CollisionProspect<T> other)
    method clone (line 94) | CollisionProspect<T> clone()

FILE: packages/flame/lib/src/collisions/broadphase/prospect_pool.dart
  class ProspectPool (line 7) | class ProspectPool<T extends Hitbox<T>> {
    method expand (line 18) | void expand(T dummyItem)

FILE: packages/flame/lib/src/collisions/broadphase/quadtree/has_quadtree_collision_detection.dart
  function initializeCollisionDetection (line 53) | void initializeCollisionDetection({
  function minimumDistanceCheck (line 71) | bool minimumDistanceCheck(Vector2 activeItemCenter, Vector2 potentialCen...
  function onComponentTypeCheck (line 77) | bool onComponentTypeCheck(ShapeHitbox first, ShapeHitbox second)
  function update (line 83) | void update(double dt)

FILE: packages/flame/lib/src/collisions/broadphase/quadtree/quad_tree_broadphase.dart
  type ExternalBroadphaseCheck (line 6) | typedef ExternalBroadphaseCheck =
  type ExternalMinDistanceCheck (line 12) | typedef ExternalMinDistanceCheck =
  class QuadTreeBroadphase (line 22) | class QuadTreeBroadphase extends Broadphase<ShapeHitbox> {
    method query (line 53) | Iterable<CollisionProspect<ShapeHitbox>> query()
    method updateTransform (line 116) | void updateTransform(ShapeHitbox item)
    method add (line 123) | void add(ShapeHitbox item)
    method remove (line 132) | void remove(ShapeHitbox item)
    method clear (line 148) | void clear()
    method _cacheCenterOfHitbox (line 157) | Vector2 _cacheCenterOfHitbox(ShapeHitbox hitbox)

FILE: packages/flame/lib/src/collisions/broadphase/quadtree/quadtree.dart
  class QuadTree (line 17) | class QuadTree<T extends Hitbox<T>> {
    method _getBoxOfValue (line 36) | Rect _getBoxOfValue(T value)
    method _noChildren (line 44) | bool _noChildren(QuadTreeNode node)
    method clear (line 46) | void clear()
    method _computeBox (line 53) | Rect _computeBox(Rect box, _QuadTreeZone zone)
    method _getQuadrant (line 87) | _QuadTreeZone _getQuadrant(Rect nodeBox, Rect valueBox)
    method add (line 110) | void add(T hitbox)
    method _add (line 116) | QuadTreeNode<T> _add(
    method _split (line 163) | void _split(QuadTreeNode node, Rect box)
    method remove (line 192) | void remove(T hitbox, {bool keepOldPosition = false})
    method optimize (line 202) | void optimize()
    method _tryMergeRecursive (line 206) | void _tryMergeRecursive(QuadTreeNode node)
    method query (line 238) | Map<int, List<T>> query(T value)
    method _getChildrenItems (line 252) | List<T> _getChildrenItems(QuadTreeNode parent)
    method _getParentItems (line 265) | List<T> _getParentItems(QuadTreeNode node)
    method hasMoved (line 275) | bool hasMoved(T hitbox)
  class QuadTreeNodeDebugInfo (line 295) | class QuadTreeNodeDebugInfo {
  class QuadTreeNode (line 334) | class QuadTreeNode<T extends Hitbox<T>> {
    method toString (line 360) | String toString()
  type _QuadTreeZone (line 365) | enum _QuadTreeZone {

FILE: packages/flame/lib/src/collisions/broadphase/quadtree/quadtree_collision_detection.dart
  class QuadTreeCollisionDetection (line 8) | class QuadTreeCollisionDetection
    method add (line 30) | void add(ShapeHitbox item)
    method listenerCollisionType (line 32) | void listenerCollisionType()
    method addAll (line 49) | void addAll(Iterable<ShapeHitbox> items)
    method remove (line 56) | void remove(ShapeHitbox item)
    method removeAll (line 68) | void removeAll(Iterable<ShapeHitbox> items)
    method run (line 76) | void run()

FILE: packages/flame/lib/src/collisions/broadphase/sweep/sweep.dart
  class Sweep (line 3) | class Sweep<T extends Hitbox<T>> extends Broadphase<T> {
    method add (line 14) | void add(T item)
    method remove (line 17) | void remove(T item)
    method update (line 20) | void update()
    method query (line 25) | Iterable<CollisionProspect<T>> query()

FILE: packages/flame/lib/src/collisions/collision_callbacks.dart
  type CollisionType (line 7) | enum CollisionType {
  class CollisionTypeNotifier (line 19) | class CollisionTypeNotifier with ChangeNotifier {
  function collidingWith (line 50) | bool collidingWith(T other)
  function onCollision (line 57) | void onCollision(Set<Vector2> intersectionPoints, T other)
  function onCollisionStart (line 64) | void onCollisionStart(Set<Vector2> intersectionPoints, T other)
  function onCollisionEnd (line 72) | void onCollisionEnd(T other)
  function onComponentTypeCheck (line 84) | bool onComponentTypeCheck(PositionComponent other)
  function collidingWith (line 112) | bool collidingWith(PositionComponent other)
  function onCollision (line 118) | void onCollision(Set<Vector2> intersectionPoints, PositionComponent other)
  function onCollisionStart (line 124) | void onCollisionStart(
  function onCollisionEnd (line 134) | void onCollisionEnd(PositionComponent other)
  function onComponentTypeCheck (line 140) | bool onComponentTypeCheck(PositionComponent other)
  type CollisionCallback (line 168) | typedef CollisionCallback<T> =
  type CollisionEndCallback (line 175) | typedef CollisionEndCallback<T> = void Function(T other);

FILE: packages/flame/lib/src/collisions/collision_detection.dart
  class CollisionDetection (line 11) | abstract class CollisionDetection<
    method add (line 23) | void add(T item)
    method addAll (line 25) | void addAll(Iterable<T> items)
    method remove (line 30) | void remove(T item)
    method removeAll (line 33) | void removeAll(Iterable<T> items)
    method run (line 36) | void run()
    method _updateLastPotentials (line 75) | void _updateLastPotentials(Iterable<CollisionProspect<T>> potentials)
    method intersections (line 92) | Set<Vector2> intersections(T itemA, T itemB)
    method handleCollisionStart (line 94) | void handleCollisionStart(Set<Vector2> intersectionPoints, T itemA, T ...
    method handleCollision (line 96) | void handleCollision(Set<Vector2> intersectionPoints, T itemA, T itemB)
    method handleCollisionEnd (line 98) | void handleCollisionEnd(T itemA, T itemB)
    method raycast (line 118) | RaycastResult<T>? raycast(
    method raycastAll (line 152) | List<RaycastResult<T>> raycastAll(
    method raytrace (line 184) | Iterable<RaycastResult<T>> raytrace(
  class CollisionDetectionCompletionNotifier (line 195) | class CollisionDetectionCompletionNotifier extends ChangeNotifier {
    method notifyListeners (line 197) | void notifyListeners()

FILE: packages/flame/lib/src/collisions/collision_passthrough.dart
  function onMount (line 16) | void onMount()
  function onCollision (line 27) | void onCollision(Set<Vector2> intersectionPoints, PositionComponent other)
  function onCollisionStart (line 34) | void onCollisionStart(
  function onCollisionEnd (line 44) | void onCollisionEnd(PositionComponent other)

FILE: packages/flame/lib/src/collisions/has_collision_detection.dart
  function update (line 26) | void update(double dt)
  function update (line 50) | void update(double dt)

FILE: packages/flame/lib/src/collisions/hitboxes/circle_hitbox.dart
  class CircleHitbox (line 8) | class CircleHitbox extends CircleComponent with ShapeHitbox {
    method fillParent (line 42) | void fillParent()
    method rayIntersection (line 54) | RaycastResult<ShapeHitbox>? rayIntersection(

FILE: packages/flame/lib/src/collisions/hitboxes/composite_hitbox.dart
  class CompositeHitbox (line 11) | class CompositeHitbox extends PositionComponent

FILE: packages/flame/lib/src/collisions/hitboxes/hitbox.dart
  class Hitbox (line 7) | abstract class Hitbox<T extends Hitbox<T>>
    method containsPoint (line 30) | bool containsPoint(Vector2 point)
    method intersections (line 33) | Set<Vector2> intersections(T other)
    method possiblyIntersects (line 39) | bool possiblyIntersects(T other)

FILE: packages/flame/lib/src/collisions/hitboxes/polygon_hitbox.dart
  class PolygonHitbox (line 9) | class PolygonHitbox extends PolygonComponent
    method computeAabb (line 45) | void computeAabb(Aabb2 aabb)
    method fillParent (line 77) | void fillParent()

FILE: packages/flame/lib/src/collisions/hitboxes/rectangle_hitbox.dart
  class RectangleHitbox (line 9) | class RectangleHitbox extends RectangleComponent
    method computeAabb (line 49) | void computeAabb(Aabb2 aabb)
    method fillParent (line 81) | void fillParent()

FILE: packages/flame/lib/src/collisions/hitboxes/screen_hitbox.dart
  class ScreenHitbox (line 10) | class ScreenHitbox<T extends FlameGame> extends PositionComponent
    method onLoad (line 14) | Future<void> onLoad()
    method _updateTransform (line 26) | void _updateTransform()
    method onGameResize (line 54) | void onGameResize(Vector2 size)

FILE: packages/flame/lib/src/collisions/hitboxes/shape_hitbox.dart
  function collidingWith (line 53) | bool collidingWith(Hitbox other)
  function onMount (line 79) | void onMount()
  function onRemove (line 123) | void onRemove()
  function containsPoint (line 147) | bool containsPoint(Vector2 point)
  function _possiblyContainsPoint (line 155) | bool _possiblyContainsPoint(Vector2 point)
  function intersections (line 161) | Set<Vector2> intersections(Hitbox other)
  function possiblyIntersects (line 173) | bool possiblyIntersects(ShapeHitbox other)
  function rayIntersection (line 183) | RaycastResult<ShapeHitbox>? rayIntersection(
  function fillParent (line 190) | void fillParent()
  function computeAabb (line 197) | void computeAabb(Aabb2 aabb)
  function _recalculateAabb (line 211) | Aabb2 _recalculateAabb()
  function onCollision (line 221) | void onCollision(Set<Vector2> intersectionPoints, ShapeHitbox other)
  function onCollisionStart (line 235) | void onCollisionStart(Set<Vector2> intersectionPoints, ShapeHitbox other)
  function onCollisionEnd (line 250) | void onCollisionEnd(ShapeHitbox other)
  function onComponentTypeCheck (line 268) | bool onComponentTypeCheck(PositionComponent other)

FILE: packages/flame/lib/src/collisions/standard_collision_detection.dart
  class StandardCollisionDetection (line 13) | class StandardCollisionDetection<B extends Broadphase<ShapeHitbox>>
    method intersections (line 21) | Set<Vector2> intersections(
    method handleCollisionStart (line 33) | void handleCollisionStart(
    method handleCollision (line 47) | void handleCollision(
    method handleCollisionEnd (line 62) | void handleCollisionEnd(ShapeHitbox hitboxA, ShapeHitbox hitboxB)
    method raycast (line 72) | RaycastResult<ShapeHitbox>? raycast(
    method raycastAll (line 113) | List<RaycastResult<ShapeHitbox>> raycastAll(
    method raytrace (line 165) | Iterable<RaycastResult<ShapeHitbox>> raytrace(
    method _updateRayAabb (line 207) | void _updateRayAabb(Ray2 ray, double? maxDistance)

FILE: packages/flame/lib/src/components/clip_component.dart
  type ShapeBuilder (line 7) | typedef ShapeBuilder = Shape Function(Vector2 size);
  class ClipComponent (line 12) | class ClipComponent extends PositionComponent {
    method onLoad (line 106) | Future<void> onLoad()
    method _prepare (line 111) | void _prepare()
    method render (line 117) | void render(Canvas canvas)
    method containsPoint (line 120) | bool containsPoint(Vector2 point)
    method containsLocalPoint (line 125) | bool containsLocalPoint(Vector2 point)
    method _polygonShapeBuilder (line 133) | ShapeBuilder _polygonShapeBuilder(List<Vector2> points)
    method _polygonBuilder (line 142) | Shape _polygonBuilder(List<Vector2> points, Vector2 size)

FILE: packages/flame/lib/src/components/component_pool.dart
  class ComponentPool (line 35) | class ComponentPool<T extends Component> {
    method acquire (line 81) | T acquire()
    method _release (line 95) | void _release(T component)
    method clear (line 105) | void clear()

FILE: packages/flame/lib/src/components/components_notifier.dart
  class ComponentsNotifier (line 14) | class ComponentsNotifier<T extends Component> extends ChangeNotifier {
    method applicable (line 33) | bool applicable(Component component)
    method add (line 36) | void add(T component)
    method remove (line 42) | void remove(T component)
    method notify (line 48) | void notify()

FILE: packages/flame/lib/src/components/core/component.dart
  class Component (line 70) | class Component {
    method _setLoadingBit (line 192) | void _setLoadingBit()
    method _clearLoadingBit (line 193) | void _clearLoadingBit()
    method _setLoadedBit (line 197) | void _setLoadedBit()
    method _setMountingBit (line 201) | void _setMountingBit()
    method _clearMountingBit (line 202) | void _clearMountingBit()
    method _setMountedBit (line 206) | void _setMountedBit()
    method _clearMountedBit (line 207) | void _clearMountedBit()
    method _setRemovingBit (line 211) | void _setRemovingBit()
    method _clearRemovingBit (line 212) | void _clearRemovingBit()
    method _setRemovedBit (line 219) | void _setRemovedBit()
    method _clearRemovedBit (line 220) | void _clearRemovedBit()
    method rebalanceChildren (line 301) | void rebalanceChildren()
    method _componentPriorityMapper (line 333) | num _componentPriorityMapper(Component component)
    method createComponentSet (line 340) | OrderedSet<Component> createComponentSet()
    method findParent (line 347) | T? findParent<T extends Component>({bool includeSelf = false})
    method firstChild (line 353) | T? firstChild<T extends Component>()
    method lastChild (line 359) | T? lastChild<T extends Component>()
    method ancestors (line 366) | Iterable<Component> ancestors({bool includeSelf = false})
    method descendants (line 389) | Iterable<Component> descendants({
    method propagateToChildren (line 418) | bool propagateToChildren<T extends Component>(
    method findGame (line 432) | FlameGame? findGame()
    method findRootGame (line 445) | FlameGame? findRootGame()
    method contains (line 456) | bool contains(Component c)
    method onGameResize (line 466) | void onGameResize(Vector2 size)
    method onLoad (line 503) | FutureOr<void> onLoad()
    method onMount (line 530) | void onMount()
    method onRemove (line 541) | void onRemove()
    method onParentResize (line 549) | void onParentResize(Vector2 maxSize)
    method update (line 560) | void update(double dt)
    method updateTree (line 565) | void updateTree(double dt)
    method onChildrenChanged (line 577) | void onChildrenChanged(Component child, ChildrenChangeType type)
    method render (line 579) | void render(Canvas canvas)
    method renderChild (line 589) | void renderChild(Canvas canvas, Component child)
    method afterChildrenRendered (line 610) | void afterChildrenRendered(Canvas canvas)
    method renderTree (line 612) | void renderTree(Canvas canvas)
    method add (line 679) | FutureOr<void> add(Component component)
    method addToParent (line 682) | FutureOr<void> addToParent(Component parent)
    method addAll (line 685) | Future<void> addAll(Iterable<Component> components)
    method _addChild (line 698) | FutureOr<void> _addChild(Component child)
    method remove (line 732) | void remove(Component component)
    method removeFromParent (line 735) | void removeFromParent()
    method removeAll (line 739) | void removeAll(Iterable<Component> components)
    method removeWhere (line 744) | void removeWhere(bool Function(Component component) test)
    method _removeChild (line 748) | void _removeChild(Component child)
    method containsLocalPoint (line 791) | bool containsLocalPoint(Vector2 point)
    method containsPoint (line 797) | bool containsPoint(Vector2 point)
    method componentsAtPoint (line 824) | Iterable<Component> componentsAtPoint(
    method componentsAtLocation (line 851) | Iterable<Component> componentsAtLocation<T>(
    method handleLifecycleEventAdd (line 924) | LifecycleEventStatus handleLifecycleEventAdd(Component parent)
    method handleLifecycleEventRemove (line 945) | LifecycleEventStatus handleLifecycleEventRemove(Component parent)
    method handleLifecycleEventMove (line 956) | LifecycleEventStatus handleLifecycleEventMove(Component newParent)
    method handleResize (line 972) | void handleResize(Vector2 size)
    method onHotReload (line 990) | void onHotReload()
    method handleHotReload (line 994) | void handleHotReload()
    method _startLoading (line 1005) | FutureOr<void> _startLoading()
    method _finishLoading (line 1019) | void _finishLoading()
    method _mount (line 1027) | void _mount()
    method _reAddChildren (line 1076) | void _reAddChildren()
    method setLoaded (line 1098) | void setLoaded()
    method setMounted (line 1107) | void setMounted()
    method setRemoved (line 1117) | void setRemoved()
    method _remove (line 1123) | void _remove(Component parent)
    method _unregisterKey (line 1143) | void _unregisterKey()
    method findRenderContext (line 1162) | T? findRenderContext<T extends ComponentRenderContext>()
    method renderDebugMode (line 1234) | void renderDebugMode(Canvas canvas)
  type ChildrenChangeType (line 1239) | enum ChildrenChangeType { added, removed }

FILE: packages/flame/lib/src/components/core/component_key.dart
  class ComponentKey (line 8) | @immutable
    method toString (line 27) | String toString()

FILE: packages/flame/lib/src/components/core/component_render_context.dart
  class ComponentRenderContext (line 1) | abstract class ComponentRenderContext {}

FILE: packages/flame/lib/src/components/core/component_tree_root.dart
  class ComponentTreeRoot (line 13) | class ComponentTreeRoot extends Component {
    method enqueueAdd (line 27) | void enqueueAdd(Component child, Component parent)
    method dequeueAdd (line 35) | void dequeueAdd(Component child, Component parent)
    method enqueueRemove (line 50) | void enqueueRemove(Component child, Component parent)
    method dequeueRemove (line 58) | void dequeueRemove(Component child)
    method cancelQueuedRemoves (line 71) | void cancelQueuedRemoves(
    method enqueueMove (line 88) | void enqueueMove(Component child, Component newParent)
    method enqueuePriorityChange (line 96) | void enqueuePriorityChange(
    method processLifecycleEvents (line 135) | void processLifecycleEvents()
    method handleReorderEvent (line 138) | LifecycleEventStatus handleReorderEvent(Component parent)
    method handleResize (line 189) | void handleResize(Vector2 size)
    method handleHotReload (line 202) | void handleHotReload()
    method registerKey (line 214) | void registerKey(ComponentKey key, Component component)
    method unregisterKey (line 221) | void unregisterKey(ComponentKey key)
    method findByKey (line 225) | T? findByKey<T extends Component>(ComponentKey key)
    method findByKeyName (line 230) | T? findByKeyName<T extends Component>(String name)
  type LifecycleEventStatus (line 236) | enum LifecycleEventStatus {
  type LifecycleEventKind (line 248) | @internal
  class LifecycleEvent (line 257) | @visibleForTesting
    method dispose (line 264) | void dispose()
    method toString (line 271) | String toString()

FILE: packages/flame/lib/src/components/core/recycled_queue.dart
  class RecycledQueue (line 22) | class RecycledQueue<T extends Disposable> extends Iterable<T>
    method addLast (line 98) | T addLast()
    method removeFirst (line 151) | void removeFirst()
    method removeCurrent (line 169) | void removeCurrent()
    method forEachWhere (line 193) | void forEachWhere(bool Function(T) test, void Function(T) action)
    method moveNext (line 229) | bool moveNext()
    method _garbageCollect (line 249) | void _garbageCollect()
    method advanceIndex (line 258) | int advanceIndex(int i)
    method toString (line 294) | String toString()
  class Disposable (line 307) | abstract class Disposable {
    method dispose (line 308) | void dispose()

FILE: packages/flame/lib/src/components/custom_painter_component.dart
  class CustomPainterComponent (line 13) | class CustomPainterComponent extends PositionComponent {
    method render (line 30) | void render(Canvas canvas)

FILE: packages/flame/lib/src/components/debug/child_counter_component.dart
  class ChildCounterComponent (line 11) | class ChildCounterComponent<T extends Component> extends TextComponent {
    method onLoad (line 21) | FutureOr<void> onLoad()

FILE: packages/flame/lib/src/components/debug/time_track_component.dart
  class TimeTrackComponent (line 17) | class TimeTrackComponent extends TextComponent {
    method clear (line 23) | void clear()
    method start (line 28) | void start(String name)
    method end (line 32) | void end(String name)
    method onLoad (line 37) | FutureOr<void> onLoad()

FILE: packages/flame/lib/src/components/fps_component.dart
  class FpsComponent (line 8) | class FpsComponent extends Component {
    method update (line 26) | void update(double dt)

FILE: packages/flame/lib/src/components/fps_text_component.dart
  class FpsTextComponent (line 6) | class FpsTextComponent<T extends TextRenderer> extends TextComponent {
    method update (line 28) | void update(double dt)

FILE: packages/flame/lib/src/components/icon_component.dart
  class IconComponent (line 29) | class IconComponent extends PositionComponent with HasPaint {
    method onLoad (line 102) | Future<void> onLoad()
    method onMount (line 112) | void onMount()
    method update (line 125) | void update(double dt)
    method render (line 133) | void render(Canvas canvas)
    method onRemove (line 148) | void onRemove()
    method _rasterizeIcon (line 156) | Future<Image> _rasterizeIcon()
    method _rerasterize (line 199) | void _rerasterize()
    method _updateSrcRect (line 218) | void _updateSrcRect()
    method _updateDstRect (line 230) | void _updateDstRect()

FILE: packages/flame/lib/src/components/input/advanced_button_component.dart
  class AdvancedButtonComponent (line 18) | class AdvancedButtonComponent extends PositionComponent
    method onLoad (line 58) | Future<void> onLoad()
    method onMount (line 72) | void onMount()
    method onTapDown (line 89) | void onTapDown(TapDownEvent event)
    method onTapUp (line 99) | void onTapUp(TapUpEvent event)
    method onHoverEnter (line 109) | void onHoverEnter()
    method onHoverExit (line 114) | void onHoverExit()
    method invalidateSkins (line 161) | void invalidateSkins()
    method _updateSizes (line 178) | void _updateSizes()
    method updateState (line 185) | void updateState()
    method setState (line 204) | void setState(ButtonState value)
    method _updateSkin (line 214) | void _updateSkin()
    method setSkin (line 220) | void setSkin(ButtonState state)
    method _removeSkins (line 224) | void _removeSkins()
    method updateLabel (line 231) | void updateLabel()
    method addLabel (line 237) | void addLabel(ButtonState state)
    method _removeLabels (line 241) | void _removeLabels()
    method hasSkinForState (line 248) | bool hasSkinForState(ButtonState state)
  type ButtonState (line 253) | enum ButtonState {

FILE: packages/flame/lib/src/components/input/button_component.dart
  class ButtonComponent (line 10) | class ButtonComponent extends PositionComponent with TapCallbacks {
    method onMount (line 42) | void onMount()
    method onTapDown (line 58) | void onTapDown(TapDownEvent event)
    method onTapUp (line 68) | void onTapUp(TapUpEvent event)
    method onTapCancel (line 78) | void onTapCancel(TapCancelEvent event)

FILE: packages/flame/lib/src/components/input/hud_button_component.dart
  class HudButtonComponent (line 10) | class HudButtonComponent extends ButtonComponent

FILE: packages/flame/lib/src/components/input/hud_margin_component.dart
  class HudMarginComponent (line 18) | class HudMarginComponent extends PositionComponent {
    method onMount (line 42) | void onMount()
    method onGameResize (line 83) | void onGameResize(Vector2 size)
    method _updateMargins (line 90) | void _updateMargins()

FILE: packages/flame/lib/src/components/input/joystick_component.dart
  type JoystickDirection (line 7) | enum JoystickDirection {
  class JoystickComponent (line 19) | class JoystickComponent extends PositionComponent
    method onMount (line 75) | void onMount()
    method update (line 93) | void update(double dt)
    method onDragStart (line 110) | bool onDragStart(DragStartEvent event)
    method onDragUpdate (line 116) | bool onDragUpdate(DragUpdateEvent event)
    method onDragEnd (line 122) | bool onDragEnd(DragEndEvent event)
    method onDragCancel (line 129) | bool onDragCancel(DragCancelEvent event)
    method onDragStop (line 135) | void onDragStop()

FILE: packages/flame/lib/src/components/input/keyboard_listener_component.dart
  type KeyHandlerCallback (line 7) | typedef KeyHandlerCallback = bool Function(Set<LogicalKeyboardKey>);
  class KeyboardListenerComponent (line 14) | class KeyboardListenerComponent extends Component with KeyboardHandler {
    method onKeyEvent (line 27) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)

FILE: packages/flame/lib/src/components/input/sprite_button_component.dart
  type ButtonState (line 5) | enum ButtonState {
  class SpriteButtonComponent (line 19) | class SpriteButtonComponent extends SpriteGroupComponent<ButtonState>
    method onMount (line 63) | void onMount()
    method onTapDown (line 80) | void onTapDown(_)
    method onTapUp (line 86) | void onTapUp(_)
    method onTapCancel (line 93) | void onTapCancel(_)

FILE: packages/flame/lib/src/components/input/toggle_button_component.dart
  class ToggleButtonComponent (line 12) | class ToggleButtonComponent extends AdvancedButtonComponent {
    method onMount (line 50) | void onMount()
    method onTapUp (line 96) | void onTapUp(TapUpEvent event)
    method setSkin (line 116) | void setSkin(ButtonState state)
    method addLabel (line 136) | void addLabel(ButtonState state)
    method updateState (line 144) | void updateState()

FILE: packages/flame/lib/src/components/isometric_tile_map_component.dart
  class IsometricTileMapComponent (line 12) | class IsometricTileMapComponent extends PositionComponent {
    method render (line 62) | void render(Canvas canvas)
    method update (line 81) | void update(double dt)
    method getBlockRenderPosition (line 90) | Vector2 getBlockRenderPosition(Block block)
    method getBlockRenderPositionInts (line 98) | Vector2 getBlockRenderPositionInts(int i, int j)
    method getBlockCenterPosition (line 117) | Vector2 getBlockCenterPosition(Block block)
    method isoToCart (line 126) | Vector2 isoToCart(Vector2 p)
    method cartToIso (line 133) | Vector2 cartToIso(Vector2 p)
    method getBlock (line 146) | Block getBlock(Vector2 p)
    method getBlockRenderedAt (line 167) | Block getBlockRenderedAt(Vector2 p)
    method setBlockValue (line 180) | void setBlockValue(Block pos, int block)
    method blockValue (line 185) | int blockValue(Block pos)
    method containsBlock (line 190) | bool containsBlock(Block block)
    method _recomputeSizeAndOffset (line 197) | void _recomputeSizeAndOffset()

FILE: packages/flame/lib/src/components/mixins/component_viewport_margin.dart
  function onLoad (line 34) | FutureOr<void> onLoad()
  function onGameResize (line 68) | void onGameResize(Vector2 gameSize)
  function _updateMargins (line 75) | void _updateMargins()

FILE: packages/flame/lib/src/components/mixins/coordinate_transform.dart
  class CoordinateTransform (line 20) | abstract class CoordinateTransform {
    method parentToLocal (line 21) | Vector2? parentToLocal(Vector2 point)
    method localToParent (line 23) | Vector2? localToParent(Vector2 point)

FILE: packages/flame/lib/src/components/mixins/gesture_hitboxes.dart
  function onLoad (line 12) | Future<void> onLoad()
  function containsPoint (line 18) | bool containsPoint(Vector2 point)
  function containsLocalPoint (line 25) | bool containsLocalPoint(Vector2 point)

FILE: packages/flame/lib/src/components/mixins/has_ancestor.dart
  function onMount (line 14) | void onMount()
  function onRemove (line 39) | void onRemove()

FILE: packages/flame/lib/src/components/mixins/has_auto_batched_children.dart
  function renderChild (line 59) | void renderChild(Canvas canvas, Component child)
  function afterChildrenRendered (line 100) | void afterChildrenRendered(Canvas canvas)
  function _accumulateChild (line 107) | void _accumulateChild(PositionComponent child, _BatchInfo info)
  function _flushAll (line 124) | void _flushAll(Canvas canvas)
  function _tryGetBatchInfo (line 138) | _BatchInfo? _tryGetBatchInfo(Component component)
  function _toRSTransform (line 258) | RSTransform _toRSTransform(PositionComponent component, Rect source)
  class _BatchAccumulator (line 283) | class _BatchAccumulator {
    method accumulate (line 288) | void accumulate(Rect source, RSTransform transform, Color color)
    method flush (line 293) | void flush(Canvas canvas)
  class _BatchInfo (line 304) | class _BatchInfo {

FILE: packages/flame/lib/src/components/mixins/has_decorator.dart
  function renderTree (line 20) | void renderTree(Canvas canvas)

FILE: packages/flame/lib/src/components/mixins/has_game_ref.dart
  function findGame (line 34) | FlameGame? findGame()
  function _findGameAndCheck (line 36) | T _findGameAndCheck()

FILE: packages/flame/lib/src/components/mixins/has_game_reference.dart
  function findGame (line 27) | FlameGame? findGame()
  function _findGameAndCheck (line 29) | T _findGameAndCheck()

FILE: packages/flame/lib/src/components/mixins/has_paint.dart
  function getPaint (line 33) | Paint getPaint([T? paintId])
  function setPaint (line 48) | void setPaint(T paintId, Paint paint)
  function deletePaint (line 53) | void deletePaint(T paintId)
  function makeTransparent (line 73) | void makeTransparent({T? paintId})
  function makeOpaque (line 78) | void makeOpaque({T? paintId})
  function setOpacity (line 83) | void setOpacity(double opacity, {T? paintId})
  function getOpacity (line 95) | double getOpacity({T? paintId})
  function setAlpha (line 100) | void setAlpha(int alpha, {T? paintId})
  function getAlpha (line 109) | int getAlpha({T? paintId})
  function setColor (line 114) | void setColor(Color color, {T? paintId})
  function tint (line 121) | void tint(Color color, {T? paintId})
  function _updateColorFilter (line 148) | void _updateColorFilter()
  function opacityProviderOf (line 165) | OpacityProvider opacityProviderOf(T paintId)
  function opacityProviderOfList (line 182) | OpacityProvider opacityProviderOfList({
  class _ProxyOpacityProvider (line 194) | class _ProxyOpacityProvider<T extends Object> implements OpacityProvider {
  class _MultiPaintOpacityProvider (line 207) | class _MultiPaintOpacityProvider<T extends Object> implements OpacityPro...

FILE: packages/flame/lib/src/components/mixins/has_time_scale.dart
  function update (line 29) | void update(double dt)
  function updateTree (line 34) | void updateTree(double dt)
  function pause (line 39) | void pause()
  function resume (line 45) | void resume({double? newTimeScale})

FILE: packages/flame/lib/src/components/mixins/has_visibility.dart
  function renderTree (line 27) | void renderTree(Canvas canvas)

FILE: packages/flame/lib/src/components/mixins/has_world.dart
  function findWorld (line 23) | T? findWorld()
  function _findWorldAndCheck (line 30) | T _findWorldAndCheck()
  function onRemove (line 40) | void onRemove()

FILE: packages/flame/lib/src/components/mixins/keyboard_handler.dart
  function onKeyEvent (line 9) | bool onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed)

FILE: packages/flame/lib/src/components/mixins/notifier.dart
  function onMount (line 21) | void onMount()
  function onRemove (line 31) | void onRemove()
  function notifyListeners (line 41) | void notifyListeners()

FILE: packages/flame/lib/src/components/mixins/parent_is_a.dart
  function onMount (line 11) | void onMount()

FILE: packages/flame/lib/src/components/mixins/single_child_particle.dart
  function setLifespan (line 29) | void setLifespan(double lifespan)
  function render (line 35) | void render(Canvas canvas)
  function update (line 40) | void update(double dt)

FILE: packages/flame/lib/src/components/mixins/snapshot.dart
  function snapshotAsImage (line 44) | Image snapshotAsImage(int width, int height, {Matrix4? transform})
  function takeSnapshot (line 62) | Picture takeSnapshot()
  function clearSnapshot (line 75) | void clearSnapshot()
  function renderTree (line 80) | void renderTree(Canvas canvas)

FILE: packages/flame/lib/src/components/nine_tile_box_component.dart
  class NineTileBoxComponent (line 9) | class NineTileBoxComponent extends PositionComponent with HasPaint {
    method onMount (line 31) | void onMount()
    method render (line 40) | void render(Canvas canvas)

FILE: packages/flame/lib/src/components/parallax_component.dart
  function loadParallaxComponent (line 14) | Future<ParallaxComponent> loadParallaxComponent(
  class ParallaxComponent (line 59) | class ParallaxComponent<T extends FlameGame> extends PositionComponent
    method onGameResize (line 89) | void onGameResize(Vector2 size)
    method onMount (line 108) | void onMount()
    method update (line 117) | void update(double dt)
    method render (line 123) | void render(Canvas canvas)
    method load (line 146) | Future<ParallaxComponent> load(

FILE: packages/flame/lib/src/components/particle_system_component.dart
  class ParticleSystemComponent (line 11) | class ParticleSystemComponent extends PositionComponent {
    method render (line 34) | void render(Canvas canvas)
    method update (line 41) | void update(double dt)

FILE: packages/flame/lib/src/components/position_component.dart
  class PositionComponent (line 65) | class PositionComponent extends Component
    method _absoluteAngle (line 239) | double _absoluteAngle({bool reflect = true})
    method distance (line 283) | double distance(PositionComponent other)
    method containsLocalPoint (line 292) | bool containsLocalPoint(Vector2 point)
    method containsPoint (line 303) | bool containsPoint(Vector2 point)
    method parentToLocal (line 308) | Vector2 parentToLocal(Vector2 point, {Vector2? output})
    method localToParent (line 312) | Vector2 localToParent(Vector2 point, {Vector2? output})
    method positionOf (line 317) | Vector2 positionOf(Vector2 point)
    method positionOfAnchor (line 323) | Vector2 positionOfAnchor(Anchor anchor)
    method absolutePositionOf (line 332) | Vector2 absolutePositionOf(Vector2 point)
    method absolutePositionOfAnchor (line 346) | Vector2 absolutePositionOfAnchor(Anchor anchor)
    method toLocal (line 351) | Vector2 toLocal(Vector2 point)
    method absoluteToLocal (line 360) | Vector2 absoluteToLocal(Vector2 point)
    method angleTo (line 405) | double angleTo(Vector2 target)
    method lookAt (line 441) | void lookAt(Vector2 target)
    method flipHorizontally (line 450) | void flipHorizontally()
    method flipVertically (line 453) | void flipVertically()
    method flipHorizontallyAroundCenter (line 456) | void flipHorizontallyAroundCenter()
    method flipVerticallyAroundCenter (line 466) | void flipVerticallyAro
Condensed preview — 2217 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,772K chars).
[
  {
    "path": ".github/.cspell/dart_dictionary.txt",
    "chars": 314,
    "preview": "# keywords/terms specific to the Dart/Flutter ecosystem\ncupertino # Flutter module containing iOS-style widgets\ndartdoc "
  },
  {
    "path": ".github/.cspell/flame_dictionary.txt",
    "chars": 2187,
    "preview": "# dictionary file for Flame-related words, including companies, tools, and libraries (and their associated concepts) men"
  },
  {
    "path": ".github/.cspell/gamedev_dictionary.txt",
    "chars": 3123,
    "preview": "# general development-adjacent terms and expressions\nAABB # axis aligned bounding box\nabelian # Abelian Group, also know"
  },
  {
    "path": ".github/.cspell/people_usernames.txt",
    "chars": 909,
    "preview": "# specific people's names and/or usernames\nakida # github.com/akida \nbdero # github.com/bdero\nbluefireteam # github.com/"
  },
  {
    "path": ".github/.cspell/sphinx_dictionary.txt",
    "chars": 81,
    "preview": "# keywords used on the sphinx language\ninfobox\nlinkcheck\nseealso\ntoctree\ntoctrees"
  },
  {
    "path": ".github/.cspell/words_dictionary.txt",
    "chars": 368,
    "preview": "# actual english words (or common abbreviations) missing from CSpell\nbloodlust\ncollidable\ncollidables\ngamepads\ngrayscale"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 68,
    "preview": "open_collective: blue-fire\ngithub: bluefireteam\npatreon: bluefireoss"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2520,
    "preview": "name: Bug Report\ndescription: You are creating a Game with Flame but you are noticing some strange behavior, that it thr"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 341,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: I have some questions about Flame.\n    url: https://stackoverflow.c"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 1105,
    "preview": "name: Feature request\ndescription: Suggest a new feature for Flame.\nlabels: [\"enhancement\"]\nbody:\n  - type: markdown\n   "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/improvement_suggestion.yml",
    "chars": 1292,
    "preview": "name: Improvement suggestion\ndescription: Something in Flame can be improved.\nlabels: [\"enhancement\"]\nbody:\n  - type: ma"
  },
  {
    "path": ".github/cspell.json",
    "chars": 1168,
    "preview": "{\n  \"version\": \"0.2\",\n  \"language\": \"en\",\n  \"flagWords\": [\n    \"teh\",\n    \"hte\"\n  ],\n  \"ignorePaths\": [\n    \"**/media/**"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 2508,
    "preview": "<!-- Exclude from commit message -->\n<!--\nThe title of your PR on the line above should start with a [Conventional Commi"
  },
  {
    "path": ".github/workflows/cicd.yml",
    "chars": 1214,
    "preview": "name: cicd\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n    types: [opened, reopened, synchronize]\n\nenv:\n  FL"
  },
  {
    "path": ".github/workflows/gh-pages.yml",
    "chars": 725,
    "preview": "name: Gh-Pages\n\non:\n  push:\n    branches: [main]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: ac"
  },
  {
    "path": ".github/workflows/release-prepare.yml",
    "chars": 706,
    "preview": "name: Prepare release\non:\n  workflow_dispatch:\n    inputs:\n      prerelease:\n        description: 'Version as prerelease"
  },
  {
    "path": ".github/workflows/release-publish.yml",
    "chars": 522,
    "preview": "name: Publish packages\non:\n  # Enable to also publish, when pushing a tag\n  #push:\n  #  tags:\n  #    - '*'\n  workflow_di"
  },
  {
    "path": ".github/workflows/release-tag.yml",
    "chars": 738,
    "preview": "name: Tag release\non:\n  push:\n    branches: [main]\n\njobs:\n  publish-packages:\n    name: Create tags for release\n    perm"
  },
  {
    "path": ".github/workflows/spell_checker.yml",
    "chars": 492,
    "preview": "name: spell_checker\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true\n\non:\n  pu"
  },
  {
    "path": ".github/workflows/title-validation.yml",
    "chars": 749,
    "preview": "# See https://github.com/amannn/action-semantic-pull-request\nname: 'PR Title is Conventional'\n\non:\n  pull_request_target"
  },
  {
    "path": ".gitignore",
    "chars": 683,
    "preview": "# Miscellaneous\n*.class\n*.bak\n*.fvm\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.vscode/\n.venv/\n\n# IntelliJ r"
  },
  {
    "path": ".markdownlint.yaml",
    "chars": 6137,
    "preview": "# Default state for all rules\ndefault: true\n\n# MD001/heading-increment/header-increment - Heading levels should only inc"
  },
  {
    "path": ".markdownlintignore",
    "chars": 92,
    "preview": "**/CHANGELOG.md\n**/ios/**\n**/doc/api/static-assets/**\n**/macos/**\n**/windows/**\n**/linux/**\n"
  },
  {
    "path": ".readthedocs.yaml",
    "chars": 298,
    "preview": "# [Read the Docs] configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n\nversio"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 470607,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3409,
    "preview": "# Contributor Covenant Code of Conduct\n\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 9813,
    "preview": "# Contribution Guidelines\n\n**Note:** If these contribution guidelines are not followed your issue or PR might be closed,"
  },
  {
    "path": "LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2021 Blue Fire\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "README.md",
    "chars": 9379,
    "preview": "<!-- markdownlint-disable MD013 -->\n<p align=\"right\">\n  <a href=\"https://docs.flutter.dev/packages-and-plugins/favorites"
  },
  {
    "path": "doc/README.md",
    "chars": 7312,
    "preview": "# Getting Started\n\n\n## About Flame\n\nFlame is a modular Flutter game engine that provides a complete set of out-of-the-wa"
  },
  {
    "path": "doc/_sphinx/Makefile",
    "chars": 1239,
    "preview": "# Minimal makefile for Sphinx documentation\n\n#\n# To build the documentation you need to have Python3 installed\n# and wor"
  },
  {
    "path": "doc/_sphinx/conf.py",
    "chars": 5052,
    "preview": "# Configuration file for the Sphinx documentation builder.\n#\n# This file only contains a selection of the most common op"
  },
  {
    "path": "doc/_sphinx/extensions/dart_domain.css",
    "chars": 1365,
    "preview": "\n.dartdoc .signature.sig1 {\n  background: black;\n  background: linear-gradient(0deg, #000 0%, #000000bb 65%, #00000088 1"
  },
  {
    "path": "doc/_sphinx/extensions/dart_domain.py",
    "chars": 28710,
    "preview": "import json\nimport os\nimport re\nimport subprocess\nimport tempfile\nfrom typing import List, Tuple, Dict, Optional, Set, A"
  },
  {
    "path": "doc/_sphinx/extensions/flutter_app.css",
    "chars": 2737,
    "preview": "\nbutton.flutter-app-button {\n  background: #e2a73c;\n  border: none;\n  border-radius: 6px;\n  box-shadow: 2px 2px 6px 0 bl"
  },
  {
    "path": "doc/_sphinx/extensions/flutter_app.js",
    "chars": 1568,
    "preview": "'use strict';\n\n/// Create an overlay with an iframe, the iframe's source is [url]. This also\n/// creates an (x) button t"
  },
  {
    "path": "doc/_sphinx/extensions/flutter_app.py",
    "chars": 12045,
    "preview": "#!/usr/bin/env python\nimport glob\nimport os\nimport re\nimport shutil\nimport subprocess\nimport sys\nfrom docutils import no"
  },
  {
    "path": "doc/_sphinx/extensions/package.css",
    "chars": 552,
    "preview": ".package {\n  display: flex;\n  margin-bottom: 12pt;\n}\n.package > p:first-child {\n  margin: 0 12pt 0 0;\n}\n.package > p:fir"
  },
  {
    "path": "doc/_sphinx/extensions/package.py",
    "chars": 1694,
    "preview": "#!/usr/bin/env python\nimport os\nimport shutil\nfrom docutils import nodes\nfrom sphinx.util.docutils import SphinxDirectiv"
  },
  {
    "path": "doc/_sphinx/extensions/yarn_lexer.css",
    "chars": 458,
    "preview": "\n/* Single-line comment */\n.highlight-yarn span.c {\n  color: #505050;\n}\n\n/* Character name at the start of a line */\n.hi"
  },
  {
    "path": "doc/_sphinx/extensions/yarn_lexer.py",
    "chars": 5595,
    "preview": "import os\nimport shutil\nfrom pygments.lexer import RegexLexer, bygroups, default, include, words\nfrom pygments.token imp"
  },
  {
    "path": "doc/_sphinx/kill-server.py",
    "chars": 236,
    "preview": "from psutil import process_iter\nfrom signal import SIGTERM # or SIGKILL\n\nfor proc in process_iter():\n    for conns in pr"
  },
  {
    "path": "doc/_sphinx/make.bat",
    "chars": 1031,
    "preview": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sp"
  },
  {
    "path": "doc/_sphinx/requirements.txt",
    "chars": 207,
    "preview": "linkify-it-py==2.0.2\nmyst-parser==2.0.0\nPygments==2.17.2\nSphinx==7.2.6\nsphinxcontrib-mermaid==0.9.2\nsphinxcontrib-jquery"
  },
  {
    "path": "doc/_sphinx/scripts/menu-expand.js",
    "chars": 722,
    "preview": "// Auto expand the first expandable node (\"flame\") when loaded.\nwindow.addEventListener('load', (_event) => {\n    expand"
  },
  {
    "path": "doc/_sphinx/scripts/versions.js",
    "chars": 3419,
    "preview": "\n// Detect the doc version of the current page. This can be done by\n// looking at the URL, which is supposed to be of th"
  },
  {
    "path": "doc/_sphinx/theme/copy-button.css",
    "chars": 200,
    "preview": "/* Custom CSS properties for sphinx_copybutton */\nbutton.copybtn {\n    top: 1.5em;\n    right: 0.15em;\n    color: #ffffff"
  },
  {
    "path": "doc/_sphinx/theme/doctools.js",
    "chars": 9158,
    "preview": "/*\n * Originally from:\n * https://github.com/sphinx-doc/sphinx/blob/2b42752219424cb09ba910b6f654145107e0387b/sphinx/them"
  },
  {
    "path": "doc/_sphinx/theme/flames.css",
    "chars": 17325,
    "preview": "\n:root {\n  --document-width: 900px;\n  --document-x-margin: clamp(10px, 2.5vw, 30px);\n  --document-padding: min(40px, 4vw"
  },
  {
    "path": "doc/_sphinx/theme/layout.html",
    "chars": 6683,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\" />\n  <meta name=\"viewport\" content=\"width=device-width, "
  },
  {
    "path": "doc/_sphinx/theme/search.html",
    "chars": 1031,
    "preview": "{#\nbasic/search.html\n~~~~~~~~~~~~~~~~~\n\nTemplate for the search page.\n\n:copyright: Copyright 2007-2013 by the Sphinx tea"
  },
  {
    "path": "doc/_sphinx/theme/theme.conf",
    "chars": 193,
    "preview": "[theme]\ninherit = basic\nstyle = flames.css\npygments_style = sphinx\n\n[options]\nlogo =\ncollapse_navigation = True\nsticky_n"
  },
  {
    "path": "doc/bridge_packages/bridge_packages.md",
    "chars": 3399,
    "preview": "# Bridge Packages\n\n:::{package} flame_3d [WIP]\n\nUses Flutter GPU / Impeller low-level level access to provide an ergonom"
  },
  {
    "path": "doc/bridge_packages/flame_3d/basic_concepts.md",
    "chars": 1995,
    "preview": "# Basic Concepts\n\nBefore delving into the details, let's explore some key concepts and terminology used in 3D\nrendering "
  },
  {
    "path": "doc/bridge_packages/flame_3d/flame_3d.md",
    "chars": 406,
    "preview": "# flame_3d\n\n```{note}\n`flame_3d` is an extremely **experimental** package that is subject to many\nbreaking changes at an"
  },
  {
    "path": "doc/bridge_packages/flame_3d/getting_started.md",
    "chars": 1857,
    "preview": "# Getting Started\n\nThere are a few important things to note before you even start playing with this package.\n\nThe GPU-po"
  },
  {
    "path": "doc/bridge_packages/flame_audio/audio.md",
    "chars": 4117,
    "preview": "# Audio\n\nPlaying audio is essential for most games, so we made it simple!\n\nFirst you have to add [flame_audio](https://g"
  },
  {
    "path": "doc/bridge_packages/flame_audio/audio_pool.md",
    "chars": 4977,
    "preview": "# AudioPool\n\nAn AudioPool is a provider of AudioPlayers that are pre-loaded with local assets to minimize audio\nplayback"
  },
  {
    "path": "doc/bridge_packages/flame_audio/bgm.md",
    "chars": 2613,
    "preview": "# Looping Background Music\n\nWith the `Bgm` class, you can manage looping of background music tracks with regards to appl"
  },
  {
    "path": "doc/bridge_packages/flame_audio/flame_audio.md",
    "chars": 119,
    "preview": "# flame_audio\n\n```{toctree}\nGeneral audio    <audio.md>\nBackground music <bgm.md>\nAudioPool        <audio_pool.md>\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/collision-detection.md",
    "chars": 2530,
    "preview": "# Collision Detection 💥\n\nFlame comes with a powerful built-in [collision detection system](https://docs.flame-engine.org"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/conventions/coding-conventions.md",
    "chars": 2574,
    "preview": "# Coding Conventions\n\n> [!Note]\n> The following coding conventions are simply recommendations and are completely\n> optio"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/conventions/naming-conventions.md",
    "chars": 868,
    "preview": "# Naming Conventions\n\n> [!Note]\n> The following naming conventions are simply recommendations and are completely\n> optio"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/event-behaviors.md",
    "chars": 1103,
    "preview": "# Event Behaviors ⌨\n\nThe `flame_behaviors` package also provides event behaviors. These behaviors are a layer over the\ne"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/flame_behaviors.md",
    "chars": 163,
    "preview": "# flame_behaviors\n\n```{toctree}\nGetting Started     <getting_started.md>\nEvent Behaviors     <event_behaviors.md>\nCollis"
  },
  {
    "path": "doc/bridge_packages/flame_behaviors/getting_started.md",
    "chars": 3513,
    "preview": "# Getting Started 🚀\n\n\n## Prerequisites 📝\n\nIn order to use Flame Behaviors you must have the [Flame package][flame_packag"
  },
  {
    "path": "doc/bridge_packages/flame_bloc/bloc.md",
    "chars": 3023,
    "preview": "# flame_bloc\n\n`flame_bloc` is a bridge library for using [Bloc](https://bloclibrary.dev/) in your Flame\ngame. `flame_blo"
  },
  {
    "path": "doc/bridge_packages/flame_bloc/bloc_components.md",
    "chars": 2973,
    "preview": "\n\n# Components\n\n\n## FlameBlocProvider\n\nFlameBlocProvider is a Component which creates and provides a bloc to its childre"
  },
  {
    "path": "doc/bridge_packages/flame_bloc/flame_bloc.md",
    "chars": 89,
    "preview": "# flame_bloc\n\n```{toctree}\nOverview    <bloc.md>\nComponents    <bloc_components.md>\n```\n\n"
  },
  {
    "path": "doc/bridge_packages/flame_console/flame_console.md",
    "chars": 3142,
    "preview": "# flame_console\n\nFlame Console is a terminal overlay for Flame games which allows developers to debug and interact\nwith "
  },
  {
    "path": "doc/bridge_packages/flame_fire_atlas/fire_atlas.md",
    "chars": 3387,
    "preview": "# Flame fire atlas\n\nFlame fire atlas is a texture atlas lib for Flame. By using `flame_fire_atlas` one can access images"
  },
  {
    "path": "doc/bridge_packages/flame_fire_atlas/flame_fire_atlas.md",
    "chars": 65,
    "preview": "# flame_fire_atlas\n\n```{toctree}\nOverview    <fire_atlas.md>\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_forge2d/flame_forge2d.md",
    "chars": 81,
    "preview": "# flame_forge2d\n\n```{toctree}\nOverview    <forge2d.md>\nJoints    <joints.md>\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_forge2d/forge2d.md",
    "chars": 6967,
    "preview": "# Forge2D\n\nBlue Fire maintains a ported version of the Box2D physics engine and our\nversion is called Forge2D.\n\nIf you w"
  },
  {
    "path": "doc/bridge_packages/flame_forge2d/joints.md",
    "chars": 20262,
    "preview": "# Joints\n\nJoints are used to connect two different bodies together in various ways.\nThey help to simulate interactions b"
  },
  {
    "path": "doc/bridge_packages/flame_isolate/flame_isolate.md",
    "chars": 59,
    "preview": "# flame_isolate\n\n```{toctree}\nOverview    <isolate.md>\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_isolate/isolate.md",
    "chars": 2668,
    "preview": "# FlameIsolate\n\nThe power of [integral_isolates](https://pub.dev/packages/integral_isolates) neatly packaged in\n[flame_i"
  },
  {
    "path": "doc/bridge_packages/flame_lottie/flame_lottie.md",
    "chars": 1691,
    "preview": "# flame_lottie\n\nThis package allows you to load and add Lottie animations to your Flame game.\n\n\nThe native Lottie librar"
  },
  {
    "path": "doc/bridge_packages/flame_network_assets/flame_network_assets.md",
    "chars": 1194,
    "preview": "# FlameNetworkAssets\n\n`FlameNetworkAssets` is a bridge package focused on providing a solution to fetch, and cache asset"
  },
  {
    "path": "doc/bridge_packages/flame_oxygen/flame_oxygen.md",
    "chars": 130,
    "preview": "# flame_oxygen\n\n[flame_oxygen](https://github.com/flame-engine/flame/tree/main/packages/flame_oxygen)\n\n```{toctree}\n:hid"
  },
  {
    "path": "doc/bridge_packages/flame_rive/flame_rive.md",
    "chars": 54,
    "preview": "# flame_rive\n\n```{toctree}\nOverview    <rive.md>\n\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_rive/rive.md",
    "chars": 2315,
    "preview": "# flame_rive\n\n`flame_rive` is a bridge library for using [rive](https://rive.app/) animations in your Flame game.\nRive i"
  },
  {
    "path": "doc/bridge_packages/flame_riverpod/component.md",
    "chars": 1380,
    "preview": "# Component\n\n\n## ComponentRef\n\n`ComponentRef` exposes Riverpod functionality to individual `Component`s, and is comparab"
  },
  {
    "path": "doc/bridge_packages/flame_riverpod/flame_riverpod.md",
    "chars": 110,
    "preview": "# flame_riverpod\n\n```{toctree}\nOverview   <riverpod.md>\nComponent  <component.md>\nWidget     <widget.md>\n```\n\n"
  },
  {
    "path": "doc/bridge_packages/flame_riverpod/riverpod.md",
    "chars": 2167,
    "preview": "# flame_riverpod\n\n\n## Riverpod\n\n[Riverpod](https://riverpod.dev/) is a reactive caching and data-binding\nframework for D"
  },
  {
    "path": "doc/bridge_packages/flame_riverpod/widget.md",
    "chars": 487,
    "preview": "# Widget\n\n\n## RiverpodAwareGameWidget\n\n`RiverpodAwareGameWidget` is a GameWidget with a `State` object of type\n`Riverpod"
  },
  {
    "path": "doc/bridge_packages/flame_spine/flame_spine.md",
    "chars": 1391,
    "preview": "# flame_spine\n\nThis package allows you to load and add Spine skeletal animations to your Flame game.\n\n\n## Usage\n\nTo use "
  },
  {
    "path": "doc/bridge_packages/flame_splash_screen/flame_splash_screen.md",
    "chars": 589,
    "preview": "# flame_splash_screen\n\n![Showcase of the splash screen](https://raw.githubusercontent.com/flame-engine/flame_splash_scre"
  },
  {
    "path": "doc/bridge_packages/flame_svg/flame_svg.md",
    "chars": 51,
    "preview": "# flame_svg\n\n```{toctree}\nOverview    <svg.md>\n```\n"
  },
  {
    "path": "doc/bridge_packages/flame_svg/svg.md",
    "chars": 1111,
    "preview": "# Flame SVG\n\nflame_svg provides a simple API for rendering SVG images in your game.\n\n\n## Installation\n\nSvg support is pr"
  },
  {
    "path": "doc/bridge_packages/flame_texturepacker/flame_texturepacker.md",
    "chars": 3736,
    "preview": "# flame_texturepacker\n\n**flame_texturepacker**\nis a bridge package that allows you to load sprite sheets generated by [C"
  },
  {
    "path": "doc/bridge_packages/flame_tiled/flame_tiled.md",
    "chars": 4519,
    "preview": "# flame_tiled\n\n**flame_tiled** is the bridge package that connects the flame game engine to [Tiled] maps by parsing\nTMX "
  },
  {
    "path": "doc/bridge_packages/flame_tiled/layers.md",
    "chars": 1092,
    "preview": "# Layers\n\nAt its simplest, layers can be retrieved from a Tilemap by invoking:\n\n```dart\ngetLayer<ObjectGroup>(\"myObjectG"
  },
  {
    "path": "doc/bridge_packages/flame_tiled/tiled.md",
    "chars": 1688,
    "preview": "# Tiled\n\n[Tiled] is a great tool to design levels and maps.  From [Tiled]'s documentation:\n\n> Tiled is a 2D level editor"
  },
  {
    "path": "doc/development/contributing.md",
    "chars": 39,
    "preview": "```{include} ../../CONTRIBUTING.md\n```\n"
  },
  {
    "path": "doc/development/development.md",
    "chars": 312,
    "preview": "# Development\n\n- [Contributing](contributing.md)\n- [Documentation](documentation.md)\n- [Style Guide](style_guide.md)\n- ["
  },
  {
    "path": "doc/development/documentation.md",
    "chars": 7810,
    "preview": "# Documentation Site\n\nFlame's documentation is written in **Markdown**. It is then rendered into HTML with the help of\nt"
  },
  {
    "path": "doc/development/style_guide.md",
    "chars": 9653,
    "preview": "# Flame Style Guide\n\nThis is a general style guide for writing code within Flame and adjacent projects. We strive to\nmai"
  },
  {
    "path": "doc/development/testing_guide.md",
    "chars": 6073,
    "preview": "# Writing tests\n\n- All new functionality must be tested, if at all possible. When fixing a bug, tests must be added\n  to"
  },
  {
    "path": "doc/flame/camera.md",
    "chars": 11156,
    "preview": "# Camera & World\n\nIn most games the world is larger than what fits on screen at once. The camera controls which\nportion "
  },
  {
    "path": "doc/flame/collision_detection.md",
    "chars": 25025,
    "preview": "# Collision Detection\n\nAlmost every game needs to know when objects touch or overlap. Without collision detection a play"
  },
  {
    "path": "doc/flame/components/components.md",
    "chars": 17338,
    "preview": "# Components\n\nIn game development, a component is a self-contained unit that encapsulates a specific piece of game\nbehav"
  },
  {
    "path": "doc/flame/components/parallax_component.md",
    "chars": 5110,
    "preview": "# ParallaxComponent\n\nParallax scrolling is a classic game development technique where background layers move at differen"
  },
  {
    "path": "doc/flame/components/position_component.md",
    "chars": 6350,
    "preview": "# PositionComponent\n\nMost visible objects in a game need a position, size, and rotation. `PositionComponent` provides\nth"
  },
  {
    "path": "doc/flame/components/shape_components.md",
    "chars": 5207,
    "preview": "# ShapeComponents\n\nGeometric shapes are useful in many game scenarios: debug visualizations, procedurally generated\ngrap"
  },
  {
    "path": "doc/flame/components/sprite_components.md",
    "chars": 8913,
    "preview": "# Sprite Components\n\nSprites are 2D images (or regions of images) that represent the visual appearance of game objects.\n"
  },
  {
    "path": "doc/flame/components/utility_components.md",
    "chars": 10294,
    "preview": "# Utility Components\n\nBeyond the core visual components, Flame provides several utility components that handle common\nga"
  },
  {
    "path": "doc/flame/diagrams/component.md",
    "chars": 1302,
    "preview": "``` {mermaid}\n%%{init: { 'theme': 'dark' } }%%\ngraph TD\n    %% Config %%\n    classDef default fill:#282828,stroke:#F6BE0"
  },
  {
    "path": "doc/flame/diagrams/component_life_cycle.md",
    "chars": 1119,
    "preview": "``` {mermaid}\n%%{init: { 'theme': 'dark' } }%%\n\n  graph TD\n\n   %% Node Color %%\n   classDef default fill:#282828,stroke:"
  },
  {
    "path": "doc/flame/diagrams/flame_3d_components.md",
    "chars": 1349,
    "preview": "```{mermaid}\n%%{init: { 'theme': 'dark' } }%%\n\nflowchart TB\n    classDef default fill:#282828,stroke:#F6BE00;\n\n    %% ba"
  },
  {
    "path": "doc/flame/diagrams/flame_game_life_cycle.md",
    "chars": 1109,
    "preview": "``` {mermaid}\n%%{init: { 'theme': 'dark' } }%%\n\n  graph TD\n\n   %% Node Color %%\n   classDef default fill:#282828,stroke:"
  },
  {
    "path": "doc/flame/diagrams/low_level_game_api.md",
    "chars": 737,
    "preview": "``` {mermaid}\n%%{init: { 'theme': 'dark' } }%%\n  graph TD  \n  \n    %% Node Color %%\n    classDef default fill:#282828,st"
  },
  {
    "path": "doc/flame/effects/anchor_effects.md",
    "chars": 894,
    "preview": "# Anchor Effects\n\nAnchor effects are used to change the anchor point of a component over time. The anchor point is\nthe p"
  },
  {
    "path": "doc/flame/effects/color_effects.md",
    "chars": 4754,
    "preview": "# Color Effects\n\nColor effects are used to change the color of a component over time. They can be used to tint a compone"
  },
  {
    "path": "doc/flame/effects/combined_effect.md",
    "chars": 679,
    "preview": "# Combined Effect\n\nThis effect can be used to run multiple other effects simultaneously.\n\nThe combined effect can also b"
  },
  {
    "path": "doc/flame/effects/effect_controllers.md",
    "chars": 11315,
    "preview": "# Effect controllers\n\nAn `EffectController` is an object that describes how the effect should evolve over time. If you\nt"
  },
  {
    "path": "doc/flame/effects/effects.md",
    "chars": 6883,
    "preview": "# Effects\n\nIn game development, smoothly animating properties over time (moving a character, fading an element,\nscaling "
  },
  {
    "path": "doc/flame/effects/function_effect.md",
    "chars": 1002,
    "preview": "# Function Effect\n\nThe `FunctionEffect` class is a very generic Effect that allows you to do almost anything without\nhav"
  },
  {
    "path": "doc/flame/effects/move_effects.md",
    "chars": 2453,
    "preview": "# Move Effects\n\nMove Effects are a special type of effects that modify the position of a component over time, if\nyou wan"
  },
  {
    "path": "doc/flame/effects/remove_effect.md",
    "chars": 337,
    "preview": "# Remove Effect\n\nThis is a simple effect that can be attached to a component causing it to be removed from the game\ntree"
  },
  {
    "path": "doc/flame/effects/rotate_effects.md",
    "chars": 1812,
    "preview": "# Rotate Effects\n\nRotate effects are used to change the orientation of a component over time. They can be used to make\na"
  },
  {
    "path": "doc/flame/effects/scale_effects.md",
    "chars": 1317,
    "preview": "# Scale Effects\n\nScale effects are used to change the scale of a component over time. They can be used to make a\ncompone"
  },
  {
    "path": "doc/flame/effects/sequence_effect.md",
    "chars": 803,
    "preview": "# Sequence Effect\n\nThis effect can be used to run multiple other effects one after another. The constituent effects\nmay "
  },
  {
    "path": "doc/flame/effects/size_effects.md",
    "chars": 2037,
    "preview": "# Size Effects\n\nSize effects are used to change the size of a component over time. They can be used to make a\ncomponent "
  },
  {
    "path": "doc/flame/examples/analysis_options.yaml",
    "chars": 119,
    "preview": "include: package:flame_lint/analysis_options_with_dcm.yaml\n\nlinter:\n  rules:\n    avoid_web_libraries_in_flutter: false\n"
  },
  {
    "path": "doc/flame/examples/lib/anchor.dart",
    "chars": 1647,
    "preview": "import 'dart:async';\n\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimport 'package:flame/"
  },
  {
    "path": "doc/flame/examples/lib/anchor_by_effect.dart",
    "chars": 566,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/anchor_to_effect.dart",
    "chars": 578,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.d"
  },
  {
    "path": "doc/flame/examples/lib/collision_detection.dart",
    "chars": 1889,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/collisions.dart';\nimport 'package:flame/components"
  },
  {
    "path": "doc/flame/examples/lib/color_effect.dart",
    "chars": 753,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.da"
  },
  {
    "path": "doc/flame/examples/lib/decorator_blur.dart",
    "chars": 813,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/game.dart';\nimport 'package:flame/rendering.dart'"
  },
  {
    "path": "doc/flame/examples/lib/decorator_grayscale.dart",
    "chars": 946,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/game.dart';\nimport 'package:flame/rendering.dart'"
  },
  {
    "path": "doc/flame/examples/lib/decorator_hue.dart",
    "chars": 826,
    "preview": "import 'dart:math';\n\nimport 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/game.dart';\nimport 'package:"
  },
  {
    "path": "doc/flame/examples/lib/decorator_rotate3d.dart",
    "chars": 1028,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/game.dart';\nimport 'package:flame/rendering.dart'"
  },
  {
    "path": "doc/flame/examples/lib/decorator_shadow3d.dart",
    "chars": 1803,
    "preview": "import 'dart:ui';\n\nimport 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/components.dart';\nimport 'pack"
  },
  {
    "path": "doc/flame/examples/lib/decorator_tint.dart",
    "chars": 1111,
    "preview": "import 'dart:ui';\n\nimport 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/game.dart';\nimport 'package:fl"
  },
  {
    "path": "doc/flame/examples/lib/drag_events.dart",
    "chars": 6208,
    "preview": "import 'dart:math';\n\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimport 'package:flame/g"
  },
  {
    "path": "doc/flame/examples/lib/ember.dart",
    "chars": 928,
    "preview": "import 'package:flame/collisions.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimpo"
  },
  {
    "path": "doc/flame/examples/lib/flower.dart",
    "chars": 2200,
    "preview": "import 'dart:ui';\n\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimport 'package:flame/geo"
  },
  {
    "path": "doc/flame/examples/lib/glow_effect.dart",
    "chars": 620,
    "preview": "import 'package:flame/components.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n\nimport '"
  },
  {
    "path": "doc/flame/examples/lib/hue_effect.dart",
    "chars": 563,
    "preview": "import 'dart:math';\n\nimport 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'pac"
  },
  {
    "path": "doc/flame/examples/lib/main.dart",
    "chars": 4861,
    "preview": "import 'package:doc_flame_examples/anchor.dart';\nimport 'package:doc_flame_examples/anchor_by_effect.dart';\nimport 'pack"
  },
  {
    "path": "doc/flame/examples/lib/move_along_path_effect.dart",
    "chars": 684,
    "preview": "import 'dart:ui';\n\nimport 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package"
  },
  {
    "path": "doc/flame/examples/lib/move_by_effect.dart",
    "chars": 563,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/move_to_effect.dart",
    "chars": 555,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/opacity_by_effect.dart",
    "chars": 611,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.da"
  },
  {
    "path": "doc/flame/examples/lib/opacity_effect_with_target.dart",
    "chars": 1171,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.d"
  },
  {
    "path": "doc/flame/examples/lib/opacity_to_effect.dart",
    "chars": 746,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.d"
  },
  {
    "path": "doc/flame/examples/lib/pointer_events.dart",
    "chars": 1207,
    "preview": "import 'dart:math';\n\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimport 'package:flame/g"
  },
  {
    "path": "doc/flame/examples/lib/post_process.dart",
    "chars": 1533,
    "preview": "import 'dart:math';\nimport 'dart:ui';\n\nimport 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components."
  },
  {
    "path": "doc/flame/examples/lib/ray_cast.dart",
    "chars": 1580,
    "preview": "import 'package:flame/collisions.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/game.dart';\nimport"
  },
  {
    "path": "doc/flame/examples/lib/ray_trace.dart",
    "chars": 1962,
    "preview": "import 'dart:math';\n\nimport 'package:flame/collisions.dart';\nimport 'package:flame/components.dart';\nimport 'package:fla"
  },
  {
    "path": "doc/flame/examples/lib/remove_effect.dart",
    "chars": 1006,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.da"
  },
  {
    "path": "doc/flame/examples/lib/rive_example.dart",
    "chars": 1401,
    "preview": "import 'dart:async';\n\nimport 'package:flame/events.dart';\nimport 'package:flame/game.dart';\nimport 'package:flame_rive/f"
  },
  {
    "path": "doc/flame/examples/lib/rotate_around_effect.dart",
    "chars": 631,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/rotate_by_effect.dart",
    "chars": 587,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/rotate_to_effect.dart",
    "chars": 587,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/router.dart",
    "chars": 10480,
    "preview": "import 'package:flame/components.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/events.dart';\nimport "
  },
  {
    "path": "doc/flame/examples/lib/scale_by_effect.dart",
    "chars": 711,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/scale_to_effect.dart",
    "chars": 705,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/sequence_effect.dart",
    "chars": 941,
    "preview": "import 'package:doc_flame_examples/flower.dart';\nimport 'package:flame/effects.dart';\nimport 'package:flame/game.dart';\n"
  },
  {
    "path": "doc/flame/examples/lib/size_by_effect.dart",
    "chars": 636,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.da"
  },
  {
    "path": "doc/flame/examples/lib/size_to_effect.dart",
    "chars": 634,
    "preview": "import 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'package:flame/effects.da"
  },
  {
    "path": "doc/flame/examples/lib/tap_events.dart",
    "chars": 3362,
    "preview": "import 'dart:math';\n\nimport 'package:flame/components.dart';\nimport 'package:flame/events.dart';\nimport 'package:flame/g"
  },
  {
    "path": "doc/flame/examples/lib/time_scale.dart",
    "chars": 640,
    "preview": "import 'dart:async';\n\nimport 'package:doc_flame_examples/ember.dart';\nimport 'package:flame/components.dart';\nimport 'pa"
  },
  {
    "path": "doc/flame/examples/lib/value_route.dart",
    "chars": 3630,
    "preview": "import 'dart:math';\nimport 'dart:ui';\n\nimport 'package:doc_flame_examples/router.dart';\nimport 'package:flame/components"
  },
  {
    "path": "doc/flame/examples/pubspec.yaml",
    "chars": 452,
    "preview": "name: doc_flame_examples\nresolution: workspace\ndescription: Documentation examples\nversion: 1.0.0\npublish_to: none\n\nenvi"
  },
  {
    "path": "doc/flame/examples/web/index.html",
    "chars": 756,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n  <meta n"
  },
  {
    "path": "doc/flame/flame.md",
    "chars": 1085,
    "preview": "# Flame\n\n- [Getting Started](../README.md)\n- [Game Widget](game_widget.md)\n- [The game class](game.md)\n- [Assets Structu"
  },
  {
    "path": "doc/flame/game.md",
    "chars": 11700,
    "preview": "# FlameGame\n\nEvery game needs a central object that owns the game loop, the continuous cycle of updating state\nand rende"
  },
  {
    "path": "doc/flame/game_widget.md",
    "chars": 3339,
    "preview": "# Game Widget\n\nThe `GameWidget` is the bridge between Flutter and Flame. Since Flame games are not Flutter widgets\nby th"
  },
  {
    "path": "doc/flame/inputs/drag_events.md",
    "chars": 5316,
    "preview": "# Drag Events\n\n**Drag events** occur when the user moves their finger across the screen of the device, or when they\nmove"
  },
  {
    "path": "doc/flame/inputs/gesture_input.md",
    "chars": 6957,
    "preview": "# Gesture Input\n\nThis is documentation for gesture inputs attached directly on the game class, most of the time you\nwant"
  },
  {
    "path": "doc/flame/inputs/hardware_keyboard_detector.md",
    "chars": 616,
    "preview": "# HardwareKeyboardDetector\n\n```{note}\nMost of the time you will want to use the `KeyboardEvents` class or the\n`KeyboardH"
  },
  {
    "path": "doc/flame/inputs/inputs.md",
    "chars": 1183,
    "preview": "# Inputs\n\nGames are interactive by nature, so handling player input is essential. Flame provides input\nhandling that wor"
  },
  {
    "path": "doc/flame/inputs/keyboard_input.md",
    "chars": 5067,
    "preview": "# Keyboard Input\n\nThis includes documentation for keyboard inputs.\n\nFor other input documents, see also:\n\n- [Gesture Inp"
  },
  {
    "path": "doc/flame/inputs/other_inputs.md",
    "chars": 7199,
    "preview": "# Other Inputs and Helpers\n\nThis includes documentation for input methods besides keyboard and mouse.\n\nFor other input d"
  },
  {
    "path": "doc/flame/inputs/pointer_events.md",
    "chars": 2547,
    "preview": "# Pointer Events\n\n```{note}\nThis document describes the new events API. The old (legacy) approach,\nwhich is still suppor"
  },
  {
    "path": "doc/flame/inputs/scale_events.md",
    "chars": 6833,
    "preview": "# Scale Events\n\n**Scale events** occur when the user moves two fingers in a pinch in, or in a pinch out move.\nOnly one s"
  },
  {
    "path": "doc/flame/inputs/tap_events.md",
    "chars": 9959,
    "preview": "# Tap Events\n\n```{note}\nThis document describes the new events API. The old (legacy) approach,\nwhich is still supported,"
  },
  {
    "path": "doc/flame/layout/align_component.md",
    "chars": 256,
    "preview": "# AlignComponent\n\n```{dartdoc}\n:package: flame\n:symbol: AlignComponent\n:file: src/layout/align_component.dart\n\n[Align]: "
  },
  {
    "path": "doc/flame/layout/column_component.md",
    "chars": 123,
    "preview": "# ColumnComponent\n\n```{dartdoc}\n:package: flame\n:symbol: ColumnComponent\n:file: src/experimental/column_component.dart\n`"
  },
  {
    "path": "doc/flame/layout/expanded_component.md",
    "chars": 129,
    "preview": "# ExpandedComponent\n\n```{dartdoc}\n:package: flame\n:symbol: ExpandedComponent\n:file: src/experimental/expanded_component."
  },
  {
    "path": "doc/flame/layout/layout.md",
    "chars": 868,
    "preview": "# Layout\n\nPositioning game elements manually with pixel coordinates works for simple cases, but quickly\nbecomes tedious "
  },
  {
    "path": "doc/flame/layout/padding_component.md",
    "chars": 126,
    "preview": "# PaddingComponent\n\n```{dartdoc}\n:package: flame\n:symbol: PaddingComponent\n:file: src/experimental/padding_component.dar"
  },
  {
    "path": "doc/flame/layout/row_component.md",
    "chars": 114,
    "preview": "# RowComponent\n\n```{dartdoc}\n:package: flame\n:symbol: RowComponent\n:file: src/experimental/row_component.dart\n```\n"
  },
  {
    "path": "doc/flame/other/debug.md",
    "chars": 2849,
    "preview": "# Debug features\n\n\n## FlameGame features\n\nFlame provides some debugging features for the `FlameGame` class. These featur"
  },
  {
    "path": "doc/flame/other/other.md",
    "chars": 505,
    "preview": "# Other\n\nThis section covers additional tools and utilities that don't fit neatly into the other categories\nbut are stil"
  },
  {
    "path": "doc/flame/other/performance.md",
    "chars": 8805,
    "preview": "# Performance\n\nJust like any other game engine, Flame tries to be as efficient as possible without making the API\ntoo co"
  },
  {
    "path": "doc/flame/other/util.md",
    "chars": 11368,
    "preview": "# Util\n\nOn this page you can find documentation for some utility classes and methods.\n\n\n## Device Class\n\n```{warning}\nMa"
  },
  {
    "path": "doc/flame/other/widgets.md",
    "chars": 2797,
    "preview": "# Widgets\n\nOne advantage when developing games with Flutter is the ability to use Flutter's extensive toolset\nfor buildi"
  },
  {
    "path": "doc/flame/overlays.md",
    "chars": 2445,
    "preview": "# Overlays\n\nGames often need to display Flutter widgets on top of the game canvas for things like pause menus,\nscore dis"
  },
  {
    "path": "doc/flame/platforms.md",
    "chars": 6040,
    "preview": "# Supported Platforms\n\nOne of Flame's biggest advantages is that it inherits Flutter's cross-platform reach. A single\nco"
  },
  {
    "path": "doc/flame/rendering/decorators.md",
    "chars": 8506,
    "preview": "# Decorators\n\n**Decorators** are classes that can encapsulate certain visual effects and then apply those visual\neffects"
  },
  {
    "path": "doc/flame/rendering/images.md",
    "chars": 18314,
    "preview": "# Images\n\nTo start off you must have an appropriate folder structure and add the files to the `pubspec.yaml`\nfile, like "
  },
  {
    "path": "doc/flame/rendering/layers.md",
    "chars": 8356,
    "preview": "# Layers and Snapshots\n\nLayers and snapshots share some common features, including the ability to pre-render and cache\no"
  },
  {
    "path": "doc/flame/rendering/palette.md",
    "chars": 3587,
    "preview": "# Palette\n\nThroughout your game you are going to need to use colors in lots of places. There are two classes on\n`dart:ui"
  },
  {
    "path": "doc/flame/rendering/particles.md",
    "chars": 12662,
    "preview": "# Particles\n\nFlame offers a basic, yet robust and extendable particle system. The core concept of this system is\nthe `Pa"
  },
  {
    "path": "doc/flame/rendering/post_processing.md",
    "chars": 5745,
    "preview": "# Post Processing and Shaders\n\nPost processing is a technique used in game development to apply visual effects to a comp"
  },
  {
    "path": "doc/flame/rendering/rendering.md",
    "chars": 1014,
    "preview": "# Rendering\n\nRendering is how your game draws everything the player sees: sprites, text, particle effects, and\ncustom sh"
  }
]

// ... and 2017 more files (download for full content)

About this extraction

This page contains the full source code of the flame-engine/flame GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2217 files (6.9 MB), approximately 1.9M tokens, and a symbol index with 7169 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!