The rail-containing blueprint with offset of (0, 1), as well as non square ones, will never be fully rotationally symmetrical. So there is no need to change it's class - invalid cases can be just skipped, so you can only turn it by 180°. However there may be some edge cases indeed.
A per-blueprint one. Global will only flip "allowed" and "restricted".DaggerBall wrote: ↑Mon Aug 03, 2020 1:10 am Are you proposing a global offset, or a per-blueprint offset?
Per-book case looks a bit overcomplicated, and after all not every blueprint is actually placed in the book. I make my blueprints usung the hotbar key, so they are "in hand" originally. Blueprints can also be tranferred from one book to another and so on.
Using the original location as the adjustmen point should work fine in the single-player, but can indeed become problematic in the multiplayer.
So how about another way - use current behaviour, but add an "offset anchor". Show the "center map" in the blueprint GUI (intersecting lines like in the picture above, with some flag in the center) and allow to drag it (e.g. by Shift + RMB). Unchanged anchor will automatically align to the corner of the tile rectangle
In that way tile grid alignment will be altered only when the player needs or wants it to be altered, and will remain otherwise. It should make things easier in the multiplayer.