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
ReflectionExceptionpublic 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.