Fix for Euler rotation broken (DEF-1636) (SOLVED)

Wow, that’s pretty darn broken. I messed around with this for a bit and read the original bug-report threads. I think the only “solution” right now is to set the quaternion rotation every frame yourself. For example this works:

local z = 0

function update(self, dt)
	z = z + dt * 3
	go.set(".", "rotation", vmath.quat_rotation_z(z))
end

I couldn’t get anything useful working with go.animate(). I gather from Ragnar’s post that it doesn’t interpolate quaternions properly?

Interestingly, if you set euler.z on init() it will be correct, even with greater than 360-degree positive or negative values. But if you do the same exact thing at runtime with a value that’s on the “wrong” side of the circle, it will alternate sides each time you set it.