Files
tbd-station-14/Content.Shared/Construction/Components/MachineBoardComponent.cs
pathetic meowmeow 39cb27fe21 Borg hands & hand whitelisting (#38668)
* Borg hands & hand whitelisting

* yaml linted

* yaml linted (x2)

* yaml linted (x3)

* my storage tests so pass

* no need for SetCount

* ok new stuff you can get fixed too

* oops

* staque

* what if we addressed feedback

* my place so holder

* what if we addresesd feedback

* what if i did it correctly

* terminating or deleted
2025-08-12 15:21:42 -07:00

54 lines
1.5 KiB
C#

using Content.Shared.Stacks;
using Content.Shared.Tag;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Construction.Components;
[RegisterComponent, NetworkedComponent]
public sealed partial class MachineBoardComponent : Component
{
/// <summary>
/// The stacks needed to construct this machine
/// </summary>
[DataField]
public Dictionary<ProtoId<StackPrototype>, int> StackRequirements = new();
/// <summary>
/// Entities needed to construct this machine, discriminated by tag.
/// </summary>
[DataField]
public Dictionary<ProtoId<TagPrototype>, GenericPartInfo> TagRequirements = new();
/// <summary>
/// Entities needed to construct this machine, discriminated by component.
/// </summary>
[DataField]
public Dictionary<string, GenericPartInfo> ComponentRequirements = new();
/// <summary>
/// The machine that's constructed when this machine board is completed.
/// </summary>
[DataField(required: true)]
public EntProtoId Prototype;
}
/// <summary>
/// Marker component for any item that's machine board-like without necessarily being a MachineBoardComponent
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class CircuitboardComponent : Component;
[DataDefinition, Serializable]
public partial struct GenericPartInfo
{
[DataField(required: true)]
public int Amount;
[DataField(required: true)]
public EntProtoId DefaultPrototype;
[DataField]
public LocId? ExamineName;
}