diff --git a/lua/autorun/wire_load.lua b/lua/autorun/wire_load.lua index 6fbca622dc..2dbbac0ca8 100644 --- a/lua/autorun/wire_load.lua +++ b/lua/autorun/wire_load.lua @@ -36,6 +36,7 @@ if SERVER then AddCSLuaFile("wire/default_data_decompressor.lua") AddCSLuaFile("wire/flir.lua") AddCSLuaFile("wire/von.lua") + AddCSLuaFile("wire/sh_modelplug.lua") -- client includes AddCSLuaFile("wire/client/cl_wirelib.lua") @@ -84,11 +85,12 @@ if SERVER then if CreateConVar("wire_force_workshop", 1, {FCVAR_ARCHIVE}, "Should Wire force all clients to download the Workshop edition of Wire, for models? (requires restart to disable)"):GetBool() then resource.AddWorkshop("160250458") end - resource.AddFile("resource/fonts/alphalcd.ttf") - + resource.AddFile("resource/fonts/alphalcd.ttf") + end -- shared includes +include("wire/sh_modelplug.lua") include("wire/wireshared.lua") include("wire/wire_paths.lua") include("wire/wiregates.lua") @@ -131,8 +133,6 @@ if CLIENT then include("wire/client/rendertarget_fix.lua") include("wire/client/hlzasm/hc_compiler.lua") include("wire/client/customspawnmenu.lua") - - end -- Load UWSVN, done here so its definitely after Wire is loaded. diff --git a/lua/entities/gmod_wire_datasocket.lua b/lua/entities/gmod_wire_datasocket.lua index ea65f0cdc1..a1b48f8e94 100644 --- a/lua/entities/gmod_wire_datasocket.lua +++ b/lua/entities/gmod_wire_datasocket.lua @@ -25,8 +25,9 @@ if CLIENT then end function ENT:DrawEntityOutline() end -- never draw outline - + function ENT:Initialize() + self:CacheData() table.insert(sockets, self) if #sockets == 1 then hook.Add("HUDPaint", "Wire_DataSocket_DrawLinkHelperLine",DrawLinkHelperLinefunction) @@ -35,7 +36,7 @@ if CLIENT then function ENT:OnRemove() table.RemoveByValue(sockets, self) - if #sockets == 0 then + if #sockets == 0 then hook.Remove("HUDPaint", "Wire_DataSocket_DrawLinkHelperLine") end end @@ -44,6 +45,7 @@ if CLIENT then end function ENT:Initialize() + self:CacheData() self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) diff --git a/lua/entities/gmod_wire_socket.lua b/lua/entities/gmod_wire_socket.lua index 7c6f95514c..97d56e7da2 100644 --- a/lua/entities/gmod_wire_socket.lua +++ b/lua/entities/gmod_wire_socket.lua @@ -5,44 +5,19 @@ ENT.Purpose = "Links with a plug" ENT.Instructions = "Move a plug close to a plug to link them, and data will be transferred through the link." ENT.WireDebugName = "Socket" -local PositionOffsets = { - ["models/wingf0x/isasocket.mdl"] = Vector(0,0,0), - ["models/wingf0x/altisasocket.mdl"] = Vector(0,0,2.6), - ["models/wingf0x/ethernetsocket.mdl"] = Vector(0,0,0), - ["models/wingf0x/hdmisocket.mdl"] = Vector(0,0,0), - ["models/props_lab/tpplugholder_single.mdl"] = Vector(5, 13, 10), - ["models/bull/various/usb_socket.mdl"] = Vector(8,0,0), - ["models/hammy/pci_slot.mdl"] = Vector(0,0,0), - ["models//hammy/pci_slot.mdl"] = Vector(0,0,0), -- For some reason, GetModel on this model has two / on the client... Bug? -} -local AngleOffsets = { - ["models/wingf0x/isasocket.mdl"] = Angle(0,0,0), - ["models/wingf0x/altisasocket.mdl"] = Angle(0,0,0), - ["models/wingf0x/ethernetsocket.mdl"] = Angle(0,0,0), - ["models/wingf0x/hdmisocket.mdl"] = Angle(0,0,0), - ["models/props_lab/tpplugholder_single.mdl"] = Angle(0,0,0), - ["models/bull/various/usb_socket.mdl"] = Angle(0,0,0), - ["models/hammy/pci_slot.mdl"] = Angle(0,0,0), - ["models//hammy/pci_slot.mdl"] = Angle(0,0,0), -- For some reason, GetModel on this model has two / on the client... Bug? -} -local SocketModels = { - ["models/wingf0x/isasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/altisasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/ethernetsocket.mdl"] = "models/wingf0x/ethernetplug.mdl", - ["models/wingf0x/hdmisocket.mdl"] = "models/wingf0x/hdmiplug.mdl", - ["models/props_lab/tpplugholder_single.mdl"] = "models/props_lab/tpplug.mdl", - ["models/bull/various/usb_socket.mdl"] = "models/bull/various/usb_stick.mdl", - ["models/hammy/pci_slot.mdl"] = "models/hammy/pci_card.mdl", - ["models//hammy/pci_slot.mdl"] = "models//hammy/pci_card.mdl", -- For some reason, GetModel on this model has two / on the client... Bug? -} +local SocketData = list.Get("Wire_Socket_Models") + +hook.Add("ModelPlugLuaRefresh","gmod_wire_socket_updatemodels",function() + SocketData = list.Get("Wire_Socket_Models") +end) function ENT:GetLinkPos() - return self:LocalToWorld(PositionOffsets[self:GetModel()] or Vector(0,0,0)), self:LocalToWorldAngles(AngleOffsets[self:GetModel()] or Angle(0,0,0)) + return self:LocalToWorld(self.SockData.pos or Vector(0,0,0)), self:GetAngles() end function ENT:CanLink( Target ) if (Target.Socket and Target.Socket:IsValid()) then return false end - if (SocketModels[self:GetModel()] ~= Target:GetModel()) then return false end + if (self.SockData.plug ~= Target:GetModel()) then return false end return true end @@ -63,7 +38,6 @@ function ENT:GetClosestPlug() end end end - return Closest end @@ -75,6 +49,9 @@ function ENT:SetupDataTables() self:NetworkVar( "Bool", 0, "Linked" ) end +function ENT:CacheData() + self.SockData = SocketData[ self:GetModel() ] or {} +end if CLIENT then local sockets = ents.FindByClass("gmod_wire_socket") or {} @@ -100,6 +77,7 @@ if CLIENT then end function ENT:Initialize() + self:CacheData() table.insert(sockets, self) if #sockets == 1 then hook.Add("HUDPaint", "Wire_Socket_DrawLinkHelperLine",DrawLinkHelperLinefunction) @@ -125,6 +103,7 @@ for k,v in ipairs( LETTERS ) do end function ENT:Initialize() + self:CacheData() self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) @@ -249,6 +228,7 @@ function ENT:ResendValues() end function ENT:AttachWeld(weld) + self:EmitSound("buttons/lightswitch2.wav", 60) self.Weld = weld local plug = self.Plug weld:CallOnRemove("wire_socket_remove_on_weld",function() @@ -299,10 +279,9 @@ function ENT:Think() return true end - if not IsValid(self.Plug) then -- currently not linked, check for nearby links + if not IsValid(self.Plug) then -- currently not linked, check for nearby links| local Pos, Ang = self:GetLinkPos() local Closest = self:GetClosestPlug() - if (Closest and Closest:IsValid() and self:CanLink( Closest ) and not Closest:IsPlayerHolding() and Closest:GetClosestSocket() == self) then self.Plug = Closest Closest.Socket = self diff --git a/lua/wire/client/cl_modelplug.lua b/lua/wire/client/cl_modelplug.lua index d5581c52fb..e1a8987a89 100644 --- a/lua/wire/client/cl_modelplug.lua +++ b/lua/wire/client/cl_modelplug.lua @@ -1,13 +1,12 @@ ---Msg("=== Loading Wire Model Packs ===\n") - CreateConVar("cl_showmodeltextbox", "0") + --[[ +-- 3/25/2023: I have no idea what this code does, but it looks important, so I'm leaving it. -- Loads and converts model lists from the old WireModelPacks format do local converted = {} - MsgN("WM: Loading models...") for _,filename in ipairs( file.Find("WireModelPacks/*", "DATA") ) do --for _,filename in ipairs{"bull_buttons.txt","bull_modelpack.txt","cheeze_buttons2.txt","default.txt","expression2.txt","wire_model_pack_1.txt","wire_model_pack_1plus.txt"} do @@ -22,7 +21,7 @@ do local categorytable = string.Explode(",", entry.categories or "none") or { "none" } for _,cat in pairs(categorytable) do list.Set( "Wire_"..cat.."_Models", entry.model, true ) - converted[#converted+1] = string.format('list.Set("Wire_%s_Models", "%s", true)', cat, entry.model) + converted[#converted+1] = string.format('"%s" end end converted[#converted+1] = "" @@ -36,117 +35,140 @@ do end ]] --- --- Add some more options to the stools --- +-- These models are not packaged as part of Wire or base Garry's Mod, so they need special handling: +local externalModels = { + {"WireScreenModels", "models/props/cs_office/tv_plasma.mdl"}, + {"WireScreenModels", "models/props/cs_office/computer_monitor.mdl"}, + {"WireScreenModels", "models/props/cs_assault/Billboard.mdl"}, + {"WireScreenModels", "models/props/cs_militia/reload_bullet_tray.mdl"}, + {"WireScreenModels", "models/props_mining/billboard001.mdl"}, + {"WireScreenModels", "models/props_mining/billboard002.mdl"}, + {"WireNoGPULibScreenModels", "models/props/cs_office/tv_plasma.mdl"}, + {"WireNoGPULibScreenModels", "models/props/cs_office/computer_monitor.mdl"}, + {"Wire_button_Models", "models/props/switch001.mdl"}, + {"Wire_button_Models", "models/props_mining/control_lever01.mdl"}, + {"Wire_button_Models", "models/props_mining/freightelevatorbutton01.mdl"}, + {"Wire_button_Models", "models/props_mining/freightelevatorbutton02.mdl"}, + {"Wire_button_Models", "models/props_mining/switch01.mdl"}, + {"Wire_button_Models", "models/props_mining/switch_updown01.mdl"}, + -- These seem to be missing from wire itself. Where are they? Who knows?! + -- {"ThrusterModels", "models/jaanus/thruster_invisi.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_shoop.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_smile.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_muff.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_rocket.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_megaphn.mdl"}, + -- {"ThrusterModels", "models/jaanus/thruster_stun.mdl"}, + -- {"Wire_Value_Models", "models/cheeze/wires/chip.mdl"}, + {"WireTeleporterModels", "models/props_c17/pottery03a.mdl"}, + {"Wire_Keyboard_Models", "models/props/kb_mouse/keyboard.mdl"}, +} +for k, v in ipairs(externalModels) do + if file.Exists(v[2], "GAME") then + list.Set(v[1], v[2], true) + end +end + +-- Everything else can just be added without checking if it exists + +-- first we'll handle these weird singleton lists +list.Set("Wire_waypoint_Models","models/jaanus/wiretool/wiretool_waypoint.mdl") +list.Set("Wire_control_Models","models/jaanus/wiretool/wiretool_controlchip.mdl") +list.Set("Wire_beamcasting_Models", "models/jaanus/wiretool/wiretool_beamcaster.mdl") --screens with a GPULib setup -list.Set( "WireScreenModels", "models/props_lab/monitor01b.mdl", true ) -list.Set( "WireScreenModels", "models/props_c17/tv_monitor01.mdl", true ) -list.Set( "WireScreenModels", "models/props/cs_office/tv_plasma.mdl", true ) -list.Set( "WireScreenModels", "models/blacknecro/tv_plasma_4_3.mdl", true ) -list.Set( "WireScreenModels", "models/props/cs_office/computer_monitor.mdl", true ) -list.Set( "WireScreenModels", "models/kobilica/wiremonitorbig.mdl", true ) -list.Set( "WireScreenModels", "models/kobilica/wiremonitorsmall.mdl", true ) -list.Set( "WireScreenModels", "models/props/cs_assault/Billboard.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb0.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb1.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb2.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb3.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb4.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb6.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb5.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb7.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb/pcb8.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb8.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb1.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb2.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb3.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb4.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb5.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb6.mdl", true ) -list.Set( "WireScreenModels", "models/cheeze/pcb2/pcb7.mdl", true ) -list.Set( "WireScreenModels", "models/props_lab/monitor01a.mdl", true ) -list.Set( "WireScreenModels", "models/props_lab/monitor02.mdl", true ) -list.Set( "WireScreenModels", "models/props/cs_militia/reload_bullet_tray.mdl", true ) -list.Set( "WireScreenModels", "models/props_lab/workspace002.mdl", true ) -list.Set( "WireScreenModels", "models/props_lab/reciever01b.mdl", true ) -list.Set( "WireScreenModels","models/props_c17/consolebox05a.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/reciever01c.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/reciever01d.mdl", true ) -list.Set( "WireScreenModels","models/props_c17/consolebox01a.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_interface001.mdl", true ) -list.Set( "WireScreenModels","models/props_c17/cashregister01a.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_monitorbay.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/workspace001.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/citizenradio.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/securitybank.mdl", true ) -list.Set( "WireScreenModels","models/beer/wiremod/gate_e2.mdl", true ) -list.Set( "WireScreenModels","models/beer/wiremod/targetfinder.mdl", true ) -list.Set( "WireScreenModels","models/bull/gates/microcontroller1.mdl", true ) -list.Set( "WireScreenModels","models/bull/gates/microcontroller2.mdl", true ) -list.Set( "WireScreenModels","models/jaanus/wiretool/wiretool_gate.mdl", true ) -list.Set( "WireScreenModels","models/jaanus/wiretool/wiretool_controlchip.mdl",true ) -list.Set( "WireScreenModels","models/props_lab/keypad.mdl", true ) -list.Set( "WireScreenModels","models/weapons/w_c4_planted.mdl", true ) -list.Set( "WireScreenModels","models/weapons/w_toolgun.mdl", true ) -list.Set( "WireScreenModels","models/xqm/panel1x1.mdl", true ) -list.Set( "WireScreenModels","models/xqm/panel1x2.mdl", true ) -list.Set( "WireScreenModels","models/xqm/box5s.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/miniteleport.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/plotter.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_interface002.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_interface003.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_intmonitor003.mdl", true ) -list.Set( "WireScreenModels","models/props_combine/combine_intmonitor001.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/workspace003.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/workspace004.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/servers.mdl", true ) -list.Set( "WireScreenModels","models/props_phx/rt_screen.mdl", true ) - - ---list.Set( "WireScreenModels", "models/blacknecro/ledboard60.mdl", true ) --broken -list.Set( "WireScreenModels", "models/props_wasteland/controlroom_monitor001b.mdl", true ) ---TF2 Billboards -list.Set( "WireScreenModels", "models/props_mining/billboard001.mdl", true ) -list.Set( "WireScreenModels", "models/props_mining/billboard002.mdl", true ) - ---PHX3 -list.Set( "WireScreenModels", "models/hunter/plates/plate025.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate025x025.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate025x05.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate05x075.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate05x1.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate1x1.mdl", true ) - - -list.Set( "WireScreenModels", "models/hunter/plates/plate2x2.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate4x4.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate8x8.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/plates/plate05x05.mdl", true ) -list.Set( "WireScreenModels", "models/hunter/blocks/cube1x1x1.mdl", true ) -list.Set( "WireScreenModels","models/props_lab/reciever01b.mdl", true ) -list.Set( "WireScreenModels","models/fasteroid/bull/lcd1.mdl", true ) -list.Set( "WireScreenModels","models/fasteroid/bull/lcd2.mdl", true ) -list.Set( "WireScreenModels","models/fasteroid/bull/lcd3.mdl", true ) -list.Set( "WireScreenModels","models/fasteroid/bull/lcd4.mdl", true ) -list.Set( "WireScreenModels","models/fasteroid/bull/lcd5.mdl", true ) - - - - ---screens that are transparent -list.Set( "WireScreenModels", "models/props_phx/construct/windows/window1x1.mdl", true ) - ---screens with out a GPULib setup (for the tools wire_panel and wire_screen) -list.Set( "WireNoGPULibScreenModels", "models/props_lab/monitor01b.mdl", true ) -list.Set( "WireNoGPULibScreenModels", "models/props/cs_office/tv_plasma.mdl", true ) -list.Set( "WireNoGPULibScreenModels", "models/props/cs_office/computer_monitor.mdl", true ) -list.Set( "WireNoGPULibScreenModels", "models/kobilica/wiremonitorbig.mdl", true ) -list.Set( "WireNoGPULibScreenModels", "models/kobilica/wiremonitorsmall.mdl", true ) +ModelPlug.ListAddModels("WireScreenModels", { + "models/props_lab/monitor01b.mdl", + "models/props_c17/tv_monitor01.mdl", + "models/blacknecro/tv_plasma_4_3.mdl", + "models/kobilica/wiremonitorbig.mdl", + "models/kobilica/wiremonitorsmall.mdl", + "models/cheeze/pcb/pcb0.mdl", + "models/cheeze/pcb/pcb1.mdl", + "models/cheeze/pcb/pcb2.mdl", + "models/cheeze/pcb/pcb3.mdl", + "models/cheeze/pcb/pcb4.mdl", + "models/cheeze/pcb/pcb6.mdl", + "models/cheeze/pcb/pcb5.mdl", + "models/cheeze/pcb/pcb7.mdl", + "models/cheeze/pcb/pcb8.mdl", + "models/cheeze/pcb2/pcb8.mdl", + "models/cheeze/pcb2/pcb1.mdl", + "models/cheeze/pcb2/pcb2.mdl", + "models/cheeze/pcb2/pcb3.mdl", + "models/cheeze/pcb2/pcb4.mdl", + "models/cheeze/pcb2/pcb5.mdl", + "models/cheeze/pcb2/pcb6.mdl", + "models/cheeze/pcb2/pcb7.mdl", + "models/props_lab/monitor01a.mdl", + "models/props_lab/monitor02.mdl", + "models/props_lab/workspace002.mdl", + "models/props_lab/reciever01b.mdl", + "models/props_c17/consolebox05a.mdl", + "models/props_lab/reciever01c.mdl", + "models/props_lab/reciever01d.mdl", + "models/props_c17/consolebox01a.mdl", + "models/props_combine/combine_interface001.mdl", + "models/props_c17/cashregister01a.mdl", + "models/props_combine/combine_monitorbay.mdl", + "models/props_lab/workspace001.mdl", + "models/props_lab/citizenradio.mdl", + "models/props_lab/securitybank.mdl", + "models/beer/wiremod/gate_e2.mdl", + "models/beer/wiremod/targetfinder.mdl", + "models/bull/gates/microcontroller1.mdl", + "models/bull/gates/microcontroller2.mdl", + "models/jaanus/wiretool/wiretool_gate.mdl", + "models/jaanus/wiretool/wiretool_controlchip.mdl", + "models/props_lab/keypad.mdl", + "models/weapons/w_c4_planted.mdl", + "models/weapons/w_toolgun.mdl", + "models/xqm/panel1x1.mdl", + "models/xqm/panel1x2.mdl", + "models/xqm/box5s.mdl", + "models/props_lab/miniteleport.mdl", + "models/props_lab/plotter.mdl", + "models/props_combine/combine_interface002.mdl", + "models/props_combine/combine_interface003.mdl", + "models/props_combine/combine_intmonitor003.mdl", + "models/props_combine/combine_intmonitor001.mdl", + "models/props_lab/workspace003.mdl", + "models/props_lab/workspace004.mdl", + "models/props_lab/servers.mdl", + "models/props_phx/rt_screen.mdl", + "models/props_wasteland/controlroom_monitor001b.mdl", + "models/hunter/plates/plate025.mdl", + "models/hunter/plates/plate025x025.mdl", + "models/hunter/plates/plate025x05.mdl", + "models/hunter/plates/plate05x075.mdl", + "models/hunter/plates/plate05x1.mdl", + "models/hunter/plates/plate1x1.mdl", + "models/hunter/plates/plate2x2.mdl", + "models/hunter/plates/plate4x4.mdl", + "models/hunter/plates/plate8x8.mdl", + "models/hunter/plates/plate05x05.mdl", + "models/hunter/blocks/cube1x1x1.mdl", + "models/props_lab/reciever01b.mdl", + "models/fasteroid/bull/lcd1.mdl", + "models/fasteroid/bull/lcd2.mdl", + "models/fasteroid/bull/lcd3.mdl", + "models/fasteroid/bull/lcd4.mdl", + "models/fasteroid/bull/lcd5.mdl", + "models/props_phx/construct/windows/window1x1.mdl" +}) + +--screens without a GPULib setup (for the tools wire_panel and wire_screen) +ModelPlug.ListAddModels("WireNoGPULibScreenModels", { + "models/props_lab/monitor01b.mdl", + "models/props/cs_office/tv_plasma.mdl", + "models/props/cs_office/computer_monitor.mdl", + "models/kobilica/wiremonitorbig.mdl", + "models/kobilica/wiremonitorsmall.mdl" +}) + --sounds -local WireSounds = { +ModelPlug.ListAddGenerics("WireSounds", { ["Warning"] = "common/warning.wav", ["Talk"] = "common/talk.wav", ["Button"] = "buttons/button15.wav", @@ -165,67 +187,18 @@ local WireSounds = { ["Turret Alert"] = "NPC_FloorTurret.Alert", ["Helicopter Rotor"] = "NPC_CombineGunship.RotorSound", ["Heartbeat"] = "k_lab.teleport_heartbeat", - ["Breathing"] = "k_lab.teleport_breathing", -} -for k,v in pairs(WireSounds) do - list.Set("WireSounds",k,{wire_soundemitter_sound=v}); -end - + ["Breathing"] = "k_lab.teleport_breathing" +}) --some extra wheels that wired wheels have -local wastelandwheels = { +ModelPlug.ListAddModels("WheelModels", { "models/props_wasteland/wheel01a.mdl", "models/props_wasteland/wheel02a.mdl", "models/props_wasteland/wheel03a.mdl", "models/props_wasteland/wheel03b.mdl" -} -for k,v in pairs(wastelandwheels) do - if file.Exists(v,"GAME") then - list.Set( "WheelModels", v, { wheel_rx = 90, wheel_ry = 0, wheel_rz = 90} ) - end -end +}, { wheel_rx = 90, wheel_ry = 0, wheel_rz = 90} ) - ---Cheeze's Buttons Pack -local CheezesButtons = { - "models/cheeze/buttons/button_arm.mdl", - "models/cheeze/buttons/button_clear.mdl", - "models/cheeze/buttons/button_enter.mdl", - "models/cheeze/buttons/button_fire.mdl", - "models/cheeze/buttons/button_minus.mdl", - "models/cheeze/buttons/button_muffin.mdl", - "models/cheeze/buttons/button_plus.mdl", - "models/cheeze/buttons/button_reset.mdl", - "models/cheeze/buttons/button_set.mdl", - "models/cheeze/buttons/button_start.mdl", - "models/cheeze/buttons/button_stop.mdl", -} -for k,v in ipairs(CheezesButtons) do - if file.Exists(v,"GAME") then - list.Set( "ButtonModels", v, {} ) - list.Set( "Wire_button_Models", v, true ) - end -end -local CheezesSmallButtons = { - "models/cheeze/buttons/button_0.mdl", - "models/cheeze/buttons/button_1.mdl", - "models/cheeze/buttons/button_2.mdl", - "models/cheeze/buttons/button_3.mdl", - "models/cheeze/buttons/button_4.mdl", - "models/cheeze/buttons/button_5.mdl", - "models/cheeze/buttons/button_6.mdl", - "models/cheeze/buttons/button_7.mdl", - "models/cheeze/buttons/button_8.mdl", - "models/cheeze/buttons/button_9.mdl", -} -for k,v in ipairs(CheezesSmallButtons) do - if file.Exists(v,"GAME") then - list.Set( "ButtonModels", v, {} ) - list.Set( "Wire_button_small_Models", v, true ) - end -end - -local Buttons = { +ModelPlug.ListAddModels("Wire_button_Models", { "models/props_citizen_tech/Firetrap_button01a.mdl", "models/props_c17/clock01.mdl", "models/dav0r/buttons/switch.mdl", @@ -279,14 +252,7 @@ local Buttons = { "models/cheeze/buttons2/7.mdl", "models/cheeze/buttons2/9.mdl", --animated buttons from here - "models/props_lab/freightelevatorbutton.mdl", - "models/props/switch001.mdl", "models/props_combine/combinebutton.mdl", - "models/props_mining/control_lever01.mdl", - "models/props_mining/freightelevatorbutton01.mdl", - "models/props_mining/freightelevatorbutton02.mdl", - "models/props_mining/switch01.mdl", - "models/props_mining/switch_updown01.mdl", "models/maxofs2d/button_01.mdl", "models/maxofs2d/button_02.mdl", "models/maxofs2d/button_03.mdl", @@ -295,56 +261,16 @@ local Buttons = { "models/maxofs2d/button_06.mdl", "models/bull/buttons/toggle_switch.mdl", "models/bull/buttons/rocker_switch.mdl", - "models/bull/buttons/key_switch.mdl", -} -for k,v in ipairs(Buttons) do - if file.Exists(v,"GAME") then - list.Set( "Wire_button_Models", v, true ) - end -end + "models/bull/buttons/key_switch.mdl" +}) ---Dynamic button materials -local WireDynamicButtonMaterials = { - ["No Material"] = "", - ["Clean"] = "bull/dynamic_button_clean", - ["0"] = "bull/dynamic_button_0", - ["1"] = "bull/dynamic_button_1", - ["2"] = "bull/dynamic_button_2", - ["3"] = "bull/dynamic_button_3", - ["4"] = "bull/dynamic_button_4", - ["5"] = "bull/dynamic_button_5", - ["6"] = "bull/dynamic_button_6", - ["7"] = "bull/dynamic_button_7", - ["8"] = "bull/dynamic_button_8", - ["9"] = "bull/dynamic_button_9" -} - -for k,v in pairs(WireDynamicButtonMaterials) do - list.Set("WireDynamicButtonMaterialsOn" ,k,{wire_dynamic_button_material_on =v}); - list.Set("WireDynamicButtonMaterialsOff",k,{wire_dynamic_button_material_off=v}); -end - ---Thrusters ---Jaanus Thruster Pack ---MsgN("\tJaanus' Thruster Pack") -local JaanusThrusters = { +ModelPlug.ListAddModels("ThrusterModels", { "models/props_junk/garbage_metalcan001a.mdl", "models/jaanus/thruster_flat.mdl", - "models/jaanus/thruster_invisi.mdl", - "models/jaanus/thruster_shoop.mdl", - "models/jaanus/thruster_smile.mdl", - "models/jaanus/thruster_muff.mdl", - "models/jaanus/thruster_rocket.mdl", - "models/jaanus/thruster_megaphn.mdl", - "models/jaanus/thruster_stun.mdl" -} -for k,v in pairs(JaanusThrusters) do - if file.Exists(v,"GAME") then - list.Set( "ThrusterModels", v, true ) - end -end + "models/fasteroid/computerfan.mdl" +}) -local explosivemodels = { +ModelPlug.ListAddModels("Wire_Explosive_Models", { "models/dav0r/tnt/tnt.mdl", "models/Combine_Helicopter/helicopter_bomb01.mdl", "models/jaanus/thruster_flat.mdl", @@ -382,39 +308,29 @@ local explosivemodels = { "models/props_junk/metal_paintcan001a.mdl", "models/props_junk/wood_crate001a.mdl", "models/props_junk/wood_crate002a.mdl", - "models/props_junk/wood_pallet001a.mdl", -} -for k,v in pairs(explosivemodels) do - if file.Exists(v,"GAME") then list.Set( "Wire_Explosive_Models", v, true ) end -end + "models/props_junk/wood_pallet001a.mdl" +}) -for k,v in pairs({ - "models/props_c17/canister01a.mdl", - "models/props_interiors/Furniture_Lamp01a.mdl", - "models/props_c17/oildrum001.mdl", - "models/props_phx/misc/smallcannon.mdl", - "models/props_c17/fountain_01.mdl" - }) do - if file.Exists(v,"GAME") then - list.Set( "Wire_Gimbal_Models", v, true ) - end -end +ModelPlug.ListAddModels("Wire_Gimbal_Models", { + "models/props_c17/canister01a.mdl", + "models/props_interiors/Furniture_Lamp01a.mdl", + "models/props_c17/oildrum001.mdl", + "models/props_phx/misc/smallcannon.mdl", + "models/props_c17/fountain_01.mdl", + "models/fasteroid/pointer.mdl" +}) -local valuemodels = { +ModelPlug.ListAddModels("Wire_Value_Models", { "models/kobilica/value.mdl", "models/bull/gates/resistor.mdl", "models/bull/gates/transistor1.mdl", "models/bull/gates/transistor2.mdl", "models/cheeze/wires/cpu.mdl", - "models/cheeze/wires/chip.mdl", "models/cheeze/wires/ram.mdl", - "models/cheeze/wires/nano_value.mdl", -- This guy doesn't have a normal sized one in that folder -} -for k,v in pairs(valuemodels) do - if file.Exists(v,"GAME") then list.Set( "Wire_Value_Models", v, true ) end -end + "models/cheeze/wires/nano_value.mdl" +}) -local teleportermodels = { +ModelPlug.ListAddModels("WireTeleporterModels", { "models/props_c17/utilityconducter001.mdl", "models/Combine_Helicopter/helicopter_bomb01.mdl", "models/props_combine/combine_interface001.mdl", @@ -428,310 +344,395 @@ local teleportermodels = { "models/props_lab/reciever01a.mdl", "models/props_lab/reciever01b.mdl", "models/props_lab/reciever01d.mdl", - "models/props_c17/pottery03a.mdl", "models/props_wasteland/laundry_washer003.mdl" -} -for k,v in pairs(teleportermodels) do - if file.Exists(v,"GAME") then list.Set( "WireTeleporterModels", v, true ) end -end +}) -local turretmodels = { +ModelPlug.ListAddModels("WireTurretModels", { "models/weapons/w_smg1.mdl", "models/weapons/w_smg_mp5.mdl", "models/weapons/w_smg_mac10.mdl", "models/weapons/w_rif_m4a1.mdl", "models/weapons/w_357.mdl", "models/weapons/w_shot_m3super90.mdl" -} -for k,v in pairs(turretmodels) do - if file.Exists(v,"GAME") then list.Set( "WireTurretModels", v, true ) end -end +}) -local satellitedish_models = { +ModelPlug.ListAddModels("Wire_satellitedish_Models", { "models/props_wasteland/prison_lamp001c.mdl", - "models/props_rooftop/satellitedish02.mdl", -- EP2, but its perfect + "models/props_rooftop/satellitedish02.mdl" +}) + +ModelPlug.ListAddModels("Wire_Light_Models", { + "models/jaanus/wiretool/wiretool_range.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/MaxOfS2D/light_tubular.mdl", + "models/fasteroid/led_mini.mdl" +, "models/fasteroid/led_nano.mdl" +}) + +ModelPlug.ListAddModels("Wire_Keyboard_Models",{ + "models/beer/wiremod/keyboard.mdl", + "models/jaanus/wiretool/wiretool_input.mdl", + "models/props_c17/computer01_keyboard.mdl" +}) + +ModelPlug.ListAddModels("Wire_Hydraulic_Models",{ + "models/beer/wiremod/hydraulic.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/xqm/hydcontrolbox.mdl" +}) + +ModelPlug.ListAddModels("Wire_GPS_Models",{ + "models/beer/wiremod/gps.mdl", + "models/jaanus/wiretool/wiretool_speed.mdl" +}) + +ModelPlug.ListAddModels("Wire_Numpad_Models", { + "models/beer/wiremod/numpad.mdl", + "models/jaanus/wiretool/wiretool_input.mdl", + "models/jaanus/wiretool/wiretool_output.mdl" +}) + +ModelPlug.ListAddModels("Wire_WaterSensor_Models", { + "models/beer/wiremod/watersensor.mdl", + "models/jaanus/wiretool/wiretool_range.mdl" +}) + +ModelPlug.ListAddModels("Wire_TargetFinder_Models", { + "models/beer/wiremod/targetfinder.mdl", + "models/props_lab/powerbox02d.mdl" +}) + +ModelPlug.ListAddModels("Wire_Forcer_Models", { + "models/jaanus/wiretool/wiretool_grabber_forcer.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/fasteroid/computerfan.mdl" +}) + +ModelPlug.ListAddModels("Wire_Misc_Tools_Models", { + "models/jaanus/wiretool/wiretool_range.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/props_lab/powerbox02d.mdl" +}) + +--Laser Tools (Ranger, User, etc) +ModelPlug.ListAddModels("Wire_Laser_Tools_Models", { + "models/jaanus/wiretool/wiretool_range.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/jaanus/wiretool/wiretool_beamcaster.mdl", + "models/fasteroid/led_mini.mdl" +}) + +ModelPlug.ListAddModels("Wire_button_small_Models", { + "models/cheeze/buttons2/0_small.mdl", + "models/cheeze/buttons2/1_small.mdl", + "models/cheeze/buttons2/2_small.mdl", + "models/cheeze/buttons2/3_small.mdl", + "models/cheeze/buttons2/4_small.mdl", + "models/cheeze/buttons2/5_small.mdl", + "models/cheeze/buttons2/6_small.mdl", + "models/cheeze/buttons2/7_small.mdl", + "models/cheeze/buttons2/8_small.mdl", + "models/cheeze/buttons2/9_small.mdl", + "models/cheeze/buttons2/activate_small.mdl", + "models/cheeze/buttons2/aim_small.mdl", + "models/cheeze/buttons2/air_small.mdl", + "models/cheeze/buttons2/alert_small.mdl", + "models/cheeze/buttons2/arm_small.mdl", + "models/cheeze/buttons2/cake_small.mdl", + "models/cheeze/buttons2/charge_small.mdl", + "models/cheeze/buttons2/clear_small.mdl", + "models/cheeze/buttons2/clock_small.mdl", + "models/cheeze/buttons2/compile_small.mdl", + "models/cheeze/buttons2/coolant_small.mdl", + "models/cheeze/buttons2/deactivate_small.mdl", + "models/cheeze/buttons2/divide_small.mdl", + "models/cheeze/buttons2/down_small.mdl", + "models/cheeze/buttons2/easy_small.mdl", + "models/cheeze/buttons2/energy_small.mdl", + "models/cheeze/buttons2/enter_small.mdl", + "models/cheeze/buttons2/equals_small.mdl", + "models/cheeze/buttons2/fire_small.mdl", + "models/cheeze/buttons2/go_small.mdl", + "models/cheeze/buttons2/left_small.mdl", + "models/cheeze/buttons2/minus_small.mdl", + "models/cheeze/buttons2/muffin_small.mdl", + "models/cheeze/buttons2/multiply_small.mdl", + "models/cheeze/buttons2/overide_small.mdl", + "models/cheeze/buttons2/plus_small.mdl", + "models/cheeze/buttons2/power_small.mdl", + "models/cheeze/buttons2/pwr_blue_small.mdl", + "models/cheeze/buttons2/pwr_green_small.mdl", + "models/cheeze/buttons2/pwr_red_small.mdl", + "models/cheeze/buttons2/reset_small.mdl", + "models/cheeze/buttons2/right_small.mdl", + "models/cheeze/buttons2/set_small.mdl", + "models/cheeze/buttons2/start_small.mdl", + "models/cheeze/buttons2/stop_small.mdl", + "models/cheeze/buttons2/test_small.mdl", + "models/cheeze/buttons2/toggle_small.mdl", + "models/cheeze/buttons2/up_small.mdl" +}) + +ModelPlug.ListAddModels("Wire_chip_Models", { + "models/bull/gates/capacitor.mdl", + "models/bull/gates/capacitor_mini.mdl", + "models/bull/gates/capacitor_nano.mdl", + "models/bull/gates/logic.mdl", + "models/bull/gates/logic_mini.mdl", + "models/bull/gates/logic_nano.mdl", + "models/bull/gates/microcontroller1.mdl", + "models/bull/gates/microcontroller1_mini.mdl", + "models/bull/gates/microcontroller1_nano.mdl", + "models/bull/gates/microcontroller2.mdl", + "models/bull/gates/microcontroller2_mini.mdl", + "models/bull/gates/microcontroller2_nano.mdl", + "models/bull/gates/processor.mdl", + "models/bull/gates/processor_mini.mdl", + "models/bull/gates/processor_nano.mdl", + "models/bull/gates/resistor.mdl", + "models/bull/gates/resistor_mini.mdl", + "models/bull/gates/resistor_nano.mdl", + "models/bull/gates/transistor1.mdl", + "models/bull/gates/transistor1_mini.mdl", + "models/bull/gates/transistor1_nano.mdl", + "models/bull/gates/transistor2.mdl", + "models/bull/gates/transistor2_mini.mdl", + "models/bull/gates/transistor2_nano.mdl", + "models/cheeze/wires/amd_test.mdl", + "models/cheeze/wires/cpu.mdl", + "models/cheeze/wires/cpu2.mdl", + "models/cheeze/wires/mini_chip.mdl", + "models/cheeze/wires/mini_cpu.mdl", + "models/cheeze/wires/nano_chip.mdl", + "models/cheeze/wires/nano_compare.mdl", + "models/cheeze/wires/nano_logic.mdl", + "models/cheeze/wires/nano_math.mdl", + "models/cheeze/wires/nano_memory.mdl", + "models/cheeze/wires/nano_select.mdl", + "models/cheeze/wires/nano_timer.mdl", + "models/cheeze/wires/nano_trig.mdl", + "models/cheeze/wires/ram.mdl", + "models/cyborgmatt/capacitor_large.mdl", + "models/cyborgmatt/capacitor_medium.mdl", + "models/cyborgmatt/capacitor_small.mdl", + "models/jaanus/wiretool/wiretool_controlchip.mdl", + "models/jaanus/wiretool/wiretool_gate.mdl", + "models/kobilica/capacatitor.mdl", + "models/kobilica/lowpolygate.mdl", + "models/kobilica/transistor.mdl", + "models/kobilica/transistorsmall.mdl", + "models/fasteroid/inductor.mdl" +}) + +ModelPlug.ListAddModels("Wire_detonator_Models",{ + "models/jaanus/wiretool/wiretool_detonator.mdl", + "models/props_combine/breenclock.mdl" +}) + +ModelPlug.ListAddModels("Wire_dynamic_button_Models", { + "models/bull/dynamicbutton.mdl", + "models/bull/dynamicbuttonflat.mdl", + "models/bull/dynamicbuttonmedium.mdl", + "models/maxofs2d/button_05.mdl" +}) + +ModelPlug.ListAddModels("Wire_dynamic_button_small_Models", { + "models/bull/dynamicbutton_small.mdl", + "models/bull/dynamicbuttonflat_small.mdl", + "models/bull/dynamicbuttonmedium_small.mdl" +}) + + +ModelPlug.ListAddModels("Wire_expr2_Models", { + "models/expression 2/cpu_controller.mdl", + "models/expression 2/cpu_expression.mdl", + "models/expression 2/cpu_microchip.mdl" +}) + +ModelPlug.ListAddModels("Wire_gate_Models", { + "models/bull/gates/capacitor.mdl", + "models/bull/gates/capacitor_mini.mdl", + "models/bull/gates/capacitor_nano.mdl", + "models/bull/gates/logic.mdl", + "models/bull/gates/logic_mini.mdl", + "models/bull/gates/logic_nano.mdl", + "models/bull/gates/microcontroller1.mdl", + "models/bull/gates/microcontroller1_mini.mdl", + "models/bull/gates/microcontroller1_nano.mdl", + "models/bull/gates/microcontroller2.mdl", + "models/bull/gates/microcontroller2_mini.mdl", + "models/bull/gates/microcontroller2_nano.mdl", + "models/bull/gates/processor.mdl", + "models/bull/gates/processor_mini.mdl", + "models/bull/gates/processor_nano.mdl", + "models/bull/gates/resistor.mdl", + "models/bull/gates/resistor_mini.mdl", + "models/bull/gates/resistor_nano.mdl", + "models/bull/gates/transistor1.mdl", + "models/bull/gates/transistor1_mini.mdl", + "models/bull/gates/transistor1_nano.mdl", + "models/bull/gates/transistor2.mdl", + "models/bull/gates/transistor2_mini.mdl", + "models/bull/gates/transistor2_nano.mdl", + "models/cheeze/wires/amd_test.mdl", + "models/cheeze/wires/cpu.mdl", + "models/cheeze/wires/cpu2.mdl", + "models/cheeze/wires/mini_chip.mdl", + "models/cheeze/wires/mini_cpu.mdl", + "models/cheeze/wires/nano_chip.mdl", + "models/cheeze/wires/nano_compare.mdl", + "models/cheeze/wires/nano_logic.mdl", + "models/cheeze/wires/nano_math.mdl", + "models/cheeze/wires/nano_memory.mdl", + "models/cheeze/wires/nano_select.mdl", + "models/cheeze/wires/nano_timer.mdl", + "models/cheeze/wires/nano_trig.mdl", + "models/cheeze/wires/ram.mdl", + "models/cyborgmatt/capacitor_large.mdl", + "models/cyborgmatt/capacitor_medium.mdl", + "models/cyborgmatt/capacitor_small.mdl", + "models/jaanus/wiretool/wiretool_controlchip.mdl", + "models/jaanus/wiretool/wiretool_gate.mdl", + "models/kobilica/capacatitor.mdl", + "models/kobilica/lowpolygate.mdl", + "models/kobilica/transistor.mdl", + "models/kobilica/transistorsmall.mdl", + "models/fasteroid/inductor.mdl" +}) + +ModelPlug.ListAddModels("Wire_gyroscope_Models",{ + "models/bull/various/gyroscope.mdl", + "models/cheeze/wires/gyroscope.mdl" +}) + +ModelPlug.ListAddModels("Wire_indicator_Models", { + "models/jaanus/wiretool/wiretool_pixel_lrg.mdl", + "models/jaanus/wiretool/wiretool_pixel_med.mdl", + "models/jaanus/wiretool/wiretool_pixel_sml.mdl", + "models/jaanus/wiretool/wiretool_range.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/led.mdl", + "models/led2.mdl", + "models/props_borealis/bluebarrel001.mdl", + "models/props_c17/clock01.mdl", + "models/props_c17/gravestone004a.mdl", + "models/props_junk/PopCan01a.mdl", + "models/props_junk/TrafficCone001a.mdl", + "models/props_trainstation/trainstation_clock001.mdl", + "models/segment.mdl", + "models/segment2.mdl", + "models/fasteroid/led_mini.mdl" +, "models/fasteroid/led_nano.mdl" +}) + +ModelPlug.ListAddModels("Wire_pixel_Models", { + "models/jaanus/wiretool/wiretool_pixel_lrg.mdl", + "models/jaanus/wiretool/wiretool_pixel_med.mdl", + "models/jaanus/wiretool/wiretool_pixel_sml.mdl", + "models/jaanus/wiretool/wiretool_range.mdl", + "models/jaanus/wiretool/wiretool_siren.mdl", + "models/led.mdl", + "models/led2.mdl", + "models/props_junk/PopCan01a.mdl", + "models/segment.mdl", + "models/segment2.mdl", + "models/fasteroid/led_mini.mdl" +, "models/fasteroid/led_nano.mdl" +}) + +ModelPlug.ListAddModels("Wire_radio_Models", { + "models/cheeze/wires/router.mdl", + "models/cheeze/wires/wireless_card.mdl", + "models/props_lab/binderblue.mdl", + "models/props_lab/reciever01a.mdl", + "models/props_lab/reciever01b.mdl", + "models/props_lab/reciever01c.mdl" +}) + +ModelPlug.ListAddModels("Wire_speaker_Models",{ + "models/bull/various/speaker.mdl", + "models/bull/various/subwoofer.mdl", + "models/cheeze/wires/speaker.mdl", + "models/killa-x/speakers/speaker_medium.mdl", + "models/killa-x/speakers/speaker_small.mdl", + "models/props_junk/garbage_metalcan002a.mdl", + "models/props_junk/garbage_metalcan002a.mdl" +}) + +ModelPlug.ListAddModels("Wire_weight_Models", { + "models/props_interiors/pot01a.mdl", + "models/props_lab/huladoll.mdl" +}) + +ModelPlug.ListAddModels("Wire_InteractiveProp_Models", { + "models/props_lab/reciever01a.mdl", + "models/props_lab/reciever01b.mdl", + "models/props_lab/keypad.mdl", + "models/beer/wiremod/numpad.mdl", + "models/props_interiors/bathtub01a.mdl", + "models/props_c17/furnituresink001a.mdl", + "models/props_interiors/sinkkitchen01a.mdl", + "models/props_wasteland/prison_sink001a.mdl", + "models/props_lab/citizenradio.mdl", + "models/props_c17/furniturewashingmachine001a.mdl", + "models/props_lab/plotter.mdl", + "models/props_interiors/vendingmachinesoda01a.mdl", + "models/props_lab/reciever01c.mdl", + "models/props_trainstation/payphone001a.mdl" +}) + +--Dynamic button materials +local WireDynamicButtonMaterials = { + ["No Material"] = "", + ["Clean"] = "bull/dynamic_button_clean", + ["0"] = "bull/dynamic_button_0", + ["1"] = "bull/dynamic_button_1", + ["2"] = "bull/dynamic_button_2", + ["3"] = "bull/dynamic_button_3", + ["4"] = "bull/dynamic_button_4", + ["5"] = "bull/dynamic_button_5", + ["6"] = "bull/dynamic_button_6", + ["7"] = "bull/dynamic_button_7", + ["8"] = "bull/dynamic_button_8", + ["9"] = "bull/dynamic_button_9" } -for k,v in pairs(satellitedish_models) do - if file.Exists(v,"GAME") then - list.Set( "Wire_satellitedish_Models", v, true ) - end +for k,v in pairs(WireDynamicButtonMaterials) do + list.Set("WireDynamicButtonMaterialsOn" ,k,{wire_dynamic_button_material_on =v}); + list.Set("WireDynamicButtonMaterialsOff",k,{wire_dynamic_button_material_off=v}); end ---Beer's models ---MsgN("\tBeer's Model pack") - ---Keyboard -list.Set( "Wire_Keyboard_Models", "models/beer/wiremod/keyboard.mdl", true ) -list.Set( "Wire_Keyboard_Models", "models/jaanus/wiretool/wiretool_input.mdl", true ) -list.Set( "Wire_Keyboard_Models", "models/props/kb_mouse/keyboard.mdl", true ) -list.Set( "Wire_Keyboard_Models", "models/props_c17/computer01_keyboard.mdl", true ) - -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/reciever01a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/reciever01b.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/keypad.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/beer/wiremod/numpad.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_interiors/bathtub01a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_c17/furnituresink001a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_interiors/sinkkitchen01a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_wasteland/prison_sink001a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/citizenradio.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_c17/furniturewashingmachine001a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/plotter.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_interiors/vendingmachinesoda01a.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_lab/reciever01c.mdl", true ) -list.Set( "Wire_InteractiveProp_Models", "models/props_trainstation/payphone001a.mdl", true ) - ---Hydraulic -list.Set( "Wire_Hydraulic_Models", "models/beer/wiremod/hydraulic.mdl", true ) -list.Set( "Wire_Hydraulic_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true ) - ---GPS -list.Set( "Wire_GPS_Models", "models/beer/wiremod/gps.mdl", true ) -list.Set( "Wire_GPS_Models", "models/jaanus/wiretool/wiretool_speed.mdl", true ) - ---Numpad -list.Set( "Wire_Numpad_Models", "models/beer/wiremod/numpad.mdl", true ) -list.Set( "Wire_Numpad_Models", "models/jaanus/wiretool/wiretool_input.mdl", true ) -list.Set( "Wire_Numpad_Models", "models/jaanus/wiretool/wiretool_output.mdl", true ) - ---Water Sensor -list.Set( "Wire_WaterSensor_Models", "models/beer/wiremod/watersensor.mdl", true ) -list.Set( "Wire_WaterSensor_Models", "models/jaanus/wiretool/wiretool_range.mdl", true ) - ---Target Finder -list.Set( "Wire_TargetFinder_Models", "models/beer/wiremod/targetfinder.mdl", true ) -list.Set( "Wire_TargetFinder_Models", "models/props_lab/powerbox02d.mdl", true ) - -list.Set( "Wire_Forcer_Models", "models/jaanus/wiretool/wiretool_grabber_forcer.mdl", true ) -list.Set( "Wire_Forcer_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true ) - ---Misc Tools (Entity Marker, Eye Pod, GpuLib Switcher, ect...) -list.Set( "Wire_Misc_Tools_Models", "models/jaanus/wiretool/wiretool_range.mdl", true ) -list.Set( "Wire_Misc_Tools_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true ) -list.Set( "Wire_Misc_Tools_Models", "models/props_lab/powerbox02d.mdl", true ) +--Cheeze's Buttons Pack +local CheezesButtons = { + "models/cheeze/buttons/button_arm.mdl", + "models/cheeze/buttons/button_clear.mdl", + "models/cheeze/buttons/button_enter.mdl", + "models/cheeze/buttons/button_fire.mdl", + "models/cheeze/buttons/button_minus.mdl", + "models/cheeze/buttons/button_muffin.mdl", + "models/cheeze/buttons/button_plus.mdl", + "models/cheeze/buttons/button_reset.mdl", + "models/cheeze/buttons/button_set.mdl", + "models/cheeze/buttons/button_start.mdl", + "models/cheeze/buttons/button_stop.mdl", +} +for k,v in ipairs(CheezesButtons) do + list.Set( "ButtonModels", v, {} ) + list.Set( "Wire_button_Models", v, true ) +end ---Laser Tools (Ranger, User, etc) -list.Set( "Wire_Laser_Tools_Models", "models/jaanus/wiretool/wiretool_range.mdl", true ) -list.Set( "Wire_Laser_Tools_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true ) -list.Set( "Wire_Laser_Tools_Models", "models/jaanus/wiretool/wiretool_beamcaster.mdl", true ) - -list.Set( "Wire_Socket_Models", "models/props_lab/tpplugholder_single.mdl", true ) -list.Set( "Wire_Socket_Models", "models/bull/various/usb_socket.mdl", true ) -list.Set( "Wire_Socket_Models", "models/hammy/pci_slot.mdl", true ) -list.Set( "Wire_Socket_Models", "models/wingf0x/isasocket.mdl", true ) -list.Set( "Wire_Socket_Models", "models/wingf0x/altisasocket.mdl", true ) -list.Set( "Wire_Socket_Models", "models/wingf0x/ethernetsocket.mdl", true ) -list.Set( "Wire_Socket_Models", "models/wingf0x/hdmisocket.mdl", true ) - --- Converted from WireModelPacks/wire_model_pack_1plus.txt -list.Set("Wire_radio_Models", "models/props_lab/reciever01b.mdl", true) -list.Set("Wire_pixel_Models", "models/jaanus/wiretool/wiretool_pixel_med.mdl", true) -list.Set("Wire_indicator_Models", "models/jaanus/wiretool/wiretool_pixel_med.mdl", true) -list.Set("Wire_waypoint_Models", "models/jaanus/wiretool/wiretool_waypoint.mdl", true) -list.Set("Wire_pixel_Models", "models/jaanus/wiretool/wiretool_pixel_sml.mdl", true) -list.Set("Wire_indicator_Models", "models/jaanus/wiretool/wiretool_pixel_sml.mdl", true) -list.Set("Wire_radio_Models", "models/props_lab/reciever01a.mdl", true) -list.Set("Wire_gate_Models", "models/jaanus/wiretool/wiretool_controlchip.mdl", true) -list.Set("Wire_chip_Models", "models/jaanus/wiretool/wiretool_controlchip.mdl", true) -list.Set("Wire_control_Models", "models/jaanus/wiretool/wiretool_controlchip.mdl", true) -list.Set("Wire_detonator_Models", "models/jaanus/wiretool/wiretool_detonator.mdl", true) -list.Set("Wire_beamcasting_Models", "models/jaanus/wiretool/wiretool_beamcaster.mdl", true) -list.Set("Wire_radio_Models", "models/props_lab/reciever01c.mdl", true) -list.Set("Wire_pixel_Models", "models/jaanus/wiretool/wiretool_pixel_lrg.mdl", true) -list.Set("Wire_indicator_Models", "models/jaanus/wiretool/wiretool_pixel_lrg.mdl", true) - --- Converted from WireModelPacks/wire_model_pack_1.txt -list.Set("Wire_gate_Models", "models/cheeze/wires/amd_test.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/amd_test.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/mini_cpu.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/mini_cpu.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/ram.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/ram.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_logic.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_logic.mdl", true) -list.Set("Wire_gate_Models", "models/kobilica/transistorsmall.mdl", true) -list.Set("Wire_chip_Models", "models/kobilica/transistorsmall.mdl", true) -list.Set("Wire_gate_Models", "models/kobilica/transistor.mdl", true) -list.Set("Wire_chip_Models", "models/kobilica/transistor.mdl", true) -list.Set("Wire_radio_Models", "models/cheeze/wires/wireless_card.mdl", true) -list.Set("Wire_gate_Models", "models/cyborgmatt/capacitor_large.mdl", true) -list.Set("Wire_chip_Models", "models/cyborgmatt/capacitor_large.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_memory.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_memory.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_trig.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_trig.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_chip.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_chip.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/cpu2.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/cpu2.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_math.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_math.mdl", true) -list.Set("Wire_radio_Models", "models/cheeze/wires/router.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_select.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_select.mdl", true) -list.Set("Wire_gate_Models", "models/cyborgmatt/capacitor_medium.mdl", true) -list.Set("Wire_chip_Models", "models/cyborgmatt/capacitor_medium.mdl", true) -list.Set("Wire_gate_Models", "models/cyborgmatt/capacitor_small.mdl", true) -list.Set("Wire_chip_Models", "models/cyborgmatt/capacitor_small.mdl", true) -list.Set("Wire_speaker_Models", "models/killa-x/speakers/speaker_small.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_compare.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_compare.mdl", true) -list.Set("Wire_speaker_Models", "models/killa-x/speakers/speaker_medium.mdl", true) -list.Set("Wire_speaker_Models", "models/props_junk/garbage_metalcan002a.mdl", true) -list.Set("Wire_gate_Models", "models/kobilica/capacatitor.mdl", true) -list.Set("Wire_chip_Models", "models/kobilica/capacatitor.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/cpu.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/cpu.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/mini_chip.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/mini_chip.mdl", true) -list.Set("Wire_gate_Models", "models/kobilica/lowpolygate.mdl", true) -list.Set("Wire_chip_Models", "models/kobilica/lowpolygate.mdl", true) -list.Set("Wire_gate_Models", "models/cheeze/wires/nano_timer.mdl", true) -list.Set("Wire_chip_Models", "models/cheeze/wires/nano_timer.mdl", true) - --- Converted from WireModelPacks/expression2.txt -list.Set("Wire_expr2_Models", "models/expression 2/cpu_controller.mdl", true) -list.Set("Wire_expr2_Models", "models/expression 2/cpu_microchip.mdl", true) -list.Set("Wire_expr2_Models", "models/expression 2/cpu_expression.mdl", true) - --- Converted from WireModelPacks/default.txt -list.Set("Wire_pixel_Models", "models/segment2.mdl", true) -list.Set("Wire_indicator_Models", "models/segment2.mdl", true) -list.Set("Wire_indicator_Models", "models/props_trainstation/trainstation_clock001.mdl", true) -list.Set("Wire_pixel_Models", "models/segment.mdl", true) -list.Set("Wire_indicator_Models", "models/segment.mdl", true) -list.Set("Wire_gyroscope_Models", "models/bull/various/gyroscope.mdl", true) -list.Set("Wire_weight_Models", "models/props_interiors/pot01a.mdl", true) -list.Set("Wire_pixel_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true) -list.Set("Wire_indicator_Models", "models/jaanus/wiretool/wiretool_siren.mdl", true) -list.Set("Wire_indicator_Models", "models/props_borealis/bluebarrel001.mdl", true) -list.Set("Wire_indicator_Models", "models/props_junk/TrafficCone001a.mdl", true) -list.Set("Wire_speaker_Models", "models/props_junk/garbage_metalcan002a.mdl", true) -list.Set("Wire_pixel_Models", "models/led2.mdl", true) -list.Set("Wire_indicator_Models", "models/led2.mdl", true) -list.Set("Wire_weight_Models", "models/props_lab/huladoll.mdl", true) -list.Set("Wire_radio_Models", "models/props_lab/binderblue.mdl", true) -list.Set("Wire_pixel_Models", "models/led.mdl", true) -list.Set("Wire_indicator_Models", "models/led.mdl", true) -list.Set("Wire_gyroscope_Models", "models/cheeze/wires/gyroscope.mdl", true) -list.Set("Wire_pixel_Models", "models/jaanus/wiretool/wiretool_range.mdl", true) -list.Set("Wire_indicator_Models", "models/jaanus/wiretool/wiretool_range.mdl", true) -list.Set("Wire_pixel_Models", "models/props_junk/PopCan01a.mdl", true) -list.Set("Wire_indicator_Models", "models/props_junk/PopCan01a.mdl", true) -list.Set("Wire_gate_Models", "models/jaanus/wiretool/wiretool_gate.mdl", true) -list.Set("Wire_chip_Models", "models/jaanus/wiretool/wiretool_gate.mdl", true) -list.Set("Wire_detonator_Models", "models/props_combine/breenclock.mdl", true) -list.Set("Wire_speaker_Models", "models/cheeze/wires/speaker.mdl", true) -list.Set("Wire_indicator_Models", "models/props_c17/clock01.mdl", true) -list.Set("Wire_indicator_Models", "models/props_c17/gravestone004a.mdl", true) - --- Converted from WireModelPacks/cheeze_buttons2.txt -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/compile_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/arm_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/fire_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/left_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/clear_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/aim_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/1_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/up_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/plus_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/stop_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/minus_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/6_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/coolant_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/power_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/toggle_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/activate_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/overide_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/pwr_red_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/go_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/pwr_blue_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/test_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/equals_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/energy_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/divide_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/clock_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/charge_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/alert_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/enter_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/5_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/2_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/deactivate_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/7_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/0_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/cake_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/reset_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/multiply_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/down_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/pwr_green_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/3_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/4_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/set_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/start_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/right_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/easy_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/8_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/muffin_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/air_small.mdl", true) -list.Set("Wire_button_small_Models", "models/cheeze/buttons2/9_small.mdl", true) - --- Converted from WireModelPacks/bull_modelpack.txt -list.Set("Wire_gate_Models", "models/bull/gates/processor.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/processor.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/resistor_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/resistor_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller2_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller2_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor2_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor2_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor1.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor1.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/logic_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/logic_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/resistor_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/resistor_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller2.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller2.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/logic.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/logic.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/processor_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/processor_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller1_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller1_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/capacitor_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/capacitor_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/capacitor_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/capacitor_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor1_nano.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor1_nano.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller2_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller2_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller1_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller1_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/resistor.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/resistor.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor2.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor2.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/capacitor.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/capacitor.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor1_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor1_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/microcontroller1.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/microcontroller1.mdl", true) -list.Set("Wire_speaker_Models", "models/bull/various/speaker.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/logic_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/logic_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/processor_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/processor_mini.mdl", true) -list.Set("Wire_gate_Models", "models/bull/gates/transistor2_mini.mdl", true) -list.Set("Wire_chip_Models", "models/bull/gates/transistor2_mini.mdl", true) -list.Set("Wire_speaker_Models", "models/bull/various/subwoofer.mdl", true) - --- Converted from WireModelPacks/bull_buttons.txt -list.Set("Wire_dynamic_button_Models", "models/bull/dynamicbuttonmedium.mdl", true) -list.Set("Wire_dynamic_button_Models", "models/bull/dynamicbuttonflat.mdl", true) -list.Set("Wire_dynamic_button_Models", "models/bull/dynamicbutton.mdl", true) -list.Set("Wire_dynamic_button_small_Models", "models/bull/dynamicbuttonmedium_small.mdl", true) -list.Set("Wire_dynamic_button_small_Models", "models/bull/dynamicbutton_small.mdl", true) -list.Set("Wire_dynamic_button_small_Models", "models/bull/dynamicbuttonflat_small.mdl", true) -list.Set("Wire_dynamic_button_Models", "models/maxofs2d/button_05.mdl", true) +local CheezesSmallButtons = { + "models/cheeze/buttons/button_0.mdl", + "models/cheeze/buttons/button_1.mdl", + "models/cheeze/buttons/button_2.mdl", + "models/cheeze/buttons/button_3.mdl", + "models/cheeze/buttons/button_4.mdl", + "models/cheeze/buttons/button_5.mdl", + "models/cheeze/buttons/button_6.mdl", + "models/cheeze/buttons/button_7.mdl", + "models/cheeze/buttons/button_8.mdl", + "models/cheeze/buttons/button_9.mdl", +} +for k,v in ipairs(CheezesSmallButtons) do + list.Set( "ButtonModels", v, {} ) + list.Set( "Wire_button_small_Models", v, true ) +end \ No newline at end of file diff --git a/lua/wire/sh_modelplug.lua b/lua/wire/sh_modelplug.lua new file mode 100644 index 0000000000..cbd6f5c373 --- /dev/null +++ b/lua/wire/sh_modelplug.lua @@ -0,0 +1,71 @@ + +ModelPlug = ModelPlug or {} +local list_set = list.Set + +function ModelPlug.ListAddModels( listName, models, value ) + value = value or true + for k, v in ipairs(models) do + list_set(listName, v, value) + end +end + +function ModelPlug.ListAddGenerics( listName, tbl ) + for k, v in pairs(tbl) do + list_set(listName, k, v) + end +end + +ModelPlug.ListAddGenerics("Wire_Socket_Models", { + ["models/bull/various/usb_socket.mdl"] = { + ang = Angle(0, 0, 0), + plug = "models/bull/various/usb_stick.mdl", + pos = Vector(8, 0, 0) + }, + ["models/hammy/pci_slot.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/hammy/pci_card.mdl", + pos = Vector(0, 0, 0) + }, + ["models/props_lab/tpplugholder_single.mdl"] = { + ang = Angle(0, 0, 0), + plug = "models/props_lab/tpplug.mdl", + pos = Vector(5, 13, 10) + }, + ["models/wingf0x/altisasocket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/wingf0x/isaplug.mdl", + pos = Vector(0, 0, 2.6) + }, + ["models/wingf0x/ethernetsocket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/wingf0x/ethernetplug.mdl", + pos = Vector(0, 0, 0) + }, + ["models/wingf0x/hdmisocket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/wingf0x/hdmiplug.mdl", + pos = Vector(0, 0, 0) + }, + ["models/wingf0x/isasocket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/wingf0x/isaplug.mdl", + pos = Vector(0, 0, 0) + }, + ["models/fasteroid/plugs/usb_c_socket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/fasteroid/plugs/usb_c_plug.mdl", + pos = Vector(0, 0, 0) + }, + ["models/fasteroid/plugs/sd_card_socket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/fasteroid/plugs/sd_card.mdl", + pos = Vector(0, 0, 0) + }, + ["models/fasteroid/plugs/microusb_socket.mdl"] = { + ang = Angle(90, 0, 0), + plug = "models/fasteroid/plugs/microusb_plug.mdl", + pos = Vector(0, 0, 0) + }, +}) + +hook.Run("ModelPlugLuaRefresh") \ No newline at end of file diff --git a/lua/wire/stools/dataplug.lua b/lua/wire/stools/dataplug.lua index 1425273b38..babc6d6a6a 100644 --- a/lua/wire/stools/dataplug.lua +++ b/lua/wire/stools/dataplug.lua @@ -19,8 +19,8 @@ end WireToolSetup.BaseLang() if (SERVER) then - CreateConVar('sbox_maxwire_dataplugs', 20) - CreateConVar('sbox_maxwire_datasockets', 20) + CreateConVar("sbox_maxwire_dataplugs", 20) + CreateConVar("sbox_maxwire_datasockets", 20) end TOOL.ClientConVar["model"] = "models/hammy/pci_slot.mdl" @@ -31,38 +31,14 @@ function TOOL:GetConVars() return self:GetClientNumber("weldforce"), math.Clamp(self:GetClientNumber("attachrange"), 1, 100) end -local SocketModels = { - ["models/props_lab/tpplugholder_single.mdl"] = "models/props_lab/tpplug.mdl", - ["models/bull/various/usb_socket.mdl"] = "models/bull/various/usb_stick.mdl", - ["models/hammy/pci_slot.mdl"] = "models/hammy/pci_card.mdl", - ["models/wingf0x/isasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/altisasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/ethernetsocket.mdl"] = "models/wingf0x/ethernetplug.mdl", - ["models/wingf0x/hdmisocket.mdl"] = "models/wingf0x/hdmiplug.mdl" -} - -local AngleOffset = { - ["models/props_lab/tpplugholder_single.mdl"] = Angle(0,0,0), - ["models/props_lab/tpplug.mdl"] = Angle(0,0,0), - ["models/bull/various/usb_socket.mdl"] = Angle(0,0,0), - ["models/bull/various/usb_stick.mdl"] = Angle(0,0,0), - ["models/hammy/pci_slot.mdl"] = Angle(90,0,0), - ["models/hammy/pci_card.mdl"] = Angle(90,0,0), - ["models/wingf0x/isasocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/isaplug.mdl"] = Angle(90,0,0), - ["models/wingf0x/altisasocket.mdl"] = Angle(90,00,0), - ["models/wingf0x/ethernetsocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/ethernetplug.mdl"] = Angle(90,0,0), - ["models/wingf0x/hdmisocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/hdmiplug.mdl"] = Angle(90,0,0) -} +local SocketData = list.Get("Wire_Socket_Models") cleanup.Register( "wire_dataplugs" ) function TOOL:GetModel() local model = self:GetClientInfo( "model" ) - if (not util.IsValidModel( model ) or not util.IsValidProp( model ) or not SocketModels[ model ]) then return "models/props_lab/tpplugholder_single.mdl", "models/props_lab/tpplug.mdl" end - return model, SocketModels[ model ] + if (not util.IsValidModel( model ) or not util.IsValidProp( model ) or not SocketData[ model ]) then return "models/props_lab/tpplugholder_single.mdl", "models/props_lab/tpplug.mdl" end + return model, SocketData[ model ].plug end -- Create socket @@ -102,7 +78,7 @@ end function TOOL:GetGhostAngle(trace) local socketmodel = self:GetModel() - return trace.HitNormal:Angle() + (AngleOffset[socketmodel] or Angle(0,0,0)) - Angle(90,0,0) + return trace.HitNormal:Angle() + (SocketData[socketmodel].ang or Angle(0,0,0)) - Angle(90,0,0) end function TOOL.BuildCPanel(panel) diff --git a/lua/wire/stools/light.lua b/lua/wire/stools/light.lua index 314afa2f88..b1058eaefe 100644 --- a/lua/wire/stools/light.lua +++ b/lua/wire/stools/light.lua @@ -109,8 +109,7 @@ TOOL.ClientConVar = { } function TOOL.BuildCPanel(panel) - local Models = list.Get( "Wire_Misc_Tools_Models" ) -- default wire models - Models["models/MaxOfS2D/light_tubular.mdl"] = true -- GMod light + local Models = list.Get( "Wire_Light_Models" ) WireDermaExts.ModelSelect(panel, "wire_light_model", Models, 1) panel:CheckBox("#WireLightTool_directional", "wire_light_directional") diff --git a/lua/wire/stools/motor.lua b/lua/wire/stools/motor.lua index a1d51825fd..eb5f38942b 100644 --- a/lua/wire/stools/motor.lua +++ b/lua/wire/stools/motor.lua @@ -204,7 +204,8 @@ TOOL.ClientConVar = { function TOOL.BuildCPanel(panel) local models = { ["models/jaanus/wiretool/wiretool_siren.mdl"] = true, - ["models/jaanus/wiretool/wiretool_controlchip.mdl"] = true + ["models/jaanus/wiretool/wiretool_controlchip.mdl"] = true, + ["models/fasteroid/inductor.mdl"] = true } WireDermaExts.ModelSelect( panel, "wire_motor_model", models, 1 ) diff --git a/lua/wire/stools/plug.lua b/lua/wire/stools/plug.lua index b956d39e7a..349b3b8869 100644 --- a/lua/wire/stools/plug.lua +++ b/lua/wire/stools/plug.lua @@ -37,46 +37,26 @@ TOOL.ClientConVar["attachrange"] = 5 TOOL.ClientConVar["drawoutline"] = 1 TOOL.ClientConVar["angleoffset"] = 0 -local SocketModels = { - ["models/props_lab/tpplugholder_single.mdl"] = "models/props_lab/tpplug.mdl", - ["models/bull/various/usb_socket.mdl"] = "models/bull/various/usb_stick.mdl", - ["models/hammy/pci_slot.mdl"] = "models/hammy/pci_card.mdl", - ["models/wingf0x/isasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/altisasocket.mdl"] = "models/wingf0x/isaplug.mdl", - ["models/wingf0x/ethernetsocket.mdl"] = "models/wingf0x/ethernetplug.mdl", - ["models/wingf0x/hdmisocket.mdl"] = "models/wingf0x/hdmiplug.mdl" -} - -local AngleOffset = { - ["models/props_lab/tpplugholder_single.mdl"] = Angle(0,0,0), - ["models/props_lab/tpplug.mdl"] = Angle(0,0,0), - ["models/bull/various/usb_socket.mdl"] = Angle(0,0,0), - ["models/bull/various/usb_stick.mdl"] = Angle(0,0,0), - ["models/hammy/pci_slot.mdl"] = Angle(90,0,0), - ["models/hammy/pci_card.mdl"] = Angle(90,0,0), - ["models/wingf0x/isasocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/isaplug.mdl"] = Angle(90,0,0), - ["models/wingf0x/altisasocket.mdl"] = Angle(90,00,0), - ["models/wingf0x/ethernetsocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/ethernetplug.mdl"] = Angle(90,0,0), - ["models/wingf0x/hdmisocket.mdl"] = Angle(90,0,0), - ["models/wingf0x/hdmiplug.mdl"] = Angle(90,0,0) -} +local SocketData = list.Get("Wire_Socket_Models") + +hook.Add("ModelPlugLuaRefresh","wire_plug_updatemodels",function() + SocketData = list.Get("Wire_Socket_Models") +end) cleanup.Register( "wire_plugs" ) function TOOL:GetModel() local model = self:GetClientInfo( "model" ) - if (not util.IsValidModel( model ) or not util.IsValidProp( model ) or not SocketModels[ model ]) then return "models/props_lab/tpplugholder_single.mdl" end + if (not util.IsValidModel( model ) or not util.IsValidProp( model ) or not SocketData[ model ]) then return "models/props_lab/tpplugholder_single.mdl" end return model end function TOOL:GetAngle( trace ) local ang if math.abs(trace.HitNormal.x) < 0.001 and math.abs(trace.HitNormal.y) < 0.001 then - ang = Vector(0,0,trace.HitNormal.z):Angle() + (AngleOffset[self:GetModel()] or Angle(0,0,0)) + ang = Vector(0,0,trace.HitNormal.z):Angle() + (SocketData[self:GetModel()].ang or Angle(0,0,0)) else - ang = trace.HitNormal:Angle() + (AngleOffset[self:GetModel()] or Angle(0,0,0)) + ang = trace.HitNormal:Angle() + (SocketData[self:GetModel()].ang or Angle(0,0,0)) end ang:RotateAroundAxis( trace.HitNormal, self:GetClientNumber( "angleoffset" ) ) return ang @@ -105,7 +85,7 @@ function TOOL:RightClick( trace ) if not util.IsValidPhysicsObject( trace.Entity, trace.PhysicsBone ) then return false end local ply = self:GetOwner() - local plugmodel = SocketModels[self:GetModel()] + local plugmodel = SocketData[ self:GetModel() ].plug local plug = WireLib.MakeWireEnt(ply, {Class = "gmod_wire_plug", Pos=trace.HitPos, Angle=self:GetAngle(trace), Model=plugmodel}, self:GetClientNumber( "array" ) ~= 0) if not IsValid(plug) then return false end diff --git a/materials/fasteroid/copper.vmt b/materials/fasteroid/copper.vmt new file mode 100644 index 0000000000..bcefc9a1c4 --- /dev/null +++ b/materials/fasteroid/copper.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$baseTexture" "fasteroid/copper" + "$envmap" "env_cubemap" + "$envmapcontrast" "-1.2" + "$envmaptint" "[1 0.4 0.3]" + "$envmapsaturation" "[1 1 1]" +} diff --git a/materials/fasteroid/copper.vtf b/materials/fasteroid/copper.vtf new file mode 100644 index 0000000000..b5efb2a147 Binary files /dev/null and b/materials/fasteroid/copper.vtf differ diff --git a/materials/fasteroid/plugs/sd_card.vmt b/materials/fasteroid/plugs/sd_card.vmt new file mode 100644 index 0000000000..e153057c79 --- /dev/null +++ b/materials/fasteroid/plugs/sd_card.vmt @@ -0,0 +1,10 @@ +"VertexLitGeneric" +{ + "$basetexture" "fasteroid/plugs/sd_card" + "$bumpmap" "fasteroid/plugs/sd_card_normals" + "$envmap" "env_cubemap" + "$envmapcontrast" "-1.0" + "$envmaptint" "[1 0.7 0.3]" + "$envmapsaturation" "[1 1 1]" + "$normalmapalphaenvmapmask" 1 +} diff --git a/materials/fasteroid/plugs/sd_card.vtf b/materials/fasteroid/plugs/sd_card.vtf new file mode 100644 index 0000000000..05be134dd2 Binary files /dev/null and b/materials/fasteroid/plugs/sd_card.vtf differ diff --git a/materials/fasteroid/plugs/sd_card_envmap.vtf b/materials/fasteroid/plugs/sd_card_envmap.vtf new file mode 100644 index 0000000000..e1aefefda9 Binary files /dev/null and b/materials/fasteroid/plugs/sd_card_envmap.vtf differ diff --git a/materials/fasteroid/plugs/sd_card_normals.vmt b/materials/fasteroid/plugs/sd_card_normals.vmt new file mode 100644 index 0000000000..deec07a1b3 --- /dev/null +++ b/materials/fasteroid/plugs/sd_card_normals.vmt @@ -0,0 +1,4 @@ +"LightmappedGeneric" +{ + "$basetexture" "fasteroid/plugs/sd_card_normals" +} diff --git a/materials/fasteroid/plugs/sd_card_normals.vtf b/materials/fasteroid/plugs/sd_card_normals.vtf new file mode 100644 index 0000000000..f4ce0251e5 Binary files /dev/null and b/materials/fasteroid/plugs/sd_card_normals.vtf differ diff --git a/materials/fasteroid/plugs/sd_socket.vmt b/materials/fasteroid/plugs/sd_socket.vmt new file mode 100644 index 0000000000..92bd2b09c3 --- /dev/null +++ b/materials/fasteroid/plugs/sd_socket.vmt @@ -0,0 +1,4 @@ +"LightmappedGeneric" +{ + "$basetexture" "fasteroid/plugs/sd_socket" +} diff --git a/materials/fasteroid/plugs/sd_socket.vtf b/materials/fasteroid/plugs/sd_socket.vtf new file mode 100644 index 0000000000..7cffc410e2 Binary files /dev/null and b/materials/fasteroid/plugs/sd_socket.vtf differ diff --git a/materials/fasteroid/plugs/sd_socket_pcb.vmt b/materials/fasteroid/plugs/sd_socket_pcb.vmt new file mode 100644 index 0000000000..08dc273746 --- /dev/null +++ b/materials/fasteroid/plugs/sd_socket_pcb.vmt @@ -0,0 +1,4 @@ +"VertexLitGeneric" +{ + "$basetexture" "fasteroid/plugs/sd_socket_pcb" +} diff --git a/materials/fasteroid/plugs/sd_socket_pcb.vtf b/materials/fasteroid/plugs/sd_socket_pcb.vtf new file mode 100644 index 0000000000..7cffc410e2 Binary files /dev/null and b/materials/fasteroid/plugs/sd_socket_pcb.vtf differ diff --git a/materials/fasteroid/plugs/sd_socket_pins.vmt b/materials/fasteroid/plugs/sd_socket_pins.vmt new file mode 100644 index 0000000000..c7768d2543 --- /dev/null +++ b/materials/fasteroid/plugs/sd_socket_pins.vmt @@ -0,0 +1,6 @@ +"VertexLitGeneric" +{ + "$basetexture" "fasteroid/plugs/sd_socket_pins" + "$bumpmap" "fasteroid/plugs/sd_socket_pins_normals" + $alphatest 1 +} diff --git a/materials/fasteroid/plugs/sd_socket_pins.vtf b/materials/fasteroid/plugs/sd_socket_pins.vtf new file mode 100644 index 0000000000..40d5101217 Binary files /dev/null and b/materials/fasteroid/plugs/sd_socket_pins.vtf differ diff --git a/materials/fasteroid/plugs/sd_socket_pins_normals.vtf b/materials/fasteroid/plugs/sd_socket_pins_normals.vtf new file mode 100644 index 0000000000..386a6fb874 Binary files /dev/null and b/materials/fasteroid/plugs/sd_socket_pins_normals.vtf differ diff --git a/materials/fasteroid/plugs/usb_c.vmt b/materials/fasteroid/plugs/usb_c.vmt new file mode 100644 index 0000000000..1ceba8f7fb --- /dev/null +++ b/materials/fasteroid/plugs/usb_c.vmt @@ -0,0 +1,4 @@ +"VertexLitGeneric" +{ + "$basetexture" "fasteroid/plugs/usb_c" +} diff --git a/materials/fasteroid/plugs/usb_c.vtf b/materials/fasteroid/plugs/usb_c.vtf new file mode 100644 index 0000000000..f6692113db Binary files /dev/null and b/materials/fasteroid/plugs/usb_c.vtf differ diff --git a/models/fasteroid/computerfan.dx80.vtx b/models/fasteroid/computerfan.dx80.vtx new file mode 100644 index 0000000000..ebebaed8b8 Binary files /dev/null and b/models/fasteroid/computerfan.dx80.vtx differ diff --git a/models/fasteroid/computerfan.dx90.vtx b/models/fasteroid/computerfan.dx90.vtx new file mode 100644 index 0000000000..02fa3238af Binary files /dev/null and b/models/fasteroid/computerfan.dx90.vtx differ diff --git a/models/fasteroid/computerfan.mdl b/models/fasteroid/computerfan.mdl new file mode 100644 index 0000000000..5d046a8b3f Binary files /dev/null and b/models/fasteroid/computerfan.mdl differ diff --git a/models/fasteroid/computerfan.phy b/models/fasteroid/computerfan.phy new file mode 100644 index 0000000000..ba4badc664 Binary files /dev/null and b/models/fasteroid/computerfan.phy differ diff --git a/models/fasteroid/computerfan.sw.vtx b/models/fasteroid/computerfan.sw.vtx new file mode 100644 index 0000000000..56ce18d1ad Binary files /dev/null and b/models/fasteroid/computerfan.sw.vtx differ diff --git a/models/fasteroid/computerfan.vvd b/models/fasteroid/computerfan.vvd new file mode 100644 index 0000000000..cd76594a45 Binary files /dev/null and b/models/fasteroid/computerfan.vvd differ diff --git a/models/fasteroid/inductor.dx80.vtx b/models/fasteroid/inductor.dx80.vtx new file mode 100644 index 0000000000..710e48f2d0 Binary files /dev/null and b/models/fasteroid/inductor.dx80.vtx differ diff --git a/models/fasteroid/inductor.dx90.vtx b/models/fasteroid/inductor.dx90.vtx new file mode 100644 index 0000000000..8dc569524f Binary files /dev/null and b/models/fasteroid/inductor.dx90.vtx differ diff --git a/models/fasteroid/inductor.mdl b/models/fasteroid/inductor.mdl new file mode 100644 index 0000000000..3022235a3d Binary files /dev/null and b/models/fasteroid/inductor.mdl differ diff --git a/models/fasteroid/inductor.phy b/models/fasteroid/inductor.phy new file mode 100644 index 0000000000..da7619bd3e Binary files /dev/null and b/models/fasteroid/inductor.phy differ diff --git a/models/fasteroid/inductor.sw.vtx b/models/fasteroid/inductor.sw.vtx new file mode 100644 index 0000000000..782664f875 Binary files /dev/null and b/models/fasteroid/inductor.sw.vtx differ diff --git a/models/fasteroid/inductor.vvd b/models/fasteroid/inductor.vvd new file mode 100644 index 0000000000..6357a71945 Binary files /dev/null and b/models/fasteroid/inductor.vvd differ diff --git a/models/fasteroid/led_mini.dx80.vtx b/models/fasteroid/led_mini.dx80.vtx new file mode 100644 index 0000000000..5258120239 Binary files /dev/null and b/models/fasteroid/led_mini.dx80.vtx differ diff --git a/models/fasteroid/led_mini.dx90.vtx b/models/fasteroid/led_mini.dx90.vtx new file mode 100644 index 0000000000..9e22864566 Binary files /dev/null and b/models/fasteroid/led_mini.dx90.vtx differ diff --git a/models/fasteroid/led_mini.mdl b/models/fasteroid/led_mini.mdl new file mode 100644 index 0000000000..a056e7d5ea Binary files /dev/null and b/models/fasteroid/led_mini.mdl differ diff --git a/models/fasteroid/led_mini.phy b/models/fasteroid/led_mini.phy new file mode 100644 index 0000000000..a39ab1a86a Binary files /dev/null and b/models/fasteroid/led_mini.phy differ diff --git a/models/fasteroid/led_mini.sw.vtx b/models/fasteroid/led_mini.sw.vtx new file mode 100644 index 0000000000..a59f678f95 Binary files /dev/null and b/models/fasteroid/led_mini.sw.vtx differ diff --git a/models/fasteroid/led_mini.vvd b/models/fasteroid/led_mini.vvd new file mode 100644 index 0000000000..742bd335f1 Binary files /dev/null and b/models/fasteroid/led_mini.vvd differ diff --git a/models/fasteroid/led_nano.dx80.vtx b/models/fasteroid/led_nano.dx80.vtx new file mode 100644 index 0000000000..5f846ae7f8 Binary files /dev/null and b/models/fasteroid/led_nano.dx80.vtx differ diff --git a/models/fasteroid/led_nano.dx90.vtx b/models/fasteroid/led_nano.dx90.vtx new file mode 100644 index 0000000000..f55424afb4 Binary files /dev/null and b/models/fasteroid/led_nano.dx90.vtx differ diff --git a/models/fasteroid/led_nano.mdl b/models/fasteroid/led_nano.mdl new file mode 100644 index 0000000000..fe965aa0d3 Binary files /dev/null and b/models/fasteroid/led_nano.mdl differ diff --git a/models/fasteroid/led_nano.phy b/models/fasteroid/led_nano.phy new file mode 100644 index 0000000000..c14b4eb6a4 Binary files /dev/null and b/models/fasteroid/led_nano.phy differ diff --git a/models/fasteroid/led_nano.sw.vtx b/models/fasteroid/led_nano.sw.vtx new file mode 100644 index 0000000000..02b5e867ff Binary files /dev/null and b/models/fasteroid/led_nano.sw.vtx differ diff --git a/models/fasteroid/led_nano.vvd b/models/fasteroid/led_nano.vvd new file mode 100644 index 0000000000..81e0ce8882 Binary files /dev/null and b/models/fasteroid/led_nano.vvd differ diff --git a/models/fasteroid/plugs/microusb_plug.dx80.vtx b/models/fasteroid/plugs/microusb_plug.dx80.vtx new file mode 100644 index 0000000000..ca49c64887 Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.dx80.vtx differ diff --git a/models/fasteroid/plugs/microusb_plug.dx90.vtx b/models/fasteroid/plugs/microusb_plug.dx90.vtx new file mode 100644 index 0000000000..8850d9e74e Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.dx90.vtx differ diff --git a/models/fasteroid/plugs/microusb_plug.mdl b/models/fasteroid/plugs/microusb_plug.mdl new file mode 100644 index 0000000000..a3a1ff36ed Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.mdl differ diff --git a/models/fasteroid/plugs/microusb_plug.phy b/models/fasteroid/plugs/microusb_plug.phy new file mode 100644 index 0000000000..548e1d0865 Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.phy differ diff --git a/models/fasteroid/plugs/microusb_plug.sw.vtx b/models/fasteroid/plugs/microusb_plug.sw.vtx new file mode 100644 index 0000000000..8fd06ae588 Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.sw.vtx differ diff --git a/models/fasteroid/plugs/microusb_plug.vvd b/models/fasteroid/plugs/microusb_plug.vvd new file mode 100644 index 0000000000..c3789dcbeb Binary files /dev/null and b/models/fasteroid/plugs/microusb_plug.vvd differ diff --git a/models/fasteroid/plugs/microusb_socket.dx80.vtx b/models/fasteroid/plugs/microusb_socket.dx80.vtx new file mode 100644 index 0000000000..604325b3ec Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.dx80.vtx differ diff --git a/models/fasteroid/plugs/microusb_socket.dx90.vtx b/models/fasteroid/plugs/microusb_socket.dx90.vtx new file mode 100644 index 0000000000..c208ca83cf Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.dx90.vtx differ diff --git a/models/fasteroid/plugs/microusb_socket.mdl b/models/fasteroid/plugs/microusb_socket.mdl new file mode 100644 index 0000000000..965ef1af6f Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.mdl differ diff --git a/models/fasteroid/plugs/microusb_socket.phy b/models/fasteroid/plugs/microusb_socket.phy new file mode 100644 index 0000000000..29cab450ad Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.phy differ diff --git a/models/fasteroid/plugs/microusb_socket.sw.vtx b/models/fasteroid/plugs/microusb_socket.sw.vtx new file mode 100644 index 0000000000..83925af99b Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.sw.vtx differ diff --git a/models/fasteroid/plugs/microusb_socket.vvd b/models/fasteroid/plugs/microusb_socket.vvd new file mode 100644 index 0000000000..97fc8a26da Binary files /dev/null and b/models/fasteroid/plugs/microusb_socket.vvd differ diff --git a/models/fasteroid/plugs/sd_card.dx80.vtx b/models/fasteroid/plugs/sd_card.dx80.vtx new file mode 100644 index 0000000000..bd7c7dc1f1 Binary files /dev/null and b/models/fasteroid/plugs/sd_card.dx80.vtx differ diff --git a/models/fasteroid/plugs/sd_card.dx90.vtx b/models/fasteroid/plugs/sd_card.dx90.vtx new file mode 100644 index 0000000000..3f72963fde Binary files /dev/null and b/models/fasteroid/plugs/sd_card.dx90.vtx differ diff --git a/models/fasteroid/plugs/sd_card.mdl b/models/fasteroid/plugs/sd_card.mdl new file mode 100644 index 0000000000..feaf1c6973 Binary files /dev/null and b/models/fasteroid/plugs/sd_card.mdl differ diff --git a/models/fasteroid/plugs/sd_card.phy b/models/fasteroid/plugs/sd_card.phy new file mode 100644 index 0000000000..e685c80ca9 Binary files /dev/null and b/models/fasteroid/plugs/sd_card.phy differ diff --git a/models/fasteroid/plugs/sd_card.sw.vtx b/models/fasteroid/plugs/sd_card.sw.vtx new file mode 100644 index 0000000000..02a07ea421 Binary files /dev/null and b/models/fasteroid/plugs/sd_card.sw.vtx differ diff --git a/models/fasteroid/plugs/sd_card.vvd b/models/fasteroid/plugs/sd_card.vvd new file mode 100644 index 0000000000..cf1d282f0f Binary files /dev/null and b/models/fasteroid/plugs/sd_card.vvd differ diff --git a/models/fasteroid/plugs/sd_card_socket.dx80.vtx b/models/fasteroid/plugs/sd_card_socket.dx80.vtx new file mode 100644 index 0000000000..f82bb48b6b Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.dx80.vtx differ diff --git a/models/fasteroid/plugs/sd_card_socket.dx90.vtx b/models/fasteroid/plugs/sd_card_socket.dx90.vtx new file mode 100644 index 0000000000..0aa7e013be Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.dx90.vtx differ diff --git a/models/fasteroid/plugs/sd_card_socket.mdl b/models/fasteroid/plugs/sd_card_socket.mdl new file mode 100644 index 0000000000..c39d2ab0d8 Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.mdl differ diff --git a/models/fasteroid/plugs/sd_card_socket.phy b/models/fasteroid/plugs/sd_card_socket.phy new file mode 100644 index 0000000000..f1cfb99e8c Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.phy differ diff --git a/models/fasteroid/plugs/sd_card_socket.sw.vtx b/models/fasteroid/plugs/sd_card_socket.sw.vtx new file mode 100644 index 0000000000..eaa724bf26 Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.sw.vtx differ diff --git a/models/fasteroid/plugs/sd_card_socket.vvd b/models/fasteroid/plugs/sd_card_socket.vvd new file mode 100644 index 0000000000..92c06b01da Binary files /dev/null and b/models/fasteroid/plugs/sd_card_socket.vvd differ diff --git a/models/fasteroid/plugs/usb_c_plug.dx80.vtx b/models/fasteroid/plugs/usb_c_plug.dx80.vtx new file mode 100644 index 0000000000..0b48b23163 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.dx80.vtx differ diff --git a/models/fasteroid/plugs/usb_c_plug.dx90.vtx b/models/fasteroid/plugs/usb_c_plug.dx90.vtx new file mode 100644 index 0000000000..db8785a1c6 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.dx90.vtx differ diff --git a/models/fasteroid/plugs/usb_c_plug.mdl b/models/fasteroid/plugs/usb_c_plug.mdl new file mode 100644 index 0000000000..85d2440dcc Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.mdl differ diff --git a/models/fasteroid/plugs/usb_c_plug.phy b/models/fasteroid/plugs/usb_c_plug.phy new file mode 100644 index 0000000000..4dbf50777d Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.phy differ diff --git a/models/fasteroid/plugs/usb_c_plug.sw.vtx b/models/fasteroid/plugs/usb_c_plug.sw.vtx new file mode 100644 index 0000000000..885a232b65 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.sw.vtx differ diff --git a/models/fasteroid/plugs/usb_c_plug.vvd b/models/fasteroid/plugs/usb_c_plug.vvd new file mode 100644 index 0000000000..506961d621 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_plug.vvd differ diff --git a/models/fasteroid/plugs/usb_c_socket.dx80.vtx b/models/fasteroid/plugs/usb_c_socket.dx80.vtx new file mode 100644 index 0000000000..25b0f8dec8 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.dx80.vtx differ diff --git a/models/fasteroid/plugs/usb_c_socket.dx90.vtx b/models/fasteroid/plugs/usb_c_socket.dx90.vtx new file mode 100644 index 0000000000..13fd96767d Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.dx90.vtx differ diff --git a/models/fasteroid/plugs/usb_c_socket.mdl b/models/fasteroid/plugs/usb_c_socket.mdl new file mode 100644 index 0000000000..940f2a76dd Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.mdl differ diff --git a/models/fasteroid/plugs/usb_c_socket.phy b/models/fasteroid/plugs/usb_c_socket.phy new file mode 100644 index 0000000000..193951a1d1 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.phy differ diff --git a/models/fasteroid/plugs/usb_c_socket.sw.vtx b/models/fasteroid/plugs/usb_c_socket.sw.vtx new file mode 100644 index 0000000000..3f1d50367c Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.sw.vtx differ diff --git a/models/fasteroid/plugs/usb_c_socket.vvd b/models/fasteroid/plugs/usb_c_socket.vvd new file mode 100644 index 0000000000..967c9bcdc1 Binary files /dev/null and b/models/fasteroid/plugs/usb_c_socket.vvd differ diff --git a/models/fasteroid/pointer.dx80.vtx b/models/fasteroid/pointer.dx80.vtx new file mode 100644 index 0000000000..4fdec22816 Binary files /dev/null and b/models/fasteroid/pointer.dx80.vtx differ diff --git a/models/fasteroid/pointer.dx90.vtx b/models/fasteroid/pointer.dx90.vtx new file mode 100644 index 0000000000..4e95d95832 Binary files /dev/null and b/models/fasteroid/pointer.dx90.vtx differ diff --git a/models/fasteroid/pointer.mdl b/models/fasteroid/pointer.mdl new file mode 100644 index 0000000000..ae878e0b29 Binary files /dev/null and b/models/fasteroid/pointer.mdl differ diff --git a/models/fasteroid/pointer.phy b/models/fasteroid/pointer.phy new file mode 100644 index 0000000000..0a981eb816 Binary files /dev/null and b/models/fasteroid/pointer.phy differ diff --git a/models/fasteroid/pointer.sw.vtx b/models/fasteroid/pointer.sw.vtx new file mode 100644 index 0000000000..7d16341fd3 Binary files /dev/null and b/models/fasteroid/pointer.sw.vtx differ diff --git a/models/fasteroid/pointer.vvd b/models/fasteroid/pointer.vvd new file mode 100644 index 0000000000..5549284652 Binary files /dev/null and b/models/fasteroid/pointer.vvd differ