Automatically parse solid groups
This commit is contained in:
parent
c6223e5b3d
commit
3d7502f666
2
API.md
2
API.md
|
@ -49,6 +49,8 @@ This section explains all the used groups in this subgame.
|
|||
### Declarative groups
|
||||
These groups are used mostly for informational purposes
|
||||
|
||||
* `solid=1`: Solid block (automatically assigned)
|
||||
* `not_solid=1`: Block is sold (only assign this group for nodes which are automatically detected as “solid” in error
|
||||
* `water=1`: Water
|
||||
* `lava=1`: Lava
|
||||
* `liquid`: Block is a liquid
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
-- Automatically assign the “solid” group for solid nodes
|
||||
local overwrite = function()
|
||||
for nname, ndef in pairs(minetest.registered_nodes) do
|
||||
if (ndef.walkable == nil or ndef.walkable == true)
|
||||
and (ndef.collision_box == nil or ndef.collision_box.type == "regular")
|
||||
and (ndef.node_box == nil or ndef.node_box.type == "regular")
|
||||
and (ndef.groups.falling_node == 0 or ndef.groups.falling_node == nil)
|
||||
and (ndef.groups.not_solid == 0 or ndef.groups.not_solid == nil) then
|
||||
local groups = table.copy(ndef.groups)
|
||||
groups.solid = 1
|
||||
minetest.override_item(nname, {
|
||||
groups = groups
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
overwrite()
|
|
@ -0,0 +1 @@
|
|||
name = mcl_autogroup
|
Loading…
Reference in New Issue