dobrograd-13-06-2022/garrysmod/addons/feature-wire/lua/wire/stools/relay.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

105 lines
3.5 KiB
Lua

WireToolSetup.setCategory( "Input, Output/Data Transfer" )
WireToolSetup.open( "relay", "Relay", "gmod_wire_relay", nil, "Relays" )
if ( CLIENT ) then
language.Add( "Tool.wire_relay.name", "Relay" )
language.Add( "Tool.wire_relay.desc", "Spawns a multi pole, multi throw relay switch." )
language.Add( "WireRelayTool_keygroup1", "Input 1 Key:" )
language.Add( "WireRelayTool_keygroup2", "Input 2 Key:" )
language.Add( "WireRelayTool_keygroup3", "Input 3 Key:" )
language.Add( "WireRelayTool_keygroup4", "Input 4 Key:" )
language.Add( "WireRelayTool_keygroup5", "Input 5 Key:" )
language.Add( "WireRelayTool_keygroupoff", "Open (off) Key:" )
language.Add( "WireRelayTool_nokey", "No Key switching" )
language.Add( "WireRelayTool_toggle", "Toggle" )
language.Add( "WireRelayTool_normclose", "Normaly:" )
language.Add( "WireRelayTool_poles", "Number of poles:" )
language.Add( "WireRelayTool_throws", "Number of throws:" )
TOOL.Information = { { name = "left", text = "Create/Update " .. TOOL.Name } }
end
WireToolSetup.BaseLang()
WireToolSetup.SetupMax( 20 )
TOOL.ClientConVar = {
keygroupoff = "0",
keygroup1 = "1",
keygroup2 = "2",
keygroup3 = "3",
keygroup4 = "4",
keygroup5 = "5",
nokey = "0",
toggle = "1",
normclose = "0",
poles = "1",
throws = "2",
model = "models/kobilica/relay.mdl",
}
if SERVER then
function TOOL:GetConVars()
return self:GetClientNumber("keygroup1"), self:GetClientNumber("keygroup2"), self:GetClientNumber("keygroup3"), self:GetClientNumber("keygroup4"), self:GetClientNumber("keygroup5"),
self:GetClientNumber("keygroupoff"), self:GetClientNumber("toggle") ~= 0, self:GetClientNumber("normclose"),
self:GetClientNumber("poles"), self:GetClientNumber("throws"), self:GetClientNumber("nokey") ~= 0
end
end
function TOOL.BuildCPanel(panel)
panel:AddControl("Header", { Text = "#Tool.wire_relay.name", Description = "#Tool.wire_relay.desc" })
WireToolHelpers.MakePresetControl(panel, "wire_radio")
panel:AddControl("Slider", {
Label = "#WireRelayTool_poles",
Type = "Integer",
Min = "1",
Max = "8",
Command = "wire_relay_poles"
})
panel:AddControl("Slider", {
Label = "#WireRelayTool_throws",
Type = "Integer",
Min = "1",
Max = "10",
Command = "wire_relay_throws"
})
panel:AddControl("CheckBox", {
Label = "#WireRelayTool_toggle",
Command = "wire_relay_toggle"
})
panel:AddControl("ComboBox", {
Label = "#WireRelayTool_normclose",
Options = {
["Open"] = { wire_relay_normclose = "0" },
["Closed to 1"] = { wire_relay_normclose = "1" },
["Closed to 2"] = { wire_relay_normclose = "2" },
["Closed to 3"] = { wire_relay_normclose = "3" },
["Closed to 4"] = { wire_relay_normclose = "4" },
["Closed to 5"] = { wire_relay_normclose = "5" }
}
})
panel:AddControl("CheckBox", {
Label = "#WireRelayTool_nokey",
Command = "wire_relay_nokey"
})
panel:AddControl("Numpad", {
Label = "#WireRelayTool_keygroupoff", Label2 = "#WireRelayTool_keygroup1",
Command = "wire_relay_keygroupoff", Command2 = "wire_relay_keygroup1",
ButtonSize = "22"
})
panel:AddControl("Numpad", {
Label = "#WireRelayTool_keygroup2", Label2 = "#WireRelayTool_keygroup3",
Command = "wire_relay_keygroup2", Command2 = "wire_relay_keygroup3",
ButtonSize = "22"
})
panel:AddControl("Numpad", {
Label = "#WireRelayTool_keygroup4", Label2 = "#WireRelayTool_keygroup5",
Command = "wire_relay_keygroup4", Command2 = "wire_relay_keygroup5",
ButtonSize = "22"
})
end