This ignores keyboard events if the game widget doesn't have the primary focus. This allows focus nodes on overlay widgets to take precedence on keyboard resolving.
Also, add focus scope in the game widget for when the overlay is removed, the focus goes back to the game.
Also, add tests for GameWidget for all these cases and some more.
Since the RemoveEffect was removing its parent and not its target it couldn't work within a SequenceEffect since it was just removing that effect instead.
This PR adds a new OpacityProvider interface which should be implemented by components that want to use OpacityEffect. This makes OpacityEffect decoupled from HasPaint.
# Description
Correct a late initialization error that occurs when re-visiting a route previous visited that is using the FlameBlocListenable mixin. The `final` keyword is remove from _subscription field declaration so that the error does not occur on subsequent mounts of the component.
## Checklist
- [X] The title of my PR starts with a [Conventional Commit] prefix (`fix:`, `feat:`, `docs:` etc).
- [X] 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?
- [ ] Yes, this PR is a breaking change.
- [X] No, this PR is not a breaking change.
This PR adds the new flame_yarn repository (see #2066), and implements the tokenizer (lexer) for the .yarn file format.
By itself, the tokenizer is an internal function. However, it is a well-defined component that can be developed and tested standalone. Therefore, I am creating a separate PR for it -- otherwise tokenizer+lexer would have been unmanageably large.
This PR adds the position parameter to PolygonHitbox and isSolid parameters to all hitbox classes' .relative named constructors.
Also returns PolygonComponent's internal topLeft parameter to private _topLeft as no longer required outside of the class file.
Since the PictureRecorder turns the output into pixels it will be blurry if the size isn't scaled with the devicePixelRatio.
This PR applies the same technique implemented in #878 and described in flutter/flutter#17782 (comment)
This commit replaces the melos doc-build-live with melos doc-serve.
This also changes documentation for this while removing the mention of make commands in the documentation.
Added toString method to all Drag Event message Handlers in flame/lib/src/events/messages/ which were returning pure data objects and were not much meaningful
This PR fixes polygons inside a solid circle and circles inside a solid polygon not being correctly detected.
(This relates to Flame's collision detection, not Forge2D)