When a structure is placed at a rotation other than 0 degrees, blocks carrying minecraft:cardinal_direction are turned with it, but blocks with minecraft:sixteen_way_rotation keep the exact value authored in the template. This happens on every placement path: worldgen jigsaw pieces, StructureManager.place with a rotation, and /structure load with a rotation.
Steps to Reproduce:
Import the attached
structures_sixteen_way_rotation.mcaddonand create a new Overworld world with both packs applied (experiments are not needed).Walk the surface. The pack's structure set places a 5x3x5 piece every few chunks: a stone floor with a gold arrow, and two arrow blocks standing on it. Both arrow blocks were authored facing north, the same way the gold floor arrow points. The blue arrow (
ss_jsw:cardinal_arrow) stores its facing inminecraft:cardinal_direction; the yellow arrow (ss_jsw:sixteen_way_arrow) stores it inminecraft:sixteen_way_rotationand is drawn through the geometry component'sn_way_visual_rotation.Find a piece whose gold floor arrow does not point north. The piece was placed rotated.
Stand near it and run
/ss_jsw:bug_report scan. For each piece within 32 blocks the log prints one row with four fields:blue_arrow_cardinal, the facing the cardinal arrow was given;yellow_arrow_expected, thesixteen_way_rotationvalue that faces the same way;yellow_arrow_actual, the value the sixteen-way arrow really holds; andmatch, whether the last two are equal.Run
/ss_jsw:bug_report place. It places the same template throughStructureManager.placewithStructureRotation.Rotate90two blocks away and logs the result the same way.Run
/structure load ss_jsw:piece ~ ~ ~ 90_degreesand then/ss_jsw:bug_report scanagain.
Expected Result:
In a rotated piece the blue arrow and the yellow arrow point the same way as the gold floor arrow, on every placement path. In the log every row under pieces has match: true: yellow_arrow_actual equals yellow_arrow_expected, the sixteen-way value that points the same way as blue_arrow_cardinal (north 8, east 12, south 0, west 4).
Actual Result:
In a rotated piece the blue arrow follows the floor arrow, but the yellow arrow still points north, the way it was authored. In the log pieces_mismatched is every piece whose blue arrow is not north, yellow_arrow_actual is the authored 8 in every row, and pieces_by_blue_arrow_cardinal holds all four cardinals. The place and /structure load pieces show the same mismatch as the worldgen ones.
Thank you for helping us improve Minecraft! We saved your files: