using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared.Silicons.StationAi;
///
/// Holds data for altering the appearance of station AIs.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class StationAiCustomizationComponent : Component
{
///
/// Dictionary of the prototype data used for customizing the appearance of the entity.
///
[DataField, AutoNetworkedField]
public Dictionary, ProtoId> ProtoIds = new();
}
///
/// Message sent to server that contains a station AI customization that the client has selected
///
[Serializable, NetSerializable]
public sealed class StationAiCustomizationMessage : BoundUserInterfaceMessage
{
public readonly ProtoId GroupProtoId;
public readonly ProtoId CustomizationProtoId;
public StationAiCustomizationMessage(ProtoId groupProtoId, ProtoId customizationProtoId)
{
GroupProtoId = groupProtoId;
CustomizationProtoId = customizationProtoId;
}
}
///
/// Key for opening the station AI customization UI
///
[Serializable, NetSerializable]
public enum StationAiCustomizationUiKey : byte
{
Key,
}
///
/// The different catagories of station Ai customizations available
///
[Serializable, NetSerializable]
public enum StationAiCustomizationType : byte
{
CoreIconography,
Hologram,
}