public void CutRect(STETilemap tilemap, int startGridX, int startGridY, int endGridX, int endGridY) { if (IsUndoEnabled) { #if UNITY_EDITOR Undo.RecordObject(tilemap, STETilemap.k_UndoOpName + tilemap.name); Undo.RecordObjects(tilemap.GetComponentsInChildren <TilemapChunk>(), STETilemap.k_UndoOpName + tilemap.name); #endif } tilemap.IsUndoEnabled = IsUndoEnabled; TileObjSourceTilemap = tilemap; TileObjSourceTilemapOffset = new Vector2Int(startGridX, startGridY); for (int gridY = startGridY; gridY <= endGridY; ++gridY) { for (int gridX = startGridX; gridX <= endGridX; ++gridX) { BrushTilemap.SetTileData(gridX - startGridX, gridY - startGridY, tilemap.GetTileData(gridX, gridY)); tilemap.SetTileData(gridX, gridY, Tileset.k_TileData_Empty); } } TileObjSourceTilemap = null; BrushTilemap.UpdateMeshImmediate(); tilemap.UpdateMeshImmediate(); tilemap.IsUndoEnabled = false; }
public void CopyRect(STETilemap tilemap, int startGridX, int startGridY, int endGridX, int endGridY) { for (int gridY = startGridY; gridY <= endGridY; ++gridY) { for (int gridX = startGridX; gridX <= endGridX; ++gridX) { BrushTilemap.SetTileData(gridX - startGridX, gridY - startGridY, tilemap.GetTileData(gridX, gridY)); } } BrushTilemap.UpdateMeshImmediate(); }
public void CopyRect(STETilemap tilemap, int startGridX, int startGridY, int endGridX, int endGridY) { TileObjSourceTilemap = tilemap; TileObjSourceTilemapOffset = new Vector2Int(startGridX, startGridY); for (int gridY = startGridY; gridY <= endGridY; ++gridY) { for (int gridX = startGridX; gridX <= endGridX; ++gridX) { BrushTilemap.SetTileData(gridX - startGridX, gridY - startGridY, tilemap.GetTileData(gridX, gridY)); } } TileObjSourceTilemap = null; BrushTilemap.UpdateMeshImmediate(); }
public void DoPaintCancel() { if (m_isDragging) { m_isDragging = false; if (m_paintMode != eBrushPaintMode.Pencil) { BrushTilemap.ClearMap(); for (int y = 0; y < m_brushPattern.GetLength(1); ++y) { for (int x = 0; x < m_brushPattern.GetLength(0); ++x) { BrushTilemap.SetTileData(x, y, m_brushPattern[x, y]); } } BrushTilemap.UpdateMesh(); } } }
public void DoPaintReleased(STETilemap tilemap, Vector2 localPos, EventModifiers modifiers = default(EventModifiers)) { //Debug.Log("DoPaintReleased (" + TilemapUtils.GetGridX(tilemap, localPos) + "," + TilemapUtils.GetGridY(tilemap, localPos) + ")"); if (m_paintMode != eBrushPaintMode.Pencil) { Vector2 pressedPos = BrushUtil.GetSnappedPosition(m_pressedPosition, BrushTilemap.CellSize) + BrushTilemap.CellSize / 2f; Paint(tilemap, pressedPos + (Vector2)BrushTilemap.MapBounds.min, true); m_pressedPosition = localPos; BrushTilemap.ClearMap(); for (int y = 0; y < m_brushPattern.GetLength(1); ++y) { for (int x = 0; x < m_brushPattern.GetLength(0); ++x) { BrushTilemap.SetTileData(x, y, m_brushPattern[x, y]); } } BrushTilemap.UpdateMesh(); m_isDragging = false; } }