Added "state_out" connections to relay components
This commit is contained in:
@@ -250,6 +250,7 @@
|
|||||||
<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
|
||||||
{
|
{
|
||||||
@@ -19,30 +21,35 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user