diff --git a/Content.Client/Construction/MachineFrameVisualizer.cs b/Content.Client/Construction/MachineFrameVisualizer.cs deleted file mode 100644 index f0bcbf4df3..0000000000 --- a/Content.Client/Construction/MachineFrameVisualizer.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Content.Shared.Construction; -using JetBrains.Annotations; -using Robust.Client.GameObjects; - -namespace Content.Client.Construction -{ - [UsedImplicitly] - public sealed class MachineFrameVisualizer : AppearanceVisualizer - { - [Obsolete("Subscribe to AppearanceChangeEvent instead.")] - public override void OnChangeData(AppearanceComponent component) - { - base.OnChangeData(component); - - if (component.TryGetData(MachineFrameVisuals.State, out var data)) - { - var sprite = IoCManager.Resolve().GetComponent(component.Owner); - - sprite.LayerSetState(0, $"box_{data}"); - } - } - } -} diff --git a/Content.Server/Construction/MachineFrameSystem.cs b/Content.Server/Construction/MachineFrameSystem.cs index 9d75011e7f..4f0c9bf137 100644 --- a/Content.Server/Construction/MachineFrameSystem.cs +++ b/Content.Server/Construction/MachineFrameSystem.cs @@ -1,18 +1,15 @@ using Content.Server.Construction.Components; using Content.Server.Stack; -using Content.Shared.Construction; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Stacks; using Content.Shared.Tag; -using Robust.Server.GameObjects; using Robust.Shared.Containers; namespace Content.Server.Construction; public sealed class MachineFrameSystem : EntitySystem { - [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly IComponentFactory _factory = default!; [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly TagSystem _tag = default!; @@ -58,8 +55,6 @@ public sealed class MachineFrameSystem : EntitySystem // Setup requirements and progress... ResetProgressAndRequirements(component, machineBoard); - _appearance.SetData(uid, MachineFrameVisuals.State, 2); - if (TryComp(uid, out ConstructionComponent? construction)) { // So prying the components off works correctly. @@ -224,8 +219,6 @@ public sealed class MachineFrameSystem : EntitySystem { if (!component.HasBoard) { - _appearance.SetData(component.Owner, MachineFrameVisuals.State, 1); - component.TagRequirements.Clear(); component.MaterialRequirements.Clear(); component.ComponentRequirements.Clear(); @@ -243,8 +236,6 @@ public sealed class MachineFrameSystem : EntitySystem if (!TryComp(board, out var machineBoard)) return; - _appearance.SetData(component.Owner, MachineFrameVisuals.State, 2); - ResetProgressAndRequirements(component, machineBoard); foreach (var part in component.PartContainer.ContainedEntities) diff --git a/Content.Shared/Construction/MachineFrameVisuals.cs b/Content.Shared/Construction/MachineFrameVisuals.cs deleted file mode 100644 index 97091945b1..0000000000 --- a/Content.Shared/Construction/MachineFrameVisuals.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Construction -{ - [NetSerializable] - public enum MachineFrameVisuals - { - State, - } -} diff --git a/Resources/Locale/en-US/construction/conditions/machine-frame-complete.ftl b/Resources/Locale/en-US/construction/conditions/machine-frame-complete.ftl index bc2b841535..e4903cc40c 100644 --- a/Resources/Locale/en-US/construction/conditions/machine-frame-complete.ftl +++ b/Resources/Locale/en-US/construction/conditions/machine-frame-complete.ftl @@ -1,3 +1,5 @@ +construction-condition-machine-container-empty = Remove the parts from the frame using a [color=cyan]Crowbar[/color]. + # MachineFrameComplete construction-condition-machine-frame-requirement-label = Requires: construction-condition-machine-frame-insert-circuit-board-message = Insert [color=cyan]any machine circuit board[/color]. diff --git a/Resources/Prototypes/Entities/Structures/Machines/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/frame.yml index d694aa4aa3..ec5af8b571 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/frame.yml @@ -104,9 +104,13 @@ sprite: Structures/Machines/parts.rsi state: box_1 - type: Appearance - visuals: - - type: MachineFrameVisualizer - + - type: ItemMapper + mapLayers: + box_2: + minCount: 1 + whitelist: + components: + - MachineBoard - type: entity id: MachineFrameDestroyed diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml index a9fc12f9a7..29c9b6a35c 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/machine.yml @@ -25,8 +25,6 @@ - node: missingWires entity: UnfinishedMachineFrame actions: - - !type:SpriteStateChange - state: "box_0" - !type:EmptyAllContainers edges: - to: machineFrame @@ -69,18 +67,28 @@ - tool: Screwing doAfter: 0.5 - - to: missingWires + - to: machineFrame conditions: - !type:EntityAnchored - completed: - - !type:SpawnPrototype - prototype: CableApcStack1 + - !type:ContainerNotEmpty + container: machine_board steps: - tool: Prying doAfter: 2 completed: - !type:EmptyAllContainers - !type:MachineFrameRegenerateProgress + + - to: missingWires + conditions: + - !type:EntityAnchored + - !type:ContainerEmpty + container: machine_board + examineText: construction-condition-machine-container-empty + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + steps: - tool: Cutting doAfter: 0.25