Skip to content

Releases: ayebear/picoes

PicoES v0.5.3

21 Nov 06:04
Compare
Choose a tag to compare
  • 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

05 Nov 02:18
Compare
Choose a tag to compare

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

19 Aug 01:39
Compare
Choose a tag to compare

This is just a maintenance release to fix issue #35.

PicoES v0.4.1

17 Apr 01:14
2f30551
Compare
Choose a tag to compare

Bugfix

  • Including indexer classes in main exports

PicoES v0.4.0

17 Apr 00:40
e21721e
Compare
Choose a tag to compare
PicoES v0.4.0 Pre-release
Pre-release

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

09 Apr 05:19
5ddc266
Compare
Choose a tag to compare

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

08 Apr 05:05
Compare
Choose a tag to compare
PicoES v0.3.1 Pre-release
Pre-release

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

07 Apr 21:11
cf419be
Compare
Choose a tag to compare
PicoES v0.3.0 Pre-release
Pre-release

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

29 May 17:06
Compare
Choose a tag to compare
  • 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

24 May 01:46
Compare
Choose a tag to compare
  • 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".