4
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

65 lines
1.5 KiB

Scriptname BlackreachDoorScript extends ObjectReference Conditional
{Script to open the door to blackreach when activated by the lock.}
import game
import debug
import utility
bool property isOpen = false auto Conditional
{set to true to start open}
bool property isAnimating = false auto Hidden
{is the activator currently animating from one state to another?}
string property openAnim = "Down" auto Hidden
{animation to play when opening}
string property openEvent = "TransDown" auto Hidden
{open event name - waits for this event before considering itself "open"}
int myState = 1
; true when static or animating
; 0 == open or opening
; 1 == closed or closing
EVENT OnLoad()
if (isOpen )
myState = 0
endif
endEVENT
auto STATE waiting ; waiting to be activated
EVENT onActivate (objectReference triggerRef)
; switch open state when activated
SetOpen(!isOpen)
endEVENT
endState
STATE busy
; This is the state when I'm busy animating
EVENT onActivate (objectReference triggerRef)
;trace (self + " Busy")
endEVENT
endSTATE
function SetOpen(bool abOpen = true)
; if busy, wait to finish
while getState() == "busy"
wait(1)
endWhile
; open
isAnimating = true
if !isOpen
gotoState ("busy")
;trace(self + " Opening")
playAnimationandWait(openAnim, openEvent) ; Animate Open
endif
;trace(self + " Opened")
isOpen = true
gotoState("done")
isAnimating = false
endFunction
STATE done
; This is the end state, player should not be able to reactivate
endSTATE