]> git.lizzy.rs Git - hydra-dragonfire.git/blobdiff - convert/read_auto.go
Add map component
[hydra-dragonfire.git] / convert / read_auto.go
index c5a39be78e968e5baa8a9b0cb213c11515019872..efb3d623eb793975845f98cb8ace6d8bf5c05806 100644 (file)
@@ -4,37 +4,38 @@ package convert
 import (
        "github.com/anon55555/mt"
        "github.com/yuin/gopher-lua"
+       "math"
 )
 
-func readAOID(l *lua.LState, val lua.LValue, ptr *mt.AOID) {
+func ReadAOID(l *lua.LState, val lua.LValue, ptr *mt.AOID) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for AOID: must be a number")
        }
-       *ptr = mt.AOID(val.(lua.LNumber))
+       *ptr = mt.AOID(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readCompressionModes(l *lua.LState, val lua.LValue, ptr *mt.CompressionModes) {
+func ReadCompressionModes(l *lua.LState, val lua.LValue, ptr *mt.CompressionModes) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for CompressionModes: must be a number")
        }
-       *ptr = mt.CompressionModes(val.(lua.LNumber))
+       *ptr = mt.CompressionModes(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readInt16(l *lua.LState, val lua.LValue, ptr *int16) {
+func ReadInt16(l *lua.LState, val lua.LValue, ptr *int16) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for int16: must be a number")
        }
-       *ptr = int16(val.(lua.LNumber))
+       *ptr = int16(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readInt32(l *lua.LState, val lua.LValue, ptr *int32) {
+func ReadInt32(l *lua.LState, val lua.LValue, ptr *int32) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for int32: must be a number")
        }
-       *ptr = int32(val.(lua.LNumber))
+       *ptr = int32(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readInteraction(l *lua.LState, val lua.LValue, ptr *mt.Interaction) {
+func ReadInteraction(l *lua.LState, val lua.LValue, ptr *mt.Interaction) {
        if val.Type() != lua.LTString {
                panic("invalid value for Interaction: must be a string")
        }
@@ -57,7 +58,7 @@ func readInteraction(l *lua.LState, val lua.LValue, ptr *mt.Interaction) {
        }
 }
 
-func readKeys(l *lua.LState, val lua.LValue, ptr *mt.Keys) {
+func ReadKeys(l *lua.LState, val lua.LValue, ptr *mt.Keys) {
        if val.Type() != lua.LTTable {
                panic("invalid value for Keys: must be a table")
        }
@@ -93,20 +94,20 @@ func readKeys(l *lua.LState, val lua.LValue, ptr *mt.Keys) {
        }
 }
 
-func readPlayerPos(l *lua.LState, val lua.LValue, ptr *mt.PlayerPos) {
+func ReadPlayerPos(l *lua.LState, val lua.LValue, ptr *mt.PlayerPos) {
        if val.Type() != lua.LTTable {
                panic("invalid value for PlayerPos: must be a table")
        }
-       readUint8(l, l.GetField(val, "fov80"), &ptr.FOV80)
-       readKeys(l, l.GetField(val, "keys"), &ptr.Keys)
-       readInt32(l, l.GetField(val, "pitch100"), &ptr.Pitch100)
-       readVec3Int32(l, l.GetField(val, "pos100"), &ptr.Pos100)
-       readVec3Int32(l, l.GetField(val, "vel100"), &ptr.Vel100)
-       readUint8(l, l.GetField(val, "wanted_range"), &ptr.WantedRange)
-       readInt32(l, l.GetField(val, "yaw100"), &ptr.Yaw100)
+       ReadUint8(l, l.GetField(val, "fov80"), &ptr.FOV80)
+       ReadKeys(l, l.GetField(val, "keys"), &ptr.Keys)
+       ReadInt32(l, l.GetField(val, "pitch100"), &ptr.Pitch100)
+       ReadVec3Int32(l, l.GetField(val, "pos100"), &ptr.Pos100)
+       ReadVec3Int32(l, l.GetField(val, "vel100"), &ptr.Vel100)
+       ReadUint8(l, l.GetField(val, "wanted_range"), &ptr.WantedRange)
+       ReadInt32(l, l.GetField(val, "yaw100"), &ptr.Yaw100)
 }
 
-func readSliceSoundID(l *lua.LState, val lua.LValue, ptr *[]mt.SoundID) {
+func ReadSliceSoundID(l *lua.LState, val lua.LValue, ptr *[]mt.SoundID) {
        if val.Type() != lua.LTTable {
                panic("invalid value for []SoundID: must be a table")
        }
@@ -114,11 +115,11 @@ func readSliceSoundID(l *lua.LState, val lua.LValue, ptr *[]mt.SoundID) {
        n := tbl.MaxN()
        *ptr = make([]mt.SoundID, n)
        for i := range *ptr {
-               readSoundID(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
+               ReadSoundID(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
        }
 }
 
-func readSliceString(l *lua.LState, val lua.LValue, ptr *[]string) {
+func ReadSliceString(l *lua.LState, val lua.LValue, ptr *[]string) {
        if val.Type() != lua.LTTable {
                panic("invalid value for []string: must be a table")
        }
@@ -126,11 +127,11 @@ func readSliceString(l *lua.LState, val lua.LValue, ptr *[]string) {
        n := tbl.MaxN()
        *ptr = make([]string, n)
        for i := range *ptr {
-               readString(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
+               ReadString(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
        }
 }
 
-func readSliceVec3Int16(l *lua.LState, val lua.LValue, ptr *[][3]int16) {
+func ReadSliceVec3Int16(l *lua.LState, val lua.LValue, ptr *[][3]int16) {
        if val.Type() != lua.LTTable {
                panic("invalid value for [][3]int16: must be a table")
        }
@@ -138,47 +139,47 @@ func readSliceVec3Int16(l *lua.LState, val lua.LValue, ptr *[][3]int16) {
        n := tbl.MaxN()
        *ptr = make([][3]int16, n)
        for i := range *ptr {
-               readVec3Int16(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
+               ReadVec3Int16(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
        }
 }
 
-func readSoundID(l *lua.LState, val lua.LValue, ptr *mt.SoundID) {
+func ReadSoundID(l *lua.LState, val lua.LValue, ptr *mt.SoundID) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for SoundID: must be a number")
        }
-       *ptr = mt.SoundID(val.(lua.LNumber))
+       *ptr = mt.SoundID(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readUint16(l *lua.LState, val lua.LValue, ptr *uint16) {
+func ReadUint16(l *lua.LState, val lua.LValue, ptr *uint16) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for uint16: must be a number")
        }
-       *ptr = uint16(val.(lua.LNumber))
+       *ptr = uint16(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readUint8(l *lua.LState, val lua.LValue, ptr *uint8) {
+func ReadUint8(l *lua.LState, val lua.LValue, ptr *uint8) {
        if val.Type() != lua.LTNumber {
                panic("invalid value for uint8: must be a number")
        }
-       *ptr = uint8(val.(lua.LNumber))
+       *ptr = uint8(math.Round(float64(val.(lua.LNumber))))
 }
 
-func readVec3Int16(l *lua.LState, val lua.LValue, ptr *[3]int16) {
+func ReadVec3Int16(l *lua.LState, val lua.LValue, ptr *[3]int16) {
        if val.Type() != lua.LTTable {
                panic("invalid value for [3]int16: must be a table")
        }
-       readInt16(l, l.GetField(val, "x"), &(*ptr)[0])
-       readInt16(l, l.GetField(val, "y"), &(*ptr)[1])
-       readInt16(l, l.GetField(val, "z"), &(*ptr)[2])
+       ReadInt16(l, l.GetField(val, "x"), &(*ptr)[0])
+       ReadInt16(l, l.GetField(val, "y"), &(*ptr)[1])
+       ReadInt16(l, l.GetField(val, "z"), &(*ptr)[2])
 }
 
-func readVec3Int32(l *lua.LState, val lua.LValue, ptr *[3]int32) {
+func ReadVec3Int32(l *lua.LState, val lua.LValue, ptr *[3]int32) {
        if val.Type() != lua.LTTable {
                panic("invalid value for [3]int32: must be a table")
        }
-       readInt32(l, l.GetField(val, "x"), &(*ptr)[0])
-       readInt32(l, l.GetField(val, "y"), &(*ptr)[1])
-       readInt32(l, l.GetField(val, "z"), &(*ptr)[2])
+       ReadInt32(l, l.GetField(val, "x"), &(*ptr)[0])
+       ReadInt32(l, l.GetField(val, "y"), &(*ptr)[1])
+       ReadInt32(l, l.GetField(val, "z"), &(*ptr)[2])
 }
 
 func ReadCmd(l *lua.LState) mt.Cmd {
@@ -187,88 +188,88 @@ func ReadCmd(l *lua.LState) mt.Cmd {
        case "chat_msg":
                ptr := &mt.ToSrvChatMsg{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "msg"), &ptr.Msg)
+               ReadString(l, l.GetField(val, "msg"), &ptr.Msg)
                return ptr
        case "clt_ready":
                ptr := &mt.ToSrvCltReady{}
                val := l.CheckTable(3)
-               readUint16(l, l.GetField(val, "formspec"), &ptr.Formspec)
-               readUint8(l, l.GetField(val, "major"), &ptr.Major)
-               readUint8(l, l.GetField(val, "minor"), &ptr.Minor)
-               readUint8(l, l.GetField(val, "patch"), &ptr.Patch)
-               readString(l, l.GetField(val, "version"), &ptr.Version)
+               ReadUint16(l, l.GetField(val, "formspec"), &ptr.Formspec)
+               ReadUint8(l, l.GetField(val, "major"), &ptr.Major)
+               ReadUint8(l, l.GetField(val, "minor"), &ptr.Minor)
+               ReadUint8(l, l.GetField(val, "patch"), &ptr.Patch)
+               ReadString(l, l.GetField(val, "version"), &ptr.Version)
                return ptr
        case "deleted_blks":
                ptr := &mt.ToSrvDeletedBlks{}
                val := l.CheckTable(3)
-               readSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
+               ReadSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
                return ptr
        case "fall_dmg":
                ptr := &mt.ToSrvFallDmg{}
                val := l.CheckTable(3)
-               readUint16(l, l.GetField(val, "amount"), &ptr.Amount)
+               ReadUint16(l, l.GetField(val, "amount"), &ptr.Amount)
                return ptr
        case "first_srp":
                ptr := &mt.ToSrvFirstSRP{}
                val := l.CheckTable(3)
-               readBool(l, l.GetField(val, "empty_passwd"), &ptr.EmptyPasswd)
-               readSliceByte(l, l.GetField(val, "salt"), &ptr.Salt)
-               readSliceByte(l, l.GetField(val, "verifier"), &ptr.Verifier)
+               ReadBool(l, l.GetField(val, "empty_passwd"), &ptr.EmptyPasswd)
+               ReadSliceByte(l, l.GetField(val, "salt"), &ptr.Salt)
+               ReadSliceByte(l, l.GetField(val, "verifier"), &ptr.Verifier)
                return ptr
        case "got_blks":
                ptr := &mt.ToSrvGotBlks{}
                val := l.CheckTable(3)
-               readSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
+               ReadSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
                return ptr
        case "init":
                ptr := &mt.ToSrvInit{}
                val := l.CheckTable(3)
-               readUint16(l, l.GetField(val, "max_proto_ver"), &ptr.MaxProtoVer)
-               readUint16(l, l.GetField(val, "min_proto_ver"), &ptr.MinProtoVer)
-               readString(l, l.GetField(val, "player_name"), &ptr.PlayerName)
-               readBool(l, l.GetField(val, "send_full_item_meta"), &ptr.SendFullItemMeta)
-               readUint8(l, l.GetField(val, "serialize_ver"), &ptr.SerializeVer)
-               readCompressionModes(l, l.GetField(val, "supported_compression"), &ptr.SupportedCompression)
+               ReadUint16(l, l.GetField(val, "max_proto_ver"), &ptr.MaxProtoVer)
+               ReadUint16(l, l.GetField(val, "min_proto_ver"), &ptr.MinProtoVer)
+               ReadString(l, l.GetField(val, "player_name"), &ptr.PlayerName)
+               ReadBool(l, l.GetField(val, "send_full_item_meta"), &ptr.SendFullItemMeta)
+               ReadUint8(l, l.GetField(val, "serialize_ver"), &ptr.SerializeVer)
+               ReadCompressionModes(l, l.GetField(val, "supported_compression"), &ptr.SupportedCompression)
                return ptr
        case "init2":
                ptr := &mt.ToSrvInit2{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "lang"), &ptr.Lang)
+               ReadString(l, l.GetField(val, "lang"), &ptr.Lang)
                return ptr
        case "interact":
                ptr := &mt.ToSrvInteract{}
                val := l.CheckTable(3)
-               readInteraction(l, l.GetField(val, "action"), &ptr.Action)
-               readUint16(l, l.GetField(val, "item_slot"), &ptr.ItemSlot)
-               readPointedThing(l, l.GetField(val, "pointed"), &ptr.Pointed)
-               readPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
+               ReadInteraction(l, l.GetField(val, "action"), &ptr.Action)
+               ReadUint16(l, l.GetField(val, "item_slot"), &ptr.ItemSlot)
+               ReadPointedThing(l, l.GetField(val, "pointed"), &ptr.Pointed)
+               ReadPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
                return ptr
        case "inv_action":
                ptr := &mt.ToSrvInvAction{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "action"), &ptr.Action)
+               ReadString(l, l.GetField(val, "action"), &ptr.Action)
                return ptr
        case "inv_fields":
                ptr := &mt.ToSrvInvFields{}
                val := l.CheckTable(3)
-               readSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
-               readString(l, l.GetField(val, "formname"), &ptr.Formname)
+               ReadSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
+               ReadString(l, l.GetField(val, "formname"), &ptr.Formname)
                return ptr
        case "join_mod_chan":
                ptr := &mt.ToSrvJoinModChan{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "channel"), &ptr.Channel)
+               ReadString(l, l.GetField(val, "channel"), &ptr.Channel)
                return ptr
        case "leave_mod_chan":
                ptr := &mt.ToSrvLeaveModChan{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "channel"), &ptr.Channel)
+               ReadString(l, l.GetField(val, "channel"), &ptr.Channel)
                return ptr
        case "msg_mod_chan":
                ptr := &mt.ToSrvMsgModChan{}
                val := l.CheckTable(3)
-               readString(l, l.GetField(val, "channel"), &ptr.Channel)
-               readString(l, l.GetField(val, "msg"), &ptr.Msg)
+               ReadString(l, l.GetField(val, "channel"), &ptr.Channel)
+               ReadString(l, l.GetField(val, "msg"), &ptr.Msg)
                return ptr
        case "nil":
                ptr := &mt.ToSrvNil{}
@@ -276,24 +277,24 @@ func ReadCmd(l *lua.LState) mt.Cmd {
        case "node_meta_fields":
                ptr := &mt.ToSrvNodeMetaFields{}
                val := l.CheckTable(3)
-               readSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
-               readString(l, l.GetField(val, "formname"), &ptr.Formname)
-               readVec3Int16(l, l.GetField(val, "pos"), &ptr.Pos)
+               ReadSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
+               ReadString(l, l.GetField(val, "formname"), &ptr.Formname)
+               ReadVec3Int16(l, l.GetField(val, "pos"), &ptr.Pos)
                return ptr
        case "player_pos":
                ptr := &mt.ToSrvPlayerPos{}
                val := l.CheckTable(3)
-               readPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
+               ReadPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
                return ptr
        case "removed_sounds":
                ptr := &mt.ToSrvRemovedSounds{}
                val := l.CheckTable(3)
-               readSliceSoundID(l, l.GetField(val, "ids"), &ptr.IDs)
+               ReadSliceSoundID(l, l.GetField(val, "ids"), &ptr.IDs)
                return ptr
        case "req_media":
                ptr := &mt.ToSrvReqMedia{}
                val := l.CheckTable(3)
-               readSliceString(l, l.GetField(val, "filenames"), &ptr.Filenames)
+               ReadSliceString(l, l.GetField(val, "filenames"), &ptr.Filenames)
                return ptr
        case "respawn":
                ptr := &mt.ToSrvRespawn{}
@@ -301,18 +302,18 @@ func ReadCmd(l *lua.LState) mt.Cmd {
        case "select_item":
                ptr := &mt.ToSrvSelectItem{}
                val := l.CheckTable(3)
-               readUint16(l, l.GetField(val, "slot"), &ptr.Slot)
+               ReadUint16(l, l.GetField(val, "slot"), &ptr.Slot)
                return ptr
        case "srp_bytes_a":
                ptr := &mt.ToSrvSRPBytesA{}
                val := l.CheckTable(3)
-               readSliceByte(l, l.GetField(val, "a"), &ptr.A)
-               readBool(l, l.GetField(val, "no_sha1"), &ptr.NoSHA1)
+               ReadSliceByte(l, l.GetField(val, "a"), &ptr.A)
+               ReadBool(l, l.GetField(val, "no_sha1"), &ptr.NoSHA1)
                return ptr
        case "srp_bytes_m":
                ptr := &mt.ToSrvSRPBytesM{}
                val := l.CheckTable(3)
-               readSliceByte(l, l.GetField(val, "m"), &ptr.M)
+               ReadSliceByte(l, l.GetField(val, "m"), &ptr.M)
                return ptr
        }