#49 Directional Signs off axis rotation?

已關閉
daniel14 年之前創建 · 5 條評論
daniel1 commented 4 年之前

So apparently degrotate supports meshes for plantlike objects... and found a post where you mentioned making a tool which asked for param2 value....

was wondering what it would take to make directional signs be rotated via a dialog...? so you place the sign and look in the direction you want it to point... F5... get the degree and then type that into the sign to reorient it

The only thing is the sign would have to be plantlike

So apparently degrotate supports meshes for plantlike objects... and found a post where you mentioned making a tool which asked for param2 value.... was wondering what it would take to make directional signs be rotated via a dialog...? so you place the sign and look in the direction you want it to point... F5... get the degree and then type that into the sign to reorient it The only thing is the sign would have to be plantlike
daniel1 commented 4 年之前
發佈者

So i tried it...

after_place_node = function(pos, placer)

local meta = minetest.get_meta(pos)

meta:set_string('owner',placer:get_player_name())

local yaw = placer:get_look_horizontal()

local param = math.floor(yaw * 90 / math.pi + 0.5)

local n = minetest.get_node(pos)

n.param2 = param

minetest.set_node(pos, n)

end,

But this only works when mesh is changed to plantlike....

however there is a train mod which uses mesh & degrotate together...

So i tried it... after_place_node = function(pos, placer) local meta = minetest.get_meta(pos) meta:set_string('owner',placer:get_player_name()) local yaw = placer:get_look_horizontal() local param = math.floor(yaw * 90 / math.pi + 0.5) local n = minetest.get_node(pos) n.param2 = param minetest.set_node(pos, n) end, But this only works when mesh is changed to plantlike.... however there is a train mod which uses mesh & degrotate together...
NathanS21 commented 4 年之前
所有者

I don't think it's possible to use meshes with degrotate, the train mod might be uses entities to display the items that are rotated.

I don't think it's possible to use meshes with degrotate, the train mod might be uses entities to display the items that are rotated.
daniel1 commented 4 年之前
發佈者
local function place_degrotate(pos, placer, itemstack, pointed_thing)
local yaw = placer:get_look_horizontal()
local param = math.floor(yaw * 90 / math.pi + 0.5)
local n = minetest.get_node(pos)
n.param2 = param
minetest.set_node(pos, n)
 end

 minetest.register_node("advtrains_signals_ks:mast", {
drawtype = "mesh",
paramtype="light",
paramtype2="degrotate",
walkable = false,
selection_box = {
    type = "fixed",
    fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
},
mesh = "advtrains_signals_ks_mast.obj",
tiles = {"advtrains_signals_ks_mast.png"},
description="Ks Signal Mast",
sunlight_propagates=true,
groups = {
    cracky=3,
    not_blocking_trains=1,
    --save_in_at_nodedb=2,
},
after_place_node = place_degrotate,
})
local function place_degrotate(pos, placer, itemstack, pointed_thing) local yaw = placer:get_look_horizontal() local param = math.floor(yaw * 90 / math.pi + 0.5) local n = minetest.get_node(pos) n.param2 = param minetest.set_node(pos, n) end minetest.register_node("advtrains_signals_ks:mast", { drawtype = "mesh", paramtype="light", paramtype2="degrotate", walkable = false, selection_box = { type = "fixed", fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, }, mesh = "advtrains_signals_ks_mast.obj", tiles = {"advtrains_signals_ks_mast.png"}, description="Ks Signal Mast", sunlight_propagates=true, groups = { cracky=3, not_blocking_trains=1, --save_in_at_nodedb=2, }, after_place_node = place_degrotate, })
daniel1 commented 4 年之前
發佈者
https://github.com/minetest-mirrors/advtrains/blob/master/advtrains_signals_ks/init_degrotate_nodes.lua
NathanS21 commented 4 年之前
所有者

``*paramtype2 = "degrotate"`

* Only valid for "plantlike" drawtype. The rotation of the node is stored in
  `param2`.
* Values range 0 - 179. The value stored in `param2` is multiplied by two to
  get the actual rotation in degrees of the node.```

The code you linked doesn't work, it runs just fine, but the node doesn't get rotated. The Param2 value is set correctly, but the mesh doesn't get rotated.

```* `paramtype2 = "degrotate"` * Only valid for "plantlike" drawtype. The rotation of the node is stored in `param2`. * Values range 0 - 179. The value stored in `param2` is multiplied by two to get the actual rotation in degrees of the node.``` The code you linked doesn't work, it runs just fine, but the node doesn't get rotated. The Param2 value is set correctly, but the mesh doesn't get rotated.
Sign in to join this conversation.
未選擇里程碑
未指派成員
2 參與者
正在加載...
取消
保存
尚未有任何內容