using Content.Shared.Temperature.Systems; using Robust.Shared.GameStates; namespace Content.Shared.Temperature.Components; /// /// This is used for an entity that varies in speed based on current temperature. /// [RegisterComponent, NetworkedComponent, Access(typeof(SharedTemperatureSystem)), AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class TemperatureSpeedComponent : Component { /// /// Pairs of temperature thresholds to applied slowdown values. /// [DataField] public Dictionary Thresholds = new(); /// /// The current speed modifier from we reached. /// Stored and networked so that the client doesn't mispredict temperature /// [DataField, AutoNetworkedField] public float? CurrentSpeedModifier; /// /// The time at which the temperature slowdown is updated. /// [DataField, AutoNetworkedField, AutoPausedField] public TimeSpan? NextSlowdownUpdate; }