Skip to content

artemis-odb-2.2.0

Compare
Choose a tag to compare
@junkdog junkdog released this 07 Jan 22:47
· 36 commits to master since this release

Changelog

Version: 2.2.0 - 2019-01-06

  • BREAKING CHANGES

    • Web backend upgraded to GWT 2.8.0 (LibGDX is blocking 2.8.2).
    • Serialization modules that depend on libGDX now require 1.9.9.
  • Global option to delay component removal until all subscriptions have been notified.
    new WorldConfigurationBuilder().alwaysDelayComponentRemoval(true)

  • Annotation driven aspects (@All, @Exclude, @One).

    • Annotate BaseEntitySystem subclass, alternative to constructor argument.
    • Adds DI of Archetype, Aspect, Aspect.Builder and EntitySubscription fields.
  • Fluid entities quality of life changes.

    • To enable fluid entities in your world, best practice register FluidEntityPlugin instead of SuperMapper.
    • FluidEntityPlugin generated as part of the fluid generation process.
    • Added FluidIteratingSystem.
    • Generate class C containing all fluid component class literals. (not usable in annotations, sorry).
    • Convenience methods to find entities:
      • by group for ( E e : E.withGroup("enemy") ) { .. }
      • by tag E player = E.withTag("player");
      • by aspect for ( E e : E.withAspect(Aspect.all(Pickup.class, Pos.class)) ) { .. }
      • by component for ( E e : E.withComponent(Pickup.class) ) { .. }
    • Allow plugins for fluid interface generation.
      • Override type handling via FieldProxyStrategy. (Want extra methods for LibGDX's Pos2? Now you can!)
  • Support for abstract plugins with multiple possible implementations.
    For example, a logging plugin might have multiple implementations (TinyLog, SLF4J+??, LibGDX).
    As a plugin developer, we want to be able to refer to the generic facade (LoggingPlugin) and
    throw a warning when no specific implementation has been registered.

  • Fix: Better document side effects of ComponentMapper and EntitySubscription.

  • Fix: Unchecked warning in SuperMapper.

  • Fix: ArtemisMultiException was missing no-args ctor (req by serializaion)

  • World instances can now inject themselves (World::inject)