summaryrefslogtreecommitdiff
path: root/pkg/ui/multiplayer/multiplayer.go
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-04-17 22:08:43 +0200
committerSanto Cariotti <santo@dcariotti.me>2025-04-17 22:08:43 +0200
commit8255fbdd7d9d595e71545b7c6909114024527a34 (patch)
tree94773150af8b9d0a2b4e5b548923441cbc107b34 /pkg/ui/multiplayer/multiplayer.go
parent9cd48c660231592f3f8d9a035d45b568d987616e (diff)
Logger with also stdout and move logic to network.Me() instead of network.Peer()
Diffstat (limited to 'pkg/ui/multiplayer/multiplayer.go')
-rw-r--r--pkg/ui/multiplayer/multiplayer.go32
1 files changed, 27 insertions, 5 deletions
diff --git a/pkg/ui/multiplayer/multiplayer.go b/pkg/ui/multiplayer/multiplayer.go
index 1680035..c9fc4b2 100644
--- a/pkg/ui/multiplayer/multiplayer.go
+++ b/pkg/ui/multiplayer/multiplayer.go
@@ -8,10 +8,12 @@ import (
)
type GameNetwork struct {
- Server *network.TCPNetwork
- Peer string
+ server *network.TCPNetwork
+ me network.NetworkID
+ peer network.NetworkID
}
+// Wrapper to a `TCPNetwork`
func NewGameNetwork(localID string, address string, onHandshake network.NetworkHandshakeFunc, logger *zap.Logger) *GameNetwork {
opts := network.TCPNetworkOpts{
ListenAddr: address,
@@ -20,9 +22,29 @@ func NewGameNetwork(localID string, address string, onHandshake network.NetworkH
Logger: logger,
}
server := network.NewTCPNetwork(network.NetworkID(localID), opts)
- peer := ""
return &GameNetwork{
- Server: server,
- Peer: peer,
+ server: server,
+ me: network.NetworkID(localID),
}
}
+
+func (n *GameNetwork) Peer() network.NetworkID {
+ return n.peer
+}
+
+func (n *GameNetwork) Me() network.NetworkID {
+ return n.me
+}
+
+func (n *GameNetwork) Send(payload []byte) error {
+ return n.server.Send(n.peer, payload)
+}
+
+func (n *GameNetwork) AddPeer(remoteID network.NetworkID, addr string) {
+ n.peer = remoteID
+ n.server.AddPeer(remoteID, addr)
+}
+
+func (n *GameNetwork) AddReceiveFunction(f network.NetworkMessageReceiveFunc) {
+ n.server.OnReceiveFn = f
+}