Fixed Powered ItemComponents (not components deriving from Powered) never resetting their voltage after receiving power, causing them to stay powered indefinitely. Closes #247

This commit is contained in:
Joonas Rikkonen
2018-02-05 22:31:55 +02:00
parent 74cd265952
commit ec302e099b
6 changed files with 16 additions and 11 deletions

View File

@@ -61,9 +61,9 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam)
{
base.Update(deltaTime, cam);
UpdateOnActiveEffects(deltaTime);
currPowerConsumption = Math.Abs(targetForce)/100.0f * powerConsumption;
currPowerConsumption = Math.Abs(targetForce) / 100.0f * powerConsumption;
if (powerConsumption == 0.0f) voltage = 1.0f;

View File

@@ -59,10 +59,8 @@ namespace Barotrauma.Items.Components
}
currPowerConsumption = powerConsumption;
hasPower = voltage > minVoltage;
if (hasPower)
if (voltage > minVoltage)
{
ApplyStatusEffects(ActionType.OnActive, deltaTime, null);
}

View File

@@ -39,7 +39,7 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam)
{
base.Update(deltaTime, cam);
UpdateOnActiveEffects(deltaTime);
CurrFlow = 0.0f;
currPowerConsumption = powerConsumption;

View File

@@ -109,7 +109,7 @@ namespace Barotrauma.Items.Components
{
currPowerConsumption = powerConsumption;
base.Update(deltaTime, cam);
UpdateOnActiveEffects(deltaTime);
if (voltage >= minVoltage || powerConsumption <= 0.0f)
{

View File

@@ -86,7 +86,7 @@ namespace Barotrauma.Items.Components
if (connection.IsPower) voltage = power;
}
public override void Update(float deltaTime, Camera cam)
protected void UpdateOnActiveEffects(float deltaTime)
{
if (currPowerConsumption == 0.0f)
{
@@ -109,7 +109,7 @@ namespace Barotrauma.Items.Components
powerOnSoundPlayed = true;
}
}
else if (voltage < 0.1f)
else if (voltage < 0.1f)
{
powerOnSoundPlayed = false;
}
@@ -121,6 +121,13 @@ namespace Barotrauma.Items.Components
#endif
}
public override void Update(float deltaTime, Camera cam)
{
UpdateOnActiveEffects(deltaTime);
voltage = 0.0f;
}
}
}

View File

@@ -124,7 +124,7 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam)
{
base.Update(deltaTime, cam);
UpdateOnActiveEffects(deltaTime);
#if CLIENT
light.ParentSub = item.Submarine;