systemManager.findSystem<SceneObjectSystem>().getSceneObject(myEntity)?.thenAccept { so -> so.addInputListener(myInputListener) }
class SceneObjectSystem : SystemBase
SceneObjectSystem
()
|
Signature
constructor() Returns |
executeCount
: Long
[Get] |
The number of times the system has been executed.
Signature
var executeCount: Long |
systemManager
: SystemManager
[Get][Set] |
The system manager that this system is associated with.
Signature
lateinit var systemManager: SystemManager |
addSceneObject
(
entity
, sceneObjectFuture
)
|
Adds a <code>SceneObject</code> future to the registry to allow other systems to get the <code>SceneObject</code> associated with the entity. The future is expected to be completed by the caller once the <code>SceneObject</code> is done loading.
Signature
fun addSceneObject(entity: Entity, sceneObjectFuture: CompletableFuture<SceneObject>) Parameters
sceneObjectFuture:
CompletableFuture
|
associateSystemManager
(
systemManager
)
|
Associates this system with a system manager, used in the Spatial SDK.
Signature
fun associateSystemManager(systemManager: SystemManager) Parameters |
delete
(
entity
)
|
System should do any housekeeping based on SceneObjectSystem.delete being removed from the scene
Signature
open override fun delete(entity: Entity) Parameters
entity:
Entity |
destroy
()
|
System should clean up any and all resources for shutdown
Signature
open fun destroy() |
equals
(
other
)
|
Checks if this system is equal to another object.
Signature
open operator override fun equals(other: Any?): Boolean Parameters
other:
Any?
Returns
Boolean
|
execute
()
|
System should perform all the operations based on relevant entities.
Signature
open override fun execute() |
getDependencies
()
|
Returns the dependencies of this system.
Signature
open fun getDependencies(): SystemDependencies? |
getScene
()
|
Returns the scene that this system is associated with.
Signature
fun getScene(): Scene |
getSceneObject
(
entity
)
|
Returns a future for the SceneObject associated with the entity.
If the entity has a registered component type (such as Mesh or Panel) but no future exists yet, one will be created lazily. The future will be completed when the creation system processes the entity.
A null return indicates the entity does not have any registered component types.
Signature
fun getSceneObject(entity: Entity): CompletableFuture<SceneObject>? Parameters Returns
CompletableFuture?
|
hashCode
()
|
Returns the hash code of this system.
Signature
open override fun hashCode(): Int Returns
Int
|
registerComponentType
(
componentId
)
|
Registers a component type that qualifies for lazy future creation.
When SceneObjectSystem.getSceneObject is called on an entity with this component type, a future will be created lazily if one doesn't already exist. This allows callers to attach callbacks immediately after setting a component, without waiting for the creation system to run.
Signature
fun registerComponentType(componentId: Int) Parameters
componentId:
Int
|
removeSceneObject
(
entity
)
|
Remove a SceneObject from the registry.
Signature
fun removeSceneObject(entity: Entity) Parameters |
replaceOrReuseSceneObjectFuture
(
entity
)
|
Returns an existing pending future, or creates and registers a new one (replacing any completed future). This consolidates the common pattern used by creation systems when handling both lazy futures and mutation cases.
A new future is needed on mutation because CompletableFuture can only be completed once — subsequent calls to CompletableFuture.complete are silently ignored.
Signature
fun replaceOrReuseSceneObjectFuture(entity: Entity): CompletableFuture<SceneObject> Parameters Returns
CompletableFuture
|