diff --git a/lua/entities/gmod_subway_81-501/cl_init.lua b/lua/entities/gmod_subway_81-501/cl_init.lua index e1f750e..3d8d8c2 100644 --- a/lua/entities/gmod_subway_81-501/cl_init.lua +++ b/lua/entities/gmod_subway_81-501/cl_init.lua @@ -468,20 +468,26 @@ ENT.ButtonMap["AirDistributor"] = { for i=0,3 do ENT.ClientProps["TrainNumberL"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(295+i*6.6-4*6.6/2,69.07,-25.5), + pos = Vector(0,0,0), ang = Angle(0,90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberL",i,Vector(306, 69.07,-25.5),TEXT_ALIGN_LEFT) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberL",i,4,false) end, } ENT.ClientProps["TrainNumberR"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(-280-i*6.6-3*6.6/2,-66.37,-25.5), + pos = Vector(0,0,0), ang = Angle(0,-90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberR",i,Vector(-317,-66.37,-25.5),TEXT_ALIGN_LEFT) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberR",i,4,true) end, } end @@ -982,22 +988,17 @@ function ENT:Initialize() self.EmergencyBrakeValveRamp = 0 end - function ENT:UpdateWagonNumber() + self.TrainNumberR = false + self.TrainNumberL = false for i=0,3 do - local leftNum,rightNum = self.ClientEnts["TrainNumberL"..i],self.ClientEnts["TrainNumberR"..i] - local num = math.floor(self.WagonNumber%(10^(i+1))/10^i) - if IsValid(leftNum) then - leftNum:SetPos(self:LocalToWorld(Vector(295+i*6.6-3*6.6/2,69.07,-25.5))) - leftNum:SetModel("models/metrostroi_train/81-714_mmz/bortnumber_"..num..".mdl") - end - if IsValid(rightNum) then - rightNum:SetPos(self:LocalToWorld(Vector(-280-i*6.6-3*6.6/2,-66.37,-25.5))) - rightNum:SetModel("models/metrostroi_train/81-714_mmz/bortnumber_"..num..".mdl") - end + local cent = self.ClientEnts["TrainNumberR"..i] + if IsValid(cent) then cent:Remove() end + + cent = self.ClientEnts["TrainNumberL"..i] + if IsValid(cent) then cent:Remove() end end end - -------------------------------------------------------------------------------- function ENT:Think() self.BaseClass.Think(self) diff --git a/lua/entities/gmod_subway_81-502/cl_init.lua b/lua/entities/gmod_subway_81-502/cl_init.lua index fe5de03..bb58631 100644 --- a/lua/entities/gmod_subway_81-502/cl_init.lua +++ b/lua/entities/gmod_subway_81-502/cl_init.lua @@ -1466,24 +1466,29 @@ ENT.ButtonMap["UAVAPanel"] = { } } - for i=0,3 do ENT.ClientProps["TrainNumberL"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(295+i*6.6-3*6.6/2,69.07,-25.5), + pos = Vector(0,0,0), ang = Angle(0,90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberL",i,Vector(306, 69.07,-25.5),TEXT_ALIGN_LEFT) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberL",i,4,false) end, } ENT.ClientProps["TrainNumberR"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(-280-i*6.6-3*6.6/2,-66.37,-25.5), + pos = Vector(0,0,0), ang = Angle(0,-90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberR",i,Vector(-317,-66.37,-25.5),TEXT_ALIGN_LEFT) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberR",i,4,true) end, } end @@ -2046,17 +2051,14 @@ function ENT:Initialize() end function ENT:UpdateWagonNumber() + self.TrainNumberR = false + self.TrainNumberL = false for i=0,3 do - local leftNum,rightNum = self.ClientEnts["TrainNumberL"..i],self.ClientEnts["TrainNumberR"..i] - local num = math.floor(self.WagonNumber%(10^(i+1))/10^i) - if IsValid(leftNum) then - leftNum:SetPos(self:LocalToWorld(Vector(295+i*6.6-3*6.6/2,69.07,-25.5))) - leftNum:SetModel("models/metrostroi_train/81-714_mmz/bortnumber_"..num..".mdl") - end - if IsValid(rightNum) then - rightNum:SetPos(self:LocalToWorld(Vector(-280-i*6.6-3*6.6/2,-66.37,-25.5))) - rightNum:SetModel("models/metrostroi_train/81-714_mmz/bortnumber_"..num..".mdl") - end + local cent = self.ClientEnts["TrainNumberR"..i] + if IsValid(cent) then cent:Remove() end + + cent = self.ClientEnts["TrainNumberL"..i] + if IsValid(cent) then cent:Remove() end end end diff --git a/lua/entities/gmod_subway_81-702/cl_init.lua b/lua/entities/gmod_subway_81-702/cl_init.lua index e6d9b65..acda496 100644 --- a/lua/entities/gmod_subway_81-702/cl_init.lua +++ b/lua/entities/gmod_subway_81-702/cl_init.lua @@ -605,23 +605,30 @@ ENT.ButtonMap["UAVAPanel"] = { for i=0,3 do ENT.ClientProps["TrainNumberL"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(400+i*6.6-4*6.6/2,67.67,-26), + pos = Vector(0,0,0), ang = Angle(0,90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberL",i,Vector(397, 67.67,-26),TEXT_ALIGN_CENTER) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberL",i,3,false) end, } ENT.ClientProps["TrainNumberR"..i] = { model = "models/metrostroi_train/81-714_mmz/bortnumber_0.mdl", - pos = Vector(-405-i*6.6-4*6.6/2,-67.66,-26), + pos = Vector(0,0,0), ang = Angle(0,-90,0), hide = 1.5, - callback = function(ent) - ent.WagonNumber = false + callback = function(ent,cent) + Metrostroi.BortNumberMMZCallback(ent,cent,"TrainNumberR",i,Vector(-430,-67.67,-26),TEXT_ALIGN_CENTER) + end, + modelcallback = function(ent) + return Metrostroi.BortNumberMMZCallbackModel(ent,"TrainNumberR",i,3,true) end, } end + ENT.ButtonMap["FrontDoor"] = { pos = Vector(468,16,37), ang = Angle(0,-90,90), @@ -1190,23 +1197,20 @@ function ENT:Initialize() self.EmergencyValveEPKRamp = 0 self.EmergencyBrakeValveRamp = 0 end + function ENT:UpdateWagonNumber() local count = math.max(3,math.ceil(math.log10(self.WagonNumber+1))) + + self.TrainNumberR = false + self.TrainNumberL = false for i=0,3 do - self:ShowHide("TrainNumberL"..i,i