public TilemapModifyCommand(string title, Tilemap changedTilemap, TileBlock.StateData oldState, TileBlock.StateData newState)
     : base(title)
 {
     this.changedTilemap = changedTilemap;
     this.oldState = oldState;
     this.newState = newState;
 }
Esempio n. 2
0
    public void OnMouseButtonPress(Vector mousePos, int button, ModifierType Modifiers)
    {
        if (application.CurrentTilemap == null)
        {
            return;
        }

        UpdateMouseTilePos(mousePos);

        if (button == 1)
        {
            if (selecting)                      //both buttons => cancel selection
            {
                selecting = false;
                selection.Resize(0, 0, 0);
                selection.FireChangedEvent();
            }
            else
            {
                // save backup of Tilemap
                tilemapBackup = application.CurrentTilemap.SaveState();

                EditorAction(Modifiers);                        //Call editor-specific part of code

                LastDrawPos = MouseTilePos;
                drawing     = true;
                Redraw();
            }
        }
        if (button == 3)
        {
            if (drawing)                //both buttons => cancel drawing
            {
                drawing = false;
                application.CurrentTilemap.RestoreState(tilemapBackup);
            }
            else
            {
                if (MouseTilePos.X < 0 || MouseTilePos.Y < 0 ||
                    MouseTilePos.X >= application.CurrentTilemap.Width ||
                    MouseTilePos.Y >= application.CurrentTilemap.Height)
                {
                    return;
                }

                SelectStartPos = MouseTilePos;
                selecting      = true;
                UpdateSelection();
                Redraw();
            }
        }
    }
Esempio n. 3
0
 public TilemapModifyCommand(string title, Tilemap changedTilemap, TileBlock.StateData oldState, TileBlock.StateData newState) : base(title)
 {
     this.changedTilemap = changedTilemap;
     this.oldState       = oldState;
     this.newState       = newState;
 }
Esempio n. 4
0
 public TilemapData(TileBlock.StateData OldState, Tilemap Tilemap)
 {
     this.OldState = OldState;
     this.Tilemap  = Tilemap;
 }
Esempio n. 5
0
    public void OnMouseButtonPress(Vector mousePos, int button, ModifierType Modifiers)
    {
        if (application.CurrentTilemap == null) return;

        UpdateMouseTilePos(mousePos);
        LastDrawPos = MouseTilePos;

        if(button == 3) {
            if (state == State.DRAWING) {	//both buttons => cancel drawing
                state = State.NONE;
                application.CurrentTilemap.RestoreState(tilemapBackup);
            } else {
                if(MouseTilePos.X < 0 || MouseTilePos.Y < 0
                   || MouseTilePos.X >= application.CurrentTilemap.Width
                   || MouseTilePos.Y >= application.CurrentTilemap.Height)
                    return;

                SelectStartPos = MouseTilePos;
                state = State.SELECTING;
                UpdateSelection();
            }
        } else if(button == 1) {
            if (state == State.DRAWING) {	//both buttons => cancel selection
                state = State.NONE;
                selection.Resize(0, 0, 0);
                selection.FireChangedEvent();
            } else {

                // save backup of Tilemap
                tilemapBackup = application.CurrentTilemap.SaveState();

                if((Modifiers & ModifierType.ShiftMask) != 0) {
                    if(MouseTilePos.X < 0 || MouseTilePos.Y < 0
                       || MouseTilePos.X >= application.CurrentTilemap.Width
                       || MouseTilePos.Y >= application.CurrentTilemap.Height)
                        return;

                    SelectStartPos = MouseTilePos;
                    state = State.FILLING;
                    UpdateSelection();
                } else {
                    PerformActionBetweenPoints(LastDrawPos, MouseTilePos, Modifiers);

                    state = State.DRAWING;
                }
            }
        }
        Redraw();
    }
Esempio n. 6
0
    public void OnMouseButtonPress(Vector mousePos, int button, ModifierType Modifiers)
    {
        if (application.CurrentTilemap == null)
        {
            return;
        }

        UpdateMouseTilePos(mousePos);
        LastDrawPos = MouseTilePos;

        if (button == 3)
        {
            if (state == State.DRAWING)                 //both buttons => cancel drawing
            {
                state = State.NONE;
                application.CurrentTilemap.RestoreState(tilemapBackup);
            }
            else
            {
                if (MouseTilePos.X < 0 || MouseTilePos.Y < 0 ||
                    MouseTilePos.X >= application.CurrentTilemap.Width ||
                    MouseTilePos.Y >= application.CurrentTilemap.Height)
                {
                    return;
                }

                SelectStartPos = MouseTilePos;
                state          = State.SELECTING;
                UpdateSelection();
            }
        }
        else if (button == 1)
        {
            if (state == State.DRAWING)                 //both buttons => cancel selection
            {
                state = State.NONE;
                selection.Resize(0, 0, 0);
                selection.FireChangedEvent();
            }
            else
            {
                // save backup of Tilemap
                tilemapBackup = application.CurrentTilemap.SaveState();

                if ((Modifiers & ModifierType.ShiftMask) != 0)
                {
                    if (MouseTilePos.X < 0 || MouseTilePos.Y < 0 ||
                        MouseTilePos.X >= application.CurrentTilemap.Width ||
                        MouseTilePos.Y >= application.CurrentTilemap.Height)
                    {
                        return;
                    }

                    SelectStartPos = MouseTilePos;
                    state          = State.FILLING;
                    UpdateSelection();
                }
                else
                {
                    PerformActionBetweenPoints(LastDrawPos, MouseTilePos, Modifiers);

                    state = State.DRAWING;
                }
            }
        }
        Redraw();
    }