Ejemplo n.º 1
0
        public bool SetHoverTerrain(int squareX, int squareY, IMapBrush brush, out Rectangle updateRectangle)
        {
            updateRectangle = new Rectangle();

            if (squareX < 0 || squareX >= Width || squareY < 0 || squareY >= Width)
            {
                return(false);
            }

            MapState oldState = new MapState(stateHover.Width, stateHover.Height);

            oldState.CopyFrom(stateHover);

            if (!brush.NeedsDraw(state, squareX, squareY))
            {
                ClearHoverTerrain();
                updateRectangle = CalculateUpdateRectangle(oldState, stateHover);
                return(true);
            }

            if (!brush.NeedsDraw(stateHover, squareX, squareY))
            {
                return(false);
            }

            ClearHoverTerrain();
            brush.DrawAt(tileSet, stateHover, null /* rng */, squareX, squareY);
            updateRectangle = CalculateUpdateRectangle(oldState, stateHover);
            return(true);
        }
Ejemplo n.º 2
0
        public void SaveUndo()
        {
            MapState undoState = new MapState(width, height);

            undoState.CopyFrom(state);
            undoStack.Add(undoState);
            if (undoStack.Count > 100)
            {
                undoStack.RemoveAt(0);
            }

            redoStack.Clear();
        }
Ejemplo n.º 3
0
        public void SetTerrain(int squareX, int squareY, IMapBrush brush, out Rectangle updateRectangle)
        {
            updateRectangle = new Rectangle();

            if (squareX < 0 || squareX >= Width || squareY < 0 || squareY >= Width)
            {
                return;
            }

            MapState oldState = new MapState(stateHover.Width, state.Height);

            oldState.CopyFrom(state);

            brush.DrawAt(tileSet, state, Rng, squareX, squareY);
            updateRectangle = CalculateUpdateRectangle(oldState, state);

            ClearHoverTerrain();
        }
Ejemplo n.º 4
0
 public void ClearHoverTerrain()
 {
     stateHover.CopyFrom(state);
 }