feat(editor): add --gen-tavern-pack composite

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).
This commit is contained in:
Kelsi 2026-05-09 13:17:49 -07:00
parent 234cfd0663
commit e95e983988
3 changed files with 23 additions and 1 deletions

View file

@ -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",

View file

@ -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},

View file

@ -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 <outDir>\n");
std::printf(" Convenience: emit dock + crate-stack + barrel + canopy + bench + signpost + hitching-post into outDir\n");
std::printf(" --gen-tavern-pack <outDir>\n");
std::printf(" Convenience: emit house + chimney + table + bench + barrel + bookshelf + signpost into outDir\n");
std::printf(" --gen-mesh-table <wom-base> [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 <wom-base> [poleH] [poleT] [baseSize] [lanternSize] [lanternH]\n");