Пример #1
0
 public DropTerrain(TerrainModel t)
 {
     Position = t.Position;
 }
Пример #2
0
 public bool Drop(TerrainModel t)
 {
     return Send(new DropTerrain(t));
 }
Пример #3
0
        public int UpdateTerrainCubes(TerrainModel terrain, FSharpOption<TerrainModel> old)
        {
            HashSet<ClientConnection> newClients;
            int newCube = WorldModel.GetCubeKey(terrain.Position);

            if (!CubeClients.TryGetValue(newCube, out newClients))
                newClients = new HashSet<ClientConnection>();

            if (old != null)
            {
                int oldCube = WorldModel.GetCubeKey(old.Value.Position);
                HashSet<ClientConnection> oldClients;
                if (!CubeClients.TryGetValue(oldCube, out oldClients))
                    oldClients = new HashSet<ClientConnection>();
                if (oldCube != newCube)
                    foreach (var c in oldClients.Except(newClients))
                        c.Drop(terrain);
            }

            foreach (var c in newClients)
                c.Send(terrain);

            return newCube;
        }