diff --git a/Content.Server/Administration/AdminManager.cs b/Content.Server/Administration/AdminManager.cs index 7085525d2f..f3d6c3703f 100644 --- a/Content.Server/Administration/AdminManager.cs +++ b/Content.Server/Administration/AdminManager.cs @@ -490,6 +490,11 @@ namespace Content.Server.Administration return GetAdminData(session)?.CanAdminMenu() ?? false; } + public bool CanAdminReloadPrototypes(IPlayerSession session) + { + return GetAdminData(session)?.CanAdminReloadPrototypes() ?? false; + } + private void SendPermsChangedEvent(IPlayerSession session) { var flags = GetAdminData(session)?.Flags; diff --git a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs index 8e4e6718a4..6805f8f2d2 100644 --- a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs +++ b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs @@ -23,7 +23,7 @@ namespace Content.Server.Atmos.Reactions } [Prototype("gasReaction")] - public class GasReactionPrototype : IPrototype, IIndexedPrototype + public class GasReactionPrototype : IPrototype { public string ID { get; private set; } diff --git a/Content.Server/Botany/Seed.cs b/Content.Server/Botany/Seed.cs index 56240adf5c..020fedfa67 100644 --- a/Content.Server/Botany/Seed.cs +++ b/Content.Server/Botany/Seed.cs @@ -66,7 +66,7 @@ namespace Content.Server.Botany } [Prototype("seed")] - public class Seed : IPrototype, IIndexedPrototype, IExposeData + public class Seed : IPrototype, IExposeData { private const string SeedPrototype = "SeedBase"; diff --git a/Content.Server/GameObjects/Components/BarSign/BarSignPrototype.cs b/Content.Server/GameObjects/Components/BarSign/BarSignPrototype.cs index 7026d7b8b5..79e2d7903d 100644 --- a/Content.Server/GameObjects/Components/BarSign/BarSignPrototype.cs +++ b/Content.Server/GameObjects/Components/BarSign/BarSignPrototype.cs @@ -6,7 +6,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Server.GameObjects.Components.BarSign { [Prototype("barSign")] - public class BarSignPrototype : IPrototype, IIndexedPrototype + public class BarSignPrototype : IPrototype { public string ID { get; private set; } public string Icon { get; private set; } diff --git a/Content.Server/Holiday/HolidayPrototype.cs b/Content.Server/Holiday/HolidayPrototype.cs index 6843d4eef8..49750e717c 100644 --- a/Content.Server/Holiday/HolidayPrototype.cs +++ b/Content.Server/Holiday/HolidayPrototype.cs @@ -12,7 +12,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Server.Holiday { [Prototype("holiday")] - public class HolidayPrototype : IPrototype, IIndexedPrototype + public class HolidayPrototype : IPrototype { [ViewVariables] public string Name { get; private set; } = string.Empty; [ViewVariables] public string ID { get; private set; } = string.Empty; diff --git a/Content.Server/Objectives/ObjectivePrototype.cs b/Content.Server/Objectives/ObjectivePrototype.cs index 4472f4274b..712f098e43 100644 --- a/Content.Server/Objectives/ObjectivePrototype.cs +++ b/Content.Server/Objectives/ObjectivePrototype.cs @@ -10,7 +10,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Server.Objectives { [Prototype("objective")] - public class ObjectivePrototype : IPrototype, IIndexedPrototype + public class ObjectivePrototype : IPrototype { [ViewVariables] public string ID { get; private set; } diff --git a/Content.Shared/Access/AccessLevelPrototype.cs b/Content.Shared/Access/AccessLevelPrototype.cs index 9e042701ae..fec1477147 100644 --- a/Content.Shared/Access/AccessLevelPrototype.cs +++ b/Content.Shared/Access/AccessLevelPrototype.cs @@ -9,7 +9,7 @@ namespace Content.Shared.Access /// Defines a single access level that can be stored on ID cards and checked for. /// [Prototype("accessLevel")] - public class AccessLevelPrototype : IPrototype, IIndexedPrototype + public class AccessLevelPrototype : IPrototype { public void LoadFrom(YamlMappingNode mapping) { diff --git a/Content.Shared/Actions/BaseActionPrototype.cs b/Content.Shared/Actions/BaseActionPrototype.cs index 2cfd90b624..3279258d49 100644 --- a/Content.Shared/Actions/BaseActionPrototype.cs +++ b/Content.Shared/Actions/BaseActionPrototype.cs @@ -15,6 +15,8 @@ namespace Content.Shared.Actions /// public abstract class BaseActionPrototype : IPrototype { + public string ID { get; private set; } + /// /// Icon representing this action in the UI. /// @@ -89,7 +91,11 @@ namespace Content.Shared.Actions var serializer = YamlObjectSerializer.NewReader(mapping); serializer.DataReadFunction("name", string.Empty, - s => Name = FormattedMessage.FromMarkup(s)); + s => + { + ID = s; + Name = FormattedMessage.FromMarkup(s); + }); serializer.DataReadFunction("description", string.Empty, s => Description = FormattedMessage.FromMarkup(s)); diff --git a/Content.Shared/Administration/AdminData.cs b/Content.Shared/Administration/AdminData.cs index 8c56f901ed..a0727efc67 100644 --- a/Content.Shared/Administration/AdminData.cs +++ b/Content.Shared/Administration/AdminData.cs @@ -64,5 +64,10 @@ namespace Content.Shared.Administration { return HasFlag(AdminFlags.Admin); } + + public bool CanAdminReloadPrototypes() + { + return HasFlag(AdminFlags.Host); + } } } diff --git a/Content.Shared/Alert/AlertOrderPrototype.cs b/Content.Shared/Alert/AlertOrderPrototype.cs index 18cf2eb617..7e2393efe9 100644 --- a/Content.Shared/Alert/AlertOrderPrototype.cs +++ b/Content.Shared/Alert/AlertOrderPrototype.cs @@ -12,23 +12,29 @@ namespace Content.Shared.Alert [Prototype("alertOrder")] public class AlertOrderPrototype : IPrototype, IComparer { + public string ID { get; private set; } + private readonly Dictionary _typeToIdx = new(); private readonly Dictionary _categoryToIdx = new(); public void LoadFrom(YamlMappingNode mapping) { + var serializer = YamlObjectSerializer.NewReader(mapping); + + serializer.DataField(this, x => x.ID, "id", string.Empty); + if (!mapping.TryGetNode("order", out YamlSequenceNode orderMapping)) return; - int i = 0; + var i = 0; foreach (var entryYaml in orderMapping) { var orderEntry = (YamlMappingNode) entryYaml; - var serializer = YamlObjectSerializer.NewReader(orderEntry); - if (serializer.TryReadDataField("category", out AlertCategory alertCategory)) + var orderSerializer = YamlObjectSerializer.NewReader(orderEntry); + if (orderSerializer.TryReadDataField("category", out AlertCategory alertCategory)) { _categoryToIdx[alertCategory] = i++; } - else if (serializer.TryReadDataField("alertType", out AlertType alertType)) + else if (orderSerializer.TryReadDataField("alertType", out AlertType alertType)) { _typeToIdx[alertType] = i++; } diff --git a/Content.Shared/Alert/AlertPrototype.cs b/Content.Shared/Alert/AlertPrototype.cs index e2af7906b0..465f1c5d92 100644 --- a/Content.Shared/Alert/AlertPrototype.cs +++ b/Content.Shared/Alert/AlertPrototype.cs @@ -17,6 +17,8 @@ namespace Content.Shared.Alert [Prototype("alert")] public class AlertPrototype : IPrototype { + public string ID { get; private set; } + /// /// Type of alert, no 2 alert prototypes should have the same one. /// @@ -94,7 +96,11 @@ namespace Content.Shared.Alert serializer.DataField(ref _minSeverity, "minSeverity", (short) 1); serializer.DataReadFunction("name", string.Empty, - s => Name = FormattedMessage.FromMarkup(s)); + s => + { + ID = s; + Name = FormattedMessage.FromMarkup(s); + }); serializer.DataReadFunction("description", string.Empty, s => Description = FormattedMessage.FromMarkup(s)); diff --git a/Content.Shared/Atmos/GasPrototype.cs b/Content.Shared/Atmos/GasPrototype.cs index 1878f6a9b0..421d6a115b 100644 --- a/Content.Shared/Atmos/GasPrototype.cs +++ b/Content.Shared/Atmos/GasPrototype.cs @@ -5,7 +5,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Atmos { [Prototype("gas")] - public class GasPrototype : IPrototype, IIndexedPrototype + public class GasPrototype : IPrototype { public string Name { get; private set; } diff --git a/Content.Shared/Audio/SoundCollectionPrototype.cs b/Content.Shared/Audio/SoundCollectionPrototype.cs index e4918bf518..a742ca1fbf 100644 --- a/Content.Shared/Audio/SoundCollectionPrototype.cs +++ b/Content.Shared/Audio/SoundCollectionPrototype.cs @@ -6,7 +6,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Audio { [Prototype("soundCollection")] - public sealed class SoundCollectionPrototype : IPrototype, IIndexedPrototype + public sealed class SoundCollectionPrototype : IPrototype { public string ID { get; private set; } public IReadOnlyList PickFiles { get; private set; } diff --git a/Content.Shared/Chemistry/ReactionPrototype.cs b/Content.Shared/Chemistry/ReactionPrototype.cs index fa6b8280f1..558f5012c4 100644 --- a/Content.Shared/Chemistry/ReactionPrototype.cs +++ b/Content.Shared/Chemistry/ReactionPrototype.cs @@ -14,7 +14,7 @@ namespace Content.Shared.Chemistry /// Prototype for chemical reaction definitions /// [Prototype("reaction")] - public class ReactionPrototype : IPrototype, IIndexedPrototype + public class ReactionPrototype : IPrototype { private string _id = default!; private string _name = default!; diff --git a/Content.Shared/Chemistry/ReagentPrototype.cs b/Content.Shared/Chemistry/ReagentPrototype.cs index 2773f8df5d..ab09269656 100644 --- a/Content.Shared/Chemistry/ReagentPrototype.cs +++ b/Content.Shared/Chemistry/ReagentPrototype.cs @@ -15,7 +15,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Chemistry { [Prototype("reagent")] - public class ReagentPrototype : IPrototype, IIndexedPrototype + public class ReagentPrototype : IPrototype { [Dependency] private readonly IModuleManager _moduleManager = default!; diff --git a/Content.Shared/Construction/ConstructionGraphPrototype.cs b/Content.Shared/Construction/ConstructionGraphPrototype.cs index 857dff7bdb..ccc8e541a3 100644 --- a/Content.Shared/Construction/ConstructionGraphPrototype.cs +++ b/Content.Shared/Construction/ConstructionGraphPrototype.cs @@ -10,7 +10,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Construction { [Prototype("constructionGraph")] - public class ConstructionGraphPrototype : IPrototype, IIndexedPrototype + public class ConstructionGraphPrototype : IPrototype { private readonly Dictionary _nodes = new(); private readonly Dictionary, ConstructionGraphNode[]> _paths = new(); diff --git a/Content.Shared/Construction/ConstructionPrototype.cs b/Content.Shared/Construction/ConstructionPrototype.cs index 17d88a7f9e..542c4adfbc 100644 --- a/Content.Shared/Construction/ConstructionPrototype.cs +++ b/Content.Shared/Construction/ConstructionPrototype.cs @@ -7,7 +7,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Construction { [Prototype("construction")] - public class ConstructionPrototype : IPrototype, IIndexedPrototype + public class ConstructionPrototype : IPrototype { private List _conditions; diff --git a/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs b/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs index b43f800ec9..abc3069266 100644 --- a/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs +++ b/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs @@ -12,7 +12,7 @@ namespace Content.Shared.Damage.DamageContainer /// [Prototype("damageContainer")] [Serializable, NetSerializable] - public class DamageContainerPrototype : IPrototype, IIndexedPrototype + public class DamageContainerPrototype : IPrototype { private bool _supportAll; private HashSet _supportedClasses; diff --git a/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs b/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs index 821723053f..108b45e4a1 100644 --- a/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs +++ b/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs @@ -12,7 +12,7 @@ namespace Content.Shared.Damage.ResistanceSet /// [Prototype("resistanceSet")] [Serializable, NetSerializable] - public class ResistanceSetPrototype : IPrototype, IIndexedPrototype + public class ResistanceSetPrototype : IPrototype { private Dictionary _coefficients; private Dictionary _flatReductions; diff --git a/Content.Shared/GameObjects/Components/Body/Preset/BodyPresetPrototype.cs b/Content.Shared/GameObjects/Components/Body/Preset/BodyPresetPrototype.cs index 6c7a0e1126..29e623e521 100644 --- a/Content.Shared/GameObjects/Components/Body/Preset/BodyPresetPrototype.cs +++ b/Content.Shared/GameObjects/Components/Body/Preset/BodyPresetPrototype.cs @@ -13,7 +13,7 @@ namespace Content.Shared.GameObjects.Components.Body.Preset /// [Prototype("bodyPreset")] [Serializable, NetSerializable] - public class BodyPresetPrototype : IPrototype, IIndexedPrototype + public class BodyPresetPrototype : IPrototype { private string _id; private string _name; diff --git a/Content.Shared/GameObjects/Components/Body/Template/BodyTemplatePrototype.cs b/Content.Shared/GameObjects/Components/Body/Template/BodyTemplatePrototype.cs index d1da8c8766..dd661952b7 100644 --- a/Content.Shared/GameObjects/Components/Body/Template/BodyTemplatePrototype.cs +++ b/Content.Shared/GameObjects/Components/Body/Template/BodyTemplatePrototype.cs @@ -14,7 +14,7 @@ namespace Content.Shared.GameObjects.Components.Body.Template /// [Prototype("bodyTemplate")] [Serializable, NetSerializable] - public class BodyTemplatePrototype : IPrototype, IIndexedPrototype + public class BodyTemplatePrototype : IPrototype { private string _id; private string _name; diff --git a/Content.Shared/GameObjects/Components/Chemistry/ReagentDispenser/ReagentDispenserInventoryPrototype.cs b/Content.Shared/GameObjects/Components/Chemistry/ReagentDispenser/ReagentDispenserInventoryPrototype.cs index aa95bfe187..56f8841269 100644 --- a/Content.Shared/GameObjects/Components/Chemistry/ReagentDispenser/ReagentDispenserInventoryPrototype.cs +++ b/Content.Shared/GameObjects/Components/Chemistry/ReagentDispenser/ReagentDispenserInventoryPrototype.cs @@ -13,7 +13,7 @@ namespace Content.Shared.GameObjects.Components.Chemistry.ReagentDispenser /// machines define their inventory. /// [Serializable, NetSerializable, Prototype("reagentDispenserInventory")] - public class ReagentDispenserInventoryPrototype : IPrototype, IIndexedPrototype + public class ReagentDispenserInventoryPrototype : IPrototype { private string _id; private List _inventory; diff --git a/Content.Shared/GameObjects/Components/SharedCrayonComponent.cs b/Content.Shared/GameObjects/Components/SharedCrayonComponent.cs index d7286dc701..17c44fdfc5 100644 --- a/Content.Shared/GameObjects/Components/SharedCrayonComponent.cs +++ b/Content.Shared/GameObjects/Components/SharedCrayonComponent.cs @@ -73,6 +73,8 @@ namespace Content.Shared.GameObjects.Components [Serializable, NetSerializable, Prototype("crayonDecal")] public class CrayonDecalPrototype : IPrototype { + public string ID { get; private set; } + private string _spritePath; public string SpritePath => _spritePath; @@ -83,6 +85,7 @@ namespace Content.Shared.GameObjects.Components { var serializer = YamlObjectSerializer.NewReader(mapping); + serializer.DataField(this, x => x.ID, "id", string.Empty); serializer.DataField(ref _spritePath, "spritePath", ""); serializer.DataField(ref _decals, "decals", new List()); } diff --git a/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs b/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs index 6150e3c173..dec76db0df 100644 --- a/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs +++ b/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs @@ -8,7 +8,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.GameObjects.Components.Weapons.Melee { [Prototype("MeleeWeaponAnimation")] - public sealed class MeleeWeaponAnimationPrototype : IPrototype, IIndexedPrototype + public sealed class MeleeWeaponAnimationPrototype : IPrototype { private string _prototype; private string _state; @@ -19,7 +19,7 @@ namespace Content.Shared.GameObjects.Components.Weapons.Melee private float _speed; private float _width; private WeaponArcType _arcType; - + [ViewVariables] public string ID => _id; [ViewVariables] public string State => _state; [ViewVariables] public string Prototype => _prototype; diff --git a/Content.Shared/Maps/ContentTileDefinition.cs b/Content.Shared/Maps/ContentTileDefinition.cs index 5954d55321..959fe20082 100644 --- a/Content.Shared/Maps/ContentTileDefinition.cs +++ b/Content.Shared/Maps/ContentTileDefinition.cs @@ -10,9 +10,9 @@ namespace Content.Shared.Maps { [UsedImplicitly] [Prototype("tile")] - public sealed class ContentTileDefinition : IPrototype, IIndexedPrototype, ITileDefinition + public sealed class ContentTileDefinition : IPrototype, ITileDefinition { - string IIndexedPrototype.ID => Name; + string IPrototype.ID => Name; public string Name { get; private set; } public ushort TileId { get; private set; } diff --git a/Content.Shared/Materials/Material.cs b/Content.Shared/Materials/Material.cs index 0c9e7b2f87..f5ec67062f 100644 --- a/Content.Shared/Materials/Material.cs +++ b/Content.Shared/Materials/Material.cs @@ -112,7 +112,7 @@ namespace Content.Shared.Materials } [Prototype("material")] - public class MaterialPrototype : IPrototype, IIndexedPrototype + public class MaterialPrototype : IPrototype { public string ID { get; private set; } diff --git a/Content.Shared/Prototypes/Cargo/CargoProductPrototype.cs b/Content.Shared/Prototypes/Cargo/CargoProductPrototype.cs index b30e04f9d3..d3c98cc623 100644 --- a/Content.Shared/Prototypes/Cargo/CargoProductPrototype.cs +++ b/Content.Shared/Prototypes/Cargo/CargoProductPrototype.cs @@ -9,7 +9,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Prototypes.Cargo { [NetSerializable, Serializable, Prototype("cargoProduct")] - public class CargoProductPrototype : IPrototype, IIndexedPrototype + public class CargoProductPrototype : IPrototype { private string _id; private string _name; diff --git a/Content.Shared/Prototypes/DatasetPrototype.cs b/Content.Shared/Prototypes/DatasetPrototype.cs index 849800fb93..0da4e4c236 100644 --- a/Content.Shared/Prototypes/DatasetPrototype.cs +++ b/Content.Shared/Prototypes/DatasetPrototype.cs @@ -6,7 +6,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Prototypes { [Prototype("dataset")] - public class DatasetPrototype : IPrototype, IIndexedPrototype + public class DatasetPrototype : IPrototype { private string _id; public string ID => _id; diff --git a/Content.Shared/Prototypes/Kitchen/MicrowaveMealRecipePrototype.cs b/Content.Shared/Prototypes/Kitchen/MicrowaveMealRecipePrototype.cs index d0c6d44357..94748203d0 100644 --- a/Content.Shared/Prototypes/Kitchen/MicrowaveMealRecipePrototype.cs +++ b/Content.Shared/Prototypes/Kitchen/MicrowaveMealRecipePrototype.cs @@ -9,20 +9,17 @@ namespace Content.Shared.Prototypes.Kitchen /// /// A recipe for space microwaves. /// - [Prototype("microwaveMealRecipe")] - - public class FoodRecipePrototype : IPrototype, IIndexedPrototype + public class FoodRecipePrototype : IPrototype { - private string _id; private string _name; private string _result; private int _cookTime; - + private Dictionary _ingsReagents; private Dictionary _ingsSolids; - + public string Name => Loc.GetString(_name); public string ID => _id; public string Result => _result; @@ -30,7 +27,6 @@ namespace Content.Shared.Prototypes.Kitchen public IReadOnlyDictionary IngredientsReagents => _ingsReagents; public IReadOnlyDictionary IngredientsSolids => _ingsSolids; - public void LoadFrom(YamlMappingNode mapping) { var serializer = YamlObjectSerializer.NewReader(mapping); @@ -42,6 +38,5 @@ namespace Content.Shared.Prototypes.Kitchen serializer.DataField(ref _ingsSolids, "solids", new Dictionary()); serializer.DataField(ref _cookTime, "time", 5); } - } } diff --git a/Content.Shared/Prototypes/PDA/UplinkStoreListingPrototype.cs b/Content.Shared/Prototypes/PDA/UplinkStoreListingPrototype.cs index a00d5ff666..52e54482ed 100644 --- a/Content.Shared/Prototypes/PDA/UplinkStoreListingPrototype.cs +++ b/Content.Shared/Prototypes/PDA/UplinkStoreListingPrototype.cs @@ -6,9 +6,8 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Prototypes.PDA { [Prototype("uplinkListing")] - public class UplinkStoreListingPrototype : IPrototype, IIndexedPrototype + public class UplinkStoreListingPrototype : IPrototype { - private string _id; private string _itemId; private int _price; @@ -23,6 +22,7 @@ namespace Content.Shared.Prototypes.PDA public UplinkCategory Category => _category; public string Description => _desc; public string ListingName => _name; + public void LoadFrom(YamlMappingNode mapping) { var serializer = YamlObjectSerializer.NewReader(mapping); @@ -32,7 +32,6 @@ namespace Content.Shared.Prototypes.PDA serializer.DataField(ref _category, "category", UplinkCategory.Utility); serializer.DataField(ref _desc, "description", string.Empty); serializer.DataField(ref _name, "listingName", string.Empty); - } } } diff --git a/Content.Shared/Prototypes/Tag/TagPrototype.cs b/Content.Shared/Prototypes/Tag/TagPrototype.cs index 046e46b11d..23cb70786c 100644 --- a/Content.Shared/Prototypes/Tag/TagPrototype.cs +++ b/Content.Shared/Prototypes/Tag/TagPrototype.cs @@ -12,7 +12,7 @@ namespace Content.Shared.Prototypes.Tag /// gets saved in TagComponent. /// [Prototype("Tag")] - public class TagPrototype : IPrototype, IIndexedPrototype + public class TagPrototype : IPrototype { public string ID { get; [UsedImplicitly] private set; } = default!; diff --git a/Content.Shared/Research/LatheRecipePrototype.cs b/Content.Shared/Research/LatheRecipePrototype.cs index 3c1cb8cdf6..f36b4fa025 100644 --- a/Content.Shared/Research/LatheRecipePrototype.cs +++ b/Content.Shared/Research/LatheRecipePrototype.cs @@ -10,7 +10,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Research { [NetSerializable, Serializable, Prototype("latheRecipe")] - public class LatheRecipePrototype : IPrototype, IIndexedPrototype + public class LatheRecipePrototype : IPrototype { private string _name; private string _id; diff --git a/Content.Shared/Research/TechnologyPrototype.cs b/Content.Shared/Research/TechnologyPrototype.cs index 38c51f9aad..4d3b74699a 100644 --- a/Content.Shared/Research/TechnologyPrototype.cs +++ b/Content.Shared/Research/TechnologyPrototype.cs @@ -9,7 +9,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.Research { [NetSerializable, Serializable, Prototype("technology")] - public class TechnologyPrototype : IPrototype, IIndexedPrototype + public class TechnologyPrototype : IPrototype { private string _name; private string _id; diff --git a/Content.Shared/Roles/AntagPrototype.cs b/Content.Shared/Roles/AntagPrototype.cs index caa0776fca..26f271f144 100644 --- a/Content.Shared/Roles/AntagPrototype.cs +++ b/Content.Shared/Roles/AntagPrototype.cs @@ -9,7 +9,7 @@ namespace Content.Shared.Roles /// Describes information for a single antag. /// [Prototype("antag")] - public class AntagPrototype : IPrototype, IIndexedPrototype + public class AntagPrototype : IPrototype { public string ID { get; private set; } diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs index 08bf12e340..59331dedbd 100644 --- a/Content.Shared/Roles/JobPrototype.cs +++ b/Content.Shared/Roles/JobPrototype.cs @@ -11,7 +11,7 @@ namespace Content.Shared.Roles /// Describes information for a single job on the station. /// [Prototype("job")] - public class JobPrototype : IPrototype, IIndexedPrototype + public class JobPrototype : IPrototype { public string ID { get; private set; } diff --git a/Content.Shared/Roles/StartingGearPrototype.cs b/Content.Shared/Roles/StartingGearPrototype.cs index 567a66f181..23b2a7450f 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -12,7 +12,7 @@ using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefine namespace Content.Shared.Roles { [Prototype("startingGear")] - public class StartingGearPrototype : IPrototype, IIndexedPrototype + public class StartingGearPrototype : IPrototype { private string _id = default!; private Dictionary _equipment = default!; diff --git a/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs index 4b3f7063f4..b4274390ec 100644 --- a/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs +++ b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs @@ -7,7 +7,7 @@ using YamlDotNet.RepresentationModel; namespace Content.Shared.VendingMachines { [Serializable, NetSerializable, Prototype("vendingMachineInventory")] - public class VendingMachineInventoryPrototype : IPrototype, IIndexedPrototype + public class VendingMachineInventoryPrototype : IPrototype { private string _id; private string _name; diff --git a/Content.Tests/Server/GameObjects/Components/Mobs/ServerAlertsComponentTests.cs b/Content.Tests/Server/GameObjects/Components/Mobs/ServerAlertsComponentTests.cs index 6139717185..42cf459a1b 100644 --- a/Content.Tests/Server/GameObjects/Components/Mobs/ServerAlertsComponentTests.cs +++ b/Content.Tests/Server/GameObjects/Components/Mobs/ServerAlertsComponentTests.cs @@ -15,11 +15,13 @@ namespace Content.Tests.Server.GameObjects.Components.Mobs { const string PROTOTYPES = @" - type: alert + name: AlertLowPressure alertType: LowPressure category: Pressure icon: /Textures/Interface/Alerts/Pressure/lowpressure.png - type: alert + name: AlertHighPressure alertType: HighPressure category: Pressure icon: /Textures/Interface/Alerts/Pressure/highpressure.png diff --git a/Content.Tests/Shared/Alert/AlertManagerTests.cs b/Content.Tests/Shared/Alert/AlertManagerTests.cs index 2e9f79cbb5..796b71c432 100644 --- a/Content.Tests/Shared/Alert/AlertManagerTests.cs +++ b/Content.Tests/Shared/Alert/AlertManagerTests.cs @@ -12,10 +12,12 @@ namespace Content.Tests.Shared.Alert { const string PROTOTYPES = @" - type: alert + name: AlertLowPressure alertType: LowPressure icon: /Textures/Interface/Alerts/Pressure/lowpressure.png - type: alert + name: AlertHighPressure alertType: HighPressure icon: /Textures/Interface/Alerts/Pressure/highpressure.png "; diff --git a/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs b/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs index c39ef83b31..dca7c0d2c8 100644 --- a/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs +++ b/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs @@ -23,39 +23,49 @@ namespace Content.Tests.Shared.Alert - category: Temperature - type: alert + name: AlertLowPressure category: Pressure alertType: LowPressure - type: alert + name: AlertOverfed category: Hunger alertType: Overfed - type: alert + name: AlertHighPressure category: Pressure alertType: HighPressure - type: alert + name: AlertPeckish category: Hunger alertType: Peckish - type: alert + name: AlertStun alertType: Stun - type: alert + name: AlertHandcuffed alertType: Handcuffed - type: alert + name: AlertHot category: Temperature alertType: Hot - type: alert + name: AlertCold category: Temperature alertType: Cold - type: alert + name: AlertWeightless alertType: Weightless - type: alert + name: AlertPilotingShuttle alertType: PilotingShuttle "; diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 1c2450b7c8..25a751d10f 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -2,6 +2,7 @@ # Defines ordering in alert tab, higher up = higher in tab. # List below can contain alert type or category, if both are present the id will take precedence. # If item is not in list it will go at the bottom (ties broken by alert type enum value) + id: BaseAlertOrder order: - category: Health - alertType: Fire @@ -197,35 +198,35 @@ - type: alert alertType: Debug1 icon: /Textures/Interface/Alerts/Human/human1.png - name: Debug + name: Debug1 description: Debug - type: alert alertType: Debug2 icon: /Textures/Interface/Alerts/Human/human2.png - name: Debug + name: Debug2 description: Debug - type: alert alertType: Debug3 icon: /Textures/Interface/Alerts/Human/human3.png - name: Debug + name: Debug3 description: Debug - type: alert alertType: Debug4 icon: /Textures/Interface/Alerts/Human/human4.png - name: Debug + name: Debug4 description: Debug - type: alert alertType: Debug5 icon: /Textures/Interface/Alerts/Human/human5.png - name: Debug + name: Debug5 description: Debug - type: alert alertType: Debug6 icon: /Textures/Interface/Alerts/Human/human6.png - name: Debug + name: Debug6 description: Debug diff --git a/Resources/Prototypes/Catalog/crayon_decals.yml b/Resources/Prototypes/Catalog/crayon_decals.yml index bc0fa8b4a7..b5f04bf6bc 100644 --- a/Resources/Prototypes/Catalog/crayon_decals.yml +++ b/Resources/Prototypes/Catalog/crayon_decals.yml @@ -1,4 +1,5 @@ - type: crayonDecal + id: BaseDecals spritePath: "Constructible/Misc/crayondecals.rsi" decals: - 0