* Game as a component
* Fix component stories
* Effects are now components
* Update effects docs
* Handle swap of parent
* Fix reAddChildren
* Wait for children to be added
* BaseComponent and PositionComponent to be non-abstract
* Simplify HasGameRef
* Revert so that onLoad can be null
* Fix example description
* Effects as components
* Remove gameRef from addChildren
* Fix hasGameRef
* Start migrating effects
* Updated comments of effect fields
* Fix comments
* Continue to fix sequence and combined effects
* Upgrade ordered_set
* Fix position_component_test
* BaseComponent -> Component
* Fix combined and sequence effects
* Await components to be added in tests
* Remove unnecessary game.update in tests
* Fix some tests related to composition
* BaseGame should be used in examples
* Fix CombinedEffect test
* Keyboard code to be based on Component
* Fix keyboard tests
* Fix analyze problems
* Fix sequence_effect
* Fix combined_effect_test
* Store peak state instead of end state
* Fix sequence_effect tests
* Update tutorial
* Fix tutorial 1
* Remove SimplePositionComponentEffect
* Remove unused test variable
* Update docs
* Removed onMount
* Remove onMount
* Add missing dartdoc
* Fix dart docs
* Add super.update where needed
* Move reAddChildren to component
* Reorganize method order in game widget
* preOffset -> initialDelay, postOffset -> peakDelay
* Introduce component.onParentChange
* Remove tests in wrong file
* Fix composed component test
* Add game lifecycle test
* Use BaseGame for mouse cursor test
* Oxygen should (?) not call super.update
* Use BaseGame in keyboard_test
* Fix onLoad to be properly cached
* Re-add unintentionally removed override
* Fix info for collision detection tests
* Add test for correct lifecycle on parent change
* Fix particles example
* Add component lifecycle diagram to the docs
* Add docs for the game lifecycle
* onRemove should be called when a game is removed from the widget
* Fix analyze errors
* prepare should be called from the component itself, not its parent
* Fix dartdoc
* onParentChange -> onMount
* onMount should have void as return type
* Simplify the loaderFuture in GameWidget
* Fix mock_canvas
* Fix rebase problem
* Remove asComponent
* Less complex _loaderFuture
* Add super.update to no_fcs parallax example
* Fix async tests
* Revert _loaderFuture
* Fix analyze issues
* await gameWithCollidables
* Keep epsilon small where it can be
* tappable methods should return bool
* Game lifecycle is now the same as for Component
* Remove mustCallSuper from component.update
* Make onLoadCache protected
* @internal on onLoadCache
* Cache/Memoize debugPaint and debugTextPaint
* Fix imports
* Fix comments
* Always call super.onLoad so that mixins can override it
* Add forgotten super.onLoad
* Bump coverage percentage
* HasCollidables should override update
* Fix Game comments
* Fix some dartdoc
* Apply suggestions from code review
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Game + Loadable as mixins
* Update packages/flame/lib/src/game/game_widget/game_widget.dart
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
* Update loadable docs
* Fix comments
* Move fps_counter
* Fix keyboard example
* Fix dartdoc
* Remove tutorials temporarily
* Fix game lowlevel graph
* Fix resize issue
Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
* Add onCollisionEnd for HitboxShape and Collidable
* Add tests for collision callbacks
* Detect multiple collsions with same collidable in test
* Remove unused import
* Break out duplicated code
* Fix formatting
* Use correct hash set
* Update examples/lib/stories/collision_detection/multiple_shapes.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update examples/lib/stories/collision_detection/multiple_shapes.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Use hashValues instead of _combineHashCodes
* hashValues is order dependent so we need to sort the objects first
* Add section about onCollisionEnd
* Fix missed hashValues
* Use xor instead of hashValues
* Update examples/lib/stories/collision_detection/collision_detection.dart
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
* Update components documentation
* Update doc/components.md
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* Fix Ericks suggestions
* Update doc/components.md
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* Update doc/components.md
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* Update doc/components.md
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* add Active attr in Collision
* add code notes , add test file (empty)
* add test code
* var name correction , note correction
* var name correction , note correction
* var name
* Code specification, remove redundant code
* function name update
* function name update
* completed pull/690#issuecomment-787399432 but the test case is not complete
* add handleCollidables test code
* add empty line
* Update lib/src/components/mixins/has_collidables.dart
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* Update has_collidables.dart
* update api
* Add CollidableType enum
* CollisionType -> CollisableType
* Update test/components/collidable_type_test.dart
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
* Fixed comments
* collisionType -> collidableType
* Add CollidableType docs
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
* Move out collision detection methods
* Add possibility to define a hull for PositionComponents
* Add example of how to use hull with tapable
* Update contains point comment
* Fix contains point
* Hull should be based on center position
* Remove collision detection parts
* Use percentage of size instead of absolute size
* Separate hull from PositionComponent
* Clarify hull example
* Fix formatting
* Change to relative import
* Use mixin for hitbox
* Update changelog
* Rename HasHitbox to Hitbox
* Clarified names
* Add spaces within braces
* Removed extra spaces in the braces
* Moved point rotation to Vector2 extension
* Render hitbox within extension
* Added collision detection
* Add tests
* Separate classes into files
* Fix formatting
* Move geometry files into geometry directory
* Use relative import for mixin
* Begin intersections between different shapes
* Add shape class
* Align with rebase
* Fix CHANGELOG
* Fix children positioning
* New polygon intersection algorithm
* No anchor for shape in PoC
* Remove unused imports
* Smarter bounding rectangle comparisons
* Formatting
* Add Circle to Circle collision
* Circle-polygon intersections
* Explanation of circle-circle intersections
* Properly render circle circle collisions
* Fix formatting
* Better example
* Update docs for collision detection
* Fix formatting
* Add polygon definition example
* Update documentation about the shapes
* Moved premature rc6 changelog line
* Added a cache system for shape calculations
* Fix formatting
* Fix formatting
* Fix imports
* Add collidable polygon to example
* Use anchorPosition for PositionComponent containsPoint
* Fix angle problem for Rectangle
* collisionCallback -> onCollision
* Fixed Erick's comments
* Improve collision detection example
* Fix#662, zero size doesn't contain any points
* Fix formatting
* Can't contain point if x or y is 0
* Fix formatting
* Fix test
* Remove unnecessary collidable example part
* Align with Draggable overhaul
* Updated collision detection docs
* Fix PR comments
* Have more sensible Circle constructor
* Clarify shape fields
* Need ensureInitialized
* Update docs to conform with switched constructors
* Fix new definitions
* Fix formatting
* Update documentation
* Fix formatting
* Fix formatting
* Exclude metrics check for test files
* Add another simpler example of collision detection
* Updated according to comments
* Fix comments
* Fix more comments
* Fix more comments
* Fix relative import
* Fix comments
* Moved export of geometry
* Fix comments
* Remove unused import
* Fix assert for shape.component
* Fix comments
* Expect instead of assert in test