Fix physics "grabbable" setting being applied without gravity

This commit is contained in:
David Rowe 2017-09-11 17:04:50 +12:00
parent acf6a433a9
commit ec6cae4105

View file

@ -1470,16 +1470,20 @@
break; break;
case "setGravityOn": case "setGravityOn":
// Dynamic is true if the entity has gravity or is grabbable.
if (parameter) { if (parameter) {
physicsToolPhysics.gravity = { x: 0, y: physicsToolGravity, z: 0 }; physicsToolPhysics.gravity = { x: 0, y: physicsToolGravity, z: 0 };
physicsToolPhysics.dynamic = true; physicsToolPhysics.dynamic = true;
} else { } else {
physicsToolPhysics.gravity = Vec3.ZERO; physicsToolPhysics.gravity = Vec3.ZERO;
physicsToolPhysics.dynamic = false; physicsToolPhysics.dynamic = physicsToolPhysics.userData.grabbableKey.grabbable === true;
} }
break; break;
case "setGrabOn": case "setGrabOn":
// Dynamic is true if the entity has gravity or is grabbable.
physicsToolPhysics.userData.grabbableKey.grabbable = parameter; physicsToolPhysics.userData.grabbableKey.grabbable = parameter;
physicsToolPhysics.dynamic = parameter
|| (physicsToolPhysics.gravity && Vec3.length(physicsToolPhysics.gravity) > 0);
break; break;
case "setCollideOn": case "setCollideOn":
if (parameter) { if (parameter) {