go-teeworlds-protocol/messages7/sv_tune_params.go

145 lines
4.7 KiB
Go
Raw Normal View History

2024-06-24 06:56:04 +00:00
package messages7
import (
"slices"
"github.com/teeworlds-go/go-teeworlds-protocol/chunk7"
"github.com/teeworlds-go/go-teeworlds-protocol/network7"
"github.com/teeworlds-go/go-teeworlds-protocol/packer"
)
type SvTuneParams struct {
ChunkHeader *chunk7.ChunkHeader
GroundControlSpeed float32
GroundControlAccel float32
GroundFriction float32
GroundJumpImpulse float32
AirJumpImpulse float32
AirControlSpeed float32
AirControlAccel float32
AirFriction float32
HookLength float32
HookFireSpeed float32
HookDragAccel float32
HookDragSpeed float32
Gravity float32
VelrampStart float32
VelrampRange float32
VelrampCurvature float32
GunCurvature float32
GunSpeed float32
GunLifetime float32
ShotgunCurvature float32
ShotgunSpeed float32
ShotgunSpeeddiff float32
ShotgunLifetime float32
GrenadeCurvature float32
GrenadeSpeed float32
GrenadeLifetime float32
LaserReach float32
LaserBounceDelay float32
LaserBounceNum float32
LaserBounceCost float32
PlayerCollision float32
PlayerHooking float32
}
func (msg *SvTuneParams) MsgId() int {
return network7.MsgGameSvTuneParams
}
func (msg *SvTuneParams) MsgType() network7.MsgType {
return network7.TypeNet
}
func (msg *SvTuneParams) System() bool {
return false
}
func (msg *SvTuneParams) Vital() bool {
return true
}
func (msg *SvTuneParams) Pack() []byte {
return slices.Concat(
packer.PackInt(int(msg.GroundControlSpeed*100)),
packer.PackInt(int(msg.GroundControlAccel*100)),
packer.PackInt(int(msg.GroundFriction*100)),
packer.PackInt(int(msg.GroundJumpImpulse*100)),
packer.PackInt(int(msg.AirJumpImpulse*100)),
packer.PackInt(int(msg.AirControlSpeed*100)),
packer.PackInt(int(msg.AirControlAccel*100)),
packer.PackInt(int(msg.AirFriction*100)),
packer.PackInt(int(msg.HookLength*100)),
packer.PackInt(int(msg.HookFireSpeed*100)),
packer.PackInt(int(msg.HookDragAccel*100)),
packer.PackInt(int(msg.HookDragSpeed*100)),
packer.PackInt(int(msg.Gravity*100)),
packer.PackInt(int(msg.VelrampStart*100)),
packer.PackInt(int(msg.VelrampRange*100)),
packer.PackInt(int(msg.VelrampCurvature*100)),
packer.PackInt(int(msg.GunCurvature*100)),
packer.PackInt(int(msg.GunSpeed*100)),
packer.PackInt(int(msg.GunLifetime*100)),
packer.PackInt(int(msg.ShotgunCurvature*100)),
packer.PackInt(int(msg.ShotgunSpeed*100)),
packer.PackInt(int(msg.ShotgunSpeeddiff*100)),
packer.PackInt(int(msg.ShotgunLifetime*100)),
packer.PackInt(int(msg.GrenadeCurvature*100)),
packer.PackInt(int(msg.GrenadeSpeed*100)),
packer.PackInt(int(msg.GrenadeLifetime*100)),
packer.PackInt(int(msg.LaserReach*100)),
packer.PackInt(int(msg.LaserBounceDelay*100)),
packer.PackInt(int(msg.LaserBounceNum*100)),
packer.PackInt(int(msg.LaserBounceCost*100)),
packer.PackInt(int(msg.PlayerCollision*100)),
packer.PackInt(int(msg.PlayerHooking*100)),
)
}
func (msg *SvTuneParams) Unpack(u *packer.Unpacker) error {
msg.GroundControlSpeed = float32(u.GetInt()) / 100
msg.GroundControlAccel = float32(u.GetInt()) / 100
msg.GroundFriction = float32(u.GetInt()) / 100
msg.GroundJumpImpulse = float32(u.GetInt()) / 100
msg.AirJumpImpulse = float32(u.GetInt()) / 100
msg.AirControlSpeed = float32(u.GetInt()) / 100
msg.AirControlAccel = float32(u.GetInt()) / 100
msg.AirFriction = float32(u.GetInt()) / 100
msg.HookLength = float32(u.GetInt()) / 100
msg.HookFireSpeed = float32(u.GetInt()) / 100
msg.HookDragAccel = float32(u.GetInt()) / 100
msg.HookDragSpeed = float32(u.GetInt()) / 100
msg.Gravity = float32(u.GetInt()) / 100
msg.VelrampStart = float32(u.GetInt()) / 100
msg.VelrampRange = float32(u.GetInt()) / 100
msg.VelrampCurvature = float32(u.GetInt()) / 100
msg.GunCurvature = float32(u.GetInt()) / 100
msg.GunSpeed = float32(u.GetInt()) / 100
msg.GunLifetime = float32(u.GetInt()) / 100
msg.ShotgunCurvature = float32(u.GetInt()) / 100
msg.ShotgunSpeed = float32(u.GetInt()) / 100
msg.ShotgunSpeeddiff = float32(u.GetInt()) / 100
msg.ShotgunLifetime = float32(u.GetInt()) / 100
msg.GrenadeCurvature = float32(u.GetInt()) / 100
msg.GrenadeSpeed = float32(u.GetInt()) / 100
msg.GrenadeLifetime = float32(u.GetInt()) / 100
msg.LaserReach = float32(u.GetInt()) / 100
msg.LaserBounceDelay = float32(u.GetInt()) / 100
msg.LaserBounceNum = float32(u.GetInt()) / 100
msg.LaserBounceCost = float32(u.GetInt()) / 100
msg.PlayerCollision = float32(u.GetInt()) / 100
msg.PlayerHooking = float32(u.GetInt()) / 100
return nil
}
func (msg *SvTuneParams) Header() *chunk7.ChunkHeader {
return msg.ChunkHeader
}
func (msg *SvTuneParams) SetHeader(header *chunk7.ChunkHeader) {
msg.ChunkHeader = header
}