mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-11-15 08:17:13 +00:00
When a brick by brick save is split into models, each model was centred on the middle of its bones' origins, on the lowest origin. A brick's origin is at a corner of it, not its middle, so a single 2x2 came back offset by half a brick, and the model's floor was taken from the origins rather than from the bricks. Now each model is placed as the live server placed it: at the bottom middle of the box around its bricks. Each brick's own box comes from the client's brickdb by its design ID and is turned and moved by its bone (all 8 corners), and the model's box holds every brick's. Its x and z middle and its lowest y are the new origin, still snapped to the 0.8 grid on x and z, and every bone moves by that; rigids and rotations are untouched. A design the brickdb has no box for counts its bones' origins, as before, so no brick is left out. Lxfml::NormalizePosition and Split take the boxes by design ID, and the brick by brick save passes the ones read from the client (read on the first save, then kept). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 KiB
23 KiB