Added "state_out" connections to relay components

This commit is contained in:
Joonas Rikkonen
2017-08-31 12:25:32 +03:00
parent 96a64d45dc
commit c7ae91da42
3 changed files with 25 additions and 8 deletions
@@ -249,7 +249,8 @@
<output name="power_out"/> <output name="power_out"/>
<output name="signal_out1"/> <output name="signal_out1"/>
<output name="signal_out2"/> <output name="signal_out2"/>
<output name="state_out"/>
</ConnectionPanel> </ConnectionPanel>
</Item> </Item>
@@ -30,6 +30,12 @@ namespace Barotrauma.Items.Components
get { return powerLoad; } get { return powerLoad; }
} }
//can the component transfer power
public virtual bool CanTransfer
{
get { return IsActive; }
}
public PowerTransfer(Item item, XElement element) public PowerTransfer(Item item, XElement element)
: base(item, element) : base(item, element)
{ {
@@ -40,6 +46,8 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam) public override void Update(float deltaTime, Camera cam)
{ {
if (!CanTransfer) return;
if (updateTimer > 0) if (updateTimer > 0)
{ {
//this junction box has already been updated this frame //this junction box has already been updated this frame
@@ -135,6 +143,7 @@ namespace Barotrauma.Items.Components
PowerTransfer powerTransfer = powered as PowerTransfer; PowerTransfer powerTransfer = powered as PowerTransfer;
if (powerTransfer != null) if (powerTransfer != null)
{ {
if (!powerTransfer.CanTransfer) continue;
powerTransfer.CheckJunctions(deltaTime); powerTransfer.CheckJunctions(deltaTime);
continue; continue;
} }
@@ -9,6 +9,8 @@ namespace Barotrauma.Items.Components
{ {
private float maxPower; private float maxPower;
private bool isOn;
[Editable, HasDefaultValue(1000.0f, true)] [Editable, HasDefaultValue(1000.0f, true)]
public float MaxPower public float MaxPower
{ {
@@ -18,31 +20,36 @@ namespace Barotrauma.Items.Components
maxPower = Math.Max(0.0f, value); maxPower = Math.Max(0.0f, value);
} }
} }
private bool isOn;
[Editable, HasDefaultValue(false, true)] [Editable, HasDefaultValue(false, true)]
public bool IsOn public bool IsOn
{ {
get get
{ {
return IsActive; return isOn;
} }
set set
{ {
isOn = value; isOn = value;
IsActive = value; if (!isOn)
if (!IsActive)
{ {
currPowerConsumption = 0.0f; currPowerConsumption = 0.0f;
} }
} }
} }
public override bool CanTransfer
{
get
{
return isOn;
}
}
public RelayComponent(Item item, XElement element) public RelayComponent(Item item, XElement element)
: base (item, element) : base (item, element)
{ {
IsActive = isOn; IsActive = true;
} }
public override void Update(float deltaTime, Camera cam) public override void Update(float deltaTime, Camera cam)