Add events for TemperatureProtection and PressureProtection (#25165)

This commit is contained in:
Nemanja
2024-02-14 02:44:47 -05:00
committed by GitHub
parent a2ac6e4177
commit 8ed32a1e42
4 changed files with 92 additions and 26 deletions

View File

@@ -1,18 +1,33 @@
namespace Content.Server.Atmos.Components
using Content.Server.Atmos.EntitySystems;
namespace Content.Server.Atmos.Components;
[RegisterComponent]
[Access(typeof(BarotraumaSystem))]
public sealed partial class PressureProtectionComponent : Component
{
[RegisterComponent]
public sealed partial class PressureProtectionComponent : Component
{
[DataField("highPressureMultiplier")]
public float HighPressureMultiplier { get; private set; } = 1f;
[DataField]
public float HighPressureMultiplier = 1f;
[DataField("highPressureModifier")]
public float HighPressureModifier { get; private set; } = 0f;
[DataField]
public float HighPressureModifier;
[DataField("lowPressureMultiplier")]
public float LowPressureMultiplier { get; private set; } = 1f;
[DataField]
public float LowPressureMultiplier = 1f;
[DataField("lowPressureModifier")]
public float LowPressureModifier { get; private set; } = 0f;
}
[DataField]
public float LowPressureModifier;
}
/// <summary>
/// Event raised on an entity with <see cref="PressureProtectionComponent"/> in order to adjust its default values.
/// </summary>
[ByRefEvent]
public record struct GetPressureProtectionValuesEvent
{
public float HighPressureMultiplier;
public float HighPressureModifier;
public float LowPressureMultiplier;
public float LowPressureModifier;
}

View File

@@ -1,11 +1,20 @@
namespace Content.Server.Atmos.Components;
using Content.Server.Temperature.Systems;
namespace Content.Server.Atmos.Components;
[RegisterComponent]
[Access(typeof(TemperatureSystem))]
public sealed partial class TemperatureProtectionComponent : Component
{
/// <summary>
/// How much to multiply temperature deltas by.
/// </summary>
[DataField("coefficient")]
[DataField]
public float Coefficient = 1.0f;
}
/// <summary>
/// Event raised on an entity with <see cref="TemperatureProtectionComponent"/> to determine the actual value of the coefficient.
/// </summary>
[ByRefEvent]
public record struct GetTemperatureProtectionEvent(float Coefficient);