From b3b6529ff806aa633a389d69d6b7b4eeabd6e7d0 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 13 Apr 2026 17:27:55 +0200 Subject: [PATCH] Generalize collider mode description function for NPCs --- src/app/App.tsx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/app/App.tsx b/src/app/App.tsx index eccb60df..83bfe335 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -399,19 +399,30 @@ function getModelInstanceCollisionModeDescription( } } -function getPlayerStartColliderModeDescription( - mode: PlayerStartColliderMode +function getCharacterColliderModeDescription( + mode: PlayerStartColliderMode, + subject: "Player Start" | "NPC" ): string { switch (mode) { case "capsule": - return "Uses a capsule player collider for standard grounded first-person traversal."; + return `Uses a capsule ${subject.toLowerCase()} collider for standard grounded traversal.`; case "box": - return "Uses an axis-aligned box player collider for sharper footprint bounds."; + return `Uses an axis-aligned box ${subject.toLowerCase()} collider for sharper footprint bounds.`; case "none": - return "Disables player collision detection. First-person traversal continues without world clipping."; + return `Disables ${subject.toLowerCase()} collision. ${subject} still renders and keeps its authored facing.`; } } +function getPlayerStartColliderModeDescription( + mode: PlayerStartColliderMode +): string { + return getCharacterColliderModeDescription(mode, "Player Start"); +} + +function getNpcColliderModeDescription(mode: PlayerStartColliderMode): string { + return getCharacterColliderModeDescription(mode, "NPC"); +} + function getPlayerStartMovementTemplateLabel( kind: PlayerStartMovementTemplate["kind"] ): string {