Adding PAI Slot to PDA (#21086)
* Adding PAI Slot to PDA * Update PdaComponent.cs * Update pda.yml * Update tags.yml Sorting it alphabetically * Adding PDA UI Elements. * Addressing reviews * Update PdaComponent.cs * Update Content.Shared/PDA/SharedPdaSystem.cs Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com> * Update Content.Shared/PDA/SharedPdaSystem.cs Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com> * Update Resources/Prototypes/Entities/Objects/Devices/pda.yml Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com> * Update PdaComponent.cs * Update PdaComponent.cs --------- Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>
This commit is contained in:
@@ -40,6 +40,11 @@ namespace Content.Client.PDA
|
||||
SendMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaPenSlotId));
|
||||
};
|
||||
|
||||
_menu.EjectPaiButton.OnPressed += _ =>
|
||||
{
|
||||
SendMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaPaiSlotId));
|
||||
};
|
||||
|
||||
_menu.ActivateMusicButton.OnPressed += _ =>
|
||||
{
|
||||
SendMessage(new PdaShowMusicMessage());
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<pda:PdaNavigationButton Name="FlashLightToggleButton" Access="Public" ToggleMode="True" ActiveFgColor="#EAEFBB" SetWidth="32"/>
|
||||
<pda:PdaNavigationButton Name="EjectPenButton" Access="Public" SetWidth="32"/>
|
||||
<pda:PdaNavigationButton Name="EjectIdButton" Access="Public" SetWidth="32"/>
|
||||
<pda:PdaNavigationButton Name="EjectPaiButton" Access="Public" SetWidth="32"/>
|
||||
</BoxContainer>
|
||||
<BoxContainer Name="ViewContainer" HorizontalExpand="True" VerticalExpand="True" Access="Public">
|
||||
<BoxContainer Orientation="Vertical"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Content.Client.GameTicking.Managers;
|
||||
using Content.Client.GameTicking.Managers;
|
||||
using Content.Shared.PDA;
|
||||
using Robust.Shared.Utility;
|
||||
using Content.Shared.CartridgeLoader;
|
||||
@@ -41,6 +41,7 @@ namespace Content.Client.PDA
|
||||
FlashLightToggleButton.IconTexture = new SpriteSpecifier.Texture(new("/Textures/Interface/light.png"));
|
||||
EjectPenButton.IconTexture = new SpriteSpecifier.Texture(new("/Textures/Interface/pencil.png"));
|
||||
EjectIdButton.IconTexture = new SpriteSpecifier.Texture(new("/Textures/Interface/eject.png"));
|
||||
EjectPaiButton.IconTexture = new SpriteSpecifier.Texture(new("/Textures/Interface/PAI.png"));
|
||||
ProgramCloseButton.IconTexture = new SpriteSpecifier.Texture(new("/Textures/Interface/Nano/cross.svg.png"));
|
||||
|
||||
|
||||
@@ -137,6 +138,7 @@ namespace Content.Client.PDA
|
||||
|
||||
EjectIdButton.IsActive = state.PdaOwnerInfo.IdOwner != null || state.PdaOwnerInfo.JobTitle != null;
|
||||
EjectPenButton.IsActive = state.HasPen;
|
||||
EjectPaiButton.IsActive = state.HasPai;
|
||||
ActivateMusicButton.Visible = state.CanPlayMusic;
|
||||
ShowUplinkButton.Visible = state.HasUplink;
|
||||
LockUplinkButton.Visible = state.HasUplink;
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Content.Server.PDA
|
||||
|
||||
protected override void OnItemRemoved(EntityUid uid, PdaComponent pda, EntRemovedFromContainerMessage args)
|
||||
{
|
||||
if (args.Container.ID != pda.IdSlot.ID && args.Container.ID != pda.PenSlot.ID)
|
||||
if (args.Container.ID != pda.IdSlot.ID && args.Container.ID != pda.PenSlot.ID && args.Container.ID != pda.PaiSlot.ID)
|
||||
return;
|
||||
|
||||
// TODO: This is super cursed just use compstates please.
|
||||
@@ -137,6 +137,7 @@ namespace Content.Server.PDA
|
||||
GetNetEntity(loader.ActiveProgram),
|
||||
pda.FlashlightOn,
|
||||
pda.PenSlot.HasItem,
|
||||
pda.PaiSlot.HasItem,
|
||||
new PdaIdInfoText
|
||||
{
|
||||
ActualOwnerName = pda.OwnerName,
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace Content.Shared.PDA
|
||||
{
|
||||
public const string PdaIdSlotId = "PDA-id";
|
||||
public const string PdaPenSlotId = "PDA-pen";
|
||||
public const string PdaPaiSlotId = "PDA-pai";
|
||||
|
||||
/// <summary>
|
||||
/// The base PDA sprite state, eg. "pda", "pda-clown"
|
||||
@@ -23,6 +24,8 @@ namespace Content.Shared.PDA
|
||||
|
||||
[DataField("penSlot")]
|
||||
public ItemSlot PenSlot = new();
|
||||
[DataField("paiSlot")]
|
||||
public ItemSlot PaiSlot = new();
|
||||
|
||||
// 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
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace Content.Shared.PDA
|
||||
{
|
||||
public bool FlashlightEnabled;
|
||||
public bool HasPen;
|
||||
public bool HasPai;
|
||||
public PdaIdInfoText PdaOwnerInfo;
|
||||
public string? StationName;
|
||||
public bool HasUplink;
|
||||
@@ -21,6 +22,7 @@ namespace Content.Shared.PDA
|
||||
NetEntity? activeUI,
|
||||
bool flashlightEnabled,
|
||||
bool hasPen,
|
||||
bool hasPai,
|
||||
PdaIdInfoText pdaOwnerInfo,
|
||||
string? stationName,
|
||||
bool hasUplink = false,
|
||||
@@ -30,6 +32,7 @@ namespace Content.Shared.PDA
|
||||
{
|
||||
FlashlightEnabled = flashlightEnabled;
|
||||
HasPen = hasPen;
|
||||
HasPai = hasPai;
|
||||
PdaOwnerInfo = pdaOwnerInfo;
|
||||
HasUplink = hasUplink;
|
||||
CanPlayMusic = canPlayMusic;
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace Content.Shared.PDA
|
||||
|
||||
ItemSlotsSystem.AddItemSlot(uid, PdaComponent.PdaIdSlotId, pda.IdSlot);
|
||||
ItemSlotsSystem.AddItemSlot(uid, PdaComponent.PdaPenSlotId, pda.PenSlot);
|
||||
ItemSlotsSystem.AddItemSlot(uid, PdaComponent.PdaPaiSlotId, pda.PaiSlot);
|
||||
|
||||
UpdatePdaAppearance(uid, pda);
|
||||
}
|
||||
@@ -36,6 +37,7 @@ namespace Content.Shared.PDA
|
||||
{
|
||||
ItemSlotsSystem.RemoveItemSlot(uid, pda.IdSlot);
|
||||
ItemSlotsSystem.RemoveItemSlot(uid, pda.PenSlot);
|
||||
ItemSlotsSystem.RemoveItemSlot(uid, pda.PaiSlot);
|
||||
}
|
||||
|
||||
protected virtual void OnItemInserted(EntityUid uid, PdaComponent pda, EntInsertedIntoContainerMessage args)
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
state: pda
|
||||
- type: Pda
|
||||
state: pda
|
||||
paiSlot:
|
||||
priority: -2
|
||||
whitelist:
|
||||
components:
|
||||
- PAI
|
||||
penSlot:
|
||||
startingItem: Pen
|
||||
priority: -1
|
||||
@@ -42,6 +47,7 @@
|
||||
containers:
|
||||
PDA-id: !type:ContainerSlot {}
|
||||
PDA-pen: !type:ContainerSlot {}
|
||||
PDA-pai: !type:ContainerSlot {}
|
||||
Cartridge-Slot: !type:ContainerSlot {}
|
||||
program-container: !type:Container
|
||||
- type: ItemSlots
|
||||
|
||||
BIN
Resources/Textures/Interface/pai.png
Normal file
BIN
Resources/Textures/Interface/pai.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 287 B |
Reference in New Issue
Block a user