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
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
}
func (e ErrInvalidNodeId) Error() string {
return fmt.Sprintf("invalid node %v", e.Id)
}
-
-func isSpecial(id mt.Content) bool {
- return id >= 125 && id <= 127
-}