#49 Directional Signs off axis rotation?

Fechado
4 anos atrás foi aberto por daniel1 · 5 comentários

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 comentado 4 anos atrás
Autor

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 comentado 4 anos atrás
Proprietário

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 comentado 4 anos atrás
Autor
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 comentado 4 anos atrás
Autor
https://github.com/minetest-mirrors/advtrains/blob/master/advtrains_signals_ks/init_degrotate_nodes.lua
NathanS21 comentado 4 anos atrás
Proprietário

``*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.
Faça login para participar desta conversação.
Sem milestone
Não atribuída
2 participantes
Carregando...
Cancelar
Salvar
Ainda não há conteúdo.