mirror of https://github.com/bjornbytes/lovr.git
Collider:destroy;
This commit is contained in:
parent
5640b1d048
commit
6ef9c6e475
|
@ -1,6 +1,12 @@
|
|||
#include "api/lovr.h"
|
||||
#include "physics/physics.h"
|
||||
|
||||
int l_lovrColliderDestroy(lua_State* L) {
|
||||
Collider* collider = luax_checktype(L, 1, Collider);
|
||||
lovrColliderDestroyData(collider);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrColliderGetWorld(lua_State* L) {
|
||||
Collider* collider = luax_checktype(L, 1, Collider);
|
||||
luax_pushtype(L, World, lovrColliderGetWorld(collider));
|
||||
|
@ -385,6 +391,7 @@ int l_lovrColliderGetLinearVelocityFromWorldPoint(lua_State* L) {
|
|||
}
|
||||
|
||||
const luaL_Reg lovrCollider[] = {
|
||||
{ "destroy", l_lovrColliderDestroy },
|
||||
{ "getWorld", l_lovrColliderGetWorld },
|
||||
{ "addShape", l_lovrColliderAddShape },
|
||||
{ "removeShape", l_lovrColliderRemoveShape },
|
||||
|
|
|
@ -169,10 +169,17 @@ Collider* lovrColliderCreate(World* world) {
|
|||
|
||||
void lovrColliderDestroy(const Ref* ref) {
|
||||
Collider* collider = containerof(ref, Collider);
|
||||
dBodyDestroy(collider->body);
|
||||
lovrColliderDestroyData(collider);
|
||||
free(collider);
|
||||
}
|
||||
|
||||
void lovrColliderDestroyData(Collider* collider) {
|
||||
if (collider->body) {
|
||||
dBodyDestroy(collider->body);
|
||||
collider->body = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
World* lovrColliderGetWorld(Collider* collider) {
|
||||
return collider->world;
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ void lovrWorldSetSleepingAllowed(World* world, int allowed);
|
|||
|
||||
Collider* lovrColliderCreate();
|
||||
void lovrColliderDestroy(const Ref* ref);
|
||||
void lovrColliderDestroyData(Collider* collider);
|
||||
World* lovrColliderGetWorld(Collider* collider);
|
||||
void lovrColliderAddShape(Collider* collider, Shape* shape);
|
||||
void lovrColliderRemoveShape(Collider* collider, Shape* shape);
|
||||
|
|
Loading…
Reference in New Issue