1 // generated by read_mkauto.lua, DO NOT EDIT
5 "github.com/anon55555/mt"
6 "github.com/yuin/gopher-lua"
9 func readAOID(l *lua.LState, val lua.LValue, ptr *mt.AOID) {
10 if val.Type() != lua.LTNumber {
11 panic("invalid value for AOID: must be a number")
13 *ptr = mt.AOID(val.(lua.LNumber))
16 func readCompressionModes(l *lua.LState, val lua.LValue, ptr *mt.CompressionModes) {
17 if val.Type() != lua.LTNumber {
18 panic("invalid value for CompressionModes: must be a number")
20 *ptr = mt.CompressionModes(val.(lua.LNumber))
23 func readInt16(l *lua.LState, val lua.LValue, ptr *int16) {
24 if val.Type() != lua.LTNumber {
25 panic("invalid value for int16: must be a number")
27 *ptr = int16(val.(lua.LNumber))
30 func readInt32(l *lua.LState, val lua.LValue, ptr *int32) {
31 if val.Type() != lua.LTNumber {
32 panic("invalid value for int32: must be a number")
34 *ptr = int32(val.(lua.LNumber))
37 func readInteraction(l *lua.LState, val lua.LValue, ptr *mt.Interaction) {
38 if val.Type() != lua.LTString {
39 panic("invalid value for Interaction: must be a string")
41 str := string(val.(lua.LString))
56 panic("invalid value for interaction: " + str)
60 func readKeys(l *lua.LState, val lua.LValue, ptr *mt.Keys) {
61 if val.Type() != lua.LTTable {
62 panic("invalid value for Keys: must be a table")
64 if l.GetField(val, "forward") == lua.LTrue {
65 *ptr = *ptr | mt.ForwardKey
67 if l.GetField(val, "backward") == lua.LTrue {
68 *ptr = *ptr | mt.BackwardKey
70 if l.GetField(val, "left") == lua.LTrue {
71 *ptr = *ptr | mt.LeftKey
73 if l.GetField(val, "right") == lua.LTrue {
74 *ptr = *ptr | mt.RightKey
76 if l.GetField(val, "jump") == lua.LTrue {
77 *ptr = *ptr | mt.JumpKey
79 if l.GetField(val, "special") == lua.LTrue {
80 *ptr = *ptr | mt.SpecialKey
82 if l.GetField(val, "sneak") == lua.LTrue {
83 *ptr = *ptr | mt.SneakKey
85 if l.GetField(val, "dig") == lua.LTrue {
86 *ptr = *ptr | mt.DigKey
88 if l.GetField(val, "place") == lua.LTrue {
89 *ptr = *ptr | mt.PlaceKey
91 if l.GetField(val, "zoom") == lua.LTrue {
92 *ptr = *ptr | mt.ZoomKey
96 func readPlayerPos(l *lua.LState, val lua.LValue, ptr *mt.PlayerPos) {
97 if val.Type() != lua.LTTable {
98 panic("invalid value for PlayerPos: must be a table")
100 readUint8(l, l.GetField(val, "fov80"), &ptr.FOV80)
101 readKeys(l, l.GetField(val, "keys"), &ptr.Keys)
102 readInt32(l, l.GetField(val, "pitch100"), &ptr.Pitch100)
103 readVec3Int32(l, l.GetField(val, "pos100"), &ptr.Pos100)
104 readVec3Int32(l, l.GetField(val, "vel100"), &ptr.Vel100)
105 readUint8(l, l.GetField(val, "wanted_range"), &ptr.WantedRange)
106 readInt32(l, l.GetField(val, "yaw100"), &ptr.Yaw100)
109 func readSliceSoundID(l *lua.LState, val lua.LValue, ptr *[]mt.SoundID) {
110 if val.Type() != lua.LTTable {
111 panic("invalid value for []SoundID: must be a table")
113 tbl := val.(*lua.LTable)
115 *ptr = make([]mt.SoundID, n)
116 for i := range *ptr {
117 readSoundID(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
121 func readSliceString(l *lua.LState, val lua.LValue, ptr *[]string) {
122 if val.Type() != lua.LTTable {
123 panic("invalid value for []string: must be a table")
125 tbl := val.(*lua.LTable)
127 *ptr = make([]string, n)
128 for i := range *ptr {
129 readString(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
133 func readSliceVec3Int16(l *lua.LState, val lua.LValue, ptr *[][3]int16) {
134 if val.Type() != lua.LTTable {
135 panic("invalid value for [][3]int16: must be a table")
137 tbl := val.(*lua.LTable)
139 *ptr = make([][3]int16, n)
140 for i := range *ptr {
141 readVec3Int16(l, l.RawGetInt(tbl, i+1), &(*ptr)[i])
145 func readSoundID(l *lua.LState, val lua.LValue, ptr *mt.SoundID) {
146 if val.Type() != lua.LTNumber {
147 panic("invalid value for SoundID: must be a number")
149 *ptr = mt.SoundID(val.(lua.LNumber))
152 func readUint16(l *lua.LState, val lua.LValue, ptr *uint16) {
153 if val.Type() != lua.LTNumber {
154 panic("invalid value for uint16: must be a number")
156 *ptr = uint16(val.(lua.LNumber))
159 func readUint8(l *lua.LState, val lua.LValue, ptr *uint8) {
160 if val.Type() != lua.LTNumber {
161 panic("invalid value for uint8: must be a number")
163 *ptr = uint8(val.(lua.LNumber))
166 func readVec3Int16(l *lua.LState, val lua.LValue, ptr *[3]int16) {
167 if val.Type() != lua.LTTable {
168 panic("invalid value for [3]int16: must be a table")
170 readInt16(l, l.GetField(val, "x"), &(*ptr)[0])
171 readInt16(l, l.GetField(val, "y"), &(*ptr)[1])
172 readInt16(l, l.GetField(val, "z"), &(*ptr)[2])
175 func readVec3Int32(l *lua.LState, val lua.LValue, ptr *[3]int32) {
176 if val.Type() != lua.LTTable {
177 panic("invalid value for [3]int32: must be a table")
179 readInt32(l, l.GetField(val, "x"), &(*ptr)[0])
180 readInt32(l, l.GetField(val, "y"), &(*ptr)[1])
181 readInt32(l, l.GetField(val, "z"), &(*ptr)[2])
184 func ReadCmd(l *lua.LState) mt.Cmd {
185 str := l.CheckString(2)
188 ptr := &mt.ToSrvChatMsg{}
189 val := l.CheckTable(3)
190 readString(l, l.GetField(val, "msg"), &ptr.Msg)
193 ptr := &mt.ToSrvCltReady{}
194 val := l.CheckTable(3)
195 readUint16(l, l.GetField(val, "formspec"), &ptr.Formspec)
196 readUint8(l, l.GetField(val, "major"), &ptr.Major)
197 readUint8(l, l.GetField(val, "minor"), &ptr.Minor)
198 readUint8(l, l.GetField(val, "patch"), &ptr.Patch)
199 readString(l, l.GetField(val, "version"), &ptr.Version)
202 ptr := &mt.ToSrvDeletedBlks{}
203 val := l.CheckTable(3)
204 readSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
207 ptr := &mt.ToSrvFallDmg{}
208 val := l.CheckTable(3)
209 readUint16(l, l.GetField(val, "amount"), &ptr.Amount)
212 ptr := &mt.ToSrvFirstSRP{}
213 val := l.CheckTable(3)
214 readBool(l, l.GetField(val, "empty_passwd"), &ptr.EmptyPasswd)
215 readSliceByte(l, l.GetField(val, "salt"), &ptr.Salt)
216 readSliceByte(l, l.GetField(val, "verifier"), &ptr.Verifier)
219 ptr := &mt.ToSrvGotBlks{}
220 val := l.CheckTable(3)
221 readSliceVec3Int16(l, l.GetField(val, "blks"), &ptr.Blks)
224 ptr := &mt.ToSrvInit{}
225 val := l.CheckTable(3)
226 readUint16(l, l.GetField(val, "max_proto_ver"), &ptr.MaxProtoVer)
227 readUint16(l, l.GetField(val, "min_proto_ver"), &ptr.MinProtoVer)
228 readString(l, l.GetField(val, "player_name"), &ptr.PlayerName)
229 readBool(l, l.GetField(val, "send_full_item_meta"), &ptr.SendFullItemMeta)
230 readUint8(l, l.GetField(val, "serialize_ver"), &ptr.SerializeVer)
231 readCompressionModes(l, l.GetField(val, "supported_compression"), &ptr.SupportedCompression)
234 ptr := &mt.ToSrvInit2{}
235 val := l.CheckTable(3)
236 readString(l, l.GetField(val, "lang"), &ptr.Lang)
239 ptr := &mt.ToSrvInteract{}
240 val := l.CheckTable(3)
241 readInteraction(l, l.GetField(val, "action"), &ptr.Action)
242 readUint16(l, l.GetField(val, "item_slot"), &ptr.ItemSlot)
243 readPointedThing(l, l.GetField(val, "pointed"), &ptr.Pointed)
244 readPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
247 ptr := &mt.ToSrvInvAction{}
248 val := l.CheckTable(3)
249 readString(l, l.GetField(val, "action"), &ptr.Action)
252 ptr := &mt.ToSrvInvFields{}
253 val := l.CheckTable(3)
254 readSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
255 readString(l, l.GetField(val, "formname"), &ptr.Formname)
257 case "join_mod_chan":
258 ptr := &mt.ToSrvJoinModChan{}
259 val := l.CheckTable(3)
260 readString(l, l.GetField(val, "channel"), &ptr.Channel)
262 case "leave_mod_chan":
263 ptr := &mt.ToSrvLeaveModChan{}
264 val := l.CheckTable(3)
265 readString(l, l.GetField(val, "channel"), &ptr.Channel)
268 ptr := &mt.ToSrvMsgModChan{}
269 val := l.CheckTable(3)
270 readString(l, l.GetField(val, "channel"), &ptr.Channel)
271 readString(l, l.GetField(val, "msg"), &ptr.Msg)
274 ptr := &mt.ToSrvNil{}
276 case "node_meta_fields":
277 ptr := &mt.ToSrvNodeMetaFields{}
278 val := l.CheckTable(3)
279 readSliceField(l, l.GetField(val, "fields"), &ptr.Fields)
280 readString(l, l.GetField(val, "formname"), &ptr.Formname)
281 readVec3Int16(l, l.GetField(val, "pos"), &ptr.Pos)
284 ptr := &mt.ToSrvPlayerPos{}
285 val := l.CheckTable(3)
286 readPlayerPos(l, l.GetField(val, "pos"), &ptr.Pos)
288 case "removed_sounds":
289 ptr := &mt.ToSrvRemovedSounds{}
290 val := l.CheckTable(3)
291 readSliceSoundID(l, l.GetField(val, "ids"), &ptr.IDs)
294 ptr := &mt.ToSrvReqMedia{}
295 val := l.CheckTable(3)
296 readSliceString(l, l.GetField(val, "filenames"), &ptr.Filenames)
299 ptr := &mt.ToSrvRespawn{}
302 ptr := &mt.ToSrvSelectItem{}
303 val := l.CheckTable(3)
304 readUint16(l, l.GetField(val, "slot"), &ptr.Slot)
307 ptr := &mt.ToSrvSRPBytesA{}
308 val := l.CheckTable(3)
309 readSliceByte(l, l.GetField(val, "a"), &ptr.A)
310 readBool(l, l.GetField(val, "no_sha1"), &ptr.NoSHA1)
313 ptr := &mt.ToSrvSRPBytesM{}
314 val := l.CheckTable(3)
315 readSliceByte(l, l.GetField(val, "m"), &ptr.M)
319 panic("invalid packet type: " + str)