diff --git a/data/wire_version.txt b/data/wire_version.txt index a108c8f4b8..c4faaf0ef9 100644 --- a/data/wire_version.txt +++ b/data/wire_version.txt @@ -1 +1 @@ -expression1-39-g612a3a0 +expression1-51-gbb28d98 diff --git a/lua/entities/base_wire_entity/cl_init.lua b/lua/entities/base_wire_entity/cl_init.lua index 502ee713f3..625d538003 100644 --- a/lua/entities/base_wire_entity/cl_init.lua +++ b/lua/entities/base_wire_entity/cl_init.lua @@ -4,9 +4,17 @@ ENT.RenderGroup = RENDERGROUP_OPAQUE//RENDERGROUP_TRANSLUCENT//RENDERGROUP_BOTH local wire_drawoutline = CreateClientConVar("wire_drawoutline", 1, true, false) +function ENT:Initialize() + self.NextRBUpdate = CurTime() + 0.25 +end + function ENT:Draw() self:DoNormalDraw() Wire_Render(self) + if self.GetBeamLength and (not self.GetShowBeam or self:GetShowBeam()) then + -- Every SENT that has GetBeamLength should draw a tracer. Some of them have the GetShowBeam boolean + Wire_DrawTracerBeam( self, 1, self.GetBeamHighlight and self:GetBeamHighlight() or false ) + end end function ENT:DoNormalDraw(nohalo, notip) diff --git a/lua/entities/gmod_wire_button/init.lua b/lua/entities/gmod_wire_button.lua similarity index 81% rename from lua/entities/gmod_wire_button/init.lua rename to lua/entities/gmod_wire_button.lua index 9b3ba635a2..f99fb61022 100644 --- a/lua/entities/gmod_wire_button/init.lua +++ b/lua/entities/gmod_wire_button.lua @@ -1,9 +1,51 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Button" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Button" -include('shared.lua') -ENT.WireDebugName = "Button" +-- Shared + +function ENT:SetupDataTables() + self:NetworkVar( "Bool", 0, "On" ) +end + + +if CLIENT then + local halo_ent, halo_blur + + function ENT:Initialize() + self.PosePosition = 0.0 + end + + function ENT:Think() + baseclass.Get("gmod_button").UpdateLever(self) + end + + function ENT:Draw() + self:DoNormalDraw(true,false) + if LocalPlayer():GetEyeTrace().Entity == self and EyePos():Distance( self:GetPos() ) < 512 then + if self:GetOn() then + halo_ent = self + halo_blur = 4 + math.sin(CurTime()*20)*2 + else + self:DrawEntityOutline() + end + end + Wire_Render(self) + end + + hook.Add("PreDrawHalos", "Wiremod_button_overlay_halos", function() + if halo_ent then + halo.Add({halo_ent}, Color(255,100,100), halo_blur, halo_blur, 1, true, true) + halo_ent = nil + end + end) + + return -- No more client +end + ENT.OutputEntID = false ENT.EntToOutput = NULL diff --git a/lua/entities/gmod_wire_button/cl_init.lua b/lua/entities/gmod_wire_button/cl_init.lua deleted file mode 100644 index 7d76084435..0000000000 --- a/lua/entities/gmod_wire_button/cl_init.lua +++ /dev/null @@ -1,36 +0,0 @@ - -include('shared.lua') - -ENT.Spawnable = false -ENT.AdminSpawnable = false -ENT.RenderGroup = RENDERGROUP_OPAQUE - -local halo_ent, halo_blur - -function ENT:Initialize() - self.PosePosition = 0.0 -end - -function ENT:Think() - baseclass.Get("gmod_button").UpdateLever(self) -end - -function ENT:Draw() - self:DoNormalDraw(true,false) - if LocalPlayer():GetEyeTrace().Entity == self and EyePos():Distance( self:GetPos() ) < 512 then - if self:GetOn() then - halo_ent = self - halo_blur = 4 + math.sin(CurTime()*20)*2 - else - self:DrawEntityOutline() - end - end - Wire_Render(self) -end - -hook.Add("PreDrawHalos", "Wiremod_button_overlay_halos", function() - if halo_ent then - halo.Add({halo_ent}, Color(255,100,100), halo_blur, halo_blur, 1, true, true) - halo_ent = nil - end -end) \ No newline at end of file diff --git a/lua/entities/gmod_wire_button/shared.lua b/lua/entities/gmod_wire_button/shared.lua deleted file mode 100644 index 22d27db0e7..0000000000 --- a/lua/entities/gmod_wire_button/shared.lua +++ /dev/null @@ -1,17 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Button" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - -ENT.Editable = true - -function ENT:SetupDataTables() - self:NetworkVar( "Bool", 0, "On", { KeyName = "on", Edit = { type = "Bool" } } ) -end diff --git a/lua/entities/gmod_wire_cameracontroller/shared.lua b/lua/entities/gmod_wire_cameracontroller/shared.lua index d55bc5ae90..40b6a4f56a 100644 --- a/lua/entities/gmod_wire_cameracontroller/shared.lua +++ b/lua/entities/gmod_wire_cameracontroller/shared.lua @@ -9,37 +9,3 @@ ENT.Instructions = "" ENT.Spawnable = false ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamRange(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamRange() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_cd_ray/init.lua b/lua/entities/gmod_wire_cd_ray.lua similarity index 94% rename from lua/entities/gmod_wire_cd_ray/init.lua rename to lua/entities/gmod_wire_cd_ray.lua index 932a0ebb37..e48ce81f83 100644 --- a/lua/entities/gmod_wire_cd_ray/init.lua +++ b/lua/entities/gmod_wire_cd_ray.lua @@ -1,11 +1,17 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire CD Ray" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "CD Ray" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "CD Ray" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -48,7 +54,7 @@ function ENT:Initialize() self.WriteBuffer = {} self.PrevDiskEnt = nil - self:SetBeamRange(64) + self:SetBeamLength(64) end function ENT:ReadCell(Address) @@ -90,7 +96,7 @@ end function ENT:Setup(Range,DefaultZero) self.DefaultZero = DefaultZero - self:SetBeamRange(Range) + if Range then self:SetBeamLength(Range) end end function ENT:TriggerInput(iname, value) @@ -141,7 +147,7 @@ function ENT:Think() local trace = {} trace.start = vStart - trace.endpos = vStart + (vForward * self:GetBeamRange()) + trace.endpos = vStart + (vForward * self:GetBeamLength()) trace.filter = { self } local trace = util.TraceLine( trace ) diff --git a/lua/entities/gmod_wire_cd_ray/cl_init.lua b/lua/entities/gmod_wire_cd_ray/cl_init.lua deleted file mode 100644 index a0fae0ec3f..0000000000 --- a/lua/entities/gmod_wire_cd_ray/cl_init.lua +++ /dev/null @@ -1,9 +0,0 @@ - -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_cd_ray/shared.lua b/lua/entities/gmod_wire_cd_ray/shared.lua deleted file mode 100644 index dc52918d56..0000000000 --- a/lua/entities/gmod_wire_cd_ray/shared.lua +++ /dev/null @@ -1,49 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire CD Ray" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamRange(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamRange() - return self:GetNetworkedFloat("BeamLength") or 0 -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_colorer/init.lua b/lua/entities/gmod_wire_colorer.lua similarity index 76% rename from lua/entities/gmod_wire_colorer/init.lua rename to lua/entities/gmod_wire_colorer.lua index b2f2f2eec7..07b707efd3 100644 --- a/lua/entities/gmod_wire_colorer/init.lua +++ b/lua/entities/gmod_wire_colorer.lua @@ -1,11 +1,17 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Colorer" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Colorer" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Colorer" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -18,8 +24,8 @@ function ENT:Initialize() end function ENT:Setup(outColor,Range) - --Msg("setup\n") if(outColor)then + self.outColor = outColor local onames = {} table.insert(onames, "R") table.insert(onames, "G") @@ -27,7 +33,7 @@ function ENT:Setup(outColor,Range) table.insert(onames, "A") Wire_AdjustOutputs(self, onames) end - self:SetBeamLength(Range) + if Range then self:SetBeamLength(Range) end self:ShowOutput() end @@ -111,3 +117,23 @@ function ENT:Think() self:NextThink(CurTime() + 0.05) return true end + +function MakeWireColorer( pl, Pos, Ang, model, outColor, Range ) + if !pl:CheckLimit( "wire_colorers" ) then return false end + + local wire_colorer = ents.Create( "gmod_wire_colorer" ) + if !IsValid(wire_colorer) then return false end + + wire_colorer:SetAngles( Ang ) + wire_colorer:SetPos( Pos ) + wire_colorer:SetModel( model ) + wire_colorer:Spawn() + wire_colorer:Setup( outColor, Range ) + + wire_colorer:SetPlayer( pl ) + + pl:AddCount( "wire_colorers", wire_colorer ) + + return wire_colorer +end +duplicator.RegisterEntityClass("gmod_wire_colorer", MakeWireColorer, "Pos", "Ang", "Model", "outColor", "Range") diff --git a/lua/entities/gmod_wire_colorer/cl_init.lua b/lua/entities/gmod_wire_colorer/cl_init.lua deleted file mode 100644 index 60b88701a7..0000000000 --- a/lua/entities/gmod_wire_colorer/cl_init.lua +++ /dev/null @@ -1,19 +0,0 @@ -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH - -function ENT:Draw() - // Update renderbounds - local length = self:GetBeamLength() - if self.render_beam_length ~= length then - local bbmin = self:OBBMins() - local bbmax = self:OBBMaxs() - bbmax = bbmax + Vector(0, 0, length) - - self.render_beam_length = length - self:SetRenderBounds(bbmin, bbmax) - end - - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_colorer/shared.lua b/lua/entities/gmod_wire_colorer/shared.lua deleted file mode 100644 index 918a85b6a3..0000000000 --- a/lua/entities/gmod_wire_colorer/shared.lua +++ /dev/null @@ -1,45 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Colorer" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect() - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn() - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset() - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamLength( length ) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_data_transferer/init.lua b/lua/entities/gmod_wire_data_transferer.lua similarity index 90% rename from lua/entities/gmod_wire_data_transferer/init.lua rename to lua/entities/gmod_wire_data_transferer.lua index 0e9ab85a73..7976959c70 100644 --- a/lua/entities/gmod_wire_data_transferer/init.lua +++ b/lua/entities/gmod_wire_data_transferer.lua @@ -1,11 +1,17 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Data Transferer" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Data Transferer" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Data Transferer" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -28,14 +34,13 @@ function ENT:Initialize() self.Values["G"] = 0 self.Values["H"] = 0 - self:SetBeamRange(25000) + self:SetBeamLength(25000) end function ENT:Setup(Range,DefaultZero,IgnoreZero) self.IgnoreZero = IgnoreZero self.DefaultZero = DefaultZero - self.Range = Range - self:SetBeamRange(Range) + if Range then self:SetBeamLength(Range) end end function ENT:TriggerInput(iname, value) @@ -69,7 +74,7 @@ function ENT:Think() local trace = {} trace.start = vStart - trace.endpos = vStart + (vForward * self:GetBeamRange()) + trace.endpos = vStart + (vForward * self:GetBeamLength()) trace.filter = { self } local trace = util.TraceLine( trace ) diff --git a/lua/entities/gmod_wire_data_transferer/cl_init.lua b/lua/entities/gmod_wire_data_transferer/cl_init.lua deleted file mode 100644 index a0fae0ec3f..0000000000 --- a/lua/entities/gmod_wire_data_transferer/cl_init.lua +++ /dev/null @@ -1,9 +0,0 @@ - -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_data_transferer/shared.lua b/lua/entities/gmod_wire_data_transferer/shared.lua deleted file mode 100644 index 121f62abed..0000000000 --- a/lua/entities/gmod_wire_data_transferer/shared.lua +++ /dev/null @@ -1,49 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Data Transferer" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamRange(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamRange() - return self:GetNetworkedFloat("BeamLength") or 0 -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_dynamic_button/init.lua b/lua/entities/gmod_wire_dynamic_button.lua similarity index 82% rename from lua/entities/gmod_wire_dynamic_button/init.lua rename to lua/entities/gmod_wire_dynamic_button.lua index e03f446c35..d158b33515 100644 --- a/lua/entities/gmod_wire_dynamic_button/init.lua +++ b/lua/entities/gmod_wire_dynamic_button.lua @@ -1,9 +1,43 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Dynamic Button" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Dynamic Button" -include('shared.lua') -ENT.WireDebugName = "Dynamic Button" +-- Shared + +function ENT:SetupDataTables() + self:NetworkVar( "Bool", 0, "On" ) +end + + +if CLIENT then + local halo_ent, halo_blur + + function ENT:Draw() + self:DoNormalDraw(true,false) + if LocalPlayer():GetEyeTrace().Entity == self and EyePos():Distance( self:GetPos() ) < 512 then + if self:GetOn() then + halo_ent = self + halo_blur = 4 + math.sin(CurTime()*20)*2 + else + self:DrawEntityOutline() + end + end + Wire_Render(self) + end + + hook.Add("PreDrawHalos", "Wiremod_dynbutton_overlay_halos", function() + if halo_ent then + halo.Add({halo_ent}, Color(255,100,100), halo_blur, halo_blur, 1, true, true) + halo_ent = nil + end + end) + + return -- No more client +end + ENT.OutputEntID = false ENT.EntToOutput = NULL @@ -31,7 +65,7 @@ function ENT:Use(ply) if self.OutputEntID then self.EntToOutput = ply end - if (self:IsOn()) then + if (self:GetOn()) then if (self.toggle) then self:Switch(false) end return @@ -44,7 +78,7 @@ end function ENT:Think() self.BaseClass.Think(self) - if ( self:IsOn() ) then + if self:GetOn() then if (not self.PrevUser) or (not self.PrevUser:IsValid()) or (not self.podpress and not self.PrevUser:KeyDown(IN_USE)) diff --git a/lua/entities/gmod_wire_dynamic_button/cl_init.lua b/lua/entities/gmod_wire_dynamic_button/cl_init.lua deleted file mode 100644 index 4680b4478b..0000000000 --- a/lua/entities/gmod_wire_dynamic_button/cl_init.lua +++ /dev/null @@ -1,28 +0,0 @@ - -include('shared.lua') - -ENT.Spawnable = false -ENT.AdminSpawnable = false -ENT.RenderGroup = RENDERGROUP_OPAQUE - -local halo_ent, halo_blur - -function ENT:Draw() - self:DoNormalDraw(true,false) - if LocalPlayer():GetEyeTrace().Entity == self and EyePos():Distance( self:GetPos() ) < 512 then - if self:IsOn() then - halo_ent = self - halo_blur = 4 + math.sin(CurTime()*20)*2 - else - self:DrawEntityOutline() - end - end - Wire_Render(self) -end - -hook.Add("PreDrawHalos", "Wiremod_dynbutton_overlay_halos", function() - if halo_ent then - halo.Add({halo_ent}, Color(255,100,100), halo_blur, halo_blur, 1, true, true) - halo_ent = nil - end -end) diff --git a/lua/entities/gmod_wire_dynamic_button/shared.lua b/lua/entities/gmod_wire_dynamic_button/shared.lua deleted file mode 100644 index 26725a3002..0000000000 --- a/lua/entities/gmod_wire_dynamic_button/shared.lua +++ /dev/null @@ -1,19 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Dynamic Button" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetOn( bOn ) - self:SetNetworkedBool( "OnOff", bOn, true ) -end -function ENT:IsOn() - return self:GetNetworkedBool( "OnOff" ) -end diff --git a/lua/entities/gmod_wire_forcer/init.lua b/lua/entities/gmod_wire_forcer.lua similarity index 82% rename from lua/entities/gmod_wire_forcer/init.lua rename to lua/entities/gmod_wire_forcer.lua index 97d1afd3d2..1807332b28 100644 --- a/lua/entities/gmod_wire_forcer/init.lua +++ b/lua/entities/gmod_wire_forcer.lua @@ -1,55 +1,56 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Forcer" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Forcer" -ENT.WireDebugName = "Forcer" + +-- Shared + +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) + self:NetworkVar( "Bool", 0, "ShowBeam" ) + self:NetworkVar( "Bool", 1, "BeamHighlight" ) +end + +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) - self.ForceMul = 0 self.Force = 0 self.OffsetForce = 0 self.Velocity = 0 - self.Length = 100 - self.Reaction = false - self.ShowBeam = true self.Inputs = WireLib.CreateInputs( self, { "Force", "OffsetForce", "Velocity", "Length" } ) - self:SetNWBool("ShowBeam",false) - self:SetNWBool("ShowForceBeam",false) - self:SetBeamLength(100) - self:ShowOutput() + self:Setup(0, 100, true, false) end function ENT:Setup( Force, Length, ShowBeam, Reaction ) self.ForceMul = Force or 1 - self.Length = math.max(Length or 100,1) self.Reaction = Reaction or false - self:SetNWBool("ShowBeam",ShowBeam) - self.ShowBeam = ShowBeam or true - self:SetBeamLength(math.Round(Length or 100)) + if Length then self:SetBeamLength(Length) end + if ShowBeam ~= nil then self:SetShowBeam(ShowBeam) end self:ShowOutput() end function ENT:TriggerInput( name, value ) if (name == "Force") then self.Force = value - self:SetForceBeam(value != 0) + self:SetBeamHighlight(value != 0) self:ShowOutput() elseif (name == "OffsetForce") then self.OffsetForce = value - self:SetForceBeam(value != 0) + self:SetBeamHighlight(value != 0) self:ShowOutput() elseif (name == "Velocity") then self.Velocity = math.Clamp(value,-100000,100000) - self:SetForceBeam(value != 0) + self:SetBeamHighlight(value != 0) self:ShowOutput() elseif (name == "Length") then - self.Length = value self:SetBeamLength(math.Round(value)) self:ShowOutput() end @@ -62,7 +63,7 @@ function ENT:Think() local tr = {} tr.start = StartPos - tr.endpos = StartPos + self.Length * Forward + tr.endpos = StartPos + self:GetBeamLength() * Forward tr.filter = self local trace = util.TraceLine( tr ) if (trace) then @@ -96,16 +97,14 @@ function ENT:ShowOutput() "Center Force = "..math.Round(self.ForceMul * self.Force).. "\nOffset Force = "..math.Round(self.ForceMul * self.OffsetForce).. "\nVelocity = "..math.Round(self.Velocity).. - "\nLength = " .. math.Round(self.Length) + "\nLength = " .. math.Round(self:GetBeamLength()) ) end function ENT:BuildDupeInfo() local info = self.BaseClass.BuildDupeInfo(self) or {} info.ForceMul = self.ForceMul - info.ShowBeam = self.ShowBeam info.Reaction = self.Reaction - info.Length = self.Length return info end diff --git a/lua/entities/gmod_wire_forcer/cl_init.lua b/lua/entities/gmod_wire_forcer/cl_init.lua deleted file mode 100644 index eadc22c193..0000000000 --- a/lua/entities/gmod_wire_forcer/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - if (self:GetNWBool("ShowBeam",false)) then Wire_DrawTracerBeam( self, 1, self:GetForceBeam() ) end -end diff --git a/lua/entities/gmod_wire_forcer/shared.lua b/lua/entities/gmod_wire_forcer/shared.lua deleted file mode 100644 index 3a732f63e9..0000000000 --- a/lua/entities/gmod_wire_forcer/shared.lua +++ /dev/null @@ -1,20 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Forcer" - -function ENT:SetForceBeam(on) - self:SetNetworkedBool("ForceBeam",on,true) -end - -function ENT:GetForceBeam() - return self:GetNetworkedBool("ForceBeam") -end - -function ENT:SetBeamLength(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_grabber/init.lua b/lua/entities/gmod_wire_grabber.lua similarity index 92% rename from lua/entities/gmod_wire_grabber/init.lua rename to lua/entities/gmod_wire_grabber.lua index 359b1b5366..bfda49a195 100644 --- a/lua/entities/gmod_wire_grabber/init.lua +++ b/lua/entities/gmod_wire_grabber.lua @@ -1,11 +1,17 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Grabber" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Grabber" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Grabber" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -18,16 +24,11 @@ function ENT:Initialize() self.WeldEntity = nil self.ExtraProp = nil self.ExtraPropWeld = nil - self.Gravity = true self:GetPhysicsObject():SetMass(10) - self:SetBeamLength(100) + self:Setup(100, true) - if GetConVarNumber('sbox_wire_grabbers_onlyOwnersProps') > 0 then - self.OnlyGrabOwners = true - else - self.OnlyGrabOwners = false - end + self.OnlyGrabOwners = GetConVarNumber('sbox_wire_grabbers_onlyOwnersProps') > 0 end function ENT:OnRemove() @@ -38,16 +39,13 @@ function ENT:OnRemove() end function ENT:Setup(Range, Gravity) - self:SetBeamLength(Range) - self.Range = Range + if Range then self:SetBeamLength(Range) end self.Gravity = Gravity - --Msg("Setup:\n\tRange:"..tostring(Range).."\n\tGravity:"..tostring(Gravity).."\n") end function ENT:ResetGrab() if self.Weld and self.Weld:IsValid() then self.Weld:Remove() - --Msg("-Weld1\n") if self.WeldEntity then if self.WeldEntity:IsValid() then if self.Gravity then @@ -58,7 +56,6 @@ function ENT:ResetGrab() end if self.ExtraPropWeld and self.ExtraPropWeld:IsValid() then self.ExtraPropWeld:Remove() - --Msg("-Weld2\n") end self.Weld = nil @@ -78,7 +75,7 @@ function ENT:TriggerInput(iname, value) local trace = {} trace.start = vStart - trace.endpos = vStart + (vForward * self.Range) + trace.endpos = vStart + (vForward * self:GetBeamLength()) trace.filter = { self } local trace = util.TraceLine( trace ) diff --git a/lua/entities/gmod_wire_grabber/cl_init.lua b/lua/entities/gmod_wire_grabber/cl_init.lua deleted file mode 100644 index a643163261..0000000000 --- a/lua/entities/gmod_wire_grabber/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_grabber/shared.lua b/lua/entities/gmod_wire_grabber/shared.lua deleted file mode 100644 index 150e2122c4..0000000000 --- a/lua/entities/gmod_wire_grabber/shared.lua +++ /dev/null @@ -1,45 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Grabber" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamLength(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_igniter/init.lua b/lua/entities/gmod_wire_igniter.lua similarity index 71% rename from lua/entities/gmod_wire_igniter/init.lua rename to lua/entities/gmod_wire_igniter.lua index 710a034400..9616086ccb 100644 --- a/lua/entities/gmod_wire_igniter/init.lua +++ b/lua/entities/gmod_wire_igniter.lua @@ -1,10 +1,17 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Igniter" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Igniter" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Igniter" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end + +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -12,13 +19,12 @@ function ENT:Initialize() self:SetSolid( SOLID_VPHYSICS ) self.Inputs = Wire_CreateInputs(self, { "A", "Length" }) self.IgniteLength = 10 - self.TargetPlayers = false - self:SetBeamLength(2048) + self:Setup(false, 2048) end function ENT:Setup(trgply,Range) self.TargetPlayers = trgply - self:SetBeamLength(Range) + if Range then self:SetBeamLength(Range) end end function ENT:TriggerInput(iname, value) @@ -33,18 +39,12 @@ function ENT:TriggerInput(iname, value) trace.filter = { self } local trace = util.TraceLine( trace ) - local svarTargetPlayers = false - if(GetConVarNumber('sbox_wire_igniters_allowtrgply') > 0)then - svarTargetPlayers = true - else - svarTargetPlayers = false - end + local svarTargetPlayers = GetConVarNumber('sbox_wire_igniters_allowtrgply') > 0 - if (!trace.Entity) then return false end - if (!trace.Entity:IsValid() ) then return false end + if not IsValid(trace.Entity) then return false end if (trace.Entity:IsPlayer() && (!self.TargetPlayers || !svarTargetPlayers)) then return false end if (trace.Entity:IsWorld()) then return false end - if ( CLIENT ) then return true end + trace.Entity:Extinguish() trace.Entity:Ignite( self.IgniteLength, 0 ) end @@ -69,13 +69,6 @@ function MakeWireIgniter( pl, Pos, Ang, model, TargetPlayers, Range ) wire_igniter:SetPlayer( pl ) - local ttable = { - TargetPlayers = TargetPlayers, - Range = Range, - pl = pl - } - table.Merge(wire_igniter:GetTable(), ttable ) - pl:AddCount( "wire_igniters", wire_igniter ) return wire_igniter diff --git a/lua/entities/gmod_wire_igniter/cl_init.lua b/lua/entities/gmod_wire_igniter/cl_init.lua deleted file mode 100644 index a643163261..0000000000 --- a/lua/entities/gmod_wire_igniter/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_igniter/shared.lua b/lua/entities/gmod_wire_igniter/shared.lua deleted file mode 100644 index 2391b95d49..0000000000 --- a/lua/entities/gmod_wire_igniter/shared.lua +++ /dev/null @@ -1,45 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Igniter" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamLength(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_indicator/init.lua b/lua/entities/gmod_wire_indicator.lua similarity index 96% rename from lua/entities/gmod_wire_indicator/init.lua rename to lua/entities/gmod_wire_indicator.lua index 96b0f3464e..08791113a5 100644 --- a/lua/entities/gmod_wire_indicator/init.lua +++ b/lua/entities/gmod_wire_indicator.lua @@ -1,10 +1,10 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Indicator" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Indicator" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) - -include('shared.lua') - -ENT.WireDebugName = "Indicator" +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -95,7 +95,6 @@ function MakeWireIndicator( pl, Pos, Ang, model, a, ar, ag, ab, aa, b, br, bg, b return wire_indicator end - duplicator.RegisterEntityClass("gmod_wire_indicator", MakeWireIndicator, "Pos", "Ang", "Model", "a", "ar", "ag", "ab", "aa", "b", "br", "bg", "bb", "ba", "material", "nocollide", "frozen") function MakeWire7Seg( pl, Pos, Ang, Model, a, ar, ag, ab, aa, b, br, bg, bb, ba, nocollide, Vel, aVel, frozen ) @@ -169,4 +168,3 @@ function MakeWire7Seg( pl, Pos, Ang, Model, a, ar, ag, ab, aa, b, br, bg, bb, ba return wire_indicators end - diff --git a/lua/entities/gmod_wire_indicator/cl_init.lua b/lua/entities/gmod_wire_indicator/cl_init.lua deleted file mode 100644 index 021ab22665..0000000000 --- a/lua/entities/gmod_wire_indicator/cl_init.lua +++ /dev/null @@ -1,4 +0,0 @@ - -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH diff --git a/lua/entities/gmod_wire_indicator/shared.lua b/lua/entities/gmod_wire_indicator/shared.lua deleted file mode 100644 index f95e7b5843..0000000000 --- a/lua/entities/gmod_wire_indicator/shared.lua +++ /dev/null @@ -1,38 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Indicator" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end diff --git a/lua/entities/gmod_wire_nailer/init.lua b/lua/entities/gmod_wire_nailer.lua similarity index 85% rename from lua/entities/gmod_wire_nailer/init.lua rename to lua/entities/gmod_wire_nailer.lua index 06a1f8a425..8346ab5342 100644 --- a/lua/entities/gmod_wire_nailer/init.lua +++ b/lua/entities/gmod_wire_nailer.lua @@ -1,21 +1,31 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Nailer" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Nailer" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Nailer" +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) + self:NetworkVar( "Bool", 0, "ShowBeam" ) +end + +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) self.Inputs = Wire_CreateInputs(self, { "A" }) + self:SetBeamLength(2048) end -function ENT:Setup(flim) - self:TriggerInput("A", 0) +function ENT:Setup(flim, Range, ShowBeam) self.Flim = math.Clamp(flim, 0, 10000) + if Range then self:SetBeamLength(Range) end + if ShowBeam ~= nil then self:SetShowBeam(ShowBeam) end self:ShowOutput() end @@ -27,7 +37,7 @@ function ENT:TriggerInput(iname, value) local trace = {} trace.start = vStart - trace.endpos = vStart + (vForward * 2048) + trace.endpos = vStart + (vForward * self:GetBeamLength()) trace.filter = { self } local trace = util.TraceLine( trace ) @@ -124,7 +134,7 @@ function ENT:CheckOwner(ent) return owns end -function MakeWireNailer( pl, Pos, Ang, model, flim ) +function MakeWireNailer( pl, Pos, Ang, model, flim, Range, ShowBeam ) if ( !pl:CheckLimit( "wire_nailers" ) ) then return false end local wire_nailer = ents.Create( "gmod_wire_nailer" ) @@ -135,7 +145,7 @@ function MakeWireNailer( pl, Pos, Ang, model, flim ) wire_nailer:SetModel( model ) wire_nailer:Spawn() - wire_nailer:Setup( flim ) + wire_nailer:Setup( flim, Range, ShowBeam ) wire_nailer:SetPlayer( pl ) pl:AddCount( "wire_nailers", wire_nailer ) diff --git a/lua/entities/gmod_wire_nailer/cl_init.lua b/lua/entities/gmod_wire_nailer/cl_init.lua deleted file mode 100644 index d791cfd7b3..0000000000 --- a/lua/entities/gmod_wire_nailer/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1, false, 2048 ) -end diff --git a/lua/entities/gmod_wire_nailer/shared.lua b/lua/entities/gmod_wire_nailer/shared.lua deleted file mode 100644 index ae1040ac00..0000000000 --- a/lua/entities/gmod_wire_nailer/shared.lua +++ /dev/null @@ -1,38 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Nailer" -ENT.Author = "TomB" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end diff --git a/lua/entities/gmod_wire_pixel/init.lua b/lua/entities/gmod_wire_pixel.lua similarity index 88% rename from lua/entities/gmod_wire_pixel/init.lua rename to lua/entities/gmod_wire_pixel.lua index cfe77f2908..bb5172892a 100644 --- a/lua/entities/gmod_wire_pixel/init.lua +++ b/lua/entities/gmod_wire_pixel.lua @@ -1,10 +1,16 @@ - -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) - -include('shared.lua') - -ENT.WireDebugName = "Pixel" +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Pixel" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Pixel" + +if CLIENT then + function ENT:Draw( ) + self:DrawModel( ) + end + + return -- No more client +end function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -15,9 +21,6 @@ function ENT:Initialize() self.Inputs = Wire_CreateInputs( self, { "Red", "Green", "Blue", "PackedRGB", "RGB" } ) end -function ENT:Think( ) -end - function ENT:TriggerInput(iname, value) local R,G,B = self.R, self.G, self.B if (iname == "Red") then diff --git a/lua/entities/gmod_wire_pixel/cl_init.lua b/lua/entities/gmod_wire_pixel/cl_init.lua deleted file mode 100644 index fe7cafe096..0000000000 --- a/lua/entities/gmod_wire_pixel/cl_init.lua +++ /dev/null @@ -1,15 +0,0 @@ - -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH - -function ENT:Draw( ) - self:DrawModel( ) -end - -function ENT:DrawEntityOutline( ff ) -end - -function ENT:DoNormalDraw( ) - -end diff --git a/lua/entities/gmod_wire_pixel/shared.lua b/lua/entities/gmod_wire_pixel/shared.lua deleted file mode 100644 index 86cd822def..0000000000 --- a/lua/entities/gmod_wire_pixel/shared.lua +++ /dev/null @@ -1,11 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Pixel" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false diff --git a/lua/entities/gmod_wire_pod/init.lua b/lua/entities/gmod_wire_pod.lua similarity index 93% rename from lua/entities/gmod_wire_pod/init.lua rename to lua/entities/gmod_wire_pod.lua index dc07fb2899..0e58e7dbcd 100644 --- a/lua/entities/gmod_wire_pod/init.lua +++ b/lua/entities/gmod_wire_pod.lua @@ -1,9 +1,10 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Pod Controller" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Pod Controller" -include('shared.lua') - -ENT.WireDebugName = "Pod Controller" +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) diff --git a/lua/entities/gmod_wire_pod/cl_init.lua b/lua/entities/gmod_wire_pod/cl_init.lua deleted file mode 100644 index 3b7f3c683d..0000000000 --- a/lua/entities/gmod_wire_pod/cl_init.lua +++ /dev/null @@ -1,5 +0,0 @@ - -include('shared.lua') - -ENT.RenderGroup = RENDERGROUP_BOTH - diff --git a/lua/entities/gmod_wire_pod/shared.lua b/lua/entities/gmod_wire_pod/shared.lua deleted file mode 100644 index 15829c1a08..0000000000 --- a/lua/entities/gmod_wire_pod/shared.lua +++ /dev/null @@ -1,37 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Pod Controller" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end diff --git a/lua/entities/gmod_wire_ranger/init.lua b/lua/entities/gmod_wire_ranger.lua similarity index 93% rename from lua/entities/gmod_wire_ranger/init.lua rename to lua/entities/gmod_wire_ranger.lua index b872760aba..5fafc77a8f 100644 --- a/lua/entities/gmod_wire_ranger/init.lua +++ b/lua/entities/gmod_wire_ranger.lua @@ -1,9 +1,20 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Ranger" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "Ranger" -ENT.WireDebugName = "Ranger" +-- Shared + +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) + self:NetworkVar( "Bool", 0, "ShowBeam" ) + self:NetworkVar( "Float", 1, "SkewX" ) + self:NetworkVar( "Float", 2, "SkewY" ) +end + +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -18,7 +29,6 @@ end function ENT:Setup( range, default_zero, show_beam, ignore_world, trace_water, out_dist, out_pos, out_vel, out_ang, out_col, out_val, out_sid, out_uid, out_eid, out_hnrm, hiRes ) --for duplication - self.range = range self.default_zero = default_zero self.show_beam = show_beam self.ignore_world = ignore_world @@ -37,11 +47,8 @@ function ENT:Setup( range, default_zero, show_beam, ignore_world, trace_water, o self.PrevOutput = nil - if (show_beam) then - self:SetBeamLength(math.min(self.range, 2000)) - else - self:SetBeamLength(0) - end + if range then self:SetBeamLength(math.min(range, 2000)) end + if show_beam ~= nil then self:SetShowBeam(show_beam) end self:SetNetworkedBool("TraceWater", trace_water) @@ -107,7 +114,6 @@ function ENT:TriggerInput(iname, value) elseif (iname == "Y") then self:SetSkewY(value) elseif (iname == "Length") then - self.range = value self:SetBeamLength(self.show_beam and math.min(value, 2000) or 0) end end @@ -118,10 +124,10 @@ function ENT:Think() local trace = {} trace.start = self:GetPos() if (self.Inputs.X.Value == 0 and self.Inputs.Y.Value == 0) then - trace.endpos = trace.start + self:GetUp()*self.range + trace.endpos = trace.start + self:GetUp() * self:GetBeamLength() else local skew = Vector(self.Inputs.X.Value, self.Inputs.Y.Value, 1) - skew = skew*(self.range/skew:Length()) + skew = skew*(self:GetBeamLength()/skew:Length()) local beam_x = self:GetRight()*skew.x local beam_y = self:GetForward()*skew.y local beam_z = self:GetUp()*skew.z @@ -143,7 +149,7 @@ function ENT:Think() local hnrm = Vector(0,0,0) if (trace.Hit) then - dist = trace.Fraction*self.range + dist = trace.Fraction * self:GetBeamLength() pos = trace.HitPos hnrm = trace.HitNormal ent = trace.Entity @@ -174,7 +180,7 @@ function ENT:Think() if (self.default_zero) then dist = 0 else - dist = self.range + dist = self:GetBeamLength() end pos = Vector(0,0,0) end @@ -182,7 +188,7 @@ function ENT:Think() else if (not self.default_zero) then - dist = self.range + dist = self:GetBeamLength() end end @@ -206,7 +212,7 @@ end function ENT:ShowOutput() --this function is evil (very), should be done clientside - local txt = "Max Range: " .. self.range + local txt = "Max Range: " .. self:GetBeamLength() if (self.out_dist) then txt = txt .. "\nRange = " .. math.Round(self.Outputs["Dist"].Value*1000)/1000 diff --git a/lua/entities/gmod_wire_ranger/cl_init.lua b/lua/entities/gmod_wire_ranger/cl_init.lua deleted file mode 100644 index 8310b6d5fa..0000000000 --- a/lua/entities/gmod_wire_ranger/cl_init.lua +++ /dev/null @@ -1,9 +0,0 @@ -ENT.Spawnable = false -ENT.AdminSpawnable = false - -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_ranger/shared.lua b/lua/entities/gmod_wire_ranger/shared.lua deleted file mode 100644 index 685ab7235c..0000000000 --- a/lua/entities/gmod_wire_ranger/shared.lua +++ /dev/null @@ -1,33 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Ranger" -ENT.Author = "Erkle" -ENT.Contact = "ErkleMad@hotmail.com" - - -function ENT:SetSkewX(value) - self:SetNetworkedFloat("SkewX", math.max(-1, math.min(value, 1))) -end - -function ENT:SetSkewY(value) - self:SetNetworkedFloat("SkewY", math.max(-1, math.min(value, 1))) -end - - -function ENT:GetSkewX() - return self:GetNetworkedFloat("SkewX") or 0 -end - -function ENT:GetSkewY() - return self:GetNetworkedFloat("SkewY") or 0 -end - - -function ENT:SetBeamLength(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_user/init.lua b/lua/entities/gmod_wire_user.lua similarity index 79% rename from lua/entities/gmod_wire_user/init.lua rename to lua/entities/gmod_wire_user.lua index ca11a4d0be..0d5e959602 100644 --- a/lua/entities/gmod_wire_user/init.lua +++ b/lua/entities/gmod_wire_user.lua @@ -1,8 +1,17 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire User" +ENT.RenderGroup = RENDERGROUP_BOTH +ENT.WireDebugName = "User" -ENT.WireDebugName = "User" + +-- Shared + +function ENT:SetupDataTables() + self:NetworkVar( "Float", 0, "BeamLength" ) +end + +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) @@ -13,8 +22,7 @@ function ENT:Initialize() end function ENT:Setup(Range) - self:SetBeamLength(Range) - self.Range = Range + if Range then self:SetBeamLength(Range) end end function ENT:TriggerInput(iname, value) diff --git a/lua/entities/gmod_wire_user/cl_init.lua b/lua/entities/gmod_wire_user/cl_init.lua deleted file mode 100644 index a643163261..0000000000 --- a/lua/entities/gmod_wire_user/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -include('shared.lua') - -function ENT:Draw() - self.BaseClass.Draw(self) - Wire_DrawTracerBeam( self, 1 ) -end diff --git a/lua/entities/gmod_wire_user/shared.lua b/lua/entities/gmod_wire_user/shared.lua deleted file mode 100644 index 09aa330157..0000000000 --- a/lua/entities/gmod_wire_user/shared.lua +++ /dev/null @@ -1,45 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire User" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false - - -function ENT:SetEffect( name ) - self:SetNetworkedString( "Effect", name ) -end - -function ENT:GetEffect( name ) - return self:GetNetworkedString( "Effect" ) -end - - -function ENT:SetOn( boolon ) - self:SetNetworkedBool( "On", boolon, true ) -end - -function ENT:IsOn( name ) - return self:GetNetworkedBool( "On" ) -end - -function ENT:SetOffset( v ) - self:SetNetworkedVector( "Offset", v, true ) -end - -function ENT:GetOffset( name ) - return self:GetNetworkedVector( "Offset" ) -end - -function ENT:SetBeamLength(length) - self:SetNetworkedFloat("BeamLength", length) -end - -function ENT:GetBeamLength() - return self:GetNetworkedFloat("BeamLength") or 0 -end diff --git a/lua/entities/gmod_wire_value/init.lua b/lua/entities/gmod_wire_value.lua similarity index 95% rename from lua/entities/gmod_wire_value/init.lua rename to lua/entities/gmod_wire_value.lua index 38f89e2729..bceb3fbffd 100644 --- a/lua/entities/gmod_wire_value/init.lua +++ b/lua/entities/gmod_wire_value.lua @@ -1,9 +1,10 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Value" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Value" -include('shared.lua') - -ENT.WireDebugName = "Value" +if CLIENT then return end -- No more client function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) diff --git a/lua/entities/gmod_wire_value/cl_init.lua b/lua/entities/gmod_wire_value/cl_init.lua deleted file mode 100644 index dd3d9b0758..0000000000 --- a/lua/entities/gmod_wire_value/cl_init.lua +++ /dev/null @@ -1,7 +0,0 @@ - -include('shared.lua') - -ENT.Spawnable = false -ENT.AdminSpawnable = false -ENT.RenderGroup = RENDERGROUP_BOTH - diff --git a/lua/entities/gmod_wire_value/shared.lua b/lua/entities/gmod_wire_value/shared.lua deleted file mode 100644 index 22ddd64731..0000000000 --- a/lua/entities/gmod_wire_value/shared.lua +++ /dev/null @@ -1,11 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Constant Value" -ENT.Author = "" -ENT.Contact = "" -ENT.Purpose = "" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false diff --git a/lua/entities/gmod_wire_waypoint/init.lua b/lua/entities/gmod_wire_waypoint.lua similarity index 68% rename from lua/entities/gmod_wire_waypoint/init.lua rename to lua/entities/gmod_wire_waypoint.lua index d593127720..ebf1730d32 100644 --- a/lua/entities/gmod_wire_waypoint/init.lua +++ b/lua/entities/gmod_wire_waypoint.lua @@ -1,10 +1,34 @@ +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Waypoint Beacon" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Waypoint" -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +-- Shared -ENT.WireDebugName = "Locator" +function ENT:GetNextWaypoint() + return self:GetNetworkedEntity("NextWaypoint") +end + +if CLIENT then + local physBeamMat = Material("cable/physbeam") + function ENT:Draw() + self.BaseClass.Draw(self) + + local nextWP = self:GetNextWaypoint() + if IsValid(nextWP) and (LocalPlayer():GetEyeTrace().Entity == self) and (EyePos():Distance(self:GetPos()) < 4096) then + local start = self:GetPos() + local endpos = nextWP:GetPos() + local scroll = -3*CurTime() + + render.SetMaterial(physBeamMat) + render.DrawBeam(start, endpos, 8, scroll, (endpos-start):Length()/10+scroll, Color(255, 255, 255, 192)) + end + end + + return -- No more client +end local MODEL = Model( "models/props_lab/powerbox02d.mdl" ) diff --git a/lua/entities/gmod_wire_waypoint/cl_init.lua b/lua/entities/gmod_wire_waypoint/cl_init.lua deleted file mode 100644 index 0dacd65c52..0000000000 --- a/lua/entities/gmod_wire_waypoint/cl_init.lua +++ /dev/null @@ -1,20 +0,0 @@ - -include('shared.lua') - -ENT.Spawnable = false -ENT.AdminSpawnable = false -ENT.RenderGroup = RENDERGROUP_OPAQUE - -function ENT:Draw() - self.BaseClass.Draw(self) - - local nextWP = self:GetNextWaypoint() - if (nextWP) and (nextWP:IsValid()) and (LocalPlayer():GetEyeTrace().Entity == self) and (EyePos():Distance(self:GetPos()) < 4096) then - local start = self:GetPos() - local endpos = nextWP:GetPos() - local scroll = -3*CurTime() - - render.SetMaterial(Material("cable/physbeam")) - render.DrawBeam(start, endpos, 8, scroll, (endpos-start):Length()/10+scroll, Color(255, 255, 255, 192)) - end -end diff --git a/lua/entities/gmod_wire_waypoint/shared.lua b/lua/entities/gmod_wire_waypoint/shared.lua deleted file mode 100644 index d9ea7acbd5..0000000000 --- a/lua/entities/gmod_wire_waypoint/shared.lua +++ /dev/null @@ -1,13 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wire Waypoint Beacon" -ENT.Author = "" -ENT.Contact = "" - - --- ENT:SetNextWaypoint is in init.lua - -function ENT:GetNextWaypoint() - return self:GetNetworkedEntity("NextWaypoint") -end diff --git a/lua/entities/gmod_wire_wheel/init.lua b/lua/entities/gmod_wire_wheel.lua similarity index 97% rename from lua/entities/gmod_wire_wheel/init.lua rename to lua/entities/gmod_wire_wheel.lua index 835670c1f5..c3840a5623 100644 --- a/lua/entities/gmod_wire_wheel/init.lua +++ b/lua/entities/gmod_wire_wheel.lua @@ -1,8 +1,11 @@ -AddCSLuaFile( "cl_init.lua" ) -AddCSLuaFile( "shared.lua" ) -include('shared.lua') +AddCSLuaFile() +DEFINE_BASECLASS( "base_wire_entity" ) +ENT.PrintName = "Wire Wheel" +ENT.RenderGroup = RENDERGROUP_OPAQUE +ENT.WireDebugName = "Wheel" + +if CLIENT then return end -- No more client -ENT.WireDebugName = "Wheel" function ENT:Initialize() self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) diff --git a/lua/entities/gmod_wire_wheel/cl_init.lua b/lua/entities/gmod_wire_wheel/cl_init.lua deleted file mode 100644 index 4ede14305c..0000000000 --- a/lua/entities/gmod_wire_wheel/cl_init.lua +++ /dev/null @@ -1,6 +0,0 @@ -ENT.RenderGroup = RENDERGROUP_OPAQUE - -include('shared.lua') - -function ENT:Initialize() -end diff --git a/lua/entities/gmod_wire_wheel/shared.lua b/lua/entities/gmod_wire_wheel/shared.lua deleted file mode 100644 index 6ed4e448d2..0000000000 --- a/lua/entities/gmod_wire_wheel/shared.lua +++ /dev/null @@ -1,11 +0,0 @@ -ENT.Type = "anim" -ENT.Base = "base_wire_entity" - -ENT.PrintName = "Wired Wheel" -ENT.Author = "tad2020" -ENT.Contact = "" -ENT.Purpose = "support wire input" -ENT.Instructions = "" - -ENT.Spawnable = false -ENT.AdminSpawnable = false diff --git a/lua/wire/stools/cd_ray.lua b/lua/wire/stools/cd_ray.lua index 77462ee096..3870e8e5bf 100644 --- a/lua/wire/stools/cd_ray.lua +++ b/lua/wire/stools/cd_ray.lua @@ -120,13 +120,6 @@ if (SERVER) then wire_cd_ray:SetPlayer( pl ) - local ttable = { - Range = Range, - DefaultZero = DefaultZero, - pl = pl - } - table.Merge(wire_cd_ray:GetTable(), ttable ) - pl:AddCount( "wire_cd_rays", wire_cd_ray ) return wire_cd_ray @@ -146,13 +139,6 @@ if (SERVER) then wire_cd_lock:SetPlayer( pl ) - local ttable = { - Range = Range, - DefaultZero = DefaultZero, - pl = pl - } - table.Merge(wire_cd_lock:GetTable(), ttable ) - pl:AddCount( "wire_cd_locks", wire_cd_lock ) return wire_cd_lock diff --git a/lua/wire/stools/colorer.lua b/lua/wire/stools/colorer.lua index c2b53f84e0..42737a9f22 100644 --- a/lua/wire/stools/colorer.lua +++ b/lua/wire/stools/colorer.lua @@ -65,41 +65,9 @@ function TOOL:LeftClick( trace ) return true end -if SERVER then - - function MakeWireColorer( pl, Pos, Ang, model, outColor, Range ) - if !pl:CheckLimit( "wire_colorers" ) then return false end - - local wire_colorer = ents.Create( "gmod_wire_colorer" ) - if !IsValid(wire_colorer) then return false end - - wire_colorer:SetAngles( Ang ) - wire_colorer:SetPos( Pos ) - wire_colorer:SetModel( model ) - wire_colorer:Spawn() - wire_colorer:Setup( outColor, Range ) - - wire_colorer:SetPlayer( pl ) - - local ttable = { - outColor = outColor, - Range = Range, - pl = pl - } - table.Merge( wire_colorer:GetTable(), ttable ) - - pl:AddCount( "wire_colorers", wire_colorer ) - - return wire_colorer - end - duplicator.RegisterEntityClass("gmod_wire_colorer", MakeWireColorer, "Pos", "Ang", "Model", "outColor", "Range") - -end - function TOOL.BuildCPanel(panel) WireToolHelpers.MakePresetControl(panel, "wire_colorer") WireDermaExts.ModelSelect(panel, "wire_colorer_model", list.Get( "Wire_Laser_Tools_Models" ), 1, true) panel:CheckBox("#WireColorerTool_outColor", "wire_colorer_outColor") panel:NumSlider("#WireColorerTool_Range", "wire_colorer_Range", 1, 10000, 2) end - diff --git a/lua/wire/stools/forcer.lua b/lua/wire/stools/forcer.lua index 2a3b830448..c4475769e0 100644 --- a/lua/wire/stools/forcer.lua +++ b/lua/wire/stools/forcer.lua @@ -39,7 +39,7 @@ function TOOL.BuildCPanel(panel) WireToolHelpers.MakePresetControl(panel, "wire_forcer") ModelPlug_AddToCPanel(panel, "Forcer", "wire_forcer", true, 1) panel:NumSlider("Force multiplier", "wire_forcer_multiplier", 1, 10000, 0) - panel:NumSlider("Force distance", "wire_forcer_length", 1, 10000, 0) + panel:NumSlider("Force distance", "wire_forcer_length", 1, 2048, 0) panel:CheckBox("Show beam", "wire_forcer_beam") panel:CheckBox("Apply reaction force", "wire_forcer_reaction") end diff --git a/lua/wire/stools/nailer.lua b/lua/wire/stools/nailer.lua index 5d0fa4842c..c19890701e 100644 --- a/lua/wire/stools/nailer.lua +++ b/lua/wire/stools/nailer.lua @@ -11,7 +11,7 @@ WireToolSetup.SetupMax( 20, TOOL.Mode.."s" , "You've hit the Wire "..TOOL.Plural if (SERVER) then function TOOL:GetConVars() - return self:GetClientNumber( "forcelim" ) + return self:GetClientNumber( "forcelim" ), self:GetClientNumber( "range" ), self:GetClientNumber( "beam" )==1 end function TOOL:MakeEnt( ply, model, Ang, trace ) return MakeWireNailer( ply, trace.HitPos, Ang, model, self:GetConVars() ) @@ -20,11 +20,15 @@ end TOOL.ClientConVar = { model = "models/jaanus/wiretool/wiretool_siren.mdl", - forcelim = "0" + forcelim = "0", + range = 100, + beam = 1, } function TOOL.BuildCPanel(panel) WireToolHelpers.MakePresetControl(panel, "wire_nailer") ModelPlug_AddToCPanel(panel, "Laser_Tools", "wire_nailer", true) panel:NumSlider("#Force Limit", "wire_nailer_forcelim", 0, 10000, 0) + panel:NumSlider("Range", "wire_nailer_range", 1, 2048, 0) + panel:CheckBox("Show Beam", "wire_nailer_beam") end