using Content.Shared.Containers.ItemSlots;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
namespace Content.Shared.Silicons.Borgs.Components;
///
/// This is used for an entity that takes a brain
/// in an item slot before transferring consciousness.
/// Used for borg stuff.
///
[RegisterComponent, NetworkedComponent, Access(typeof(SharedBorgSystem))]
public sealed partial class MMIComponent : Component
{
///
/// The ID of the itemslot that holds the brain.
///
[DataField("brainSlotId")]
public string BrainSlotId = "brain_slot";
///
/// The for this implanter
///
[ViewVariables(VVAccess.ReadWrite)]
public ItemSlot BrainSlot = default!;
///
/// The sprite state when the brain inserted has a mind.
///
[DataField("hasMindState")]
public string HasMindState = "mmi_alive";
///
/// The sprite state when the brain inserted doesn't have a mind.
///
[DataField("noMindState")]
public string NoMindState = "mmi_dead";
///
/// The sprite state when there is no brain inserted.
///
[DataField("noBrainState")]
public string NoBrainState = "mmi_off";
}
[Serializable, NetSerializable]
public enum MMIVisuals : byte
{
BrainPresent,
HasMind
}
[Serializable, NetSerializable]
public enum MMIVisualLayers : byte
{
Brain,
Base
}