|
|
-- DOMINO REFLECTION BOX START
|
|
--
|
|
-- <Display Category="Entity" Text="ArmedCameraMonitor" DisplayName="Armed Camera Monitor"/>
|
|
--
|
|
-- <ContextHelp><![CDATA[
|
|
-- Armed Camera Monitor
|
|
-- ]]></ContextHelp>
|
|
--
|
|
-- <ControlIn Name="Enable"/>
|
|
-- <ControlIn Name="Disable"/>
|
|
--
|
|
-- <ControlOut Name="Enabled"/>
|
|
-- <ControlOut Name="Disabled"/>
|
|
-- <ControlOut Name="WasDetected" Delayed="true">
|
|
-- <outParam Name="DetectedEntity"/>
|
|
-- </ControlOut>
|
|
-- <ControlOut Name="TakeDamage" Delayed="true">
|
|
-- <outParam Name="ArmedCameraDamaged"/>
|
|
-- </ControlOut>
|
|
--
|
|
-- <DataOut Name="DetectedEntity" Text="DetectedEntity" Type="Nomad|entity"/>
|
|
-- <DataOut Name="ArmedCameraDamaged" Text="ArmedCameraDamaged" Type="Nomad|entity"/>
|
|
--
|
|
--
|
|
-- DOMINO REFLECTION BOX END
|
|
|
|
ArmedCameraMonitor = {
|
|
}
|
|
|
|
function ArmedCameraMonitor:Create(cbox)
|
|
|
|
end
|
|
|
|
function ArmedCameraMonitor:Init(cbox)
|
|
self.missionId = cbox:GetParentMissionId();
|
|
self.callidWasDetected = nil;
|
|
self.callidTakeDamage = nil;
|
|
end
|
|
|
|
function ArmedCameraMonitor:Enable()
|
|
|
|
local instance = CScriptCallbackSystem_GetInstance();
|
|
|
|
if (self.callidWasDetected == nil) then
|
|
self.callidWasDetected = instance:RegisterMissionNoEntityCallback("ArmedCameraWasDetected", self, "Event_WasDetected", self.missionId);
|
|
end
|
|
|
|
if (self.callidTakeDamage == nil) then
|
|
self.callidTakeDamage = instance:RegisterMissionNoEntityCallback("ArmedCameraTakeDamage", self, "Event_TakeDamage", self.missionId);
|
|
end
|
|
|
|
self:Enabled();
|
|
end
|
|
|
|
function ArmedCameraMonitor:Disable()
|
|
self._type.UnregisterCallback(self);
|
|
self:Disabled();
|
|
end
|
|
|
|
function ArmedCameraMonitor:UnregisterCallback()
|
|
|
|
instance = CScriptCallbackSystem_GetInstance();
|
|
|
|
if (self.callidWasDetected ~= nil) then
|
|
instance:RemoveNoEntityCallback("ArmedCameraWasDetected", self.callidWasDetected);
|
|
self.callidWasDetected = nil
|
|
end
|
|
|
|
if (self.callidTakeDamage ~= nil) then
|
|
instance:RemoveNoEntityCallback("ArmedCameraTakeDamage", self.callidTakeDamage);
|
|
self.callidTakeDamage = nil
|
|
end
|
|
end
|
|
|
|
function ArmedCameraMonitor:Event_WasDetected(entityId, entityName)
|
|
self.DetectedEntity = entityId
|
|
self:WasDetected()
|
|
end
|
|
|
|
function ArmedCameraMonitor:Event_TakeDamage(entityId, entityName)
|
|
self.ArmedCameraDamaged = entityId
|
|
self:TakeDamage()
|
|
end
|
|
|
|
-- Export visible for Nomad engine.
|
|
export = ArmedCameraMonitor;
|
|
ArmedCameraMonitor = nil;
|