From 5ba36dad25423c59667e165aa296d5fbacdd5a3e Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 8 Oct 2022 13:47:54 -0400 Subject: [PATCH] Removes prototype construction steps (I HATE PROTOTYPE STEPS) (#11611) --- .../Construction/ConstructionPrototypeTest.cs | 43 -------------- .../ConstructionGraphStepTypeSerializer.cs | 5 -- .../Steps/PrototypeConstructionGraphStep.cs | 31 ---------- .../Steps/TagConstructionGraphStep.cs | 4 +- Resources/Prototypes/Body/Parts/human.yml | 3 + Resources/Prototypes/Body/Parts/reptilian.yml | 3 + Resources/Prototypes/Body/Parts/skeleton.yml | 5 +- Resources/Prototypes/Body/Parts/slime.yml | 3 + Resources/Prototypes/Body/Parts/vox.yml | 3 + .../Catalog/Fills/Boxes/emergency.yml | 3 + .../Catalog/Fills/Boxes/general.yml | 5 +- .../Devices/Circuitboards/computer.yml | 8 +++ .../Devices/Electronics/atmos_alarms.yml | 8 +++ .../Objects/Devices/Electronics/disposal.yml | 4 ++ .../Objects/Devices/Electronics/door.yml | 4 ++ .../Devices/Electronics/power_electronics.yml | 16 +++++ .../Entities/Objects/Fun/bike_horn.yml | 1 + .../Entities/Objects/Materials/shards.yml | 4 ++ .../Entities/Objects/Misc/paper.yml | 3 + .../Entities/Objects/Power/solar_parts.yml | 3 + .../Entities/Objects/Tools/bucket.yml | 3 + .../Graphs/furniture/ritualseat.yml | 2 +- .../Graphs/structures/airlock.yml | 2 +- .../Graphs/structures/shutter.yml | 4 +- .../Graphs/structures/shuttle.yml | 2 +- .../Graphs/structures/windoor.yml | 4 +- .../Graphs/utilities/air_alarms.yml | 4 +- .../Graphs/utilities/disposal_machines.yml | 2 +- .../Graphs/utilities/solarpanel.yml | 10 ++-- .../Graphs/utilities/wallmount_generator.yml | 18 +++--- .../Graphs/utilities/wallmount_substation.yml | 12 ++-- .../utilities/wallmount_telemonitors.yml | 20 +++---- .../Graphs/weapons/modular_mine.yml | 2 +- .../Construction/Graphs/weapons/spear.yml | 4 +- .../Recipes/Crafting/Graphs/bots/cleanbot.yml | 4 +- .../Recipes/Crafting/Graphs/bots/honkbot.yml | 6 +- .../Recipes/Crafting/Graphs/bots/medibot.yml | 2 +- Resources/Prototypes/tags.yml | 59 +++++++++++++++++-- 38 files changed, 182 insertions(+), 137 deletions(-) delete mode 100644 Content.Shared/Construction/Steps/PrototypeConstructionGraphStep.cs diff --git a/Content.IntegrationTests/Tests/Construction/ConstructionPrototypeTest.cs b/Content.IntegrationTests/Tests/Construction/ConstructionPrototypeTest.cs index 60606c05e3..e51b7870f7 100644 --- a/Content.IntegrationTests/Tests/Construction/ConstructionPrototypeTest.cs +++ b/Content.IntegrationTests/Tests/Construction/ConstructionPrototypeTest.cs @@ -112,48 +112,5 @@ namespace Content.IntegrationTests.Tests.Construction } await pairTracker.CleanReturnAsync(); } - - [Test] - public async Task TestStackPrototypeSteps() - { - // People often mistakenly use the prototype-step rather than a material-step, resulting in a whole stack - // being consumed. This checks that if something uses a prototype step, that the relevant prototype does not - // have a stack component. - // - // If, for whatever reason, that is ever required, then this test should probably just support an ignore - // list. Though the test should then also checks that it accepts both the full-stack and single-sheet - // prototypes. - - await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings { NoClient = true }); - var server = pairTracker.Pair.Server; - var protoMan = server.ResolveDependency(); - var stackName = server.ResolveDependency().GetComponentName(typeof(StackComponent)); - - Assert.Multiple(() => - { - // quadruple for loop nesting, what fun. - foreach (var protoGraph in protoMan.EnumeratePrototypes()) - { - foreach (var node in protoGraph.Nodes.Values) - { - foreach (var edge in node.Edges) - { - foreach (var step in edge.Steps) - { - if (step is not PrototypeConstructionGraphStep protoStep) - continue; - - var protoEnt = protoMan.Index(protoStep.Prototype); - - Assert.False(protoEnt.Components.ContainsKey(stackName), - $"Construction graph {protoGraph.ID} uses a prototype-step that consumes a stackable entity {protoEnt.ID}"); - } - } - } - } - }); - - await pairTracker.CleanReturnAsync(); - } } } diff --git a/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs b/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs index 4042c50e71..7cd2b57947 100644 --- a/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs +++ b/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs @@ -20,11 +20,6 @@ namespace Content.Shared.Construction.Steps return typeof(ToolConstructionGraphStep); } - if (node.Has("prototype")) - { - return typeof(PrototypeConstructionGraphStep); - } - if (node.Has("component")) { return typeof(ComponentConstructionGraphStep); diff --git a/Content.Shared/Construction/Steps/PrototypeConstructionGraphStep.cs b/Content.Shared/Construction/Steps/PrototypeConstructionGraphStep.cs deleted file mode 100644 index d6d75f4054..0000000000 --- a/Content.Shared/Construction/Steps/PrototypeConstructionGraphStep.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Content.Shared.Examine; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Shared.Construction.Steps -{ - [DataDefinition] - public sealed class PrototypeConstructionGraphStep : ArbitraryInsertConstructionGraphStep - { - [DataField("prototype", customTypeSerializer:typeof(PrototypeIdSerializer), required:true)] - public string Prototype { get; } = string.Empty; - - public override bool EntityValid(EntityUid uid, IEntityManager entityManager) - { - return entityManager.GetComponent(uid).EntityPrototype?.ID == Prototype; - } - - public override void DoExamine(ExaminedEvent examinedEvent) - { - examinedEvent.Message.AddMarkup(string.IsNullOrEmpty(Name) - ? Loc.GetString( - "construction-insert-prototype-no-name", - ("prototypeName", Prototype) // Terrible. - ) - : Loc.GetString( - "construction-insert-prototype", - ("entityName", Name) - )); - } - } -} diff --git a/Content.Shared/Construction/Steps/TagConstructionGraphStep.cs b/Content.Shared/Construction/Steps/TagConstructionGraphStep.cs index 5e12d0ee87..24e73fa114 100644 --- a/Content.Shared/Construction/Steps/TagConstructionGraphStep.cs +++ b/Content.Shared/Construction/Steps/TagConstructionGraphStep.cs @@ -6,11 +6,11 @@ namespace Content.Shared.Construction.Steps public sealed class TagConstructionGraphStep : ArbitraryInsertConstructionGraphStep { [DataField("tag")] - private string? _tag = null; + private string? _tag; public override bool EntityValid(EntityUid uid, IEntityManager entityManager) { - var tagSystem = EntitySystem.Get(); + var tagSystem = entityManager.EntitySysManager.GetEntitySystem(); return !string.IsNullOrEmpty(_tag) && tagSystem.HasTag(uid, _tag); } } diff --git a/Resources/Prototypes/Body/Parts/human.yml b/Resources/Prototypes/Body/Parts/human.yml index 6055e2752d..aba69223e9 100644 --- a/Resources/Prototypes/Body/Parts/human.yml +++ b/Resources/Prototypes/Body/Parts/human.yml @@ -70,6 +70,9 @@ baseSprintSpeed: 0 - type: InputMover - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmHuman diff --git a/Resources/Prototypes/Body/Parts/reptilian.yml b/Resources/Prototypes/Body/Parts/reptilian.yml index 709bd71ac8..9e2e74ea4c 100644 --- a/Resources/Prototypes/Body/Parts/reptilian.yml +++ b/Resources/Prototypes/Body/Parts/reptilian.yml @@ -68,6 +68,9 @@ baseSprintSpeed: 0 - type: InputMover - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmReptilian diff --git a/Resources/Prototypes/Body/Parts/skeleton.yml b/Resources/Prototypes/Body/Parts/skeleton.yml index d6477a134f..c13fa128a4 100644 --- a/Resources/Prototypes/Body/Parts/skeleton.yml +++ b/Resources/Prototypes/Body/Parts/skeleton.yml @@ -70,8 +70,9 @@ 0: Alive # criticalThreshold: 50 # deadThreshold: 120 - - + - type: Tag + tags: + - Head - type: entity id: LeftArmSkeleton diff --git a/Resources/Prototypes/Body/Parts/slime.yml b/Resources/Prototypes/Body/Parts/slime.yml index c2e77ecc1e..6b2092aaab 100644 --- a/Resources/Prototypes/Body/Parts/slime.yml +++ b/Resources/Prototypes/Body/Parts/slime.yml @@ -63,6 +63,9 @@ baseSprintSpeed: 0 - type: InputMover - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmSlime diff --git a/Resources/Prototypes/Body/Parts/vox.yml b/Resources/Prototypes/Body/Parts/vox.yml index f2bbe87138..bae1861ee1 100644 --- a/Resources/Prototypes/Body/Parts/vox.yml +++ b/Resources/Prototypes/Body/Parts/vox.yml @@ -71,6 +71,9 @@ baseSprintSpeed: 0 - type: InputMover - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmVox diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml index 24064c3072..049780a926 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml @@ -96,6 +96,9 @@ - id: EmergencyMedipen - id: Flare - id: FoodTinMRE + - type: Tag + tags: + - BoxHug - type: entity name: extended-capacity survival box diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 5f659abe16..1825ead99d 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -169,7 +169,7 @@ - type: entity name: box of hugs parent: BoxCardboard - id: BoxHug + id: BoxHugHealing description: A special box for sensitive people. components: - type: Sprite @@ -182,6 +182,9 @@ contents: - id: Brutepack amount: 6 + - type: Tag + tags: + - BoxHug - type: entity name: inflatable wall box diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml index ee98d2a693..9aee9c1332 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml @@ -97,6 +97,10 @@ components: - type: ComputerBoard prototype: ComputerSurveillanceCameraMonitor + - type: Tag + tags: + - DroneUsable + - SurveillanceCameraMonitorCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -115,6 +119,10 @@ components: - type: ComputerBoard prototype: ComputerTelevision + - type: Tag + tags: + - DroneUsable + - ComputerTelevisionCircuitboard - type: entity parent: BaseComputerCircuitboard diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/atmos_alarms.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/atmos_alarms.yml index 85f1027f00..98ce1a5b0c 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/atmos_alarms.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/atmos_alarms.yml @@ -7,6 +7,10 @@ - type: Sprite sprite: Objects/Misc/module.rsi state: airalarm_electronics + - type: Tag + tags: + - DroneUsable + - AirAlarmElectronics - type: entity id: FireAlarmElectronics @@ -17,3 +21,7 @@ - type: Sprite sprite: Objects/Misc/module.rsi state: airalarm_electronics + - type: Tag + tags: + - DroneUsable + - FireAlarmElectronics diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/disposal.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/disposal.yml index 1784368684..83a2081182 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/disposal.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/disposal.yml @@ -7,3 +7,7 @@ - type: Sprite sprite: Objects/Misc/module.rsi state: net_wired + - type: Tag + tags: + - DroneUsable + - MailingUnitElectronics \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml index 66a5ec4f25..dc9b88c01b 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml @@ -8,3 +8,7 @@ sprite: Objects/Misc/module.rsi state: door_electronics - type: AccessReader + - type: Tag + tags: + - DoorElectronics + - DroneUsable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml index 100507ada6..7adc3a1095 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml @@ -22,6 +22,10 @@ sprite: Objects/Misc/module.rsi state: charger_APC netsync: false + - type: Tag + tags: + - DroneUsable + - WallmountSubstationElectronics # Wallmount Generator - type: entity @@ -34,6 +38,10 @@ sprite: Objects/Misc/module.rsi state: charger_APC netsync: false + - type: Tag + tags: + - DroneUsable + - WallmountGeneratorElectronics # APU - type: entity @@ -46,6 +54,10 @@ sprite: Objects/Misc/module.rsi state: charger_APC netsync: false + - type: Tag + tags: + - DroneUsable + - WallmountGeneratorAPUElectronics # Solar Tracker Electronics - type: entity @@ -58,3 +70,7 @@ sprite: Objects/Misc/module.rsi state: generic netsync: false + - type: Tag + tags: + - DroneUsable + - SolarTrackerElectronics diff --git a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml index 891320d372..878c44c7a8 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml @@ -30,6 +30,7 @@ - type: Tag tags: - Payload # yes, you can make re-usable prank grenades + - BikeHorn - type: MeleeWeapon soundHit: collection: BikeHorn diff --git a/Resources/Prototypes/Entities/Objects/Materials/shards.yml b/Resources/Prototypes/Entities/Objects/Materials/shards.yml index 8fe2d2a00f..3e24726fae 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/shards.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/shards.yml @@ -92,6 +92,10 @@ damage: types: Piercing: 5 + - type: Tag + tags: + - GlassShard + - Trash - type: entity parent: ShardBase diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml index fed707f690..0e725042c1 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml @@ -314,6 +314,9 @@ - type: Sprite sprite: Objects/Misc/bureaucracy.rsi state: stamp-clown + - type: Tag + tags: + - ClownRubberStamp - type: entity name: chief medical officer's rubber stamp diff --git a/Resources/Prototypes/Entities/Objects/Power/solar_parts.yml b/Resources/Prototypes/Entities/Objects/Power/solar_parts.yml index 93b463fb61..a282f0e3be 100644 --- a/Resources/Prototypes/Entities/Objects/Power/solar_parts.yml +++ b/Resources/Prototypes/Entities/Objects/Power/solar_parts.yml @@ -8,3 +8,6 @@ - type: Sprite sprite: Objects/Power/solar_parts.rsi state: solar_assembly_parts + - type: Tag + tags: + - SolarAssemblyPart diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index 81c8d06b05..0d0d6bd84d 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -48,3 +48,6 @@ fillBaseName: fill- - type: ExaminableSolution solution: bucket + - type: Tag + tags: + - Bucket diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/furniture/ritualseat.yml b/Resources/Prototypes/Recipes/Construction/Graphs/furniture/ritualseat.yml index 5ebba6a616..14d028c406 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/furniture/ritualseat.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/furniture/ritualseat.yml @@ -29,7 +29,7 @@ - to: chairCursed steps: - - prototype: HeadHuman + - tag: Head icon: sprite: Mobs/Species/Human/parts.rsi state: "head_m" diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml index 3f3b40b4a1..6b9337f5ef 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml @@ -48,7 +48,7 @@ conditions: - !type:EntityAnchored {} steps: - - prototype: DoorElectronics + - tag: DoorElectronics store: board name: "door electronics circuit board" icon: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/shutter.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/shutter.yml index 87e791efce..70d1c12d84 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/shutter.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/shutter.yml @@ -44,7 +44,7 @@ - !type:EntityAnchored anchored: true steps: - - prototype: DoorElectronics + - tag: DoorElectronics name: Door Electronics icon: sprite: "Objects/Misc/module.rsi" @@ -148,7 +148,7 @@ steps: - tool: Anchoring doAfter: 1 - + - node: ShuttersRadiationFrame edges: - to: ShuttersRadiation diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/shuttle.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/shuttle.yml index 06c620f666..d73b52caf6 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/shuttle.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/shuttle.yml @@ -25,7 +25,7 @@ conditions: - !type:EntityAnchored {} steps: - - prototype: DoorElectronics + - tag: DoorElectronics store: board name: "door electronics circuit board" icon: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml index 0bbd6c4b8f..da5dccfd26 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml @@ -77,7 +77,7 @@ conditions: - !type:EntityAnchored {} steps: - - prototype: DoorElectronics + - tag: DoorElectronics store: board name: "door electronics circuit board" icon: @@ -178,7 +178,7 @@ conditions: - !type:EntityAnchored { } steps: - - prototype: DoorElectronics + - tag: DoorElectronics store: board name: "door electronics circuit board" icon: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/air_alarms.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/air_alarms.yml index 16da0045ed..afa20ea2ef 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/air_alarms.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/air_alarms.yml @@ -36,7 +36,7 @@ edges: - to: electronics steps: - - prototype: AirAlarmElectronics + - tag: AirAlarmElectronics store: board name: "air alarm electronics" icon: @@ -115,7 +115,7 @@ edges: - to: electronics steps: - - prototype: FireAlarmElectronics + - tag: FireAlarmElectronics store: board name: "fire alarm electronics" icon: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_machines.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_machines.yml index bf75a7c071..7a5e0d9c20 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_machines.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_machines.yml @@ -70,7 +70,7 @@ doAfter: 0.25 - to: frame_mailing steps: - - prototype: MailingUnitElectronics + - tag: MailingUnitElectronics name: Mailing Unit Electronics icon: sprite: "Objects/Misc/module.rsi" diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml index fa1e2ee54e..cf6d75f46d 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/solarpanel.yml @@ -6,9 +6,9 @@ edges: - to: solarassembly steps: - - prototype: SolarAssemblyPart + - tag: SolarAssemblyPart name: Solar Assembly Parts - icon: + icon: sprite: Objects/Power/solar_parts.rsi state: solar_assembly_parts doAfter: 1 @@ -41,9 +41,9 @@ - !type:EntityAnchored value: true steps: - - prototype: SolarTrackerElectronics + - tag: SolarTrackerElectronics name: Solar Tracker Electronics - icon: + icon: sprite: Objects/Misc/module.rsi state: id_mod doAfter: 1 @@ -53,7 +53,7 @@ completed: - !type:SnapToGrid offset: Center - + - node: solarpanel entity: SolarPanel edges: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_generator.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_generator.yml index f1b72b6220..e78ee46a73 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_generator.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_generator.yml @@ -31,9 +31,9 @@ - node: parts edges: - - to: electronics + - to: electronics steps: - - prototype: WallmountGeneratorElectronics + - tag: WallmountGeneratorElectronics store: board name: "wallmount generator circuit board" icon: @@ -42,7 +42,7 @@ doAfter: 1 - to: electronicsAPU steps: - - prototype: WallmountGeneratorAPUElectronics + - tag: WallmountGeneratorAPUElectronics store: board name: "wallmount APU circuit board" icon: @@ -56,8 +56,8 @@ amount: 5 steps: - tool: Cutting - doAfter: 1 - + doAfter: 1 + - node: electronics edges: @@ -65,14 +65,14 @@ steps: - tool: Screwing doAfter: 2 - + - node: electronicsAPU edges: - to: APU steps: - tool: Screwing doAfter: 2 - + - node: generator entity: GeneratorWallmountBasic edges: @@ -86,7 +86,7 @@ steps: - tool: Prying doAfter: 1 - + - node: APU entity: GeneratorWallmountAPU edges: @@ -99,4 +99,4 @@ - !type:EmptyAllContainers {} steps: - tool: Prying - doAfter: 1 \ No newline at end of file + doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_substation.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_substation.yml index 9d433fc9fb..598ca2bc85 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_substation.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_substation.yml @@ -31,9 +31,9 @@ - node: parts edges: - - to: electronics + - to: electronics steps: - - prototype: WallmountSubstationElectronics + - tag: WallmountSubstationElectronics store: board name: "wallmount substation circuit board" icon: @@ -47,8 +47,8 @@ amount: 5 steps: - tool: Cutting - doAfter: 1 - + doAfter: 1 + - node: electronics edges: @@ -56,7 +56,7 @@ steps: - tool: Screwing doAfter: 2 - + - node: substation entity: BaseSubstationWall edges: @@ -69,4 +69,4 @@ - !type:EmptyAllContainers {} steps: - tool: Prying - doAfter: 1 \ No newline at end of file + doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml index cd066dec5b..51ebed2ee1 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml @@ -19,7 +19,7 @@ - material: Cable amount: 5 doAfter: 3 - + - to: start completed: - !type:GivePrototype @@ -37,12 +37,12 @@ steps: - tool: Screwing doAfter: 2 - - prototype: SurveillanceCameraMonitorCircuitboard + - tag: SurveillanceCameraMonitorCircuitboard name: surveillance camera monitor board icon: sprite: Objects/Misc/module.rsi state: cpuboard - + - to: TelescreenFrame completed: - !type:GivePrototype @@ -54,8 +54,8 @@ steps: - tool: Cutting doAfter: 2 - - + + - node: Screen entity: WallmountTelescreenFrame edges: @@ -108,7 +108,7 @@ - material: Cable amount: 5 doAfter: 3 - + - to: start completed: - !type:GivePrototype @@ -126,12 +126,12 @@ steps: - tool: Screwing doAfter: 2 - - prototype: ComputerTelevisionCircuitboard + - tag: ComputerTelevisionCircuitboard name: television board icon: sprite: Objects/Misc/module.rsi state: cpuboard - + - to: TelevisionFrame completed: - !type:GivePrototype @@ -143,8 +143,8 @@ steps: - tool: Cutting doAfter: 2 - - + + - node: Screen entity: WallmountTelevisionFrame edges: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml index 28c3ba1674..637bbf0161 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml @@ -18,7 +18,7 @@ steps: - material: Cable doAfter: 0.5 - - prototype: ProximitySensor + - tag: ProximitySensor icon: sprite: Objects/Misc/proximity_sensor.rsi state: icon diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/spear.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/spear.yml index eb4f5767e8..d27571207b 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/spear.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/spear.yml @@ -12,9 +12,9 @@ - material: Cable amount: 2 doAfter: 1 - - prototype: ShardGlass + - tag: GlassShard name: Glass Shard - icon: + icon: sprite: Objects/Materials/Shards/shard.rsi state: shard1 doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/cleanbot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/cleanbot.yml index 5d641e6537..a734545507 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/cleanbot.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/cleanbot.yml @@ -6,12 +6,12 @@ edges: - to: bot steps: - - prototype: Bucket + - tag: Bucket icon: sprite: Objects/Tools/bucket.rsi state: icon name: bucket - - prototype: ProximitySensor + - tag: ProximitySensor icon: sprite: Objects/Misc/proximity_sensor.rsi state: icon diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml index cc6d81e033..c804364b01 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml @@ -6,18 +6,18 @@ edges: - to: bot steps: - - prototype: BoxHug + - tag: BoxHug icon: sprite: Objects/Storage/boxes.rsi state: box_hug name: box of hugs - - prototype: RubberStampClown + - tag: ClownRubberStamp icon: sprite: Objects/Misc/bureaucracy.rsi state: stamp-clown name: clown's rubber stamp doAfter: 2 - - prototype: BikeHorn + - tag: BikeHorn icon: sprite: Objects/Fun/bikehorn.rsi state: icon diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/medibot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/medibot.yml index 56ec61738a..92e731d23b 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/medibot.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/medibot.yml @@ -17,7 +17,7 @@ state: analyzer name: health analyzer doAfter: 2 - - prototype: ProximitySensor + - tag: ProximitySensor icon: sprite: Objects/Misc/proximity_sensor.rsi state: icon diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 1ee06e768a..f1140c17c9 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -3,6 +3,9 @@ - type: Tag id: AirAlarm +- type: Tag + id: AirAlarmElectronics + - type: Tag id: AirSensor @@ -16,10 +19,7 @@ id: Bee - type: Tag - id: BrassInstrument - -- type: Tag - id: Brutepack + id: BikeHorn - type: Tag id: BodyBag @@ -39,6 +39,18 @@ - type: Tag id: Bottle +- type: Tag + id: BoxHug + +- type: Tag + id: BrassInstrument + +- type: Tag + id: Brutepack + +- type: Tag + id: Bucket + - type: Tag id: BulletFoam @@ -102,6 +114,9 @@ - type: Tag id: CigPack +- type: Tag + id: ClownRubberStamp + - type: Tag id: Crayon @@ -147,6 +162,9 @@ - type: Tag id: CombatKnife +- type: Tag + id: ComputerTelevisionCircuitboard + - type: Tag id: Debug @@ -162,6 +180,9 @@ - type: Tag id: DoorBumpOpener +- type: Tag + id: DoorElectronics + - type: Tag id: DonkPocket @@ -186,6 +207,9 @@ - type: Tag id: FireAlarm +- type: Tag + id: FireAlarmElectronics + - type: Tag id: FireAxe @@ -228,6 +252,9 @@ - type: Tag id: GlassBeaker +- type: Tag + id: GlassShard + - type: Tag id: Grenade @@ -237,6 +264,9 @@ - type: Tag id: Handcuffs +- type: Tag + id: Head + - type: Tag id: HideContextMenu @@ -317,6 +347,9 @@ - type: Tag id: MagazinePistolSubMachineGun +- type: Tag + id: MailingUnitElectronics + - type: Tag id: Matchstick @@ -438,6 +471,12 @@ - type: Tag id: Soap +- type: Tag + id: SolarAssemblyPart + +- type: Tag + id: SolarTrackerElectronics + - type: Tag id: Spray @@ -447,6 +486,9 @@ - type: Tag id: StringInstrument +- type: Tag + id: SurveillanceCameraMonitorCircuitboard + - type: Tag id: Syndicate @@ -471,6 +513,15 @@ - type: Tag id: Wall +- type: Tag + id: WallmountGeneratorAPUElectronics + +- type: Tag + id: WallmountGeneratorElectronics + +- type: Tag + id: WallmountSubstationElectronics + - type: Tag id: Window