How can one fill an area in checkered pattern?
Is there a way to fill certain area(2d or 3d) in checkered pattern, using commands(/fill
, /clone
, etc) and vanilla mechanics?
The number of commands must remain constant regardless of the number of blocks to fill.
Just use MCEdit
That'll be way easier for you.
Vanilla way (a lot of work)
You could fill with any pattern by using a scoreboard counter (fake player + dummy objective, decrement to count, check each tick if it's above 0. If so, run the following command[You can do this in 1.9 using conditionals, 1.8 using an entity instead of the fake player]) I will show you the 1.8 way, since this WILL work in 1.9, it's just slightly less efficient and a bit less intuitive.
Run once to set up:
1> /summon ArmorStand {CustomName:"CounterX"}
2> /summon ArmorStand {CustomName:"CounterY"}
3> /summon ArmorStand {CustomName:"CounterZ"}
4> /scoreboard objectives add vars dummy
5> /summon ArmorStand {CustomName:"startPoint", NoGravity:1}
6> /scoreboard players set @e[name=CounterX] vars
7> /scoreboard players set @e[name=CounterY] vars
8> /scoreboard players set @e[name=CounterX] vars
9> /scoreboard players set @e[name=startPoint] vars 1
Run in a fill clock:
1> /execute @e[name=CounterX,score_vars_min=1] ~ ~ ~ execute @e[name=startPoint,score_vars=1] ~ ~ ~ summon ArmorStand ~2[or another size pattern] ~ ~ {CustomName:"startPoint", NoGravity:1}
2> /scoreboard players add @e[name=startPoint] vars 1
3> /scoreboard players remove @e[name=CounterX] vars 1
Break the clock after completion
Run once after that stops doing anything:
1> /scoreboard players set @e[name=startPoint] vars 1
Run in a fill clock:
1> /execute @e[name=CounterZ,score_vars_min=1] ~ ~ ~ execute @e[name=startPoint,score_vars=1] ~ ~ ~ summon ArmorStand ~ ~ ~2[or another size pattern] {CustomName:"startPoint", NoGravity:1}
2> /scoreboard players add @e[name=startPoint] vars 1
3> /scoreboard players remove @e[name=CounterZ] vars 1
Break the clock after completion
Run once after that stops doing anything:
1> /scoreboard players set @e[name=startPoint] vars 1
Run in a fill clock:
1> /execute @e[name=CounterY,score_vars_min=1] ~ ~ ~ execute @e[name=startPoint,score_vars=1] ~ ~ ~ summon ArmorStand ~ ~2[or another size pattern] ~ {CustomName:"startPoint", NoGravity:1}
2> /scoreboard players add @e[name=startPoint] vars 1
3> /scoreboard players remove @e[name=CounterY] vars 1
Break the clock after completion
Run once
1> /execute @e[name=startPoint] clone [x1OfPattern] [y1OfPattern] [z1OfPattern] [x2OfPattern] [y2OfPattern] [z2OfPattern] ~ ~ ~
2> /kill @e[name=startPoint]
And you're done! If I typed everything properly, that should work. I would make this a one-command-block thing, but it's too late for that
(Wow, that was a huge post)