PhysicsScreenEntity.lua 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. class "PhysicsScreenEntity"
  2. ENTITY_RECT = 1
  3. ENTITY_CIRCLE = 2
  4. ENTITY_MESH = 3
  5. function PhysicsScreenEntity:__index__(name)
  6. if name == "collisionOnly" then
  7. return Physics2D.PhysicsScreenEntity_get_collisionOnly(self.__ptr)
  8. end
  9. end
  10. function PhysicsScreenEntity:__set_callback(name,value)
  11. if name == "collisionOnly" then
  12. Physics2D.PhysicsScreenEntity_set_collisionOnly(self.__ptr, value)
  13. return true
  14. end
  15. return false
  16. end
  17. function PhysicsScreenEntity:PhysicsScreenEntity(...)
  18. for k,v in pairs(arg) do
  19. if type(v) == "table" then
  20. if v.__ptr ~= nil then
  21. arg[k] = v.__ptr
  22. end
  23. end
  24. end
  25. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  26. self.__ptr = Physics2D.PhysicsScreenEntity(unpack(arg))
  27. Polycore.__ptr_lookup[self.__ptr] = self
  28. end
  29. end
  30. function PhysicsScreenEntity:getScreenEntity()
  31. local retVal = Physics2D.PhysicsScreenEntity_getScreenEntity(self.__ptr)
  32. if retVal == nil then return nil end
  33. if Polycore.__ptr_lookup[retVal] ~= nil then
  34. return Polycore.__ptr_lookup[retVal]
  35. else
  36. Polycore.__ptr_lookup[retVal] = ScreenEntity("__skip_ptr__")
  37. Polycore.__ptr_lookup[retVal].__ptr = retVal
  38. return Polycore.__ptr_lookup[retVal]
  39. end
  40. end
  41. function PhysicsScreenEntity:applyTorque(torque)
  42. local retVal = Physics2D.PhysicsScreenEntity_applyTorque(self.__ptr, torque)
  43. end
  44. function PhysicsScreenEntity:applyForce(force)
  45. local retVal = Physics2D.PhysicsScreenEntity_applyForce(self.__ptr, force.__ptr)
  46. end
  47. function PhysicsScreenEntity:setTransform(pos, angle)
  48. local retVal = Physics2D.PhysicsScreenEntity_setTransform(self.__ptr, pos.__ptr, angle)
  49. end
  50. function PhysicsScreenEntity:Update()
  51. local retVal = Physics2D.PhysicsScreenEntity_Update(self.__ptr)
  52. end
  53. function PhysicsScreenEntity:__delete()
  54. Polycore.__ptr_lookup[self.__ptr] = nil
  55. Physics2D.delete_PhysicsScreenEntity(self.__ptr)
  56. end