using Content.Shared.DeviceLinking; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Conveyor; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ConveyorComponent : Component { /// /// The angle to move entities by in relation to the owner's rotation. /// [ViewVariables(VVAccess.ReadWrite)] [DataField, AutoNetworkedField] public Angle Angle = Angle.Zero; /// /// The amount of units to move the entity by per second. /// [ViewVariables(VVAccess.ReadWrite)] [DataField, AutoNetworkedField] public float Speed = 2f; /// /// The current state of this conveyor /// [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public ConveyorState State; [ViewVariables, AutoNetworkedField] public bool Powered; [DataField] public ProtoId ForwardPort = "Forward"; [DataField] public ProtoId ReversePort = "Reverse"; [DataField] public ProtoId OffPort = "Off"; } [Serializable, NetSerializable] public enum ConveyorVisuals : byte { State } [Serializable, NetSerializable] public enum ConveyorState : byte { Off, Forward, Reverse }