Decompose Grid.getShapedArea()
so we can reuse logic between grids
#4981
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Identify the Bug or Feature request
Addresses #4980
Description of the Change
This refactors
Grid.getShapedArea()
for more consistency between grid types. The main goal was to allowIsometricGrid
to reuse the main logic and transform the results rather than having to duplicate and specialize most of the logic for its unique circumstance.With this change, isometric grid lighting behaves the same as for other grid types, save for the footprint area and 45° difference in the meaning of token facing. This means hex lights render as hexes, and beams are properly foreshortened. It also means no special logic for the other shapes, so we can be more confident that those will remain consistent into the future.
Possible Drawbacks
None. Unless folks want to complain about hexes being hexagonal.
Documentation Notes
N/A
Release Notes
This change is