62 lines
3 KiB
Lua
62 lines
3 KiB
Lua
WireToolSetup.setCategory( "Advanced" )
|
|
WireToolSetup.open( "addressbus", "Data - Address Bus", "gmod_wire_addressbus", nil, "Address Buses" )
|
|
|
|
if ( CLIENT ) then
|
|
language.Add( "Tool.wire_addressbus.name", "Address bus tool (Wire)" )
|
|
language.Add( "Tool.wire_addressbus.desc", "Spawns an address bus. Address spaces may overlap!" )
|
|
TOOL.Information = { { name = "left", text = "Create/Update address bus" } }
|
|
end
|
|
WireToolSetup.BaseLang()
|
|
WireToolSetup.SetupMax( 20 )
|
|
|
|
TOOL.ClientConVar[ "model" ] = "models/jaanus/wiretool/wiretool_gate.mdl"
|
|
TOOL.ClientConVar[ "addrspace1sz" ] = 0
|
|
TOOL.ClientConVar[ "addrspace2sz" ] = 0
|
|
TOOL.ClientConVar[ "addrspace3sz" ] = 0
|
|
TOOL.ClientConVar[ "addrspace4sz" ] = 0
|
|
TOOL.ClientConVar[ "addrspace1st" ] = 0
|
|
TOOL.ClientConVar[ "addrspace2st" ] = 0
|
|
TOOL.ClientConVar[ "addrspace3st" ] = 0
|
|
TOOL.ClientConVar[ "addrspace4st" ] = 0
|
|
|
|
if SERVER then
|
|
function TOOL:GetConVars()
|
|
return self:GetClientNumber( "addrspace1st" ), self:GetClientNumber( "addrspace2st" ), self:GetClientNumber( "addrspace3st" ), self:GetClientNumber( "addrspace4st" ),
|
|
self:GetClientNumber( "addrspace1sz" ), self:GetClientNumber( "addrspace2sz" ), self:GetClientNumber( "addrspace3sz" ), self:GetClientNumber( "addrspace4sz" )
|
|
end
|
|
|
|
-- Uses default WireToolObj:MakeEnt's WireLib.MakeWireEnt function
|
|
end
|
|
|
|
function TOOL:RightClick( trace )
|
|
if trace.Entity:IsPlayer() then return false end
|
|
if (CLIENT) then return true end
|
|
|
|
local ply = self:GetOwner()
|
|
|
|
if ( trace.Entity:IsValid() && trace.Entity:GetClass() == "gmod_wire_addressbus" ) then
|
|
ply:ConCommand("wire_addressbus_addrspace1sz "..(trace.Entity.MemEnd[1]-trace.Entity.MemStart[1]+1))
|
|
ply:ConCommand("wire_addressbus_addrspace1st "..(trace.Entity.MemStart[1]))
|
|
ply:ConCommand("wire_addressbus_addrspace2sz "..(trace.Entity.MemEnd[2]-trace.Entity.MemStart[2]+1))
|
|
ply:ConCommand("wire_addressbus_addrspace2st "..(trace.Entity.MemStart[2]))
|
|
ply:ConCommand("wire_addressbus_addrspace3sz "..(trace.Entity.MemEnd[3]-trace.Entity.MemStart[3]+1))
|
|
ply:ConCommand("wire_addressbus_addrspace3st "..(trace.Entity.MemStart[3]))
|
|
ply:ConCommand("wire_addressbus_addrspace4sz "..(trace.Entity.MemEnd[4]-trace.Entity.MemStart[4]+1))
|
|
ply:ConCommand("wire_addressbus_addrspace4st "..(trace.Entity.MemStart[4]))
|
|
end
|
|
return true
|
|
end
|
|
|
|
function TOOL.BuildCPanel(panel)
|
|
WireToolHelpers.MakePresetControl(panel, "wire_addressbus")
|
|
ModelPlug_AddToCPanel(panel, "gate", "wire_addressbus", nil, 4)
|
|
|
|
panel:NumSlider("1 offset", "wire_addressbus_addrspace1st", 0, 16777216, 0)
|
|
panel:NumSlider("1 size", "wire_addressbus_addrspace1sz", 0, 16777216, 0)
|
|
panel:NumSlider("2 offset", "wire_addressbus_addrspace2st", 0, 16777216, 0)
|
|
panel:NumSlider("2 size", "wire_addressbus_addrspace2sz", 0, 16777216, 0)
|
|
panel:NumSlider("3 offset", "wire_addressbus_addrspace3st", 0, 16777216, 0)
|
|
panel:NumSlider("3 size", "wire_addressbus_addrspace3sz", 0, 16777216, 0)
|
|
panel:NumSlider("4 offset", "wire_addressbus_addrspace4st", 0, 16777216, 0)
|
|
panel:NumSlider("4 size", "wire_addressbus_addrspace4sz", 0, 16777216, 0)
|
|
end
|