-- DOMINO REFLECTION BOX START
|
|
--
|
|
-- <Display Category="Entity" Text="SpotlightTriggerController" DisplayName="Spotlight Trigger Controller"/>
|
|
--
|
|
-- <ContextHelp><![CDATA[
|
|
-- Sets properties which are specific to the Spotlight Trigger.
|
|
-- You can set new targets for the trigger(s), or force them to follow a certain entity.
|
|
-- Note that Spotlight Triggers start with the local player in the target list.
|
|
-- ]]></ContextHelp>
|
|
--
|
|
-- <ControlIn Name="AddTarget">
|
|
-- <LinkRule type="OR">
|
|
-- <Target anchor="Trigger"/>
|
|
-- <Target anchor="TriggerList"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule>
|
|
-- <Target anchor="Target"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule severity="INFO" type="OR">
|
|
-- <Target anchor="Out"/>
|
|
-- <Target anchor="Added"/>
|
|
-- </LinkRule>
|
|
-- </ControlIn>
|
|
-- <ControlIn Name="RemoveTarget">
|
|
-- <LinkRule type="OR">
|
|
-- <Target anchor="Trigger"/>
|
|
-- <Target anchor="TriggerList"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule>
|
|
-- <Target anchor="Target"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule severity="INFO" type="OR">
|
|
-- <Target anchor="Out"/>
|
|
-- <Target anchor="Removed"/>
|
|
-- </LinkRule>
|
|
-- </ControlIn>
|
|
-- <ControlIn Name="StartForcedFollow">
|
|
-- <LinkRule type="OR">
|
|
-- <Target anchor="Trigger"/>
|
|
-- <Target anchor="TriggerList"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule>
|
|
-- <Target anchor="Target"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule severity="INFO" type="OR">
|
|
-- <Target anchor="Out"/>
|
|
-- <Target anchor="Forced"/>
|
|
-- </LinkRule>
|
|
-- </ControlIn>
|
|
-- <ControlIn Name="StopForcedFollow">
|
|
-- <LinkRule type="OR">
|
|
-- <Target anchor="Trigger"/>
|
|
-- <Target anchor="TriggerList"/>
|
|
-- </LinkRule>
|
|
-- <LinkRule severity="INFO" type="OR">
|
|
-- <Target anchor="Out"/>
|
|
-- <Target anchor="Unforced"/>
|
|
-- </LinkRule>
|
|
-- </ControlIn>
|
|
--
|
|
-- <DataIn Name="Trigger" Type="Nomad|entity"/>
|
|
-- <DataIn Name="TriggerList" Type="Core|list"/>
|
|
-- <DataIn Name="Target" Type="Nomad|entity"/>
|
|
--
|
|
-- <ControlOut Name="Out"/>
|
|
-- <ControlOut Name="Added"/>
|
|
-- <ControlOut Name="Removed"/>
|
|
-- <ControlOut Name="Forced"/>
|
|
-- <ControlOut Name="Unforced"/>
|
|
--
|
|
-- <Stateless/>
|
|
--
|
|
-- DOMINO REFLECTION BOX END
|
|
|
|
SpotlightTriggerController = {
|
|
}
|
|
|
|
function SpotlightTriggerController:Create(cbox)
|
|
-- left empty on purpose
|
|
end
|
|
|
|
function SpotlightTriggerController:Init(cbox)
|
|
self.Trigger = nil
|
|
self.TriggerList = nil
|
|
self.Target = nil
|
|
end
|
|
|
|
function SpotlightTriggerController:ShutDown()
|
|
-- left empty on purpose
|
|
end
|
|
|
|
function SpotlightTriggerController:AddTarget()
|
|
if(self.Target == nil) then
|
|
self.Target = GetInvalidEntityId()
|
|
end
|
|
|
|
if(self.Trigger ~= nil) then
|
|
AddSpotlightTarget(self.Trigger, self.Target)
|
|
end
|
|
|
|
if(self.TriggerList ~= nil) then
|
|
for i,v in ipairs(self.TriggerList) do if(self.TriggerList[i] ~= nil) then
|
|
AddSpotlightTarget(self.TriggerList[i], self.Target)
|
|
end end
|
|
end
|
|
|
|
self:Added()
|
|
self:Out()
|
|
end
|
|
|
|
function SpotlightTriggerController:RemoveTarget()
|
|
if(self.Target == nil) then
|
|
self.Target = GetInvalidEntityId()
|
|
end
|
|
|
|
if(self.Trigger ~= nil) then
|
|
RemoveSpotlightTarget(self.Trigger, self.Target)
|
|
end
|
|
|
|
if(self.TriggerList ~= nil) then
|
|
for i,v in ipairs(self.TriggerList) do if(self.TriggerList[i] ~= nil) then
|
|
RemoveSpotlightTarget(self.TriggerList[i], self.Target)
|
|
end end
|
|
end
|
|
|
|
self:Removed()
|
|
self:Out()
|
|
end
|
|
|
|
function SpotlightTriggerController:StartForcedFollow()
|
|
if(self.Target == nil) then
|
|
self.Target = GetInvalidEntityId()
|
|
end
|
|
|
|
if(self.Trigger ~= nil) then
|
|
SetSpotlightForcedFollow(self.Trigger, self.Target, 1)
|
|
end
|
|
|
|
if(self.TriggerList ~= nil) then
|
|
for i,v in ipairs(self.TriggerList) do if(self.TriggerList[i] ~= nil) then
|
|
SetSpotlightForcedFollow(self.TriggerList[i], self.Target, 1)
|
|
end end
|
|
end
|
|
|
|
self:Forced()
|
|
self:Out()
|
|
end
|
|
|
|
function SpotlightTriggerController:StopForcedFollow()
|
|
self.Target = GetInvalidEntityId()
|
|
|
|
if(self.Trigger ~= nil) then
|
|
SetSpotlightForcedFollow(self.Trigger, self.Target, 0)
|
|
end
|
|
|
|
if(self.TriggerList ~= nil) then
|
|
for i,v in ipairs(self.TriggerList) do if(self.TriggerList[i] ~= nil) then
|
|
SetSpotlightForcedFollow(self.TriggerList[i], self.Target, 0)
|
|
end end
|
|
end
|
|
|
|
self:Unforced()
|
|
self:Out()
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
export = SpotlightTriggerController;
|
|
SpotlightTriggerController = nil;
|