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

Оптимизация.

В gmod_subway_base добавлена переменная self.WagonCount и заменены везде на неё, где используется #self.WagonList.
В 81-501 убран лишний цикл 18 провода.
В БУВ 81-720 и 81-722 убрана неиспользуемая локальная переменная
В sys_81_71_announcer добавленая локальная переменная для self.Train там где это релевантно, убраны лишние локальные перменные.
This commit is contained in:
kosmik641
2025-12-20 16:33:24 +03:00
parent 14bf8d0da9
commit 5d6dd0cdd6
23 changed files with 63 additions and 72 deletions

View File

@@ -37,8 +37,9 @@ if SERVER then
function TRAIN_SYSTEM:Queue(tbl)
if not Metrostroi[self.AnnTable] then return end
local Train = self.Train
for k, v in pairs(tbl) do
local tbl = Metrostroi[self.AnnTable][self.Train:GetNW2Int("Announcer", 1)] or Metrostroi[self.AnnTable][1]
local tbl = Metrostroi[self.AnnTable][Train:GetNW2Int("Announcer", 1)] or Metrostroi[self.AnnTable][1]
if v~=-2 then
table.insert(self.Schedule, tbl and tbl[v] or v)
else
@@ -56,10 +57,10 @@ if SERVER then
self:WriteMessage("_STOP")
end
function TRAIN_SYSTEM:WriteMessage(msg)
for i = 1, #self.Train.WagonList do
local Train = self.Train
for i=1,Train.WagonCount do
net.Start("metrostroi_announcer", true)
local train = self.Train.WagonList[i]
net.WriteEntity(train)
net.WriteEntity(Train.WagonList[i])
net.WriteString(msg)
net.WriteString(self.AnnTable)
net.Broadcast()
@@ -68,16 +69,15 @@ if SERVER then
--end
function TRAIN_SYSTEM:Think()
local Train = self.Train
if #self.Schedule > 0 and not self.Playing then
for i = 1, #self.Train.WagonList do
local train = self.Train.WagonList[i]
train:SetNW2Bool("AnnouncerPlaying", true)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Bool("AnnouncerPlaying", true)
end
self.Playing = true
elseif #self.Schedule == 0 and self.Playing and not self.AnnounceTimer then
for i = 1, #self.Train.WagonList do
local train = self.Train.WagonList[i]
train:SetNW2Bool("AnnouncerPlaying", false)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Bool("AnnouncerPlaying", false)
end
self.Playing = false
end
@@ -86,19 +86,18 @@ if SERVER then
local tbl = table.remove(self.Schedule, 1)
if type(tbl) == "number" then
if tbl == -1 then
for i = 1, #self.Train.WagonList do
local train = self.Train.WagonList[i]
train.AnnouncementToLeaveWagon = true
for i=1,Train.WagonCount do
Train.WagonList[i].AnnouncementToLeaveWagon = true
--train.AnnouncementToLeaveWagonAcknowledged = false
end
elseif self.NoiseWork == true then
self.NoiseWork = tbl
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerNoise", tbl)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerNoise", tbl)
end
elseif self.BuzzWork == 1 then
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", tbl)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", tbl)
end
self.BuzzWork = true
else
@@ -107,25 +106,25 @@ if SERVER then
elseif tbl == "noise_start" then
self.NoiseWork = true
elseif tbl == "noise_end" then
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerNoise", -1)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerNoise", -1)
end
self.NoiseWork = false
elseif tbl == "buzz_start_upo" then
self.BuzzWork = 1
elseif tbl == "buzz_end_upo" then
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", -1)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", -1)
end
elseif tbl == "buzz_start" then
local bpsn = self.Train:GetNW2Int("BPSNType",13)
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", (bpsn == 1 or bpsn == 2 or bpsn == 8) and 2 or 1)
local bpsn = Train:GetNW2Int("BPSNType",13)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", (bpsn == 1 or bpsn == 2 or bpsn == 8) and 2 or 1)
end
self.BuzzWork = true
elseif tbl == "buzz_end" then
for i = 1, #self.Train.WagonList do
self.Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", -1)
for i=1,Train.WagonCount do
Train.WagonList[i]:SetNW2Int("AnnouncerBuzz", -1)
end
self.BuzzWork = false
elseif type(tbl) == "table" then

View File

@@ -120,7 +120,6 @@ function TRAIN_SYSTEM:Think()
self.CurTime = CurTime()
local Train = self.Train
local wagcount = #Train.WagonList
self.Power = Train.Electric.Battery80V > 62 and 1 or 0
self.State = self.Power > 0 and Train.SFV2.Value > 0.5

View File

@@ -346,7 +346,7 @@ function TRAIN_SYSTEM:Think(dT)
local count = 0
local command = 0
--[[
for i=1,#Train.WagonList do
for i=1,Train.WagonCount do
local train = Train.WagonList[i]
if train.BUKP then
if train.BUKP.Loop == 0 then

View File

@@ -75,7 +75,6 @@ function TRAIN_SYSTEM:Think()
self.CurTime = CurTime()
local Train = self.Train
local wagcount = #Train.WagonList
self.Power = Train.Electric.Power
self.State = self.Power > 0 and Train.SF51.Value > 0.5
self.TrainIndex = Train:GetWagonNumber()

View File

@@ -350,7 +350,7 @@ function TRAIN_SYSTEM:Think(dT)
local leak = 0]]--[[
local count = 0
local command = 0
for i=1,#Train.WagonList do
for i=1,Train.WagonCount do
local train = Train.WagonList[i]
if train.BUKP then
if train.BUKP.Loop == 0 then