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); }
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(); }