Fix PDA capitalization to be PascalCase (#17335)
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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>
|
||||||
@@ -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);
|
||||||
@@ -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>
|
||||||
@@ -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;
|
||||||
@@ -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>
|
||||||
@@ -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;
|
||||||
@@ -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>
|
||||||
@@ -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;
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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>
|
||||||
@@ -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);
|
||||||
|
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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")),
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Content.Server.Entry
|
|||||||
"HandheldGPS",
|
"HandheldGPS",
|
||||||
"CableVisualizer",
|
"CableVisualizer",
|
||||||
"UIFragment",
|
"UIFragment",
|
||||||
"PDABorderColor",
|
"PdaBorderColor",
|
||||||
"InventorySlots",
|
"InventorySlots",
|
||||||
"LightFade",
|
"LightFade",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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) ||
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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() { }
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
39
Content.Shared/PDA/PdaMessagesUi.cs
Normal file
39
Content.Shared/PDA/PdaMessagesUi.cs
Normal 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() { }
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
blacklist:
|
blacklist:
|
||||||
components:
|
components:
|
||||||
- Material
|
- Material
|
||||||
- PDA
|
- Pda
|
||||||
- IdCard
|
- IdCard
|
||||||
tags:
|
tags:
|
||||||
- HighRiskItem
|
- HighRiskItem
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
blacklist:
|
blacklist:
|
||||||
components:
|
components:
|
||||||
- Material
|
- Material
|
||||||
- PDA
|
- Pda
|
||||||
- IdCard
|
- IdCard
|
||||||
- HumanoidAppearance
|
- HumanoidAppearance
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
Reference in New Issue
Block a user