From bdeb93bedd66d0779d00297964aae1ff482eebde Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 9 May 2026 13:06:37 -0700 Subject: [PATCH] feat(editor): add --gen-dock-pack composite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seventh themed mesh pack after camp / blacksmith / village / temple / graveyard / garden. Harbor / dockyard scene emitting a 7-primitive port-side layout: • dock — the pier itself • crate-stack — cargo waiting to be loaded • barrel — sailor stash • canopy — shade for the dockmaster's station • bench — passenger waiting area • signpost — port marker • hitching-post — for tying up small boats / mounts Together these form a recognizable harbor / dockside pickup-and-drop area when arranged in a zone. Composite-pack catalogue: camp + blacksmith + village + temple + graveyard + garden + dock = 7 themed mesh packs. --- tools/editor/cli_arg_required.cpp | 2 +- tools/editor/cli_gen_mesh.cpp | 19 +++++++++++++++++++ tools/editor/cli_help.cpp | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index a6032c15..c1589ee2 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -61,7 +61,7 @@ const char* const kArgRequired[] = { "--gen-mesh-hitching-rail", "--gen-mesh-pillar-row", "--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack", "--gen-temple-pack", "--gen-graveyard-pack", - "--gen-garden-pack", + "--gen-garden-pack", "--gen-dock-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 de371141..43d038bf 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -6906,6 +6906,24 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) { }); } +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), + // canopy (shade for the dockmaster's station), bench (waiting + // area for passengers), signpost (port marker), hitching-post + // (for tying up small boats / mounts arriving with goods). + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "dock pack", { + {"--gen-mesh-dock", handleDock, "dock"}, + {"--gen-mesh-crate-stack", handleCrateStack, "crates"}, + {"--gen-mesh-barrel", handleBarrel, "barrel"}, + {"--gen-mesh-canopy", handleCanopy, "canopy"}, + {"--gen-mesh-bench", handleBench, "bench"}, + {"--gen-mesh-signpost", handleSignpost, "signpost"}, + {"--gen-mesh-hitching-post", handleHitchingPost, "hitching"}, + }); +} + int handleGenGardenPack(int& i, int /*argc*/, char** argv) { // Garden / courtyard scene: pergola (vine-arbor frame), // fountain (centerpiece), stone-bench (seating), shrine @@ -7062,6 +7080,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-temple-pack", 1, handleGenTemplePack}, {"--gen-graveyard-pack", 1, handleGenGraveyardPack}, {"--gen-garden-pack", 1, handleGenGardenPack}, + {"--gen-dock-pack", 1, handleGenDockPack}, {"--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 78f06fc0..4cc59f4d 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -302,6 +302,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit grave + tombstone + coffin + statue + stone-bench + gravel-pile + cage into outDir\n"); std::printf(" --gen-garden-pack \n"); 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-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");