1 // generated by generate.lua, DO NOT EDIT
5 "github.com/anon55555/mt"
6 "github.com/yuin/gopher-lua"
9 func AnimType(l *lua.LState, val mt.AnimType) lua.LValue {
13 case mt.VerticalFrameAnim:
14 return lua.LString("vertical_frame")
15 case mt.SpriteSheetAnim:
16 return lua.LString("sprite_sheet")
22 func ChatMsgType(l *lua.LState, val mt.ChatMsgType) lua.LValue {
25 return lua.LString("raw")
27 return lua.LString("normal")
29 return lua.LString("announce")
31 return lua.LString("sys")
37 func HotbarParam(l *lua.LState, val mt.HotbarParam) lua.LValue {
40 return lua.LString("size")
42 return lua.LString("img")
44 return lua.LString("sel_img")
50 func HUDField(l *lua.LState, val mt.HUDField) lua.LValue {
53 return lua.LString("pos")
55 return lua.LString("name")
57 return lua.LString("scale")
59 return lua.LString("text")
61 return lua.LString("number")
63 return lua.LString("item")
65 return lua.LString("dir")
67 return lua.LString("align")
69 return lua.LString("offset")
71 return lua.LString("world_pos")
73 return lua.LString("size")
75 return lua.LString("z_index")
77 return lua.LString("text_2")
83 func HUDType(l *lua.LState, val mt.HUDType) lua.LValue {
86 return lua.LString("img")
88 return lua.LString("text")
90 return lua.LString("statbar")
92 return lua.LString("inv")
94 return lua.LString("waypoint")
95 case mt.ImgWaypointHUD:
96 return lua.LString("img_waypoint")
102 func KickReason(l *lua.LState, val mt.KickReason) lua.LValue {
105 return lua.LString("wrong_passwd")
106 case mt.UnexpectedData:
107 return lua.LString("unexpected_data")
108 case mt.SrvIsSingleplayer:
109 return lua.LString("srv_is_singleplayer")
110 case mt.UnsupportedVer:
111 return lua.LString("unsupported_ver")
112 case mt.BadNameChars:
113 return lua.LString("bad_name_chars")
115 return lua.LString("bad_name")
117 return lua.LString("too_many_clts")
119 return lua.LString("empty_passwd")
120 case mt.AlreadyConnected:
121 return lua.LString("already_connected")
123 return lua.LString("srv_err")
125 return lua.LString("custom")
127 return lua.LString("shutdown")
129 return lua.LString("crash")
135 func ModChanSig(l *lua.LState, val mt.ModChanSig) lua.LValue {
138 return lua.LString("join_ok")
140 return lua.LString("join_fail")
142 return lua.LString("leave_ok")
144 return lua.LString("leave_fail")
145 case mt.NotRegistered:
146 return lua.LString("not_registered")
148 return lua.LString("set_state")
154 func PlayerListUpdateType(l *lua.LState, val mt.PlayerListUpdateType) lua.LValue {
157 return lua.LString("init")
159 return lua.LString("add")
160 case mt.RemovePlayers:
161 return lua.LString("remove")
167 func SoundSrcType(l *lua.LState, val mt.SoundSrcType) lua.LValue {
172 return lua.LString("pos")
174 return lua.LString("ao")
180 func AuthMethods(l *lua.LState, val mt.AuthMethods) lua.LValue {
182 if val&mt.LegacyPasswd != 0 {
183 l.SetField(tbl, "legacy_passwd", lua.LTrue)
186 l.SetField(tbl, "srp", lua.LTrue)
188 if val&mt.FirstSRP != 0 {
189 l.SetField(tbl, "first_srp", lua.LTrue)
194 func CSMRestrictionFlags(l *lua.LState, val mt.CSMRestrictionFlags) lua.LValue {
196 if val&mt.NoCSMs != 0 {
197 l.SetField(tbl, "no_csms", lua.LTrue)
199 if val&mt.NoChatMsgs != 0 {
200 l.SetField(tbl, "no_chat_msgs", lua.LTrue)
202 if val&mt.NoNodeDefs != 0 {
203 l.SetField(tbl, "no_node_defs", lua.LTrue)
205 if val&mt.LimitMapRange != 0 {
206 l.SetField(tbl, "limit_map_range", lua.LTrue)
208 if val&mt.NoPlayerList != 0 {
209 l.SetField(tbl, "no_player_list", lua.LTrue)
214 func HUDFlags(l *lua.LState, val mt.HUDFlags) lua.LValue {
216 if val&mt.ShowHotbar != 0 {
217 l.SetField(tbl, "hotbar", lua.LTrue)
219 if val&mt.ShowHealthBar != 0 {
220 l.SetField(tbl, "health_bar", lua.LTrue)
222 if val&mt.ShowCrosshair != 0 {
223 l.SetField(tbl, "crosshair", lua.LTrue)
225 if val&mt.ShowWieldedItem != 0 {
226 l.SetField(tbl, "wielded_item", lua.LTrue)
228 if val&mt.ShowBreathBar != 0 {
229 l.SetField(tbl, "breath_bar", lua.LTrue)
231 if val&mt.ShowMinimap != 0 {
232 l.SetField(tbl, "minimap", lua.LTrue)
234 if val&mt.ShowRadarMinimap != 0 {
235 l.SetField(tbl, "radar_minimap", lua.LTrue)
240 func HUD(l *lua.LState, val mt.HUD) lua.LValue {
242 l.SetField(tbl, "align", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Align[0]), lua.LNumber(val.Align[1])}))
243 l.SetField(tbl, "dir", lua.LNumber(val.Dir))
244 l.SetField(tbl, "item", lua.LNumber(val.Item))
245 l.SetField(tbl, "name", lua.LString(string(val.Name)))
246 l.SetField(tbl, "number", lua.LNumber(val.Number))
247 l.SetField(tbl, "offset", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Offset[0]), lua.LNumber(val.Offset[1])}))
248 l.SetField(tbl, "pos", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1])}))
249 l.SetField(tbl, "scale", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Scale[0]), lua.LNumber(val.Scale[1])}))
250 l.SetField(tbl, "size", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Size[0]), lua.LNumber(val.Size[1])}))
251 l.SetField(tbl, "text", lua.LString(string(val.Text)))
252 l.SetField(tbl, "text_2", lua.LString(string(val.Text2)))
253 l.SetField(tbl, "type", HUDType(l, val.Type))
254 l.SetField(tbl, "world_pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.WorldPos[0]), lua.LNumber(val.WorldPos[1]), lua.LNumber(val.WorldPos[2])}))
255 l.SetField(tbl, "z_index", lua.LNumber(val.ZIndex))
259 func Node(l *lua.LState, val mt.Node) lua.LValue {
261 l.SetField(tbl, "param0", lua.LNumber(val.Param0))
262 l.SetField(tbl, "param1", lua.LNumber(val.Param1))
263 l.SetField(tbl, "param2", lua.LNumber(val.Param2))
267 func TileAnim(l *lua.LState, val mt.TileAnim) lua.LValue {
269 l.SetField(tbl, "aspect_ratio", Vec2(l, [2]lua.LNumber{lua.LNumber(val.AspectRatio[0]), lua.LNumber(val.AspectRatio[1])}))
270 l.SetField(tbl, "duration", lua.LNumber(val.Duration))
271 l.SetField(tbl, "n_frames", Vec2(l, [2]lua.LNumber{lua.LNumber(val.NFrames[0]), lua.LNumber(val.NFrames[1])}))
272 l.SetField(tbl, "type", AnimType(l, val.Type))
276 func PktType(pkt *mt.Pkt) lua.LString {
277 switch pkt.Cmd.(type) {
278 case *mt.ToCltAcceptAuth:
279 return lua.LString("accept_auth")
280 case *mt.ToCltAcceptSudoMode:
281 return lua.LString("accept_sudo_mode")
282 case *mt.ToCltAddHUD:
283 return lua.LString("add_hud")
284 case *mt.ToCltAddNode:
285 return lua.LString("add_node")
286 case *mt.ToCltAddParticleSpawner:
287 return lua.LString("add_particle_spawner")
288 case *mt.ToCltAddPlayerVel:
289 return lua.LString("add_player_vel")
290 case *mt.ToCltAnnounceMedia:
291 return lua.LString("announce_media")
292 case *mt.ToCltAOMsgs:
293 return lua.LString("ao_msgs")
294 case *mt.ToCltAORmAdd:
295 return lua.LString("ao_rm_add")
296 case *mt.ToCltBlkData:
297 return lua.LString("blk_data")
298 case *mt.ToCltBreath:
299 return lua.LString("breath")
300 case *mt.ToCltChangeHUD:
301 return lua.LString("change_hud")
302 case *mt.ToCltChatMsg:
303 return lua.LString("chat_msg")
304 case *mt.ToCltCloudParams:
305 return lua.LString("cloud_params")
306 case *mt.ToCltCSMRestrictionFlags:
307 return lua.LString("csm_restriction_flags")
308 case *mt.ToCltDeathScreen:
309 return lua.LString("death_screen")
310 case *mt.ToCltDelParticleSpawner:
311 return lua.LString("del_particle_spawner")
312 case *mt.ToCltDenySudoMode:
313 return lua.LString("deny_sudo_mode")
314 case *mt.ToCltDetachedInv:
315 return lua.LString("detached_inv")
317 return lua.LString("disco")
318 case *mt.ToCltEyeOffset:
319 return lua.LString("eye_offset")
320 case *mt.ToCltFadeSound:
321 return lua.LString("fade_sound")
322 case *mt.ToCltFormspecPrepend:
323 return lua.LString("formspec_prepend")
325 return lua.LString("fov")
327 return lua.LString("hello")
329 return lua.LString("hp")
330 case *mt.ToCltHUDFlags:
331 return lua.LString("hud_flags")
333 return lua.LString("inv")
334 case *mt.ToCltInvFormspec:
335 return lua.LString("inv_formspec")
336 case *mt.ToCltItemDefs:
337 return lua.LString("item_defs")
339 return lua.LString("kick")
340 case *mt.ToCltLegacyKick:
341 return lua.LString("legacy_kick")
342 case *mt.ToCltLocalPlayerAnim:
343 return lua.LString("local_player_anim")
345 return lua.LString("media")
346 case *mt.ToCltMediaPush:
347 return lua.LString("media_push")
348 case *mt.ToCltMinimapModes:
349 return lua.LString("minimap_modes")
350 case *mt.ToCltModChanMsg:
351 return lua.LString("mod_chan_msg")
352 case *mt.ToCltModChanSig:
353 return lua.LString("mod_chan_sig")
354 case *mt.ToCltMoonParams:
355 return lua.LString("moon_params")
356 case *mt.ToCltMovePlayer:
357 return lua.LString("move_player")
358 case *mt.ToCltMovement:
359 return lua.LString("movement")
360 case *mt.ToCltNodeDefs:
361 return lua.LString("node_defs")
362 case *mt.ToCltNodeMetasChanged:
363 return lua.LString("node_metas_changed")
364 case *mt.ToCltOverrideDayNightRatio:
365 return lua.LString("override_day_night_ratio")
366 case *mt.ToCltPlaySound:
367 return lua.LString("play_sound")
369 return lua.LString("privs")
370 case *mt.ToCltRemoveNode:
371 return lua.LString("remove_node")
373 return lua.LString("rm_hud")
374 case *mt.ToCltSetHotbarParam:
375 return lua.LString("set_hotbar_param")
376 case *mt.ToCltShowFormspec:
377 return lua.LString("show_formspec")
378 case *mt.ToCltSkyParams:
379 return lua.LString("sky_params")
380 case *mt.ToCltSpawnParticle:
381 return lua.LString("spawn_particle")
382 case *mt.ToCltSRPBytesSaltB:
383 return lua.LString("srp_bytes_salt_b")
384 case *mt.ToCltStarParams:
385 return lua.LString("star_params")
386 case *mt.ToCltStopSound:
387 return lua.LString("stop_sound")
388 case *mt.ToCltSunParams:
389 return lua.LString("sun_params")
390 case *mt.ToCltTimeOfDay:
391 return lua.LString("time_of_day")
392 case *mt.ToCltUpdatePlayerList:
393 return lua.LString("update_player_list")
399 func Pkt(l *lua.LState, pkt *mt.Pkt) lua.LValue {
404 l.SetField(tbl, "_type", PktType(pkt))
405 switch val := pkt.Cmd.(type) {
406 case *mt.ToCltAcceptAuth:
407 l.SetField(tbl, "map_seed", lua.LNumber(val.MapSeed))
408 l.SetField(tbl, "player_pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.PlayerPos[0]), lua.LNumber(val.PlayerPos[1]), lua.LNumber(val.PlayerPos[2])}))
409 l.SetField(tbl, "send_interval", lua.LNumber(val.SendInterval))
410 l.SetField(tbl, "sudo_auth_methods", AuthMethods(l, val.SudoAuthMethods))
411 case *mt.ToCltAddHUD:
412 l.SetField(tbl, "hud", HUD(l, val.HUD))
413 l.SetField(tbl, "id", lua.LNumber(val.ID))
414 case *mt.ToCltAddNode:
415 l.SetField(tbl, "keep_meta", lua.LBool(val.KeepMeta))
416 l.SetField(tbl, "node", Node(l, val.Node))
417 l.SetField(tbl, "pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1]), lua.LNumber(val.Pos[2])}))
418 case *mt.ToCltAddParticleSpawner:
419 l.SetField(tbl, "acc", Box3(l, [2][3]lua.LNumber{{lua.LNumber(val.Acc[0][0]), lua.LNumber(val.Acc[0][1]), lua.LNumber(val.Acc[0][2])}, {lua.LNumber(val.Acc[1][0]), lua.LNumber(val.Acc[1][1]), lua.LNumber(val.Acc[1][2])}}))
420 l.SetField(tbl, "amount", lua.LNumber(val.Amount))
421 l.SetField(tbl, "anim_params", TileAnim(l, val.AnimParams))
422 l.SetField(tbl, "ao_collision", lua.LBool(val.AOCollision))
423 l.SetField(tbl, "collide", lua.LBool(val.Collide))
424 l.SetField(tbl, "collision_rm", lua.LBool(val.CollisionRm))
425 l.SetField(tbl, "duration", lua.LNumber(val.Duration))
426 l.SetField(tbl, "expiration_time", Box1(l, [2]lua.LNumber{lua.LNumber(val.ExpirationTime[0]), lua.LNumber(val.ExpirationTime[1])}))
427 l.SetField(tbl, "glow", lua.LNumber(val.Glow))
428 l.SetField(tbl, "id", lua.LNumber(val.ID))
429 l.SetField(tbl, "node_param0", lua.LNumber(val.NodeParam0))
430 l.SetField(tbl, "node_param2", lua.LNumber(val.NodeParam2))
431 l.SetField(tbl, "node_tile", lua.LNumber(val.NodeTile))
432 l.SetField(tbl, "pos", Box3(l, [2][3]lua.LNumber{{lua.LNumber(val.Pos[0][0]), lua.LNumber(val.Pos[0][1]), lua.LNumber(val.Pos[0][2])}, {lua.LNumber(val.Pos[1][0]), lua.LNumber(val.Pos[1][1]), lua.LNumber(val.Pos[1][2])}}))
433 l.SetField(tbl, "size", Box1(l, [2]lua.LNumber{lua.LNumber(val.Size[0]), lua.LNumber(val.Size[1])}))
434 l.SetField(tbl, "texture", lua.LString(string(val.Texture)))
435 l.SetField(tbl, "vel", Box3(l, [2][3]lua.LNumber{{lua.LNumber(val.Vel[0][0]), lua.LNumber(val.Vel[0][1]), lua.LNumber(val.Vel[0][2])}, {lua.LNumber(val.Vel[1][0]), lua.LNumber(val.Vel[1][1]), lua.LNumber(val.Vel[1][2])}}))
436 l.SetField(tbl, "vertical", lua.LBool(val.Vertical))
437 case *mt.ToCltAddPlayerVel:
438 l.SetField(tbl, "vel", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Vel[0]), lua.LNumber(val.Vel[1]), lua.LNumber(val.Vel[2])}))
439 case *mt.ToCltBlkData:
440 l.SetField(tbl, "blkpos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Blkpos[0]), lua.LNumber(val.Blkpos[1]), lua.LNumber(val.Blkpos[2])}))
441 case *mt.ToCltBreath:
442 l.SetField(tbl, "breath", lua.LNumber(val.Breath))
443 case *mt.ToCltChangeHUD:
444 if val.Field == mt.HUDAlign {
445 l.SetField(tbl, "align", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Align[0]), lua.LNumber(val.Align[1])}))
447 if val.Field == mt.HUDDir {
448 l.SetField(tbl, "dir", lua.LNumber(val.Dir))
450 l.SetField(tbl, "field", HUDField(l, val.Field))
451 l.SetField(tbl, "id", lua.LNumber(val.ID))
452 if val.Field == mt.HUDItem {
453 l.SetField(tbl, "item", lua.LNumber(val.Item))
455 if val.Field == mt.HUDName {
456 l.SetField(tbl, "name", lua.LString(string(val.Name)))
458 if val.Field == mt.HUDNumber {
459 l.SetField(tbl, "number", lua.LNumber(val.Number))
461 if val.Field == mt.HUDOffset {
462 l.SetField(tbl, "offset", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Offset[0]), lua.LNumber(val.Offset[1])}))
464 if val.Field == mt.HUDPos {
465 l.SetField(tbl, "pos", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1])}))
467 if val.Field == mt.HUDSize {
468 l.SetField(tbl, "size", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Size[0]), lua.LNumber(val.Size[1])}))
470 if val.Field == mt.HUDText {
471 l.SetField(tbl, "text", lua.LString(string(val.Text)))
473 if val.Field == mt.HUDText2 {
474 l.SetField(tbl, "text_2", lua.LString(string(val.Text2)))
476 if val.Field == mt.HUDWorldPos {
477 l.SetField(tbl, "world_pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.WorldPos[0]), lua.LNumber(val.WorldPos[1]), lua.LNumber(val.WorldPos[2])}))
479 if val.Field == mt.HUDZIndex {
480 l.SetField(tbl, "z_index", lua.LNumber(val.ZIndex))
482 case *mt.ToCltChatMsg:
483 l.SetField(tbl, "sender", lua.LString(string(val.Sender)))
484 l.SetField(tbl, "text", lua.LString(string(val.Text)))
485 l.SetField(tbl, "timestamp", lua.LNumber(val.Timestamp))
486 l.SetField(tbl, "type", ChatMsgType(l, val.Type))
487 case *mt.ToCltCloudParams:
488 l.SetField(tbl, "ambient_color", Color(l, val.AmbientColor))
489 l.SetField(tbl, "density", lua.LNumber(val.Density))
490 l.SetField(tbl, "diffuse_color", Color(l, val.DiffuseColor))
491 l.SetField(tbl, "height", lua.LNumber(val.Height))
492 l.SetField(tbl, "speed", Vec2(l, [2]lua.LNumber{lua.LNumber(val.Speed[0]), lua.LNumber(val.Speed[1])}))
493 l.SetField(tbl, "thickness", lua.LNumber(val.Thickness))
494 case *mt.ToCltCSMRestrictionFlags:
495 l.SetField(tbl, "flags", CSMRestrictionFlags(l, val.Flags))
496 l.SetField(tbl, "map_range", lua.LNumber(val.MapRange))
497 case *mt.ToCltDeathScreen:
498 l.SetField(tbl, "point_at", Vec3(l, [3]lua.LNumber{lua.LNumber(val.PointAt[0]), lua.LNumber(val.PointAt[1]), lua.LNumber(val.PointAt[2])}))
499 l.SetField(tbl, "point_cam", lua.LBool(val.PointCam))
500 case *mt.ToCltDelParticleSpawner:
501 l.SetField(tbl, "id", lua.LNumber(val.ID))
502 case *mt.ToCltDetachedInv:
503 l.SetField(tbl, "inv", lua.LString(string(val.Inv)))
504 l.SetField(tbl, "keep", lua.LBool(val.Keep))
505 l.SetField(tbl, "len", lua.LNumber(val.Len))
506 l.SetField(tbl, "name", lua.LString(string(val.Name)))
507 case *mt.ToCltEyeOffset:
508 l.SetField(tbl, "first", Vec3(l, [3]lua.LNumber{lua.LNumber(val.First[0]), lua.LNumber(val.First[1]), lua.LNumber(val.First[2])}))
509 l.SetField(tbl, "third", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Third[0]), lua.LNumber(val.Third[1]), lua.LNumber(val.Third[2])}))
510 case *mt.ToCltFadeSound:
511 l.SetField(tbl, "gain", lua.LNumber(val.Gain))
512 l.SetField(tbl, "id", lua.LNumber(val.ID))
513 l.SetField(tbl, "step", lua.LNumber(val.Step))
514 case *mt.ToCltFormspecPrepend:
515 l.SetField(tbl, "prepend", lua.LString(string(val.Prepend)))
517 l.SetField(tbl, "fov", lua.LNumber(val.FOV))
518 l.SetField(tbl, "multiplier", lua.LBool(val.Multiplier))
519 l.SetField(tbl, "transition_time", lua.LNumber(val.TransitionTime))
521 l.SetField(tbl, "auth_methods", AuthMethods(l, val.AuthMethods))
522 l.SetField(tbl, "compression", lua.LNumber(val.Compression))
523 l.SetField(tbl, "proto_ver", lua.LNumber(val.ProtoVer))
524 l.SetField(tbl, "serialize_ver", lua.LNumber(val.SerializeVer))
525 l.SetField(tbl, "username", lua.LString(string(val.Username)))
527 l.SetField(tbl, "hp", lua.LNumber(val.HP))
528 case *mt.ToCltHUDFlags:
529 l.SetField(tbl, "flags", HUDFlags(l, val.Flags))
530 l.SetField(tbl, "mask", HUDFlags(l, val.Mask))
532 l.SetField(tbl, "inv", lua.LString(string(val.Inv)))
533 case *mt.ToCltInvFormspec:
534 l.SetField(tbl, "formspec", lua.LString(string(val.Formspec)))
536 if val.Reason == mt.Custom || val.Reason == mt.Shutdown || val.Reason == mt.Crash {
537 l.SetField(tbl, "custom", lua.LString(string(val.Custom)))
539 l.SetField(tbl, "reason", KickReason(l, val.Reason))
540 if val.Reason == mt.Shutdown || val.Reason == mt.Crash {
541 l.SetField(tbl, "reconnect", lua.LBool(val.Reconnect))
543 case *mt.ToCltLegacyKick:
544 l.SetField(tbl, "reason", lua.LString(string(val.Reason)))
545 case *mt.ToCltLocalPlayerAnim:
546 l.SetField(tbl, "dig", Box1(l, [2]lua.LNumber{lua.LNumber(val.Dig[0]), lua.LNumber(val.Dig[1])}))
547 l.SetField(tbl, "idle", Box1(l, [2]lua.LNumber{lua.LNumber(val.Idle[0]), lua.LNumber(val.Idle[1])}))
548 l.SetField(tbl, "speed", lua.LNumber(val.Speed))
549 l.SetField(tbl, "walk", Box1(l, [2]lua.LNumber{lua.LNumber(val.Walk[0]), lua.LNumber(val.Walk[1])}))
550 l.SetField(tbl, "walk_dig", Box1(l, [2]lua.LNumber{lua.LNumber(val.WalkDig[0]), lua.LNumber(val.WalkDig[1])}))
551 case *mt.ToCltMediaPush:
552 l.SetField(tbl, "data", lua.LString(string(val.Data)))
553 l.SetField(tbl, "filename", lua.LString(string(val.Filename)))
554 l.SetField(tbl, "sha1", lua.LString(string(val.SHA1[:])))
555 l.SetField(tbl, "should_cache", lua.LBool(val.ShouldCache))
556 case *mt.ToCltModChanMsg:
557 l.SetField(tbl, "channel", lua.LString(string(val.Channel)))
558 l.SetField(tbl, "msg", lua.LString(string(val.Msg)))
559 l.SetField(tbl, "sender", lua.LString(string(val.Sender)))
560 case *mt.ToCltModChanSig:
561 l.SetField(tbl, "channel", lua.LString(string(val.Channel)))
562 l.SetField(tbl, "signal", ModChanSig(l, val.Signal))
563 case *mt.ToCltMoonParams:
564 l.SetField(tbl, "size", lua.LNumber(val.Size))
565 l.SetField(tbl, "texture", lua.LString(string(val.Texture)))
566 l.SetField(tbl, "tone_map", lua.LString(string(val.ToneMap)))
567 l.SetField(tbl, "visible", lua.LBool(val.Visible))
568 case *mt.ToCltMovePlayer:
569 l.SetField(tbl, "pitch", lua.LNumber(val.Pitch))
570 l.SetField(tbl, "pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1]), lua.LNumber(val.Pos[2])}))
571 l.SetField(tbl, "yaw", lua.LNumber(val.Yaw))
572 case *mt.ToCltMovement:
573 l.SetField(tbl, "air_accel", lua.LNumber(val.AirAccel))
574 l.SetField(tbl, "climb_speed", lua.LNumber(val.ClimbSpeed))
575 l.SetField(tbl, "crouch_speed", lua.LNumber(val.CrouchSpeed))
576 l.SetField(tbl, "default_accel", lua.LNumber(val.DefaultAccel))
577 l.SetField(tbl, "fast_accel", lua.LNumber(val.FastAccel))
578 l.SetField(tbl, "fast_speed", lua.LNumber(val.FastSpeed))
579 l.SetField(tbl, "fluidity", lua.LNumber(val.Fluidity))
580 l.SetField(tbl, "gravity", lua.LNumber(val.Gravity))
581 l.SetField(tbl, "jump_speed", lua.LNumber(val.JumpSpeed))
582 l.SetField(tbl, "sink", lua.LNumber(val.Sink))
583 l.SetField(tbl, "smoothing", lua.LNumber(val.Smoothing))
584 l.SetField(tbl, "walk_speed", lua.LNumber(val.WalkSpeed))
585 case *mt.ToCltOverrideDayNightRatio:
586 l.SetField(tbl, "override", lua.LBool(val.Override))
587 l.SetField(tbl, "ratio", lua.LNumber(val.Ratio))
588 case *mt.ToCltPlaySound:
589 l.SetField(tbl, "ephemeral", lua.LBool(val.Ephemeral))
590 l.SetField(tbl, "fade", lua.LNumber(val.Fade))
591 l.SetField(tbl, "gain", lua.LNumber(val.Gain))
592 l.SetField(tbl, "id", lua.LNumber(val.ID))
593 l.SetField(tbl, "loop", lua.LBool(val.Loop))
594 l.SetField(tbl, "name", lua.LString(string(val.Name)))
595 l.SetField(tbl, "pitch", lua.LNumber(val.Pitch))
596 l.SetField(tbl, "pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1]), lua.LNumber(val.Pos[2])}))
597 l.SetField(tbl, "src_aoid", lua.LNumber(val.SrcAOID))
598 l.SetField(tbl, "src_type", SoundSrcType(l, val.SrcType))
600 l.SetField(tbl, "privs", StringSet(l, val.Privs))
601 case *mt.ToCltRemoveNode:
602 l.SetField(tbl, "pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1]), lua.LNumber(val.Pos[2])}))
604 l.SetField(tbl, "id", lua.LNumber(val.ID))
605 case *mt.ToCltSetHotbarParam:
606 l.SetField(tbl, "img", lua.LString(string(val.Img)))
607 l.SetField(tbl, "param", HotbarParam(l, val.Param))
608 l.SetField(tbl, "size", lua.LNumber(val.Size))
609 case *mt.ToCltShowFormspec:
610 l.SetField(tbl, "formname", lua.LString(string(val.Formname)))
611 l.SetField(tbl, "formspec", lua.LString(string(val.Formspec)))
612 case *mt.ToCltSkyParams:
613 l.SetField(tbl, "bg_color", Color(l, val.BgColor))
614 l.SetField(tbl, "clouds", lua.LBool(val.Clouds))
615 if val.Type == "regular" {
616 l.SetField(tbl, "dawn_horizon", Color(l, val.DawnHorizon))
618 if val.Type == "regular" {
619 l.SetField(tbl, "dawn_sky", Color(l, val.DawnSky))
621 if val.Type == "regular" {
622 l.SetField(tbl, "day_horizon", Color(l, val.DayHorizon))
624 if val.Type == "regular" {
625 l.SetField(tbl, "day_sky", Color(l, val.DaySky))
627 l.SetField(tbl, "fog_tint_type", lua.LString(string(val.FogTintType)))
628 if val.Type == "regular" {
629 l.SetField(tbl, "indoor", Color(l, val.Indoor))
631 l.SetField(tbl, "moon_fog_tint", Color(l, val.MoonFogTint))
632 if val.Type == "regular" {
633 l.SetField(tbl, "night_horizon", Color(l, val.NightHorizon))
635 if val.Type == "regular" {
636 l.SetField(tbl, "night_sky", Color(l, val.NightSky))
638 l.SetField(tbl, "sun_fog_tint", Color(l, val.SunFogTint))
639 if val.Type == "skybox" {
640 l.SetField(tbl, "textures", TextureList(l, val.Textures))
642 l.SetField(tbl, "type", lua.LString(string(val.Type)))
643 case *mt.ToCltSpawnParticle:
644 l.SetField(tbl, "acc", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Acc[0]), lua.LNumber(val.Acc[1]), lua.LNumber(val.Acc[2])}))
645 l.SetField(tbl, "anim_params", TileAnim(l, val.AnimParams))
646 l.SetField(tbl, "ao_collision", lua.LBool(val.AOCollision))
647 l.SetField(tbl, "collide", lua.LBool(val.Collide))
648 l.SetField(tbl, "collision_rm", lua.LBool(val.CollisionRm))
649 l.SetField(tbl, "expiration_time", lua.LNumber(val.ExpirationTime))
650 l.SetField(tbl, "glow", lua.LNumber(val.Glow))
651 l.SetField(tbl, "node_param0", lua.LNumber(val.NodeParam0))
652 l.SetField(tbl, "node_param2", lua.LNumber(val.NodeParam2))
653 l.SetField(tbl, "node_tile", lua.LNumber(val.NodeTile))
654 l.SetField(tbl, "pos", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Pos[0]), lua.LNumber(val.Pos[1]), lua.LNumber(val.Pos[2])}))
655 l.SetField(tbl, "size", lua.LNumber(val.Size))
656 l.SetField(tbl, "texture", lua.LString(string(val.Texture)))
657 l.SetField(tbl, "vel", Vec3(l, [3]lua.LNumber{lua.LNumber(val.Vel[0]), lua.LNumber(val.Vel[1]), lua.LNumber(val.Vel[2])}))
658 l.SetField(tbl, "vertical", lua.LBool(val.Vertical))
659 case *mt.ToCltSRPBytesSaltB:
660 l.SetField(tbl, "b", lua.LString(string(val.B)))
661 l.SetField(tbl, "salt", lua.LString(string(val.Salt)))
662 case *mt.ToCltStarParams:
663 l.SetField(tbl, "color", Color(l, val.Color))
664 l.SetField(tbl, "count", lua.LNumber(val.Count))
665 l.SetField(tbl, "size", lua.LNumber(val.Size))
666 l.SetField(tbl, "visible", lua.LBool(val.Visible))
667 case *mt.ToCltStopSound:
668 l.SetField(tbl, "id", lua.LNumber(val.ID))
669 case *mt.ToCltSunParams:
670 l.SetField(tbl, "rise", lua.LString(string(val.Rise)))
671 l.SetField(tbl, "rising", lua.LBool(val.Rising))
672 l.SetField(tbl, "size", lua.LNumber(val.Size))
673 l.SetField(tbl, "texture", lua.LString(string(val.Texture)))
674 l.SetField(tbl, "tone_map", lua.LString(string(val.ToneMap)))
675 l.SetField(tbl, "visible", lua.LBool(val.Visible))
676 case *mt.ToCltTimeOfDay:
677 l.SetField(tbl, "speed", lua.LNumber(val.Speed))
678 l.SetField(tbl, "time", lua.LNumber(val.Time))
679 case *mt.ToCltUpdatePlayerList:
680 l.SetField(tbl, "players", StringList(l, val.Players))
681 l.SetField(tbl, "type", PlayerListUpdateType(l, val.Type))