From e95e983988b3ffad6226d1ad99d22cadf460d73c Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 9 May 2026 13:17:49 -0700 Subject: [PATCH] feat(editor): add --gen-tavern-pack composite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eighth themed mesh pack after camp / blacksmith / village / temple / graveyard / garden / dock. Inn/tavern scene emitting a 7-primitive watering-hole layout: • house — the inn building • chimney — above the kitchen hearth • table — the common-room centerpiece • bench — seating • barrel — ale / cider stock • bookshelf — back-wall record / register / library • signpost — the inn-sign post out front Together these form a minimum-viable tavern setup for any roadside inn, town watering-hole, road-house mid-route stop. Composite-pack catalogue: camp + blacksmith + village + temple + graveyard + garden + dock + tavern = 8 themed mesh packs. --list-packs surfaces 13 composites total (including pre-existing zone/project starter packs). --- tools/editor/cli_arg_required.cpp | 2 +- tools/editor/cli_gen_mesh.cpp | 20 ++++++++++++++++++++ tools/editor/cli_help.cpp | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index 63cc3192..a5d5de64 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -62,7 +62,7 @@ const char* const kArgRequired[] = { "--gen-mesh-statue-base", "--gen-mesh-bird-bath", "--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack", "--gen-temple-pack", "--gen-graveyard-pack", - "--gen-garden-pack", "--gen-dock-pack", + "--gen-garden-pack", "--gen-dock-pack", "--gen-tavern-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 fde08ec7..d221171d 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -7064,6 +7064,25 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) { }); } +int handleGenTavernPack(int& i, int /*argc*/, char** argv) { + // Inn / tavern scene: house (the inn building), chimney + // (above the kitchen hearth), table + bench (the common + // room), barrel (ale/cider stock), bookshelf (back-wall + // record / register / library), signpost (inn-sign post). + // Together these form the minimum-viable tavern setup for + // any roadside inn or town watering-hole. + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "tavern pack", { + {"--gen-mesh-house", handleHouse, "house"}, + {"--gen-mesh-chimney", handleChimney, "chimney"}, + {"--gen-mesh-table", handleTable, "table"}, + {"--gen-mesh-bench", handleBench, "bench"}, + {"--gen-mesh-barrel", handleBarrel, "barrel"}, + {"--gen-mesh-bookshelf", handleBookshelf, "shelf"}, + {"--gen-mesh-signpost", handleSignpost, "sign"}, + }); +} + int handleGenDockPack(int& i, int /*argc*/, char** argv) { // Harbor / dockyard scene: dock (the pier itself), crate- // stack (cargo waiting to be loaded), barrel (sailor stash), @@ -7241,6 +7260,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-graveyard-pack", 1, handleGenGraveyardPack}, {"--gen-garden-pack", 1, handleGenGardenPack}, {"--gen-dock-pack", 1, handleGenDockPack}, + {"--gen-tavern-pack", 1, handleGenTavernPack}, {"--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 1c242f2a..39585503 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -312,6 +312,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit pergola + fountain + stone-bench + shrine + beehive + scarecrow + well into outDir\n"); std::printf(" --gen-dock-pack \n"); std::printf(" Convenience: emit dock + crate-stack + barrel + canopy + bench + signpost + hitching-post into outDir\n"); + std::printf(" --gen-tavern-pack \n"); + std::printf(" Convenience: emit house + chimney + table + bench + barrel + bookshelf + signpost into outDir\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");