diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-08-30 21:31:07 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-08-30 21:31:07 +0200 |
commit | 3e667bc2382b8fecbafc4496d12860a32f31fb31 (patch) | |
tree | ec5ed91aa8c2759a0b002fdf2ea6279ff844e4cf | |
parent | 132c0db040872dbcc510694d726273f0d6812996 (diff) |
PlaySound + FadeSound + StopSound forwarding
-rw-r--r-- | connect.go | 1 | ||||
-rw-r--r-- | server_conn.go | 16 |
2 files changed, 17 insertions, 0 deletions
@@ -14,6 +14,7 @@ func connect(conn net.Conn, name string, cc *clientConn) *serverConn { name: name, aos: make(map[mt.AOID]struct{}), particleSpawners: make(map[mt.ParticleSpawnerID]struct{}), + sounds: make(map[mt.SoundID]struct{}), } sc.log("-->", "connect") cc.srv = sc diff --git a/server_conn.go b/server_conn.go index 1da94d7..3df6274 100644 --- a/server_conn.go +++ b/server_conn.go @@ -31,6 +31,8 @@ type serverConn struct { aos map[mt.AOID]struct{} particleSpawners map[mt.ParticleSpawnerID]struct{} + + sounds map[mt.SoundID]struct{} } func (sc *serverConn) client() *clientConn { return sc.clt } @@ -385,6 +387,20 @@ func handleSrv(sc *serverConn) { case *mt.ToCltDelParticleSpawner: delete(sc.particleSpawners, cmd.ID) sc.client().SendCmd(cmd) + case *mt.ToCltPlaySound: + prepend(sc.name, &cmd.Name) + sc.swapAOID(&cmd.SrcAOID) + if cmd.Loop { + sc.sounds[sc.ID] = struct{}{} + } + + sc.client().SendCmd(cmd) + case *mt.ToCltFadeSound: + delete(sc.sounds, cmd.ID) + sc.client().SendCmd(cmd) + case *mt.ToCltStopSound: + delete(sc.sounds, cmd.ID) + sc.client().SendCmd(cmd) } } } |