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 AddTile(uint id, int x, int y, int z, int flag) { var multi = new MultiTile() { Id = id, X = x, Y = y, Z = z, Flag = flag }; SelectTileforMultiTile(multi); MultiTiles.Add(multi); }
public void MassRemove(TileCategory categoryToRemove) { var tiletoremove = new List <MultiTile>(MultiTiles.Where(t => categoryToRemove.FindTile(t.Id) != null)); foreach (var multiTile in tiletoremove) { _multiTiles.Remove(multiTile); } RaisePropertyChanged(() => Text); UpdateCategories(); }
private IEnumerable <MultiTile> SelectTilesById(uint id) { return(MultiTiles.Where(m => m.Id == id)); }