stairsplus: disallow overriding drawtype by default
This commit is contained in:
parent
ab4afd5fc8
commit
21a374b8dd
|
@ -86,6 +86,12 @@ These are for registering shapes of a node
|
||||||
* `align_style = "node" | "user" | "world"`
|
* `align_style = "node" | "user" | "world"`
|
||||||
Whether to override the align_style for the textures used to draw the shaped node. The default behavior
|
Whether to override the align_style for the textures used to draw the shaped node. The default behavior
|
||||||
is to use the value defined by the `stairsplus.default_align_style` setting, which defaults to `"user"`.
|
is to use the value defined by the `stairsplus.default_align_style` setting, which defaults to `"user"`.
|
||||||
|
* `allow_override_groups = true`
|
||||||
|
Whether to allow groups to be specified in the overrides (otherwise, they are ignored).
|
||||||
|
* `allow_override_drawtype = true`
|
||||||
|
Whether to allow a drawtype to be specified in the overrides (otherwise, it is ignored).
|
||||||
|
* `allow_override_paramtype2 = true`
|
||||||
|
Whether to allow a paramtype2 to be specified in the overrides (otherwise, it is ignored).
|
||||||
|
|
||||||
* `stairsplus.api.register_all(node, [overrides], [meta])`
|
* `stairsplus.api.register_all(node, [overrides], [meta])`
|
||||||
Register all registered shapes for a node. we do not recommend using this, due to the 32767 node limit.
|
Register all registered shapes for a node. we do not recommend using this, due to the 32767 node limit.
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
-- for registering variants of a specific node
|
-- for registering variants of a specific node
|
||||||
local api = stairsplus.api
|
local api = stairsplus.api
|
||||||
|
|
||||||
local table_equals = stairsplus.util.table_equals
|
|
||||||
local table_set_all = stairsplus.util.table_set_all
|
local table_set_all = stairsplus.util.table_set_all
|
||||||
local table_sort_keys = stairsplus.util.table_sort_keys
|
local table_sort_keys = stairsplus.util.table_sort_keys
|
||||||
|
|
||||||
|
@ -68,22 +67,26 @@ function api.format_name(node, shape)
|
||||||
end
|
end
|
||||||
|
|
||||||
function api.register_single(node, shape, overrides, meta)
|
function api.register_single(node, shape, overrides, meta)
|
||||||
stairsplus.log("info", "registering %s %s", shape, node)
|
|
||||||
meta = meta or {}
|
|
||||||
overrides = overrides or {}
|
|
||||||
|
|
||||||
if not minetest.registered_nodes[node] then
|
if not minetest.registered_nodes[node] then
|
||||||
error(("node %q is not defined"):format(node))
|
error(("node %q is not defined"):format(node))
|
||||||
end
|
end
|
||||||
|
|
||||||
local node_def = table.copy(minetest.registered_nodes[node])
|
|
||||||
check_node_validity(node_def, meta)
|
|
||||||
|
|
||||||
if shape ~= "micro_8" and not (api.nodes_by_shape.micro_8 or {})[node] then
|
if shape ~= "micro_8" and not (api.nodes_by_shape.micro_8 or {})[node] then
|
||||||
-- always make sure a microblock exists
|
-- always make sure a microblock exists
|
||||||
api.register_single(node, "micro_8", overrides, meta)
|
api.register_single(node, "micro_8", overrides, meta)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local shaped_name = api.format_name(node, shape)
|
||||||
|
|
||||||
|
stairsplus.log("info", "registering %s", shaped_name)
|
||||||
|
|
||||||
|
meta = meta or {}
|
||||||
|
overrides = table.copy(overrides or {})
|
||||||
|
|
||||||
|
local node_def = table.copy(minetest.registered_nodes[node])
|
||||||
|
|
||||||
|
check_node_validity(node_def, meta)
|
||||||
|
|
||||||
if (api.nodes_by_shape[shape] or {})[node] then
|
if (api.nodes_by_shape[shape] or {})[node] then
|
||||||
return -- already registered
|
return -- already registered
|
||||||
end
|
end
|
||||||
|
@ -152,11 +155,21 @@ function api.register_single(node, shape, overrides, meta)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not table_equals(overrides.groups, node_def.groups) then
|
if not meta.allow_override_groups and overrides.groups then
|
||||||
overrides = table.copy(overrides)
|
stairsplus.log("warning", "removing group overrides from %s", shaped_name)
|
||||||
overrides.groups = nil
|
overrides.groups = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not meta.allow_override_drawtype and overrides.drawtype then
|
||||||
|
stairsplus.log("warning", "removing drawtype override %s from %s", overrides.drawtype, shaped_name)
|
||||||
|
overrides.drawtype = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if not meta.allow_override_paramtype2 and overrides.paramtype2 then
|
||||||
|
stairsplus.log("warning", "removing paramtype2 override %s from %s", overrides.paramtype2, shaped_name)
|
||||||
|
overrides.paramtype2 = nil
|
||||||
|
end
|
||||||
|
|
||||||
table_set_all(def, overrides)
|
table_set_all(def, overrides)
|
||||||
|
|
||||||
-- set backface_culling and align_style
|
-- set backface_culling and align_style
|
||||||
|
@ -191,12 +204,6 @@ function api.register_single(node, shape, overrides, meta)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- register node
|
-- register node
|
||||||
local shaped_name = api.format_name(node, shape)
|
|
||||||
for k, v in pairs(def.groups) do
|
|
||||||
if type(v) ~= "number" then
|
|
||||||
error(("%s %s group:%s = %s"):format(node, shape, k, v))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
minetest.register_node(":" .. shaped_name, def)
|
minetest.register_node(":" .. shaped_name, def)
|
||||||
|
|
||||||
-- alias old name formats
|
-- alias old name formats
|
||||||
|
|
Loading…
Reference in New Issue