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

81-717/714 pneumatics merged in one system. Door pneumatics added. Back compatibility added. Doors initial states bugfixed. Brake VZs logic slightly modified

This commit is contained in:
Moon Horse
2025-11-24 18:17:47 +03:00
parent c5c7f91f42
commit d01446d9e9
19 changed files with 1145 additions and 2677 deletions

View File

@@ -609,13 +609,13 @@ ENT.ButtonMap["Doors1_2_left"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod4Set",x=304,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd4Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
{ID = "open_door4Set",x=304,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door4Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr1_2_lft"] = {
@@ -624,15 +624,14 @@ ENT.ButtonMap["bldr1_2_lft"] = {
width = 20,
height = 450,
scale = 0.1,
--hide = 1
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK4Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock4Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK4",speed=0.5,vmin=1,vmax=0.8,
var="door_lock4",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -645,13 +644,13 @@ ENT.ButtonMap["Doors3_4_left"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod3Set",x=300,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd3Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
{ID = "open_door3Set",x=300,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door3Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr3_4_lft"] = {
@@ -660,15 +659,14 @@ ENT.ButtonMap["bldr3_4_lft"] = {
width = 20,
height = 450,
scale = 0.1,
--hide = 0.8
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK3Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock3Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK3",speed=0.5,vmin=1,vmax=0.8,
var="door_lock3",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -681,13 +679,13 @@ ENT.ButtonMap["Doors5_6_left"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod2Set",x=304,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd2Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
{ID = "open_door2Set",x=304,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door2Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr5_6_lft"] = {
@@ -696,15 +694,14 @@ ENT.ButtonMap["bldr5_6_lft"] = {
width = 20,
height = 450,
scale = 0.1,
--hide = 0.8
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK2Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock2Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK2",speed=0.5,vmin=1,vmax=0.8,
var="door_lock2",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -717,13 +714,13 @@ ENT.ButtonMap["Doors7_8_left"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod1Set",x=312,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd1Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
{ID = "open_door1Set",x=312,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door1Set",x=0,y=0,w= 60,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr7_8_lft"] = {
@@ -732,15 +729,14 @@ ENT.ButtonMap["bldr7_8_lft"] = {
width = 20,
height = 450,
scale = 0.1,
--hide = 0.8
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK1Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock1Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK1",speed=0.5,vmin=1,vmax=0.8,
var="door_lock1",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -753,13 +749,13 @@ ENT.ButtonMap["Doors1_2_right"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod5Set",x=324,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd5Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
{ID = "open_door5Set",x=324,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door5Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr1_2_rgh"] = {
@@ -768,14 +764,14 @@ ENT.ButtonMap["bldr1_2_rgh"] = {
width = 20,
height = 450,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK5Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock5Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK5",speed=0.5,vmin=1,vmax=0.8,
var="door_lock5",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -788,13 +784,13 @@ ENT.ButtonMap["Doors3_4_right"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod6Set",x=298,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd6Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
{ID = "open_door6Set",x=298,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door6Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr3_4_rgh"] = {
@@ -803,14 +799,14 @@ ENT.ButtonMap["bldr3_4_rgh"] = {
width = 20,
height = 450,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK6Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock6Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK6",speed=0.5,vmin=1,vmax=0.8,
var="door_lock6",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -823,13 +819,13 @@ ENT.ButtonMap["Doors5_6_right"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod7Set",x=312,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd7Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
{ID = "open_door7Set",x=312,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door7Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr5_6_rgh"] = {
@@ -838,14 +834,14 @@ ENT.ButtonMap["bldr5_6_rgh"] = {
width = 20,
height = 450,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK7Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock7Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK7",speed=0.5,vmin=1,vmax=0.8,
var="door_lock7",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -858,13 +854,13 @@ ENT.ButtonMap["Doors7_8_right"] = {
width = 520,
height = 1000,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "iod8Set",x=314,y=0,w= 100,h = 1000,tooltip=""},
{ID = "icd8Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
{ID = "open_door8Set",x=314,y=0,w= 100,h = 1000,tooltip=""},
{ID = "close_door8Set",x=0,y=0,w= 100,h = 1000,tooltip=""},
}
}
ENT.ButtonMap["bldr7_8_rgh"] = {
@@ -873,14 +869,14 @@ ENT.ButtonMap["bldr7_8_rgh"] = {
width = 20,
height = 450,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
{ID = "IDLK8Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
{ID = "door_lock8Toggle", x=0, y=180, w=20, h=100, tooltip="", model = {
model = "models/metrostroi_train/81-717/battery_enabler.mdl",
var="IDLK8",speed=0.5,vmin=1,vmax=0.8,
var="door_lock8",speed=0.5,vmin=1,vmax=0.8,
sndvol = 0.8, snd = function(val) return val and "pak_on" or "pak_off" end,sndmin = 80, sndmax = 1e3/3, sndang = Angle(-90,0,0),
}},
}
@@ -893,8 +889,8 @@ ENT.ButtonMap["DoorReleaseRight"] = {
width = 100,
height = 160,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
@@ -908,6 +904,7 @@ ENT.ClientProps["doorsmanual_r"] = {
model = "models/metrostroi_train/81-717/stop_mvm.mdl",
pos = Vector(282,-62.5,13.5),
ang = Angle(180,180,0),
hide=true,
hideseat=0.2,
}
ENT.ClientSounds["DoorReleaseRight"] = {{"doorsmanual_r",function() return "disconnect_valve" end,1,1,50,1e3,Angle(-90,0,0)}}
@@ -919,8 +916,8 @@ ENT.ButtonMap["DoorReleaseLeft"] = {
width = 100,
height = 160,
scale = 0.1,
hideseat=0.1,
hide=true,
--hideseat=0.1,
hide=0.07,
screenHide = true,
buttons = {
@@ -934,6 +931,7 @@ ENT.ClientProps["doorsmanual_l"] = {
model = "models/metrostroi_train/81-717/stop_mvm.mdl",
pos = Vector(282,62,12.5),
ang = Angle(0,0,0),
hide=true,
hideseat=0.2,
}
ENT.ClientSounds["DoorReleaseLeft"] = {{"doorsmanual_l",function() return "disconnect_valve" end,1,1,50,1e3,Angle(-90,0,0)}}
@@ -1236,6 +1234,10 @@ function ENT:Initialize()
self.ReleasedPdT = 0
self.FrontLeak = 0
self.RearLeak = 0
self.DoorLoopStates = {
DoorL1 = 0, DoorL2 = 0, DoorL3 = 0, DoorL4 = 0,
DoorR1 = 0, DoorR2 = 0, DoorR3 = 0, DoorR4 = 0,
}
self.BPSNBuzzVolume = 0
end
@@ -1391,7 +1393,6 @@ function ENT:Think()
self:ShowHideSmooth("gv_wrench", CurTime() < self.ResetTime and 1 or 0.1)
if not self.DoorStates then self.DoorStates = {} end
if not self.DoorLoopStates then self.DoorLoopStates = {} end
if not self.DSprev then self.DSprev = {{1,1},{1,1},{1,1},{1,1}} end
if not self.DoorDelta then self.DoorDelta = {{0.0,0.0},{0.0,0.0},{0.0,0.0},{0.0,0.0}} end
for i=0,3 do