mirror of https://github.com/minetest/minetest.git
block unit (1block = 16 cubes) params -xmin -xmax -zmin -zmax + bug fix Long/int conversion in array usage
This commit is contained in:
parent
02fb912a95
commit
588db4fcc4
|
@ -95,7 +95,7 @@ def unsignedToSigned(i, max_positive):
|
||||||
return i - 2*max_positive
|
return i - 2*max_positive
|
||||||
|
|
||||||
def getIntegerAsBlock(i):
|
def getIntegerAsBlock(i):
|
||||||
x = unsignedToSigned(i % 4096, 2048)
|
x = int(unsignedToSigned(i % 4096, 2048))
|
||||||
i = int((i - x) / 4096)
|
i = int((i - x) / 4096)
|
||||||
y = unsignedToSigned(i % 4096, 2048)
|
y = unsignedToSigned(i % 4096, 2048)
|
||||||
i = int((i - y) / 4096)
|
i = int((i - y) / 4096)
|
||||||
|
@ -141,7 +141,7 @@ try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "hi:o:", ["help", "input=",
|
opts, args = getopt.getopt(sys.argv[1:], "hi:o:", ["help", "input=",
|
||||||
"output=", "bgcolor=", "scalecolor=", "origincolor=",
|
"output=", "bgcolor=", "scalecolor=", "origincolor=",
|
||||||
"playercolor=", "draworigin", "drawplayers", "drawscale",
|
"playercolor=", "draworigin", "drawplayers", "drawscale",
|
||||||
"drawunderground"])
|
"drawunderground","xmin=","xmax=","zmin=","zmax="])
|
||||||
except getopt.GetoptError as err:
|
except getopt.GetoptError as err:
|
||||||
# print help information and exit:
|
# print help information and exit:
|
||||||
print(str(err)) # will print something like "option -a not recognized"
|
print(str(err)) # will print something like "option -a not recognized"
|
||||||
|
@ -179,6 +179,14 @@ for o, a in opts:
|
||||||
scalecolor = ImageColor.getrgb(a)
|
scalecolor = ImageColor.getrgb(a)
|
||||||
elif o == "--playercolor":
|
elif o == "--playercolor":
|
||||||
playercolor = ImageColor.getrgb(a)
|
playercolor = ImageColor.getrgb(a)
|
||||||
|
elif o == "--xmin":
|
||||||
|
sector_xmin = int(a)
|
||||||
|
elif o == "--xmax":
|
||||||
|
sector_xmax = int(a)
|
||||||
|
elif o == "--zmin":
|
||||||
|
sector_zmin = int(a)
|
||||||
|
elif o == "--zmax":
|
||||||
|
sector_zmax = int(a)
|
||||||
elif o == "--origincolor":
|
elif o == "--origincolor":
|
||||||
origincolor = ImageColor.getrgb(a)
|
origincolor = ImageColor.getrgb(a)
|
||||||
elif o == "--drawscale":
|
elif o == "--drawscale":
|
||||||
|
@ -196,7 +204,7 @@ for o, a in opts:
|
||||||
if path is None:
|
if path is None:
|
||||||
print("Please select world path (eg. -i ../worlds/yourworld) (or use --help)")
|
print("Please select world path (eg. -i ../worlds/yourworld) (or use --help)")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
print("xmin=" + str(sector_xmin) + " xmax=" + str(sector_xmax) + " zmin=" + str(sector_zmin) + " zmax=" + str(sector_zmax))
|
||||||
if path[-1:] != "/" and path[-1:] != "\\":
|
if path[-1:] != "/" and path[-1:] != "\\":
|
||||||
path = path + "/"
|
path = path + "/"
|
||||||
|
|
||||||
|
@ -324,7 +332,9 @@ def content_is_air(d):
|
||||||
return d in [126, 127, 254, "air"]
|
return d in [126, 127, 254, "air"]
|
||||||
|
|
||||||
def read_content(mapdata, version, datapos):
|
def read_content(mapdata, version, datapos):
|
||||||
if version >= 20:
|
if version >= 24:
|
||||||
|
return (mapdata[datapos*2] << 8) | (mapdata[datapos*2 + 1])
|
||||||
|
elif version >= 20:
|
||||||
if mapdata[datapos] < 0x80:
|
if mapdata[datapos] < 0x80:
|
||||||
return mapdata[datapos]
|
return mapdata[datapos]
|
||||||
else:
|
else:
|
||||||
|
@ -387,6 +397,7 @@ def read_mapdata(mapdata, version, pixellist, water, day_night_differs, id_to_na
|
||||||
#print("unknown node: %s/%s/%s x: %d y: %d z: %d block id: %x"
|
#print("unknown node: %s/%s/%s x: %d y: %d z: %d block id: %x"
|
||||||
# % (xhex, zhex, yhex, x, y, z, content))
|
# % (xhex, zhex, yhex, x, y, z, content))
|
||||||
|
|
||||||
|
|
||||||
# Go through all sectors.
|
# Go through all sectors.
|
||||||
for n in range(len(xlist)):
|
for n in range(len(xlist)):
|
||||||
#if n > 500:
|
#if n > 500:
|
||||||
|
@ -546,6 +557,14 @@ for n in range(len(xlist)):
|
||||||
|
|
||||||
if version == 23:
|
if version == 23:
|
||||||
readU8(f) # Unused node timer version (always 0)
|
readU8(f) # Unused node timer version (always 0)
|
||||||
|
if version == 24:
|
||||||
|
ver = readU8(f)
|
||||||
|
if ver == 1:
|
||||||
|
num = readU16(f)
|
||||||
|
for i in range(0,num):
|
||||||
|
readU16(f)
|
||||||
|
readS32(f)
|
||||||
|
readS32(f)
|
||||||
|
|
||||||
static_object_version = readU8(f)
|
static_object_version = readU8(f)
|
||||||
static_object_count = readU16(f)
|
static_object_count = readU16(f)
|
||||||
|
@ -578,6 +597,15 @@ for n in range(len(xlist)):
|
||||||
#print(str(node_id)+" = "+name)
|
#print(str(node_id)+" = "+name)
|
||||||
id_to_name[node_id] = name
|
id_to_name[node_id] = name
|
||||||
|
|
||||||
|
# Node timers
|
||||||
|
if version >= 25:
|
||||||
|
timer_size = readU8(f)
|
||||||
|
num = readU16(f)
|
||||||
|
for i in range(0,num):
|
||||||
|
readU16(f)
|
||||||
|
readS32(f)
|
||||||
|
readS32(f)
|
||||||
|
|
||||||
read_mapdata(mapdata, version, pixellist, water, day_night_differs, id_to_name)
|
read_mapdata(mapdata, version, pixellist, water, day_night_differs, id_to_name)
|
||||||
|
|
||||||
# After finding all the pixels in the sector, we can move on to
|
# After finding all the pixels in the sector, we can move on to
|
||||||
|
@ -663,8 +691,8 @@ for (x, z) in stuff.iterkeys():
|
||||||
r = int(r * .15 + colors[2][0] * .85)
|
r = int(r * .15 + colors[2][0] * .85)
|
||||||
g = int(g * .15 + colors[2][1] * .85)
|
g = int(g * .15 + colors[2][1] * .85)
|
||||||
b = int(b * .15 + colors[2][2] * .85)
|
b = int(b * .15 + colors[2][2] * .85)
|
||||||
|
# print("x:" + str(x) + " z:" + str(z) + " minx:" + str(minx) + " minz:" + str(minz) + " border:" + str(border) + " h:" + str(h) + " r:" + str(r) + " g:" + str(g) + " b:" + str(b))
|
||||||
impix[x - minx * 16 + border, h - 1 - (z - minz * 16) + border] = (r, g, b)
|
impix[int(x - minx * 16 + border), int(h - 1 - (z - minz * 16) + border)] = (r, g, b)
|
||||||
|
|
||||||
|
|
||||||
if draworigin:
|
if draworigin:
|
||||||
|
@ -729,4 +757,3 @@ if unknown_node_ids:
|
||||||
for node_id in unknown_node_ids:
|
for node_id in unknown_node_ids:
|
||||||
sys.stdout.write(" "+str(hex(node_id)))
|
sys.stdout.write(" "+str(hex(node_id)))
|
||||||
sys.stdout.write(os.linesep)
|
sys.stdout.write(os.linesep)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue