Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pymclevel import TAG_Compound, TAG_String, TAG_Int
- import random, mcplatform
- displayName = "Random Motion"
- inputs = (
- ("Value",(0,-1000,1000)),
- ("Entity Properties",("string","value=@e[type=ArmorStand]")),
- ("Loop?",False),
- )
- def perform(level,box,options):
- val = options["Value"]
- ep = options["Entity Properties"]
- cmd1 = "setblock ~1 ~-1 ~ minecraft:redstone_block"
- cmd2 = "setblock ~ ~ ~-1 minecraft:air"
- cmd3 = "setblock ~-{} ~-1 ~ minecraft:redstone_block".format(val)
- loop = options["Loop?"]
- #Create new command blocks
- for x in range(box.minx, box.maxx):
- for y in range(box.miny, box.maxy):
- for z in range(box.minz, box.maxz):
- place = 0
- for i in range(val):
- level.setBlockAt(x+i,y,z,137)
- rots = rrot(level,box,options)
- newcommand = """entitydata {0} {{{1}}}""".format(ep,rots)
- level.setBlockAt(x+i,y+2,z,137)
- level.setBlockAt(x+i,y+1,z+1,137)
- chunk = level.getChunk((x+i)/16, z/16)
- if z/16 != (z+1)/16:
- chunk2 = level.getChunk((x+i)/16, (z+1)/16)
- else:
- chunk2 = chunk
- chunk.TileEntities.append(command_block_NBT(x+i,y,z,newcommand))
- chunk.TileEntities.append(command_block_NBT(x+i,y+2,z,cmd1))
- chunk2.TileEntities.append(command_block_NBT(x+i,y+1,z+1,cmd2))
- if loop:
- level.setBlockAt(x+val,y+2,z,137)
- chunk.TileEntities.append(command_block_NBT(x+val,y+2,z,cmd3))
- level.setBlockAt(x+val,y+1,z+1,137)
- chunk.TileEntities.append(command_block_NBT(x+val,y+1,z+1,cmd2))
- level.setBlockAt(x+val,y,z,159)
- level.setBlockDataAt(x+val,y,z,14)
- def rrot(level,box,options):
- rots = """Pose:{{RightArm:[{0}f,{1}f,{2}f]}}""".format(random.randint(0,360), random.randint(0,360), random.randint(0,360))
- return rots
- def command_block_NBT(x,y,z,command):
- root = TAG_Compound()
- root["Command"] = TAG_String(command)
- root["id"] = TAG_String(u'Control')
- root["CustomName"] = TAG_String(u'@')
- root["z"] = TAG_Int(z)
- root["y"] = TAG_Int(y)
- root["x"] = TAG_Int(x)
- return root
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement