From a5e089b6ae4b0a59b8c47b0aa75a567bb832cb82 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sat, 18 Jan 2025 20:17:22 -0600 Subject: [PATCH] [jasper/world] Add World Person TileSheet template --- .../modules/world/src/studio/studiomodule.cpp | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/jasper/modules/world/src/studio/studiomodule.cpp b/src/jasper/modules/world/src/studio/studiomodule.cpp index 18f1895..866cf38 100644 --- a/src/jasper/modules/world/src/studio/studiomodule.cpp +++ b/src/jasper/modules/world/src/studio/studiomodule.cpp @@ -12,12 +12,14 @@ namespace jasper::world { static class: public studio::Module { + ox::Vector editors(studio::StudioContext &ctx) const noexcept override { return { studio::editorMaker(ctx, FileExt_jwob), studio::editorMaker(ctx, FileExt_jwld), }; } + ox::Vector> itemMakers(studio::StudioContext&) const noexcept override { ox::Vector> out; out.emplace_back(ox::make>( @@ -26,7 +28,38 @@ static class: public studio::Module { "World", "Worlds", FileExt_jwld, ox::ClawFormat::Organic)); return out; } -} mod; + + ox::Vector> itemTemplates(studio::StudioContext&) const noexcept override { + ox::Vector> out; + // Person TileSheet + { + ncore::TileSheetV4 ts; + ts.bpp = 4; + auto const addSheet = [&ts]( + ncore::TileSheetV4::SubSheet &ss, + ox::StringParam name, + int const cols, + int const rows) -> auto& { + return ss.subsheets.emplace_back(++ts.idIt, std::move(name), cols, rows, ts.bpp); + }; + auto const addSheetSet = [&ts, &addSheet](ox::StringParam name) { + auto &s = addSheet(ts.subsheet, std::move(name), -1, -1); + addSheet(s, "Still", 2, 3); + addSheet(s, "Step 1", 2, 3); + addSheet(s, "Step 2", 2, 3); + }; + addSheetSet("Front"); + addSheetSet("Back"); + addSheetSet("Left"); + addSheetSet("Right"); + out.emplace_back(ox::make>( + "Jasper World Person", + std::move(ts))); + } + return out; + } + +} const mod; studio::Module const*studioModule() noexcept { return &mod;