Linked List Device
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
delay_trigger_link := class(linked):
@editable
DelaySeconds:float = 1.0
@editable
Trigger:trigger_device = trigger_device{}
Activate<override>():void=
if(DelaySeconds=0.0):
Print("Delay bypassed.")
if(not Root?):
Trigger.Trigger()
(super:)Activate()
else:
spawn. DelayedActivation()
DelayedActivation()<suspends>:void=
Sleep(DelaySeconds)
#do something
if(not Root?):
Trigger.Trigger()
if(LinkedNext:=linked[Next]):
LinkedNext.Activate()
Triggered(A:?agent):void=
Activate()
OnBegin<override>()<suspends>:void=
if(Root?):
Trigger.TriggeredEvent.Subscribe(Triggered)
delay_link := class(linked):
@editable
DelaySeconds:float = 1.0
Activate<override>():void=
if(DelaySeconds=0.0):
#do something
(super:)Activate()
else:
spawn. DelayedActivation()
DelayedActivation()<suspends>:void=
Sleep(DelaySeconds)
#do the thing again
if(LinkedNext:=linked[Next]):
LinkedNext.Activate()
trigger_link := class(linked):
@editable
Trigger:trigger_device = trigger_device{}
Activate<override>():void=
if(not Root?):
Trigger.Trigger()
(super:)Activate()
Triggered(A:?agent):void=
Activate()
OnBegin<override>()<suspends>:void=
if(Root?):
Trigger.TriggeredEvent.Subscribe(Triggered)
linked := class(creative_device):
@editable
Root:logic = false
@editable
Next:creative_device = creative_device{}
Activate<public>():void=
#do something
if(LinkedNext:=linked[Next]):
LinkedNext.Activate()
OnBegin<override>()<suspends>:void=
if(Root?):
Activate()