Refactor Barotrauma to be ECS. (#4674)

- Refactor IPressureProtection to be two different ECS events.
This commit is contained in:
Vera Aguilera Puerto
2021-09-22 13:02:25 +02:00
committed by GitHub
parent 6891c32eb5
commit 246fda53c5
8 changed files with 217 additions and 144 deletions

View File

@@ -0,0 +1,46 @@
using Robust.Shared.GameObjects;
namespace Content.Server.Atmos
{
public abstract class PressureEvent : EntityEventArgs
{
/// <summary>
/// The environment pressure.
/// </summary>
public float Pressure { get; }
/// <summary>
/// The modifier for the apparent pressure.
/// This number will be added to the environment pressure for calculation purposes.
/// It can be negative to reduce the felt pressure, or positive to increase it.
/// </summary>
/// <remarks>
/// Do not set this directly. Add to it, or subtract from it to modify it.
/// </remarks>
public float Modifier { get; set; } = 0f;
/// <summary>
/// The multiplier for the apparent pressure.
/// The environment pressure will be multiplied by this for calculation purposes.
/// </summary>
/// <remarks>
/// Do not set, add to or subtract from this directly. Multiply this by your multiplier only.
/// </remarks>
public float Multiplier { get; set; } = 1f;
protected PressureEvent(float pressure)
{
Pressure = pressure;
}
}
public class LowPressureEvent : PressureEvent
{
public LowPressureEvent(float pressure) : base(pressure) { }
}
public class HighPressureEvent : PressureEvent
{
public HighPressureEvent(float pressure) : base(pressure) { }
}
}