skyrama-clone/backend/utils/packet_utils.go

78 lines
1.4 KiB
Go

package utils
import "skyrama_clone_backend/backend/objects"
type Msg = isPacket_Msg
func NewChat(msg string) Msg {
return &Packet_Chat{
Chat: &ChatMessage{
Msg: msg,
},
}
}
func NewId(id uint64) Msg {
return &Packet_Id{
Id: &IdMessage{
Id: id,
},
}
}
func NewOkResponse() Msg {
return &Packet_OkResponse{
OkResponse: &OkResponseMessage{},
}
}
func NewDenyResponse(reason string) Msg {
return &Packet_DenyResponse{
DenyResponse: &DenyResponseMessage{
Reason: reason,
},
}
}
func NewPlayer(id uint64, player *objects.Player) Msg {
return &Packet_Player{
Player: &PlayerMessage{
Id: id,
Name: player.Name,
X: player.X,
Y: player.Y,
Radius: player.Radius,
Direction: player.Direction,
Speed: player.Speed,
},
}
}
func newSporeMessage(id uint64, spore *objects.Spore) *SporeMessage {
return &SporeMessage{
Id: id,
X: spore.X,
Y: spore.Y,
Radius: spore.Radius,
}
}
func NewSpore(id uint64, spore *objects.Spore) Msg {
return &Packet_Spore{
newSporeMessage(id, spore),
}
}
func NewSporeBatches(spores map[uint64]*objects.Spore) Msg {
SporeMessages := make([]*SporeMessage, len(spores))
for id, spore := range spores {
SporeMessages = append(SporeMessages, newSporeMessage(id, spore))
}
return &Packet_SporeBatch{
SporeBatch: &SporesBatchMessage{
Spores: SporeMessages,
},
}
}