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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarScriptedAnimatorLuaBindings.cpp
blob: 0b2dd7fe54de351190c26313f0137482989cb88c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "StarScriptedAnimatorLuaBindings.hpp"
#include "StarJsonExtra.hpp"
#include "StarLuaGameConverters.hpp"

namespace Star {

LuaCallbacks LuaBindings::makeScriptedAnimatorCallbacks(const NetworkedAnimator* animator, 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.registerCallback("transformPoint", [animator] (Vec2F point, String const& part) -> Vec2F {
      return animator->partTransformation(part).transformVec2(point);
    });
  callbacks.registerCallback("transformPoly", [animator] (PolyF poly, String const& part) -> PolyF {
      poly.transform(animator->partTransformation(part));
      return poly;
    });

  return callbacks;
}

}