public void MassSubstitue(TileCategory categoryContained, TileCategory categoryOutside) { var oldTiles = MultiTiles.Select(tile => categoryContained.FindTile(tile.Id)).Where(t => t != null); foreach (var oldtile in oldTiles) { var oldIdDescription = _tileData.GetItemTile(oldtile.Id); var tiles = categoryOutside.FindByPosition(oldtile.PositionString); var tileDataTiles = tiles.Where( tile => _tileData.GetItemTile(tile.Id).Height == oldIdDescription.Height && oldIdDescription.Flags.HasFlag(TileFlag.Window) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Window) && oldIdDescription.Flags.HasFlag(TileFlag.Wall) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Wall) && oldIdDescription.Flags.HasFlag(TileFlag.Roof) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Roof) && oldIdDescription.Flags.HasFlag(TileFlag.Surface) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Surface)); var tmp = tileDataTiles.FirstOrDefault(); if (tmp != null) { MassSet(oldtile.Id, tmp); } } Categories.Remove(categoryContained); Categories.Add(categoryOutside); UpdateCategories(); RaisePropertyChanged(() => Categories); RaisePropertyChanged(() => MultiTiles); RaisePropertyChanged(() => Text); }
public void MassSubstitue(TileCategory categoryContained, TileCategory categoryOutside) { var oldTiles = MultiTiles.Select(tile => categoryContained.FindTile(tile.Id)).Where(t => t != null); foreach (var oldtile in oldTiles) { var oldIdDescription = _tileData.GetItemTile(oldtile.Id); var tiles = categoryOutside.FindByPosition(oldtile.PositionString); var tileDataTiles = tiles.Where( tile => _tileData.GetItemTile(tile.Id).Height == oldIdDescription.Height && oldIdDescription.Flags.HasFlag(TileFlag.Window) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Window) && oldIdDescription.Flags.HasFlag(TileFlag.Wall) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Wall) && oldIdDescription.Flags.HasFlag(TileFlag.Roof) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Roof) && oldIdDescription.Flags.HasFlag(TileFlag.Surface) == _tileData.GetItemTile(tile.Id).Flags.HasFlag(TileFlag.Surface)); var tmp = tileDataTiles.FirstOrDefault(); if(tmp!= null) MassSet(oldtile.Id,tmp); } Categories.Remove(categoryContained); Categories.Add(categoryOutside); UpdateCategories(); RaisePropertyChanged(() => Categories); RaisePropertyChanged(() => MultiTiles); RaisePropertyChanged(()=>Text); }
public void RoofsSubstitue(TileCategory roof) { var miscTiles = from mt in MultiTiles where Roofs.Contains(mt.Tile.GetStyle().GetCategory()) select mt; foreach (var multiTile in miscTiles) { var rooftile = multiTile.Tile as TileRoof; var roofs = roof.FindByPosition(rooftile.PosRoof); multiTile.SetTile(roofs.First()); } }
public void MiscSubstitue(TileCategory misc) { var miscTiles = from mt in MultiTiles where Misc.Contains(mt.Tile.GetStyle().GetCategory()) select mt; foreach (var multiTile in miscTiles) { var misctile = multiTile.Tile; var miscs = misc.FindByPosition(misctile.Position); multiTile.SetTile(miscs.First()); } }
public void WallSubstitue(TileCategory wallCat) { var wallTiles = from mt in MultiTiles where Walls.Contains(mt.Tile.GetStyle().GetCategory()) select mt; foreach (var multiTile in wallTiles) { var wall = multiTile.Tile as TileWall; var walls = wallCat.FindByPosition(wall.Position); if(wall.PositionW!= PositionWallWindow.None) { walls = from w in walls where ((TileWall) w).WallPos == wall.WallPos select w; } multiTile.SetTile(walls.First()); } }
public void WallSubstitue(TileCategory wallCat) { var wallTiles = from mt in MultiTiles where Walls.Contains(mt.Tile.GetStyle().GetCategory()) select mt; foreach (var multiTile in wallTiles) { var wall = multiTile.Tile as TileWall; var walls = wallCat.FindByPosition(wall.Position); if (wall.PositionW != PositionWallWindow.None) { walls = from w in walls where ((TileWall)w).WallPos == wall.WallPos select w; } multiTile.SetTile(walls.First()); } }