39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using System;
|
|
using Content.Shared.GameObjects.EntitySystems;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared.GameObjects.Components.Observer
|
|
{
|
|
public class SharedGhostComponent : Component, IActionBlocker
|
|
{
|
|
public override string Name => "Ghost";
|
|
public override uint? NetID => ContentNetIDs.GHOST;
|
|
|
|
public bool CanInteract() => false;
|
|
public bool CanUse() => false;
|
|
public bool CanThrow() => false;
|
|
public bool CanDrop() => false;
|
|
public bool CanPickup() => false;
|
|
public bool CanEmote() => false;
|
|
public bool CanAttack() => false;
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public class GhostComponentState : ComponentState
|
|
{
|
|
public bool CanReturnToBody { get; }
|
|
|
|
public GhostComponentState(bool canReturnToBody) : base(ContentNetIDs.GHOST)
|
|
{
|
|
CanReturnToBody = canReturnToBody;
|
|
}
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public class ReturnToBodyComponentMessage : ComponentMessage
|
|
{
|
|
public ReturnToBodyComponentMessage() => Directed = true;
|
|
}
|
|
}
|