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]); }
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]; }
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; }