private void SetupTileHeightFieldTerrain() { var HeightFieldTerrain = new Sunshine.World.World(MapTilesWidth, MapTilesHeight); for (int y = 0; y < MapTilesHeight; y++) { for (int x = 0; x < MapTilesHeight; x++) { MapTile[] tileHights = new MapTile[4] { HeightFieldTerrain.GetMapTile(x, y), HeightFieldTerrain.GetMapTile(x + 1, y), HeightFieldTerrain.GetMapTile(x + 1, y + 1), HeightFieldTerrain.GetMapTile(x, y + 1), }; //var tileDepth = GetDepth(tile); int l = Math.Max(0, x - 1); int r = Math.Min(MapTilesWidth, x + 1); int t = Math.Max(0, y - 1); int b = Math.Min(MapTilesHeight, y + 1); AddTile(_terrainTextures[TILE_ROCK], tileHights, new Vector3(x - MapTilesWidth / 2, 0, y - MapTilesHeight / 2)); } } GC.Collect(GC.MaxGeneration); }
private void PushMapTile(int tilePositionX, int tilePositionY) { UIElement tb = TileRender.PushTile(tilePositionX, tilePositionY, World.GetMapTile(tilePositionX, tilePositionY)); Invoke(() => { Map.Children.Add(tb); Canvas.SetTop(tb, tilePositionY * TileSize); Canvas.SetLeft(tb, tilePositionX * TileSize); }); }