1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-04 00:52:33 +00:00
* 81-722, 81-723, 81-724.
Перенос освещения с сервера на клиент. Добавление спрайтов на лампочки и кнопочки пульта. Перенос спрайтов.

* 81-720, 81-721.
Перенос освещения и спрайтов с сервера на клиент.
Добавил спрайты на лампочки и светодиоды
This commit is contained in:
Ivan Gordeev
2021-05-26 01:08:36 +03:00
committed by GitHub
parent 3c11233c40
commit 158dab1c6d
10 changed files with 246 additions and 253 deletions

View File

@@ -56,6 +56,7 @@ ENT.ButtonMap["PUU"] = {
buttons = {
{ID = "!DoorsClosed",x=45.5, y=30.5, radius=8, tooltip = "Двери закрыты",model = {
lamp = {model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl",var="DoorsClosed",z=-7, color=Color(120,255,50)},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(175,250,20),z=-2},
}},
{ID = "StandToggle",x=96, y=30.5, radius=15, tooltip = "Стоянка",model = {
model = "models/metrostroi_train/81-720/tumbler1.mdl",z=-5, ang=180,
@@ -68,6 +69,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(200,150,60),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
var="Ticker",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(200,150,60),z=0},
}},
{ID = "KAHToggle",x=137.5+37.83*2, y=30.5, radius=15, tooltip = "КАХ",model = {
model = "models/metrostroi_train/81-720/buttons/b5.mdl",z=6,
@@ -75,6 +77,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(160,255,220),lz = 10,lbright=2,lfov=155,lfar=16,lnear=8,lshadows=0},
var="KAH",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(160,255,220),z=0},
}},
{ID = "KAHkToggle",x=137.5+37.83*2-20, y=30.5+10, w=40,h=20, tooltip="Крышка кнопки КАХ\nKAH button cover", model = {
model = "models/metrostroi_train/81/krishka.mdl", ang = 0, z = 1,
@@ -90,6 +93,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(255,80,100),lz = 10,lbright=2,lfov=155,lfar=16,lnear=8,lshadows=0},
var="ALS",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,80,100),z=0},
}},
{ID = "ALSkToggle",x=137.5+37.83*3-20, y=30.5+10, w=40,h=20, tooltip="Крышка кнопки АЛС\nALS button cover", model = {
model = "models/metrostroi_train/81/krishka.mdl", ang = 0, z = 1,
@@ -106,6 +110,7 @@ ENT.ButtonMap["PUU"] = {
}},
{ID = "!HVoltage",x=137.5+37.83*5, y=30.5, radius=8, tooltip = "Сеть контактная",model = {
lamp = {model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl",var="HVoltage",z=-7, color=Color(255,120,50)},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(255,120,50),z=-2},
}},
{ID = "PassSchemeToggle",x=137.5+37.83*6, y=30.5, radius=15, tooltip = "Табло наддверное",model = {
model = "models/metrostroi_train/81-720/buttons/b4.mdl",z=6,
@@ -113,6 +118,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(255,255,255),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
var="PassScheme",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,255,255),z=0},
}},
{ID = "EmergencyCompressorSet",x=138+37.83*7, y=30.5, radius=15, tooltip = "Компрессор резервный",model = {
model = "models/metrostroi_train/81-720/buttons/b7.mdl",z=7,
@@ -145,6 +151,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(50,150,200),lz = 16,lbright=2,lfov=140,lfar=4,lnear=2,lshadows=0},
var="R_Announcer",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(50,150,200),z=0},
}},
{ID = "R_LineToggle",x=566.63+35.75*2, y=30.5, radius=15, tooltip = "Линия",model = {
model = "models/metrostroi_train/81-720/buttons/b3.mdl",z=6,--blue
@@ -152,6 +159,7 @@ ENT.ButtonMap["PUU"] = {
lcolor=Color(50,150,200),lz = 16,lbright=2,lfov=140,lfar=4,lnear=2,lshadows=0},
var="R_Line",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(50,150,200),z=0},
}},
{ID = "R_EmerSet",x=566.63+35.5*3, y=30.5, radius=15, tooltip = "Связь экстренная",model = {
model = "models/metrostroi_train/81-720/buttons/b3.mdl",z=6,--blue
@@ -226,6 +234,7 @@ ENT.ButtonMap["PUL"] = {
lcolor=Color(255,255,255),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
var="DoorSelectL",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,255,255),z=0},
}},
{ID = "DoorSelectRToggle",x=78.5, y=79.5, radius=15, tooltip = "Выбор правых дверей",model = {
model = "models/metrostroi_train/81-720/buttons/b4.mdl",z=-6,
@@ -233,6 +242,7 @@ ENT.ButtonMap["PUL"] = {
lcolor=Color(255,255,255),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
var="DoorSelectR",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,255,255),z=0},
}},
{ID = "DoorBlockToggle",x=65, y=126.5, radius=15, tooltip = "Блокировка дверей",model = {
model = "models/metrostroi_train/81-720/buttons/b6.mdl",z=-6,
@@ -240,9 +250,11 @@ ENT.ButtonMap["PUL"] = {
lcolor=Color(255,80,100),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
var="DoorBlock",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,80,100),z=0},
}},
{ID = "!DoorLeftLamp",x=47, y=149, radius=8, tooltip = "Работа кнопки левых дверей",model = {
lamp = {model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl",var="DoorLeftLamp",z=-3, color=Color(120,255,50)},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(175,250,20),z=-1},
}},
{ID = "DoorLeftSet",x=49, y=197, radius=15, tooltip = "Левые двери",model = {
@@ -267,6 +279,7 @@ ENT.ButtonMap["PUR"] = {
lamp = {model = "models/metrostroi_train/81-720/buttons/l1.mdl",var="AccelRateLamp",anim=true,
lcolor=Color(255,255,255),lz = 16,lbright=2,lfov=140,lfar=16,lnear=8,lshadows=0},
sndvol = 0.3, snd = function(val) return val and "button_square_press" or "button_square_release" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,255,255),z=0},
}},
{ID = "EmerBrakeAddSet",x=58.5, y=79.5, radius=15, tooltip = "(резервный) Тормоз",model = {
model = "models/metrostroi_train/81-720/buttons/b2.mdl",z=-6,
@@ -285,6 +298,7 @@ ENT.ButtonMap["PUR"] = {
var="EmerBrake",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
tooltipFunc = function(ent) return Format("%s%s",ent:GetPackedBool("EmerBrakeWork") and Metrostroi.GetPhrase("Train.Buttons.Active").."," or "",Metrostroi.GetPhrase(ent:GetPackedBool("EmerBrake") and "Train.Buttons.On" or "Train.Buttons.Off")) end,
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(255,80,100),z=0},
}},
{ID = "EmergencyBrakeToggle",x=188, y=79.5, radius=15, tooltip = "Тормоз экстренный",model = {
model = "models/metrostroi_train/81-720/tumbler2.mdl",z=-2, ang=180,
@@ -298,6 +312,7 @@ ENT.ButtonMap["PUR"] = {
lcolor=Color(80,255,100),lz = 16,lbright=2,lfov=140,lfar=4,lnear=2,lshadows=0},
var="DoorClose",speed=12, vmin=0, vmax=1,
sndvol = 0.3, snd = function(val) return val and "button_square_on" or "button_square_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
sprite = {bright=0.5,size=0.25,scale=0.03,vscale=0.03,color=Color(80,255,100),z=0},
}},
{ID = "AttentionMessageSet",x=58.5, y=119, radius=15, tooltip = "Восприятие сообщения",model = {
model = "models/metrostroi_train/81-720/buttons/b6.mdl",z=-6,
@@ -326,6 +341,7 @@ ENT.ButtonMap["PUR"] = {
}},
{ID = "!DoorRightLamp",x=108.5, y=144, radius=8, tooltip = "Работа кнопки правых дверей",model = {
lamp = {model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl",var="DoorRightLamp",z=-3, color=Color(120,255,50)},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(175,250,20),z=-1},
}},
}
}
@@ -465,21 +481,27 @@ ENT.ButtonMap["IGLAButtons"] = {
{ID = "IGLA2DSet",x=65, y=53, w=12, h=7, tooltip="ИГЛА: Вторая кнопка вниз"},
{ID = "!IGLASR",x=17.9, y=10.5, radius=3, tooltip="ИГЛА: SR", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLASR",color=Color(175,250,20),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(175,250,20),z=-1},
}},
{ID = "!IGLARX",x=27.5, y=10.5, radius=3, tooltip="ИГЛА: RX", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLARX",color=Color(255,56,30),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(255,56,30),z=-1},
}},
{ID = "!IGLAErr",x=40.5, y=10.5, radius=3, tooltip="ИГЛА: Отказ", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLAErr",color=Color(255,168,000),z=-3.5},
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLAErr",color=Color(255,168,0),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(255,168,0),z=-1},
}},
{ID = "!IGLAOSP",x=50, y=10.5, radius=3, tooltip="ИГЛА: ОСП", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLAOSP",color=Color(175,250,20),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(175,250,20),z=-1},
}},
{ID = "!IGLAPI",x=59.5, y=10.5, radius=3, tooltip="ИГЛА: ПИ", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLAPI",color=Color(255,56,30),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(255,56,30),z=-1},
}},
{ID = "!IGLAOff",x=69, y=10.5, radius=3, tooltip="ИГЛА: Откл", model = {
lamp = {speed=16,model = "models/metrostroi_train/81-502/lamps/svetodiod_small_502.mdl", var="IGLAOff",color=Color(255,56,30),z=-3.5},
sprite = {bright=0.4,size=0.25,scale=0.02,vscale=0.02,color=Color(255,56,30),z=-1},
}},
}
}
@@ -1565,8 +1587,22 @@ table.insert(ENT.ClientSounds["PB"],{"PB",function(ent,var) return var > 0 and "
ENT.Lights = {
-- Headlight glow
[1] = { "headlight",Vector(495,0,-40),Angle(0,0,0),Color(216,161,92),farz=5144,brightness = 4, hfov=105,vfov=105, texture = "models/metrostroi_train/equipment/headlight",shadows = 1,headlight=true},
[31] = { "light",Vector(500,-35,-29), Angle(0,0,0), Color(255,220,180), brightness = 0.2, scale = 2.5, texture = "sprites/light_glow02.vmt" },
[32] = { "light",Vector(500, 35,-29), Angle(0,0,0), Color(255,220,180), brightness = 0.2, scale = 2.5, texture = "sprites/light_glow02.vmt" },
-- Reverse
[2] = { "headlight", Vector(495,0,-40), Angle(0,0,0), Color(255,0,0), fov=170 ,brightness = 0.1, farz=450,texture = "models/metrostroi_train/equipment/headlight2",shadows = 0,backlight=true},
[33] = { "light",Vector(500,-50, -29), Angle(0,0,0), Color(255,50,50), brightness = 0.1, scale = 1.5, texture = "sprites/light_glow02.vmt" },
[34] = { "light",Vector(500, 50, -29), Angle(0,0,0), Color(255,50,50), brightness = 0.1, scale = 1.5, texture = "sprites/light_glow02.vmt" },
[35] = { "light",Vector(500,-50, -75), Angle(0,0,0), Color(255,50,50), brightness = 0.1, scale = 1.5, texture = "sprites/light_glow02.vmt" },
[36] = { "light",Vector(500, 50, -75), Angle(0,0,0), Color(255,50,50), brightness = 0.1, scale = 1.5, texture = "sprites/light_glow02.vmt" },
-- Apparats
[3] = { "headlight", Vector(380,40,43.9), Angle(50,40,-0), Color(206,135,80), hfov=100, vfov=100,farz=200,brightness = 6,shadows=1},
-- Cabin
[10] = { "dynamiclight", Vector( 440, 0, 13), Angle(0,0,0), Color(206,135,80), brightness = 0.7, distance = 550 },
-- Interior
[15] = { "dynamiclight", Vector(-350, 0, 10), Angle(0,0,0), Color(238,238,197), brightness = 0.75, distance = 500, fov=180,farz = 128 },
[16] = { "dynamiclight", Vector(-60, 0, 10), Angle(0,0,0), Color(238,238,197), brightness = 0.75, distance = 500, fov=180,farz = 128 },
[17] = { "dynamiclight", Vector( 230, 0, 10), Angle(0,0,0), Color(238,238,197), brightness = 0.75, distance = 500, fov=180,farz = 128 },
}
ENT.ButtonMap["Vityaz"] = {
@@ -1663,6 +1699,10 @@ function ENT:Think()
end
self:SetLightPower(3,self.Door5 and self:GetPackedBool("AppLights"),self:GetPackedBool("AppLights") and 1 or 0)
local passlight = self:GetPackedRatio("SalonLighting")
self:SetLightPower(15,passlight>0,passlight)
self:SetLightPower(16,passlight>0,passlight)
self:SetLightPower(17,passlight>0,passlight)
--ANIMS
self:Animate("brake_line", self:GetPackedRatio("BL"), 0, 0.753, 256,2)
self:Animate("train_line", self:GetPackedRatio("TL"), 0, 0.753, 4096,2)
@@ -1696,10 +1736,11 @@ function ENT:Think()
self:Animate("km013", Cpos[self:GetPackedRatio("Cran")] or 0, 0, 0.7, 2,false)
self:Animate("PB", self:GetPackedBool("PB") and 1 or 0,0,0.2, 8,false)
self:ShowHideSmooth("lamps_emer",self:Animate("LampsEmer",self:GetPackedRatio("SalonLighting") == 0.4 and 1 or 0,0,1,5,false))
self:ShowHideSmooth("lamps_full",self:Animate("LampsFull",self:GetPackedRatio("SalonLighting") == 1 and 1 or 0,0,1,5,false))
self:ShowHideSmooth("lamps_emer",self:Animate("LampsEmer",passlight == 0.4 and 1 or 0,0,1,5,false))
self:ShowHideSmooth("lamps_full",self:Animate("LampsFull",passlight == 1 and 1 or 0,0,1,5,false))
local cab_lamp = self:Animate("cab_lamp",self:GetPackedBool("CabinEnabledFull") and 1 or self:GetPackedBool("CabinEnabledEmer") and 0.5 or 0,0,1,5,false)
self:SetLightPower(10,cab_lamp>0,cab_lamp)
self:ShowHideSmooth("cab_emer",cab_lamp)
self:ShowHideSmooth("cab_full",cab_lamp)
@@ -1751,7 +1792,13 @@ function ENT:Think()
self:ShowHideSmooth("RedLights",RL)
local headlights = HL1*0.4+HL2*0.6
self:SetLightPower(1,headlights>0,headlights)
self:SetLightPower(31,headlights>0,headlights)
self:SetLightPower(32,headlights>0,headlights)
self:SetLightPower(2,RL>0,RL)
self:SetLightPower(33,RL>0,RL)
self:SetLightPower(34,RL>0,RL)
self:SetLightPower(35,RL>0,RL)
self:SetLightPower(36,RL>0,RL)
if IsValid(self.GlowingLights[1]) then
if self:GetPackedRatio("Headlights") < 1 and self.GlowingLights[1]:GetFarZ() ~= 4096 then
self.GlowingLights[1]:SetFarZ(4096)