wiremod-svn-archive/wire/lua/weapons/gmod_tool/stools/wire_hudindicator.lua
2008-06-14 00:55:20 +00:00

632 lines
22 KiB
Lua

// Created by TheApathetic, so you know who to
// blame if something goes wrong (someone else :P)
TOOL.Category = "Wire - Display"
TOOL.Name = "Hud Indicator"
TOOL.Command = nil
TOOL.ConfigName = ""
if ( CLIENT ) then
language.Add( "Tool_wire_hudindicator_name", "Hud Indicator Tool (Wire)" )
language.Add( "Tool_wire_hudindicator_desc", "Spawns a Hud Indicator for use with the wire system." )
language.Add( "Tool_wire_hudindicator_0", "Primary: Create/Update Hud Indicator Secondary: Hook/Unhook someone else's Hud Indicator Reload: Link Hud Indicator to vehicle" )
language.Add( "Tool_wire_hudindicator_1", "Now use Reload on a vehicle to link this Hud Indicator to it, or on the same Hud Indicator to unlink it" )
/* Don't need this stuff
language.Add( "ToolWireIndicator_Model", "Model:" )
language.Add( "ToolWireIndicator_a_value", "A Value:" )
language.Add( "ToolWireIndicator_a_colour", "A Colour:" )
language.Add( "ToolWireIndicator_b_value", "B Value:" )
language.Add( "ToolWireIndicator_b_colour", "B Colour:" )
language.Add( "ToolWireIndicator_Material", "Material:" )
language.Add( "ToolWireIndicator_90", "Rotate segment 90:" )
language.Add( "sboxlimit_wire_indicators", "You've hit indicators limit!" )
*/
language.Add( "undone_wirehudindicator", "Undone Wire Hud Indicator" )
// HUD Indicator stuff
language.Add( "ToolWireHudIndicator_showinhud", "Show in my HUD:")
language.Add( "ToolWireHudIndicator_hudheaderdesc", "HUD Indicator Settings:")
language.Add( "ToolWireHudIndicator_huddesc", "Description:")
language.Add( "ToolWireHudIndicator_hudaddname", "Add as Name:")
language.Add( "ToolWireHudIndicator_hudaddnamedesc", "Also adds description as name of indicator (like Wire Namer)")
language.Add( "ToolWireHudIndicator_hudshowvalue", "Show Value as:")
language.Add( "ToolWireHudIndicator_hudshowvaluedesc", "How to display value in HUD readout along with description")
language.Add( "ToolWireHudIndicator_hudx", "HUD X:")
language.Add( "ToolWireHudIndicator_hudxdesc", "X of the upper-left corner of HUD display")
language.Add( "ToolWireHudIndicator_hudy", "HUD Y:")
language.Add( "ToolWireHudIndicator_hudydesc", "Y of the upper-left corner of HUD display")
language.Add( "ToolWireHudIndicator_hudstyle", "HUD Style:")
language.Add( "ToolWireHudIndicator_allowhook", "Allow others to hook:")
language.Add( "ToolWireHudIndicator_allowhookdesc", "Allows others to hook this indicator with right-click")
language.Add( "ToolWireHudIndicator_hookhidehud", "Allow HideHUD on hooked:")
language.Add( "ToolWireHudIndicator_hookhidehuddesc", "Whether your next hooked indicator will be subject to the HideHUD input of that indicator")
language.Add( "ToolWireHudIndicator_fullcircleangle", "Start angle for full circle gauge (deg):")
language.Add( "ToolWireHudIndicator_registeredindicators", "Registered Indicators:")
language.Add( "ToolWireHudIndicator_deleteselected", "Unregister Selected Indicator")
end
if (SERVER) then
// Hud indicators use the original indicator CVar
//CreateConVar('sbox_maxwire_indicators', 20)
end
TOOL.ClientConVar[ "model" ] = "models/jaanus/wiretool/wiretool_siren.mdl"
TOOL.ClientConVar[ "a" ] = "0"
TOOL.ClientConVar[ "ar" ] = "255"
TOOL.ClientConVar[ "ag" ] = "0"
TOOL.ClientConVar[ "ab" ] = "0"
TOOL.ClientConVar[ "aa" ] = "255"
TOOL.ClientConVar[ "b" ] = "1"
TOOL.ClientConVar[ "br" ] = "0"
TOOL.ClientConVar[ "bg" ] = "255"
TOOL.ClientConVar[ "bb" ] = "0"
TOOL.ClientConVar[ "ba" ] = "255"
TOOL.ClientConVar[ "rotate90" ] = "0"
TOOL.ClientConVar[ "material" ] = "models/debug/debugwhite"
// HUD Indicator stuff
TOOL.ClientConVar[ "showinhud" ] = "0"
TOOL.ClientConVar[ "huddesc" ] = ""
TOOL.ClientConVar[ "hudaddname" ] = "0"
TOOL.ClientConVar[ "hudshowvalue" ] = "0"
TOOL.ClientConVar[ "hudx" ] = "22"
TOOL.ClientConVar[ "hudy" ] = "200"
TOOL.ClientConVar[ "hudstyle" ] = "0"
TOOL.ClientConVar[ "allowhook" ] = "1"
TOOL.ClientConVar[ "hookhidehud" ] = "0" // Couldn't resist this name :P
TOOL.ClientConVar[ "fullcircleangle" ] = "0"
TOOL.ClientConVar[ "registerdelete" ] = "0"
cleanup.Register( "wire_indicators" )
function TOOL:LeftClick( trace )
if trace.Entity && trace.Entity:IsPlayer() then return false end
// If there's no physics object then we can't constraint it!
if ( SERVER && !util.IsValidPhysicsObject( trace.Entity, trace.PhysicsBone ) ) then return false end
if (CLIENT) then return true end
local ply = self:GetOwner()
local model = self:GetClientInfo( "model" )
local a = self:GetClientNumber("a")
local ar = math.min(self:GetClientNumber("ar"), 255)
local ag = math.min(self:GetClientNumber("ag"), 255)
local ab = math.min(self:GetClientNumber("ab"), 255)
local aa = math.min(self:GetClientNumber("aa"), 255)
local b = self:GetClientNumber("b")
local br = math.min(self:GetClientNumber("br"), 255)
local bg = math.min(self:GetClientNumber("bg"), 255)
local bb = math.min(self:GetClientNumber("bb"), 255)
local ba = math.min(self:GetClientNumber("ba"), 255)
local material = self:GetClientInfo( "material" )
local showinhud = (self:GetClientNumber( "showinhud" ) > 0)
local huddesc = self:GetClientInfo( "huddesc" )
local hudaddname = (self:GetClientNumber( "hudaddname" ) > 0)
local hudshowvalue = self:GetClientNumber( "hudshowvalue" )
local hudstyle = self:GetClientNumber( "hudstyle" )
local allowhook = (self:GetClientNumber( "allowhook" ) > 0)
local fullcircleangle = self:GetClientNumber( "fullcircleangle" )
// If we shot a wire_indicator change its force
if ( trace.Entity:IsValid() && trace.Entity:GetClass() == "gmod_wire_hudindicator" && trace.Entity.pl == ply ) then
trace.Entity:Setup(a, ar, ag, ab, aa, b, br, bg, bb, ba)
trace.Entity:SetMaterial( material )
trace.Entity.a = a
trace.Entity.ar = ar
trace.Entity.ag = ag
trace.Entity.ab = ab
trace.Entity.aa = aa
trace.Entity.b = b
trace.Entity.br = br
trace.Entity.bg = bg
trace.Entity.bb = bb
trace.Entity.ba = ba
// This will un-register if showinhud is false
trace.Entity:HUDSetup(showinhud, huddesc, hudaddname, hudshowvalue, hudstyle, allowhook, fullcircleangle)
trace.Entity.showinhud = showinhud
trace.Entity.huddesc = huddesc
trace.Entity.hudaddname = hudaddname
trace.Entity.hudshowvalue = hudshowvalue
trace.Entity.hudstyle = hudstyle
trace.Entity.allowhook = allowhook
trace.Entity.fullcircleangle = fullcircleangle
return true
end
if ( !self:GetSWEP():CheckLimit( "wire_indicators" ) ) then return false end
if (not util.IsValidModel(model)) then return false end
if (not util.IsValidProp(model)) then return false end // Allow ragdolls to be used?
//local Ang = trace.HitNormal:Angle()
local Ang = self:GetSelectedAngle(trace.HitNormal:Angle())
Ang.pitch = Ang.pitch + 90
wire_indicator = MakeWireHudIndicator( ply, model, Ang, trace.HitPos, a, ar, ag, ab, aa, b, br, bg, bb, ba, material, showinhud, huddesc, hudaddname, hudshowvalue, hudstyle, allowhook, fullcircleangle )
local min = wire_indicator:OBBMins()
wire_indicator:SetPos( trace.HitPos - trace.HitNormal * self:GetSelectedMin(min) )
local const = WireLib.Weld(wire_indicator, trace.Entity, trace.PhysicsBone, true)
undo.Create("WireHudIndicator")
undo.AddEntity( wire_indicator )
undo.AddEntity( const )
undo.SetPlayer( ply )
undo.Finish()
ply:AddCleanup( "wire_indicators", wire_indicator )
return true
end
function TOOL:RightClick( trace )
// Can only right-click on HUD Indicators
if (!trace.Entity || !trace.Entity:IsValid() || trace.Entity:GetClass() != "gmod_wire_hudindicator") then return false end
if (CLIENT) then return true end
local ply = self:GetOwner()
local hookhidehud = (self:GetClientNumber( "hookhidehud" ) > 0)
// Can't hook your own HUD Indicators
if (ply == trace.Entity:GetPlayer()) then
self:GetOwner():SendLua( "GAMEMODE:AddNotify('You cannot hook your own HUD Indicators!', NOTIFY_GENERIC, 7);" )
return false
end
if (!trace.Entity:GetTable():CheckRegister(ply)) then
// Has the creator allowed this HUD Indicator to be hooked?
if (!trace.Entity:GetTable().AllowHook) then
self:GetOwner():SendLua( "GAMEMODE:AddNotify('You are not allowed to hook this HUD Indicator.', NOTIFY_GENERIC, 7);" )
return false
end
trace.Entity:GetTable():RegisterPlayer(ply, hookhidehud)
else
trace.Entity:GetTable():UnRegisterPlayer(ply)
end
return true
end
// Hook HUD Indicator to vehicle
function TOOL:Reload( trace )
// Can only use this on HUD Indicators and vehicles
// The class checks are done later on, no need to do it twice
if (!trace.Entity || !trace.Entity:IsValid()) then return false end
if (CLIENT) then return true end
local iNum = self:NumObjects()
if (iNum == 0) then
if (trace.Entity:GetClass() != "gmod_wire_hudindicator") then
self:GetOwner():SendLua( "GAMEMODE:AddNotify('You must select a HUD Indicator to link first.', NOTIFY_GENERIC, 7);" )
return false
end
local Phys = trace.Entity:GetPhysicsObjectNum( trace.PhysicsBone )
self:SetObject( 1, trace.Entity, trace.HitPos, Phys, trace.PhysicsBone, trace.HitNormal )
self:SetStage(1)
elseif (iNum == 1) then
if (trace.Entity != self:GetEnt(1)) then
if (!string.find(trace.Entity:GetClass(), "prop_vehicle_")) then
self:GetOwner():SendLua( "GAMEMODE:AddNotify('HUD Indicators can only be linked to vehicles.', NOTIFY_GENERIC, 7);" )
self:ClearObjects()
self:SetStage(0)
return false
end
local ent = self:GetEnt(1)
local bool = ent:GetTable():LinkVehicle(trace.Entity)
if (!bool) then
self:GetOwner():SendLua( "GAMEMODE:AddNotify('Could not link HUD Indicator!', NOTIFY_GENERIC, 7);" )
return false
end
else
// Unlink HUD Indicator from this vehicle
trace.Entity:GetTable():UnLinkVehicle()
end
self:ClearObjects()
self:SetStage(0)
end
return true
end
if (SERVER) then
function MakeWireHudIndicator( pl, Model, Ang, Pos, a, ar, ag, ab, aa, b, br, bg, bb, ba, material, showinhud, huddesc, hudaddname, hudshowvalue, hudstyle, allowhook, fullcircleangle, nocollide, Vel, aVel, frozen )
if ( !pl:CheckLimit( "wire_indicators" ) ) then return false end
local wire_indicator = ents.Create( "gmod_wire_hudindicator" )
if (!wire_indicator:IsValid()) then return false end
wire_indicator:SetModel( Model )
wire_indicator:SetMaterial( material )
wire_indicator:SetAngles( Ang )
wire_indicator:SetPos( Pos )
wire_indicator:Spawn()
wire_indicator:Setup(a, ar, ag, ab, aa, b, br, bg, bb, ba)
wire_indicator:SetPlayer(pl)
wire_indicator:HUDSetup(showinhud, huddesc, hudaddname, hudshowvalue, hudstyle, allowhook, fullcircleangle)
if (nocollide) then
local phys = wire_indicator:GetPhysicsObject()
if ( phys:IsValid() ) then phys:EnableCollisions(false) end
end
local ttable = {
a = a,
ar = ar,
ag = ag,
ab = ab,
aa = aa,
b = b,
br = br,
bg = bg,
bb = bb,
ba = ba,
material = material,
pl = pl,
nocollide = nocollide,
showinhud = showinhud,
huddesc = huddesc,
hudaddname = hudaddname,
hudshowvalue = hudshowvalue,
hudstyle = hudstyle,
allowhook = allowhook,
fullcircleangle = fullcircleangle
}
table.Merge(wire_indicator:GetTable(), ttable )
pl:AddCount( "wire_indicators", wire_indicator )
return wire_indicator
end
duplicator.RegisterEntityClass("gmod_wire_hudindicator", MakeWireHudIndicator, "Model", "Ang", "Pos", "a", "ar", "ag", "ab", "aa", "b", "br",
"bg", "bb", "ba", "material", "showinhud", "huddesc", "hudaddname", "hudshowvalue", "hudstyle", "allowhook", "fullcircleangle", "nocollide", "Vel", "aVel", "frozen")
end
function TOOL:UpdateGhostWireHudIndicator( ent, player )
if ( !ent ) then return end
if ( !ent:IsValid() ) then return end
local tr = utilx.GetPlayerTrace( player, player:GetCursorAimVector() )
local trace = util.TraceLine( tr )
if (!trace.Hit) then return end
if (trace.Entity && trace.Entity:GetClass() == "gmod_wire_hudindicator" || trace.Entity:IsPlayer()) then
ent:SetNoDraw( true )
return
end
local Ang = self:GetSelectedAngle(trace.HitNormal:Angle())
Ang.pitch = Ang.pitch + 90
local min = ent:OBBMins()
ent:SetPos( trace.HitPos - trace.HitNormal * self:GetSelectedMin(min) )
ent:SetAngles( Ang )
ent:SetNoDraw( false )
end
function TOOL:GetSelectedAngle( Ang )
local Model = self:GetClientInfo( "model" )
//these models get mounted differently
if (Model == "models/props_borealis/bluebarrel001.mdl" || Model == "models/props_junk/PopCan01a.mdl") then
return Ang + Angle(180, 0, 0)
elseif (Model == "models/props_trainstation/trainstation_clock001.mdl" || Model == "models/segment.mdl" || Model == "models/segment2.mdl") then
return Ang + Angle(-90, 0, (self:GetClientNumber("rotate90") * 90))
else
return Ang
end
end
function TOOL:GetSelectedMin( min )
local Model = self:GetClientInfo( "model" )
//these models are different
if (Model == "models/props_trainstation/trainstation_clock001.mdl" || Model == "models/segment.mdl" || Model == "models/segment2.mdl") then
return min.x
else
return min.z
end
end
function TOOL:Think()
if (!self.GhostEntity || !self.GhostEntity:IsValid() || self.GhostEntity:GetModel() != self:GetClientInfo( "model" )) then
self:MakeGhostEntity( self:GetClientInfo( "model" ), Vector(0,0,0), self:GetSelectedAngle(Angle(0,0,0)) )
end
self:UpdateGhostWireHudIndicator( self.GhostEntity, self:GetOwner() )
if (SERVER) then
// Add check to see if player is registered with
// the HUD Indicator at which he is pointing
if ((self.NextCheckTime or 0) < CurTime()) then
local ply = self:GetOwner()
local tr = utilx.GetPlayerTrace(ply, ply:GetCursorAimVector())
local trace = util.TraceLine(tr)
if (trace.Hit && trace.Entity:IsValid() && trace.Entity:GetClass() == "gmod_wire_hudindicator" && trace.Entity:GetPlayer() != ply) then
local currentcheck = trace.Entity:GetTable():CheckRegister(ply)
if (currentcheck != self.LastRegisterCheck) then
self.LastRegisterCheck = currentcheck
self:GetWeapon():SetNetworkedBool("HUDIndicatorCheckRegister", currentcheck)
end
else
if (self.LastRegisterCheck == true) then
// Don't need to set this every 1/10 of a second
self.LastRegisterCheck = false
self:GetWeapon():SetNetworkedBool("HUDIndicatorCheckRegister", false)
end
end
self.NextCheckTime = CurTime() + 0.10
end
end
end
if (CLIENT) then
function TOOL:DrawHUD()
local isregistered = self:GetWeapon():GetNetworkedBool("HUDIndicatorCheckRegister")
if (isregistered) then
draw.WordBox(8, ScrW() / 2 + 10, ScrH() / 2 + 10, "Registered", "Default", Color(50, 50, 75, 192), Color(255, 255, 255, 255))
end
end
end
function TOOL:Holster()
self:ReleaseGhostEntity()
self:GetWeapon():SetNetworkedBool("HUDIndicatorCheckRegister", false)
end
function TOOL.BuildCPanel(panel)
panel:AddControl("Header", { Text = "#Tool_wire_hudindicator_name", Description = "#Tool_wire_hudindicator_desc" })
panel:AddControl("ComboBox", {
Label = "#Presets",
MenuButton = "1",
Folder = "wire_hudindicator",
Options = {
["#Default"] = {
wire_hudindicator_a = "0",
wire_hudindicator_ar = "255",
wire_hudindicator_ag = "0",
wire_hudindicator_ab = "0",
wire_hudindicator_aa = "255",
wire_hudindicator_b = "1",
wire_hudindicator_br = "0",
wire_hudindicator_bg = "255",
wire_hudindicator_bb = "0",
wire_hudindicator_ba = "255",
wire_hudindicator_model = "models/jaanus/wiretool/wiretool_siren.mdl",
wire_hudindicator_material = "models/debug/debugwhite",
wire_hudindicator_rotate90 = "0",
wire_hudindicator_showinhud = "0",
wire_hudindicator_huddesc = "",
wire_hudindicator_hudaddname = "0",
wire_hudindicator_hudshowvalue = "0",
wire_hudindicator_hudstyle = "0"
}
},
CVars = {
[0] = "wire_hudindicator_a",
[1] = "wire_hudindicator_ar",
[2] = "wire_hudindicator_ag",
[3] = "wire_hudindicator_ab",
[4] = "wire_hudindicator_aa",
[5] = "wire_hudindicator_b",
[6] = "wire_hudindicator_br",
[7] = "wire_hudindicator_bg",
[8] = "wire_hudindicator_bb",
[9] = "wire_hudindicator_ba",
[10] = "wire_hudindicator_model",
[11] = "wire_hudindicator_material",
[12] = "wire_hudindicator_rotate90",
[13] = "wire_hudindicator_showinhud",
[14] = "wire_hudindicator_huddesc",
[15] = "wire_hudindicator_hudaddname",
[16] = "wire_hudindicator_hudshowvalue",
[17] = "wire_hudindicator_hudstyle"
}
})
panel:AddControl("Slider", {
Label = "#ToolWireIndicator_a_value",
Type = "Float",
Min = "-10",
Max = "10",
Command = "wire_hudindicator_a"
})
panel:AddControl("Color", {
Label = "#ToolWireIndicator_a_colour",
Red = "wire_hudindicator_ar",
Green = "wire_hudindicator_ag",
Blue = "wire_hudindicator_ab",
Alpha = "wire_hudindicator_aa",
ShowAlpha = "1",
ShowHSV = "1",
ShowRGB = "1",
Multiplier = "255"
})
panel:AddControl("Slider", {
Label = "#ToolWireIndicator_b_value",
Type = "Float",
Min = "-10",
Max = "10",
Command = "wire_hudindicator_b"
})
panel:AddControl("Color", {
Label = "#ToolWireIndicator_b_colour",
Red = "wire_hudindicator_br",
Green = "wire_hudindicator_bg",
Blue = "wire_hudindicator_bb",
Alpha = "wire_hudindicator_ba",
ShowAlpha = "1",
ShowHSV = "1",
ShowRGB = "1",
Multiplier = "255"
})
panel:AddControl("ComboBox", {
Label = "#ToolWireIndicator_Model",
MenuButton = "0",
Options = {
["Siren"] = { wire_hudindicator_model = "models/jaanus/wiretool/wiretool_siren.mdl" },
["Medium 7-seg bar"] = { wire_hudindicator_model = "models/segment2.mdl" },
["Small 7-seg bar"] = { wire_hudindicator_model = "models/segment.mdl" },
["Barrel"] = { wire_hudindicator_model = "models/props_borealis/bluebarrel001.mdl" },
["Grave stone"] = { wire_hudindicator_model = "models/props_c17/gravestone004a.mdl" },
["Pop can"] = { wire_hudindicator_model = "models/props_junk/PopCan01a.mdl" },
["Traffic Cone"] = { wire_hudindicator_model = "models/props_junk/TrafficCone001a.mdl" },
["Big Clock"] = { wire_hudindicator_model = "models/props_trainstation/trainstation_clock001.mdl" }
}
})
panel:AddControl("ComboBox", {
Label = "#ToolWireIndicator_Material",
MenuButton = "0",
Options = {
["Matte"] = { wire_hudindicator_material = "models/debug/debugwhite" },
["Shiny"] = { wire_hudindicator_material = "models/shiny" },
["Metal"] = { wire_hudindicator_material = "models/props_c17/metalladder003" }
}
})
panel:AddControl("CheckBox", {
Label = "#ToolWireIndicator_90",
Command = "wire_hudindicator_rotate90"
})
panel:AddControl("Header", {
Text = "#ToolWireHudIndicator_hudheaderdesc",
Description = "#ToolWireHudIndicator_hudheaderdesc"
})
panel:AddControl("CheckBox", {
Label = "#ToolWireHudIndicator_showinhud",
Command = "wire_hudindicator_showinhud"
})
panel:AddControl("TextBox", {
Label = "#ToolWireHudIndicator_huddesc",
Command = "wire_hudindicator_huddesc",
MaxLength = "20"
})
panel:AddControl("ComboBox", {
Label = "#ToolWireHudIndicator_hudstyle",
MenuButton = "0",
Options = {
["Basic"] = { wire_hudindicator_hudstyle = "0" },
["Gradient"] = { wire_hudindicator_hudstyle = "1" },
["Percent Bar"] = { wire_hudindicator_hudstyle = "2" },
["Full Circle"] = { wire_hudindicator_hudstyle = "3" },
["Semi-circle"] = { wire_hudindicator_hudstyle = "4" }
}
})
panel:AddControl("CheckBox", {
Label = "#ToolWireHudIndicator_hudaddname",
Command = "wire_hudindicator_hudaddname",
Description = "#ToolWireHudIndicator_hudaddnamedesc"
})
panel:AddControl("ComboBox", {
Label = "#ToolWireHudIndicator_hudshowvalue",
MenuButton = "0",
Options = {
["Do Not Show"] = { wire_hudindicator_hudshowvalue = "0" },
["Percent"] = { wire_hudindicator_hudshowvalue = "1" },
["Value"] = { wire_hudindicator_hudshowvalue = "2" }
},
Description = "#ToolWireHudIndicator_hudshowvaluedesc"
})
panel:AddControl("CheckBox", {
Label = "#ToolWireHudIndicator_allowhook",
Command = "wire_hudindicator_allowhook",
Description = "#ToolWireHudIndicator_allowhookdesc"
})
panel:AddControl("CheckBox", {
Label = "#ToolWireHudIndicator_hookhidehud",
Command = "wire_hudindicator_hookhidehud",
Description = "#ToolWireHudIndicator_hookhidehuddesc"
})
panel:AddControl("Slider", {
Label = "#ToolWireHudIndicator_fullcircleangle",
Type = "Float",
Min = "0",
Max = "360",
Command = "wire_hudindicator_fullcircleangle"
})
// Get the currently registered HUD Indicators for this player that can be unregistered
local registered = HUDIndicator_GetCurrentRegistered()
if (#registered > 0) then
local options = {}
for eindex,indinfo in pairs(registered) do
local txt = indinfo.Description or ("Indicator #"..indinfo.EIndex)
options[txt] = { wire_hudindicator_registerdelete = tostring(indinfo.EIndex) }
end
panel:AddControl("ListBox", {
Label = "#ToolWireHudIndicator_registeredindicators",
MenuButton = 0,
Height = 120,
Options = options
})
panel:AddControl("Button", {
Text = "#ToolWireHudIndicator_deleteselected",
Command = "wire_hudindicator_delete"
})
end
panel:AddControl("TextBox", {
Label = "#ToolWireHudIndicator_hudx",
Command = "wire_hudindicator_hudx",
Description = "#ToolWireHudIndicator_hudxdesc"
})
panel:AddControl("TextBox", {
Label = "#ToolWireHudIndicator_hudy",
Command = "wire_hudindicator_hudy",
Description = "#ToolWireHudIndicator_hudydesc"
})
end
// Concommand to unregister HUD Indicator through control panel
local function HUDIndicator_RemoteUnRegister(ply, cmd, arg)
local eindex = ply:GetInfoNum("wire_hudindicator_registerdelete")
if (eindex == 0) then return end
local ent = ents.GetByIndex(eindex)
if (ent && ent:IsValid()) then
ent:UnRegisterPlayer(ply)
end
end
concommand.Add("wire_hudindicator_delete", HUDIndicator_RemoteUnRegister)