Exemple #1
0
        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;
        }
Exemple #2
0
 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();
 }
Exemple #3
0
 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();
 }
Exemple #4
0
 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();
         }
     }
 }
Exemple #5
0
 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;
     }
 }