From 7c088ac1ded5f0f703e0ed350ee35949b56bb767 Mon Sep 17 00:00:00 2001 From: PrPleGoo Date: Sat, 29 Jul 2023 10:25:27 +0200 Subject: [PATCH] Job icons are stored on ID cards (#18233) --- .../UI/AgentIDCardBoundUserInterface.cs | 9 +- .../Access/UI/AgentIDCardWindow.xaml | 7 + .../Access/UI/AgentIDCardWindow.xaml.cs | 66 +++- .../Chemistry/UI/ChemMasterWindow.xaml.cs | 5 +- .../CrewManifest/CrewManifestUi.xaml.cs | 28 +- Content.Client/LateJoin/LateJoinGui.cs | 5 +- .../UI/HumanoidProfileEditor.xaml.cs | 13 +- .../Access/Components/AgentIDCardComponent.cs | 8 + .../Access/Systems/AgentIDCardSystem.cs | 21 +- .../Access/Systems/IdCardConsoleSystem.cs | 21 +- Content.Server/Access/Systems/IdCardSystem.cs | 27 +- .../Access/Systems/PresetIdCardSystem.cs | 7 +- .../Station/Systems/StationSpawningSystem.cs | 6 + .../Access/Components/IdCardComponent.cs | 10 + .../Access/SharedAgentIDCardSystem.cs | 15 +- Content.Shared/Roles/JobPrototype.cs | 6 +- .../Components/StatusIconComponent.cs | 2 +- .../StatusIcon/StatusIconPrototype.cs | 15 +- .../components/agent-id-card-component.ftl | 1 + .../Objects/Misc/identification_cards.yml | 52 +++ .../Roles/Jobs/Cargo/cargo_technician.yml | 2 +- .../Roles/Jobs/Cargo/quartermaster.yml | 2 +- .../Roles/Jobs/Cargo/salvage_specialist.yml | 2 +- .../Roles/Jobs/Civilian/assistant.yml | 2 +- .../Roles/Jobs/Civilian/bartender.yml | 2 +- .../Roles/Jobs/Civilian/botanist.yml | 2 +- .../Roles/Jobs/Civilian/chaplain.yml | 2 +- .../Prototypes/Roles/Jobs/Civilian/chef.yml | 2 +- .../Prototypes/Roles/Jobs/Civilian/clown.yml | 2 +- .../Roles/Jobs/Civilian/janitor.yml | 2 +- .../Prototypes/Roles/Jobs/Civilian/lawyer.yml | 2 +- .../Roles/Jobs/Civilian/librarian.yml | 2 +- .../Prototypes/Roles/Jobs/Civilian/mime.yml | 2 +- .../Roles/Jobs/Civilian/musician.yml | 2 +- .../Roles/Jobs/Civilian/service_worker.yml | 2 +- .../Prototypes/Roles/Jobs/Command/captain.yml | 2 +- .../Roles/Jobs/Command/centcom_official.yml | 2 +- .../Roles/Jobs/Command/head_of_personnel.yml | 2 +- .../Engineering/atmospheric_technician.yml | 2 +- .../Roles/Jobs/Engineering/chief_engineer.yml | 2 +- .../Jobs/Engineering/senior_engineer.yml | 2 +- .../Jobs/Engineering/station_engineer.yml | 2 +- .../Jobs/Engineering/technical_assistant.yml | 2 +- .../Roles/Jobs/Fun/emergencyresponseteam.yml | 10 +- .../Prototypes/Roles/Jobs/Medical/chemist.yml | 2 +- .../Jobs/Medical/chief_medical_officer.yml | 2 +- .../Roles/Jobs/Medical/medical_doctor.yml | 2 +- .../Roles/Jobs/Medical/medical_intern.yml | 2 +- .../Roles/Jobs/Medical/paramedic.yml | 2 +- .../Roles/Jobs/Medical/senior_physician.yml | 2 +- .../Roles/Jobs/Science/research_assistant.yml | 2 +- .../Roles/Jobs/Science/research_director.yml | 2 +- .../Roles/Jobs/Science/scientist.yml | 2 +- .../Roles/Jobs/Science/senior_researcher.yml | 2 +- .../Roles/Jobs/Security/detective.yml | 2 +- .../Roles/Jobs/Security/head_of_security.yml | 2 +- .../Roles/Jobs/Security/security_cadet.yml | 2 +- .../Roles/Jobs/Security/security_officer.yml | 2 +- .../Roles/Jobs/Security/senior_officer.yml | 2 +- .../Prototypes/Roles/Jobs/Security/warden.yml | 2 +- .../Prototypes/Roles/Jobs/Wildcards/boxer.yml | 2 +- .../Roles/Jobs/Wildcards/psychologist.yml | 2 +- .../Roles/Jobs/Wildcards/reporter.yml | 2 +- .../Roles/Jobs/Wildcards/zookeeper.yml | 2 +- Resources/Prototypes/StatusEffects/job.yml | 361 ++++++++++++++++++ 65 files changed, 685 insertions(+), 96 deletions(-) create mode 100644 Resources/Prototypes/StatusEffects/job.yml diff --git a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs index 6eae796856..73f18aec8d 100644 --- a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs +++ b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs @@ -18,7 +18,8 @@ namespace Content.Client.Access.UI { base.Open(); - _window = new AgentIDCardWindow(); + _window?.Dispose(); + _window = new AgentIDCardWindow(this); if (State != null) UpdateState(State); @@ -39,6 +40,11 @@ namespace Content.Client.Access.UI SendMessage(new AgentIDCardJobChangedMessage(newJob)); } + public void OnJobIconChanged(string newJobIcon) + { + SendMessage(new AgentIDCardJobIconChangedMessage(newJobIcon)); + } + /// /// Update the UI state based on server-sent info /// @@ -51,6 +57,7 @@ namespace Content.Client.Access.UI _window.SetCurrentName(cast.CurrentName); _window.SetCurrentJob(cast.CurrentJob); + _window.SetAllowedIcons(cast.Icons); } protected override void Dispose(bool disposing) diff --git a/Content.Client/Access/UI/AgentIDCardWindow.xaml b/Content.Client/Access/UI/AgentIDCardWindow.xaml index 22bb3cb275..4947cd7f10 100644 --- a/Content.Client/Access/UI/AgentIDCardWindow.xaml +++ b/Content.Client/Access/UI/AgentIDCardWindow.xaml @@ -6,5 +6,12 @@