TouchInfo.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. class "TouchInfo"
  2. TouchInfo.TYPEBASE = 0x500
  3. TouchInfo.TYPE_TOUCH = TouchInfo.TYPEBASE + 0
  4. TouchInfo.TYPE_PEN = TouchInfo.TYPEBASE + 1
  5. function TouchInfo:__getvar(name)
  6. if name == "id" then
  7. return Polycode.TouchInfo_get_id(self.__ptr)
  8. elseif name == "position" then
  9. local retVal = Polycode.TouchInfo_get_position(self.__ptr)
  10. if retVal == nil then return nil end
  11. local __c = _G["Vector2"]("__skip_ptr__")
  12. __c.__ptr = retVal
  13. return __c
  14. elseif name == "type" then
  15. return Polycode.TouchInfo_get_type(self.__ptr)
  16. end
  17. end
  18. function TouchInfo:__setvar(name,value)
  19. if name == "id" then
  20. Polycode.TouchInfo_set_id(self.__ptr, value)
  21. return true
  22. elseif name == "position" then
  23. Polycode.TouchInfo_set_position(self.__ptr, value.__ptr)
  24. return true
  25. elseif name == "type" then
  26. Polycode.TouchInfo_set_type(self.__ptr, value)
  27. return true
  28. end
  29. return false
  30. end
  31. function TouchInfo:TouchInfo(...)
  32. local arg = {...}
  33. for k,v in pairs(arg) do
  34. if type(v) == "table" then
  35. if v.__ptr ~= nil then
  36. arg[k] = v.__ptr
  37. end
  38. end
  39. end
  40. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  41. self.__ptr = Polycode.TouchInfo(unpack(arg))
  42. end
  43. end
  44. function TouchInfo:__delete()
  45. if self then Polycode.delete_TouchInfo(self.__ptr) end
  46. end