internal static bool TryLoad(TileIdentifier tileId, out Tile tile) { tile = null; var mpqManager = new MpqTerrainManager(tileId); if (!mpqManager.LoadTile(tileId)) return false; tile = new Tile { //_terrainTree = mpqManager.ADTManager.MapTiles[0].QuadTree, //_m2Tree = ((M2Manager) mpqManager.M2Manager).QuadTree, //_wmoTree = ((WMOManager) mpqManager.WMOManager).QuadTree, Bounds = PositionUtil.GetTileBoundingRect(tileId), }; return true; }
/// <summary> /// Tries to get the tile with the given TileId. If the tile is not loaded, /// tries to load the tile from disk. /// </summary> /// <param name="tileId"><see cref="TileIdentifier"/> that describes the desired Tile.</param> /// <param name="tile">Tile object to fill with data</param> /// <returns>True if able to find/load the tile.</returns> private bool TryGetTile(TileIdentifier tileId, out Tile tile) { if (!_tiles.TryGetValue(tileId, out tile)) { if (!Tile.TryLoad(tileId, out tile)) { log.Warn("Unable to load requested tile: {0}", tileId); return false; } _tiles.Add(tileId, tile); } return true; }