]> git.lizzy.rs Git - mtmap.git/commitdiff
Don't serialize unnecessary special node id mappings v0.2.6
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 16 Jul 2022 21:11:29 +0000 (23:11 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 16 Jul 2022 21:11:29 +0000 (23:11 +0200)
serialize.go

index 1d1ea4269e3e6b22ffbd67aa909c3204cbaa0cc4..85f1b28e22360b0b18df52fbb2d024bc32995f87 100644 (file)
@@ -158,11 +158,7 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                panic(err)
        }
 
-       var localNameIdMap = map[mt.Content]string{
-               mt.Unknown: "unknown",
-               mt.Air:     "air",
-               mt.Ignore:  "ignore",
-       }
+       var localNameIdMap = make(map[mt.Content]string)
 
        for i := 0; i < 4096; i++ {
                id := blk.Param0[i]
@@ -170,9 +166,21 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                        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 {
+                               panic(ErrInvalidNodeId{id})
+                       }
                }
 
                localNameIdMap[id] = name