diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index d1aa193d..2a7393cb 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -59,7 +59,7 @@ const char* const kArgRequired[] = { "--gen-mesh-archery-target", "--gen-mesh-gravel-pile", "--gen-mesh-stone-bench", "--gen-mesh-mine-cart", "--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack", - "--gen-temple-pack", + "--gen-temple-pack", "--gen-graveyard-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 488b5b3a..2660dbc0 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -6791,6 +6791,25 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) { }); } +int handleGenGraveyardPack(int& i, int /*argc*/, char** argv) { + // Cemetery / graveyard scene: grave (filled plot mound), + // tombstone (marker stone), coffin (above-ground or open), + // statue (mourning angel / patron deity), stone-bench (for + // visitors), gravel-pile (loose earth from a fresh dig), + // cage (cemetery-fence section / mausoleum gate). Together + // these form the standard town-edge burial yard. + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "graveyard pack", { + {"--gen-mesh-grave", handleGrave, "grave"}, + {"--gen-mesh-tombstone", handleTombstone, "tombstone"}, + {"--gen-mesh-coffin", handleCoffin, "coffin"}, + {"--gen-mesh-statue", handleStatue, "statue"}, + {"--gen-mesh-stone-bench", handleStoneBench, "bench"}, + {"--gen-mesh-gravel-pile", handleGravelPile, "rubble"}, + {"--gen-mesh-cage", handleCage, "fence"}, + }); +} + 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 @@ -6905,6 +6924,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-blacksmith-pack", 1, handleGenBlacksmithPack}, {"--gen-village-pack", 1, handleGenVillagePack}, {"--gen-temple-pack", 1, handleGenTemplePack}, + {"--gen-graveyard-pack", 1, handleGenGraveyardPack}, {"--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 86019add..4cfd34ae 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -290,6 +290,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit house + outhouse + chimney + hitching-post + well + signpost + haystack into outDir\n"); std::printf(" --gen-temple-pack \n"); 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-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");