1 // generated by mkconvert.lua, DO NOT EDIT
5 "github.com/Shopify/go-lua"
6 "github.com/anon55555/mt"
9 func luaPushHotbarParam(l *lua.State, val mt.HotbarParam) {
16 l.PushString("sel_img")
20 func luaPushChatMsgType(l *lua.State, val mt.ChatMsgType) {
25 l.PushString("normal")
27 l.PushString("announce")
33 func luaPushHUDType(l *lua.State, val mt.HUDType) {
40 l.PushString("statbar")
44 l.PushString("waypoint")
45 case mt.ImgWaypointHUD:
46 l.PushString("img_waypoint")
50 func luaPushPlayerListUpdateType(l *lua.State, val mt.PlayerListUpdateType) {
56 case mt.RemovePlayers:
57 l.PushString("remove")
61 func luaPushHUDField(l *lua.State, val mt.HUDField) {
72 l.PushString("number")
80 l.PushString("offset")
82 l.PushString("world_pos")
86 l.PushString("z_index")
88 l.PushString("text_2")
92 func luaPushModChanSig(l *lua.State, val mt.ModChanSig) {
95 l.PushString("join_ok")
97 l.PushString("join_fail")
99 l.PushString("leave_ok")
101 l.PushString("leave_fail")
102 case mt.NotRegistered:
103 l.PushString("not_registered")
105 l.PushString("set_state")
109 func luaPushKickReason(l *lua.State, val mt.KickReason) {
112 l.PushString("wrong_passwd")
113 case mt.UnexpectedData:
114 l.PushString("unexpected_data")
115 case mt.SrvIsSingleplayer:
116 l.PushString("srv_is_singleplayer")
117 case mt.UnsupportedVer:
118 l.PushString("unsupported_ver")
119 case mt.BadNameChars:
120 l.PushString("bad_name_chars")
122 l.PushString("bad_name")
124 l.PushString("too_many_clts")
126 l.PushString("empty_passwd")
127 case mt.AlreadyConnected:
128 l.PushString("already_connected")
130 l.PushString("srv_err")
132 l.PushString("custom")
134 l.PushString("shutdown")
136 l.PushString("crash")
140 func luaPushSoundSrcType(l *lua.State, val mt.SoundSrcType) {
151 func luaPushAnimType(l *lua.State, val mt.AnimType) {
155 case mt.VerticalFrameAnim:
156 l.PushString("vertical_frame")
157 case mt.SpriteSheetAnim:
158 l.PushString("sprite_sheet")
162 func luaPushAuthMethods(l *lua.State, val mt.AuthMethods) {
164 if val&mt.LegacyPasswd != 0 {
166 l.SetField(-2, "legacy_passwd")
170 l.SetField(-2, "srp")
172 if val&mt.FirstSRP != 0 {
174 l.SetField(-2, "first_srp")
178 func luaPushHUDFlags(l *lua.State, val mt.HUDFlags) {
180 if val&mt.ShowHotbar != 0 {
182 l.SetField(-2, "hotbar")
184 if val&mt.ShowHealthBar != 0 {
186 l.SetField(-2, "health_bar")
188 if val&mt.ShowCrosshair != 0 {
190 l.SetField(-2, "crosshair")
192 if val&mt.ShowWieldedItem != 0 {
194 l.SetField(-2, "wielded_item")
196 if val&mt.ShowBreathBar != 0 {
198 l.SetField(-2, "breath_bar")
200 if val&mt.ShowMinimap != 0 {
202 l.SetField(-2, "minimap")
204 if val&mt.ShowRadarMinimap != 0 {
206 l.SetField(-2, "radar_minimap")
210 func luaPushCSMRestrictionFlags(l *lua.State, val mt.CSMRestrictionFlags) {
212 if val&mt.NoCSMs != 0 {
214 l.SetField(-2, "no_csms")
216 if val&mt.NoChatMsgs != 0 {
218 l.SetField(-2, "no_chat_msgs")
220 if val&mt.NoNodeDefs != 0 {
222 l.SetField(-2, "no_node_defs")
224 if val&mt.LimitMapRange != 0 {
226 l.SetField(-2, "limit_map_range")
228 if val&mt.NoPlayerList != 0 {
230 l.SetField(-2, "no_player_list")
234 func luaPushTileAnim(l *lua.State, val mt.TileAnim) {
236 luaPushAnimType(l, val.Type)
237 l.SetField(-2, "type")
238 luaPushVec2(l, [2]float64{float64(val.NFrames[0]), float64(val.NFrames[1])})
239 l.SetField(-2, "n_frames")
240 l.PushNumber(float64(val.Duration))
241 l.SetField(-2, "duration")
242 luaPushVec2(l, [2]float64{float64(val.AspectRatio[0]), float64(val.AspectRatio[1])})
243 l.SetField(-2, "aspect_ratio")
246 func luaPushNode(l *lua.State, val mt.Node) {
248 l.PushInteger(int(val.Param0))
249 l.SetField(-2, "param0")
250 l.PushInteger(int(val.Param1))
251 l.SetField(-2, "param1")
252 l.PushInteger(int(val.Param2))
253 l.SetField(-2, "param2")
256 func luaPushHUD(l *lua.State, val mt.HUD) {
258 luaPushHUDType(l, val.Type)
259 l.SetField(-2, "type")
260 l.PushInteger(int(val.ZIndex))
261 l.SetField(-2, "z_index")
262 luaPushVec2(l, [2]float64{float64(val.Scale[0]), float64(val.Scale[1])})
263 l.SetField(-2, "scale")
264 l.PushString(string(val.Name))
265 l.SetField(-2, "name")
266 luaPushVec3(l, [3]float64{float64(val.WorldPos[0]), float64(val.WorldPos[1]), float64(val.WorldPos[2])})
267 l.SetField(-2, "world_pos")
268 l.PushString(string(val.Text))
269 l.SetField(-2, "text")
270 l.PushString(string(val.Text2))
271 l.SetField(-2, "text_2")
272 luaPushVec2(l, [2]float64{float64(val.Size[0]), float64(val.Size[1])})
273 l.SetField(-2, "size")
274 luaPushVec2(l, [2]float64{float64(val.Align[0]), float64(val.Align[1])})
275 l.SetField(-2, "align")
276 luaPushVec2(l, [2]float64{float64(val.Pos[0]), float64(val.Pos[1])})
277 l.SetField(-2, "pos")
278 l.PushInteger(int(val.Dir))
279 l.SetField(-2, "dir")
280 luaPushVec2(l, [2]float64{float64(val.Offset[0]), float64(val.Offset[1])})
281 l.SetField(-2, "offset")
282 l.PushInteger(int(val.Number))
283 l.SetField(-2, "number")
284 l.PushInteger(int(val.Item))
285 l.SetField(-2, "item")
288 func pktToString(pkt *mt.Pkt) string {
289 switch pkt.Cmd.(type) {
290 case *mt.ToCltPlaySound:
292 case *mt.ToCltLegacyKick:
296 case *mt.ToCltNodeMetasChanged:
297 return "node_metas_changed"
300 case *mt.ToCltAcceptSudoMode:
301 return "accept_sudo_mode"
304 case *mt.ToCltDetachedInv:
305 return "detached_inv"
306 case *mt.ToCltSpawnParticle:
307 return "spawn_particle"
308 case *mt.ToCltAcceptAuth:
310 case *mt.ToCltOverrideDayNightRatio:
311 return "override_day_night_ratio"
312 case *mt.ToCltMinimapModes:
313 return "minimap_modes"
314 case *mt.ToCltAddHUD:
318 case *mt.ToCltChangeHUD:
320 case *mt.ToCltFormspecPrepend:
321 return "formspec_prepend"
322 case *mt.ToCltSRPBytesSaltB:
323 return "srp_bytes_salt_b"
324 case *mt.ToCltSetHotbarParam:
325 return "set_hotbar_param"
326 case *mt.ToCltMovePlayer:
328 case *mt.ToCltAddParticleSpawner:
329 return "add_particle_spawner"
332 case *mt.ToCltDelParticleSpawner:
333 return "del_particle_spawner"
334 case *mt.ToCltModChanSig:
335 return "mod_chan_sig"
336 case *mt.ToCltMoonParams:
338 case *mt.ToCltModChanMsg:
339 return "mod_chan_msg"
340 case *mt.ToCltSunParams:
344 case *mt.ToCltRemoveNode:
346 case *mt.ToCltNodeDefs:
348 case *mt.ToCltMediaPush:
350 case *mt.ToCltLocalPlayerAnim:
351 return "local_player_anim"
352 case *mt.ToCltFadeSound:
354 case *mt.ToCltItemDefs:
356 case *mt.ToCltUpdatePlayerList:
357 return "update_player_list"
358 case *mt.ToCltEyeOffset:
364 case *mt.ToCltBlkData:
366 case *mt.ToCltSkyParams:
368 case *mt.ToCltBreath:
370 case *mt.ToCltChatMsg:
372 case *mt.ToCltHUDFlags:
374 case *mt.ToCltAOMsgs:
378 case *mt.ToCltStarParams:
380 case *mt.ToCltDeathScreen:
381 return "death_screen"
382 case *mt.ToCltAORmAdd:
384 case *mt.ToCltAddPlayerVel:
385 return "add_player_vel"
386 case *mt.ToCltMovement:
388 case *mt.ToCltCloudParams:
389 return "cloud_params"
390 case *mt.ToCltDenySudoMode:
391 return "deny_sudo_mode"
392 case *mt.ToCltCSMRestrictionFlags:
393 return "csm_restriction_flags"
394 case *mt.ToCltAddNode:
396 case *mt.ToCltStopSound:
398 case *mt.ToCltInvFormspec:
399 return "inv_formspec"
400 case *mt.ToCltAnnounceMedia:
401 return "announce_media"
402 case *mt.ToCltShowFormspec:
403 return "show_formspec"
404 case *mt.ToCltTimeOfDay:
411 func pktToLua(l *lua.State, pkt *mt.Pkt) {
417 l.PushString(pktToString(pkt))
418 l.SetField(-2, "_type")
419 switch val := pkt.Cmd.(type) {
420 case *mt.ToCltPlaySound:
421 l.PushNumber(float64(val.Gain))
422 l.SetField(-2, "gain")
423 l.PushInteger(int(val.ID))
425 l.PushNumber(float64(val.Pitch))
426 l.SetField(-2, "pitch")
427 luaPushSoundSrcType(l, val.SrcType)
428 l.SetField(-2, "src_type")
429 l.PushInteger(int(val.SrcAOID))
430 l.SetField(-2, "src_aoid")
431 l.PushNumber(float64(val.Fade))
432 l.SetField(-2, "fade")
433 l.PushBoolean(bool(val.Ephemeral))
434 l.SetField(-2, "ephemeral")
435 l.PushBoolean(bool(val.Loop))
436 l.SetField(-2, "loop")
437 l.PushString(string(val.Name))
438 l.SetField(-2, "name")
439 luaPushVec3(l, [3]float64{float64(val.Pos[0]), float64(val.Pos[1]), float64(val.Pos[2])})
440 l.SetField(-2, "pos")
441 case *mt.ToCltLegacyKick:
442 l.PushString(string(val.Reason))
443 l.SetField(-2, "reason")
445 l.PushNumber(float64(val.TransitionTime))
446 l.SetField(-2, "transition_time")
447 l.PushBoolean(bool(val.Multiplier))
448 l.SetField(-2, "multiplier")
449 l.PushNumber(float64(val.FOV))
450 l.SetField(-2, "fov")
452 luaPushAuthMethods(l, val.AuthMethods)
453 l.SetField(-2, "auth_methods")
454 l.PushString(string(val.Username))
455 l.SetField(-2, "username")
456 l.PushInteger(int(val.Compression))
457 l.SetField(-2, "compression")
458 l.PushInteger(int(val.ProtoVer))
459 l.SetField(-2, "proto_ver")
460 l.PushInteger(int(val.SerializeVer))
461 l.SetField(-2, "serialize_ver")
463 luaPushStringSet(l, val.Privs)
464 l.SetField(-2, "privs")
465 case *mt.ToCltDetachedInv:
466 l.PushString(string(val.Inv))
467 l.SetField(-2, "inv")
468 l.PushBoolean(bool(val.Keep))
469 l.SetField(-2, "keep")
470 l.PushInteger(int(val.Len))
471 l.SetField(-2, "len")
472 l.PushString(string(val.Name))
473 l.SetField(-2, "name")
474 case *mt.ToCltSpawnParticle:
475 l.PushBoolean(bool(val.Collide))
476 l.SetField(-2, "collide")
477 l.PushString(string(val.Texture))
478 l.SetField(-2, "texture")
479 luaPushVec3(l, [3]float64{float64(val.Pos[0]), float64(val.Pos[1]), float64(val.Pos[2])})
480 l.SetField(-2, "pos")
481 l.PushInteger(int(val.NodeTile))
482 l.SetField(-2, "node_tile")
483 l.PushBoolean(bool(val.Vertical))
484 l.SetField(-2, "vertical")
485 l.PushInteger(int(val.Glow))
486 l.SetField(-2, "glow")
487 l.PushInteger(int(val.NodeParam2))
488 l.SetField(-2, "node_param2")
489 l.PushInteger(int(val.NodeParam0))
490 l.SetField(-2, "node_param0")
491 l.PushBoolean(bool(val.AOCollision))
492 l.SetField(-2, "ao_collision")
493 l.PushNumber(float64(val.Size))
494 l.SetField(-2, "size")
495 l.PushNumber(float64(val.ExpirationTime))
496 l.SetField(-2, "expiration_time")
497 l.PushBoolean(bool(val.CollisionRm))
498 l.SetField(-2, "collision_rm")
499 luaPushTileAnim(l, val.AnimParams)
500 l.SetField(-2, "anim_params")
501 luaPushVec3(l, [3]float64{float64(val.Acc[0]), float64(val.Acc[1]), float64(val.Acc[2])})
502 l.SetField(-2, "acc")
503 luaPushVec3(l, [3]float64{float64(val.Vel[0]), float64(val.Vel[1]), float64(val.Vel[2])})
504 l.SetField(-2, "vel")
505 case *mt.ToCltAcceptAuth:
506 l.PushNumber(float64(val.MapSeed))
507 l.SetField(-2, "map_seed")
508 luaPushAuthMethods(l, val.SudoAuthMethods)
509 l.SetField(-2, "sudo_auth_methods")
510 l.PushNumber(float64(val.SendInterval))
511 l.SetField(-2, "send_interval")
512 luaPushVec3(l, [3]float64{float64(val.PlayerPos[0]), float64(val.PlayerPos[1]), float64(val.PlayerPos[2])})
513 l.SetField(-2, "player_pos")
514 case *mt.ToCltOverrideDayNightRatio:
515 l.PushInteger(int(val.Ratio))
516 l.SetField(-2, "ratio")
517 l.PushBoolean(bool(val.Override))
518 l.SetField(-2, "override")
519 case *mt.ToCltAddHUD:
520 luaPushHUD(l, val.HUD)
521 l.SetField(-2, "hud")
522 l.PushInteger(int(val.ID))
525 l.PushInteger(int(val.HP))
527 case *mt.ToCltChangeHUD:
528 if val.Field == mt.HUDWorldPos {
529 luaPushVec3(l, [3]float64{float64(val.WorldPos[0]), float64(val.WorldPos[1]), float64(val.WorldPos[2])})
530 l.SetField(-2, "world_pos")
532 if val.Field == mt.HUDText2 {
533 l.PushString(string(val.Text2))
534 l.SetField(-2, "text_2")
536 if val.Field == mt.HUDItem {
537 l.PushInteger(int(val.Item))
538 l.SetField(-2, "item")
540 if val.Field == mt.HUDZIndex {
541 l.PushInteger(int(val.ZIndex))
542 l.SetField(-2, "z_index")
544 if val.Field == mt.HUDPos {
545 luaPushVec2(l, [2]float64{float64(val.Pos[0]), float64(val.Pos[1])})
546 l.SetField(-2, "pos")
548 if val.Field == mt.HUDSize {
549 luaPushVec2(l, [2]float64{float64(val.Size[0]), float64(val.Size[1])})
550 l.SetField(-2, "size")
552 if val.Field == mt.HUDName {
553 l.PushString(string(val.Name))
554 l.SetField(-2, "name")
556 if val.Field == mt.HUDDir {
557 l.PushInteger(int(val.Dir))
558 l.SetField(-2, "dir")
560 if val.Field == mt.HUDAlign {
561 luaPushVec2(l, [2]float64{float64(val.Align[0]), float64(val.Align[1])})
562 l.SetField(-2, "align")
564 if val.Field == mt.HUDNumber {
565 l.PushInteger(int(val.Number))
566 l.SetField(-2, "number")
568 if val.Field == mt.HUDText {
569 l.PushString(string(val.Text))
570 l.SetField(-2, "text")
572 if val.Field == mt.HUDOffset {
573 luaPushVec2(l, [2]float64{float64(val.Offset[0]), float64(val.Offset[1])})
574 l.SetField(-2, "offset")
576 luaPushHUDField(l, val.Field)
577 l.SetField(-2, "field")
578 l.PushInteger(int(val.ID))
580 case *mt.ToCltFormspecPrepend:
581 l.PushString(string(val.Prepend))
582 l.SetField(-2, "prepend")
583 case *mt.ToCltSRPBytesSaltB:
584 l.PushString(string(val.B))
586 l.PushString(string(val.Salt))
587 l.SetField(-2, "salt")
588 case *mt.ToCltSetHotbarParam:
589 luaPushHotbarParam(l, val.Param)
590 l.SetField(-2, "param")
591 l.PushInteger(int(val.Size))
592 l.SetField(-2, "size")
593 l.PushString(string(val.Img))
594 l.SetField(-2, "img")
595 case *mt.ToCltMovePlayer:
596 l.PushNumber(float64(val.Yaw))
597 l.SetField(-2, "yaw")
598 l.PushNumber(float64(val.Pitch))
599 l.SetField(-2, "pitch")
600 luaPushVec3(l, [3]float64{float64(val.Pos[0]), float64(val.Pos[1]), float64(val.Pos[2])})
601 l.SetField(-2, "pos")
602 case *mt.ToCltAddParticleSpawner:
603 luaPushBox3(l, [2][3]float64{{float64(val.Acc[0][0]), float64(val.Acc[0][1]), float64(val.Acc[0][2])}, {float64(val.Acc[1][0]), float64(val.Acc[1][1]), float64(val.Acc[1][2])}})
604 l.SetField(-2, "acc")
605 l.PushInteger(int(val.ID))
607 l.PushString(string(val.Texture))
608 l.SetField(-2, "texture")
609 l.PushBoolean(bool(val.Vertical))
610 l.SetField(-2, "vertical")
611 luaPushBox1(l, [2]float64{float64(val.ExpirationTime[0]), float64(val.ExpirationTime[1])})
612 l.SetField(-2, "expiration_time")
613 luaPushTileAnim(l, val.AnimParams)
614 l.SetField(-2, "anim_params")
615 l.PushBoolean(bool(val.AOCollision))
616 l.SetField(-2, "ao_collision")
617 luaPushBox3(l, [2][3]float64{{float64(val.Pos[0][0]), float64(val.Pos[0][1]), float64(val.Pos[0][2])}, {float64(val.Pos[1][0]), float64(val.Pos[1][1]), float64(val.Pos[1][2])}})
618 l.SetField(-2, "pos")
619 l.PushInteger(int(val.Glow))
620 l.SetField(-2, "glow")
621 l.PushInteger(int(val.NodeParam0))
622 l.SetField(-2, "node_param0")
623 luaPushBox3(l, [2][3]float64{{float64(val.Vel[0][0]), float64(val.Vel[0][1]), float64(val.Vel[0][2])}, {float64(val.Vel[1][0]), float64(val.Vel[1][1]), float64(val.Vel[1][2])}})
624 l.SetField(-2, "vel")
625 l.PushBoolean(bool(val.Collide))
626 l.SetField(-2, "collide")
627 luaPushBox1(l, [2]float64{float64(val.Size[0]), float64(val.Size[1])})
628 l.SetField(-2, "size")
629 l.PushInteger(int(val.NodeParam2))
630 l.SetField(-2, "node_param2")
631 l.PushNumber(float64(val.Duration))
632 l.SetField(-2, "duration")
633 l.PushInteger(int(val.NodeTile))
634 l.SetField(-2, "node_tile")
635 l.PushInteger(int(val.Amount))
636 l.SetField(-2, "amount")
637 l.PushBoolean(bool(val.CollisionRm))
638 l.SetField(-2, "collision_rm")
640 luaPushKickReason(l, val.Reason)
641 l.SetField(-2, "reason")
642 if dr := val.Reason; dr == mt.Custom || dr == mt.Shutdown || dr == mt.Crash {
643 l.PushString(string(val.Custom))
644 l.SetField(-2, "custom")
646 if dr := val.Reason; dr == mt.Shutdown || dr == mt.Crash {
647 l.PushBoolean(bool(val.Reconnect))
648 l.SetField(-2, "reconnect")
650 case *mt.ToCltDelParticleSpawner:
651 l.PushInteger(int(val.ID))
653 case *mt.ToCltModChanSig:
654 l.PushString(string(val.Channel))
655 l.SetField(-2, "channel")
656 luaPushModChanSig(l, val.Signal)
657 l.SetField(-2, "signal")
658 case *mt.ToCltMoonParams:
659 l.PushNumber(float64(val.Size))
660 l.SetField(-2, "size")
661 l.PushString(string(val.ToneMap))
662 l.SetField(-2, "tone_map")
663 l.PushString(string(val.Texture))
664 l.SetField(-2, "texture")
665 l.PushBoolean(bool(val.Visible))
666 l.SetField(-2, "visible")
667 case *mt.ToCltModChanMsg:
668 l.PushString(string(val.Channel))
669 l.SetField(-2, "channel")
670 l.PushString(string(val.Sender))
671 l.SetField(-2, "sender")
672 l.PushString(string(val.Msg))
673 l.SetField(-2, "msg")
674 case *mt.ToCltSunParams:
675 l.PushString(string(val.Texture))
676 l.SetField(-2, "texture")
677 l.PushBoolean(bool(val.Visible))
678 l.SetField(-2, "visible")
679 l.PushNumber(float64(val.Size))
680 l.SetField(-2, "size")
681 l.PushString(string(val.ToneMap))
682 l.SetField(-2, "tone_map")
683 l.PushBoolean(bool(val.Rising))
684 l.SetField(-2, "rising")
685 l.PushString(string(val.Rise))
686 l.SetField(-2, "rise")
688 l.PushString(string(val.Inv))
689 l.SetField(-2, "inv")
690 case *mt.ToCltRemoveNode:
691 luaPushVec3(l, [3]float64{float64(val.Pos[0]), float64(val.Pos[1]), float64(val.Pos[2])})
692 l.SetField(-2, "pos")
693 case *mt.ToCltMediaPush:
694 l.PushString(string(val.SHA1[:]))
695 l.SetField(-2, "sha1")
696 l.PushString(string(val.Data))
697 l.SetField(-2, "data")
698 l.PushBoolean(bool(val.ShouldCache))
699 l.SetField(-2, "should_cache")
700 l.PushString(string(val.Filename))
701 l.SetField(-2, "filename")
702 case *mt.ToCltLocalPlayerAnim:
703 luaPushBox1(l, [2]float64{float64(val.Walk[0]), float64(val.Walk[1])})
704 l.SetField(-2, "walk")
705 luaPushBox1(l, [2]float64{float64(val.Idle[0]), float64(val.Idle[1])})
706 l.SetField(-2, "idle")
707 l.PushNumber(float64(val.Speed))
708 l.SetField(-2, "speed")
709 luaPushBox1(l, [2]float64{float64(val.Dig[0]), float64(val.Dig[1])})
710 l.SetField(-2, "dig")
711 luaPushBox1(l, [2]float64{float64(val.WalkDig[0]), float64(val.WalkDig[1])})
712 l.SetField(-2, "walk_dig")
713 case *mt.ToCltFadeSound:
714 l.PushNumber(float64(val.Step))
715 l.SetField(-2, "step")
716 l.PushInteger(int(val.ID))
718 l.PushNumber(float64(val.Gain))
719 l.SetField(-2, "gain")
720 case *mt.ToCltUpdatePlayerList:
721 luaPushPlayerListUpdateType(l, val.Type)
722 l.SetField(-2, "type")
723 luaPushStringList(l, val.Players)
724 l.SetField(-2, "players")
725 case *mt.ToCltEyeOffset:
726 luaPushVec3(l, [3]float64{float64(val.First[0]), float64(val.First[1]), float64(val.First[2])})
727 l.SetField(-2, "first")
728 luaPushVec3(l, [3]float64{float64(val.Third[0]), float64(val.Third[1]), float64(val.Third[2])})
729 l.SetField(-2, "third")
730 case *mt.ToCltBlkData:
731 luaPushVec3(l, [3]float64{float64(val.Blkpos[0]), float64(val.Blkpos[1]), float64(val.Blkpos[2])})
732 l.SetField(-2, "blkpos")
733 case *mt.ToCltSkyParams:
734 luaPushColor(l, val.SunFogTint)
735 l.SetField(-2, "sun_fog_tint")
736 l.PushString(string(val.FogTintType))
737 l.SetField(-2, "fog_tint_type")
738 if val.Type == "regular" {
739 luaPushColor(l, val.DawnHorizon)
740 l.SetField(-2, "dawn_horizon")
742 if val.Type == "regular" {
743 luaPushColor(l, val.DaySky)
744 l.SetField(-2, "day_sky")
746 l.PushBoolean(bool(val.Clouds))
747 l.SetField(-2, "clouds")
748 l.PushString(string(val.Type))
749 l.SetField(-2, "type")
750 luaPushColor(l, val.BgColor)
751 l.SetField(-2, "bg_color")
752 if val.Type == "regular" {
753 luaPushColor(l, val.DawnSky)
754 l.SetField(-2, "dawn_sky")
756 if val.Type == "regular" {
757 luaPushColor(l, val.NightHorizon)
758 l.SetField(-2, "night_horizon")
760 if val.Type == "regular" {
761 luaPushColor(l, val.NightSky)
762 l.SetField(-2, "night_sky")
764 if val.Type == "regular" {
765 luaPushColor(l, val.DayHorizon)
766 l.SetField(-2, "day_horizon")
768 if val.Type == "skybox" {
769 luaPushTextureList(l, val.Textures)
770 l.SetField(-2, "textures")
772 luaPushColor(l, val.MoonFogTint)
773 l.SetField(-2, "moon_fog_tint")
774 if val.Type == "regular" {
775 luaPushColor(l, val.Indoor)
776 l.SetField(-2, "indoor")
778 case *mt.ToCltBreath:
779 l.PushInteger(int(val.Breath))
780 l.SetField(-2, "breath")
781 case *mt.ToCltChatMsg:
782 luaPushChatMsgType(l, val.Type)
783 l.SetField(-2, "type")
784 l.PushString(string(val.Sender))
785 l.SetField(-2, "sender")
786 l.PushNumber(float64(val.Timestamp))
787 l.SetField(-2, "timestamp")
788 l.PushString(string(val.Text))
789 l.SetField(-2, "text")
790 case *mt.ToCltHUDFlags:
791 luaPushHUDFlags(l, val.Flags)
792 l.SetField(-2, "flags")
793 luaPushHUDFlags(l, val.Mask)
794 l.SetField(-2, "mask")
796 l.PushInteger(int(val.ID))
798 case *mt.ToCltStarParams:
799 l.PushInteger(int(val.Count))
800 l.SetField(-2, "count")
801 l.PushNumber(float64(val.Size))
802 l.SetField(-2, "size")
803 luaPushColor(l, val.Color)
804 l.SetField(-2, "color")
805 l.PushBoolean(bool(val.Visible))
806 l.SetField(-2, "visible")
807 case *mt.ToCltDeathScreen:
808 l.PushBoolean(bool(val.PointCam))
809 l.SetField(-2, "point_cam")
810 luaPushVec3(l, [3]float64{float64(val.PointAt[0]), float64(val.PointAt[1]), float64(val.PointAt[2])})
811 l.SetField(-2, "point_at")
812 case *mt.ToCltAddPlayerVel:
813 luaPushVec3(l, [3]float64{float64(val.Vel[0]), float64(val.Vel[1]), float64(val.Vel[2])})
814 l.SetField(-2, "vel")
815 case *mt.ToCltMovement:
816 l.PushNumber(float64(val.JumpSpeed))
817 l.SetField(-2, "jump_speed")
818 l.PushNumber(float64(val.FastAccel))
819 l.SetField(-2, "fast_accel")
820 l.PushNumber(float64(val.FastSpeed))
821 l.SetField(-2, "fast_speed")
822 l.PushNumber(float64(val.Sink))
823 l.SetField(-2, "sink")
824 l.PushNumber(float64(val.AirAccel))
825 l.SetField(-2, "air_accel")
826 l.PushNumber(float64(val.Gravity))
827 l.SetField(-2, "gravity")
828 l.PushNumber(float64(val.CrouchSpeed))
829 l.SetField(-2, "crouch_speed")
830 l.PushNumber(float64(val.Smoothing))
831 l.SetField(-2, "smoothing")
832 l.PushNumber(float64(val.WalkSpeed))
833 l.SetField(-2, "walk_speed")
834 l.PushNumber(float64(val.Fluidity))
835 l.SetField(-2, "fluidity")
836 l.PushNumber(float64(val.ClimbSpeed))
837 l.SetField(-2, "climb_speed")
838 l.PushNumber(float64(val.DefaultAccel))
839 l.SetField(-2, "default_accel")
840 case *mt.ToCltCloudParams:
841 luaPushColor(l, val.AmbientColor)
842 l.SetField(-2, "ambient_color")
843 l.PushNumber(float64(val.Density))
844 l.SetField(-2, "density")
845 luaPushColor(l, val.DiffuseColor)
846 l.SetField(-2, "diffuse_color")
847 l.PushNumber(float64(val.Height))
848 l.SetField(-2, "height")
849 luaPushVec2(l, [2]float64{float64(val.Speed[0]), float64(val.Speed[1])})
850 l.SetField(-2, "speed")
851 l.PushNumber(float64(val.Thickness))
852 l.SetField(-2, "thickness")
853 case *mt.ToCltCSMRestrictionFlags:
854 luaPushCSMRestrictionFlags(l, val.Flags)
855 l.SetField(-2, "flags")
856 l.PushInteger(int(val.MapRange))
857 l.SetField(-2, "map_range")
858 case *mt.ToCltAddNode:
859 luaPushNode(l, val.Node)
860 l.SetField(-2, "node")
861 l.PushBoolean(bool(val.KeepMeta))
862 l.SetField(-2, "keep_meta")
863 luaPushVec3(l, [3]float64{float64(val.Pos[0]), float64(val.Pos[1]), float64(val.Pos[2])})
864 l.SetField(-2, "pos")
865 case *mt.ToCltStopSound:
866 l.PushInteger(int(val.ID))
868 case *mt.ToCltInvFormspec:
869 l.PushString(string(val.Formspec))
870 l.SetField(-2, "formspec")
871 case *mt.ToCltShowFormspec:
872 l.PushString(string(val.Formspec))
873 l.SetField(-2, "formspec")
874 l.PushString(string(val.Formname))
875 l.SetField(-2, "formname")
876 case *mt.ToCltTimeOfDay:
877 l.PushNumber(float64(val.Speed))
878 l.SetField(-2, "speed")
879 l.PushInteger(int(val.Time))
880 l.SetField(-2, "time")