Abort lightComplete test if no mapblocks are saved

- If the databse has no mapblocks in it, do not try
   and infinitely load one. For #17.
This commit is contained in:
LeMagnesium 2018-02-10 15:39:32 +01:00
parent 2f7701a4c2
commit 8bac60aedc
No known key found for this signature in database
GPG Key ID: A54DDB5272C51E8B
2 changed files with 31 additions and 1 deletions

25
tests/moo.py Normal file
View File

@ -0,0 +1,25 @@
import libminetest.map
def main(map):
vessel = libminetest.map.MapVessel(map)
minpos = None
maxpos = None
for block in vessel.get_all_mapblock_ids():
print(block)
pos = libminetest.utils.getIntegerAsBlock(block)
if minpos is None:
minpos = pos
if maxpos is None:
maxpos = pos
minpos = libminetest.utils.Pos(min(pos.x,minpos.x),min(pos.y,minpos.y),min(pos.z,minpos.z))
maxpos = libminetest.utils.Pos(max(pos.x,maxpos.x),max(pos.y,maxpos.y),max(pos.z,maxpos.z))
#print(vessel.load(block))
print(minpos)
print(maxpos)
dimens = len(vessel.get_all_mapblock_ids())
print("There are {0} blocks currently generated and stored".format(dimens))
vessel.close()
if __name__ == "__main__":
main("/home/limefox/.minetest/worlds/Creative/map.sqlite")

View File

@ -242,8 +242,13 @@ def testLightingDone(map):
import random
db = libminetest.map.MapInterface(map)
i = 0
blocks = db.container.get_all_mapblock_ids()
if len(blocks) == 0:
print("!!!> Lighting test cannot proceed : no blocks generated")
return
while True:
i = random.randrange(-4096, 4096)
i = random.choice(blocks)
if db.load_mapblock(i):
break