Update minetestmapper.py to support ver. 24 and 25
authorPerttu Ahola <celeron55@gmail.com>
Tue, 24 Jul 2012 12:16:49 +0000 (15:16 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Tue, 24 Jul 2012 12:17:00 +0000 (15:17 +0300)
util/minetestmapper.py

index 83ce716e97824e743c4626a7972c98511f970229..9d364e1e64dacc7de1ac0d476162ff99a97e6c4c 100755 (executable)
@@ -324,7 +324,9 @@ def content_is_air(d):
     return d in [126, 127, 254, "air"]
 
 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:
             return mapdata[datapos]
         else:
@@ -387,6 +389,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"
                         #        % (xhex, zhex, yhex, x, y, z, content))
 
+
 # Go through all sectors.
 for n in range(len(xlist)):
     #if n > 500:
@@ -546,6 +549,14 @@ for n in range(len(xlist)):
 
             if version == 23:
                 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_count = readU16(f)
@@ -578,6 +589,15 @@ for n in range(len(xlist)):
                     #print(str(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)
 
             # After finding all the pixels in the sector, we can move on to