diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index 173a420d..028ad653 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -61,6 +61,7 @@ const char* const kArgRequired[] = { "--gen-mesh-hitching-rail", "--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack", "--gen-temple-pack", "--gen-graveyard-pack", + "--gen-garden-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 5ebd8af7..96113114 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -6845,6 +6845,25 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) { }); } +int handleGenGardenPack(int& i, int /*argc*/, char** argv) { + // Garden / courtyard scene: pergola (vine-arbor frame), + // fountain (centerpiece), stone-bench (seating), shrine + // (decorative focal), beehive (productive prop), scarecrow + // (rural touch), well (water source). Together these form + // a recognizable kitchen-garden / monastery courtyard / + // small park. + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "garden pack", { + {"--gen-mesh-pergola", handlePergola, "pergola"}, + {"--gen-mesh-fountain", handleFountain, "fountain"}, + {"--gen-mesh-stone-bench", handleStoneBench, "bench"}, + {"--gen-mesh-shrine", handleShrine, "shrine"}, + {"--gen-mesh-beehive", handleBeehive, "beehive"}, + {"--gen-mesh-scarecrow", handleScarecrow, "scarecrow"}, + {"--gen-mesh-well", handleWell, "well"}, + }); +} + int handleGenGraveyardPack(int& i, int /*argc*/, char** argv) { // Cemetery / graveyard scene: grave (filled plot mound), // tombstone (marker stone), coffin (above-ground or open), @@ -6980,6 +6999,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-village-pack", 1, handleGenVillagePack}, {"--gen-temple-pack", 1, handleGenTemplePack}, {"--gen-graveyard-pack", 1, handleGenGraveyardPack}, + {"--gen-garden-pack", 1, handleGenGardenPack}, {"--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 70c30210..e25ded96 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -296,6 +296,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit altar + shrine + brazier + pillar + statue + portal + podium into outDir\n"); std::printf(" --gen-graveyard-pack \n"); 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-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");