CoreInput.lua 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. require "Polycode/EventDispatcher"
  2. class "CoreInput" (EventDispatcher)
  3. MOUSE_BUTTON1 = 0
  4. MOUSE_BUTTON2 = 1
  5. MOUSE_BUTTON3 = 2
  6. function CoreInput:CoreInput(...)
  7. for k,v in pairs(arg) do
  8. if type(v) == "table" then
  9. if v.__ptr ~= nil then
  10. arg[k] = v.__ptr
  11. end
  12. end
  13. end
  14. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  15. self.__ptr = Polycore.CoreInput(unpack(arg))
  16. Polycore.__ptr_lookup[self.__ptr] = self
  17. end
  18. end
  19. function CoreInput:getMousePosition()
  20. local retVal = Polycore.CoreInput_getMousePosition(self.__ptr)
  21. if Polycore.__ptr_lookup[retVal] ~= nil then
  22. return Polycore.__ptr_lookup[retVal]
  23. else
  24. Polycore.__ptr_lookup[retVal] = Vector2("__skip_ptr__")
  25. Polycore.__ptr_lookup[retVal].__ptr = retVal
  26. return Polycore.__ptr_lookup[retVal]
  27. end
  28. end
  29. function CoreInput:getKeyState(keyCode)
  30. local retVal = Polycore.CoreInput_getKeyState(self.__ptr, keyCode.__ptr)
  31. return retVal
  32. end
  33. function CoreInput:getMouseDelta()
  34. local retVal = Polycore.CoreInput_getMouseDelta(self.__ptr)
  35. if Polycore.__ptr_lookup[retVal] ~= nil then
  36. return Polycore.__ptr_lookup[retVal]
  37. else
  38. Polycore.__ptr_lookup[retVal] = Vector2("__skip_ptr__")
  39. Polycore.__ptr_lookup[retVal].__ptr = retVal
  40. return Polycore.__ptr_lookup[retVal]
  41. end
  42. end
  43. function CoreInput:getMouseButtonState(mouseButton)
  44. local retVal = Polycore.CoreInput_getMouseButtonState(self.__ptr, mouseButton)
  45. return retVal
  46. end
  47. function CoreInput:mouseWheelUp(ticks)
  48. local retVal = Polycore.CoreInput_mouseWheelUp(self.__ptr, ticks)
  49. end
  50. function CoreInput:mouseWheelDown(ticks)
  51. local retVal = Polycore.CoreInput_mouseWheelDown(self.__ptr, ticks)
  52. end
  53. function CoreInput:setMouseButtonState(mouseButton, state, ticks)
  54. local retVal = Polycore.CoreInput_setMouseButtonState(self.__ptr, mouseButton, state, ticks)
  55. end
  56. function CoreInput:setMousePosition(x, y, ticks)
  57. local retVal = Polycore.CoreInput_setMousePosition(self.__ptr, x, y, ticks)
  58. end
  59. function CoreInput:setKeyState(keyCode, code, newState, ticks)
  60. local retVal = Polycore.CoreInput_setKeyState(self.__ptr, keyCode.__ptr, code.__ptr, newState, ticks)
  61. end
  62. function CoreInput:setDeltaPosition(x, y)
  63. local retVal = Polycore.CoreInput_setDeltaPosition(self.__ptr, x, y)
  64. end
  65. function CoreInput:createEvent(event)
  66. local retVal = Polycore.CoreInput_createEvent(event.__ptr)
  67. if Polycore.__ptr_lookup[retVal] ~= nil then
  68. return Polycore.__ptr_lookup[retVal]
  69. else
  70. Polycore.__ptr_lookup[retVal] = InputEvent("__skip_ptr__")
  71. Polycore.__ptr_lookup[retVal].__ptr = retVal
  72. return Polycore.__ptr_lookup[retVal]
  73. end
  74. end