using Content.Shared.Construction.Components; using Content.Shared.Construction.Prototypes; // Frontier: upgradeable machine parts using Content.Shared.Stacks; using Content.Shared.Tag; using Robust.Shared.Containers; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; // Frontier: upgradeable machine parts 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; [ViewVariables] // Frontier: upgradeable machine parts public Dictionary, int> Progress = new(); // Frontier: upgradeable machine parts [ViewVariables] public readonly Dictionary, int> MaterialProgress = new(); [ViewVariables] public readonly Dictionary ComponentProgress = new(); [ViewVariables] public readonly Dictionary, int> TagProgress = new(); [ViewVariables] // Frontier: upgradeable machine parts public Dictionary, int> Requirements = new(); // Frontier: upgradeable machine parts [ViewVariables] public Dictionary, int> MaterialRequirements = new(); [ViewVariables] public Dictionary ComponentRequirements = new(); [ViewVariables] public Dictionary, GenericPartInfo> TagRequirements = new(); [ViewVariables] public Container BoardContainer = default!; [ViewVariables] public Container PartContainer = default!; } }