Releases: ayebear/picoes
Releases · ayebear/picoes
PicoES v0.5.3
- Added
setRaw
method to Entity, to be able to set a component to an already initialized object - Updated tests, now at 100% test coverage
PicoES v0.5.2
System Re-running
- Added support for re-running all systems by returning "true" on system methods like pre, every, and post. Re-runs will not pass any arguments to your methods. This is helpful if you pass a delta-time value, so you know not to advance anything by that during a re-run.
PicoES v0.5.0
This is just a maintenance release to fix issue #35.
PicoES v0.4.1
Bugfix
- Including indexer classes in main exports
PicoES v0.4.0
Generic Indexing
- Resolved #30
- Added support for a generic indexer class to be passed into the World constructor.
- Wrote a new SimpleIndex, with completely different time complexities than the old indexer, which is now called MemoizedQueryIndex. This should perform better in real world scenarios where many component additions and removals occur. If your application tends to have more repeated queries and less entity modifications, then the MemoizedQueryIndex may perform better.
- Simplified index interface, and removed the need for keeping track of all entities, by directly linking back to the world instance.
- Update the docs and readme to include information about the new indexers.
PicoES v0.3.2
Bugfix
- Fixed #28
- Fixed entity indexing when adding components. Entities were being added to incorrect indexes. This was an issue that has existed since entities were indexed by components (since early versions of PicoES). It was covered by an additional check in versions <0.3.0, which was resulting in closer to O(n) performance in some cases, but the results produced were correct. In versions 0.3.0 and 0.3.1, the check did not exist, and it was possible for systems to receive undefined components. It has since been fixed by correctly updating the indexes, so everything is in the right place to start with.
Keeping this as a prerelease until more testing is done (even though there is 100% coverage again).
PicoES v0.3.1
Bugfix
- Fixed #27 - Component constructors got called before the component was added to the entity. Added back onCreate() method to fix this. Both constructors and onCreate take the same parameters (starting with entity), to stay consistent. Note that it is dangerous to use constructors' entity parameter since the component being created will be
undefined
.
PicoES v0.3.0
Breaking Changes
- Removed onCreate function in components - constructor always takes entity as first parameter now
Improvements And Fixes
- Setup documentation generator #3
- Fixed hash collision bug #14
- Added support for removing multiple components with a single remove() call #21
- Added ability to stop entity iteration by returning false in world.every() callback
- This applies to systems as well
- Entity IDs are now read-only
- Component array argument passed to world.system is now optional (defaults to all components)
- Now at 100% test coverage, due to removing unnecessary check in for loop with MapIterator
- General cleanup and refactoring
PicoES v0.2.7
- Now passes component constructor arguments to onCreate
- This allows onCreate to be used instead of the constructor, since it adds the parent entity to the regular constructor arguments
PicoES v0.2.6
- Calling world.initialize() will now pass arguments to initialize.
- Calling world.run() will now pass arguments to pre, post, and the end of every, after the entity parameter.
- Added optional onCreate method to components, which gets called when the component is created. The first parameter is the parent entity.
- Added "get" method to world, which returns an array of matching entities.
- Simplified every() method, got rid of "this" hacks by using "bind".