Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarMovementControllerLuaBindings.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
commit6352e8e3196f78388b6c771073f9e03eaa612673 (patch)
treee23772f79a7fbc41bc9108951e9e136857484bf4 /source/game/scripting/StarMovementControllerLuaBindings.cpp
parent6741a057e5639280d85d0f88ba26f000baa58f61 (diff)
everything everywhere
all at once
Diffstat (limited to 'source/game/scripting/StarMovementControllerLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarMovementControllerLuaBindings.cpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/source/game/scripting/StarMovementControllerLuaBindings.cpp b/source/game/scripting/StarMovementControllerLuaBindings.cpp
new file mode 100644
index 0000000..805e4be
--- /dev/null
+++ b/source/game/scripting/StarMovementControllerLuaBindings.cpp
@@ -0,0 +1,83 @@
+#include "StarMovementControllerLuaBindings.hpp"
+#include "StarMovementController.hpp"
+#include "StarLuaGameConverters.hpp"
+
+namespace Star {
+
+LuaCallbacks LuaBindings::makeMovementControllerCallbacks(MovementController* movementController) {
+ LuaCallbacks callbacks;
+
+ callbacks.registerCallback(
+ "parameters", [movementController]() { return movementController->parameters().toJson(); });
+ callbacks.registerCallbackWithSignature<void, Json>(
+ "applyParameters", bind(&MovementController::applyParameters, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Json>(
+ "resetParameters", bind(&MovementController::resetParameters, movementController, _1));
+ callbacks.registerCallbackWithSignature<float>("mass", bind(&MovementController::mass, movementController));
+ callbacks.registerCallbackWithSignature<PolyF>(
+ "collisionPoly", bind(&MovementController::collisionPoly, movementController));
+ callbacks.registerCallbackWithSignature<Vec2F>("position", bind(&MovementController::position, movementController));
+ callbacks.registerCallbackWithSignature<float>("xPosition", bind(&MovementController::xPosition, movementController));
+ callbacks.registerCallbackWithSignature<float>("yPosition", bind(&MovementController::yPosition, movementController));
+ callbacks.registerCallbackWithSignature<Vec2F>("velocity", bind(&MovementController::velocity, movementController));
+ callbacks.registerCallbackWithSignature<float>("xVelocity", bind(&MovementController::xVelocity, movementController));
+ callbacks.registerCallbackWithSignature<float>("yVelocity", bind(&MovementController::yVelocity, movementController));
+ callbacks.registerCallbackWithSignature<float>("rotation", bind(&MovementController::rotation, movementController));
+ callbacks.registerCallbackWithSignature<PolyF>(
+ "collisionBody", bind(&MovementController::collisionBody, movementController));
+ callbacks.registerCallbackWithSignature<RectF>(
+ "collisionBoundBox", bind(&MovementController::collisionBoundBox, movementController));
+ callbacks.registerCallbackWithSignature<RectF>(
+ "localBoundBox", bind(&MovementController::localBoundBox, movementController));
+ callbacks.registerCallbackWithSignature<bool>(
+ "isColliding", bind(&MovementController::isColliding, movementController));
+ callbacks.registerCallbackWithSignature<bool>(
+ "isNullColliding", bind(&MovementController::isNullColliding, movementController));
+ callbacks.registerCallbackWithSignature<bool>(
+ "isCollisionStuck", bind(&MovementController::isCollisionStuck, movementController));
+ callbacks.registerCallbackWithSignature<Maybe<float>>(
+ "stickingDirection", bind(&MovementController::stickingDirection, movementController));
+ callbacks.registerCallbackWithSignature<float>(
+ "liquidPercentage", bind(&MovementController::liquidPercentage, movementController));
+ callbacks.registerCallbackWithSignature<LiquidId>(
+ "liquidId", bind(&MovementController::liquidId, movementController));
+ callbacks.registerCallbackWithSignature<bool>("onGround", bind(&MovementController::onGround, movementController));
+ callbacks.registerCallbackWithSignature<bool>("zeroG", bind(&MovementController::zeroG, movementController));
+ callbacks.registerCallbackWithSignature<bool, bool>("atWorldLimit", bind(&MovementController::atWorldLimit, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "setPosition", bind(&MovementController::setPosition, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "setXPosition", bind(&MovementController::setXPosition, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "setYPosition", bind(&MovementController::setYPosition, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "translate", bind(&MovementController::translate, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "setVelocity", bind(&MovementController::setVelocity, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "setXVelocity", bind(&MovementController::setXVelocity, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "setYVelocity", bind(&MovementController::setYVelocity, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "addMomentum", bind(&MovementController::addMomentum, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "setRotation", bind(&MovementController::setRotation, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, float>(
+ "rotate", bind(&MovementController::rotate, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "accelerate", bind(&MovementController::accelerate, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F>(
+ "force", bind(&MovementController::force, movementController, _1));
+ callbacks.registerCallbackWithSignature<void, Vec2F, float>(
+ "approachVelocity", bind(&MovementController::approachVelocity, movementController, _1, _2));
+ callbacks.registerCallbackWithSignature<void, float, float, float, bool>("approachVelocityAlongAngle",
+ bind(&MovementController::approachVelocityAlongAngle, movementController, _1, _2, _3, _4));
+ callbacks.registerCallbackWithSignature<void, float, float>(
+ "approachXVelocity", bind(&MovementController::approachXVelocity, movementController, _1, _2));
+ callbacks.registerCallbackWithSignature<void, float, float>(
+ "approachYVelocity", bind(&MovementController::approachYVelocity, movementController, _1, _2));
+
+ return callbacks;
+}
+
+}