That sounds like a solid setup so far! I'm working on something similar and was wondering:
How are you currently snapping the angle to 45 degrees? Are you using angleSnap = round(angle / 45) * 45
or something else?
For diagonal lines, are you checking if both X and Y positions are changing equally to maintain a perfect diagonal?
Also, are you using a single line object stretched and rotated between start and end points, or a tile-based approach for each grid cell?
I’d love to know what your current method is and what’s going wrong — maybe we can figure out the cleanest way to make the line-drawing logic more precise.