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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
diff options
context:
space:
mode:
authorWasabiRaptor <ketchupraptor@gmail.com>2025-05-18 20:05:41 -0400
committerWasabiRaptor <ketchupraptor@gmail.com>2025-05-18 20:05:41 -0400
commit0bf17a8dc4a4e7c7c1b763a2e12ac0de27caff1a (patch)
treed29eb44ec5e7887fe1a2ab521254ff0230b5ba2f /source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
parentda281a0c5286014f952b5a8ce2f346f99c114089 (diff)
big feature expansion
Diffstat (limited to 'source/game/scripting/StarScriptedAnimatorLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarScriptedAnimatorLuaBindings.cpp58
1 files changed, 49 insertions, 9 deletions
diff --git a/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp b/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
index 0b2dd7f..e093360 100644
--- a/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
+++ b/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
@@ -4,23 +4,63 @@
namespace Star {
-LuaCallbacks LuaBindings::makeScriptedAnimatorCallbacks(const NetworkedAnimator* animator, function<Json(String const&, Json const&)> getParameter) {
+LuaCallbacks LuaBindings::makeScriptedAnimatorCallbacks(NetworkedAnimator* networkedAnimator, function<Json(String const&, Json const&)> getParameter) {
LuaCallbacks callbacks;
callbacks.registerCallback("animationParameter", getParameter);
- callbacks.registerCallback("partPoint", [animator](String const& partName, String const& propertyName) {
- return animator->partPoint(partName, propertyName);
- });
- callbacks.registerCallback("partPoly", [animator](String const& partName, String const& propertyName) { return animator->partPoly(partName, propertyName); });
+ callbacks.registerCallbackWithSignature<Maybe<Vec2F>, String, String>("partPoint", bind(&NetworkedAnimator::partPoint, networkedAnimator, _1, _2));
+ callbacks.registerCallbackWithSignature<Maybe<PolyF>, String, String>("partPoly", bind(&NetworkedAnimator::partPoly, networkedAnimator, _1, _2));
+ callbacks.registerCallbackWithSignature<Json, String, String>("partProperty", bind(&NetworkedAnimator::partProperty, networkedAnimator, _1, _2));
- callbacks.registerCallback("transformPoint", [animator] (Vec2F point, String const& part) -> Vec2F {
- return animator->partTransformation(part).transformVec2(point);
+ callbacks.registerCallback("transformPoint", [networkedAnimator] (Vec2F point, String const& part) -> Vec2F {
+ return networkedAnimator->partTransformation(part).transformVec2(point);
});
- callbacks.registerCallback("transformPoly", [animator] (PolyF poly, String const& part) -> PolyF {
- poly.transform(animator->partTransformation(part));
+ callbacks.registerCallback("transformPoly", [networkedAnimator] (PolyF poly, String const& part) -> PolyF {
+ poly.transform(networkedAnimator->partTransformation(part));
return poly;
});
+ callbacks.registerCallbackWithSignature<Json, String, String>(
+ "animationStateProperty", bind(&NetworkedAnimator::stateProperty, networkedAnimator, _1, _2));
+ callbacks.registerCallbackWithSignature<int, String>(
+ "animationState", bind(&NetworkedAnimator::state, networkedAnimator, _1));
+ callbacks.registerCallbackWithSignature<int, String>(
+ "animationStateFrame", bind(&NetworkedAnimator::stateFrame, networkedAnimator, _1));
+ callbacks.registerCallbackWithSignature<float, String>(
+ "animationStateFrameProgress", bind(&NetworkedAnimator::stateFrameProgress, networkedAnimator, _1));
+ callbacks.registerCallbackWithSignature<float, String>(
+ "animationStateTimer", bind(&NetworkedAnimator::stateTimer, networkedAnimator, _1));
+ callbacks.registerCallbackWithSignature<bool, String>(
+ "animationStateReverse", bind(&NetworkedAnimator::stateReverse, networkedAnimator, _1));
+
+ callbacks.registerCallbackWithSignature<bool, String>(
+ "hasTransformationGroup", bind(&NetworkedAnimator::hasTransformationGroup, networkedAnimator, _1));
+
+ callbacks.registerCallbackWithSignature<void, String, Vec2F>("translateLocalTransformationGroup",
+ bind(&NetworkedAnimator::translateLocalTransformationGroup, networkedAnimator, _1, _2));
+ callbacks.registerCallback("rotateLocalTransformationGroup",
+ [networkedAnimator](String const& transformationGroup, float rotation, Maybe<Vec2F> const& rotationCenter) {
+ networkedAnimator->rotateLocalTransformationGroup(transformationGroup, rotation, rotationCenter.value());
+ });
+ callbacks.registerCallback("scaleLocalTransformationGroup",
+ [networkedAnimator](LuaEngine& engine, String const& transformationGroup, LuaValue scale, Maybe<Vec2F> const& scaleCenter) {
+ if (auto cs = engine.luaMaybeTo<Vec2F>(scale))
+ networkedAnimator->scaleLocalTransformationGroup(transformationGroup, *cs, scaleCenter.value());
+ else
+ networkedAnimator->scaleLocalTransformationGroup(transformationGroup, engine.luaTo<float>(scale), scaleCenter.value());
+ });
+ callbacks.registerCallbackWithSignature<void, String, float, float, float, float, float, float>(
+ "transformLocalTransformationGroup",
+ bind(&NetworkedAnimator::transformLocalTransformationGroup, networkedAnimator, _1, _2, _3, _4, _5, _6, _7));
+ callbacks.registerCallbackWithSignature<void, String>(
+ "resetLocalTransformationGroup", bind(&NetworkedAnimator::resetLocalTransformationGroup, networkedAnimator, _1));
+
+ callbacks.registerCallbackWithSignature<void, String, List<Drawable>>(
+ "addPartDrawables", bind(&NetworkedAnimator::addPartDrawables, networkedAnimator, _1, _2));
+ callbacks.registerCallbackWithSignature<void, String, List<Drawable>>(
+ "setPartDrawables", bind(&NetworkedAnimator::setPartDrawables, networkedAnimator, _1, _2));
+
+
return callbacks;
}