|
@@ -29,17 +29,6 @@ static int Physics3D_CollisionScene_Update(lua_State *L) {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionScene_enableCollision(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * entity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TBOOLEAN);
|
|
|
|
|
- bool val = lua_toboolean(L, 3);
|
|
|
|
|
- inst->enableCollision(entity, val);
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
static int Physics3D_CollisionScene_getCollisionEntityByObject(lua_State *L) {
|
|
static int Physics3D_CollisionScene_getCollisionEntityByObject(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
@@ -67,6 +56,17 @@ static int Physics3D_CollisionScene_getFirstEntityInRay(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static int Physics3D_CollisionScene_enableCollision(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ SceneEntity * entity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
+ luaL_checktype(L, 3, LUA_TBOOLEAN);
|
|
|
|
|
+ bool val = lua_toboolean(L, 3);
|
|
|
|
|
+ inst->enableCollision(entity, val);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
static int Physics3D_CollisionScene_getCollisionByScreenEntity(lua_State *L) {
|
|
static int Physics3D_CollisionScene_getCollisionByScreenEntity(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
@@ -120,90 +120,6 @@ static int Physics3D_CollisionScene_testCollisionOnCollisionChild_Convex(lua_Sta
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionScene_testCollisionOnCollisionChild_RayTest(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity * cEnt1 = (CollisionSceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity * cEnt2 = (CollisionSceneEntity *)lua_topointer(L, 3);
|
|
|
|
|
- CollisionResult *retInst = new CollisionResult();
|
|
|
|
|
- *retInst = inst->testCollisionOnCollisionChild_RayTest(cEnt1, cEnt2);
|
|
|
|
|
- lua_pushlightuserdata(L, retInst);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionScene_getCollisionNormalFromCollisionEnts(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity * cEnt1 = (CollisionSceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity * cEnt2 = (CollisionSceneEntity *)lua_topointer(L, 3);
|
|
|
|
|
- Vector3 *retInst = new Vector3();
|
|
|
|
|
- *retInst = inst->getCollisionNormalFromCollisionEnts(cEnt1, cEnt2);
|
|
|
|
|
- lua_pushlightuserdata(L, retInst);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionScene_getCollisionNormal(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * ent1 = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * ent2 = (SceneEntity *)lua_topointer(L, 3);
|
|
|
|
|
- Vector3 *retInst = new Vector3();
|
|
|
|
|
- *retInst = inst->getCollisionNormal(ent1, ent2);
|
|
|
|
|
- lua_pushlightuserdata(L, retInst);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionScene_applyVelocity(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * entity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TNUMBER);
|
|
|
|
|
- Number x = lua_tonumber(L, 3);
|
|
|
|
|
- luaL_checktype(L, 4, LUA_TNUMBER);
|
|
|
|
|
- Number y = lua_tonumber(L, 4);
|
|
|
|
|
- luaL_checktype(L, 5, LUA_TNUMBER);
|
|
|
|
|
- Number z = lua_tonumber(L, 5);
|
|
|
|
|
- inst->applyVelocity(entity, x, y, z);
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionScene_loadCollisionChild(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * entity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- bool autoCollide;
|
|
|
|
|
- if(lua_isboolean(L, 3)) {
|
|
|
|
|
- autoCollide = lua_toboolean(L, 3);
|
|
|
|
|
- } else {
|
|
|
|
|
- autoCollide = false;
|
|
|
|
|
- }
|
|
|
|
|
- int type;
|
|
|
|
|
- if(lua_isnumber(L, 4)) {
|
|
|
|
|
- type = lua_tointeger(L, 4);
|
|
|
|
|
- } else {
|
|
|
|
|
- type = 0;
|
|
|
|
|
- }
|
|
|
|
|
- inst->loadCollisionChild(entity, autoCollide, type);
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionScene_enableGravity(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
|
|
- luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- SceneEntity * entity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
|
|
- inst->enableGravity(entity);
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
static int Physics3D_CollisionScene_stopTrackingCollision(lua_State *L) {
|
|
static int Physics3D_CollisionScene_stopTrackingCollision(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
@@ -218,25 +134,19 @@ static int Physics3D_CollisionScene_addCollisionChild(lua_State *L) {
|
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
SceneEntity * newEntity = (SceneEntity *)lua_topointer(L, 2);
|
|
SceneEntity * newEntity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
- bool autoCollide;
|
|
|
|
|
- if(lua_isboolean(L, 3)) {
|
|
|
|
|
- autoCollide = lua_toboolean(L, 3);
|
|
|
|
|
- } else {
|
|
|
|
|
- autoCollide = false;
|
|
|
|
|
- }
|
|
|
|
|
int type;
|
|
int type;
|
|
|
- if(lua_isnumber(L, 4)) {
|
|
|
|
|
- type = lua_tointeger(L, 4);
|
|
|
|
|
|
|
+ if(lua_isnumber(L, 3)) {
|
|
|
|
|
+ type = lua_tointeger(L, 3);
|
|
|
} else {
|
|
} else {
|
|
|
type = 0;
|
|
type = 0;
|
|
|
}
|
|
}
|
|
|
int group;
|
|
int group;
|
|
|
- if(lua_isnumber(L, 5)) {
|
|
|
|
|
- group = lua_tointeger(L, 5);
|
|
|
|
|
|
|
+ if(lua_isnumber(L, 4)) {
|
|
|
|
|
+ group = lua_tointeger(L, 4);
|
|
|
} else {
|
|
} else {
|
|
|
- group = 0;
|
|
|
|
|
|
|
+ group = 1;
|
|
|
}
|
|
}
|
|
|
- void *ptrRetVal = (void*)inst->addCollisionChild(newEntity, autoCollide, type, group);
|
|
|
|
|
|
|
+ void *ptrRetVal = (void*)inst->addCollisionChild(newEntity, type, group);
|
|
|
if(ptrRetVal == NULL) {
|
|
if(ptrRetVal == NULL) {
|
|
|
lua_pushnil(L);
|
|
lua_pushnil(L);
|
|
|
} else {
|
|
} else {
|
|
@@ -250,21 +160,19 @@ static int Physics3D_CollisionScene_trackCollision(lua_State *L) {
|
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
CollisionScene *inst = (CollisionScene*)lua_topointer(L, 1);
|
|
|
luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
SceneEntity * newEntity = (SceneEntity *)lua_topointer(L, 2);
|
|
SceneEntity * newEntity = (SceneEntity *)lua_topointer(L, 2);
|
|
|
- luaL_checktype(L, 3, LUA_TBOOLEAN);
|
|
|
|
|
- bool autoCollide = lua_toboolean(L, 3);
|
|
|
|
|
int type;
|
|
int type;
|
|
|
- if(lua_isnumber(L, 4)) {
|
|
|
|
|
- type = lua_tointeger(L, 4);
|
|
|
|
|
|
|
+ if(lua_isnumber(L, 3)) {
|
|
|
|
|
+ type = lua_tointeger(L, 3);
|
|
|
} else {
|
|
} else {
|
|
|
type = 0;
|
|
type = 0;
|
|
|
}
|
|
}
|
|
|
int group;
|
|
int group;
|
|
|
- if(lua_isnumber(L, 5)) {
|
|
|
|
|
- group = lua_tointeger(L, 5);
|
|
|
|
|
|
|
+ if(lua_isnumber(L, 4)) {
|
|
|
|
|
+ group = lua_tointeger(L, 4);
|
|
|
} else {
|
|
} else {
|
|
|
- group = 0;
|
|
|
|
|
|
|
+ group = 1;
|
|
|
}
|
|
}
|
|
|
- void *ptrRetVal = (void*)inst->trackCollision(newEntity, autoCollide, type, group);
|
|
|
|
|
|
|
+ void *ptrRetVal = (void*)inst->trackCollision(newEntity, type, group);
|
|
|
if(ptrRetVal == NULL) {
|
|
if(ptrRetVal == NULL) {
|
|
|
lua_pushnil(L);
|
|
lua_pushnil(L);
|
|
|
} else {
|
|
} else {
|
|
@@ -289,41 +197,6 @@ static int Physics3D_delete_CollisionScene(lua_State *L) {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_get_gravityEnabled(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- lua_pushboolean(L, inst->gravityEnabled);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_get_autoCollide(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- lua_pushboolean(L, inst->autoCollide);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_get_gravityVector(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- lua_pushlightuserdata(L, &inst->gravityVector);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_get_gVelocity(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- lua_pushlightuserdata(L, &inst->gVelocity);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_get_gravityStrength(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- lua_pushnumber(L, inst->gravityStrength);
|
|
|
|
|
- return 1;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
static int Physics3D_CollisionSceneEntity_get_lastPosition(lua_State *L) {
|
|
static int Physics3D_CollisionSceneEntity_get_lastPosition(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
@@ -338,30 +211,6 @@ static int Physics3D_CollisionSceneEntity_get_enabled(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_set_gravityEnabled(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- bool param = lua_toboolean(L, 2);
|
|
|
|
|
- inst->gravityEnabled = param;
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_set_autoCollide(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- bool param = lua_toboolean(L, 2);
|
|
|
|
|
- inst->autoCollide = param;
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_set_gravityStrength(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- Number param = lua_tonumber(L, 2);
|
|
|
|
|
- inst->gravityStrength = param;
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
static int Physics3D_CollisionSceneEntity_set_enabled(lua_State *L) {
|
|
static int Physics3D_CollisionSceneEntity_set_enabled(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
@@ -373,11 +222,9 @@ static int Physics3D_CollisionSceneEntity_set_enabled(lua_State *L) {
|
|
|
static int Physics3D_CollisionSceneEntity(lua_State *L) {
|
|
static int Physics3D_CollisionSceneEntity(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
SceneEntity * entity = (SceneEntity *)lua_topointer(L, 1);
|
|
SceneEntity * entity = (SceneEntity *)lua_topointer(L, 1);
|
|
|
- luaL_checktype(L, 2, LUA_TBOOLEAN);
|
|
|
|
|
- bool autoCollide = lua_toboolean(L, 2);
|
|
|
|
|
- luaL_checktype(L, 3, LUA_TNUMBER);
|
|
|
|
|
- int type = lua_tointeger(L, 3);
|
|
|
|
|
- CollisionSceneEntity *inst = new CollisionSceneEntity(entity, autoCollide, type);
|
|
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TNUMBER);
|
|
|
|
|
+ int type = lua_tointeger(L, 2);
|
|
|
|
|
+ CollisionSceneEntity *inst = new CollisionSceneEntity(entity, type);
|
|
|
lua_pushlightuserdata(L, (void*)inst);
|
|
lua_pushlightuserdata(L, (void*)inst);
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
@@ -394,18 +241,18 @@ static int Physics3D_CollisionSceneEntity_getSceneEntity(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_Update(lua_State *L) {
|
|
|
|
|
|
|
+static int Physics3D_CollisionSceneEntity_getType(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
- inst->Update();
|
|
|
|
|
- return 0;
|
|
|
|
|
|
|
+ lua_pushinteger(L, inst->getType());
|
|
|
|
|
+ return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_CollisionSceneEntity_getType(lua_State *L) {
|
|
|
|
|
|
|
+static int Physics3D_CollisionSceneEntity_Update(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
CollisionSceneEntity *inst = (CollisionSceneEntity*)lua_topointer(L, 1);
|
|
|
- lua_pushinteger(L, inst->getType());
|
|
|
|
|
- return 1;
|
|
|
|
|
|
|
+ inst->Update();
|
|
|
|
|
+ return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static int Physics3D_CollisionSceneEntity_getConvexShape(lua_State *L) {
|
|
static int Physics3D_CollisionSceneEntity_getConvexShape(lua_State *L) {
|
|
@@ -632,6 +479,13 @@ static int Physics3D_PhysicsSceneEntity(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static int Physics3D_PhysicsSceneEntity_Update(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
+ inst->Update();
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
static int Physics3D_PhysicsSceneEntity_getSceneEntity(lua_State *L) {
|
|
static int Physics3D_PhysicsSceneEntity_getSceneEntity(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
@@ -644,13 +498,6 @@ static int Physics3D_PhysicsSceneEntity_getSceneEntity(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_PhysicsSceneEntity_Update(lua_State *L) {
|
|
|
|
|
- luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
- PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
|
|
|
- inst->Update();
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
static int Physics3D_PhysicsSceneEntity_setFriction(lua_State *L) {
|
|
static int Physics3D_PhysicsSceneEntity_setFriction(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
PhysicsSceneEntity *inst = (PhysicsSceneEntity*)lua_topointer(L, 1);
|
|
@@ -688,6 +535,13 @@ static int Physics3D_PhysicsCharacter(lua_State *L) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_Update(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
|
|
+ inst->Update();
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
static int Physics3D_PhysicsCharacter_setWalkDirection(lua_State *L) {
|
|
static int Physics3D_PhysicsCharacter_setWalkDirection(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
@@ -704,13 +558,49 @@ static int Physics3D_PhysicsCharacter_jump(lua_State *L) {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_PhysicsCharacter_Update(lua_State *L) {
|
|
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_warpCharacter(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
- inst->Update();
|
|
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ Vector3 position = *(Vector3*)lua_topointer(L, 2);
|
|
|
|
|
+ inst->warpCharacter(position);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_setJumpSpeed(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TNUMBER);
|
|
|
|
|
+ Number jumpSpeed = lua_tonumber(L, 2);
|
|
|
|
|
+ inst->setJumpSpeed(jumpSpeed);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_setFallSpeed(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TNUMBER);
|
|
|
|
|
+ Number fallSpeed = lua_tonumber(L, 2);
|
|
|
|
|
+ inst->setFallSpeed(fallSpeed);
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_setMaxJumpHeight(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TNUMBER);
|
|
|
|
|
+ Number maxJumpHeight = lua_tonumber(L, 2);
|
|
|
|
|
+ inst->setMaxJumpHeight(maxJumpHeight);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+static int Physics3D_PhysicsCharacter_onGround(lua_State *L) {
|
|
|
|
|
+ luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
|
|
|
+ lua_pushboolean(L, inst->onGround());
|
|
|
|
|
+ return 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
static int Physics3D_delete_PhysicsCharacter(lua_State *L) {
|
|
static int Physics3D_delete_PhysicsCharacter(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
PhysicsCharacter *inst = (PhysicsCharacter*)lua_topointer(L, 1);
|
|
@@ -784,7 +674,7 @@ static int Physics3D_PhysicsVehicle_addWheel(lua_State *L) {
|
|
|
if(lua_isnumber(L, 13)) {
|
|
if(lua_isnumber(L, 13)) {
|
|
|
rollInfluence = lua_tonumber(L, 13);
|
|
rollInfluence = lua_tonumber(L, 13);
|
|
|
} else {
|
|
} else {
|
|
|
- rollInfluence = 0.05f;
|
|
|
|
|
|
|
+ rollInfluence = 0.5f;
|
|
|
}
|
|
}
|
|
|
inst->addWheel(entity, connection, direction, axle, suspentionRestLength, wheelRadius, isFrontWheel, suspensionStiffness, suspensionDamping, suspensionCompression, wheelFriction, rollInfluence);
|
|
inst->addWheel(entity, connection, direction, axle, suspentionRestLength, wheelRadius, isFrontWheel, suspensionStiffness, suspensionDamping, suspensionCompression, wheelFriction, rollInfluence);
|
|
|
return 0;
|
|
return 0;
|
|
@@ -823,10 +713,12 @@ static int Physics3D_PhysicsVehicle_setBrake(lua_State *L) {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int Physics3D_PhysicsVehicle_ResetVehicle(lua_State *L) {
|
|
|
|
|
|
|
+static int Physics3D_PhysicsVehicle_warpVehicle(lua_State *L) {
|
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
|
|
|
PhysicsVehicle *inst = (PhysicsVehicle*)lua_topointer(L, 1);
|
|
PhysicsVehicle *inst = (PhysicsVehicle*)lua_topointer(L, 1);
|
|
|
- inst->ResetVehicle();
|
|
|
|
|
|
|
+ luaL_checktype(L, 2, LUA_TLIGHTUSERDATA);
|
|
|
|
|
+ Vector3 position = *(Vector3*)lua_topointer(L, 2);
|
|
|
|
|
+ inst->warpVehicle(position);
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|