// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> // // SPDX-License-Identifier: AGPL-3.0-or-later using Content.Shared.Containers.ItemSlots; using Content.Shared.DeviceLinking; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared._Goobstation.Factory; [RegisterComponent, NetworkedComponent, Access(typeof(SharedInteractorSystem))] [AutoGenerateComponentState(fieldDeltas: true)] public sealed partial class InteractorComponent : Component { [DataField] public string ToolContainerId = "interactor_tool"; /// /// Fixture to look for target items with. /// [DataField] public string TargetFixtureId = "interactor_target"; /// /// Entities currently colliding with and whether their CollisionWake was enabled. /// When entities start to collide they get pushed to the end. /// When picking up items the last value is taken. /// This is essentially a FILO queue. /// [DataField, AutoNetworkedField] public List<(NetEntity, bool)> TargetEntities = new(); } [Serializable, NetSerializable] public enum InteractorVisuals : byte { State } [Serializable, NetSerializable] public enum InteractorLayers : byte { Hand, Powered } [Serializable, NetSerializable] public enum InteractorState : byte { // Inactive with no tool Empty, // Inactive with a tool Inactive, // Active, with or without a tool Active }