From e30c81ddae5bbf1ad3d6bdc54d409ba7ea7ea213 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 9 May 2026 14:53:01 -0700 Subject: [PATCH] feat(editor): add --gen-kitchen-pack composite (11th themed pack) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tavern back-of-house / cookhouse scene composite. Pairs naturally with --gen-tavern-pack (front-of-house common room) for a complete inn setup. Emits 7 .wom files into outDir: • stove — pot-bellied cookfire stove • cauldron — large hanging pot • prep-table — flat work surface • stool — cook's seat • barrel — water / ale / flour storage • mug — drink ready for the inn customer • mortar — herb / spice grinding tool This is the 11th themed pack (camp, blacksmith, village, temple, graveyard, garden, dock, tavern, mining, arena, kitchen). Notable for being the first pack that uses the two recently-added drinking-vessel + alchemy primitives (mug from batch 111, mortar-pestle from batch 113), proving out the "build small primitives, then compose into themed packs" workflow. All 7 emitted primitives pass --validate-wom on first generation. 468 kArgRequired entries total. --- tools/editor/cli_arg_required.cpp | 1 + tools/editor/cli_gen_mesh.cpp | 21 +++++++++++++++++++++ tools/editor/cli_help.cpp | 2 ++ 3 files changed, 24 insertions(+) diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index 9f282f96..c22ae6d5 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -86,6 +86,7 @@ const char* const kArgRequired[] = { "--gen-temple-pack", "--gen-graveyard-pack", "--gen-garden-pack", "--gen-dock-pack", "--gen-tavern-pack", "--gen-mining-pack", "--gen-arena-pack", + "--gen-kitchen-pack", "--gen-mesh-table", "--gen-mesh-lamppost", "--gen-mesh-bed", "--gen-mesh-ladder", "--gen-mesh-well", "--gen-mesh-signpost", "--gen-mesh-mailbox", "--gen-mesh-tombstone", "--gen-mesh-crate", diff --git a/tools/editor/cli_gen_mesh.cpp b/tools/editor/cli_gen_mesh.cpp index d1eaefa8..4139aac0 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -7515,6 +7515,26 @@ int handleGenGraveyardPack(int& i, int /*argc*/, char** argv) { }); } +int handleGenKitchenPack(int& i, int /*argc*/, char** argv) { + // Tavern kitchen / cookhouse scene: stove (the cookfire), + // cauldron (large hanging pot), table (prep surface), stool + // (the cook's seat), barrel (water / ale / flour storage), + // mug (drink ready for the inn customer), mortar-pestle + // (herb / spice grinding). The 11th themed pack — pairs + // with --gen-tavern-pack as the back-of-house complement + // to that pack's front-of-house common-room props. + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "kitchen pack", { + {"--gen-mesh-stove", handleStove, "stove"}, + {"--gen-mesh-cauldron", handleCauldron, "cauldron"}, + {"--gen-mesh-table", handleTable, "prep-table"}, + {"--gen-mesh-stool", handleStool, "stool"}, + {"--gen-mesh-barrel", handleBarrel, "barrel"}, + {"--gen-mesh-mug", handleMug, "mug"}, + {"--gen-mesh-mortar-pestle", handleMortarPestle, "mortar"}, + }); +} + int handleGenTemplePack(int& i, int /*argc*/, char** argv) { // Temple / shrine scene: altar (the focal point), shrine // (auxiliary devotional), brazier (lit on either side of the @@ -7650,6 +7670,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-tavern-pack", 1, handleGenTavernPack}, {"--gen-mining-pack", 1, handleGenMiningPack}, {"--gen-arena-pack", 1, handleGenArenaPack}, + {"--gen-kitchen-pack", 1, handleGenKitchenPack}, {"--gen-mesh-table", 1, handleTable}, {"--gen-mesh-lamppost", 1, handleLamppost}, {"--gen-mesh-bed", 1, handleBed}, diff --git a/tools/editor/cli_help.cpp b/tools/editor/cli_help.cpp index 509ca3e2..ca9484e6 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -364,6 +364,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit gravel-pile + crate-stack + mine-cart + pillar-row + lantern + workbench + hitching-post\n"); std::printf(" --gen-arena-pack \n"); std::printf(" Convenience: emit training-dummy + archery-target + workbench + crate-stack + bench + water-trough + hitching-rail\n"); + std::printf(" --gen-kitchen-pack \n"); + std::printf(" Convenience: emit stove + cauldron + prep-table + stool + barrel + mug + mortar (tavern back-of-house)\n"); std::printf(" --gen-mesh-table [width] [depth] [height] [legThick] [topThick]\n"); std::printf(" Table: flat top slab on 4 corner legs (default 1.6/1.0/0.85/0.10/0.06)\n"); std::printf(" --gen-mesh-lamppost [poleH] [poleT] [baseSize] [lanternSize] [lanternH]\n");