]> git.lizzy.rs Git - mtmap.git/blobdiff - serialize.go
added funktion MapBlk.PokeNode as reverse of MapBlk.PeekNode
[mtmap.git] / serialize.go
index 3cf601ce53737ec8608cad7a44791e972cc491b2..ddfb72a3dc7dd16c73af7405e0fc0a18605611a0 100644 (file)
@@ -37,6 +37,14 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                        panic(err)
                }
 
+               if err := binary.Write(zw, binary.BigEndian, &blk.Param1); err != nil {
+                       panic(err)
+               }
+
+               if err := binary.Write(zw, binary.BigEndian, &blk.Param2); err != nil {
+                       panic(err)
+               }
+
                if err := zw.Close(); err != nil {
                        panic(err)
                }
@@ -159,19 +167,29 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
        }
 
        var localNameIdMap = make(map[mt.Content]string)
+
        for i := 0; i < 4096; i++ {
                id := blk.Param0[i]
-               if isSpecial(id) {
-                       continue
-               }
-
                if _, ok := localNameIdMap[id]; ok {
                        continue
                }
 
-               name, ok := nameIdMap[id]
-               if !ok {
-                       panic(ErrInvalidNodeId{id})
+               var name string
+               var ok bool
+
+               switch id {
+               case mt.Unknown:
+                       name = "unknown"
+               case mt.Air:
+                       name = "air"
+               case mt.Ignore:
+                       name = "ignore"
+               default:
+                       name, ok = nameIdMap[id]
+                       if !ok {
+                               id = mt.Unknown
+                               name = "unknown"
+                       }
                }
 
                localNameIdMap[id] = name