Allow extended rotation in editor

master
Wuzzy 2022-02-10 20:25:52 +01:00
parent 856741ec3a
commit 99650cec51
2 changed files with 15 additions and 3 deletions

View File

@ -419,7 +419,7 @@ register_element("emitter", {
minetest.swap_node(pos, {name=nname, param2=node.param2})
full_update()
end,
groups = { laser_block = 1 },
groups = { rotatable = 2, laser_block = 1 },
sounds = lzr_sounds.node_sound_wood_defaults(),
}, { allow_take = true, keep_state_on_take = true })
@ -459,7 +459,7 @@ register_element("detector", {
"lzr_laser_detector_on_front.png",
},
light_source_on = 5,
groups = { laser_block = 1 },
groups = { rotatable = 2, laser_block = 1 },
sounds = lzr_sounds.node_sound_wood_defaults(),
}, { allow_take = true, is_detector = true })

View File

@ -157,11 +157,23 @@ function screwdriver.use(itemstack, player, pointed_thing, is_right_click)
local def = minetest.registered_nodes[node.name]
if not def then return end -- probably unnessesary
local rotatable = minetest.get_item_group(node.name, "rotatable")
-- Node MUST have 'rotatable' group
-- TODO: Allow rotation in level editing/admin mode
if not def.groups.rotatable then
if rotatable <= 0 then
return itemstack
end
-- rotatable=2: rotatable if takable or if in editor mode
if rotatable == 2 then
if not (def.groups.takable or lzr_gamestate.get_state() == lzr_gamestate.EDITOR) then
return itemstack
end
-- rotatable=3: rotatable in editor mode only
elseif rotatable == 3 then
if lzr_gamestate.get_state() ~= lzr_gamestate.EDITOR then
return itemstack
end
end
local on_rotate = def.on_rotate
if on_rotate == false then return end