Fix PDA capitalization to be PascalCase (#17335)

This commit is contained in:
0x6273
2023-06-15 03:44:28 +02:00
committed by GitHub
parent e6bf18c05a
commit 247c7a1d4d
44 changed files with 329 additions and 329 deletions

View File

@@ -35,12 +35,12 @@
<Control SetHeight="28" Margin="1 0 2 1"> <Control SetHeight="28" Margin="1 0 2 1">
<PanelContainer Name="FooterPanel"></PanelContainer> <PanelContainer Name="FooterPanel"></PanelContainer>
<BoxContainer Name="ContentFooter" HorizontalExpand="True" SetHeight="28"> <BoxContainer Name="ContentFooter" HorizontalExpand="True" SetHeight="28">
<Label Text="Net#Link ™" VerticalAlignment="Center" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Text="Net#Link ™" VerticalAlignment="Center" Margin="6 0" StyleClasses="PdaContentFooterText"/>
<Label Name="AddressLabel" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Name="AddressLabel" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="6 0" StyleClasses="PdaContentFooterText"/>
<Control HorizontalExpand="True"/> <Control HorizontalExpand="True"/>
<Label Name="FromAddressLabel" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Name="FromAddressLabel" Margin="6 0" StyleClasses="PdaContentFooterText"/>
<Label SetWidth="25" StyleClasses="PDAContentFooterText" Align="Center" Text="➝"/><!--Turn this into an arrow texture--> <Label SetWidth="25" StyleClasses="PdaContentFooterText" Align="Center" Text="➝"/><!--Turn this into an arrow texture-->
<Label Name="ToAddressLabel" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Name="ToAddressLabel" Margin="6 0" StyleClasses="PdaContentFooterText"/>
</BoxContainer> </BoxContainer>
</Control> </Control>
</BoxContainer> </BoxContainer>

View File

@@ -4,7 +4,7 @@
/// Used for specifying the pda windows border colors /// Used for specifying the pda windows border colors
/// </summary> /// </summary>
[RegisterComponent] [RegisterComponent]
public sealed class PDABorderColorComponent : Component public sealed class PdaBorderColorComponent : Component
{ {
[DataField("borderColor", required: true)] [DataField("borderColor", required: true)]
public string? BorderColor; public string? BorderColor;

View File

@@ -12,14 +12,14 @@ using Robust.Shared.Configuration;
namespace Content.Client.PDA namespace Content.Client.PDA
{ {
[UsedImplicitly] [UsedImplicitly]
public sealed class PDABoundUserInterface : CartridgeLoaderBoundUserInterface public sealed class PdaBoundUserInterface : CartridgeLoaderBoundUserInterface
{ {
[Dependency] private readonly IEntityManager? _entityManager = default!; [Dependency] private readonly IEntityManager? _entityManager = default!;
[Dependency] private readonly IConfigurationManager _configManager = default!; [Dependency] private readonly IConfigurationManager _configManager = default!;
private PDAMenu? _menu; private PdaMenu? _menu;
public PDABoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) public PdaBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
{ {
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
} }
@@ -27,13 +27,13 @@ namespace Content.Client.PDA
protected override void Open() protected override void Open()
{ {
base.Open(); base.Open();
SendMessage(new PDARequestUpdateInterfaceMessage()); SendMessage(new PdaRequestUpdateInterfaceMessage());
_menu = new PDAMenu(); _menu = new PdaMenu();
_menu.OpenCenteredLeft(); _menu.OpenCenteredLeft();
_menu.OnClose += Close; _menu.OnClose += Close;
_menu.FlashLightToggleButton.OnToggled += _ => _menu.FlashLightToggleButton.OnToggled += _ =>
{ {
SendMessage(new PDAToggleFlashlightMessage()); SendMessage(new PdaToggleFlashlightMessage());
}; };
if (_configManager.GetCVar(CCVars.CrewManifestUnsecure)) if (_configManager.GetCVar(CCVars.CrewManifestUnsecure))
@@ -47,32 +47,32 @@ namespace Content.Client.PDA
_menu.EjectIdButton.OnPressed += _ => _menu.EjectIdButton.OnPressed += _ =>
{ {
SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAIdSlotId)); SendMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaIdSlotId));
}; };
_menu.EjectPenButton.OnPressed += _ => _menu.EjectPenButton.OnPressed += _ =>
{ {
SendMessage(new ItemSlotButtonPressedEvent(PDAComponent.PDAPenSlotId)); SendMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaPenSlotId));
}; };
_menu.ActivateMusicButton.OnPressed += _ => _menu.ActivateMusicButton.OnPressed += _ =>
{ {
SendMessage(new PDAShowMusicMessage()); SendMessage(new PdaShowMusicMessage());
}; };
_menu.AccessRingtoneButton.OnPressed += _ => _menu.AccessRingtoneButton.OnPressed += _ =>
{ {
SendMessage(new PDAShowRingtoneMessage()); SendMessage(new PdaShowRingtoneMessage());
}; };
_menu.ShowUplinkButton.OnPressed += _ => _menu.ShowUplinkButton.OnPressed += _ =>
{ {
SendMessage(new PDAShowUplinkMessage()); SendMessage(new PdaShowUplinkMessage());
}; };
_menu.LockUplinkButton.OnPressed += _ => _menu.LockUplinkButton.OnPressed += _ =>
{ {
SendMessage(new PDALockUplinkMessage()); SendMessage(new PdaLockUplinkMessage());
}; };
_menu.OnProgramItemPressed += ActivateCartridge; _menu.OnProgramItemPressed += ActivateCartridge;
@@ -93,7 +93,7 @@ namespace Content.Client.PDA
{ {
base.UpdateState(state); base.UpdateState(state);
if (state is not PDAUpdateState updateState) if (state is not PdaUpdateState updateState)
return; return;
_menu?.UpdateState(updateState); _menu?.UpdateState(updateState);
@@ -130,9 +130,9 @@ namespace Content.Client.PDA
_menu?.Dispose(); _menu?.Dispose();
} }
private PDABorderColorComponent? GetBorderColorComponent() private PdaBorderColorComponent? GetBorderColorComponent()
{ {
return _entityManager?.GetComponentOrNull<PDABorderColorComponent>(Owner.Owner); return _entityManager?.GetComponentOrNull<PdaBorderColorComponent>(Owner.Owner);
} }
} }
} }

View File

@@ -1,25 +1,25 @@
<pda:PDAWindow xmlns="https://spacestation14.io" <pda:PdaWindow xmlns="https://spacestation14.io"
xmlns:pda="clr-namespace:Content.Client.PDA" xmlns:pda="clr-namespace:Content.Client.PDA"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls" xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
MinSize="576 450" MinSize="576 450"
SetSize="576 450"> SetSize="576 450">
<!-- This: (Margin="1 1 3 0") is necessary so the navigation bar doesn't sticks into the black content border. --> <!-- This: (Margin="1 1 3 0") is necessary so the navigation bar doesn't sticks into the black content border. -->
<BoxContainer Name="NavigationBar" HorizontalExpand="True" MinHeight="32" Margin="1 1 3 0"> <BoxContainer Name="NavigationBar" HorizontalExpand="True" MinHeight="32" Margin="1 1 3 0">
<pda:PDANavigationButton Name="HomeButton" SetWidth="32" CurrentTabBorderThickness="0 0 2 0" IsCurrent="True"/> <pda:PdaNavigationButton Name="HomeButton" SetWidth="32" CurrentTabBorderThickness="0 0 2 0" IsCurrent="True"/>
<pda:PDANavigationButton Name="ProgramListButton" Access="Public" MinWidth="100" LabelText="{Loc 'comp-pda-io-program-list-button'}"/> <pda:PdaNavigationButton Name="ProgramListButton" Access="Public" MinWidth="100" LabelText="{Loc 'comp-pda-io-program-list-button'}"/>
<pda:PDANavigationButton Name="SettingsButton" MinWidth="100" LabelText="{Loc 'comp-pda-io-settings-button'}"/> <pda:PdaNavigationButton Name="SettingsButton" MinWidth="100" LabelText="{Loc 'comp-pda-io-settings-button'}"/>
<pda:PDANavigationButton Name="ProgramTitle" Access="Public" BorderThickness="0 0 0 2" CurrentTabBorderThickness="2 0 0 2" <pda:PdaNavigationButton Name="ProgramTitle" Access="Public" BorderThickness="0 0 0 2" CurrentTabBorderThickness="2 0 0 2"
ActiveBgColor="#202023" Visible="False"/> ActiveBgColor="#202023" Visible="False"/>
<pda:PDANavigationButton HorizontalExpand="True"/> <pda:PdaNavigationButton HorizontalExpand="True"/>
<pda:PDANavigationButton Name="ProgramCloseButton" Access="Public" IconScale="0.5 0.5" BorderThickness="0 0 2 2" <pda:PdaNavigationButton Name="ProgramCloseButton" Access="Public" IconScale="0.5 0.5" BorderThickness="0 0 2 2"
Visible="False" IsActive="False" SetWidth="32"/> Visible="False" IsActive="False" SetWidth="32"/>
<pda:PDANavigationButton Name="FlashLightToggleButton" Access="Public" ToggleMode="True" ActiveFgColor="#EAEFBB" SetWidth="32"/> <pda:PdaNavigationButton Name="FlashLightToggleButton" Access="Public" ToggleMode="True" ActiveFgColor="#EAEFBB" SetWidth="32"/>
<pda:PDANavigationButton Name="EjectPenButton" Access="Public" SetWidth="32"/> <pda:PdaNavigationButton Name="EjectPenButton" Access="Public" SetWidth="32"/>
<pda:PDANavigationButton Name="EjectIdButton" Access="Public" SetWidth="32"/> <pda:PdaNavigationButton Name="EjectIdButton" Access="Public" SetWidth="32"/>
</BoxContainer> </BoxContainer>
<BoxContainer Name="ViewContainer" HorizontalExpand="True" VerticalExpand="True" Access="Public"> <BoxContainer Name="ViewContainer" HorizontalExpand="True" VerticalExpand="True" Access="Public">
<BoxContainer Orientation="Vertical" <BoxContainer Orientation="Vertical"
@@ -56,24 +56,24 @@
HorizontalExpand="True" HorizontalExpand="True"
MinSize="50 50" MinSize="50 50"
Name="Settings"> Name="Settings">
<pda:PDASettingsButton Name="AccessRingtoneButton" <pda:PdaSettingsButton Name="AccessRingtoneButton"
Access="Public" Access="Public"
Text="{Loc 'comp-pda-ui-ringtone-button'}" Text="{Loc 'comp-pda-ui-ringtone-button'}"
Description="{Loc 'comp-pda-ui-ringtone-button-description'}"/> Description="{Loc 'comp-pda-ui-ringtone-button-description'}"/>
<pda:PDASettingsButton Name="CrewManifestButton" <pda:PdaSettingsButton Name="CrewManifestButton"
Access="Public" Access="Public"
Text="{Loc 'crew-manifest-button-label'}" Text="{Loc 'crew-manifest-button-label'}"
Description="{Loc 'crew-manifest-button-description'}" Description="{Loc 'crew-manifest-button-description'}"
Visible="False" /> Visible="False" />
<pda:PDASettingsButton Name="ActivateMusicButton" <pda:PdaSettingsButton Name="ActivateMusicButton"
Access="Public" Access="Public"
Text="{Loc 'pda-bound-user-interface-music-button'}" Text="{Loc 'pda-bound-user-interface-music-button'}"
Description="{Loc 'pda-bound-user-interface-music-button-description'}"/> Description="{Loc 'pda-bound-user-interface-music-button-description'}"/>
<pda:PDASettingsButton Name="ShowUplinkButton" <pda:PdaSettingsButton Name="ShowUplinkButton"
Access="Public" Access="Public"
Text="{Loc 'pda-bound-user-interface-show-uplink-title'}" Text="{Loc 'pda-bound-user-interface-show-uplink-title'}"
Description="{Loc 'pda-bound-user-interface-show-uplink-description'}"/> Description="{Loc 'pda-bound-user-interface-show-uplink-description'}"/>
<pda:PDASettingsButton Name="LockUplinkButton" <pda:PdaSettingsButton Name="LockUplinkButton"
Access="Public" Access="Public"
Text="{Loc 'pda-bound-user-interface-lock-uplink-title'}" Text="{Loc 'pda-bound-user-interface-lock-uplink-title'}"
Description="{Loc 'pda-bound-user-interface-lock-uplink-description'}"/> Description="{Loc 'pda-bound-user-interface-lock-uplink-description'}"/>
@@ -88,8 +88,8 @@
</BoxContainer> </BoxContainer>
<BoxContainer Name="ContentFooter" HorizontalExpand="True" SetHeight="28" Margin="1 0 2 1"> <BoxContainer Name="ContentFooter" HorizontalExpand="True" SetHeight="28" Margin="1 0 2 1">
<controls:StripeBack HasBottomEdge="False" HasMargins="False" HorizontalExpand="True"> <controls:StripeBack HasBottomEdge="False" HasMargins="False" HorizontalExpand="True">
<Label Text="Robust#OS ™" VerticalAlignment="Center" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Text="Robust#OS ™" VerticalAlignment="Center" Margin="6 0" StyleClasses="PdaContentFooterText"/>
<Label Name="AddressLabel" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="6 0" StyleClasses="PDAContentFooterText"/> <Label Name="AddressLabel" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="6 0" StyleClasses="PdaContentFooterText"/>
</controls:StripeBack> </controls:StripeBack>
</BoxContainer> </BoxContainer>
</pda:PDAWindow> </pda:PdaWindow>

View File

@@ -13,7 +13,7 @@ using Robust.Shared.Timing;
namespace Content.Client.PDA namespace Content.Client.PDA
{ {
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public sealed partial class PDAMenu : PDAWindow public sealed partial class PdaMenu : PdaWindow
{ {
[Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IEntitySystemManager _entitySystem = default!; [Dependency] private readonly IEntitySystemManager _entitySystem = default!;
@@ -29,7 +29,7 @@ namespace Content.Client.PDA
public event Action<EntityUid>? OnProgramItemPressed; public event Action<EntityUid>? OnProgramItemPressed;
public event Action<EntityUid>? OnUninstallButtonPressed; public event Action<EntityUid>? OnUninstallButtonPressed;
public event Action<EntityUid>? OnInstallButtonPressed; public event Action<EntityUid>? OnInstallButtonPressed;
public PDAMenu() public PdaMenu()
{ {
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
_gameTicker = _entitySystem.GetEntitySystem<ClientGameTicker>(); _gameTicker = _entitySystem.GetEntitySystem<ClientGameTicker>();
@@ -88,22 +88,22 @@ namespace Content.Client.PDA
ToHomeScreen(); ToHomeScreen();
} }
public void UpdateState(PDAUpdateState state) public void UpdateState(PdaUpdateState state)
{ {
FlashLightToggleButton.IsActive = state.FlashlightEnabled; FlashLightToggleButton.IsActive = state.FlashlightEnabled;
if (state.PDAOwnerInfo.ActualOwnerName != null) if (state.PdaOwnerInfo.ActualOwnerName != null)
{ {
PdaOwnerLabel.SetMarkup(Loc.GetString("comp-pda-ui-owner", PdaOwnerLabel.SetMarkup(Loc.GetString("comp-pda-ui-owner",
("actualOwnerName", state.PDAOwnerInfo.ActualOwnerName))); ("actualOwnerName", state.PdaOwnerInfo.ActualOwnerName)));
} }
if (state.PDAOwnerInfo.IdOwner != null || state.PDAOwnerInfo.JobTitle != null) if (state.PdaOwnerInfo.IdOwner != null || state.PdaOwnerInfo.JobTitle != null)
{ {
IdInfoLabel.SetMarkup(Loc.GetString("comp-pda-ui", IdInfoLabel.SetMarkup(Loc.GetString("comp-pda-ui",
("owner", state.PDAOwnerInfo.IdOwner ?? Loc.GetString("comp-pda-ui-unknown")), ("owner", state.PdaOwnerInfo.IdOwner ?? Loc.GetString("comp-pda-ui-unknown")),
("jobTitle", state.PDAOwnerInfo.JobTitle ?? Loc.GetString("comp-pda-ui-unassigned")))); ("jobTitle", state.PdaOwnerInfo.JobTitle ?? Loc.GetString("comp-pda-ui-unassigned"))));
} }
else else
{ {
@@ -118,8 +118,8 @@ namespace Content.Client.PDA
StationTimeLabel.SetMarkup(Loc.GetString("comp-pda-ui-station-time", StationTimeLabel.SetMarkup(Loc.GetString("comp-pda-ui-station-time",
("time", stationTime.ToString("hh\\:mm\\:ss")))); ("time", stationTime.ToString("hh\\:mm\\:ss"))));
var alertLevel = state.PDAOwnerInfo.StationAlertLevel; var alertLevel = state.PdaOwnerInfo.StationAlertLevel;
var alertColor = state.PDAOwnerInfo.StationAlertColor; var alertColor = state.PdaOwnerInfo.StationAlertColor;
var alertLevelKey = alertLevel != null ? $"alert-level-{alertLevel}" : "alert-level-unknown"; var alertLevelKey = alertLevel != null ? $"alert-level-{alertLevel}" : "alert-level-unknown";
StationAlertLevelLabel.SetMarkup(Loc.GetString( StationAlertLevelLabel.SetMarkup(Loc.GetString(
@@ -135,7 +135,7 @@ namespace Content.Client.PDA
AddressLabel.Text = state.Address?.ToUpper() ?? " - "; AddressLabel.Text = state.Address?.ToUpper() ?? " - ";
EjectIdButton.IsActive = state.PDAOwnerInfo.IdOwner != null || state.PDAOwnerInfo.JobTitle != null; EjectIdButton.IsActive = state.PdaOwnerInfo.IdOwner != null || state.PdaOwnerInfo.JobTitle != null;
EjectPenButton.IsActive = state.HasPen; EjectPenButton.IsActive = state.HasPen;
ActivateMusicButton.Visible = state.CanPlayMusic; ActivateMusicButton.Visible = state.CanPlayMusic;
ShowUplinkButton.Visible = state.HasUplink; ShowUplinkButton.Visible = state.HasUplink;
@@ -172,7 +172,7 @@ namespace Content.Client.PDA
ProgramList.AddChild(row); ProgramList.AddChild(row);
} }
var item = new PDAProgramItem(); var item = new PdaProgramItem();
if (component.Icon is not null) if (component.Icon is not null)
item.Icon.SetFromSpriteSpecifier(component.Icon); item.Icon.SetFromSpriteSpecifier(component.Icon);

View File

@@ -1,5 +1,5 @@
<pda:PDANavigationButton xmlns="https://spacestation14.io" xmlns:pda="clr-namespace:Content.Client.PDA"> <pda:PdaNavigationButton xmlns="https://spacestation14.io" xmlns:pda="clr-namespace:Content.Client.PDA">
<PanelContainer Name="Background"/> <PanelContainer Name="Background"/>
<AnimatedTextureRect Margin="0 0 0 2" Visible="False" Name="Icon" HorizontalAlignment="Center" VerticalAlignment="Center"/> <AnimatedTextureRect Margin="0 0 0 2" Visible="False" Name="Icon" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Label Visible="True" Name="Label" Margin="8 0 8 2" HorizontalAlignment="Center" VerticalAlignment="Center"/> <Label Visible="True" Name="Label" Margin="8 0 8 2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</pda:PDANavigationButton> </pda:PdaNavigationButton>

View File

@@ -7,7 +7,7 @@ using Robust.Shared.Utility;
namespace Content.Client.PDA; namespace Content.Client.PDA;
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public sealed partial class PDANavigationButton : ContainerButton public sealed partial class PdaNavigationButton : ContainerButton
{ {
private bool _isCurrent; private bool _isCurrent;
@@ -100,7 +100,7 @@ public sealed partial class PDANavigationButton : ContainerButton
} }
} }
public PDANavigationButton() public PdaNavigationButton()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
Background.PanelOverride = _styleBox; Background.PanelOverride = _styleBox;

View File

@@ -1,4 +1,4 @@
<pda:PDAProgramItem HorizontalExpand="True" MinHeight="60" Margin="4" <pda:PdaProgramItem HorizontalExpand="True" MinHeight="60" Margin="4"
xmlns:pda="clr-namespace:Content.Client.PDA" xmlns:pda="clr-namespace:Content.Client.PDA"
xmlns="https://spacestation14.io"> xmlns="https://spacestation14.io">
<PanelContainer Name="Panel"/> <PanelContainer Name="Panel"/>
@@ -14,4 +14,4 @@
</BoxContainer> </BoxContainer>
</BoxContainer> </BoxContainer>
</BoxContainer> </BoxContainer>
</pda:PDAProgramItem> </pda:PdaProgramItem>

View File

@@ -6,7 +6,7 @@ using Robust.Client.UserInterface.XAML;
namespace Content.Client.PDA; namespace Content.Client.PDA;
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public sealed partial class PDAProgramItem : ContainerButton public sealed partial class PdaProgramItem : ContainerButton
{ {
public const string StylePropertyBgColor = "backgroundColor"; public const string StylePropertyBgColor = "backgroundColor";
public const string NormalBgColor = "#313138"; public const string NormalBgColor = "#313138";
@@ -23,7 +23,7 @@ public sealed partial class PDAProgramItem : ContainerButton
set => _styleBox.BackgroundColor = value; set => _styleBox.BackgroundColor = value;
} }
public PDAProgramItem() public PdaProgramItem()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
Panel.PanelOverride = _styleBox; Panel.PanelOverride = _styleBox;

View File

@@ -1,4 +1,4 @@
<pda:PDASettingsButton xmlns="https://spacestation14.io" <pda:PdaSettingsButton xmlns="https://spacestation14.io"
xmlns:pda="clr-namespace:Content.Client.PDA" xmlns:pda="clr-namespace:Content.Client.PDA"
HorizontalExpand="True" HorizontalExpand="True"
MinHeight="48" MinHeight="48"
@@ -8,4 +8,4 @@
<Label Name="OptionName"/> <Label Name="OptionName"/>
<Label Name="OptionDescription"/> <Label Name="OptionDescription"/>
</BoxContainer> </BoxContainer>
</pda:PDASettingsButton> </pda:PdaSettingsButton>

View File

@@ -6,7 +6,7 @@ using Robust.Client.UserInterface.XAML;
namespace Content.Client.PDA; namespace Content.Client.PDA;
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public sealed partial class PDASettingsButton : ContainerButton public sealed partial class PdaSettingsButton : ContainerButton
{ {
public const string StylePropertyFgColor = "foregroundColor"; public const string StylePropertyFgColor = "foregroundColor";
public const string StylePropertyBgColor = "backgroundColor"; public const string StylePropertyBgColor = "backgroundColor";
@@ -49,7 +49,7 @@ public sealed partial class PDASettingsButton : ContainerButton
} }
} }
public PDASettingsButton() public PdaSettingsButton()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
Panel.PanelOverride = _styleBox; Panel.PanelOverride = _styleBox;

View File

@@ -4,28 +4,28 @@ using Robust.Client.GameObjects;
namespace Content.Client.PDA; namespace Content.Client.PDA;
public sealed class PDASystem : SharedPDASystem public sealed class PdaSystem : SharedPdaSystem
{ {
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<PDAComponent, AppearanceChangeEvent>(OnAppearanceChange); SubscribeLocalEvent<PdaComponent, AppearanceChangeEvent>(OnAppearanceChange);
} }
private void OnAppearanceChange(EntityUid uid, PDAComponent component, ref AppearanceChangeEvent args) private void OnAppearanceChange(EntityUid uid, PdaComponent component, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
return; return;
if (Appearance.TryGetData<bool>(uid, UnpoweredFlashlightVisuals.LightOn, out var isFlashlightOn, args.Component)) if (Appearance.TryGetData<bool>(uid, UnpoweredFlashlightVisuals.LightOn, out var isFlashlightOn, args.Component))
args.Sprite.LayerSetVisible(PDAVisualLayers.Flashlight, isFlashlightOn); args.Sprite.LayerSetVisible(PdaVisualLayers.Flashlight, isFlashlightOn);
if (Appearance.TryGetData<bool>(uid, PDAVisuals.IDCardInserted, out var isCardInserted, args.Component)) if (Appearance.TryGetData<bool>(uid, PdaVisuals.IdCardInserted, out var isCardInserted, args.Component))
args.Sprite.LayerSetVisible(PDAVisualLayers.IDLight, isCardInserted); args.Sprite.LayerSetVisible(PdaVisualLayers.IdLight, isCardInserted);
} }
protected override void OnComponentInit(EntityUid uid, PDAComponent component, ComponentInit args) protected override void OnComponentInit(EntityUid uid, PdaComponent component, ComponentInit args)
{ {
base.OnComponentInit(uid, component, args); base.OnComponentInit(uid, component, args);
@@ -33,16 +33,16 @@ public sealed class PDASystem : SharedPDASystem
return; return;
if (component.State != null) if (component.State != null)
sprite.LayerSetState(PDAVisualLayers.Base, component.State); sprite.LayerSetState(PdaVisualLayers.Base, component.State);
sprite.LayerSetVisible(PDAVisualLayers.Flashlight, component.FlashlightOn); sprite.LayerSetVisible(PdaVisualLayers.Flashlight, component.FlashlightOn);
sprite.LayerSetVisible(PDAVisualLayers.IDLight, component.IdSlot.StartingItem != null); sprite.LayerSetVisible(PdaVisualLayers.IdLight, component.IdSlot.StartingItem != null);
} }
public enum PDAVisualLayers : byte public enum PdaVisualLayers : byte
{ {
Base, Base,
Flashlight, Flashlight,
IDLight IdLight
} }
} }

View File

@@ -1,11 +1,11 @@
<pda:PDAWindow xmlns="https://spacestation14.io" <pda:PdaWindow xmlns="https://spacestation14.io"
xmlns:pda="clr-namespace:Content.Client.PDA" xmlns:pda="clr-namespace:Content.Client.PDA"
MouseFilter="Stop"> MouseFilter="Stop">
<PanelContainer Name="Background" Access="Public" StyleClasses="PDABackgroundRect" /> <PanelContainer Name="Background" Access="Public" StyleClasses="PdaBackgroundRect" />
<!-- The negative markin fixes a gap between the window edges and the decorative panel --> <!-- The negative markin fixes a gap between the window edges and the decorative panel -->
<PanelContainer Name="AccentH" Margin="-1 170 -2 170" Access="Public" StyleClasses="PDABackground" /> <PanelContainer Name="AccentH" Margin="-1 170 -2 170" Access="Public" StyleClasses="PdaBackground" />
<PanelContainer Name="AccentV" Margin="220 -1 220 -1" Access="Public" StyleClasses="PDABackground" /> <PanelContainer Name="AccentV" Margin="220 -1 220 -1" Access="Public" StyleClasses="PdaBackground" />
<PanelContainer Name="Border" StyleClasses="PDABorderRect" /> <PanelContainer Name="Border" StyleClasses="PdaBorderRect" />
<BoxContainer Orientation="Vertical" HorizontalExpand="True"> <BoxContainer Orientation="Vertical" HorizontalExpand="True">
<!--Heading--> <!--Heading-->
<BoxContainer SetHeight="26" Margin="4 2 8 0" Orientation="Horizontal"> <BoxContainer SetHeight="26" Margin="4 2 8 0" Orientation="Horizontal">
@@ -16,16 +16,16 @@
<!--Content--> <!--Content-->
<Control Margin="18 0" RectClipContent="True" VerticalExpand="true" <Control Margin="18 0" RectClipContent="True" VerticalExpand="true"
HorizontalExpand="True"> HorizontalExpand="True">
<PanelContainer Name="ContentBorder" StyleClasses="PDABackground"/> <PanelContainer Name="ContentBorder" StyleClasses="PdaBackground"/>
<Control Margin="3 3"> <Control Margin="3 3">
<PanelContainer Name="ContentBackground" StyleClasses="PDAContentBackground"/> <PanelContainer Name="ContentBackground" StyleClasses="PdaContentBackground"/>
<BoxContainer Access="Public" Name="ContentsContainer" Orientation="Vertical" StyleClasses="PDAContent"/> <BoxContainer Access="Public" Name="ContentsContainer" Orientation="Vertical" StyleClasses="PdaContent"/>
</Control> </Control>
</Control> </Control>
<!--Footer--> <!--Footer-->
<BoxContainer Orientation="Horizontal" SetHeight="28"> <BoxContainer Orientation="Horizontal" SetHeight="28">
<Label Text="Personal Digital Assistant" StyleClasses="PDAWindowFooterText" Margin="32 0 0 6"/> <Label Text="Personal Digital Assistant" StyleClasses="PdaWindowFooterText" Margin="32 0 0 6"/>
</BoxContainer> </BoxContainer>
</BoxContainer> </BoxContainer>
</pda:PDAWindow> </pda:PdaWindow>

View File

@@ -6,7 +6,7 @@ namespace Content.Client.PDA;
[Virtual] [Virtual]
[GenerateTypedNameReferences] [GenerateTypedNameReferences]
public partial class PDAWindow : BaseWindow public partial class PdaWindow : BaseWindow
{ {
public string? BorderColor public string? BorderColor
@@ -38,7 +38,7 @@ public partial class PDAWindow : BaseWindow
} }
} }
public PDAWindow() public PdaWindow()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);

View File

@@ -2,7 +2,7 @@
<BoxContainer Orientation="Horizontal"> <BoxContainer Orientation="Horizontal">
<PanelContainer Name="Background" <PanelContainer Name="Background"
Access="Public" Access="Public"
StyleClasses="PDABackground" StyleClasses="PdaBackground"
VerticalExpand="False" VerticalExpand="False"
HorizontalExpand="False" HorizontalExpand="False"
MaxWidth="10" MaxWidth="10"

View File

@@ -3,7 +3,7 @@
<BoxContainer Name="MainContainer" Orientation="Vertical" Margin="10 0 10 10"> <BoxContainer Name="MainContainer" Orientation="Vertical" Margin="10 0 10 10">
<PanelContainer Name="Background" <PanelContainer Name="Background"
Access="Public" Access="Public"
StyleClasses="PDABackground" StyleClasses="PdaBackground"
MinHeight="15" MinHeight="15"
VerticalExpand="False" VerticalExpand="False"
HorizontalExpand="True" HorizontalExpand="True"

View File

@@ -1396,56 +1396,56 @@ namespace Content.Client.Stylesheets
.Prop("font-color", DisabledFore), .Prop("font-color", DisabledFore),
//PDA - Backgrounds //PDA - Backgrounds
Element<PanelContainer>().Class("PDAContentBackground") Element<PanelContainer>().Class("PdaContentBackground")
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth) .Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#25252a")), .Prop(Control.StylePropertyModulateSelf, Color.FromHex("#25252a")),
Element<PanelContainer>().Class("PDABackground") Element<PanelContainer>().Class("PdaBackground")
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth) .Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#000000")), .Prop(Control.StylePropertyModulateSelf, Color.FromHex("#000000")),
Element<PanelContainer>().Class("PDABackgroundRect") Element<PanelContainer>().Class("PdaBackgroundRect")
.Prop(PanelContainer.StylePropertyPanel, BaseAngleRect) .Prop(PanelContainer.StylePropertyPanel, BaseAngleRect)
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#717059")), .Prop(Control.StylePropertyModulateSelf, Color.FromHex("#717059")),
Element<PanelContainer>().Class("PDABorderRect") Element<PanelContainer>().Class("PdaBorderRect")
.Prop(PanelContainer.StylePropertyPanel, AngleBorderRect), .Prop(PanelContainer.StylePropertyPanel, AngleBorderRect),
Element<PanelContainer>().Class("BackgroundDark") Element<PanelContainer>().Class("BackgroundDark")
.Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat(Color.FromHex("#25252A"))), .Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat(Color.FromHex("#25252A"))),
//PDA - Buttons //PDA - Buttons
Element<PDASettingsButton>().Pseudo(ContainerButton.StylePseudoClassNormal) Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassNormal)
.Prop(PDASettingsButton.StylePropertyBgColor, Color.FromHex(PDASettingsButton.NormalBgColor)) .Prop(PdaSettingsButton.StylePropertyBgColor, Color.FromHex(PdaSettingsButton.NormalBgColor))
.Prop(PDASettingsButton.StylePropertyFgColor, Color.FromHex(PDASettingsButton.EnabledFgColor)), .Prop(PdaSettingsButton.StylePropertyFgColor, Color.FromHex(PdaSettingsButton.EnabledFgColor)),
Element<PDASettingsButton>().Pseudo(ContainerButton.StylePseudoClassHover) Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassHover)
.Prop(PDASettingsButton.StylePropertyBgColor, Color.FromHex(PDASettingsButton.HoverColor)) .Prop(PdaSettingsButton.StylePropertyBgColor, Color.FromHex(PdaSettingsButton.HoverColor))
.Prop(PDASettingsButton.StylePropertyFgColor, Color.FromHex(PDASettingsButton.EnabledFgColor)), .Prop(PdaSettingsButton.StylePropertyFgColor, Color.FromHex(PdaSettingsButton.EnabledFgColor)),
Element<PDASettingsButton>().Pseudo(ContainerButton.StylePseudoClassPressed) Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassPressed)
.Prop(PDASettingsButton.StylePropertyBgColor, Color.FromHex(PDASettingsButton.PressedColor)) .Prop(PdaSettingsButton.StylePropertyBgColor, Color.FromHex(PdaSettingsButton.PressedColor))
.Prop(PDASettingsButton.StylePropertyFgColor, Color.FromHex(PDASettingsButton.EnabledFgColor)), .Prop(PdaSettingsButton.StylePropertyFgColor, Color.FromHex(PdaSettingsButton.EnabledFgColor)),
Element<PDASettingsButton>().Pseudo(ContainerButton.StylePseudoClassDisabled) Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassDisabled)
.Prop(PDASettingsButton.StylePropertyBgColor, Color.FromHex(PDASettingsButton.NormalBgColor)) .Prop(PdaSettingsButton.StylePropertyBgColor, Color.FromHex(PdaSettingsButton.NormalBgColor))
.Prop(PDASettingsButton.StylePropertyFgColor, Color.FromHex(PDASettingsButton.DisabledFgColor)), .Prop(PdaSettingsButton.StylePropertyFgColor, Color.FromHex(PdaSettingsButton.DisabledFgColor)),
Element<PDAProgramItem>().Pseudo(ContainerButton.StylePseudoClassNormal) Element<PdaProgramItem>().Pseudo(ContainerButton.StylePseudoClassNormal)
.Prop(PDAProgramItem.StylePropertyBgColor, Color.FromHex(PDAProgramItem.NormalBgColor)), .Prop(PdaProgramItem.StylePropertyBgColor, Color.FromHex(PdaProgramItem.NormalBgColor)),
Element<PDAProgramItem>().Pseudo(ContainerButton.StylePseudoClassHover) Element<PdaProgramItem>().Pseudo(ContainerButton.StylePseudoClassHover)
.Prop(PDAProgramItem.StylePropertyBgColor, Color.FromHex(PDAProgramItem.HoverColor)), .Prop(PdaProgramItem.StylePropertyBgColor, Color.FromHex(PdaProgramItem.HoverColor)),
Element<PDAProgramItem>().Pseudo(ContainerButton.StylePseudoClassPressed) Element<PdaProgramItem>().Pseudo(ContainerButton.StylePseudoClassPressed)
.Prop(PDAProgramItem.StylePropertyBgColor, Color.FromHex(PDAProgramItem.HoverColor)), .Prop(PdaProgramItem.StylePropertyBgColor, Color.FromHex(PdaProgramItem.HoverColor)),
//PDA - Text //PDA - Text
Element<Label>().Class("PDAContentFooterText") Element<Label>().Class("PdaContentFooterText")
.Prop(Label.StylePropertyFont, notoSans10) .Prop(Label.StylePropertyFont, notoSans10)
.Prop(Label.StylePropertyFontColor, Color.FromHex("#757575")), .Prop(Label.StylePropertyFontColor, Color.FromHex("#757575")),
Element<Label>().Class("PDAWindowFooterText") Element<Label>().Class("PdaWindowFooterText")
.Prop(Label.StylePropertyFont, notoSans10) .Prop(Label.StylePropertyFont, notoSans10)
.Prop(Label.StylePropertyFontColor, Color.FromHex("#333d3b")), .Prop(Label.StylePropertyFontColor, Color.FromHex("#333d3b")),

View File

@@ -38,7 +38,7 @@ namespace Content.IntegrationTests.Tests
QuickEquip: false QuickEquip: false
slots: slots:
- idcard - idcard
- type: PDA - type: Pda
"; ";
[Test] [Test]
public async Task SpawnItemInSlotTest() public async Task SpawnItemInSlotTest()

View File

@@ -47,9 +47,9 @@ public sealed class IdExaminableSystem : EntitySystem
if (_inventorySystem.TryGetSlotEntity(uid, "id", out var idUid)) if (_inventorySystem.TryGetSlotEntity(uid, "id", out var idUid))
{ {
// PDA // PDA
if (EntityManager.TryGetComponent(idUid, out PDAComponent? pda) && pda.ContainedID is not null) if (EntityManager.TryGetComponent(idUid, out PdaComponent? pda) && pda.ContainedId is not null)
{ {
return GetNameAndJob(pda.ContainedID); return GetNameAndJob(pda.ContainedId);
} }
// ID Card // ID Card
if (EntityManager.TryGetComponent(idUid, out IdCardComponent? id)) if (EntityManager.TryGetComponent(idUid, out IdCardComponent? id))

View File

@@ -105,10 +105,10 @@ namespace Content.Server.Administration.Commands
} }
var equipmentEntity = entityManager.SpawnEntity(gearStr, entityManager.GetComponent<TransformComponent>(target).Coordinates); var equipmentEntity = entityManager.SpawnEntity(gearStr, entityManager.GetComponent<TransformComponent>(target).Coordinates);
if (slot.Name == "id" && if (slot.Name == "id" &&
entityManager.TryGetComponent<PDAComponent?>(equipmentEntity, out var pdaComponent) && entityManager.TryGetComponent<PdaComponent?>(equipmentEntity, out var pdaComponent) &&
pdaComponent.ContainedID != null) pdaComponent.ContainedId != null)
{ {
pdaComponent.ContainedID.FullName = entityManager.GetComponent<MetaDataComponent>(target).EntityName; pdaComponent.ContainedId.FullName = entityManager.GetComponent<MetaDataComponent>(target).EntityName;
} }
invSystem.TryEquip(target, equipmentEntity, slot.Name, silent: true, force: true, inventory: inventoryComponent); invSystem.TryEquip(target, equipmentEntity, slot.Name, silent: true, force: true, inventory: inventoryComponent);

View File

@@ -857,11 +857,11 @@ public sealed partial class AdminVerbSystem
{ {
return slotEntity.Value; return slotEntity.Value;
} }
else if (TryComp<PDAComponent>(slotEntity, out var pda)) else if (TryComp<PdaComponent>(slotEntity, out var pda))
{ {
if (pda.ContainedID != null) if (pda.ContainedId != null)
{ {
return pda.ContainedID.Owner; return pda.ContainedId.Owner;
} }
} }
} }

View File

@@ -187,7 +187,7 @@ public sealed class AlertLevelSystem : EntitySystem
RaiseLocalEvent(new AlertLevelChangedEvent(station, level)); RaiseLocalEvent(new AlertLevelChangedEvent(station, level));
var pdas = EntityQueryEnumerator<PDAComponent>(); var pdas = EntityQueryEnumerator<PdaComponent>();
while (pdas.MoveNext(out var ent, out var comp)) while (pdas.MoveNext(out var ent, out var comp))
{ {
RaiseLocalEvent(ent,new AlertLevelChangedEvent(station, level)); RaiseLocalEvent(ent,new AlertLevelChangedEvent(station, level));

View File

@@ -35,7 +35,7 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem
/// Because the cartridge loader integrates with the ui of the entity using it, the entities ui state needs to inherit from <see cref="CartridgeLoaderUiState"/> /// Because the cartridge loader integrates with the ui of the entity using it, the entities ui state needs to inherit from <see cref="CartridgeLoaderUiState"/>
/// and use this method to update its state so the cartridge loaders state can be added to it. /// and use this method to update its state so the cartridge loaders state can be added to it.
/// </remarks> /// </remarks>
/// <seealso cref="PDA.PDASystem.UpdatePDAUserInterface"/> /// <seealso cref="PDA.PdaSystem.UpdatePdaUserInterface"/>
public void UpdateUiState(EntityUid loaderUid, CartridgeLoaderUiState state, IPlayerSession? session = default!, CartridgeLoaderComponent? loader = default!) public void UpdateUiState(EntityUid loaderUid, CartridgeLoaderUiState state, IPlayerSession? session = default!, CartridgeLoaderComponent? loader = default!)
{ {
if (!Resolve(loaderUid, ref loader)) if (!Resolve(loaderUid, ref loader))
@@ -362,9 +362,9 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem
/// <summary> /// <summary>
/// Shortcut for updating the loaders user interface state without passing in a subtype of <see cref="CartridgeLoaderUiState"/> /// Shortcut for updating the loaders user interface state without passing in a subtype of <see cref="CartridgeLoaderUiState"/>
/// like the <see cref="PDA.PDASystem"/> does when updating its ui state /// like the <see cref="PDA.PdaSystem"/> does when updating its ui state
/// </summary> /// </summary>
/// <seealso cref="PDA.PDASystem.UpdatePDAUserInterface"/> /// <seealso cref="PDA.PdaSystem.UpdatePdaUserInterface"/>
private void UpdateUserInterfaceState(EntityUid loaderUid, CartridgeLoaderComponent loader) private void UpdateUserInterfaceState(EntityUid loaderUid, CartridgeLoaderComponent loader)
{ {
UpdateUiState(loaderUid, new CartridgeLoaderUiState(), null, loader); UpdateUiState(loaderUid, new CartridgeLoaderUiState(), null, loader);

View File

@@ -18,7 +18,7 @@ namespace Content.Server.Entry
"HandheldGPS", "HandheldGPS",
"CableVisualizer", "CableVisualizer",
"UIFragment", "UIFragment",
"PDABorderColor", "PdaBorderColor",
"InventorySlots", "InventorySlots",
"LightFade", "LightFade",
}; };

View File

@@ -80,9 +80,9 @@ public sealed class RenameCommand : IConsoleCommand
} }
// PDAs // PDAs
if (entSysMan.TryGetEntitySystem<PDASystem>(out var pdaSystem)) if (entSysMan.TryGetEntitySystem<PdaSystem>(out var pdaSystem))
{ {
var query = entMan.EntityQueryEnumerator<PDAComponent>(); var query = entMan.EntityQueryEnumerator<PdaComponent>();
while (query.MoveNext(out var uid, out var pda)) while (query.MoveNext(out var uid, out var pda))
{ {
if (pda.OwnerName == oldName) if (pda.OwnerName == oldName)

View File

@@ -16,7 +16,7 @@ using Content.Shared.Light.Component;
namespace Content.Server.PDA namespace Content.Server.PDA
{ {
public sealed class PDASystem : SharedPDASystem public sealed class PdaSystem : SharedPdaSystem
{ {
[Dependency] private readonly CartridgeLoaderSystem _cartridgeLoader = default!; [Dependency] private readonly CartridgeLoaderSystem _cartridgeLoader = default!;
[Dependency] private readonly InstrumentSystem _instrument = default!; [Dependency] private readonly InstrumentSystem _instrument = default!;
@@ -30,20 +30,20 @@ namespace Content.Server.PDA
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<PDAComponent, LightToggleEvent>(OnLightToggle); SubscribeLocalEvent<PdaComponent, LightToggleEvent>(OnLightToggle);
SubscribeLocalEvent<PDAComponent, GridModifiedEvent>(OnGridChanged); SubscribeLocalEvent<PdaComponent, GridModifiedEvent>(OnGridChanged);
SubscribeLocalEvent<PDAComponent, AlertLevelChangedEvent>(OnAlertLevelChanged); SubscribeLocalEvent<PdaComponent, AlertLevelChangedEvent>(OnAlertLevelChanged);
// UI Events: // UI Events:
SubscribeLocalEvent<PDAComponent, PDARequestUpdateInterfaceMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaRequestUpdateInterfaceMessage>(OnUiMessage);
SubscribeLocalEvent<PDAComponent, PDAToggleFlashlightMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaToggleFlashlightMessage>(OnUiMessage);
SubscribeLocalEvent<PDAComponent, PDAShowRingtoneMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaShowRingtoneMessage>(OnUiMessage);
SubscribeLocalEvent<PDAComponent, PDAShowMusicMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaShowMusicMessage>(OnUiMessage);
SubscribeLocalEvent<PDAComponent, PDAShowUplinkMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaShowUplinkMessage>(OnUiMessage);
SubscribeLocalEvent<PDAComponent, PDALockUplinkMessage>(OnUiMessage); SubscribeLocalEvent<PdaComponent, PdaLockUplinkMessage>(OnUiMessage);
} }
protected override void OnComponentInit(EntityUid uid, PDAComponent pda, ComponentInit args) protected override void OnComponentInit(EntityUid uid, PdaComponent pda, ComponentInit args)
{ {
base.OnComponentInit(uid, pda, args); base.OnComponentInit(uid, pda, args);
@@ -54,31 +54,31 @@ namespace Content.Server.PDA
UpdateStationName(uid, pda); UpdateStationName(uid, pda);
} }
protected override void OnItemInserted(EntityUid uid, PDAComponent pda, EntInsertedIntoContainerMessage args) protected override void OnItemInserted(EntityUid uid, PdaComponent pda, EntInsertedIntoContainerMessage args)
{ {
base.OnItemInserted(uid, pda, args); base.OnItemInserted(uid, pda, args);
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
protected override void OnItemRemoved(EntityUid uid, PDAComponent pda, EntRemovedFromContainerMessage args) protected override void OnItemRemoved(EntityUid uid, PdaComponent pda, EntRemovedFromContainerMessage args)
{ {
base.OnItemRemoved(uid, pda, args); base.OnItemRemoved(uid, pda, args);
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
private void OnLightToggle(EntityUid uid, PDAComponent pda, LightToggleEvent args) private void OnLightToggle(EntityUid uid, PdaComponent pda, LightToggleEvent args)
{ {
pda.FlashlightOn = args.IsOn; pda.FlashlightOn = args.IsOn;
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
public void SetOwner(EntityUid uid, PDAComponent pda, string ownerName) public void SetOwner(EntityUid uid, PdaComponent pda, string ownerName)
{ {
pda.OwnerName = ownerName; pda.OwnerName = ownerName;
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
private void OnGridChanged(EntityUid uid, PDAComponent pda, GridModifiedEvent args) private void OnGridChanged(EntityUid uid, PdaComponent pda, GridModifiedEvent args)
{ {
UpdateStationName(uid, pda); UpdateStationName(uid, pda);
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
@@ -87,18 +87,18 @@ namespace Content.Server.PDA
/// <summary> /// <summary>
/// Send new UI state to clients, call if you modify something like uplink. /// Send new UI state to clients, call if you modify something like uplink.
/// </summary> /// </summary>
public void UpdatePdaUi(EntityUid uid, PDAComponent pda) public void UpdatePdaUi(EntityUid uid, PdaComponent pda)
{ {
var ownerInfo = new PDAIdInfoText var ownerInfo = new PdaIdInfoText
{ {
ActualOwnerName = pda.OwnerName, ActualOwnerName = pda.OwnerName,
IdOwner = pda.ContainedID?.FullName, IdOwner = pda.ContainedId?.FullName,
JobTitle = pda.ContainedID?.JobTitle, JobTitle = pda.ContainedId?.JobTitle,
StationAlertLevel = pda.StationAlertLevel, StationAlertLevel = pda.StationAlertLevel,
StationAlertColor = pda.StationAlertColor StationAlertColor = pda.StationAlertColor
}; };
if (!_ui.TryGetUi(uid, PDAUiKey.Key, out var ui)) if (!_ui.TryGetUi(uid, PdaUiKey.Key, out var ui))
return; return;
var address = GetDeviceNetAddress(uid); var address = GetDeviceNetAddress(uid);
@@ -110,7 +110,7 @@ namespace Content.Server.PDA
// TODO: Update the level and name of the station with each call to UpdatePdaUi is only needed for latejoin players. // TODO: Update the level and name of the station with each call to UpdatePdaUi is only needed for latejoin players.
// TODO: If someone can implement changing the level and name of the station when changing the PDA grid, this can be removed. // TODO: If someone can implement changing the level and name of the station when changing the PDA grid, this can be removed.
var state = new PDAUpdateState( var state = new PdaUpdateState(
pda.FlashlightOn, pda.FlashlightOn,
pda.PenSlot.HasItem, pda.PenSlot.HasItem,
ownerInfo, ownerInfo,
@@ -122,44 +122,44 @@ namespace Content.Server.PDA
_cartridgeLoader?.UpdateUiState(uid, state); _cartridgeLoader?.UpdateUiState(uid, state);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDARequestUpdateInterfaceMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaRequestUpdateInterfaceMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDAToggleFlashlightMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaToggleFlashlightMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
if (TryComp<UnpoweredFlashlightComponent>(uid, out var flashlight)) if (TryComp<UnpoweredFlashlightComponent>(uid, out var flashlight))
_unpoweredFlashlight.ToggleLight(uid, flashlight); _unpoweredFlashlight.ToggleLight(uid, flashlight);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDAShowRingtoneMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowRingtoneMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
if (HasComp<RingerComponent>(uid)) if (HasComp<RingerComponent>(uid))
_ringer.ToggleRingerUI(uid, (IPlayerSession) msg.Session); _ringer.ToggleRingerUI(uid, (IPlayerSession) msg.Session);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDAShowMusicMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowMusicMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
if (TryComp<InstrumentComponent>(uid, out var instrument)) if (TryComp<InstrumentComponent>(uid, out var instrument))
_instrument.ToggleInstrumentUi(uid, (IPlayerSession) msg.Session, instrument); _instrument.ToggleInstrumentUi(uid, (IPlayerSession) msg.Session, instrument);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDAShowUplinkMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowUplinkMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
// check if its locked again to prevent malicious clients opening locked uplinks // check if its locked again to prevent malicious clients opening locked uplinks
@@ -167,9 +167,9 @@ namespace Content.Server.PDA
_store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store); _store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store);
} }
private void OnUiMessage(EntityUid uid, PDAComponent pda, PDALockUplinkMessage msg) private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaLockUplinkMessage msg)
{ {
if (!PDAUiKey.Key.Equals(msg.UiKey)) if (!PdaUiKey.Key.Equals(msg.UiKey))
return; return;
if (TryComp<RingerUplinkComponent>(uid, out var uplink)) if (TryComp<RingerUplinkComponent>(uid, out var uplink))
@@ -184,19 +184,19 @@ namespace Content.Server.PDA
return !TryComp<RingerUplinkComponent>(uid, out var uplink) || uplink.Unlocked; return !TryComp<RingerUplinkComponent>(uid, out var uplink) || uplink.Unlocked;
} }
private void UpdateStationName(EntityUid uid, PDAComponent pda) private void UpdateStationName(EntityUid uid, PdaComponent pda)
{ {
var station = _station.GetOwningStation(uid); var station = _station.GetOwningStation(uid);
pda.StationName = station is null ? null : Name(station.Value); pda.StationName = station is null ? null : Name(station.Value);
} }
private void OnAlertLevelChanged(EntityUid uid, PDAComponent pda, AlertLevelChangedEvent args) private void OnAlertLevelChanged(EntityUid uid, PdaComponent pda, AlertLevelChangedEvent args)
{ {
UpdateAlertLevel(uid, pda); UpdateAlertLevel(uid, pda);
UpdatePdaUi(uid, pda); UpdatePdaUi(uid, pda);
} }
private void UpdateAlertLevel(EntityUid uid, PDAComponent pda) private void UpdateAlertLevel(EntityUid uid, PdaComponent pda)
{ {
var station = _station.GetOwningStation(uid); var station = _station.GetOwningStation(uid);
if (!TryComp(station, out AlertLevelComponent? alertComp) || if (!TryComp(station, out AlertLevelComponent? alertComp) ||

View File

@@ -15,7 +15,7 @@ namespace Content.Server.PDA.Ringer
{ {
public sealed class RingerSystem : SharedRingerSystem public sealed class RingerSystem : SharedRingerSystem
{ {
[Dependency] private readonly PDASystem _pda = default!; [Dependency] private readonly PdaSystem _pda = default!;
[Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly UserInterfaceSystem _ui = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!;
[Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly AudioSystem _audio = default!;
@@ -74,7 +74,7 @@ namespace Content.Server.PDA.Ringer
if (uplink.Code.SequenceEqual(args.Ringtone) && HasComp<StoreComponent>(uid)) if (uplink.Code.SequenceEqual(args.Ringtone) && HasComp<StoreComponent>(uid))
{ {
uplink.Unlocked = !uplink.Unlocked; uplink.Unlocked = !uplink.Unlocked;
if (TryComp<PDAComponent>(uid, out var pda)) if (TryComp<PdaComponent>(uid, out var pda))
_pda.UpdatePdaUi(uid, pda); _pda.UpdatePdaUi(uid, pda);
// can't keep store open after locking it // can't keep store open after locking it

View File

@@ -128,9 +128,9 @@ namespace Content.Server.Sandbox
{ {
UpgradeId(slotEntity.Value); UpgradeId(slotEntity.Value);
} }
else if (TryComp<PDAComponent>(slotEntity, out var pda)) else if (TryComp<PdaComponent>(slotEntity, out var pda))
{ {
if (pda.ContainedID == null) if (pda.ContainedId == null)
{ {
var newID = CreateFreshId(); var newID = CreateFreshId();
if (TryComp<ItemSlotsComponent>(pda.Owner, out var itemSlots)) if (TryComp<ItemSlotsComponent>(pda.Owner, out var itemSlots))
@@ -140,7 +140,7 @@ namespace Content.Server.Sandbox
} }
else else
{ {
UpgradeId(pda.ContainedID.Owner); UpgradeId(pda.ContainedId.Owner);
} }
} }
} }

View File

@@ -41,7 +41,7 @@ public sealed class StationSpawningSystem : EntitySystem
[Dependency] private readonly HumanoidAppearanceSystem _humanoidSystem = default!; [Dependency] private readonly HumanoidAppearanceSystem _humanoidSystem = default!;
[Dependency] private readonly IdCardSystem _cardSystem = default!; [Dependency] private readonly IdCardSystem _cardSystem = default!;
[Dependency] private readonly InventorySystem _inventorySystem = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!;
[Dependency] private readonly PDASystem _pdaSystem = default!; [Dependency] private readonly PdaSystem _pdaSystem = default!;
[Dependency] private readonly SharedAccessSystem _accessSystem = default!; [Dependency] private readonly SharedAccessSystem _accessSystem = default!;
[Dependency] private readonly IdentitySystem _identity = default!; [Dependency] private readonly IdentitySystem _identity = default!;
@@ -211,10 +211,10 @@ public sealed class StationSpawningSystem : EntitySystem
if (!_inventorySystem.TryGetSlotEntity(entity, "id", out var idUid)) if (!_inventorySystem.TryGetSlotEntity(entity, "id", out var idUid))
return; return;
if (!EntityManager.TryGetComponent(idUid, out PDAComponent? pdaComponent) || pdaComponent.ContainedID == null) if (!EntityManager.TryGetComponent(idUid, out PdaComponent? pdaComponent) || pdaComponent.ContainedId == null)
return; return;
var card = pdaComponent.ContainedID; var card = pdaComponent.ContainedId;
var cardId = card.Owner; var cardId = card.Owner;
_cardSystem.TryChangeFullName(cardId, characterName, card); _cardSystem.TryChangeFullName(cardId, characterName, card);
_cardSystem.TryChangeJobTitle(cardId, jobPrototype.LocalizedName, card); _cardSystem.TryChangeJobTitle(cardId, jobPrototype.LocalizedName, card);

View File

@@ -137,7 +137,7 @@ public sealed class StationRecordsSystem : EntitySystem
if (idUid != null) if (idUid != null)
{ {
var keyStorageEntity = idUid; var keyStorageEntity = idUid;
if (TryComp(idUid, out PDAComponent? pdaComponent) && pdaComponent.ContainedID != null) if (TryComp(idUid, out PdaComponent? pdaComponent) && pdaComponent.ContainedId != null)
{ {
keyStorageEntity = pdaComponent.IdSlot.Item; keyStorageEntity = pdaComponent.IdSlot.Item;
} }

View File

@@ -74,7 +74,7 @@ namespace Content.Server.Traitor.Uplink
{ {
if (!pdaUid.ContainedEntity.HasValue) continue; if (!pdaUid.ContainedEntity.HasValue) continue;
if (HasComp<PDAComponent>(pdaUid.ContainedEntity.Value) || HasComp<StoreComponent>(pdaUid.ContainedEntity.Value)) if (HasComp<PdaComponent>(pdaUid.ContainedEntity.Value) || HasComp<StoreComponent>(pdaUid.ContainedEntity.Value))
return pdaUid.ContainedEntity.Value; return pdaUid.ContainedEntity.Value;
} }
} }
@@ -82,7 +82,7 @@ namespace Content.Server.Traitor.Uplink
// Also check hands // Also check hands
foreach (var item in _handsSystem.EnumerateHeld(user)) foreach (var item in _handsSystem.EnumerateHeld(user))
{ {
if (HasComp<PDAComponent>(item) || HasComp<StoreComponent>(item)) if (HasComp<PdaComponent>(item) || HasComp<StoreComponent>(item))
return item; return item;
} }

View File

@@ -7,7 +7,7 @@ namespace Content.Shared.Access.Components
{ {
[RegisterComponent, NetworkedComponent] [RegisterComponent, NetworkedComponent]
[AutoGenerateComponentState] [AutoGenerateComponentState]
[Access(typeof(SharedIdCardSystem), typeof(SharedPDASystem), typeof(SharedAgentIdCardSystem), Other = AccessPermissions.ReadWrite)] [Access(typeof(SharedIdCardSystem), typeof(SharedPdaSystem), typeof(SharedAgentIdCardSystem), Other = AccessPermissions.ReadWrite)]
public sealed partial class IdCardComponent : Component public sealed partial class IdCardComponent : Component
{ {
[DataField("fullName")] [DataField("fullName")]
@@ -17,7 +17,7 @@ namespace Content.Shared.Access.Components
[DataField("jobTitle")] [DataField("jobTitle")]
[AutoNetworkedField] [AutoNetworkedField]
[Access(typeof(SharedIdCardSystem), typeof(SharedPDASystem), typeof(SharedAgentIdCardSystem), [Access(typeof(SharedIdCardSystem), typeof(SharedPdaSystem), typeof(SharedAgentIdCardSystem),
Other = AccessPermissions.ReadWrite)] Other = AccessPermissions.ReadWrite)]
public string? JobTitle; public string? JobTitle;
} }

View File

@@ -256,8 +256,8 @@ namespace Content.Shared.Access.Systems
return true; return true;
} }
if (TryComp(uid, out PDAComponent? pda) && if (TryComp(uid, out PdaComponent? pda) &&
pda.ContainedID?.Owner is {Valid: true} id) pda.ContainedId?.Owner is {Valid: true} id)
{ {
tags = EntityManager.GetComponent<AccessComponent>(id).Tags; tags = EntityManager.GetComponent<AccessComponent>(id).Tags;
return true; return true;
@@ -279,8 +279,8 @@ namespace Content.Shared.Access.Systems
return true; return true;
} }
if (TryComp<PDAComponent>(uid, out var pda) && if (TryComp<PdaComponent>(uid, out var pda) &&
pda.ContainedID?.Owner is {Valid: true} id) pda.ContainedId?.Owner is {Valid: true} id)
{ {
if (TryComp<StationRecordKeyStorageComponent>(id, out var pdastorage) && pdastorage.Key != null) if (TryComp<StationRecordKeyStorageComponent>(id, out var pdastorage) && pdastorage.Key != null)
{ {

View File

@@ -39,16 +39,16 @@ public abstract class SharedIdCardSystem : EntitySystem
/// <summary> /// <summary>
/// Attempt to get an id card component from an entity, either by getting it directly from the entity, or by /// Attempt to get an id card component from an entity, either by getting it directly from the entity, or by
/// getting the contained id from a <see cref="PDAComponent"/>. /// getting the contained id from a <see cref="PdaComponent"/>.
/// </summary> /// </summary>
public bool TryGetIdCard(EntityUid uid, [NotNullWhen(true)] out IdCardComponent? idCard) public bool TryGetIdCard(EntityUid uid, [NotNullWhen(true)] out IdCardComponent? idCard)
{ {
if (EntityManager.TryGetComponent(uid, out idCard)) if (EntityManager.TryGetComponent(uid, out idCard))
return true; return true;
if (EntityManager.TryGetComponent(uid, out PDAComponent? pda) && pda.ContainedID != null) if (EntityManager.TryGetComponent(uid, out PdaComponent? pda) && pda.ContainedId != null)
{ {
idCard = pda.ContainedID; idCard = pda.ContainedId;
return true; return true;
} }

View File

@@ -1,39 +0,0 @@
using Robust.Shared.Serialization;
namespace Content.Shared.PDA;
[Serializable, NetSerializable]
public sealed class PDAToggleFlashlightMessage : BoundUserInterfaceMessage
{
public PDAToggleFlashlightMessage() { }
}
[Serializable, NetSerializable]
public sealed class PDAShowRingtoneMessage : BoundUserInterfaceMessage
{
public PDAShowRingtoneMessage() { }
}
[Serializable, NetSerializable]
public sealed class PDAShowUplinkMessage : BoundUserInterfaceMessage
{
public PDAShowUplinkMessage() { }
}
[Serializable, NetSerializable]
public sealed class PDALockUplinkMessage : BoundUserInterfaceMessage
{
public PDALockUplinkMessage() { }
}
[Serializable, NetSerializable]
public sealed class PDAShowMusicMessage : BoundUserInterfaceMessage
{
public PDAShowMusicMessage() { }
}
[Serializable, NetSerializable]
public sealed class PDARequestUpdateInterfaceMessage : BoundUserInterfaceMessage
{
public PDARequestUpdateInterfaceMessage() { }
}

View File

@@ -7,10 +7,10 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.PDA namespace Content.Shared.PDA
{ {
[RegisterComponent, NetworkedComponent] [RegisterComponent, NetworkedComponent]
public sealed class PDAComponent : Component public sealed class PdaComponent : Component
{ {
public const string PDAIdSlotId = "PDA-id"; public const string PdaIdSlotId = "PDA-id";
public const string PDAPenSlotId = "PDA-pen"; public const string PdaPenSlotId = "PDA-pen";
/// <summary> /// <summary>
/// The base PDA sprite state, eg. "pda", "pda-clown" /// The base PDA sprite state, eg. "pda", "pda-clown"
@@ -30,7 +30,7 @@ namespace Content.Shared.PDA
[DataField("id", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))] [DataField("id", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
public string? IdCard; public string? IdCard;
[ViewVariables] public IdCardComponent? ContainedID; [ViewVariables] public IdCardComponent? ContainedId;
[ViewVariables] public bool FlashlightOn; [ViewVariables] public bool FlashlightOn;
[ViewVariables] public string? OwnerName; [ViewVariables] public string? OwnerName;

View File

@@ -0,0 +1,39 @@
using Robust.Shared.Serialization;
namespace Content.Shared.PDA;
[Serializable, NetSerializable]
public sealed class PdaToggleFlashlightMessage : BoundUserInterfaceMessage
{
public PdaToggleFlashlightMessage() { }
}
[Serializable, NetSerializable]
public sealed class PdaShowRingtoneMessage : BoundUserInterfaceMessage
{
public PdaShowRingtoneMessage() { }
}
[Serializable, NetSerializable]
public sealed class PdaShowUplinkMessage : BoundUserInterfaceMessage
{
public PdaShowUplinkMessage() { }
}
[Serializable, NetSerializable]
public sealed class PdaLockUplinkMessage : BoundUserInterfaceMessage
{
public PdaLockUplinkMessage() { }
}
[Serializable, NetSerializable]
public sealed class PdaShowMusicMessage : BoundUserInterfaceMessage
{
public PdaShowMusicMessage() { }
}
[Serializable, NetSerializable]
public sealed class PdaRequestUpdateInterfaceMessage : BoundUserInterfaceMessage
{
public PdaRequestUpdateInterfaceMessage() { }
}

View File

@@ -5,23 +5,23 @@ using Robust.Shared.Serialization;
namespace Content.Shared.PDA namespace Content.Shared.PDA
{ {
[Serializable, NetSerializable] [Serializable, NetSerializable]
public sealed class PDAUpdateState : CartridgeLoaderUiState public sealed class PdaUpdateState : CartridgeLoaderUiState
{ {
public bool FlashlightEnabled; public bool FlashlightEnabled;
public bool HasPen; public bool HasPen;
public PDAIdInfoText PDAOwnerInfo; public PdaIdInfoText PdaOwnerInfo;
public string? StationName; public string? StationName;
public bool HasUplink; public bool HasUplink;
public bool CanPlayMusic; public bool CanPlayMusic;
public string? Address; public string? Address;
public PDAUpdateState(bool flashlightEnabled, bool hasPen, PDAIdInfoText pdaOwnerInfo, public PdaUpdateState(bool flashlightEnabled, bool hasPen, PdaIdInfoText pdaOwnerInfo,
string? stationName, bool hasUplink = false, string? stationName, bool hasUplink = false,
bool canPlayMusic = false, string? address = null) bool canPlayMusic = false, string? address = null)
{ {
FlashlightEnabled = flashlightEnabled; FlashlightEnabled = flashlightEnabled;
HasPen = hasPen; HasPen = hasPen;
PDAOwnerInfo = pdaOwnerInfo; PdaOwnerInfo = pdaOwnerInfo;
HasUplink = hasUplink; HasUplink = hasUplink;
CanPlayMusic = canPlayMusic; CanPlayMusic = canPlayMusic;
StationName = stationName; StationName = stationName;
@@ -30,7 +30,7 @@ namespace Content.Shared.PDA
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public struct PDAIdInfoText public struct PdaIdInfoText
{ {
public string? ActualOwnerName; public string? ActualOwnerName;
public string? IdOwner; public string? IdOwner;

View File

@@ -3,13 +3,13 @@ using Robust.Shared.Serialization;
namespace Content.Shared.PDA namespace Content.Shared.PDA
{ {
[Serializable, NetSerializable] [Serializable, NetSerializable]
public enum PDAVisuals public enum PdaVisuals
{ {
IDCardInserted IdCardInserted
} }
[Serializable, NetSerializable] [Serializable, NetSerializable]
public enum PDAUiKey public enum PdaUiKey
{ {
Key Key
} }

View File

@@ -4,7 +4,7 @@ using Robust.Shared.Containers;
namespace Content.Shared.PDA namespace Content.Shared.PDA
{ {
public abstract class SharedPDASystem : EntitySystem public abstract class SharedPdaSystem : EntitySystem
{ {
[Dependency] protected readonly ItemSlotsSystem ItemSlotsSystem = default!; [Dependency] protected readonly ItemSlotsSystem ItemSlotsSystem = default!;
[Dependency] protected readonly SharedAppearanceSystem Appearance = default!; [Dependency] protected readonly SharedAppearanceSystem Appearance = default!;
@@ -13,49 +13,49 @@ namespace Content.Shared.PDA
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<PDAComponent, ComponentInit>(OnComponentInit); SubscribeLocalEvent<PdaComponent, ComponentInit>(OnComponentInit);
SubscribeLocalEvent<PDAComponent, ComponentRemove>(OnComponentRemove); SubscribeLocalEvent<PdaComponent, ComponentRemove>(OnComponentRemove);
SubscribeLocalEvent<PDAComponent, EntInsertedIntoContainerMessage>(OnItemInserted); SubscribeLocalEvent<PdaComponent, EntInsertedIntoContainerMessage>(OnItemInserted);
SubscribeLocalEvent<PDAComponent, EntRemovedFromContainerMessage>(OnItemRemoved); SubscribeLocalEvent<PdaComponent, EntRemovedFromContainerMessage>(OnItemRemoved);
} }
protected virtual void OnComponentInit(EntityUid uid, PDAComponent pda, ComponentInit args) protected virtual void OnComponentInit(EntityUid uid, PdaComponent pda, ComponentInit args)
{ {
if (pda.IdCard != null) if (pda.IdCard != null)
pda.IdSlot.StartingItem = pda.IdCard; pda.IdSlot.StartingItem = pda.IdCard;
ItemSlotsSystem.AddItemSlot(uid, PDAComponent.PDAIdSlotId, pda.IdSlot); ItemSlotsSystem.AddItemSlot(uid, PdaComponent.PdaIdSlotId, pda.IdSlot);
ItemSlotsSystem.AddItemSlot(uid, PDAComponent.PDAPenSlotId, pda.PenSlot); ItemSlotsSystem.AddItemSlot(uid, PdaComponent.PdaPenSlotId, pda.PenSlot);
UpdatePdaAppearance(uid, pda); UpdatePdaAppearance(uid, pda);
} }
private void OnComponentRemove(EntityUid uid, PDAComponent pda, ComponentRemove args) private void OnComponentRemove(EntityUid uid, PdaComponent pda, ComponentRemove args)
{ {
ItemSlotsSystem.RemoveItemSlot(uid, pda.IdSlot); ItemSlotsSystem.RemoveItemSlot(uid, pda.IdSlot);
ItemSlotsSystem.RemoveItemSlot(uid, pda.PenSlot); ItemSlotsSystem.RemoveItemSlot(uid, pda.PenSlot);
} }
protected virtual void OnItemInserted(EntityUid uid, PDAComponent pda, EntInsertedIntoContainerMessage args) protected virtual void OnItemInserted(EntityUid uid, PdaComponent pda, EntInsertedIntoContainerMessage args)
{ {
if (args.Container.ID == PDAComponent.PDAIdSlotId) if (args.Container.ID == PdaComponent.PdaIdSlotId)
pda.ContainedID = CompOrNull<IdCardComponent>(args.Entity); pda.ContainedId = CompOrNull<IdCardComponent>(args.Entity);
UpdatePdaAppearance(uid, pda); UpdatePdaAppearance(uid, pda);
} }
protected virtual void OnItemRemoved(EntityUid uid, PDAComponent pda, EntRemovedFromContainerMessage args) protected virtual void OnItemRemoved(EntityUid uid, PdaComponent pda, EntRemovedFromContainerMessage args)
{ {
if (args.Container.ID == pda.IdSlot.ID) if (args.Container.ID == pda.IdSlot.ID)
pda.ContainedID = null; pda.ContainedId = null;
UpdatePdaAppearance(uid, pda); UpdatePdaAppearance(uid, pda);
} }
private void UpdatePdaAppearance(EntityUid uid, PDAComponent pda) private void UpdatePdaAppearance(EntityUid uid, PdaComponent pda)
{ {
Appearance.SetData(uid, PDAVisuals.IDCardInserted, pda.ContainedID != null); Appearance.SetData(uid, PdaVisuals.IdCardInserted, pda.ContainedId != null);
} }
} }
} }

View File

@@ -111,7 +111,7 @@
capacity: 60 capacity: 60
whitelist: whitelist:
components: components:
- PDA - Pda
- type: entity - type: entity
name: ID card box name: ID card box

View File

@@ -9,19 +9,19 @@
- type: Sprite - type: Sprite
sprite: Objects/Devices/pda.rsi sprite: Objects/Devices/pda.rsi
layers: layers:
- map: [ "enum.PDAVisualLayers.Base" ] - map: [ "enum.PdaVisualLayers.Base" ]
- state: "light_overlay" - state: "light_overlay"
map: [ "enum.PDAVisualLayers.Flashlight" ] map: [ "enum.PdaVisualLayers.Flashlight" ]
shader: "unshaded" shader: "unshaded"
visible: false visible: false
- state: "id_overlay" - state: "id_overlay"
map: [ "enum.PDAVisualLayers.IDLight" ] map: [ "enum.PdaVisualLayers.IdLight" ]
shader: "unshaded" shader: "unshaded"
visible: false visible: false
- type: Icon - type: Icon
sprite: Objects/Devices/pda.rsi sprite: Objects/Devices/pda.rsi
state: pda state: pda
- type: PDA - type: Pda
state: pda state: pda
penSlot: penSlot:
startingItem: Pen startingItem: Pen
@@ -70,7 +70,7 @@
- type: WirelessNetworkConnection - type: WirelessNetworkConnection
range: 500 range: 500
- type: CartridgeLoader - type: CartridgeLoader
uiKey: enum.PDAUiKey.Key uiKey: enum.PdaUiKey.Key
preinstalled: preinstalled:
- NotekeeperCartridge - NotekeeperCartridge
cartridgeSlot: cartridgeSlot:
@@ -82,13 +82,13 @@
components: components:
- Cartridge - Cartridge
- type: ActivatableUI - type: ActivatableUI
key: enum.PDAUiKey.Key key: enum.PdaUiKey.Key
singleUser: true singleUser: true
closeOnHandDeselect: false closeOnHandDeselect: false
- type: UserInterface - type: UserInterface
interfaces: interfaces:
- key: enum.PDAUiKey.Key - key: enum.PdaUiKey.Key
type: PDABoundUserInterface type: PdaBoundUserInterface
- key: enum.StoreUiKey.Key - key: enum.StoreUiKey.Key
type: StoreBoundUserInterface type: StoreBoundUserInterface
- key: enum.RingerUiKey.Key - key: enum.RingerUiKey.Key
@@ -111,10 +111,10 @@
name: passenger PDA name: passenger PDA
description: Why isn't it gray? description: Why isn't it gray?
components: components:
- type: PDA - type: Pda
id: PassengerIDCard id: PassengerIDCard
state: pda state: pda
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#717059" borderColor: "#717059"
- type: entity - type: entity
@@ -123,7 +123,7 @@
name: technical assistant PDA name: technical assistant PDA
description: Why isn't it yellow? description: Why isn't it yellow?
components: components:
- type: PDA - type: Pda
id: TechnicalAssistantIDCard id: TechnicalAssistantIDCard
state: pda-interntech state: pda-interntech
- type: Icon - type: Icon
@@ -135,7 +135,7 @@
name: medical intern PDA name: medical intern PDA
description: Why isn't it white? Has a built-in health analyzer. description: Why isn't it white? Has a built-in health analyzer.
components: components:
- type: PDA - type: Pda
id: MedicalInternIDCard id: MedicalInternIDCard
state: pda-internmed state: pda-internmed
- type: Icon - type: Icon
@@ -154,7 +154,7 @@
name: security cadet PDA name: security cadet PDA
description: Why isn't it red? description: Why isn't it red?
components: components:
- type: PDA - type: Pda
id: SecurityCadetIDCard id: SecurityCadetIDCard
state: pda-interncadet state: pda-interncadet
- type: Icon - type: Icon
@@ -166,7 +166,7 @@
name: research assistant PDA name: research assistant PDA
description: Why isn't it purple? description: Why isn't it purple?
components: components:
- type: PDA - type: Pda
id: ResearchAssistantIDCard id: ResearchAssistantIDCard
state: pda-internsci state: pda-internsci
- type: Icon - type: Icon
@@ -178,7 +178,7 @@
name: service worker PDA name: service worker PDA
description: Why isn't it gray? description: Why isn't it gray?
components: components:
- type: PDA - type: Pda
id: ServiceWorkerIDCard id: ServiceWorkerIDCard
state: pda-internservice state: pda-internservice
- type: Icon - type: Icon
@@ -190,10 +190,10 @@
name: chef PDA name: chef PDA
description: Covered in grease and flour. description: Covered in grease and flour.
components: components:
- type: PDA - type: Pda
id: ChefIDCard id: ChefIDCard
state: pda-cook state: pda-cook
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
- type: Icon - type: Icon
state: pda-cook state: pda-cook
@@ -204,7 +204,7 @@
name: botanist PDA name: botanist PDA
description: Has an earthy scent. description: Has an earthy scent.
components: components:
- type: PDA - type: Pda
id: BotanistIDCard id: BotanistIDCard
state: pda-hydro state: pda-hydro
- type: Icon - type: Icon
@@ -216,7 +216,7 @@
name: clown PDA name: clown PDA
description: Looks can be deceiving. description: Looks can be deceiving.
components: components:
- type: PDA - type: Pda
id: ClownIDCard id: ClownIDCard
state: pda-clown state: pda-clown
penSlot: penSlot:
@@ -227,7 +227,7 @@
whitelist: whitelist:
tags: tags:
- Write - Write
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#C18199" borderColor: "#C18199"
- type: Icon - type: Icon
state: pda-clown state: pda-clown
@@ -262,7 +262,7 @@
name: mime PDA name: mime PDA
description: Suprisingly not on mute. description: Suprisingly not on mute.
components: components:
- type: PDA - type: Pda
id: MimeIDCard id: MimeIDCard
state: pda-mime state: pda-mime
idSlot: idSlot:
@@ -279,10 +279,10 @@
id: ChaplainPDA id: ChaplainPDA
description: God's chosen PDA. description: God's chosen PDA.
components: components:
- type: PDA - type: Pda
id: ChaplainIDCard id: ChaplainIDCard
state: pda-chaplain state: pda-chaplain
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#333333" borderColor: "#333333"
- type: Icon - type: Icon
state: pda-chaplain state: pda-chaplain
@@ -293,7 +293,7 @@
id: QuartermasterPDA id: QuartermasterPDA
description: PDA for the guy that orders the guns. description: PDA for the guy that orders the guns.
components: components:
- type: PDA - type: Pda
id: QuartermasterIDCard id: QuartermasterIDCard
state: pda-qm state: pda-qm
- type: Icon - type: Icon
@@ -305,7 +305,7 @@
name: cargo PDA name: cargo PDA
description: PDA for the guys that order the pizzas. description: PDA for the guys that order the pizzas.
components: components:
- type: PDA - type: Pda
id: CargoIDCard id: CargoIDCard
state: pda-cargo state: pda-cargo
- type: Icon - type: Icon
@@ -317,7 +317,7 @@
name: salvage PDA name: salvage PDA
description: Smells like ash. description: Smells like ash.
components: components:
- type: PDA - type: Pda
id: SalvageIDCard id: SalvageIDCard
state: pda-miner state: pda-miner
- type: Icon - type: Icon
@@ -329,7 +329,7 @@
name: bartender PDA name: bartender PDA
description: Smells like beer. description: Smells like beer.
components: components:
- type: PDA - type: Pda
id: BartenderIDCard id: BartenderIDCard
state: pda-bartender state: pda-bartender
- type: Icon - type: Icon
@@ -341,7 +341,7 @@
name: librarian PDA name: librarian PDA
description: Smells like books. description: Smells like books.
components: components:
- type: PDA - type: Pda
id: LibrarianIDCard id: LibrarianIDCard
state: pda-library state: pda-library
- type: Icon - type: Icon
@@ -353,7 +353,7 @@
name: lawyer PDA name: lawyer PDA
description: For lawyers to poach dubious clients. description: For lawyers to poach dubious clients.
components: components:
- type: PDA - type: Pda
id: LawyerIDCard id: LawyerIDCard
state: pda-lawyer state: pda-lawyer
- type: Icon - type: Icon
@@ -365,10 +365,10 @@
name: janitor PDA name: janitor PDA
description: Smells like bleach. description: Smells like bleach.
components: components:
- type: PDA - type: Pda
id: JanitorIDCard id: JanitorIDCard
state: pda-janitor state: pda-janitor
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#5D2D56" borderColor: "#5D2D56"
- type: Icon - type: Icon
state: pda-janitor state: pda-janitor
@@ -379,7 +379,7 @@
name: captain PDA name: captain PDA
description: Surprisingly no different from your PDA. description: Surprisingly no different from your PDA.
components: components:
- type: PDA - type: Pda
id: CaptainIDCard id: CaptainIDCard
state: pda-captain state: pda-captain
penSlot: penSlot:
@@ -388,7 +388,7 @@
whitelist: whitelist:
tags: tags:
- Write - Write
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#7C5D00" borderColor: "#7C5D00"
- type: Icon - type: Icon
state: pda-captain state: pda-captain
@@ -399,7 +399,7 @@
name: head of personnel PDA name: head of personnel PDA
description: Looks like it's been chewed on. description: Looks like it's been chewed on.
components: components:
- type: PDA - type: Pda
id: HoPIDCard id: HoPIDCard
state: pda-hop state: pda-hop
penSlot: penSlot:
@@ -417,10 +417,10 @@
name: chief engineer PDA name: chief engineer PDA
description: Looks like it's barely been used. description: Looks like it's barely been used.
components: components:
- type: PDA - type: Pda
id: CEIDCard id: CEIDCard
state: pda-ce state: pda-ce
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#949137" borderColor: "#949137"
accentHColor: "#447987" accentHColor: "#447987"
- type: Icon - type: Icon
@@ -432,7 +432,7 @@
name: engineer PDA name: engineer PDA
description: Rugged and well-worn. description: Rugged and well-worn.
components: components:
- type: PDA - type: Pda
id: EngineeringIDCard id: EngineeringIDCard
state: pda-engineer state: pda-engineer
- type: Icon - type: Icon
@@ -444,10 +444,10 @@
name: chief medical officer PDA name: chief medical officer PDA
description: Extraordinarily shiny and sterile. Has a built-in health analyzer. description: Extraordinarily shiny and sterile. Has a built-in health analyzer.
components: components:
- type: PDA - type: Pda
id: CMOIDCard id: CMOIDCard
state: pda-cmo state: pda-cmo
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
accentHColor: "#447987" accentHColor: "#447987"
accentVColor: "#447987" accentVColor: "#447987"
@@ -464,10 +464,10 @@
name: medical PDA name: medical PDA
description: Shiny and sterile. Has a built-in health analyzer. description: Shiny and sterile. Has a built-in health analyzer.
components: components:
- type: PDA - type: Pda
id: MedicalIDCard id: MedicalIDCard
state: pda-medical state: pda-medical
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
accentVColor: "#447987" accentVColor: "#447987"
- type: Icon - type: Icon
@@ -486,10 +486,10 @@
name: paramedic PDA name: paramedic PDA
description: Shiny and sterile. Has a built-in rapid health analyzer. description: Shiny and sterile. Has a built-in rapid health analyzer.
components: components:
- type: PDA - type: Pda
id: ParamedicIDCard id: ParamedicIDCard
state: pda-paramedic state: pda-paramedic
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
accentVColor: "#2a4b5b" accentVColor: "#2a4b5b"
- type: Icon - type: Icon
@@ -505,10 +505,10 @@
name: chemistry PDA name: chemistry PDA
description: It has a few discolored blotches here and there. description: It has a few discolored blotches here and there.
components: components:
- type: PDA - type: Pda
id: ChemistIDCard id: ChemistIDCard
state: pda-chemistry state: pda-chemistry
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
accentVColor: "#B34200" accentVColor: "#B34200"
- type: Icon - type: Icon
@@ -520,7 +520,7 @@
name: research director PDA name: research director PDA
description: It appears surprisingly ordinary. description: It appears surprisingly ordinary.
components: components:
- type: PDA - type: Pda
id: RDIDCard id: RDIDCard
state: pda-rd state: pda-rd
- type: Icon - type: Icon
@@ -532,7 +532,7 @@
name: science PDA name: science PDA
description: It's covered with an unknown gooey substance. description: It's covered with an unknown gooey substance.
components: components:
- type: PDA - type: Pda
id: ResearchIDCard id: ResearchIDCard
state: pda-science state: pda-science
- type: Icon - type: Icon
@@ -544,10 +544,10 @@
name: head of security PDA name: head of security PDA
description: Whosoever bears this PDA is the law. description: Whosoever bears this PDA is the law.
components: components:
- type: PDA - type: Pda
id: HoSIDCard id: HoSIDCard
state: pda-hos state: pda-hos
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#A32D26" borderColor: "#A32D26"
accentHColor: "#447987" accentHColor: "#447987"
- type: Icon - type: Icon
@@ -559,7 +559,7 @@
name: warden PDA name: warden PDA
description: The OS appears to have been jailbroken. description: The OS appears to have been jailbroken.
components: components:
- type: PDA - type: Pda
id: WardenIDCard id: WardenIDCard
state: pda-warden state: pda-warden
- type: Icon - type: Icon
@@ -571,7 +571,7 @@
name: security PDA name: security PDA
description: Red to hide the stains of passenger blood. description: Red to hide the stains of passenger blood.
components: components:
- type: PDA - type: Pda
id: SecurityIDCard id: SecurityIDCard
state: pda-security state: pda-security
- type: Icon - type: Icon
@@ -583,7 +583,7 @@
name: CentCom PDA name: CentCom PDA
description: Light green sign of walking bureaucracy. description: Light green sign of walking bureaucracy.
components: components:
- type: PDA - type: Pda
id: CentcomIDCardSyndie id: CentcomIDCardSyndie
state: pda-centcom state: pda-centcom
penSlot: penSlot:
@@ -591,7 +591,7 @@
whitelist: whitelist:
tags: tags:
- Write - Write
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#32CD32" borderColor: "#32CD32"
- type: Icon - type: Icon
state: pda-centcom state: pda-centcom
@@ -602,7 +602,7 @@
name: musician PDA name: musician PDA
description: It fills you with inspiration. description: It fills you with inspiration.
components: components:
- type: PDA - type: Pda
id: MusicianIDCard id: MusicianIDCard
state: pda-musician state: pda-musician
- type: Instrument - type: Instrument
@@ -617,7 +617,7 @@
name: atmos PDA name: atmos PDA
description: Still smells like plasma. description: Still smells like plasma.
components: components:
- type: PDA - type: Pda
id: AtmosIDCard id: AtmosIDCard
state: pda-atmos state: pda-atmos
- type: Icon - type: Icon
@@ -629,7 +629,7 @@
name: clear PDA name: clear PDA
description: 99 and 44/100ths percent pure plastic. description: 99 and 44/100ths percent pure plastic.
components: components:
- type: PDA - type: Pda
id: PassengerIDCard id: PassengerIDCard
state: pda-clear state: pda-clear
- type: Icon - type: Icon
@@ -641,7 +641,7 @@
name: syndicate PDA name: syndicate PDA
description: Ok, time to be a productive member of- oh cool I'm a bad guy time to kill people! description: Ok, time to be a productive member of- oh cool I'm a bad guy time to kill people!
components: components:
- type: PDA - type: Pda
id: SyndicateIDCard id: SyndicateIDCard
state: pda-syndi state: pda-syndi
- type: Icon - type: Icon
@@ -653,10 +653,10 @@
name: ERT PDA name: ERT PDA
description: Red for firepower. description: Red for firepower.
components: components:
- type: PDA - type: Pda
id: ERTLeaderIDCard id: ERTLeaderIDCard
state: pda-ert state: pda-ert
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#A32D26" borderColor: "#A32D26"
accentHColor: "#447987" accentHColor: "#447987"
- type: Icon - type: Icon
@@ -668,10 +668,10 @@
name: CBURN PDA name: CBURN PDA
description: Smells like rotten flesh. description: Smells like rotten flesh.
components: components:
- type: PDA - type: Pda
id: CBURNIDcard id: CBURNIDcard
state: pda-ert state: pda-ert
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#A32D26" borderColor: "#A32D26"
accentHColor: "#447987" accentHColor: "#447987"
@@ -681,10 +681,10 @@
name: psychologist PDA name: psychologist PDA
description: Looks immaculately cleaned. description: Looks immaculately cleaned.
components: components:
- type: PDA - type: Pda
id: PsychologistIDCard id: PsychologistIDCard
state: pda-medical state: pda-medical
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#d7d7d0" borderColor: "#d7d7d0"
accentVColor: "#447987" accentVColor: "#447987"
- type: Icon - type: Icon
@@ -696,7 +696,7 @@
name: reporter PDA name: reporter PDA
description: Smells like freshly printed press. description: Smells like freshly printed press.
components: components:
- type: PDA - type: Pda
id: ReporterIDCard id: ReporterIDCard
state: pda-reporter state: pda-reporter
- type: Icon - type: Icon
@@ -708,7 +708,7 @@
name: zookeeper PDA name: zookeeper PDA
description: Made with genuine synthetic leather. Crikey! description: Made with genuine synthetic leather. Crikey!
components: components:
- type: PDA - type: Pda
id: ZookeeperIDCard id: ZookeeperIDCard
state: pda-zookeeper state: pda-zookeeper
- type: Icon - type: Icon
@@ -720,10 +720,10 @@
name: boxer PDA name: boxer PDA
description: Float like a butterfly, ringtone like a bee. description: Float like a butterfly, ringtone like a bee.
components: components:
- type: PDA - type: Pda
id: BoxerIDCard id: BoxerIDCard
state: pda-boxer state: pda-boxer
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#333333" borderColor: "#333333"
borderVColor: "#390504" borderVColor: "#390504"
- type: Icon - type: Icon
@@ -735,10 +735,10 @@
name: detective PDA name: detective PDA
description: Smells like rain... pouring down the rooftops... description: Smells like rain... pouring down the rooftops...
components: components:
- type: PDA - type: Pda
id: DetectiveIDCard id: DetectiveIDCard
state: pda-detective state: pda-detective
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#774705" borderColor: "#774705"
- type: Icon - type: Icon
state: pda-detective state: pda-detective
@@ -749,10 +749,10 @@
name: brigmedic PDA name: brigmedic PDA
description: I wonder whose pulse is on the screen? I hope he doesnt stop... PDA has a built-in health analyzer. description: I wonder whose pulse is on the screen? I hope he doesnt stop... PDA has a built-in health analyzer.
components: components:
- type: PDA - type: Pda
id: BrigmedicIDCard id: BrigmedicIDCard
state: pda-brigmedic state: pda-brigmedic
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#A32D26" borderColor: "#A32D26"
accentHColor: "#d7d7d0" accentHColor: "#d7d7d0"
accentVColor: "#d7d7d0" accentVColor: "#d7d7d0"
@@ -770,10 +770,10 @@
suffix: Unremoveable suffix: Unremoveable
description: Cursed cluwne PDA. description: Cursed cluwne PDA.
components: components:
- type: PDA - type: Pda
id: CluwneIDCard id: CluwneIDCard
state: pda-cluwne state: pda-cluwne
- type: PDABorderColor - type: PdaBorderColor
borderColor: "#1c8f4d" borderColor: "#1c8f4d"
- type: Icon - type: Icon
state: pda-cluwne state: pda-cluwne

View File

@@ -72,7 +72,7 @@
blacklist: blacklist:
components: components:
- Material - Material
- PDA - Pda
- IdCard - IdCard
tags: tags:
- HighRiskItem - HighRiskItem

View File

@@ -94,7 +94,7 @@
blacklist: blacklist:
components: components:
- Material - Material
- PDA - Pda
- IdCard - IdCard
- HumanoidAppearance - HumanoidAppearance
tags: tags: