3 # This is an example script that generates some valid map data.
9 from pnoise import pnoise
13 map/sectors/XXXXZZZZ/YYYY
15 XXXX,YYYY,ZZZZ = coordinates in hexadecimal
25 s += '{0:1x}'.format((i>>12) & 0x000f)
26 s += '{0:1x}'.format((i>>8) & 0x000f)
27 s += '{0:1x}'.format((i>>4) & 0x000f)
28 s += '{0:1x}'.format((i>>0) & 0x000f)
32 i = random.randrange(0,2)
37 def writeblock(mapdir, px,py,pz, version):
38 sectordir = mapdir + "/sectors/" + to4h(px) + to4h(pz)
41 os.makedirs(sectordir)
45 f = open(sectordir+"/"+to4h(py), "wb")
49 f.write(struct.pack('B', 0))
51 f.write(struct.pack('B', 0))
54 f.write(struct.pack('B', 2))
56 f.write(struct.pack('B', 0))
62 r = 20.0*pnoise((px*16+x)/100.,(pz*16+z)/100.,0)
63 r += 5.0*pnoise((px*16+x)/25.,(pz*16+z)/25.,0)
74 f.write(struct.pack('B', b))
77 f.write(struct.pack('B', b))
79 f.write(struct.pack('B', 15))
88 print("generating block "+str(x)+","+str(y)+","+str(z))
89 writeblock(mapdir, x,y,z, 0)