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;