internal void GenerateSelection(Location brushLocation, TileSelection tileSelection) { tileSelection.Clear(); foreach (TileBrushElement tileBrushElement in m_tileBrushElements) { tileSelection.AddLocation(brushLocation + tileBrushElement.Location); } }
internal void ApplyTo(Layer layer, Location brushLocation, TileSelection tileSelection) { Map map = layer.Map; xTile.Dimensions.Size layerTileSize = layer.TileSize; if (layerTileSize != m_tileSize) { return; } tileSelection.Clear(); foreach (TileBrushElement tileBrushElement in m_tileBrushElements) { Location tileLocation = brushLocation + tileBrushElement.Location; if (!layer.IsValidTileLocation(tileLocation)) { continue; } Tile tile = tileBrushElement.Tile; Tile tileClone = null; if (tile != null) { TileSheet tileSheet = tile.TileSheet; if (!map.TileSheets.Contains(tile.TileSheet)) { continue; } tileClone = tile.Clone(layer); } layer.Tiles[tileLocation] = tileClone; tileSelection.AddLocation(tileLocation); } }
private void SelectTiles() { if (m_selectedLayer == null) return; xTile.Dimensions.Size layerSize = m_selectedLayer.LayerSize; int minX = Math.Max(0, Math.Min(m_tileLayerLocation.X, m_dragTileStart.X)); int minY = Math.Max(0, Math.Min(m_tileLayerLocation.Y, m_dragTileStart.Y)); int maxX = Math.Min(layerSize.Width - 1, Math.Max(m_tileLayerLocation.X, m_dragTileStart.X)); int maxY = Math.Min(layerSize.Height - 1, Math.Max(m_tileLayerLocation.Y, m_dragTileStart.Y)); Location tileLocation = new Location(minX, minY); TileSelection tileSelection = new TileSelection(); for (; tileLocation.Y <= maxY; tileLocation.Y++) for (tileLocation.X = minX; tileLocation.X <= maxX; tileLocation.X++) tileSelection.AddLocation(tileLocation); Command command = new ToolsSelectCommand( m_selectedLayer, m_tileSelection, tileSelection, !m_ctrlKeyPressed); m_commandHistory.Do(command); m_innerPanel.Invalidate(); if (SelectionChanged != null) SelectionChanged(this, EventArgs.Empty); }
internal void GenerateSelection(Location brushLocation, TileSelection tileSelection) { tileSelection.Clear(); foreach (TileBrushElement tileBrushElement in m_tileBrushElements) tileSelection.AddLocation(brushLocation + tileBrushElement.Location); }
internal void ApplyTo(Layer layer, Location brushLocation, TileSelection tileSelection) { Map map = layer.Map; xTile.Dimensions.Size layerTileSize = layer.TileSize; if (layerTileSize != m_tileSize) return; tileSelection.Clear(); foreach (TileBrushElement tileBrushElement in m_tileBrushElements) { Location tileLocation = brushLocation + tileBrushElement.Location; if (!layer.IsValidTileLocation(tileLocation)) continue; Tile tile = tileBrushElement.Tile; Tile tileClone = null; if (tile != null) { TileSheet tileSheet = tile.TileSheet; if (!map.TileSheets.Contains(tile.TileSheet)) continue; tileClone = tile.Clone(layer); } layer.Tiles[tileLocation] = tileClone; tileSelection.AddLocation(tileLocation); } }