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