User Tools

Site Tools


dragengine:modules:dragonscript:behavior_occupier

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dragengine:modules:dragonscript:behavior_occupier [2020/11/23 16:15] – [position] dragonlorddragengine:modules:dragonscript:behavior_occupier [2025/03/13 17:14] (current) dragonlord
Line 1: Line 1:
 {{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>
  
Line 8: Line 8:
  
 ====== 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]].
Line 19: Line 26:
 ====== 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.+====== 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 ======
Line 75: Line 93:
 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:
 +  * [[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/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.
 +
dragengine/modules/dragonscript/behavior_occupier.1606148146.txt.gz · Last modified: 2020/11/23 16:15 by dragonlord