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="signal_out1"/>
<output name="signal_out2"/>
<output name="signal_out2"/>
<output name="state_out"/>
</ConnectionPanel>
</Item>
@@ -30,6 +30,12 @@ namespace Barotrauma.Items.Components
get { return powerLoad; }
}
//can the component transfer power
public virtual bool CanTransfer
{
get { return IsActive; }
}
public PowerTransfer(Item item, XElement element)
: base(item, element)
{
@@ -40,6 +46,8 @@ namespace Barotrauma.Items.Components
public override void Update(float deltaTime, Camera cam)
{
if (!CanTransfer) return;
if (updateTimer > 0)
{
//this junction box has already been updated this frame
@@ -135,6 +143,7 @@ namespace Barotrauma.Items.Components
PowerTransfer powerTransfer = powered as PowerTransfer;
if (powerTransfer != null)
{
if (!powerTransfer.CanTransfer) continue;
powerTransfer.CheckJunctions(deltaTime);
continue;
}
@@ -9,6 +9,8 @@ namespace Barotrauma.Items.Components
{
private float maxPower;
private bool isOn;
[Editable, HasDefaultValue(1000.0f, true)]
public float MaxPower
{
@@ -18,31 +20,36 @@ namespace Barotrauma.Items.Components
maxPower = Math.Max(0.0f, value);
}
}
private bool isOn;
[Editable, HasDefaultValue(false, true)]
public bool IsOn
{
get
{
return IsActive;
return isOn;
}
set
{
isOn = value;
IsActive = value;
if (!IsActive)
if (!isOn)
{
currPowerConsumption = 0.0f;
}
}
}
public override bool CanTransfer
{
get
{
return isOn;
}
}
public RelayComponent(Item item, XElement element)
: base (item, element)
{
IsActive = isOn;
IsActive = true;
}
public override void Update(float deltaTime, Camera cam)