Checkpoint 2: integrate native Editor, MCP, gameplay builds and standalone export

This commit is contained in:
Emil
2026-09-18 03:40:15 +03:00
parent 5c6b24d34d
commit 999686a896
125 changed files with 16086 additions and 1714 deletions
+31
View File
@@ -0,0 +1,31 @@
#include "Gameplay.hpp"
namespace faset::gameplay {
void registerGameplay(runtime::Runtime& world) {
runtime::Behavior mover;
mover.update = [](runtime::Runtime& game, runtime::EntityHandle self, double delta) {
// fields() returns a configuration copy. transform() returns a live pose copy.
const auto settings = game.fields(self, "tutorial.move_x");
const float speed = settings.value("speed", 2.0f); // metres per second
auto pose = game.transform(self);
pose.position[0] += speed * static_cast<float>(delta);
game.setTransform(self, pose); // This object has no rigid body.
};
world.registerBehavior("tutorial.move_x", std::move(mover));
}
nlohmann::json schema() {
// The FieldId is the map key. Keep it stable if you change a display name.
return nlohmann::json::array({{{"id", "tutorial.move_x"},
{"version", 1},
{"name", "Move along X"},
{"fields",
{{"speed",
{{"id", "speed"},
{"type", "number"},
{"default", 2.0},
{"min", -20.0},
{"max", 20.0},
{"units", "m/s"}}}}}}});
}
} // namespace faset::gameplay