diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-07-16 23:07:41 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-07-16 23:07:41 +0200 |
commit | 2f0d89c5cfb101bccf7bbe8be1b070ce2a4fee4c (patch) | |
tree | 8fee5625cf7b70e9454308135051783b863fe096 | |
parent | 647540796a50b8bbf93008def8a3a082fefa07fd (diff) | |
download | mtmap-2f0d89c5cfb101bccf7bbe8be1b070ce2a4fee4c.tar.xz |
Properly serialize special node id mappingsv0.2.5
-rw-r--r-- | deserialize.go | 20 | ||||
-rw-r--r-- | serialize.go | 11 | ||||
-rw-r--r-- | types.go | 4 |
3 files changed, 20 insertions, 15 deletions
diff --git a/deserialize.go b/deserialize.go index e055348..78b9ea2 100644 --- a/deserialize.go +++ b/deserialize.go @@ -247,19 +247,27 @@ func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk { for i := 0; i < 4096; i++ { id := blk.Param0[i] - if isSpecial(id) { - continue - } name, ok := nameIdMap[id] if !ok { panic(ErrInvalidNodeId{id}) } - blk.Param0[i], ok = idNameMap[name] - if !ok { - panic(ErrInvalidNodeName{name}) + switch name { + case "unknown": + id = mt.Unknown + case "air": + id = mt.Air + case "ignore": + id = mt.Ignore + default: + id, ok = idNameMap[name] + if !ok { + panic(ErrInvalidNodeName{name}) + } } + + blk.Param0[i] = id } return blk diff --git a/serialize.go b/serialize.go index 3cf601c..1d1ea42 100644 --- a/serialize.go +++ b/serialize.go @@ -158,13 +158,14 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) { panic(err) } - var localNameIdMap = make(map[mt.Content]string) + var localNameIdMap = map[mt.Content]string{ + mt.Unknown: "unknown", + mt.Air: "air", + mt.Ignore: "ignore", + } + for i := 0; i < 4096; i++ { id := blk.Param0[i] - if isSpecial(id) { - continue - } - if _, ok := localNameIdMap[id]; ok { continue } @@ -51,7 +51,3 @@ type ErrInvalidNodeId struct { func (e ErrInvalidNodeId) Error() string { return fmt.Sprintf("invalid node %v", e.Id) } - -func isSpecial(id mt.Content) bool { - return id >= 125 && id <= 127 -} |