Is there a way to change the orientation of a cloned collection of blocks?

I know how to use the clone command to copy a collection of blocks between specified coordinates for a lower-near-right and upper-far-left of the area to be copied, to the lower-far-left of the area to copy to:

clone    0 4 0    -5 9 -5      5 4 5
      |  from  |     to    | destination

The command above will copy a 5x5x5 collection of blocks to the coordinate 5, 4, 5 where that coordinate is the lower-far-left corner of the copied blocks, filling away from the world origin, towards the lower-near-right corner specified as the clone area starting point:

Screenshot demonstrating the from and destination points of a clone command execution. The gold blocks are the lower-near-right corner of the cloned area and the diamond blocks are the lower-far-left corner.

With that in mind, I often find myself wanting to copy a collection of blocks to a new area with a new orientation. For example, let's say I wanted to create a cross where each arm is a 2x1x3 collection of any block type. I want to be able to create the first arm, then clone it, rotated 90 degrees, then repeat the rotate and clone until I have all four arms leaving me to simply fill in the center:

Screenshot denoting a proper clone with rotation as desired.


Is there a way to either:

  • Clone with a lower-right and upper-left position specified for the destination?
  • Clone with a specified rotation on say the y-axis?

NOTE: Creating a custom behavior pack isn't out of the question, so long as I can easily execute the clone.

The definitions of lower-far-left, lower-near-right, and upper-far-left, in the context of this post, are, with respect to the origin of the world located at 0, 0, 0 where: lower-far-left denotes a smaller value all three axes, lower-near-right denotes a smaller value on the y-axis with a larger value on the x and z axes, and upper-far-left denotes a larger value on the y-axis with a smaller value on the x and z axes.


Solution 1:

Did you happen to try the Structure Block yet? Just note that rotation of custom blocks are not yet possible.

Unrelated Tip: For the source coordinates, it does not matter which corner you specify first in the /clone command, but the destination corner will always be the one which is towards negative infinity on all of X, Y, and Z.