Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- install {
- /scoreboard objectives add MazeVars dummy
- /scoreboard players set #State MazeVars 0
- start main
- }
- uninstall {
- /scoreboard players set #State MazeVars -1
- /scoreboard players tag @a[m=1,tag=MazeItems] remove MazeItems
- /kill @e[type=ArmorStand,tag=Lab]
- stop main
- stop generation
- }
- repeat process main {
- /kill @e[type=Item] {Item:{id:"minecraft:spawn_egg",tag:{Tags:["Lab"]}}}
- /clear @a[m=1,tag=!MazeItems] minecraft:spawn_egg -1 2304 {Tags:["Lab"]}
- /testfor @p[m=1,tag=!MazeItems]
- conditional: /scoreboard players test #State MazeVars 0 *
- conditional: /scoreboard players tag @a[m=1,tag=!MazeItems] add MazeItems
- if: /scoreboard players test #State MazeVars 0 0
- then {
- /replaceitem entity @a[m=1,tag=MazeItems] slot.hotbar.0 minecraft:spawn_egg 1 0 {EntityTag:{id:"Cow",Silent:1,NoAI:1,DeathLootTable:"Empty",Tags:["Starter"]},display:{Name:"Start Generating Maze"},ench:[{id:0,lvl:0}],HideFlags:1,Tags:["Lab"]}
- /replaceitem entity @a[m=1,tag=MazeItems] slot.hotbar.1 minecraft:spawn_egg 1 0 {EntityTag:{id:"Squid",Silent:1,NoAI:1,DeathLootTable:"Empty",Tags:["PathStart"]},display:{Name:"Find Path"},ench:[{id:0,lvl:0}],HideFlags:1,Tags:["Lab","Pathfinding"]}
- /replaceitem entity @a[m=1,tag=MazeItems] slot.hotbar.2 minecraft:spawn_egg 1 0 {EntityTag:{id:"Sheep",Silent:1,NoAI:1,DeathLootTable:"Empty",Tags:["Raiser11"]},display:{Name:"Raise 11x11"},ench:[{id:0,lvl:0}],HideFlags:1,Tags:["Lab","Raising"]}
- /replaceitem entity @a[m=1,tag=MazeItems] slot.hotbar.3 minecraft:spawn_egg 1 0 {EntityTag:{id:"Pig",Silent:1,NoAI:1,DeathLootTable:"Empty",Tags:["Raiser23"]},display:{Name:"Raise 23x23"},ench:[{id:0,lvl:0}],HideFlags:1,Tags:["Lab","Raising"]}
- }
- if: /scoreboard players test #State MazeVars 1 1
- then {
- /replaceitem entity @a[m=1,tag=MazeItems] slot.hotbar.0 minecraft:spawn_egg 1 0 {EntityTag:{id:"MushroomCow",Silent:1,NoAI:1,DeathLootTable:"Empty",Tags:["Stopper"]},display:{Name:"Abort Generating Maze"},ench:[{id:0,lvl:0}],HideFlags:1,Tags:["Lab"]}
- }
- if: /kill @e[type=MushroomCow,tag=Stopper]
- then {
- /kill @e[type=ArmorStand,tag=Lab]
- /tellraw @a {"text":"Generation aborted!","color":"dark_red","bold":"true"}
- }
- /kill @e[type=Squid,tag=PathStart]
- conditional: start pathfinding
- /execute @e[type=Sheep,tag=Raiser11] ~-5 ~-2 ~-5 clone ~ ~ ~ ~10 ~1 ~10 ~ ~2 ~
- conditional: /kill @e[type=Sheep,tag=Raiser11]
- /execute @e[type=Pig,tag=Raiser23] ~-11 ~-2 ~-11 clone ~ ~ ~ ~22 ~1 ~22 ~ ~2 ~
- conditional: /kill @e[type=Pig,tag=Raiser23]
- if: /execute @e[type=Cow,tag=Starter] ~ ~-2 ~ summon ArmorStand ~ ~ ~ {NoGravity:1,Invisible:1,Marker:1,Tags:["Marker","Lab"]}
- then {
- /kill @e[type=Cow,tag=Starter]
- /tellraw @a {"text":"Started generating maze...","color":"yellow","bold":"true","extra":[{"text":"\nPlease wait!","color":"dark_red"}]}
- /execute @a ~ ~ ~ playsound minecraft:entity.villager.ambient master @p ~ ~ ~
- /scoreboard players set #State MazeVars 1
- /scoreboard players tag @a[m=1,tag=MazeItems] remove MazeItems
- start generation
- }
- }
- repeat process generation {
- /execute @e[type=ArmorStand,tag=Marker] ~ ~ ~ summon ArmorStand ~2 ~ ~ {NoGravity:1,Invisible:1,Tags:["Tester","PosX","Lab"]}
- /execute @e[type=ArmorStand,tag=Marker] ~ ~ ~ summon ArmorStand ~ ~ ~2 {NoGravity:1,Invisible:1,Tags:["Tester","PosZ","Lab"]}
- /execute @e[type=ArmorStand,tag=Marker] ~ ~ ~ summon ArmorStand ~-2 ~ ~ {NoGravity:1,Invisible:1,Tags:["Tester","NegX","Lab"]}
- /execute @e[type=ArmorStand,tag=Marker] ~ ~ ~ summon ArmorStand ~ ~ ~-2 {NoGravity:1,Invisible:1,Tags:["Tester","NegZ","Lab"]}
- /execute @e[type=ArmorStand,tag=Tester] ~ ~ ~ detect ~ ~ ~ minecraft:air 0 kill @e[type=ArmorStand,tag=Tester,r=0,c=1]
- /scoreboard players tag @r[type=ArmorStand,tag=Tester] add Goal
- conditional: /scoreboard players tag @e[type=ArmorStand,tag=Goal] remove Tester
- conditional: /scoreboard players tag @e[type=ArmorStand,tag=Marker] add Safe
- /execute @e[type=ArmorStand,tag=Marker] ~ ~ ~ kill @e[type=ArmorStand,tag=!Safe,c=1,r=1]
- conditional: /scoreboard players tag @r[type=ArmorStand,tag=Lab] add Next
- /scoreboard players tag @e[type=ArmorStand,tag=Safe] remove Safe
- /kill @e[type=ArmorStand,tag=Tester]
- // Destroy in PosX
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~-2 ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~-2 ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~-1 ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~-1 ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~ ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~ ~ ~ setblock ~ ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosX] ~-3 ~ ~-1 kill @e[type=Item,dx=5,dy=3,dz=3]
- // Destroy in PosZ
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~1 ~-2 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~ ~-2 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~1 ~-1 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~ ~-1 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~ ~ ~ setblock ~ ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=PosZ] ~-1 ~ ~-3 kill @e[type=Item,dx=3,dy=3,dz=5]
- // Destroy in NegX
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~2 ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~2 ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~1 ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~1 ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~ ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~ ~ ~ setblock ~ ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegX] ~-1 ~ ~-1 kill @e[type=Item,dx=5,dy=3,dz=3]
- // Destroy in NegZ
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~1 ~2 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~ ~2 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~1 ~1 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~ ~1 minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~1 ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~ ~ ~ setblock ~ ~ ~ minecraft:air 0 destroy
- /execute @e[type=ArmorStand,tag=Goal,tag=NegZ] ~-1 ~ ~-1 kill @e[type=Item,dx=3,dy=3,dz=5]
- /scoreboard players tag @e[type=ArmorStand,tag=Marker] remove Marker
- /scoreboard players tag @e[type=ArmorStand,tag=Goal] add Marker
- /scoreboard players tag @e[type=ArmorStand,tag=Marker] remove Goal
- /scoreboard players tag @e[type=ArmorStand,tag=Next] add Marker
- /scoreboard players tag @e[type=ArmorStand,tag=Marker] remove Next
- // Delete all armor stands that have all surrounding fields cleared
- /scoreboard players tag @e[type=ArmorStand,tag=Marker] remove Lab
- /execute @e[type=ArmorStand,tag=Marker] ~-2 ~ ~-2 execute @e[type=ArmorStand,tag=Lab,dx=4,dy=0,dz=4] ~ ~ ~ detect ~2 ~ ~ minecraft:air 0 execute @e[type=ArmorStand,tag=Lab,dx=0,dy=0,dz=0,c=1] ~ ~ ~ detect ~ ~ ~2 minecraft:air 0 execute @e[type=ArmorStand,tag=Lab,dx=0,dy=0,dz=0,c=1] ~ ~ ~ detect ~-2 ~ ~ minecraft:air 0 execute @e[type=ArmorStand,tag=Lab,dx=0,dy=0,dz=0,c=1] ~ ~ ~ detect ~ ~ ~-2 minecraft:air 0 kill @e[type=ArmorStand,tag=Lab,dx=0,dy=0,dz=0,c=1]
- /scoreboard players tag @e[type=ArmorStand,tag=Marker] add Lab
- if not: /testfor @e[type=ArmorStand,tag=Lab]
- then {
- if: /scoreboard players test #State MazeVars 1 1
- then {
- /tellraw @a {"text":"Maze finished generating!","color":"dark_green","bold":"true"}
- /execute @a ~ ~ ~ playsound minecraft:entity.villager.yes master @p ~ ~ ~
- /scoreboard players set #State MazeVars 0
- /scoreboard players tag @a[m=1,tag=MazeItems] remove MazeItems
- stop generation
- }
- }
- }
- process pathfinding {
- /tellraw @a {"text":"Not available yet!","color":"dark_red","bold":"true"}
- /execute @a ~ ~ ~ playsound minecraft:entity.villager.no master @p ~ ~ ~
- }
Advertisement
Add Comment
Please, Sign In to add comment