Yanking is broken
TodePond opened this issue · 5 comments
The recent changes to warping+moving broke yanking at deeper levels. Not sure why :(
Ok so the problem is this: the move and warp functions both CONTINUALLY try VERY HARD to place the screen in the place that they currently are. They aren't satisfied with the movement that has gone on - they don't care about doing things bit-by-bit. They say, "IT SHOULD BE HERE" and this causes the engine to freak out when it struggles to do that due to higher up screens making that impossible.
I think, before, I somehow just moved the screen WITHIN its own screen, rather than trying to re-place it down or something.
I need to somehow allow it to move along each frame without freaking out.
It's ok if it loses a bit of accuracy! But also I think I can stick with the newer 'world-level' movement too (rather than revert to the old parent-level movement, which caused issues with warping). Combine the best of both worlds!
some thoughts for after the weekend:
move along the world-level
somehow place into the parent-level
ah wait but isn't that actually what happens currently
damn
base it off the starting point in parent-level
so yeah, like go back to what it was before
but then make the calculated DESIRED MOVEMENT along a different plane (ie: the world-level plane) - just needs an extra transformation at the end i think
So yeah, just revert to the old method and try to add an extra step on the end or just before the end
Oh wow all that fuss and it's fixed with one line:
hand.startCorners = getDrawnScreenFromRoute(pick.route).corners
This makes it 'recentre' itself on wherever the screen was moved to. This makes the moved-position relative, instead of absolute - which makes it forget about any long-term error.
Warp yanking was still a bit broken.
I simplified it to fix it - instead of warping the world, let's just move the world!