using Content.Shared.Construction.Components; using Content.Shared.Construction.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; namespace Content.Server.Construction.Components { [RegisterComponent] public sealed partial class MachineFrameComponent : Component { public const string PartContainerName = "machine_parts"; public const string BoardContainerName = "machine_board"; [ViewVariables] public bool HasBoard => BoardContainer?.ContainedEntities.Count != 0; [DataField("progress", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] public Dictionary Progress = new(); [ViewVariables] public readonly Dictionary MaterialProgress = new(); [ViewVariables] public readonly Dictionary ComponentProgress = new(); [ViewVariables] public readonly Dictionary TagProgress = new(); [DataField("requirements", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] public Dictionary Requirements = new(); [ViewVariables] public Dictionary MaterialRequirements = new(); [ViewVariables] public Dictionary ComponentRequirements = new(); [ViewVariables] public Dictionary TagRequirements = new(); [ViewVariables] public Container BoardContainer = default!; [ViewVariables] public Container PartContainer = default!; } [DataDefinition] public sealed partial class MachineDeconstructedEvent : EntityEventArgs { } }