mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Fix covered node rendering, update doc. Fix default inventory image for covered/sunken nodes.
This commit is contained in:
parent
a91e532b29
commit
d14f2f4bdd
4 changed files with 20 additions and 87 deletions
|
@ -150,14 +150,6 @@ local function preprocess_node(nodedef)
|
||||||
if nodedef.liquidtype == "flowing" then
|
if nodedef.liquidtype == "flowing" then
|
||||||
nodedef.paramtype2 = "flowingliquid"
|
nodedef.paramtype2 = "flowingliquid"
|
||||||
end
|
end
|
||||||
|
|
||||||
if itemdef.type == "node" and (itemdef.drawtype == "sunken" or itemdef.drawtype == "covered") then
|
|
||||||
if not core.registered_nodes[itemdef.inner_node] then
|
|
||||||
error("Unable to register item " .. name .. ": Inner node not registered: " .. itemdef.inner_node)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
itemdef.inner_node = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function preprocess_craft(itemdef)
|
local function preprocess_craft(itemdef)
|
||||||
|
|
|
@ -1611,7 +1611,7 @@ There are a bunch of different looking node types.
|
||||||
* `covered`
|
* `covered`
|
||||||
* Can be used to draw covered nodes like historical vases, sculptures, etc covered by sand.
|
* Can be used to draw covered nodes like historical vases, sculptures, etc covered by sand.
|
||||||
* It first renders the node defined in metadata fields `inner_node` and `inner_param2`
|
* It first renders the node defined in metadata fields `inner_node` and `inner_param2`
|
||||||
and after it normal/leveled node around it.
|
and after it leveled nodebox node around it.
|
||||||
* By changing the level of the node, the covered node can be fully or partially covered/uncovered.
|
* By changing the level of the node, the covered node can be fully or partially covered/uncovered.
|
||||||
|
|
||||||
`*_optional` drawtypes need less rendering time if deactivated
|
`*_optional` drawtypes need less rendering time if deactivated
|
||||||
|
|
|
@ -1,31 +1,8 @@
|
||||||
local S = minetest.get_translator("testnodes")
|
local S = minetest.get_translator("testnodes")
|
||||||
|
|
||||||
-- Sunken node example.
|
-- Sunken node example.
|
||||||
minetest.register_node("testnodes:sunken_torchlike", {
|
minetest.register_node("testnodes:sunken_ls_r5", {
|
||||||
description = "Sunken Torchlike Test Node in Liquid Source Range 5",
|
description = "Sunken Test Node in Liquid Source Range 5",
|
||||||
drawtype = "sunken",
|
|
||||||
tiles = {"testnodes_liquidsource_r5.png"},
|
|
||||||
special_tiles = {
|
|
||||||
{name = "testnodes_liquidsource_r5.png", backface_culling = false},
|
|
||||||
{name = "testnodes_liquidsource_r5.png", backface_culling = true},
|
|
||||||
},
|
|
||||||
use_texture_alpha = "blend",
|
|
||||||
paramtype = "light",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
liquidtype = "source",
|
|
||||||
liquid_alternative_flowing = "testnodes:rliquid_flowing_5",
|
|
||||||
liquid_alternative_source = "testnodes:rliquid_5",
|
|
||||||
--liquid_alternative_flowing = "testnodes:sunken_torchlike",
|
|
||||||
--liquid_alternative_source = "testnodes:sunken_torchlike",
|
|
||||||
liquid_range = 5,
|
|
||||||
|
|
||||||
inner_node = "testnodes:torchlike",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:sunken_nodebox", {
|
|
||||||
description = "Sunken Nodebox Test Node in Liquid Source Range 5",
|
|
||||||
drawtype = "sunken",
|
drawtype = "sunken",
|
||||||
tiles = {"testnodes_liquidsource_r5.png"},
|
tiles = {"testnodes_liquidsource_r5.png"},
|
||||||
special_tiles = {
|
special_tiles = {
|
||||||
|
@ -44,68 +21,32 @@ minetest.register_node("testnodes:sunken_nodebox", {
|
||||||
--liquid_alternative_source = "testnodes:sunken_nodebox",
|
--liquid_alternative_source = "testnodes:sunken_nodebox",
|
||||||
liquid_range = 5,
|
liquid_range = 5,
|
||||||
|
|
||||||
inner_node = "testnodes:nodebox_fixed",
|
on_construct = function(pos)
|
||||||
})
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("inner_node", "testnodes:mesh")
|
||||||
minetest.register_node("testnodes:sunken_mesh", {
|
end,
|
||||||
description = "Sunken Mesh Test Node in Liquid Source Range 5",
|
|
||||||
drawtype = "sunken",
|
|
||||||
tiles = {"testnodes_liquidsource_r5.png"},
|
|
||||||
special_tiles = {
|
|
||||||
{name = "testnodes_liquidsource_r5.png", backface_culling = false},
|
|
||||||
{name = "testnodes_liquidsource_r5.png", backface_culling = true},
|
|
||||||
},
|
|
||||||
use_texture_alpha = "blend",
|
|
||||||
paramtype = "light",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
liquidtype = "source",
|
|
||||||
liquid_alternative_flowing = "testnodes:rliquid_flowing_5",
|
|
||||||
liquid_alternative_source = "testnodes:rliquid_5",
|
|
||||||
--liquid_alternative_flowing = "testnodes:sunken_nodebox",
|
|
||||||
--liquid_alternative_source = "testnodes:sunken_nodebox",
|
|
||||||
liquid_range = 5,
|
|
||||||
|
|
||||||
inner_node = "testnodes:mesh",
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
-- Covered node example.
|
-- Covered node example.
|
||||||
-- An simple example nodebox with one centered box
|
minetest.register_node("testnodes:covered_nodebox", {
|
||||||
minetest.register_node("testnodes:covered_torchlike_node", {
|
description = S("Covered Test Node in Nodebox Test Node").."\n"..
|
||||||
description = S("Covered Tochlike Test Node").."\n"..
|
|
||||||
S("Torchlike node inside"),
|
|
||||||
tiles = { "testnodes_glasslike.png" },
|
|
||||||
drawtype = "covered",
|
|
||||||
paramtype = "light",
|
|
||||||
|
|
||||||
inner_node = "testnodes:torchlike",
|
|
||||||
|
|
||||||
groups = {dig_immediate=3},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:covered_nodebox_node", {
|
|
||||||
description = S("Covered Fixed Nodebox Test Node").."\n"..
|
|
||||||
S("Torchlike node inside"),
|
|
||||||
tiles = { "testnodes_glasslike.png" },
|
|
||||||
drawtype = "covered",
|
|
||||||
paramtype = "light",
|
|
||||||
|
|
||||||
inner_node = "testnodes:nodebox_fixed",
|
|
||||||
|
|
||||||
groups = {dig_immediate=3},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("testnodes:covered_mesh_node", {
|
|
||||||
description = S("Covered Fixed Mesh Test Node").."\n"..
|
|
||||||
S("Torchlike node inside"),
|
S("Torchlike node inside"),
|
||||||
tiles = { "testnodes_nodebox.png" },
|
tiles = { "testnodes_nodebox.png" },
|
||||||
drawtype = "covered",
|
drawtype = "covered",
|
||||||
|
paramtype2 = "leveled",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
|
||||||
inner_node = "testnodes:mesh",
|
node_box = {
|
||||||
|
type = "leveled",
|
||||||
|
fixed = {-0.5, 0.0, -0.5, 0.5, -0.499, 0.5},
|
||||||
|
},
|
||||||
|
|
||||||
groups = {dig_immediate=3},
|
groups = {dig_immediate=3},
|
||||||
|
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("inner_node", "testnodes:mesh")
|
||||||
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1820,7 +1820,7 @@ void MapblockMeshGenerator::drawCoveredNode()
|
||||||
cur_node.f = store_f;
|
cur_node.f = store_f;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawSolidNode();
|
drawNodeboxNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
// also called when the drawtype is known but should have been pre-converted
|
// also called when the drawtype is known but should have been pre-converted
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue