Making some progress with mirrors, but it'll probably still be a week (or two).
If we look at different bricks, there are 4 possible symmetry planes:
Assume +x is left and +y is towards from you in this image.
From left to right, these bricks are:
- fully symmetric
- symmetric on x
- symmetric on y
- symmetric on x+y (diagonal)
- symmetric on x-y (diagonal)
Requiring manual definitions for non-cubic bricks is tedious and stupid, so it'll be automated. The idea is to parse each blb file and create data structures we can use to quickly test the possible symmetries of the mesh. After that, it'll find pairs between asymmetric bricks like left/right wedges and +/- ramps.
That runs the first time someone tries to use mirror after you started the server, and handles all custom bricks aswell. Only very few like the doors and the treasure chest need manual settings.