Well I did some changes. The 1px check helped. It mostly works the way the sliding blocks should. So no more borked layout. Except now there is one critical problem and could use some smoothing out :|
The project is still relatively small as I'm working on it in my spare time.
* Once block starts sliding the block must remain on the axis
* A moving block should not be able to move through another block
* A block should not be able to push another block
* A block once released snaps to nearest grid position
* Blocks on the top sometimes get locked. Even though I have a 2px difference. The blocks stills can get locked in the top left corner.
(try grabbing a block from the top right. Drag up, then drag left. Then try dragging down. Some times it locks :( remember to release between drag directions )
* Dragging up "through a block" from below problem.
While the above is a problem. This is one a major problem. When dragging a block up "through" another block above it. The block will slide right trying to move up. once the block reaches open space the block then moves up.
* Not smooth
For some reason when starting to drag the block to the right or down. The block often jumps 1/2px down. This is the possible reason for the locking. however it also looks bad.
Now admittedly using platform and solids may not be the most ideal use, but it is an attempt to use already established plugins to do the work.