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

Tenth themed mesh pack after camp / blacksmith / village /
temple / graveyard / garden / dock / tavern / mining.
Combat-training / gladiator-pit / militia-drill-yard scene
emitting a 7-primitive arena layout:

  • training-dummy — practice target
  • archery-target — range station
  • workbench — weapons-rack stand
  • crate-stack — gear storage
  • bench — audience seating
  • water-trough — between-bout refresh
  • hitching-rail — mount parking

Composite-pack catalogue: camp + blacksmith + village +
temple + graveyard + garden + dock + tavern + mining +
arena = 10 themed mesh packs. --list-packs surfaces 15
total composites including the pre-existing zone/project
starter packs.

Milestone: ten themed mesh packs covering the full life
cycle of a typical role-playing-game town from outdoor
camp to blacksmith forge to gladiator arena.
This commit is contained in:
Kelsi 2026-05-09 13:44:48 -07:00
parent 8a73324a5a
commit 574369bd97
3 changed files with 22 additions and 1 deletions

View file

@ -7120,6 +7120,24 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) {
});
}
int handleGenArenaPack(int& i, int /*argc*/, char** argv) {
// Combat training / gladiator pit / militia drill yard scene:
// training-dummy (the practice target), archery-target (range
// station), workbench (weapons-rack stand), crate-stack
// (gear storage), bench (audience seating), water-trough
// (between-bout refresh), hitching-rail (mount parking).
std::string outDir = argv[++i];
return emitMeshPack(outDir, "arena pack", {
{"--gen-mesh-training-dummy", handleTrainingDummy, "dummy"},
{"--gen-mesh-archery-target", handleArcheryTarget, "target"},
{"--gen-mesh-workbench", handleWorkbench, "rack"},
{"--gen-mesh-crate-stack", handleCrateStack, "crates"},
{"--gen-mesh-bench", handleBench, "bench"},
{"--gen-mesh-water-trough", handleWaterTrough, "trough"},
{"--gen-mesh-hitching-rail", handleHitchingRail, "rail"},
});
}
int handleGenMiningPack(int& i, int /*argc*/, char** argv) {
// Mining shaft / quarry scene: gravel-pile (loose rubble),
// crate-stack (raw-ore cargo), mine-cart (underground
@ -7342,6 +7360,7 @@ constexpr MeshEntry kMeshTable[] = {
{"--gen-dock-pack", 1, handleGenDockPack},
{"--gen-tavern-pack", 1, handleGenTavernPack},
{"--gen-mining-pack", 1, handleGenMiningPack},
{"--gen-arena-pack", 1, handleGenArenaPack},
{"--gen-mesh-table", 1, handleTable},
{"--gen-mesh-lamppost", 1, handleLamppost},
{"--gen-mesh-bed", 1, handleBed},