using Robust.Shared.Prototypes; using Robust.Shared.GameStates; using Content.Shared.Access.Components; using Content.Shared.Containers.ItemSlots; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.PDA { [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // WWDP edit +AutoGenerateComponentState public sealed partial class PdaComponent : Component { public const string PdaIdSlotId = "PDA-id"; public const string PdaPenSlotId = "PDA-pen"; public const string PdaPaiSlotId = "PDA-pai"; public const string PdaPassportSlotId = "PDA-passport"; [DataField] public ItemSlot IdSlot = new(); [DataField] public ItemSlot PenSlot = new(); [DataField] public ItemSlot PaiSlot = new(); [DataField] public ItemSlot PassportSlot = new(); // WWDP edit start [DataField, AutoNetworkedField] public bool Enabled { get; set; } = false; [DataField, AutoNetworkedField] public bool Screen { get; set; } = false; // WWDP edit end // Really this should just be using ItemSlot.StartingItem. However, seeing as we have so many different starting // PDA's and no nice way to inherit the other fields from the ItemSlot data definition, this makes the yaml much // nicer to read. [DataField("id", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? IdCard; [ViewVariables] public EntityUid? ContainedId; [ViewVariables] public bool FlashlightOn; [ViewVariables(VVAccess.ReadWrite)] public string? OwnerName; // The Entity that "owns" the PDA, usually a player's character. // This is useful when we are doing stuff like renaming a player and want to find their PDA to change the name // as well. [ViewVariables(VVAccess.ReadWrite)] public EntityUid? PdaOwner; [ViewVariables] public string? StationName; [ViewVariables] public string? StationAlertLevel; [ViewVariables] public Color StationAlertColor = Color.White; } }