2008-10-31 11:48:19 +00:00
|
|
|
|
|
|
|
AddCSLuaFile( "cl_init.lua" )
|
|
|
|
AddCSLuaFile( "shared.lua" )
|
|
|
|
|
|
|
|
include('shared.lua')
|
|
|
|
|
|
|
|
ENT.WireDebugName = "EMarker"
|
|
|
|
ENT.OverlayDelay = 0
|
|
|
|
|
|
|
|
local MODEL = Model( "models/jaanus/wiretool/wiretool_siren.mdl" )
|
|
|
|
|
|
|
|
function ENT:Initialize()
|
|
|
|
self.Entity:SetModel( MODEL )
|
|
|
|
self.Entity:PhysicsInit( SOLID_VPHYSICS )
|
|
|
|
self.Entity:SetMoveType( MOVETYPE_VPHYSICS )
|
|
|
|
self.Entity:SetSolid( SOLID_VPHYSICS )
|
|
|
|
|
|
|
|
self.Outputs = WireLib.CreateSpecialOutputs(self.Entity, { "Entity" }, { "ENTITY" })
|
|
|
|
self:SetOverlayText( "No Mark selected" )
|
|
|
|
end
|
|
|
|
|
2009-02-06 10:44:23 +00:00
|
|
|
function ENT:LinkEMarker(mark)
|
|
|
|
if mark then self.mark = mark end
|
|
|
|
if (!self.mark || !self.mark:IsValid()) then self:SetOverlayText( "No Mark selected" ) return end
|
2008-10-31 11:48:19 +00:00
|
|
|
Wire_TriggerOutput(self.Entity, "Entity", self.mark)
|
|
|
|
self:SetOverlayText( "Mark - " .. self.mark:GetClass() )
|
|
|
|
end
|
2009-02-04 19:02:52 +00:00
|
|
|
|
2009-02-06 10:44:23 +00:00
|
|
|
function ENT:UnLinkEMarker()
|
|
|
|
self.mark = nil
|
|
|
|
Wire_TriggerOutput(self.Entity, "Entity", nil)
|
|
|
|
self:SetOverlayText( "No Mark selected" )
|
|
|
|
end
|
|
|
|
|
|
|
|
function ENT:Think()
|
|
|
|
// Check in case linked entity no longer exists, keeps overlay text up to date
|
|
|
|
if ( !self.mark || !self.mark:IsValid() ) then
|
|
|
|
self:SetOverlayText( "No Mark selected" )
|
|
|
|
end
|
|
|
|
self.Entity:NextThink(CurTime() + 0.2)
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
// Advanced Duplicator Support
|
|
|
|
|
2009-02-04 19:02:52 +00:00
|
|
|
function ENT:BuildDupeInfo()
|
|
|
|
local info = self.BaseClass.BuildDupeInfo(self) or {}
|
2009-02-06 10:44:23 +00:00
|
|
|
if ( self.mark ) and ( self.mark:IsValid() ) then
|
|
|
|
info.mark = self.mark:EntIndex()
|
2009-02-04 19:02:52 +00:00
|
|
|
end
|
|
|
|
return info
|
2009-02-06 10:44:23 +00:00
|
|
|
end
|
2009-02-04 19:02:52 +00:00
|
|
|
|
|
|
|
function ENT:ApplyDupeInfo(ply, ent, info, GetEntByID)
|
|
|
|
self.BaseClass.ApplyDupeInfo(self, ply, ent, info, GetEntByID)
|
2009-02-06 10:44:23 +00:00
|
|
|
|
|
|
|
if (info.mark) then
|
|
|
|
self.mark = GetEntByID(info.mark)
|
2009-02-04 19:02:52 +00:00
|
|
|
if (!self.mark) then
|
2009-02-06 10:44:23 +00:00
|
|
|
self.mark = ents.GetByIndex(info.mark)
|
2009-02-04 19:02:52 +00:00
|
|
|
end
|
|
|
|
end
|
2009-02-06 10:44:23 +00:00
|
|
|
self:LinkEMarker()
|
|
|
|
end
|