From 0a21303f739bb8ffc1adb4350084bee893e58fa6 Mon Sep 17 00:00:00 2001 From: Jackriip <97582790+Jackriip@users.noreply.github.com> Date: Tue, 10 Nov 2026 14:31:02 -0800 Subject: [PATCH 1/7] Add the CHARACTER tab seams to the dock terminal The CHARACTER key and a fourth tab open an empty personnel file. Adds the char_ action dispatch, the character section procs and vars, the data contract in types.ts, Swatch/Cycler/Panel grid primitives, and stub files for the backend, preview and editors. --- tgstation.dme | 3 + .../interfaces/LobbyTerminal/Bezel.tsx | 25 ++- .../interfaces/LobbyTerminal/BodyEditor.tsx | 15 ++ .../interfaces/LobbyTerminal/CharPreview.tsx | 27 +++ .../interfaces/LobbyTerminal/CharacterTab.tsx | 49 +++++ .../interfaces/LobbyTerminal/ColorEntry.tsx | 40 +++++ .../interfaces/LobbyTerminal/Header.tsx | 1 + .../interfaces/LobbyTerminal/KitEditor.tsx | 15 ++ .../interfaces/LobbyTerminal/RolesEditor.tsx | 15 ++ .../interfaces/LobbyTerminal/TraitsEditor.tsx | 15 ++ .../interfaces/LobbyTerminal/index.tsx | 37 ++-- .../interfaces/LobbyTerminal/term.tsx | 124 +++++++++++++ .../interfaces/LobbyTerminal/types.ts | 167 +++++++++++++++++- .../LobbyTerminal/usePrefsCatalog.ts | 48 +++++ .../modules/lobby_terminal/_lobby_terminal.dm | 57 +++++- .../modules/lobby_terminal/lobby_bezel.dm | 8 +- .../modules/lobby_terminal/lobby_character.dm | 14 ++ .../lobby_terminal/lobby_character_prefs.dm | 8 + .../lobby_terminal/lobby_character_preview.dm | 8 + voidcrew/modules/lobby_terminal/lobby_tgui.dm | 6 + voidcrew/modules/unit_tests/_unit_tests.dm | 1 + .../modules/unit_tests/lobby_character.dm | 7 + 22 files changed, 664 insertions(+), 26 deletions(-) create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/BodyEditor.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/CharPreview.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/CharacterTab.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/ColorEntry.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/KitEditor.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/RolesEditor.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/TraitsEditor.tsx create mode 100644 tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/usePrefsCatalog.ts create mode 100644 voidcrew/modules/lobby_terminal/lobby_character.dm create mode 100644 voidcrew/modules/lobby_terminal/lobby_character_prefs.dm create mode 100644 voidcrew/modules/lobby_terminal/lobby_character_preview.dm create mode 100644 voidcrew/modules/unit_tests/lobby_character.dm diff --git a/tgstation.dme b/tgstation.dme index f64dbcd5cad..173ae1bc2cc 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7245,6 +7245,9 @@ #include "voidcrew\modules\lobby_terminal\_lobby_terminal.dm" #include "voidcrew\modules\lobby_terminal\lobby_assets.dm" #include "voidcrew\modules\lobby_terminal\lobby_bezel.dm" +#include "voidcrew\modules\lobby_terminal\lobby_character.dm" +#include "voidcrew\modules\lobby_terminal\lobby_character_prefs.dm" +#include "voidcrew\modules\lobby_terminal\lobby_character_preview.dm" #include "voidcrew\modules\lobby_terminal\lobby_crews.dm" #include "voidcrew\modules\lobby_terminal\lobby_housing.dm" #include "voidcrew\modules\lobby_terminal\lobby_tgui.dm" diff --git a/tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/Bezel.tsx b/tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/Bezel.tsx index e531afb55ce..abab0d2143b 100644 --- a/tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/Bezel.tsx +++ b/tgui/packages/voidcrew_tgui/interfaces/LobbyTerminal/Bezel.tsx @@ -27,14 +27,16 @@ const KEY_LABEL: Record = { function Key(props: { id: KeyId; disabled?: boolean; + /** Glows while its screen is open (CHARACTER). */ + lit?: boolean; title: string; onClick: () => void; }) { - const { id, disabled, title, onClick } = props; + const { id, disabled, lit, title, onClick } = props; return (