Releases: junkdog/artemis-odb
artemis-odb-0.13.1
Change Log
Version: 0.13.1 - 2015-09-20
- Fix: Deleted entities no longer mess up subscriptions when edited in
SubscriptionListener#removed
. - Fix: Deleted entities retain components.
artemis-odb-0.13.0
This release is a little peculiar, but handy:
-
libgdx's json implementation now backs a second world serializer. This means saving/loading is now compatible when building with GWT, and more libgdx container classes are properly serialized.
-
The new debug artifact,
artemis-odb-debug
injects some extra runtime checks compared toartemis-odb
. Useful for tracking down escaping flyweight entities.artemis-odb-debug
replaces artemis-odb, either use a profile or do it quick and dirty:
<dependency>
<groupId>net.onedaybeard.artemis</groupId>
<!--
<artifactId>artemis-odb</artifactId>
-->
<artifactId>artemis-odb-debug</artifactId>
<version>0.13.0</version>
</dependency>
Change Log
Version: 0.13.0 - 2015-09-14
- BREAKING CHANGES
World#getEntity(int)
can return inactive Entities, check state usingEntity#isActive
or
EntitityManager.isActive(int)
.Entity.isActive
no longer works for checking whether an entity was just created, instead
useEntityManager#isNew(int)
.
- New additional serialization backend: json via libgdx.
- GWT support, works with libgdx's HTML5 backend.
- Supports more libgdx classes out of the box.
- New
artemis-odb-debug
artifact- Replaces normal artemis-odb with this (remove artemis-odb from pom/gradle/IDE)
- Performs extra runtime checks; tries to catch run-away flyweights.
- Incurs a rather hefty performance penalty.
- Fix: SubscriptionListeners#removed ids resolved to a lot of nulls.
Version: 0.12.1 - 2015-09-05
- Fix: IntDeque resets beginIndex when growing.
Downloads
Maven
<dependency>
<groupId>net.onedaybeard.artemis</groupId>
<artifactId>artemis-odb</artifactId>
<version>0.13.0</version>
</dependency>
See weave automation and module overview
Gradle
dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.13.0" }
artemis-odb-0.12.1
Change Log
Version: 0.12.1 - 2015-09-05
- Fix: IntDeque resets beginIndex when growing.
Downloads
Maven
<dependency>
<groupId>net.onedaybeard.artemis</groupId>
<artifactId>artemis-odb</artifactId>
<version>0.12.1</version>
</dependency>
See weave automation and module overview
Gradle
dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.12.1" }
artemis-odb-0.12.0
DON'T USE THIS VERSION, GO WITH 0.12.1 instead.
So... another feature release before hitting 1.0.0. This one is smaller than usual, which I suppose is a good thing.
Change Log
Version: 0.12.0 - 2015-09-04
- InvocationStrategy configurable via WorldConfiguration.
- Add @Skipwire annotation to exclude injection targets.
- Entities recycled in FIFO order.
- Change EntitySubscription order to deleted/added/changed.
- Change AspectSubscription order to removed/inserted.
- FIX: Resolved potential "markSupported() is undefined for the type InputStream" message when
compiling for GWT.
Version: 0.11.4 - 2015-08-18
- Fix: Excessive object creation when serializing entities.
- Fix: Components referencing other entities are implicitly included when serializing.
- Fix: SaveFileFormat should only enumerate required components.
Version: 0.11.3 - 2015-08-14
- Fix: entity reference operations could fail when loading into a fresh World instance.
Version: 0.11.2 - 2015-08-11
- Added boolean
WorldSerializationManager#alwaysLoadStreamMemory
, forces fully loading the stream into
memory during loading, even if stream reports thatmark
is supported. Necessary when working
with libgdx's FileHandles.- Enabled by default.
- Fix: Duplicate ComponentNameComparator in json module, causing failing android builds.
Version: 0.11.1 - 2015-08-11
- Fix: Entities not registered as added to world during batch entity synchronization.
Downloads
Maven
<dependency>
<groupId>net.onedaybeard.artemis</groupId>
<artifactId>artemis-odb</artifactId>
<version>0.12.0</version>
</dependency>
See weave automation and module overview
Gradle
dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.12.0" }
0.10.1 - a few steps closer to 1.0.0
Psst. 0.10.2 has been released - it fixes a bug w.r.t. entity transmuters.
0.10.0
/0.10.1
dev suffered neglect during the past months. Saving/loading world instances has been pushed back to the next release. Earlier experiments waded in growing complexity. I have a much simpler solution in mind now, without sacrificing any/much of the potential of the previous design.
The biggest changes for this release revolve around the AspectSubscriptionManager, increasing the responsibility of WorldConfiguration
, and generally decoupling the world - making it slightly more open to custom configurations.
Nota Bene: breaking existing code
This release can be considered a preparatory release anticipating 1.0.0
. Some existing code will break; most/all deprecated code should have javadoc or exceptions pointing you in the right direction.
The cycle of breakage will stop once we reach 1.0.0
; until then, please bear with me.
Nota Bene: perf hit
0.11.0
introduced a pretty nasty perf hit. Initial benchmarks indicate <25% poorer throughput when iterating entities.
In the interest of moving towards 1.0.0
as quickly as possible, optimizations restoring the performance has been postponed until 1.1.0
(or 1.0.0
).
Change Log
Version: 0.10.1 - 2015-07-20
- Fix: Reduced visibility of AspectionSubscriptionManager constructor.
- Fix: NPE related to
EntitySubscription#createSubscription
.
Version: 0.10.0 - 2015-07-19
- MINOR BREAKING CHANGES
- BaseSystem is now the most basic system type.
- World#getSystems returns Bag.
- EntitySystem constructor expects Aspect.Builder:
- Implies existing classes have to be recompiled against this release.
- Existing custom entity systems need to pass Aspect.Builder to EntitySystem.
- EntitySystem no longer implements EntityObserver.
- ArtemisProfiler#initialize now requires BaseSystem instead of EntitySystem.
- VoidEntitySystem no longer subclass of EntitySystem.
setSystem
andsetManager
now underWorldConfiguration
. This
effectively removesWorld#initialize
, as initializations happens inside
World's constructor.
- BaseSystem is now the most basic system type.
- New internal EntitySubscription and accompanying AspectSubscriptionManager
resulting in cleaner and more flexible EntitySystems. - SystemInvocationStrategy opening up for more granular control over system processing.
- Default strategy behaves as before.
- Aspect split into Aspect and Aspect.Builder.
- Simplified static method names, mirroring Aspect's old instance methods.
- EntityFactories support for enum values.
- Children of EntitySystems can create flyweight entities.
- Fix: Uninitialized worlds threw cryptic NPE when invoking #process.
- Fix:
World#createFactory(Class<EntityFactory>)
was package local. - Fix:
Entity#edit
used together with EntityTransmuters or Archetypes
caused the wrong compositionId to be reported, if all changes took place
during the same processing round..
Downloads
Maven
<dependency>
<groupId>net.onedaybeard.artemis</groupId>
<artifactId>artemis-odb</artifactId>
<version>0.10.1</version>
</dependency>
See weave automation and module overview
Gradle
dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.10.1" }