Both sides previous revisionPrevious revisionNext revision | Previous revision |
dragengine:modules:dragonscript:behavior_occupier [2020/11/23 16:29] – dragonlord | dragengine:modules:dragonscript:behavior_occupier [2025/03/13 17:14] (current) – dragonlord |
---|
{{tag>dragonscript behavior}} | {{tag>dragonscript behavior}} |
<WRAP youarehere> | <WRAP youarehere> |
[[:start|Start Page]] >> [[main|DragonScript Scripting Language]] >> [[abstractions#behavior_elementsquick_and_easy_development|Behavior Elements: Quick and Easy Development]] >> **ECBehaviorOccupier** | [[:start|Start Page]] >> [[main|DragonScript Scripting Language]] >> [[dragengine:modules:dragonscript:abstractions|Abstraction Layers: How you want to build your Game]] >> [[dragengine:modules:dragonscript:behavior_elements|Behavior Elements]] >> **ECBehaviorOccupier** |
</WRAP> | </WRAP> |
| |
| |
====== ECBehaviorOccupier ====== | ====== ECBehaviorOccupier ====== |
| |
| <WRAP center 100%> |
| <WRAP center box 450px> |
| {{youtube>BbP-lMrr0tQ?medium}} |
| <WRAP centeralign>Behavior in action (starting at timestamp 1:28)</WRAP> |
| </WRAP> |
| </WRAP> |
| |
Behavior element behavior adding support to uccipy an [[behavior_interactionspot|CBehaviorInteractionSpot]]. | Behavior element behavior adding support to uccipy an [[behavior_interactionspot|CBehaviorInteractionSpot]]. |
====== Element Class Properties ====== | ====== Element Class Properties ====== |
| |
Element class properties have the prefix **occupier.** or **occupier(id)**. if id is not empty. | Element class properties have the prefix ''occupier.'' or ''occupier(id)''. if id is not empty. |
| |
This behavior does not define element properties (reserved for future expansion). | ====== Events ====== |
| |
| ===== spotClaimed ===== |
| |
| Occupier claimed interaction spot. |
| |
| ===== spotReleased (Instance instance, ECBehaviorInteractionSpot.Instance interactionSpot) |
| |
| Occupier released interaction spot. |
| |
====== Required Behaviors ====== | ====== Required Behaviors ====== |
| |
This behavior does not required other behaviors to be present. | This behavior does not required other behaviors to be present. |
| |
====== Optional Behaviors ====== | ====== Optional Behaviors ====== |
| |
This behavior does not support optional behaviors. | This behavior does not support optional behaviors. |
| |
====== Persistency ====== | ====== Persistency ====== |
This behavior does support element class to be persistable (setPersistable). Saves [[behavior_interactionspot|CBehaviorInteractionSpot]] if present. | |
| This behavior does support element class to be persistable (setPersistable). |
| |
====== API Documentation ====== | ====== API Documentation ====== |
[[https://developer.dragondreams.ch/docs/dragonscript/scriptapi/latest/classDragengine_1_1Scenery_1_1ECBehaviorOccupier.html|ECBehaviorOccupier]]. | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1ECBehaviorOccupier.html,ECBehaviorOccupier~@#. |
| |
Since DragonScript Module Version **1.4** | Since DragonScript Module Version ''1.4'' |
| |
====== Use Cases ====== | ====== Use Cases ====== |
end | end |
</code> | </code> |
| |
| ====== Behavior Factory ====== |
| |
| Using element class supporting adding behaviors the behavior can be added like this: |
| <code xml> |
| <?xml version='1.0' encoding='UTF-8'?> |
| <elementClass name='MyClass' class='GenericBehaviorElement'> |
| <behavior type='ECBehaviorOccupier'> |
| <!-- set element properties. omit property prefix if used inside behavior tag --> |
| <string name='.name'>value</string> |
| </behavior> |
| |
| <!-- for adding multiple behaviors use unique identifiers --> |
| <behavior type='ECBehaviorOccupier' id='second'/> |
| </elementClass> |
| </code> |
| |
| ====== Live Examples ====== |
| |
In the [[https://github.com/LordOfDragons/deexamples|ExampleApp]] you can find a complete example of using this behavior: | In the [[https://github.com/LordOfDragons/deexamples|ExampleApp]] you can find a complete example of using this behavior: |
* [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/InteractionSpotExampleClass.ds|InteractionSpotExampleClass.ds]]: Element class providing an interaction spot the player can use | * [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/InteractionSpotExampleClass.ds|InteractionSpotExampleClass.ds]]: Element class providing an interaction spot the player can use |
* [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/BehaviorInteractToggle.ds|BehaviorInteractToggle.ds]]: Interaction behavior allowing player to toggle the animated state of an element. This behavior stores the interaction spot the player has to claim. | * [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/BehaviorInteractToggle.ds|BehaviorInteractToggle.ds]]: Interaction behavior allowing player to toggle the animated state of an element. This behavior stores the interaction spot the player has to claim. |
| * [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/PlayerActorClass.ds|PlayerActorClass.ds]]: Player actor class. Uses occupier behavior to safely do interactions. |
* [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/PlayerActionInteractToggle.ds|PlayerActionInteractToggle.ds]]: Player action interacting with BehaviorInteractToggle. Tries to claim the assigned interaction spot and if successful moves to the spot and uses the element. Once finished releases the interaction spot. | * [[https://github.com/LordOfDragons/deexamples/blob/master/exampleApp/data/scripts/PlayerActionInteractToggle.ds|PlayerActionInteractToggle.ds]]: Player action interacting with BehaviorInteractToggle. Tries to claim the assigned interaction spot and if successful moves to the spot and uses the element. Once finished releases the interaction spot. |
| |