diff --git a/Content.Client/DragDrop/DragDropSystem.cs b/Content.Client/DragDrop/DragDropSystem.cs index 7abb5bbe6b..84bc63a3b6 100644 --- a/Content.Client/DragDrop/DragDropSystem.cs +++ b/Content.Client/DragDrop/DragDropSystem.cs @@ -20,7 +20,6 @@ using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Utility; -using System.Linq; using System.Numerics; using DrawDepth = Content.Shared.DrawDepth.DrawDepth; @@ -57,7 +56,10 @@ public sealed class DragDropSystem : SharedDragDropSystem // mousedown event so it can be treated like a regular click private const float MaxMouseDownTimeForReplayingClick = 0.85f; + [ValidatePrototypeId] private const string ShaderDropTargetInRange = "SelectionOutlineInrange"; + + [ValidatePrototypeId] private const string ShaderDropTargetOutOfRange = "SelectionOutline"; /// diff --git a/Content.Client/Interactable/Components/InteractionOutlineComponent.cs b/Content.Client/Interactable/Components/InteractionOutlineComponent.cs index 43c18ab797..dd08e4ba09 100644 --- a/Content.Client/Interactable/Components/InteractionOutlineComponent.cs +++ b/Content.Client/Interactable/Components/InteractionOutlineComponent.cs @@ -1,7 +1,5 @@ using Robust.Client.GameObjects; using Robust.Client.Graphics; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Prototypes; namespace Content.Client.Interactable.Components @@ -13,8 +11,13 @@ namespace Content.Client.Interactable.Components [Dependency] private readonly IEntityManager _entMan = default!; private const float DefaultWidth = 1; + + [ValidatePrototypeId] private const string ShaderInRange = "SelectionOutlineInrange"; + + [ValidatePrototypeId] private const string ShaderOutOfRange = "SelectionOutline"; + private bool _inRange; private ShaderInstance? _shader; private int _lastRenderScale; diff --git a/Content.Client/Outline/TargetOutlineSystem.cs b/Content.Client/Outline/TargetOutlineSystem.cs index 67507c3070..1c396585b3 100644 --- a/Content.Client/Outline/TargetOutlineSystem.cs +++ b/Content.Client/Outline/TargetOutlineSystem.cs @@ -63,8 +63,12 @@ public sealed class TargetOutlineSystem : EntitySystem private Vector2 LookupVector => new(LookupSize, LookupSize); + [ValidatePrototypeId] private const string ShaderTargetValid = "SelectionOutlineInrange"; + + [ValidatePrototypeId] private const string ShaderTargetInvalid = "SelectionOutline"; + private ShaderInstance? _shaderTargetValid; private ShaderInstance? _shaderTargetInvalid; diff --git a/Content.Client/Parallax/ParallaxSystem.cs b/Content.Client/Parallax/ParallaxSystem.cs index 5ad7bd4e56..8b96cbdc3d 100644 --- a/Content.Client/Parallax/ParallaxSystem.cs +++ b/Content.Client/Parallax/ParallaxSystem.cs @@ -14,7 +14,9 @@ public sealed class ParallaxSystem : SharedParallaxSystem [Dependency] private readonly IParallaxManager _parallax = default!; [Dependency] private readonly IPrototypeManager _protoManager = default!; + [ValidatePrototypeId] private const string Fallback = "Default"; + public const int ParallaxZIndex = 0; public override void Initialize() diff --git a/Content.Server/Body/Commands/AddHandCommand.cs b/Content.Server/Body/Commands/AddHandCommand.cs index c056553207..7b78304756 100644 --- a/Content.Server/Body/Commands/AddHandCommand.cs +++ b/Content.Server/Body/Commands/AddHandCommand.cs @@ -14,6 +14,7 @@ namespace Content.Server.Body.Commands [AdminCommand(AdminFlags.Fun)] sealed class AddHandCommand : IConsoleCommand { + [ValidatePrototypeId] public const string DefaultHandPrototype = "LeftHandHuman"; public string Command => "addhand"; diff --git a/Content.Server/CartridgeLoader/Cartridges/CrewManifestCartridgeSystem.cs b/Content.Server/CartridgeLoader/Cartridges/CrewManifestCartridgeSystem.cs index 74757c1f79..49fb2e1732 100644 --- a/Content.Server/CartridgeLoader/Cartridges/CrewManifestCartridgeSystem.cs +++ b/Content.Server/CartridgeLoader/Cartridges/CrewManifestCartridgeSystem.cs @@ -1,9 +1,10 @@ -using Content.Server.CrewManifest; +using Content.Server.CrewManifest; using Content.Server.Station.Systems; using Content.Shared.CartridgeLoader; using Content.Shared.CartridgeLoader.Cartridges; using Content.Shared.CCVar; using Robust.Shared.Configuration; +using Robust.Shared.Prototypes; namespace Content.Server.CartridgeLoader.Cartridges; @@ -14,6 +15,7 @@ public sealed class CrewManifestCartridgeSystem : EntitySystem [Dependency] private readonly CrewManifestSystem _crewManifest = default!; [Dependency] private readonly StationSystem _stationSystem = default!; + [ValidatePrototypeId] private const string CartridgePrototypeName = "CrewManifestCartridge"; /// diff --git a/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs b/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs index f1d164b2bd..e5fb7ea7e9 100644 --- a/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs @@ -15,6 +15,7 @@ using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Containers; +using Robust.Shared.Prototypes; namespace Content.Server.Chemistry.EntitySystems { @@ -36,6 +37,7 @@ namespace Content.Server.Chemistry.EntitySystems [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; + [ValidatePrototypeId] private const string PillPrototypeId = "Pill"; public override void Initialize() diff --git a/Content.Server/Construction/Commands/TileWallsCommand.cs b/Content.Server/Construction/Commands/TileWallsCommand.cs index 2f507f916f..af079405d2 100644 --- a/Content.Server/Construction/Commands/TileWallsCommand.cs +++ b/Content.Server/Construction/Commands/TileWallsCommand.cs @@ -16,7 +16,10 @@ namespace Content.Server.Construction.Commands public string Description => "Puts an underplating tile below every wall on a grid."; public string Help => $"Usage: {Command} | {Command}"; + [ValidatePrototypeId] public const string TilePrototypeId = "Plating"; + + [ValidatePrototypeId] public const string WallTag = "Wall"; public void Execute(IConsoleShell shell, string argStr, string[] args) diff --git a/Content.Server/Electrocution/ElectrocuteCommand.cs b/Content.Server/Electrocution/ElectrocuteCommand.cs index 26f3904ba3..af8b3e5a5e 100644 --- a/Content.Server/Electrocution/ElectrocuteCommand.cs +++ b/Content.Server/Electrocution/ElectrocuteCommand.cs @@ -12,6 +12,7 @@ namespace Content.Server.Electrocution public string Description => Loc.GetString("electrocute-command-description"); public string Help => $"{Command} "; + [ValidatePrototypeId] public const string ElectrocutionStatusEffect = "Electrocution"; public void Execute(IConsoleShell shell, string argStr, string[] args) diff --git a/Content.Server/Electrocution/ElectrocutionSystem.cs b/Content.Server/Electrocution/ElectrocutionSystem.cs index 898addd0ff..e013cfbe7f 100644 --- a/Content.Server/Electrocution/ElectrocutionSystem.cs +++ b/Content.Server/Electrocution/ElectrocutionSystem.cs @@ -52,7 +52,10 @@ public sealed class ElectrocutionSystem : SharedElectrocutionSystem [Dependency] private readonly SharedStutteringSystem _stuttering = default!; [Dependency] private readonly TagSystem _tag = default!; + [ValidatePrototypeId] private const string StatusEffectKey = "Electrocution"; + + [ValidatePrototypeId] private const string DamageType = "Shock"; // Yes, this is absurdly small for a reason. diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index 27b4141e1f..d042b65449 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -61,6 +61,7 @@ public sealed partial class ExplosionSystem : EntitySystem /// find errors. However some components, like rogue arrows, or some commands like the admin-smite need to have /// a "default" option specified outside of yaml data-fields. Hence this const string. /// + [ValidatePrototypeId] public const string DefaultExplosionPrototypeId = "Default"; public override void Initialize() diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs index 46a66beab4..429f128810 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs @@ -1,5 +1,6 @@ using Content.Server.Fluids.Components; using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using Content.Shared.Fluids.Components; @@ -9,6 +10,7 @@ public sealed partial class PuddleSystem { private static readonly TimeSpan EvaporationCooldown = TimeSpan.FromSeconds(1); + [ValidatePrototypeId] public const string EvaporationReagent = "Water"; private void OnEvaporationMapInit(EntityUid uid, EvaporationComponent component, MapInitEvent args) diff --git a/Content.Server/GameTicking/GameTicker.LobbyMusic.cs b/Content.Server/GameTicking/GameTicker.LobbyMusic.cs index a0294447eb..5a44320ff3 100644 --- a/Content.Server/GameTicking/GameTicker.LobbyMusic.cs +++ b/Content.Server/GameTicking/GameTicker.LobbyMusic.cs @@ -6,6 +6,7 @@ namespace Content.Server.GameTicking { public sealed partial class GameTicker { + [ValidatePrototypeId] private const string LobbyMusicCollection = "LobbyMusic"; [ViewVariables] diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 71f27028fa..808bb9da13 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -9,13 +9,13 @@ using Content.Server.Speech.Components; using Content.Server.Station.Components; using Content.Shared.CCVar; using Content.Shared.Database; -using Content.Shared.GameTicking; using Content.Shared.Preferences; using Content.Shared.Roles; using JetBrains.Annotations; using Robust.Server.Player; using Robust.Shared.Map; using Robust.Shared.Network; +using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Utility; using Job = Content.Server.Roles.Job; @@ -26,6 +26,7 @@ namespace Content.Server.GameTicking { [Dependency] private readonly IAdminManager _adminManager = default!; + [ValidatePrototypeId] private const string ObserverPrototypeName = "MobObserver"; /// diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs index adff4bc1b8..d0d8b9ff7b 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs @@ -1,17 +1,15 @@ using System.Threading; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; -using Content.Server.Station.Components; using Content.Server.UserInterface; +using Content.Shared.Access; using Content.Shared.CCVar; using Content.Shared.Database; -using Content.Shared.GameTicking; using Content.Shared.Popups; using Content.Shared.Shuttles.BUIStates; using Content.Shared.Shuttles.Events; using Content.Shared.Shuttles.Systems; using Robust.Server.GameObjects; -using Robust.Shared.Audio; using Robust.Shared.Map; using Robust.Shared.Player; using Timer = Robust.Shared.Timing.Timer; @@ -63,6 +61,7 @@ public sealed partial class EmergencyShuttleSystem private CancellationTokenSource? _roundEndCancelToken; + [ValidatePrototypeId] private const string EmergencyRepealAllAccess = "EmergencyShuttleRepealAll"; private static readonly Color DangerColor = Color.Red; diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 6287295061..a6bdc043a9 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -16,6 +16,7 @@ using Content.Shared.CCVar; using Content.Shared.Database; using Content.Shared.Shuttles.Components; using Content.Shared.Shuttles.Events; +using Content.Shared.Tag; using Content.Shared.Tiles; using Robust.Server.GameObjects; using Robust.Server.Maps; @@ -60,6 +61,7 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem private bool _emergencyShuttleEnabled; + [ValidatePrototypeId] private const string DockTag = "DockEmergency"; public override void Initialize() diff --git a/Content.Server/Speech/EntitySystems/RatvarianLanguageSystem.cs b/Content.Server/Speech/EntitySystems/RatvarianLanguageSystem.cs index 84d9220f39..baa4f6f347 100644 --- a/Content.Server/Speech/EntitySystems/RatvarianLanguageSystem.cs +++ b/Content.Server/Speech/EntitySystems/RatvarianLanguageSystem.cs @@ -1,4 +1,4 @@ -using System.Text; +using System.Text; using System.Text.RegularExpressions; using Content.Shared.Speech.Components; using Content.Shared.Speech.EntitySystems; @@ -9,6 +9,9 @@ namespace Content.Server.Speech.EntitySystems; public sealed class RatvarianLanguageSystem : SharedRatvarianLanguageSystem { [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + + + [ValidatePrototypeId] private const string RatvarianKey = "RatvarianLanguage"; // This is the word of Ratvar and those who speak it shall abide by His rules: diff --git a/Content.Server/Speech/EntitySystems/SlurredSystem.cs b/Content.Server/Speech/EntitySystems/SlurredSystem.cs index f0db5cdbde..6be8c15aca 100644 --- a/Content.Server/Speech/EntitySystems/SlurredSystem.cs +++ b/Content.Server/Speech/EntitySystems/SlurredSystem.cs @@ -12,6 +12,7 @@ public sealed class SlurredSystem : SharedSlurredSystem [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; [Dependency] private readonly IRobustRandom _random = default!; + [ValidatePrototypeId] private const string SlurKey = "SlurredSpeech"; public override void Initialize() diff --git a/Content.Server/Speech/EntitySystems/StutteringSystem.cs b/Content.Server/Speech/EntitySystems/StutteringSystem.cs index d4d7a7256b..8717d57ad0 100644 --- a/Content.Server/Speech/EntitySystems/StutteringSystem.cs +++ b/Content.Server/Speech/EntitySystems/StutteringSystem.cs @@ -12,8 +12,6 @@ namespace Content.Server.Speech.EntitySystems [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; [Dependency] private readonly IRobustRandom _random = default!; - private const string StutterKey = "Stutter"; - // Regex of characters to stutter. private static readonly Regex Stutter = new(@"[b-df-hj-np-tv-wxyz]", RegexOptions.Compiled | RegexOptions.IgnoreCase); diff --git a/Content.Server/Spreader/KudzuSystem.cs b/Content.Server/Spreader/KudzuSystem.cs index 27b44ad1b9..db88226d79 100644 --- a/Content.Server/Spreader/KudzuSystem.cs +++ b/Content.Server/Spreader/KudzuSystem.cs @@ -12,6 +12,7 @@ public sealed class KudzuSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly DamageableSystem _damageable = default!; + [ValidatePrototypeId] private const string KudzuGroup = "kudzu"; /// diff --git a/Content.Server/Spreader/SpreaderSystem.cs b/Content.Server/Spreader/SpreaderSystem.cs index 574b7b0bf4..e73fb11507 100644 --- a/Content.Server/Spreader/SpreaderSystem.cs +++ b/Content.Server/Spreader/SpreaderSystem.cs @@ -31,6 +31,7 @@ public sealed class SpreaderSystem : EntitySystem private readonly List _spreaderGroups = new(); + [ValidatePrototypeId] private const string IgnoredTag = "SpreaderIgnore"; /// diff --git a/Content.Server/Traitor/Uplink/UplinkSystem.cs b/Content.Server/Traitor/Uplink/UplinkSystem.cs index ed81288887..5670e28ec9 100644 --- a/Content.Server/Traitor/Uplink/UplinkSystem.cs +++ b/Content.Server/Traitor/Uplink/UplinkSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Inventory; using Content.Shared.PDA; using Content.Server.Store.Components; using Content.Shared.FixedPoint; +using Content.Shared.Store; namespace Content.Server.Traitor.Uplink { @@ -13,6 +14,7 @@ namespace Content.Server.Traitor.Uplink [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly StoreSystem _store = default!; + [ValidatePrototypeId] public const string TelecrystalCurrencyPrototype = "Telecrystal"; /// diff --git a/Content.Server/Traits/Assorted/NarcolepsySystem.cs b/Content.Server/Traits/Assorted/NarcolepsySystem.cs index 37ce88e385..c1fdde4ed3 100644 --- a/Content.Server/Traits/Assorted/NarcolepsySystem.cs +++ b/Content.Server/Traits/Assorted/NarcolepsySystem.cs @@ -9,6 +9,7 @@ namespace Content.Server.Traits.Assorted; /// public sealed class NarcolepsySystem : EntitySystem { + [ValidatePrototypeId] private const string StatusEffectKey = "ForcedSleep"; // Same one used by N2O and other sleep chems. [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; diff --git a/Content.Shared/Chat/SharedChatSystem.cs b/Content.Shared/Chat/SharedChatSystem.cs index 00104758da..6f5d0f049b 100644 --- a/Content.Shared/Chat/SharedChatSystem.cs +++ b/Content.Shared/Chat/SharedChatSystem.cs @@ -20,7 +20,10 @@ public abstract class SharedChatSystem : EntitySystem public const char AdminPrefix = ']'; public const char WhisperPrefix = ','; public const char DefaultChannelKey = 'h'; + + [ValidatePrototypeId] public const string CommonChannel = "Common"; + public static string DefaultChannelPrefix = $"{RadioChannelPrefix}{DefaultChannelKey}"; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; diff --git a/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs b/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs index ae1cd534fe..41ed4b1b2b 100644 --- a/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs +++ b/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Clothing.Components; +using Content.Shared.Clothing.Components; using Content.Shared.Inventory.Events; namespace Content.Shared.Chat.TypingIndicator; @@ -11,8 +11,9 @@ public abstract class SharedTypingIndicatorSystem : EntitySystem /// /// Default ID of /// + [ValidatePrototypeId] public const string InitialIndicatorId = "default"; - + public override void Initialize() { base.Initialize(); @@ -25,7 +26,7 @@ public abstract class SharedTypingIndicatorSystem : EntitySystem if (!TryComp(uid, out var clothing) || !TryComp(args.Equipee, out var indicator)) return; - + var isCorrectSlot = clothing.Slots.HasFlag(args.SlotFlags); if (!isCorrectSlot) return; diff --git a/Content.Shared/Drunk/DrunkSystem.cs b/Content.Shared/Drunk/DrunkSystem.cs index 6123c07177..4f9429b6a6 100644 --- a/Content.Shared/Drunk/DrunkSystem.cs +++ b/Content.Shared/Drunk/DrunkSystem.cs @@ -6,6 +6,7 @@ namespace Content.Shared.Drunk; public abstract class SharedDrunkSystem : EntitySystem { + [ValidatePrototypeId] public const string DrunkKey = "Drunk"; [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; diff --git a/Content.Shared/Eye/Blinding/Systems/TemporaryBlindnessSystem.cs b/Content.Shared/Eye/Blinding/Systems/TemporaryBlindnessSystem.cs index 431c40d316..aa3ff9fdc3 100644 --- a/Content.Shared/Eye/Blinding/Systems/TemporaryBlindnessSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/TemporaryBlindnessSystem.cs @@ -1,9 +1,11 @@ using Content.Shared.Eye.Blinding.Components; +using Content.Shared.StatusEffect; namespace Content.Shared.Eye.Blinding.Systems; public sealed class TemporaryBlindnessSystem : EntitySystem { + [ValidatePrototypeId] public const string BlindingStatusEffect = "TemporaryBlindness"; [Dependency] private readonly BlindableSystem _blindableSystem = default!; diff --git a/Content.Shared/Fluids/Components/DrainComponent.cs b/Content.Shared/Fluids/Components/DrainComponent.cs index 0be6213839..6c368336ee 100644 --- a/Content.Shared/Fluids/Components/DrainComponent.cs +++ b/Content.Shared/Fluids/Components/DrainComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Tag; using Robust.Shared.Audio; namespace Content.Shared.Fluids.Components; @@ -14,6 +15,8 @@ namespace Content.Shared.Fluids.Components; public sealed class DrainComponent : Component { public const string SolutionName = "drainBuffer"; + + [ValidatePrototypeId] public const string PlungerTag = "Plunger"; [DataField("accumulator")] diff --git a/Content.Shared/GameTicking/SharedGameTicker.cs b/Content.Shared/GameTicking/SharedGameTicker.cs index 15f51f49a5..62af2caef5 100644 --- a/Content.Shared/GameTicking/SharedGameTicker.cs +++ b/Content.Shared/GameTicking/SharedGameTicker.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Network; +using Content.Shared.Roles; using Robust.Shared.Replays; using Robust.Shared.Serialization; using Robust.Shared.Serialization.Markdown.Mapping; @@ -13,7 +13,9 @@ namespace Content.Shared.GameTicking // See ideally these would be pulled from the job definition or something. // But this is easier, and at least it isn't hardcoded. //TODO: Move these, they really belong in StationJobsSystem or a cvar. + [ValidatePrototypeId] public const string FallbackOverflowJob = "Passenger"; + public const string FallbackOverflowJobName = "job-name-passenger"; // TODO network. diff --git a/Content.Shared/Humanoid/HairStyles.cs b/Content.Shared/Humanoid/HairStyles.cs index c5a3d45142..cb4befd85a 100644 --- a/Content.Shared/Humanoid/HairStyles.cs +++ b/Content.Shared/Humanoid/HairStyles.cs @@ -1,8 +1,13 @@ +using Content.Shared.Humanoid.Markings; + namespace Content.Shared.Humanoid { public static class HairStyles { + [ValidatePrototypeId] public const string DefaultHairStyle = "HairBald"; + + [ValidatePrototypeId] public const string DefaultFacialHairStyle = "FacialHairShaved"; public static readonly IReadOnlyList RealisticHairColors = new List diff --git a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs index e462077d46..15adefbd89 100644 --- a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs +++ b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs @@ -2,7 +2,6 @@ using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; -using Robust.Shared.Utility; using System.Linq; using Content.Shared.Preferences; using Robust.Shared.GameObjects.Components.Localization; @@ -25,6 +24,7 @@ public abstract class SharedHumanoidAppearanceSystem : EntitySystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly MarkingManager _markingManager = default!; + [ValidatePrototypeId] public const string DefaultSpecies = "Human"; public override void Initialize() diff --git a/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs b/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs index 4816675ab9..1a5a4daeec 100644 --- a/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs +++ b/Content.Shared/Speech/EntitySystems/SharedStutteringSystem.cs @@ -4,20 +4,21 @@ namespace Content.Shared.Speech.EntitySystems; public abstract class SharedStutteringSystem : EntitySystem { + [ValidatePrototypeId] public const string StutterKey = "Stutter"; - [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; // For code in shared... I imagine we ain't getting accent prediction anytime soon so let's not bother. public virtual void DoStutter(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null) { } - + public virtual void DoRemoveStutterTime(EntityUid uid, double timeRemoved) { _statusEffectsSystem.TryRemoveTime(uid, StutterKey, TimeSpan.FromSeconds(timeRemoved)); } - + public void DoRemoveStutter(EntityUid uid, double timeRemoved) { _statusEffectsSystem.TryRemoveStatusEffect(uid, StutterKey);