1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00

Train spawner reload: Copy train settings

This commit is contained in:
Hellss
2022-01-11 17:42:14 +03:00
parent 9aed01d2b6
commit cf37815bcb
2 changed files with 30 additions and 5 deletions

View File

@@ -627,6 +627,14 @@ local function createFrame()
Draw() Draw()
end end
net.Receive("train_spawner_open",function()
local tbl = net.ReadTable()
local tool = LocalPlayer():GetTool("train_spawner")
Settings[tbl.Train] = tbl
Settings.Train = tbl.Train
tool.Settings = tbl
UpdateConCMD()
end)
net.Receive("MetrostroiTrainSpawner",createFrame) net.Receive("MetrostroiTrainSpawner",createFrame)
net.Receive("MetrostroiMaxWagons", function() net.Receive("MetrostroiMaxWagons", function()
MaxWagons = GetGlobalInt("metrostroi_maxtrains")*GetGlobalInt("metrostroi_maxwagons") MaxWagons = GetGlobalInt("metrostroi_maxtrains")*GetGlobalInt("metrostroi_maxwagons")

View File

@@ -7,7 +7,7 @@ local C_MaxWagons = GetConVar("metrostroi_maxwagons")
if CLIENT then if CLIENT then
language.Add("Tool.train_spawner.name", "Train Spawner") language.Add("Tool.train_spawner.name", "Train Spawner")
language.Add("Tool.train_spawner.desc", "Spawn a train") language.Add("Tool.train_spawner.desc", "Spawn a train")
language.Add("Tool.train_spawner.0", "Primary: Spawns a full train. Secondary: Reverse facing (yellow ed when facing the opposite side).") language.Add("Tool.train_spawner.0", "Primary: Spawns a full train. Secondary: Reverse facing (yellow ed when facing the opposite side). Reload: Copy train settings.")
language.Add("Undone_81-7036", "Undone 81-7036 (does not work)") language.Add("Undone_81-7036", "Undone 81-7036 (does not work)")
language.Add("Undone_81-7037", "Undone 81-7037 (does not work)") language.Add("Undone_81-7037", "Undone 81-7037 (does not work)")
language.Add("Undone_81-717", "Undone 81-717") language.Add("Undone_81-717", "Undone 81-717")
@@ -308,6 +308,7 @@ function TOOL:SpawnWagon(trace)
LastRot = rot LastRot = rot
end end
ent._Settings = self.Settings
table.insert(trains,ent) table.insert(trains,ent)
undo.AddEntity(ent) undo.AddEntity(ent)
--[[ --[[
@@ -336,7 +337,7 @@ function TOOL:SpawnWagon(trace)
hook.Run("MetrostroiSpawnerUpdate",ent,self.Settings) hook.Run("MetrostroiSpawnerUpdate",ent,self.Settings)
ent:UpdateTextures() ent:UpdateTextures()
ent.FrontAutoCouple = i > 1 and i < self.Settings.WagNum ent.FrontAutoCouple = i > 1 and i < self.Settings.WagNum
ent.RearAutoCouple = true ent.RearAutoCouple = self.Settings.WagNum > 1
LastEnt = ent LastEnt = ent
end end
undo.SetPlayer(ply) undo.SetPlayer(ply)
@@ -397,8 +398,23 @@ end
function TOOL:Reload(trace) function TOOL:Reload(trace)
if CLIENT then return end if CLIENT then return end
if IsValid(trace.Entity) and trace.Entity._Settings then
local ply = self:GetOwner()
ply:ConCommand("gmod_tool train_spawner")
ply:SelectWeapon("gmod_tool")
local tool = ply:GetTool("train_spawner")
tool.AllowSpawn = true
tool.Settings = trace.Entity._Settings
local ENT = scripted_ents.Get(tool.Settings.Train)
if not ENT then tool.AllowSpawn = false else tool.Train = ENT end
net.Start("train_spawner_open")
net.WriteTable(tool.Settings)
net.Send(ply)
local spawner = ents.Create("gmod_train_spawner") local spawner = ents.Create("gmod_train_spawner")
spawner:SpawnFunction(self:GetOwner()) spawner:SpawnFunction(ply)
end
end end
function TOOL:LeftClick(trace) function TOOL:LeftClick(trace)
if not self.Train then return end if not self.Train then return end
@@ -432,6 +448,7 @@ function TOOL:LeftClick(trace)
for k,v in pairs(ent.CustomSpawnerUpdates) do if k ~= "BaseClass" then v(ent) end end for k,v in pairs(ent.CustomSpawnerUpdates) do if k ~= "BaseClass" then v(ent) end end
hook.Run("MetrostroiSpawnerUpdate",ent,self.Settings) hook.Run("MetrostroiSpawnerUpdate",ent,self.Settings)
ent:UpdateTextures() ent:UpdateTextures()
ent._Settings = self.Settings
table.insert(trains,ent) table.insert(trains,ent)
end end