I was creating a SkyWars map, and I wanted to clone an island with structure blocks. But I wasn't expecting that traps doors kept their original orientation. So I save each island individually. That is not a big bug, but it is a little annoying.
_Additional information from @unknown
When using structure blocks to copy and paste builds/structures, trapdoors are not copied over accurately when the structure is rotated or mirrored. It is less noticeable when the trapdoors are on the horizontal, but very noticeable when vertical as their position completely changes from it’s origin.
To reproduce:
Create a flat world in creative.
Use the /give @s command to get a structure block
Get snow blocks from your inventory and create a platform that is 7x7 by 1 high.
Get a locator map and open it.
Align the arrow representing the player to point South which is the bottom of the map.
Build a wall out of snow blocks on the South side of the platform that is 5 blocks high, 7 blocks wide and 1 block deep.
Place 5 spruce trapdoors on the wall and 5 spruce trapdoors on the floor in any direction as long as it is the same for all of them.
Flip each of the trapdoors to be vertical.
Place the structure block on the bottom right corner of the platform when facing the wall (North-West corner).
Open the command block and name the structure "Test1".
Change the three numbers on the left of the screen to 7.
Press the "Save" button at the bottom of the screen..
Change the top drop down menu to "load".
Change the first number (Next to the red X) to 9 to offset the structure.
Either rotate or mirror the structure using the slider or button labeled in the structure block menu options.
Press the "Load" button at the bottom of the screen..
Exit the structure block.
Observe that the newly placed structure’s trapdoors are not in the correct position and were rotated incorrectly during the process.
Observed results:
Trapdoors are not rotated properly when the structure block is used and that the player has selected that the structure be rotated or mirrored.
Expected results:
When using a structure block, the entire structure is properly copied and pasted and the trapdoors that are pasted are rotated or mirrored in the same manner that the player choose to rotate or mirror the entire build.
Linked issues
is duplicated by 14
Attachments
Comments 7
See MCPE-141379 for that
When using structure blocks to copy and paste builds/structures, trapdoors are not copied over accurately when the structure is rotated or mirrored. It is less noticeable when the trapdoors are on the horizontal, but very noticeable when vertical as their position completely changes from it’s origin.
To reproduce:
1. Create a flat world in creative.
2. Use the /give @s command to get a structure block
3. Get snow blocks from your inventory and create a platform that is 7x7 by 1 high.
4. Get a locator map and open it.
5. Align the arrow representing the player to point South which is the bottom of the map.
6. Build a wall out of snow blocks on the South side of the platform that is 5 blocks high, 7 blocks wide and 1 block deep.
7. Place 5 spruce trapdoors on the wall and 5 spruce trapdoors on the floor in any direction as long as it is the same for all of them.
8. Flip each of the trapdoors to be vertical.
9. Place the structure block on the bottom right corner of the platform when facing the wall (North-West corner).
10. Open the command block and name the structure "Test1".
11. Change the three numbers on the left of the screen to 7.
12. Press the "Save" button at the bottom of the screen..
13. Change the top drop down menu to "load".
14. Change the first number (Next to the red X) to 9 to offset the structure.
15. Either rotate or mirror the structure using the slider or button labeled in the structure block menu options.
16. Press the "Load" button at the bottom of the screen..
17. Exit the structure block.
18. Observe that the newly placed structure’s trapdoors are not in the correct position and were rotated incorrectly during the process.
Observed results:
Trapdoors are not rotated properly when the structure block is used and that the player has selected that the structure be rotated or mirrored.
Expected results:
When using a structure block, the entire structure is properly copied and pasted and the trapdoors that are pasted are rotated or mirrored in the same manner that the player choose to rotate or mirror the entire build.
I think this bug is related to the trapdoor's block state, "direction"(= blockdata: direction).
("direction" means the direction the trapdoor is facing.)
When you place a trapdoor looking west from east, the trapdoor's "direction" value is 0,
...east from west, the value is 1,
...north from south, the value is 2,
and, ...south from north, the value is 3.
(the east means Position X+ direction)
Then, I tested how the trapdoors are pasted when they are rotated or mirrored by using structure blocks.
(Unless otherwise noted, direction of rotation is clockwise.)
Not mirrored & not rotated:
Properly pasted
Not mirrored & rotated 90 degrees:
direction 0 was rotated by 180 deg(from "direction" 0 to 1,(need to be 2))
direction 1 was rotated by 270 deg(from 1 to 2,(need to be 3))
direction 2 was rotated by 180 deg(from 2 to 3,(need to be 1))
direction 3 was properly rotated(from 3 to 0)
All values was increased by 1.
Not mirrored & rotated 180 degrees:
direction 0 was rotated by 90 deg(from 0 to 2,(need to be 1))
direction 1 was rotated by 90 deg(from 1 to 3,(need to be 0))
direction 2 was rotated by 270 deg(from 2 to 0,(need to be 3))
direction 3 was rotated by 270 deg(from 3 to 1,(need to be 2))
All values was increased by 2.
Not mirrored & rotated 270 degrees:
direction 0 was properly rotated(from 0 to 3)
direction 1 was rotated by 180 deg(from 1 to 0,(need to be 2))
direction 2 was rotated by 90 deg(from 2 to 1,(need to be 0))
direction 3 was rotated by 180 deg(from 3 to 2,(need to be 1))
All values was increased by 3.
So, I could find that rotation works as if the "direction" values follow a 'clockwise'.
(The 'clockwise' means that if you set which direction as "direction" value 0 and when you increase the value by 1, the trapdoor is rotated by 90 degrees clockwise.)
X mirrored & not rotated:
Expected Result: the object are inverted in north-south direction around the X axis and trapdoors "direction" value are changed from(0,1,2,3) to (0,1,3,2)
Observed Result:
direction 0 was rotated by 90 deg(from 0 to 2,(need to be 0))
direction 1 was properly pasted(not rotated, from 1 to 1)
direction 2 was rotated by 270 deg(from 2 to 0,(need to be 3))
direction 3 was not rotated (from 3 to 3,(need to be 2))
So, direction 0 and 2 were inverted and 1 and 3 were not changed.
My guess:
1. This feature misconceives that "direction" value 0 means south or north.
2. And the mirroring also works as if the "direction" values follow a 'clockwise' like the rotate feature.
X mirrored & rotated 90 degrees:
All trapdoors are pasted in the opposite directions.
(0>2>3(need to be 2)), (1>1>2(need to be 3)), (2>0>1(need to be 0)), and (3>3>0(need to be 1))
All values increased by 1 after a wrong mirroring.
X mirrored & rotated 180 degrees:
direction 0 wasn't rotated(0>2>0(need to be 1))
direction 1 was rotated by 90 deg(1>1>3(need to be 0))
direction 2 was properly rotated deg(2>0>2(need to be 2))
direction 3 was rotated by 270 deg(3>3>1(need to be 3))
All values increased by 2 after a wrong mirroring.
X mirrored & rotated 270 degrees:
direction 0 wasn't rotated(0>2>1(need to be 1))
direction 1 was rotated by 90 deg(1>1>0(need to be 0))
direction 2 was properly rotated deg(2>0>3(need to be 2))
direction 3 was rotated by 270 deg(3>3>2(need to be 3))
All values increased by 3 after a wrong mirroring.
Z mirrored & not rotated:
Expected Result: the object are inverted in east-west direction around the Z axis and trapdoors "direction" value are changed from(0,1,2,3) to (1,0,2,3)
Observed Result:
direction 0 wasn't rotated(from 0 to 0,(need to be 1))
direction 1 was rotated by 90 deg(from 1 to 3,(need to be 0))
direction 2 was properly pasted(not rotated, from 2 to 2)
direction 3 was rotated by 270 deg(from 3 to 1,(need to be 3))
Direction 0 and 2 were not rotated and 1 and 3 were inverted.
X&Z mirrored & not rotated:
direction 0 was rotated by 90 deg(from 0 to 2,(need to be 1))
direction 1 was rotated by 90 deg(from 1 to 3,(need to be 0))
direction 2 was rotated by 270 deg(from 2 to 0,(need to be 3))
direction 3 was rotated by 270 deg(from 3 to 1,(need to be 2))
Same as the X mirror and Z mirror are combined.
Summary:
1. Both rotate & mirror features work as if the "direction" values follow 'clockwise'.(In reality, the values 0 and 1, 2 and 3 are in opposite directions.)
2. This feature misconceives that "direction" value 0 trapdoor faces south or north(In reality, "direction" 0 trapdoor faces east and its hinge faces west.).
[media]
[media]
[media]
[media]
[media]
Still an issue in 1.21.41. I'm trying to randomly rotate some in-memory structures and the rotations for the trapdoors are messed up. The direction values should be changed to increment from North, East, South, West.
How DO you rotate structures with a structure block?