public class WorldConfigurationBuilder extends Object
Allows convenient var-arg addition of systems, managers. Supports plugins.
WorldConfiguration
Modifier and Type | Class and Description |
---|---|
static class |
WorldConfigurationBuilder.Priority
Guideline constants for priority, higher values has more priority.
|
Constructor and Description |
---|
WorldConfigurationBuilder() |
Modifier and Type | Method and Description |
---|---|
WorldConfigurationBuilder |
alwaysDelayComponentRemoval(boolean value)
Delay component removal until all subscriptions have been notified.
|
WorldConfiguration |
build()
Assemble world with systems.
|
WorldConfigurationBuilder |
dependsOn(Class... types)
Specify dependency on systems/plugins.
|
WorldConfigurationBuilder |
dependsOn(int priority,
Class... types)
Specify dependency on systems/plugins.
|
protected void |
dependsOnSystem(int priority,
Class<? extends BaseSystem> type) |
WorldConfigurationBuilder |
register(FieldResolver... fieldResolvers)
Add field resolver.
|
WorldConfigurationBuilder |
register(SystemInvocationStrategy strategy)
Add system invocation strategy.
|
protected void |
registerFieldResolvers(WorldConfiguration config)
add custom field handler with resolvers.
|
WorldConfigurationBuilder |
with(ArtemisPlugin... plugins)
Add plugins to world.
|
WorldConfigurationBuilder |
with(BaseSystem... systems)
Register active system(s).
|
WorldConfigurationBuilder |
with(int priority,
BaseSystem... systems)
Register active system(s).
|
public WorldConfiguration build()
protected void registerFieldResolvers(WorldConfiguration config)
public WorldConfigurationBuilder alwaysDelayComponentRemoval(boolean value)
Extends the lifecycle of ALL component types, ensuring removed instances are retrievable until
all listeners
have been notified - regardless
of removal method.
Has a slight performance cost.
value
- When true
, component removal for all components will be delayed until all subscriptions
have been notified. When false
, only components with @DelayedComponentRemoval
will be delayed. Components without the annotation will not be retrievable in listeners.public WorldConfigurationBuilder register(FieldResolver... fieldResolvers)
fieldResolvers
- public WorldConfigurationBuilder register(SystemInvocationStrategy strategy)
strategy
- strategy to invoke.public final WorldConfigurationBuilder dependsOn(Class... types)
Artemis will consider abstract plugin dependencies fulfilled when a concrete subclass has been registered beforehand.
types
- required systems.public final WorldConfigurationBuilder dependsOn(int priority, Class... types)
types
- required systems.priority
- Higher priority are registered first. Not supported for plugins.WorldConfigurationException
- if unsupported classes are passed or plugins are given a priority.protected void dependsOnSystem(int priority, Class<? extends BaseSystem> type) throws ReflectionException
ReflectionException
public WorldConfigurationBuilder with(int priority, BaseSystem... systems)
dependsOn(java.lang.Class...)
from within plugins whenever possible.systems
- systems to add, order is preserved.priority
- priority of added systems, higher priority are added before lower priority.WorldConfigurationException
- if registering the same class twice.public WorldConfigurationBuilder with(BaseSystem... systems)
dependsOn(java.lang.Class...)
from within plugins whenever possible.systems
- systems to add, order is preserved.WorldConfigurationException
- if registering the same class twice.public WorldConfigurationBuilder with(ArtemisPlugin... plugins)
dependsOn(java.lang.Class...)
from within plugins whenever possible.plugins
- Plugins to add.WorldConfigurationException
- if type is added more than once.Copyright © 2019. All rights reserved.