How to?
how to make a node become another one on_rightclick?
FOSS gamedev and creative worlds
https://forums.minetest.org/
local function on_rightclick(pos, node, player, pointed_thing)
minetest.swap_node(pos,{name="new:node"})
end
minetest.register_node("default:stone", {
description = "Stone",
tiles = {"default_stone.png"},
is_ground_content = true,
groups = {cracky=3, stone=1},
drop = 'default:cobble',
legacy_mineral = true,
on_rightclick = on_rightclick,
})
local function on_rightclick(pos, node, player, pointed_thing)
if node.name == "mod:node_1" then
node.name = "mod:node_2"
else if node.name == "mod:node_2" then
node.name = "mod:node_1"
end
minetest.swap_node(pos,node)
end
minetest.register_node("mod:node_1", {
description = "Stone",
tiles = {"default_stone.png"},
is_ground_content = true,
groups = {cracky=3, stone=1},
drop = 'default:cobble',
legacy_mineral = true,
on_rightclick = on_rightclick,
})
minetest.register_node("mod:node_2", {
description = "Stone 2",
tiles = {"default_stone.png"},
is_ground_content = true,
groups = {cracky=3, stone=1},
drop = 'default:cobble',
legacy_mineral = true,
on_rightclick = on_rightclick,
})
local function on_rightclick(pos, node, player, pointed_thing)
if node.name == name then
minetest.swap_node(pos,{name="doors:door"})
elseif not node.name == name then
minetest.swap_node(pos,{name="doors:door_opened"})
end
endlocal function on_rightclick(pos, node, player, pointed_thing)
if node.name == "doors:door" then
node.name = "doors:door_opened"
else if node.name == "doors:door_opened" then
node.name = "doors:door"
end
minetest.swap_node(pos,node)
end
end
minetest.register_node("doors:door", {
description = "Door",
tiles = {
"default_wood.png",
},
drawtype = "mesh",
paramtype = "light",
mesh = "door.obj",
visual_scale = 0.8,
is_ground_content = false,
groups = {snappy = 3},
sounds = default.node_sound_wood_defaults(),
on_rightclick = on_rightclick,
})
minetest.register_node("doors:door_opened", {
description = "Door Opened",
tiles = {
"default_wood.png",
},
drawtype = "mesh",
paramtype = "light",
mesh = "door_opened.obj",
visual_scale = 0.8,
is_ground_content = false,
groups = {snappy = 3, not_in_creative_inventory = 1},
sounds = default.node_sound_wood_defaults(),
on_rightclick = on_rightclick,
})minetest.register_node("doors:door", {
description = "Door",
tiles = {
"default_wood.png",
},
drawtype = "mesh",
paramtype = "light",
mesh = "door.obj",
visual_scale = 0.8,
is_ground_content = false,
groups = {snappy = 3},
sounds = default.node_sound_wood_defaults(),
on_rightclick = function(pos, node, player, pointed_thing)
minetest.swap_node(pos, {name = "doors:door_opened"})
end,
})
minetest.register_node("doors:door_opened", {
description = "Door Opened",
tiles = {
"default_wood.png",
},
drawtype = "mesh",
paramtype = "light",
mesh = "door_opened.obj",
visual_scale = 0.8,
is_ground_content = false,
groups = {snappy = 3, not_in_creative_inventory = 1},
sounds = default.node_sound_wood_defaults(),
on_rightclick = function(pos, node, player, pointed_thing)
minetest.swap_node(pos, {name = "doors:door"})
end,
})