using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Interactable; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Utility; namespace Content.Server.GameObjects.Components { [RegisterComponent] public class AnchorableComponent : Component, IInteractUsing { public override string Name => "Anchorable"; public override void Initialize() { base.Initialize(); Owner.EnsureComponent(); } public bool InteractUsing(InteractUsingEventArgs eventArgs) { if (!Owner.TryGetComponent(out PhysicsComponent physics) || !eventArgs.Using.TryGetComponent(out ToolComponent tool)) return false; if (!tool.UseTool(eventArgs.User, Owner, ToolQuality.Anchoring)) return false; physics.Anchored = !physics.Anchored; return true; } } }