From 6352e8e3196f78388b6c771073f9e03eaa612673 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:33:09 +1000 Subject: everything everywhere all at once --- .../scripting/StarNetworkedAnimatorLuaBindings.cpp | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 source/game/scripting/StarNetworkedAnimatorLuaBindings.cpp (limited to 'source/game/scripting/StarNetworkedAnimatorLuaBindings.cpp') diff --git a/source/game/scripting/StarNetworkedAnimatorLuaBindings.cpp b/source/game/scripting/StarNetworkedAnimatorLuaBindings.cpp new file mode 100644 index 0000000..dfafeb0 --- /dev/null +++ b/source/game/scripting/StarNetworkedAnimatorLuaBindings.cpp @@ -0,0 +1,112 @@ +#include "StarNetworkedAnimatorLuaBindings.hpp" +#include "StarNetworkedAnimator.hpp" +#include "StarJsonExtra.hpp" +#include "StarLuaGameConverters.hpp" + +namespace Star { + +LuaCallbacks LuaBindings::makeNetworkedAnimatorCallbacks(NetworkedAnimator* networkedAnimator) { + LuaCallbacks callbacks; + + callbacks.registerCallbackWithSignature( + "setAnimationState", bind(&NetworkedAnimator::setState, networkedAnimator, _1, _2, _3)); + callbacks.registerCallbackWithSignature( + "animationState", bind(&NetworkedAnimator::state, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "animationStateProperty", bind(&NetworkedAnimator::stateProperty, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setGlobalTag", bind(&NetworkedAnimator::setGlobalTag, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setPartTag", bind(&NetworkedAnimator::setPartTag, networkedAnimator, _1, _2, _3)); + callbacks.registerCallback("setFlipped", + [networkedAnimator](bool flipped, Maybe relativeCenterLine) { + networkedAnimator->setFlipped(flipped, relativeCenterLine.value()); + }); + callbacks.registerCallbackWithSignature( + "setAnimationRate", bind(&NetworkedAnimator::setAnimationRate, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "rotateGroup", bind(&NetworkedAnimator::rotateGroup, networkedAnimator, _1, _2, _3)); + callbacks.registerCallbackWithSignature( + "currentRotationAngle", bind(&NetworkedAnimator::currentRotationAngle, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "hasTransformationGroup", bind(&NetworkedAnimator::hasTransformationGroup, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature("translateTransformationGroup", + bind(&NetworkedAnimator::translateTransformationGroup, networkedAnimator, _1, _2)); + callbacks.registerCallback("rotateTransformationGroup", + [networkedAnimator](String const& transformationGroup, float rotation, Maybe const& rotationCenter) { + networkedAnimator->rotateTransformationGroup(transformationGroup, rotation, rotationCenter.value()); + }); + callbacks.registerCallback("scaleTransformationGroup", + [networkedAnimator](LuaEngine& engine, String const& transformationGroup, LuaValue scale, Maybe const& scaleCenter) { + if (auto cs = engine.luaMaybeTo(scale)) + networkedAnimator->scaleTransformationGroup(transformationGroup, *cs, scaleCenter.value()); + else + networkedAnimator->scaleTransformationGroup(transformationGroup, engine.luaTo(scale), scaleCenter.value()); + }); + callbacks.registerCallbackWithSignature( + "transformTransformationGroup", + bind(&NetworkedAnimator::transformTransformationGroup, networkedAnimator, _1, _2, _3, _4, _5, _6, _7)); + callbacks.registerCallbackWithSignature( + "resetTransformationGroup", bind(&NetworkedAnimator::resetTransformationGroup, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "setParticleEmitterActive", bind(&NetworkedAnimator::setParticleEmitterActive, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature("setParticleEmitterEmissionRate", + bind(&NetworkedAnimator::setParticleEmitterEmissionRate, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature("setParticleEmitterBurstCount", + bind(&NetworkedAnimator::setParticleEmitterBurstCount, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature("setParticleEmitterOffsetRegion", + bind(&NetworkedAnimator::setParticleEmitterOffsetRegion, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "burstParticleEmitter", bind(&NetworkedAnimator::burstParticleEmitter, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "setLightActive", bind(&NetworkedAnimator::setLightActive, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setLightPosition", bind(&NetworkedAnimator::setLightPosition, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setLightColor", bind(&NetworkedAnimator::setLightColor, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setLightPointAngle", bind(&NetworkedAnimator::setLightPointAngle, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "hasSound", bind(&NetworkedAnimator::hasSound, networkedAnimator, _1)); + callbacks.registerCallbackWithSignature( + "setSoundPool", bind(&NetworkedAnimator::setSoundPool, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature( + "setSoundPosition", bind(&NetworkedAnimator::setSoundPosition, networkedAnimator, _1, _2)); + callbacks.registerCallback("playSound", + [networkedAnimator](String const& sound, Maybe loops) { + networkedAnimator->playSound(sound, loops.value()); + }); + + callbacks.registerCallback("setSoundVolume", + [networkedAnimator](String const& sound, float targetVolume, Maybe rampTime) { + networkedAnimator->setSoundVolume(sound, targetVolume, rampTime.value(0)); + }); + callbacks.registerCallback("setSoundPitch", + [networkedAnimator](String const& sound, float targetPitch, Maybe rampTime) { + networkedAnimator->setSoundPitchMultiplier(sound, targetPitch, rampTime.value(0)); + }); + + callbacks.registerCallback("stopAllSounds", + [networkedAnimator](String const& sound, Maybe rampTime) { + networkedAnimator->stopAllSounds(sound, rampTime.value()); + }); + + callbacks.registerCallbackWithSignature( + "setEffectActive", bind(&NetworkedAnimator::setEffectEnabled, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature, String, String>("partPoint", bind(&NetworkedAnimator::partPoint, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature, String, String>("partPoly", bind(&NetworkedAnimator::partPoly, networkedAnimator, _1, _2)); + callbacks.registerCallbackWithSignature("partProperty", bind(&NetworkedAnimator::partProperty, networkedAnimator, _1, _2)); + + callbacks.registerCallback("transformPoint", [networkedAnimator] (Vec2F point, String const& part) -> Vec2F { + return networkedAnimator->partTransformation(part).transformVec2(point); + }); + callbacks.registerCallback("transformPoly", [networkedAnimator] (PolyF poly, String const& part) -> PolyF { + poly.transform(networkedAnimator->partTransformation(part)); + return poly; + }); + + + return callbacks; +} + +} -- cgit v1.2.3