lua_sprite.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "sprite.h"
  6. #include "quaternion.h"
  7. #include "lua_stack.h"
  8. #include "lua_environment.h"
  9. namespace crown
  10. {
  11. static int sprite_local_position(lua_State* L)
  12. {
  13. LuaStack stack(L);
  14. stack.push_vector3(stack.get_sprite(1)->local_position());
  15. return 1;
  16. }
  17. static int sprite_local_rotation(lua_State* L)
  18. {
  19. LuaStack stack(L);
  20. stack.push_quaternion(stack.get_sprite(1)->local_rotation());
  21. return 1;
  22. }
  23. static int sprite_local_pose(lua_State* L)
  24. {
  25. LuaStack stack(L);
  26. stack.push_matrix4x4(stack.get_sprite(1)->local_pose());
  27. return 1;
  28. }
  29. static int sprite_set_local_position(lua_State* L)
  30. {
  31. LuaStack stack(L);
  32. stack.get_sprite(1)->set_local_position(stack.get_unit(2), stack.get_vector3(3));
  33. return 0;
  34. }
  35. static int sprite_set_local_rotation(lua_State* L)
  36. {
  37. LuaStack stack(L);
  38. stack.get_sprite(1)->set_local_rotation(stack.get_unit(2), stack.get_quaternion(3));
  39. return 0;
  40. }
  41. static int sprite_set_local_pose(lua_State* L)
  42. {
  43. LuaStack stack(L);
  44. stack.get_sprite(1)->set_local_pose(stack.get_unit(2), stack.get_matrix4x4(3));
  45. return 0;
  46. }
  47. static int sprite_set_frame(lua_State* L)
  48. {
  49. LuaStack stack(L);
  50. stack.get_sprite(1)->set_frame(stack.get_int(2));
  51. return 0;
  52. }
  53. void load_sprite(LuaEnvironment& env)
  54. {
  55. env.load_module_function("Sprite", "local_position", sprite_local_position);
  56. env.load_module_function("Sprite", "local_rotation", sprite_local_rotation);
  57. env.load_module_function("Sprite", "local_pose", sprite_local_pose);
  58. env.load_module_function("Sprite", "set_local_position", sprite_set_local_position);
  59. env.load_module_function("Sprite", "set_local_rotation", sprite_set_local_rotation);
  60. env.load_module_function("Sprite", "set_local_pose", sprite_set_local_pose);
  61. env.load_module_function("Sprite", "set_frame", sprite_set_frame);
  62. }
  63. } // namespace crown