forked from Mirrorlandia_minetest/minetest
Fix rotation for falling mesh degrotate nodes (#11159)
This commit is contained in:
parent
734fb2c811
commit
228f1c6770
@ -205,6 +205,14 @@ core.register_entity(":__builtin:falling_node", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
self.object:set_rotation({x=pitch, y=yaw, z=roll})
|
self.object:set_rotation({x=pitch, y=yaw, z=roll})
|
||||||
|
elseif (def.drawtype == "mesh" and def.paramtype2 == "degrotate") then
|
||||||
|
local p2 = (node.param2 - (def.place_param2 or 0)) % 240
|
||||||
|
local yaw = (p2 / 240) * (math.pi * 2)
|
||||||
|
self.object:set_yaw(yaw)
|
||||||
|
elseif (def.drawtype == "mesh" and def.paramtype2 == "colordegrotate") then
|
||||||
|
local p2 = (node.param2 % 32 - (def.place_param2 or 0) % 32) % 24
|
||||||
|
local yaw = (p2 / 24) * (math.pi * 2)
|
||||||
|
self.object:set_yaw(yaw)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
@ -131,10 +131,11 @@ local function place_nodes(param)
|
|||||||
p2_max = 63
|
p2_max = 63
|
||||||
elseif def.paramtype2 == "leveled" then
|
elseif def.paramtype2 == "leveled" then
|
||||||
p2_max = 127
|
p2_max = 127
|
||||||
elseif def.paramtype2 == "degrotate" and def.drawtype == "plantlike" then
|
elseif def.paramtype2 == "degrotate" and (def.drawtype == "plantlike" or def.drawtype == "mesh") then
|
||||||
p2_max = 179
|
p2_max = 239
|
||||||
elseif def.paramtype2 == "colorfacedir" or
|
elseif def.paramtype2 == "colorfacedir" or
|
||||||
def.paramtype2 == "colorwallmounted" or
|
def.paramtype2 == "colorwallmounted" or
|
||||||
|
def.paramtype2 == "colordegrotate" or
|
||||||
def.paramtype2 == "color" then
|
def.paramtype2 == "color" then
|
||||||
p2_max = 255
|
p2_max = 255
|
||||||
end
|
end
|
||||||
@ -143,7 +144,8 @@ local function place_nodes(param)
|
|||||||
-- Skip undefined param2 values
|
-- Skip undefined param2 values
|
||||||
if not ((def.paramtype2 == "meshoptions" and p2 % 8 > 4) or
|
if not ((def.paramtype2 == "meshoptions" and p2 % 8 > 4) or
|
||||||
(def.paramtype2 == "colorwallmounted" and p2 % 8 > 5) or
|
(def.paramtype2 == "colorwallmounted" and p2 % 8 > 5) or
|
||||||
(def.paramtype2 == "colorfacedir" and p2 % 32 > 23)) then
|
((def.paramtype2 == "colorfacedir" or def.paramtype2 == "colordegrotate")
|
||||||
|
and p2 % 32 > 23)) then
|
||||||
|
|
||||||
minetest.set_node(pos, { name = itemstring, param2 = p2 })
|
minetest.set_node(pos, { name = itemstring, param2 = p2 })
|
||||||
nodes_placed = nodes_placed + 1
|
nodes_placed = nodes_placed + 1
|
||||||
|
@ -254,11 +254,11 @@ minetest.register_node("testnodes:mesh_degrotate", {
|
|||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "degrotate",
|
paramtype2 = "degrotate",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_ocorner.obj",
|
||||||
tiles = { "testnodes_mesh_stripes2.png" },
|
tiles = { "testnodes_mesh_stripes2.png" },
|
||||||
|
|
||||||
on_rightclick = rotate_on_rightclick,
|
on_rightclick = rotate_on_rightclick,
|
||||||
place_param2 = 7,
|
place_param2 = 10, -- 15°
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
@ -266,14 +266,15 @@ minetest.register_node("testnodes:mesh_degrotate", {
|
|||||||
minetest.register_node("testnodes:mesh_colordegrotate", {
|
minetest.register_node("testnodes:mesh_colordegrotate", {
|
||||||
description = S("Color Degrotate Mesh Drawtype Test Node"),
|
description = S("Color Degrotate Mesh Drawtype Test Node"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
|
paramtype = "light",
|
||||||
paramtype2 = "colordegrotate",
|
paramtype2 = "colordegrotate",
|
||||||
palette = "testnodes_palette_facedir.png",
|
palette = "testnodes_palette_facedir.png",
|
||||||
mesh = "testnodes_pyramid.obj",
|
mesh = "testnodes_ocorner.obj",
|
||||||
tiles = { "testnodes_mesh_stripes2.png" },
|
tiles = { "testnodes_mesh_stripes3.png" },
|
||||||
|
|
||||||
on_rightclick = rotate_on_rightclick,
|
on_rightclick = rotate_on_rightclick,
|
||||||
-- color index 1, 7 steps rotated
|
-- color index 1, 1 step (=15°) rotated
|
||||||
place_param2 = 1 * 2^5 + 7,
|
place_param2 = 1 * 2^5 + 1,
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user