public static WorldChunk GetChunkViaLocation(Vector2 ChunkLocation)
        {
            MongoDB.Document ChunkFind = new MongoDB.Document();
            ChunkFind["x"] = ChunkLocation.X;
            ChunkFind["y"] = ChunkLocation.Y;

            if (LoadedChunks.ContainsKey(ChunkLocation))
            {
                return(LoadedChunks[ChunkLocation]);
            }

            else
            {
                var ChunkDoc = DatabaseManager.GetCollection("test", "world_chunk_bounds").Find(ChunkFind);
                if (ChunkDoc.Documents.Count() > 0)
                {
                    MongoDB.Document Doc = ChunkDoc.Documents.First();
                    var ChunkRect        = new Rectangle((int)Doc["x"], (int)Doc["y"], (int)Doc["width"], (int)Doc["height"]);
                    LoadedChunks.Add(ChunkLocation, new WorldChunk(ChunkRect));
                    LoadedChunks[ChunkLocation].LoadFromDB();
                    return(LoadedChunks[ChunkLocation]);
                }
            }



            LoadedChunks.Add(ChunkLocation, new WorldChunk(new Rectangle(
                                                               (int)ChunkLocation.X,
                                                               (int)ChunkLocation.Y,
                                                               ChunkWidth,
                                                               ChunkHeight)));

            var Chunk = new MongoDB.Document();

            Chunk["x"]      = (int)ChunkLocation.X;
            Chunk["y"]      = (int)ChunkLocation.X;
            Chunk["width"]  = ChunkWidth;
            Chunk["height"] = ChunkHeight;
            DatabaseManager.GetCollection("test", "world_chunk_bounds").Insert(Chunk);

            return(LoadedChunks[ChunkLocation]);
        }
Example #2
0
        public static WorldChunk GetChunkViaLocation(Vector2 ChunkLocation)
        {
            MongoDB.Document ChunkFind = new MongoDB.Document();
            ChunkFind["x"] = ChunkLocation.X;
            ChunkFind["y"] = ChunkLocation.Y;

            if (LoadedChunks.ContainsKey(ChunkLocation))
                return LoadedChunks[ChunkLocation];

            else
            {
                var ChunkDoc = DatabaseManager.GetCollection("test", "world_chunk_bounds").Find(ChunkFind);
                if (ChunkDoc.Documents.Count() > 0)
                {
                    MongoDB.Document Doc = ChunkDoc.Documents.First();
                    var ChunkRect = new Rectangle((int)Doc["x"], (int)Doc["y"], (int)Doc["width"], (int)Doc["height"]);
                    LoadedChunks.Add(ChunkLocation, new WorldChunk(ChunkRect));
                    LoadedChunks[ChunkLocation].LoadFromDB();
                    return LoadedChunks[ChunkLocation];
                }
            }

            LoadedChunks.Add(ChunkLocation, new WorldChunk(new Rectangle(
                (int)ChunkLocation.X,
                (int)ChunkLocation.Y,
                ChunkWidth,
                ChunkHeight)));

            var Chunk = new MongoDB.Document();
            Chunk["x"] = (int)ChunkLocation.X;
            Chunk["y"] = (int)ChunkLocation.X;
            Chunk["width"] = ChunkWidth;
            Chunk["height"] = ChunkHeight;
            DatabaseManager.GetCollection("test", "world_chunk_bounds").Insert(Chunk);

            return LoadedChunks[ChunkLocation];
        }
Example #3
0
 public static MongoDB.Document TileToDocument(TerrainTile Tile)
 {
     var Doc = new MongoDB.Document();
     Doc["x"] = Tile.X;
     Doc["y"] = Tile.Y;
     Doc["tile_type"] = (int)Tile.TileID;
     return Doc;
 }