Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/Signal.cs

45 lines
1.4 KiB
C#

namespace Barotrauma.Items.Components
{
partial struct Signal
{
public string value;
public int stepsTaken;
public Character sender;
public Item source;
public float power;
public float strength;
public readonly double CreationTime;
public double TimeSinceCreated => Timing.TotalTimeUnpaused - CreationTime;
public Signal(string value, int stepsTaken = 0, Character sender = null,
Item source = null, float power = 0.0f, float strength = 1.0f)
{
this.value = value;
this.stepsTaken = stepsTaken;
this.sender = sender;
this.source = source;
this.power = power;
this.strength = strength;
CreationTime = Timing.TotalTimeUnpaused;
}
internal Signal WithStepsTaken(int stepsTaken)
{
Signal retVal = this;
retVal.stepsTaken = stepsTaken;
return retVal;
}
public static bool operator ==(Signal a, Signal b) =>
a.value == b.value &&
a.stepsTaken == b.stepsTaken &&
a.sender == b.sender &&
a.source == b.source &&
MathUtils.NearlyEqual(a.power, b.power) &&
MathUtils.NearlyEqual(a.strength, b.strength);
public static bool operator !=(Signal a, Signal b) => !(a == b);
}
}