示例#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);
        }
示例#2
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();
        }