]> git.lizzy.rs Git - mt.git/blobdiff - serialize.go
Support 5.5.0 NodeDef
[mt.git] / serialize.go
index e2dbd5342be88c1e98318202587c5944f94f9be7..efffd259d5e4269eeffbc0f0fabdf94503d2d6dc 100644 (file)
@@ -14237,6 +14237,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Param0).serialize(w)
        }); err != nil {
                if err == io.EOF {
@@ -14316,6 +14320,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Name))) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -14382,6 +14390,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Name))))
                        write16(w, uint16(x))
                }
@@ -14448,6 +14460,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Name))[:])
                        chk(err)
                }
@@ -14513,6 +14529,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Groups)) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -14579,6 +14599,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Groups)))
                        write16(w, uint16(x))
                }
@@ -14644,6 +14668,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Groups {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -14708,6 +14736,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).Groups)[local239]).serialize(w)
                        }); err != nil {
                                if err == io.EOF {
@@ -14779,6 +14811,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).P1Type).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -14849,6 +14885,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).P2Type).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -14919,6 +14959,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrawType).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -14988,6 +15032,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Mesh))) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -15054,6 +15102,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Mesh))))
                        write16(w, uint16(x))
                }
@@ -15120,6 +15172,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Mesh))[:])
                        chk(err)
                }
@@ -15186,6 +15242,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Scale
                        write32(w, math.Float32bits(x))
                }
@@ -15258,6 +15318,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Tiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -15322,6 +15386,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).Tiles)[local241]).serialize(w)
                        }); err != nil {
                                if err == io.EOF {
@@ -15392,6 +15460,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).OverlayTiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -15456,6 +15528,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).OverlayTiles)[local242]).serialize(w)
                        }); err != nil {
                                if err == io.EOF {
@@ -15533,6 +15609,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).SpecialTiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -15597,6 +15677,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).SpecialTiles)[local244]).serialize(w)
                        }); err != nil {
                                if err == io.EOF {
@@ -15668,6 +15752,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Color
                        w.Write([]byte{x.A, x.R, x.G, x.B})
                }
@@ -15734,6 +15822,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Palette).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -15804,6 +15896,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Waving).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -15874,6 +15970,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).ConnectSides
                        write8(w, uint8(x))
                }
@@ -15939,6 +16039,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).ConnectTo)) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -16005,6 +16109,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).ConnectTo)))
                        write16(w, uint16(x))
                }
@@ -16070,6 +16178,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).ConnectTo {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -16134,6 +16246,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).ConnectTo)[local245]).serialize(w)
                        }); err != nil {
                                if err == io.EOF {
@@ -16205,6 +16321,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).InsideTint
                        w.Write([]byte{x.A, x.R, x.G, x.B})
                }
@@ -16271,6 +16391,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Level
                        write8(w, uint8(x))
                }
@@ -16337,6 +16461,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Translucent
                        if x {
                                write8(w, 1)
@@ -16407,6 +16535,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Transparent
                        if x {
                                write8(w, 1)
@@ -16477,6 +16609,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LightSrc
                        write8(w, uint8(x))
                }
@@ -16543,6 +16679,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).GndContent
                        if x {
                                write8(w, 1)
@@ -16613,6 +16753,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Collides
                        if x {
                                write8(w, 1)
@@ -16683,6 +16827,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Pointable
                        if x {
                                write8(w, 1)
@@ -16753,6 +16901,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Diggable
                        if x {
                                write8(w, 1)
@@ -16823,6 +16975,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Climbable
                        if x {
                                write8(w, 1)
@@ -16893,6 +17049,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Replaceable
                        if x {
                                write8(w, 1)
@@ -16963,6 +17123,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).OnRightClick
                        if x {
                                write8(w, 1)
@@ -17033,6 +17197,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DmgPerSec
                        write32(w, uint32(x))
                }
@@ -17099,6 +17267,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LiquidType).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -17168,6 +17340,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).FlowingAlt))) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -17234,6 +17410,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FlowingAlt))))
                        write16(w, uint16(x))
                }
@@ -17300,6 +17480,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FlowingAlt))[:])
                        chk(err)
                }
@@ -17365,6 +17549,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).SrcAlt))) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -17431,6 +17619,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).SrcAlt))))
                        write16(w, uint16(x))
                }
@@ -17497,6 +17689,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).SrcAlt))[:])
                        chk(err)
                }
@@ -17563,6 +17759,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Viscosity
                        write8(w, uint8(x))
                }
@@ -17629,6 +17829,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LiqRenewable
                        if x {
                                write8(w, 1)
@@ -17699,6 +17903,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FlowRange
                        write8(w, uint8(x))
                }
@@ -17765,6 +17973,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrownDmg
                        write8(w, uint8(x))
                }
@@ -17831,6 +18043,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Floodable
                        if x {
                                write8(w, 1)
@@ -17901,6 +18117,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrawBox).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -17971,6 +18191,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).ColBox).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18041,6 +18265,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).SelBox).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18111,6 +18339,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FootstepSnd).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18181,6 +18413,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DiggingSnd).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18251,6 +18487,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DugSnd).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18321,6 +18561,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LegacyFaceDir
                        if x {
                                write8(w, 1)
@@ -18391,6 +18635,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LegacyMounted
                        if x {
                                write8(w, 1)
@@ -18460,6 +18708,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).DigPredict))) > math.MaxUint16 {
                        chk(ErrTooLong)
                }
@@ -18526,6 +18778,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DigPredict))))
                        write16(w, uint16(x))
                }
@@ -18592,6 +18848,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DigPredict))[:])
                        chk(err)
                }
@@ -18658,6 +18918,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).MaxLvl
                        write8(w, uint8(x))
                }
@@ -18724,6 +18988,10 @@ func (obj *NodeDef) serialize(w io.Writer) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).AlphaUse).serialize(w)
                }); err != nil {
                        if err == io.EOF {
@@ -18732,96 +19000,244 @@ func (obj *NodeDef) serialize(w io.Writer) {
                        chk(fmt.Errorf("%s: %w", "github.com/dragonfireclient/mt.AlphaUse", err))
                }
                {
-                       buf := w
-                       w := ow
-                       if len((buf.Bytes())) > math.MaxUint16 {
-                               chk(ErrTooLong)
-                       }
-                       {
-                               x := uint16(len((buf.Bytes())))
-                               write16(w, uint16(x))
-                       }
-                       {
-                               _, err := w.Write((buf.Bytes())[:])
-                               chk(err)
-                       }
-               }
-       }
-}
+                       x := (*(*(struct {
+                               Param0 Content
 
-func (obj *NodeDef) deserialize(r io.Reader) {
-       if err := pcall(func() {
-               ((*(*(struct {
-                       Param0 Content
+                               Name   string
+                               Groups []Group
 
-                       Name   string
-                       Groups []Group
+                               P1Type   Param1Type
+                               P2Type   Param2Type
+                               DrawType DrawType
 
-                       P1Type   Param1Type
-                       P2Type   Param2Type
-                       DrawType DrawType
+                               Mesh  string
+                               Scale float32
+                               //mt:const uint8(6)
+                               Tiles        [6]TileDef
+                               OverlayTiles [6]TileDef
+                               //mt:const uint8(6)
+                               SpecialTiles [6]TileDef
 
-                       Mesh  string
-                       Scale float32
-                       //mt:const uint8(6)
-                       Tiles        [6]TileDef
-                       OverlayTiles [6]TileDef
-                       //mt:const uint8(6)
-                       SpecialTiles [6]TileDef
+                               Color   color.NRGBA
+                               Palette Texture
 
-                       Color   color.NRGBA
-                       Palette Texture
+                               Waving       WaveType
+                               ConnectSides uint8
+                               ConnectTo    []Content
+                               InsideTint   color.NRGBA
+                               Level        uint8 // Must be < 128.
 
-                       Waving       WaveType
-                       ConnectSides uint8
-                       ConnectTo    []Content
-                       InsideTint   color.NRGBA
-                       Level        uint8 // Must be < 128.
+                               Translucent bool // Sunlight is scattered and becomes normal light.
+                               Transparent bool // Sunlight isn't scattered.
+                               LightSrc    uint8
 
-                       Translucent bool // Sunlight is scattered and becomes normal light.
-                       Transparent bool // Sunlight isn't scattered.
-                       LightSrc    uint8
+                               GndContent   bool
+                               Collides     bool
+                               Pointable    bool
+                               Diggable     bool
+                               Climbable    bool
+                               Replaceable  bool
+                               OnRightClick bool
 
-                       GndContent   bool
-                       Collides     bool
-                       Pointable    bool
-                       Diggable     bool
-                       Climbable    bool
-                       Replaceable  bool
-                       OnRightClick bool
+                               DmgPerSec int32
 
-                       DmgPerSec int32
+                               LiquidType   LiquidType
+                               FlowingAlt   string
+                               SrcAlt       string
+                               Viscosity    uint8 // 0-7
+                               LiqRenewable bool
+                               FlowRange    uint8
+                               DrownDmg     uint8
+                               Floodable    bool
 
-                       LiquidType   LiquidType
-                       FlowingAlt   string
-                       SrcAlt       string
-                       Viscosity    uint8 // 0-7
-                       LiqRenewable bool
-                       FlowRange    uint8
-                       DrownDmg     uint8
-                       Floodable    bool
+                               DrawBox, ColBox, SelBox NodeBox
 
-                       DrawBox, ColBox, SelBox NodeBox
+                               FootstepSnd, DiggingSnd, DugSnd SoundDef
 
-                       FootstepSnd, DiggingSnd, DugSnd SoundDef
+                               LegacyFaceDir bool
+                               LegacyMounted bool
 
-                       LegacyFaceDir bool
-                       LegacyMounted bool
+                               DigPredict string
 
-                       DigPredict string
+                               MaxLvl uint8
 
-                       MaxLvl uint8
+                               AlphaUse
 
-                       AlphaUse
-               }))(obj)).Param0).deserialize(r)
-       }); err != nil {
-               if err == io.EOF {
-                       chk(io.EOF)
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
+                       }))(obj)).MoveResistance
+                       write8(w, uint8(x))
                }
-               chk(fmt.Errorf("%s: %w", "github.com/dragonfireclient/mt.Content", err))
-       }
-       {
-               var n uint16
+               {
+                       x := (*(*(struct {
+                               Param0 Content
+
+                               Name   string
+                               Groups []Group
+
+                               P1Type   Param1Type
+                               P2Type   Param2Type
+                               DrawType DrawType
+
+                               Mesh  string
+                               Scale float32
+                               //mt:const uint8(6)
+                               Tiles        [6]TileDef
+                               OverlayTiles [6]TileDef
+                               //mt:const uint8(6)
+                               SpecialTiles [6]TileDef
+
+                               Color   color.NRGBA
+                               Palette Texture
+
+                               Waving       WaveType
+                               ConnectSides uint8
+                               ConnectTo    []Content
+                               InsideTint   color.NRGBA
+                               Level        uint8 // Must be < 128.
+
+                               Translucent bool // Sunlight is scattered and becomes normal light.
+                               Transparent bool // Sunlight isn't scattered.
+                               LightSrc    uint8
+
+                               GndContent   bool
+                               Collides     bool
+                               Pointable    bool
+                               Diggable     bool
+                               Climbable    bool
+                               Replaceable  bool
+                               OnRightClick bool
+
+                               DmgPerSec int32
+
+                               LiquidType   LiquidType
+                               FlowingAlt   string
+                               SrcAlt       string
+                               Viscosity    uint8 // 0-7
+                               LiqRenewable bool
+                               FlowRange    uint8
+                               DrownDmg     uint8
+                               Floodable    bool
+
+                               DrawBox, ColBox, SelBox NodeBox
+
+                               FootstepSnd, DiggingSnd, DugSnd SoundDef
+
+                               LegacyFaceDir bool
+                               LegacyMounted bool
+
+                               DigPredict string
+
+                               MaxLvl uint8
+
+                               AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
+                       }))(obj)).LiquidMovePhysics
+                       if x {
+                               write8(w, 1)
+                       } else {
+                               write8(w, 0)
+                       }
+               }
+               {
+                       buf := w
+                       w := ow
+                       if len((buf.Bytes())) > math.MaxUint16 {
+                               chk(ErrTooLong)
+                       }
+                       {
+                               x := uint16(len((buf.Bytes())))
+                               write16(w, uint16(x))
+                       }
+                       {
+                               _, err := w.Write((buf.Bytes())[:])
+                               chk(err)
+                       }
+               }
+       }
+}
+
+func (obj *NodeDef) deserialize(r io.Reader) {
+       if err := pcall(func() {
+               ((*(*(struct {
+                       Param0 Content
+
+                       Name   string
+                       Groups []Group
+
+                       P1Type   Param1Type
+                       P2Type   Param2Type
+                       DrawType DrawType
+
+                       Mesh  string
+                       Scale float32
+                       //mt:const uint8(6)
+                       Tiles        [6]TileDef
+                       OverlayTiles [6]TileDef
+                       //mt:const uint8(6)
+                       SpecialTiles [6]TileDef
+
+                       Color   color.NRGBA
+                       Palette Texture
+
+                       Waving       WaveType
+                       ConnectSides uint8
+                       ConnectTo    []Content
+                       InsideTint   color.NRGBA
+                       Level        uint8 // Must be < 128.
+
+                       Translucent bool // Sunlight is scattered and becomes normal light.
+                       Transparent bool // Sunlight isn't scattered.
+                       LightSrc    uint8
+
+                       GndContent   bool
+                       Collides     bool
+                       Pointable    bool
+                       Diggable     bool
+                       Climbable    bool
+                       Replaceable  bool
+                       OnRightClick bool
+
+                       DmgPerSec int32
+
+                       LiquidType   LiquidType
+                       FlowingAlt   string
+                       SrcAlt       string
+                       Viscosity    uint8 // 0-7
+                       LiqRenewable bool
+                       FlowRange    uint8
+                       DrownDmg     uint8
+                       Floodable    bool
+
+                       DrawBox, ColBox, SelBox NodeBox
+
+                       FootstepSnd, DiggingSnd, DugSnd SoundDef
+
+                       LegacyFaceDir bool
+                       LegacyMounted bool
+
+                       DigPredict string
+
+                       MaxLvl uint8
+
+                       AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
+               }))(obj)).Param0).deserialize(r)
+       }); err != nil {
+               if err == io.EOF {
+                       chk(io.EOF)
+               }
+               chk(fmt.Errorf("%s: %w", "github.com/dragonfireclient/mt.Content", err))
+       }
+       {
+               var n uint16
                {
                        p := &n
                        *p = read16(r)
@@ -18911,6 +19327,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Name) = string(local248)
                var local250 uint16
                {
@@ -18979,6 +19399,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Groups) = make([]Group, local250)
                for local251 := range (*(*(struct {
                        Param0 Content
@@ -19042,6 +19466,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Groups {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -19106,6 +19534,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).Groups)[local251]).deserialize(r)
                        }); err != nil {
                                if err == io.EOF {
@@ -19177,6 +19609,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).P1Type).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -19247,6 +19683,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).P2Type).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -19317,6 +19757,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrawType).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -19397,6 +19841,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Mesh) = string(local252)
                {
                        p := &(*(*(struct {
@@ -19461,6 +19909,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Scale
                        *p = math.Float32frombits(read32(r))
                }
@@ -19537,6 +19989,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).Tiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -19601,6 +20057,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).Tiles)[local256]).deserialize(r)
                        }); err != nil {
                                if err == io.EOF {
@@ -19671,6 +20131,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).OverlayTiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -19735,6 +20199,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).OverlayTiles)[local257]).deserialize(r)
                        }); err != nil {
                                if err == io.EOF {
@@ -19816,6 +20284,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).SpecialTiles {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -19880,6 +20352,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).SpecialTiles)[local260]).deserialize(r)
                        }); err != nil {
                                if err == io.EOF {
@@ -19951,6 +20427,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Color
                        *p = color.NRGBA{A: read8(r), R: read8(r), G: read8(r), B: read8(r)}
                }
@@ -20017,6 +20497,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Palette).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -20087,6 +20571,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Waving).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -20157,6 +20645,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).ConnectSides
                        *p = read8(r)
                }
@@ -20227,6 +20719,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).ConnectTo) = make([]Content, local261)
                for local262 := range (*(*(struct {
                        Param0 Content
@@ -20290,6 +20786,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).ConnectTo {
                        if err := pcall(func() {
                                (((*(*(struct {
@@ -20354,6 +20854,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                        MaxLvl uint8
 
                                        AlphaUse
+
+                                       MoveResistance uint8
+
+                                       LiquidMovePhysics bool
                                }))(obj)).ConnectTo)[local262]).deserialize(r)
                        }); err != nil {
                                if err == io.EOF {
@@ -20425,6 +20929,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).InsideTint
                        *p = color.NRGBA{A: read8(r), R: read8(r), G: read8(r), B: read8(r)}
                }
@@ -20491,6 +20999,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Level
                        *p = read8(r)
                }
@@ -20557,6 +21069,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Translucent
                        switch n := read8(r); n {
                        case 0:
@@ -20630,6 +21146,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Transparent
                        switch n := read8(r); n {
                        case 0:
@@ -20703,6 +21223,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LightSrc
                        *p = read8(r)
                }
@@ -20769,6 +21293,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).GndContent
                        switch n := read8(r); n {
                        case 0:
@@ -20842,6 +21370,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Collides
                        switch n := read8(r); n {
                        case 0:
@@ -20915,6 +21447,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Pointable
                        switch n := read8(r); n {
                        case 0:
@@ -20988,6 +21524,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Diggable
                        switch n := read8(r); n {
                        case 0:
@@ -21061,6 +21601,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Climbable
                        switch n := read8(r); n {
                        case 0:
@@ -21134,6 +21678,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Replaceable
                        switch n := read8(r); n {
                        case 0:
@@ -21207,6 +21755,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).OnRightClick
                        switch n := read8(r); n {
                        case 0:
@@ -21280,6 +21832,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DmgPerSec
                        *p = int32(read32(r))
                }
@@ -21346,6 +21902,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LiquidType).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -21426,6 +21986,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).FlowingAlt) = string(local263)
                var local265 []uint8
                var local266 uint16
@@ -21500,6 +22064,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).SrcAlt) = string(local265)
                {
                        p := &(*(*(struct {
@@ -21564,6 +22132,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Viscosity
                        *p = read8(r)
                }
@@ -21630,6 +22202,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LiqRenewable
                        switch n := read8(r); n {
                        case 0:
@@ -21703,6 +22279,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FlowRange
                        *p = read8(r)
                }
@@ -21769,6 +22349,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrownDmg
                        *p = read8(r)
                }
@@ -21835,6 +22419,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).Floodable
                        switch n := read8(r); n {
                        case 0:
@@ -21908,6 +22496,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DrawBox).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -21978,6 +22570,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).ColBox).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22048,6 +22644,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).SelBox).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22118,6 +22718,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).FootstepSnd).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22188,6 +22792,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DiggingSnd).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22258,6 +22866,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).DugSnd).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22328,6 +22940,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LegacyFaceDir
                        switch n := read8(r); n {
                        case 0:
@@ -22401,6 +23017,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).LegacyMounted
                        switch n := read8(r); n {
                        case 0:
@@ -22484,6 +23104,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        MaxLvl uint8
 
                        AlphaUse
+
+                       MoveResistance uint8
+
+                       LiquidMovePhysics bool
                }))(obj)).DigPredict) = string(local267)
                {
                        p := &(*(*(struct {
@@ -22548,6 +23172,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).MaxLvl
                        *p = read8(r)
                }
@@ -22614,6 +23242,10 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                                MaxLvl uint8
 
                                AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
                        }))(obj)).AlphaUse).deserialize(r)
                }); err != nil {
                        if err == io.EOF {
@@ -22621,6 +23253,153 @@ func (obj *NodeDef) deserialize(r io.Reader) {
                        }
                        chk(fmt.Errorf("%s: %w", "github.com/dragonfireclient/mt.AlphaUse", err))
                }
+               {
+                       p := &(*(*(struct {
+                               Param0 Content
+
+                               Name   string
+                               Groups []Group
+
+                               P1Type   Param1Type
+                               P2Type   Param2Type
+                               DrawType DrawType
+
+                               Mesh  string
+                               Scale float32
+                               //mt:const uint8(6)
+                               Tiles        [6]TileDef
+                               OverlayTiles [6]TileDef
+                               //mt:const uint8(6)
+                               SpecialTiles [6]TileDef
+
+                               Color   color.NRGBA
+                               Palette Texture
+
+                               Waving       WaveType
+                               ConnectSides uint8
+                               ConnectTo    []Content
+                               InsideTint   color.NRGBA
+                               Level        uint8 // Must be < 128.
+
+                               Translucent bool // Sunlight is scattered and becomes normal light.
+                               Transparent bool // Sunlight isn't scattered.
+                               LightSrc    uint8
+
+                               GndContent   bool
+                               Collides     bool
+                               Pointable    bool
+                               Diggable     bool
+                               Climbable    bool
+                               Replaceable  bool
+                               OnRightClick bool
+
+                               DmgPerSec int32
+
+                               LiquidType   LiquidType
+                               FlowingAlt   string
+                               SrcAlt       string
+                               Viscosity    uint8 // 0-7
+                               LiqRenewable bool
+                               FlowRange    uint8
+                               DrownDmg     uint8
+                               Floodable    bool
+
+                               DrawBox, ColBox, SelBox NodeBox
+
+                               FootstepSnd, DiggingSnd, DugSnd SoundDef
+
+                               LegacyFaceDir bool
+                               LegacyMounted bool
+
+                               DigPredict string
+
+                               MaxLvl uint8
+
+                               AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
+                       }))(obj)).MoveResistance
+                       *p = read8(r)
+               }
+               {
+                       p := &(*(*(struct {
+                               Param0 Content
+
+                               Name   string
+                               Groups []Group
+
+                               P1Type   Param1Type
+                               P2Type   Param2Type
+                               DrawType DrawType
+
+                               Mesh  string
+                               Scale float32
+                               //mt:const uint8(6)
+                               Tiles        [6]TileDef
+                               OverlayTiles [6]TileDef
+                               //mt:const uint8(6)
+                               SpecialTiles [6]TileDef
+
+                               Color   color.NRGBA
+                               Palette Texture
+
+                               Waving       WaveType
+                               ConnectSides uint8
+                               ConnectTo    []Content
+                               InsideTint   color.NRGBA
+                               Level        uint8 // Must be < 128.
+
+                               Translucent bool // Sunlight is scattered and becomes normal light.
+                               Transparent bool // Sunlight isn't scattered.
+                               LightSrc    uint8
+
+                               GndContent   bool
+                               Collides     bool
+                               Pointable    bool
+                               Diggable     bool
+                               Climbable    bool
+                               Replaceable  bool
+                               OnRightClick bool
+
+                               DmgPerSec int32
+
+                               LiquidType   LiquidType
+                               FlowingAlt   string
+                               SrcAlt       string
+                               Viscosity    uint8 // 0-7
+                               LiqRenewable bool
+                               FlowRange    uint8
+                               DrownDmg     uint8
+                               Floodable    bool
+
+                               DrawBox, ColBox, SelBox NodeBox
+
+                               FootstepSnd, DiggingSnd, DugSnd SoundDef
+
+                               LegacyFaceDir bool
+                               LegacyMounted bool
+
+                               DigPredict string
+
+                               MaxLvl uint8
+
+                               AlphaUse
+
+                               MoveResistance uint8
+
+                               LiquidMovePhysics bool
+                       }))(obj)).LiquidMovePhysics
+                       switch n := read8(r); n {
+                       case 0:
+                               *p = false
+                       case 1:
+                               *p = true
+                       default:
+                               chk(fmt.Errorf("invalid bool: %d", n))
+                       }
+               }
                if r.N > 0 {
                        chk(fmt.Errorf("%d bytes of trailing data", r.N))
                }