mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
headlights 10th wire voltage brightness
This commit is contained in:
@@ -2722,8 +2722,8 @@ function ENT:Think()
|
|||||||
self:SetLightPower(45,self:GetPackedBool("PanelLights"))
|
self:SetLightPower(45,self:GetPackedBool("PanelLights"))
|
||||||
|
|
||||||
local mask = self:GetNW2Int("MaskType",1)--self:GetNW2Bool("Mask")
|
local mask = self:GetNW2Int("MaskType",1)--self:GetNW2Bool("Mask")
|
||||||
local HL1 = self:Animate("Headlights1",self:GetPackedBool("Headlights1") and 1 or 0,0,1,6,false)
|
local HL1 = self:Animate("Headlights1",self:GetPackedRatio("Headlights1"),0,1,6,false)
|
||||||
local HL2 = self:Animate("Headlights2",self:GetPackedBool("Headlights2") and 1 or 0,0,1,6,false)
|
local HL2 = self:Animate("Headlights2",self:GetPackedRatio("Headlights2"),0,1,6,false)
|
||||||
local RL = self:Animate("RedLights_a",self:GetPackedBool("RedLights") and 1 or 0,0,1,6,false)
|
local RL = self:Animate("RedLights_a",self:GetPackedBool("RedLights") and 1 or 0,0,1,6,false)
|
||||||
self:ShowHideSmooth("RedLights",RL)
|
self:ShowHideSmooth("RedLights",RL)
|
||||||
self:SetLightPower(8,RL > 0,RL)
|
self:SetLightPower(8,RL > 0,RL)
|
||||||
|
|||||||
@@ -572,12 +572,12 @@ function ENT:Think()
|
|||||||
local Panel = self.Panel
|
local Panel = self.Panel
|
||||||
local Pneumatic = self.Pneumatic
|
local Pneumatic = self.Pneumatic
|
||||||
local power = Panel.V1 > -1.5
|
local power = Panel.V1 > -1.5
|
||||||
local brightness = math.min(1,Panel.Headlights1)*0.60 +
|
--local brightness = math.min(1,Panel.Headlights1)*0.60 +
|
||||||
math.min(1,Panel.Headlights2)*0.40
|
--math.min(1,Panel.Headlights2)*0.40
|
||||||
--local T = {}
|
--local T = {}
|
||||||
|
|
||||||
self:SetPackedBool("Headlights1",Panel.Headlights1 > 0)
|
self:SetPackedRatio("Headlights1",Panel.Headlights1*math.max(0,(self.Battery.eds_eq-50)/30))
|
||||||
self:SetPackedBool("Headlights2",Panel.Headlights2 > 0)
|
self:SetPackedRatio("Headlights2",Panel.Headlights2*math.max(0,(self.Battery.eds_eq-50)/30))
|
||||||
self:SetPackedBool("RedLights",Panel.RedLight2 > 0)
|
self:SetPackedBool("RedLights",Panel.RedLight2 > 0)
|
||||||
self:SetPackedBool("CabLights",Panel.CabLights>0)
|
self:SetPackedBool("CabLights",Panel.CabLights>0)
|
||||||
self:SetPackedBool("EqLights",Panel.EqLights>0)
|
self:SetPackedBool("EqLights",Panel.EqLights>0)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ function TRAIN_SYSTEM:Initialize()
|
|||||||
|
|
||||||
-- Battery parameters
|
-- Battery parameters
|
||||||
self.ElementCapacity = 80 -- A*hour
|
self.ElementCapacity = 80 -- A*hour
|
||||||
self.Capacity = self.ElementCapacity * 3600
|
self.Capacity = self.ElementCapacity * 3600 * (0.7 + math.random()*0.3)
|
||||||
self.Charge = self.Capacity
|
self.Charge = self.Capacity
|
||||||
self.FullCapacity = self.Capacity
|
self.FullCapacity = self.Capacity
|
||||||
-- Current through battery/A
|
-- Current through battery/A
|
||||||
@@ -121,7 +121,7 @@ function TRAIN_SYSTEM:Think(dT)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Calculate state of charge, internal resistance and battery voltage
|
-- Calculate state of charge, internal resistance and battery voltage
|
||||||
-- TODO: сделать, чтобы освещение и фары тоже кушали заряд АКБ (и чтобы свет белых фар тускнел на 25% при отсутствии высокого напряжения (только для .5 и ниже))
|
-- TODO: сделать, чтобы освещение и фары тоже потребляли ток
|
||||||
if self.Dischar then
|
if self.Dischar then
|
||||||
self.Capacity = self.Capacity - dT * (self.FullCapacity*0.1/86400) -- make capacity loss ~ 10% per day (just a game abstraction)
|
self.Capacity = self.Capacity - dT * (self.FullCapacity*0.1/86400) -- make capacity loss ~ 10% per day (just a game abstraction)
|
||||||
if self.Ibatt > 0 then
|
if self.Ibatt > 0 then
|
||||||
@@ -143,8 +143,8 @@ function TRAIN_SYSTEM:Think(dT)
|
|||||||
if self.SoC <= 0 or self.SoC >= 1.0 then self.EthaCE = 0 end
|
if self.SoC <= 0 or self.SoC >= 1.0 then self.EthaCE = 0 end
|
||||||
|
|
||||||
-- Возможно, надо ввести ток саморазряда, а не ебаться с выдуманной зависимостью EthaCE от SoC выше 100% (которого не бывает >_>)
|
-- Возможно, надо ввести ток саморазряда, а не ебаться с выдуманной зависимостью EthaCE от SoC выше 100% (которого не бывает >_>)
|
||||||
self.SoC = self.SoC + self.EthaCE*self.Ibatt*dT/self.Capacity
|
self.SoC = math.max(0,math.min(1,self.SoC + self.EthaCE*self.Ibatt*dT/self.Capacity))
|
||||||
local SoC = math.max(0,math.min(100,self.SoC*100))
|
local SoC = self.SoC*100
|
||||||
if 50 <= SoC and SoC <= 100 then
|
if 50 <= SoC and SoC <= 100 then
|
||||||
self.CellIRes = 0.009
|
self.CellIRes = 0.009
|
||||||
elseif SoC >= 0.5 then
|
elseif SoC >= 0.5 then
|
||||||
|
|||||||
Reference in New Issue
Block a user