#49 Directional Signs off axis rotation?

Fermé
Créé il y a 4 ans par daniel1 · 5 commentaires
daniel1 a commenté il y a 4 ans

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 a commenté il y a 4 ans
Publier

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 a commenté il y a 4 ans
Propriétaire

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 a commenté il y a 4 ans
Publier
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 a commenté il y a 4 ans
Publier
https://github.com/minetest-mirrors/advtrains/blob/master/advtrains_signals_ks/init_degrotate_nodes.lua
NathanS21 a commenté il y a 4 ans
Propriétaire

``*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.
Connectez-vous pour rejoindre cette conversation.
Aucun jalon
Pas d'assignataire
2 Participants
Chargement…
Annuler
Enregistrer
Il n'existe pas encore de contenu.