enderalse/source/scripts/defaultbipressureplate.psc

69 lines
1.7 KiB
Plaintext
Raw Normal View History

scriptName defaultBiPressurePlate extends TrapTriggerBase
bool busy
float property TargetDelay Auto
Event onLoad()
if objectsInTrigger > 0
GoToState("Down")
endif
endevent
auto State Up
Event onBeginState()
busy = True
PlayAnimation("Up")
activate(self)
Utility.Wait(TargetDelay)
; ;Debug.Trace("TargetDelay " + TargetDelay + " is up.")
; ;Debug.Trace("BiPressurePlate UpBeginState: " + objectsInTrigger)
if objectsInTrigger > 0
GoToState("Down")
EndIf
busy = False
EndEvent
Event OnTriggerEnter(objectReference triggerRef)
objectsInTrigger = self.GetTriggerObjectCount()
; ;Debug.Trace("BiPressurePlate TriggerEnter: " + objectsInTrigger)
if (!busy)
GoToState("Down")
EndIf
EndEvent
Event OnTriggerLeave(objectReference triggerRef)
objectsInTrigger = self.GetTriggerObjectCount()
EndEvent
EndState
State Down
Event onBeginState()
busy = True
PlayAnimation("Down")
activate(self)
Utility.Wait(TargetDelay)
; ;Debug.Trace("TargetDelay " + TargetDelay + " is up.")
; ;Debug.Trace("BiPressurePlate DownBeginState: " + objectsInTrigger)
if objectsInTrigger == 0
GoToState("Up")
EndIf
busy = False
EndEvent
Event OnTriggerEnter(objectReference triggerRef)
objectsInTrigger = self.GetTriggerObjectCount()
; ;Debug.Trace("BiPressurePlate: " + objectsInTrigger)
EndEvent
Event OnTriggerLeave(objectReference triggerRef)
objectsInTrigger = self.GetTriggerObjectCount()
; ;Debug.Trace("BiPressurePlate TriggerLeave: " + objectsInTrigger)
While (busy && objectsInTrigger == 0)
; Debug.Trace("While loop")
Utility.Wait(0.25)
EndWhile
if (!busy && objectsInTrigger == 0)
GoToState("Up")
EndIf
EndEvent
EndState