using Content.Shared.Actions;
using Content.Shared.Actions.ActionTypes;
using Robust.Shared.Containers;
using Robust.Shared.Utility;
namespace Content.Server.Guardian
{
///
/// Given to guardian users upon establishing a guardian link with the entity
///
[RegisterComponent]
public sealed class GuardianHostComponent : Component
{
///
/// Guardian hosted within the component
///
///
/// Can be null if the component is added at any time.
///
public EntityUid? HostedGuardian;
///
/// Container which holds the guardian
///
[ViewVariables] public ContainerSlot GuardianContainer = default!;
[DataField("action")]
public InstantAction Action = new()
{
DisplayName = "action-name-guardian",
Description = "action-description-guardian",
Icon = new SpriteSpecifier.Texture(new ResourcePath("Interface/Actions/manifest.png")),
UseDelay = TimeSpan.FromSeconds(2),
CheckCanInteract = false, // allow use while stunned, etc. Gets removed on death anyways.
Event = new GuardianToggleActionEvent(),
};
}
public sealed class GuardianToggleActionEvent : InstantActionEvent { };
}