Nemanja
2023-01-01 01:06:31 -05:00
committed by GitHub
parent a2a9e25b03
commit 06a80422b5
6 changed files with 23 additions and 51 deletions

View File

@@ -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<int>(MachineFrameVisuals.State, out var data))
{
var sprite = IoCManager.Resolve<IEntityManager>().GetComponent<ISpriteComponent>(component.Owner);
sprite.LayerSetState(0, $"box_{data}");
}
}
}
}

View File

@@ -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<MachineBoardComponent>(board, out var machineBoard))
return;
_appearance.SetData(component.Owner, MachineFrameVisuals.State, 2);
ResetProgressAndRequirements(component, machineBoard);
foreach (var part in component.PartContainer.ContainedEntities)

View File

@@ -1,10 +0,0 @@
using Robust.Shared.Serialization;
namespace Content.Shared.Construction
{
[NetSerializable]
public enum MachineFrameVisuals
{
State,
}
}

View File

@@ -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].

View File

@@ -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

View File

@@ -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