Texture orientation using on_place = minetest.rotate_node

dvere
New member
 
Posts: 4
Joined: Sun Sep 29, 2013 10:53
GitHub: dvere
IRC: dvere
In-game: dvere

Texture orientation using on_place = minetest.rotate_node

by dvere » Sun Nov 02, 2014 11:46

I'm not sure if this is expected behaviour or if I am doing something wrong.

I have made a simple mod to add Scrabble-like nodebox tiles for my son to play with.

Rotation when placed on the ground is correct but when placed on a vertical surface the texture is always rotated 90 degrees clockwise from the placer's perspective.


Image

I expected the texture when placed on vertical surfaces would, by default, be "upright".

The texture for the tile in the screenshot (tile_bottom.png and tile_sides.png are the same square background without the letter) and a simplified version of the node definition below.

I couldn't see an obvious (to me) reason for why this happens in builtin/common/misc_helpers.lua but I most likley don't know what I'm looking for.

Image

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_node('tile:tile_A', {
   description = ("tile A" ),
   drawtype = "nodebox",
   node_box = {
      type = "fixed",
      fixed = { -0.48, -0.5, -0.48, 0.48, -0.28, 0.48 }
   },
   tiles = {
      'tile_A.png',
      'tile_bottom.png',
      'tile_sides.png',
      'tile_sides.png',
      'tile_sides.png',
      'tile_sides.png'
   },
   sunlight_propagates = true,
   paramtype = "light",
   paramtype2 = "facedir",
   walkable = true,
   groups = { snappy = 3 },
   sounds = default.node_sound_wood_defaults(),
   on_place = minetest.rotate_node
})
 

User avatar
Don
Member
 
Posts: 1641
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Texture orientation using on_place = minetest.rotate_nod

by Don » Sun Nov 02, 2014 20:50

I am not sure what is wrong but I do hope you add the mod to the forum once it is fixed.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here
 

dvere
New member
 
Posts: 4
Joined: Sun Sep 29, 2013 10:53
GitHub: dvere
IRC: dvere
In-game: dvere

Re: Texture orientation using on_place = minetest.rotate_nod

by dvere » Thu Nov 06, 2014 23:14

The below changes to dirs1 and dirs2 in builtin/common/misc_helpers.lua (lines 323 &324) fixes both this and the texture orientation being off by 180 degrees when placing "on the ceiling".

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
    local dirs1 = {8, 17, 6, 15}
    local dirs2 = {22, 21, 20, 23}
 

User avatar
Casimir
Member
 
Posts: 1101
Joined: Fri Aug 03, 2012 16:59

Re: Texture orientation using on_place = minetest.rotate_nod

by Casimir » Thu Nov 06, 2014 23:55

That seems to be a bigger problem. With signlike/wallmounted it is even more distorted that with nodebox.
Without your fix:
http://screenshot.ru/upload/images/2014 ... 4d8148.png
With your fix it gets better:
http://screenshot.ru/upload/images/2014 ... 5e7f71.png
 

User avatar
Don
Member
 
Posts: 1641
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Texture orientation using on_place = minetest.rotate_nod

by Don » Fri Nov 07, 2014 00:14

You could do an on_place replace node and create another node with the rotated image. It would work as a temporary solution til you get a better answer. Not a good solution but better then nothing.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here
 

dvere
New member
 
Posts: 4
Joined: Sun Sep 29, 2013 10:53
GitHub: dvere
IRC: dvere
In-game: dvere

Re: Texture orientation using on_place = minetest.rotate_nod

by dvere » Fri Nov 07, 2014 02:18

Casimir wrote:That seems to be a bigger problem. With signlike/wallmounted it is even more distorted that with nodebox.
Without your fix:
http://screenshot.ru/upload/images/2014 ... 4d8148.png
With your fix it gets better:
http://screenshot.ru/upload/images/2014 ... 5e7f71.png


Using minetest.rotate_node is appropriate for nodes that have "paramtype2 = facedir" but not "drawtype = signlike" or "paramtype2 = wallmounted" as those would be placed facing the player as opposed to being placed facing in the direction the player is looking.

Don wrote:You could do an on_place replace node and create another node with the rotated image. It would work as a temporary solution til you get a better answer. Not a good solution but better then nothing.


I'm happy with the above fix as it is working how I think it was intended, means that the node definition is simple and doesn't seem to have broken anything else!

Though it's really nothing much I've put the mod on github. https://github.com/dvere/scrabble

They respond to a poke with a screwdriver even without the fix :-D
 

User avatar
Don
Member
 
Posts: 1641
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Texture orientation using on_place = minetest.rotate_nod

by Don » Tue Mar 24, 2015 15:07

I wanted to use this mod but I see that the rotate thing isn't fixed yet. I added ^[transformR90 to the letter png. This rotates the letter to work on the wall but means when placing on the ground you has to place from the side. Just think this might be a better solution.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here
 


Return to Minetest Problems

Who is online

Users browsing this forum: No registered users and 4 guests

cron