From 245f0d8c4b52a140ea826e2aa9e4745cfe9b2a4e Mon Sep 17 00:00:00 2001 From: ushkinaz <398781+ushkinaz@users.noreply.github.com> Date: Sun, 22 Mar 2026 21:58:45 +0400 Subject: [PATCH 1/2] feat: add deconstruction support for furniture and terrain closes #120 --- src/types/Construction.svelte | 20 +++++++--- src/types/Furniture.svelte | 15 +++++++- src/types/Furniture.test.ts | 72 +++++++++++++++++++++++++++++++++++ src/types/Terrain.svelte | 13 +++++++ src/types/Terrain.test.ts | 52 +++++++++++++++++++++++++ 5 files changed, 165 insertions(+), 7 deletions(-) create mode 100644 src/types/Terrain.test.ts diff --git a/src/types/Construction.svelte b/src/types/Construction.svelte index 81cb1d7..add7f36 100644 --- a/src/types/Construction.svelte +++ b/src/types/Construction.svelte @@ -20,10 +20,14 @@ const _context = "Construction"; interface Props { construction: Construction; includeTitle?: boolean; + includeRequires?: boolean; } -let { construction: sourceConstruction, includeTitle = false }: Props = - $props(); +let { + construction: sourceConstruction, + includeTitle = false, + includeRequires = true, +}: Props = $props(); const construction = untrack(() => sourceConstruction); const using = @@ -68,9 +72,13 @@ if (construction.pre_flags)
{t("Required Skills")}
- {#each construction.required_skills ?? [] as [id, level], i} - ({level}){#if i + 2 === construction.required_skills?.length}{" and "}{:else if i + 1 !== construction.required_skills?.length}{", "}{/if} - {/each} + {#if construction.required_skills?.length} + {#each construction.required_skills ?? [] as [id, level], i} + ({level}){#if i + 2 === construction.required_skills?.length}{" and "}{:else if i + 1 !== construction.required_skills?.length}{", "}{/if} + {/each} + {:else} + {t("none")} + {/if}
{t("Time", { _context })}
@@ -78,7 +86,7 @@ if (construction.pre_flags) ? `${construction.time} m` : (construction.time ?? "0 m")}
- {#if prerequisites.length} + {#if includeRequires && prerequisites.length}
{t("Requires", { _context })}