lua_bindings, client/api: clear_voxel_geometry, clear_voxel_physics_boxes
This commit is contained in:
parent
1728d15b43
commit
d19ec84717
@ -134,6 +134,16 @@ function buildat.safe.set_voxel_lod_geometry(lod, safe_node, safe_buffer)
|
|||||||
__buildat_set_voxel_lod_geometry(lod, node, buffer)
|
__buildat_set_voxel_lod_geometry(lod, node, buffer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function buildat.safe.clear_voxel_geometry(safe_node)
|
||||||
|
if not getmetatable(safe_node) or
|
||||||
|
getmetatable(safe_node).type_name ~= "Node" then
|
||||||
|
error("node is not a sandboxed Node instance")
|
||||||
|
end
|
||||||
|
node = getmetatable(safe_node).unsafe
|
||||||
|
|
||||||
|
__buildat_clear_voxel_geometry(node)
|
||||||
|
end
|
||||||
|
|
||||||
function buildat.safe.set_voxel_physics_boxes(safe_node, safe_buffer)
|
function buildat.safe.set_voxel_physics_boxes(safe_node, safe_buffer)
|
||||||
if not getmetatable(safe_node) or
|
if not getmetatable(safe_node) or
|
||||||
getmetatable(safe_node).type_name ~= "Node" then
|
getmetatable(safe_node).type_name ~= "Node" then
|
||||||
@ -154,6 +164,16 @@ function buildat.safe.set_voxel_physics_boxes(safe_node, safe_buffer)
|
|||||||
__buildat_set_voxel_physics_boxes(node, buffer)
|
__buildat_set_voxel_physics_boxes(node, buffer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function buildat.safe.clear_voxel_physics_boxes(safe_node)
|
||||||
|
if not getmetatable(safe_node) or
|
||||||
|
getmetatable(safe_node).type_name ~= "Node" then
|
||||||
|
error("node is not a sandboxed Node instance")
|
||||||
|
end
|
||||||
|
node = getmetatable(safe_node).unsafe
|
||||||
|
|
||||||
|
__buildat_clear_voxel_physics_boxes(node)
|
||||||
|
end
|
||||||
|
|
||||||
local Vector3_prototype = {
|
local Vector3_prototype = {
|
||||||
x = 0,
|
x = 0,
|
||||||
y = 0,
|
y = 0,
|
||||||
|
@ -209,6 +209,24 @@ static int l_set_voxel_lod_geometry(lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clear_voxel_geometry(node: Node)
|
||||||
|
static int l_clear_voxel_geometry(lua_State *L)
|
||||||
|
{
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
|
||||||
|
GET_TOLUA_STUFF(node, 1, Node);
|
||||||
|
|
||||||
|
log_d(MODULE, "clear_voxel_geometry(): node=%p", node);
|
||||||
|
|
||||||
|
CustomGeometry *cg = node->GetComponent<CustomGeometry>();
|
||||||
|
if(cg)
|
||||||
|
node->RemoveComponent(cg);
|
||||||
|
//cg->Clear();
|
||||||
|
//cg->Commit();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// set_voxel_physics_boxes(node, buffer: VectorBuffer)
|
// set_voxel_physics_boxes(node, buffer: VectorBuffer)
|
||||||
static int l_set_voxel_physics_boxes(lua_State *L)
|
static int l_set_voxel_physics_boxes(lua_State *L)
|
||||||
{
|
{
|
||||||
@ -240,6 +258,27 @@ static int l_set_voxel_physics_boxes(lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clear_voxel_physics_boxes(node)
|
||||||
|
static int l_clear_voxel_physics_boxes(lua_State *L)
|
||||||
|
{
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
|
||||||
|
GET_TOLUA_STUFF(node, 1, Node);
|
||||||
|
|
||||||
|
log_d(MODULE, "clear_voxel_physics_boxes(): node=%p", node);
|
||||||
|
|
||||||
|
RigidBody *body = node->GetComponent<RigidBody>();
|
||||||
|
if(body)
|
||||||
|
node->RemoveComponent(body);
|
||||||
|
|
||||||
|
PODVector<CollisionShape*> previous_shapes;
|
||||||
|
node->GetComponents<CollisionShape>(previous_shapes);
|
||||||
|
for(size_t i = 0; i < previous_shapes.Size(); i++)
|
||||||
|
node->RemoveComponent(previous_shapes[i]);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void init_voxel(lua_State *L)
|
void init_voxel(lua_State *L)
|
||||||
{
|
{
|
||||||
#define DEF_BUILDAT_FUNC(name){ \
|
#define DEF_BUILDAT_FUNC(name){ \
|
||||||
@ -250,7 +289,9 @@ void init_voxel(lua_State *L)
|
|||||||
DEF_BUILDAT_FUNC(set_8bit_voxel_geometry);
|
DEF_BUILDAT_FUNC(set_8bit_voxel_geometry);
|
||||||
DEF_BUILDAT_FUNC(set_voxel_geometry);
|
DEF_BUILDAT_FUNC(set_voxel_geometry);
|
||||||
DEF_BUILDAT_FUNC(set_voxel_lod_geometry);
|
DEF_BUILDAT_FUNC(set_voxel_lod_geometry);
|
||||||
|
DEF_BUILDAT_FUNC(clear_voxel_geometry);
|
||||||
DEF_BUILDAT_FUNC(set_voxel_physics_boxes);
|
DEF_BUILDAT_FUNC(set_voxel_physics_boxes);
|
||||||
|
DEF_BUILDAT_FUNC(clear_voxel_physics_boxes);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace lua_bindingss
|
} // namespace lua_bindingss
|
||||||
|
Loading…
x
Reference in New Issue
Block a user