A component that when attached to an entity allows for it to merge or 'stack' with other entities with compatible components.
Verse using statement |
using { /Verse.org/SceneGraph } |
Inheritance Hierarchy
This class is derived from component.
| Name | Description |
|---|---|
component |
Base class for authoring logic and data in the SceneGraph. Using components you can author re-usable building blocks of logic and data which can then be added to entities in the scene. Components are a very low level building block which can be used in many ways. For example:
As components are generic there is no specific way that they must be used. It is up to the needs of your experience if you use one big game component or if you break up logic into many small components. Classes deriving from component must also specify Only one instance of a component from each subclass group can be added to an entity at a time. For example, given this group of components, only one light_component can exist on a single entity. To create multiple lights you should use multiple entities. light_component := class ============================================================================== Component Lifetime Components move through a series of lifetime functions as they are added to entities, added to the scene, and begin running in the simulation. Components should override these methods to perform setup and run their simulation. As a component shuts down it will then move through shutdown version of these
functions, giving users the opportunity to clean up any retained state on the
component before it is disposed
.
Lifetime Methods:
OnAddedToScene
OnBeginSimulation -> OnSimulate |
Members
This class has both data members and functions.
Data
| Data Member Name | Type | Description |
|---|---|---|
ChangeMaxStackSizeEvent |
unknown |
|
ChangeStackSizeEvent |
unknown |
|
Entity |
entity |
The parent entity of this component.
|
MaxStackSize |
??int |
The maximum amount this component can hold. If unset, it holds an unlimited amount. |
StackSize |
?int |
The current amount of this entity held in the stack. |
TickEvents |
?tick_events |
Set callbacks to |
Functions
| Function Name | Description |
|---|---|
CanMergeInto |
Succeeds if this entity can be merged into the target entity. Merging an entity with itself will always fail. Note that merging should be checked in both directions! |
IsInScene |
Succeeds if the component is currently in the scene.
|
IsSimulating |
Succeeds if the component is currently simulating.
|
MergeInto |
Attempts to merge this entity into the specified entity. Fails if entities cannot be merged. If TargetAmount is specified, only that amount will try to be merged into this entity. By default, the entire stack will try to merge. If the specified amount is invalid, the merge will fail. |
OnAddedToScene |
Called when the component is added to the scene by parenting it under the simulation entity or another entity already in the scene.
|
OnBeginSimulation |
|
OnBeginSimulation |
Called when the component begins simulating within the scene.
|
OnEndSimulation |
|
OnEndSimulation |
Called when the component ends simulation within the scene.
|
OnReceive |
Respond to a scene event. Return true to consume the event and halt propagation to the next entity. |
OnRemovingFromScene |
Called when the component is about to be removed from the scene.
|
OnSimulate |
Called when the component begins simulating within the scene.
|
RemoveFromEntity |
Removes the component from the entity.
|
SendDown |
Send a scene event to this component, invoking OnReceive. Returns true if any participant consumed the event. |
SetMaxStackSize |
Sets the maximum stack size for this component. If NewMaxStackSize is false, stack size is unlimited. If ClampStackSize is true, StackSize will be clamped to NewMaxStackSize. |
SetStackSize |
Sets the stack size of this component. If the provided stack size is invalid, e.g. negative or exceeding MaxStackSize, stack size will not change. |
Split |