void NetworkUpdate() { var players = new List <Player>(); room.GetPlayers(ref players); var observers = new List <Observer>(); room.GetObservers(ref observers); var moves = players.Select(p => new MoveNotify() { ID = p.ID, TargetPos = p.TargetPosition, }); var packet = new MoveNotifyPacket(moves.ToArray()); // 위치 정보 갱신 // TOOD broadcast? foreach (var player in players) { player.Session.SendImmediate(packet); } foreach (var o in observers) { o.Session.SendImmediate(packet); } }
void HandleMoveNotify(MoveNotifyPacket p) { var my = p.List.Where(el => el.ID == playerID).ToArray(); Debug.Assert(my.Length == 1); }
public void MoveNotify(MoveNotifyPacket packet) { movementQueue.Enqueue(packet); }