Releases: junkdog/artemis-odb
Releases · junkdog/artemis-odb
artemis-odb-1.4.0
This one introduces a minor breaking API change. We considered it sufficiently minor to not warrant a major version bump.
Change Log
Version: 1.4.0 - 2016-03-09
- BREAKING CHANGES
- If you have overridden default injection functionality and instance FieldHandler
yourself, be aware the FieldHandler constructor behaviour has changed. See below.
- If you have overridden default injection functionality and instance FieldHandler
- Fix:
IntervalEntitySystem#getIntervalDelta
sometimes returned wrong value when interval <world.delta
. - Fix: Transmuting deleted entities throws an exception, mirroring
EntityEdit
on deleted. - Fix: Simultaneous transmute + delete caused dead entities in
SubscriptionListener#inserted
. - Fix: Using custom FieldHandler or FieldResolver disabled
@Wire
on fields.- Warn if attempting to inject custom objects without prerequisite resolver (PojoFieldResolver).
artemis-odb-1.3.1
Change Log
Version: 1.3.1 - 2015-12-29
- Fix: During deserialization, indirectly referenced entities were not included in
the archetypes section
Version: 1.3.0 - 2015-12-28
- Serialization
- Archetypes recorded in output; somewhat smaller output and faster load.
- If
JsonArtemisSerializer#setUsePrototypes
is true (default), omit components made
up of default values. - Json DOM was parsed multiple times, fixed.
- Overloaded JsonArtemisSerializer#load - deserialize directly from JsonValue.
- When loading entities, each deserialized child is assigned an entity id greater
than its parent. - added
WorldSerializationManager#getSerializer
(if you need to load JsonValue directly, for instance)
- Fix: Work-around for a NPE during weaving; occurred when trying to inspect fields belonging to any parent class
artemis-odb-1.3.0
Change Log
Version: 1.3.0 - 2015-12-28
- Serialization
- Archetypes recorded in output; somewhat smaller output and faster load.
- If
JsonArtemisSerializer#setUsePrototypes
is true (default), omit components made
up of default values. - Json DOM was parsed multiple times, fixed.
- Overloaded JsonArtemisSerializer#load - deserialize directly from JsonValue.
- When loading entities, each deserialized child is assigned an entity id greater
than its parent. - added
WorldSerializationManager#getSerializer
(if you need to load JsonValue directly, for instance)
- Fix: Work-around for a NPE during weaving; occurred when trying to inspect fields belonging to any parent class
artemis-odb-1.2.1
Change Log
Version: 1.2.1 - 2015-11-23
- Fix:
@PooledWeaver
properly resets primitives and strings back to initial values. - Fix: Entity edit right after delete could cause entities to show up in subscription insertions.
Version: 1.2.0 - 2015-11-08
- ComponentMappers are reused when injected or when retrieved via
World#getMapper
. - Deprecated
EntityEdit#deleteEntity
, useWorld#delete
orEntity#deleteFromWorld
instead. - Fix:
@Wire
registered classes would silently fail when not registered. - Fix: Woven pooled components didn't null strings on reset.
- Fix: EntityTransmuter cause entities to lose any pending deletes.
artemis-odb-1.2.0
Nothing too exciting in this release, but fixes a couple of bugs regarding edge cases. Version bump from deprecating EntityEdit#deleteEntity
- it isn't necessary to spawn an EntityEdit in order to delete entities anymore.
Change Log
Version: 1.2.0 - 2015-11-08
- ComponentMappers are reused when injected or when retrieved via
World#getMapper
. - Deprecated
EntityEdit#deleteEntity
, useWorld#delete
orEntity#deleteFromWorld
instead. - Fix:
@Wire
registered classes would silently fail when not registered. - Fix: Woven pooled components didn't null strings on reset.
- Fix: EntityTransmuter cause entities to lose any pending deletes.
artemis-odb-1.1.2
Change Log
Version: 1.1.2 - 2015-10-27
- Fix: entities having more than one tag.
Version: 1.1.1 - 2015-10-25
- Fix: New entity subscriptions could end up with an initial batch of dead entities.
Version: 1.1.0 - 2015-10-24
@PooledWeaver
clears Bag, IntBag, all Lists, Sets, Maps in java.util, all
Arrays and Maps in libgdx.- Serialization: named entities; like tags, but local to the SaveFileFormat instance.
- Register entities using
com.artemis.components.SerializationTag
.
- Register entities using
- Serialization: new setUsePrototypes method, writes default values.
- Fix: Deleted entities could still linger in the TagManager.
- Fix: Serializing an entity field having a value of
null
or-1
no longer throws an exception.
artemis-odb-1.1.1
Heh, this took some time tracking down. Introduced in 1.0.0.
Change Log
Version: 1.1.1 - 2015-10-25
- Fix: New entity subscriptions could end up with an initial batch of dead entities.
Version: 1.1.0 - 2015-10-24
@PooledWeaver
clears Bag, IntBag, all Lists, Sets, Maps in java.util, all
Arrays and Maps in libgdx.- Serialization: named entities; like tags, but local to the SaveFileFormat instance.
- Register entities using
com.artemis.components.SerializationTag
.
- Register entities using
- Serialization: new setUsePrototypes method, writes default values.
- Fix: Deleted entities could still linger in the TagManager.
- Fix: Serializing an entity field having a value of
null
or-1
no longer throws an exception.
artemis-odb-1.1.0
Change Log
Version: 1.1.0 - 2015-10-24
@PooledWeaver
clears Bag, IntBag, all Lists, Sets, Maps in java.util, all
Arrays and Maps in libgdx.- Serialization: named entities; like tags, but local to the SaveFileFormat instance.
- Register entities using
com.artemis.components.SerializationTag
.
- Register entities using
- Serialization: new setUsePrototypes method, writes default values.
- Fix: Deleted entities could still linger in the TagManager.
- Fix: Serializing an entity field having a value of
null
or-1
no longer throws an exception.
artemis-odb-1.0.1
1.0.x - Cherry-picking features / marketing blurb
- A much less strict view of systems and how they're processed. It's no longer impractical creating systems which act on more complex criteria, as the framework makes fewer assumptions about what a System is.
- Entities can be represented as
com.artemis.Entity
or plain int:s, the API supports both. The former might be more familiar to users, but suffers a bit in performance. - Less boilerplate as systems are subject to dependency injection by default. Native artemis types are auto-wired, non-artemis objects must be registered. It's also possible to supplement with custom injectors.
- Built-in support for serializing entities to/from json. Save format can be extended via custom type serializers or POJO:s.
Upgrade checklist: https://github.com/junkdog/artemis-odb/wiki/Upgrading-Checklist-1.0.0
Change Log
Version: 1.0.1 - 2015-10-03
- Fix: Optimized IteratingSystems were only partially rewritten. Crash on ART.
Version: 1.0.0 - 2015-10-01
- Serialization: Removed component key integer prefix in json.
- In case of collisions, adds an integer suffix to the key name.
- New
ArtemisPlugin
API - New
WorldConfigurationBuilder
convenience class. - Added
World.edit(int entityId)
- Added
World.create()
, returns int entityId - Managers' inserted/removed passes Entity, again.
- EntitySystem extends BaseEntitySystem, new BaseEntitySystems work directly on entityId:
IteratingSystem
:EntityProcessingSystem
.IntervalSystem
andIntervalIteratingSystem
:IntervalEntity*System
DelayedIteratingSystem
:DelayedEntityProcessingSystem
IteratingSystem
eligible for compile-time optimizations, like EntityProcessingSystem.- By convention,
@Wire
is now implied on all systems and managers. Use@SkipWire
to suppress. - new
IntBag
methods: addAll, removeValue. - Dropped EntityObserver methods taking single entityId.
- Removed flyweight entities
- No more bugs due to escaping flyweights.
- Removed artemis-odb-debug, as it's no longer needed.
Manager
now treated as a system.Manager
is now part of theBaseSystem
hierarchy.- EntityObserver emulated via EntitySubscriptions
- Removed deprecated methods and classes
- Removed
@Mapper
- Removed UUID related accessors on Entity and World.
- Removed
@PackedWeaver
marked as deprecated until performance issues have been resolved.EntityManager#isNew
removed.- Passive flag on systems removed.
- SystemInvocationStrategy#initialize added.
- Fix: No longer possible to accidentally add multiple systems of the same type.
artemis-odb-1.0.0
Change Log
Version: 1.0.0 - 2015-10-01
- Serialization: Removed component key integer prefix in json.
- In case of collisions, adds an integer suffix to the key name.
- New
ArtemisPlugin
API - New
WorldConfigurationBuilder
convenience class. - Added
World.edit(int entityId)
- Added
World.create()
, returns int entityId - Managers' inserted/removed passes Entity, again.
- EntitySystem extends BaseEntitySystem, new BaseEntitySystems work directly on entityId:
IteratingSystem
:EntityProcessingSystem
.IntervalSystem
andIntervalIteratingSystem
:IntervalEntity*System
DelayedIteratingSystem
:DelayedEntityProcessingSystem
IteratingSystem
eligible for compile-time optimizations, like EntityProcessingSystem.- By convention,
@Wire
is now implied on all systems and managers. Use@SkipWire
to suppress. - new
IntBag
methods: addAll, removeValue. - Dropped EntityObserver methods taking single entityId.
- Removed flyweight entities
- No more bugs due to escaping flyweights.
- Removed artemis-odb-debug, as it's no longer needed.
Manager
now treated as a system.Manager
is now part of theBaseSystem
hierarchy.- EntityObserver emulated via EntitySubscriptions
- Removed deprecated methods and classes
- Removed
@Mapper
- Removed UUID related accessors on Entity and World.
- Removed
@PackedWeaver
marked as deprecated until performance issues have been resolved.EntityManager#isNew
removed.- Passive flag on systems removed.
- SystemInvocationStrategy#initialize added.
- Fix: No longer possible to accidentally add multiple systems of the same type.