From 8c80b94b4ab6790b215fb792fc3fb4c86da5c44e Mon Sep 17 00:00:00 2001 From: QuantumCoderQC Date: Sat, 7 Dec 2019 21:41:08 +0100 Subject: [PATCH] Moved kinematic and static flags from Bt.hx to RigidBody.hx --- Sources/armory/trait/physics/bullet/RigidBody.hx | 15 ++++++++++----- blender/arm/exporter.py | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Sources/armory/trait/physics/bullet/RigidBody.hx b/Sources/armory/trait/physics/bullet/RigidBody.hx index 20169320..5cb157ae 100644 --- a/Sources/armory/trait/physics/bullet/RigidBody.hx +++ b/Sources/armory/trait/physics/bullet/RigidBody.hx @@ -64,6 +64,11 @@ class RigidBody extends iron.Trait { static var trans2:bullet.Bt.Transform; static var quat = new Quat(); + static var CF_STATIC_OBJECT= 1; + static var CF_KINEMATIC_OBJECT= 2; + static var CF_NO_CONTACT_RESPONSE = 4; + static var CF_CHARACTER_OBJECT = 16; + static var convexHullCache = new Map(); static var triangleMeshCache = new Map(); static var usersCache = new Map(); @@ -254,12 +259,12 @@ class RigidBody extends iron.Trait { setAngularFactor(angularFactors[0], angularFactors[1], angularFactors[2]); } - if (trigger) bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | bullet.Bt.CollisionObject.CF_NO_CONTACT_RESPONSE); + if (trigger) bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | CF_NO_CONTACT_RESPONSE); if (animated){ - bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | bullet.Bt.CollisionObject.CF_KINEMATIC_OBJECT); - bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() & ~bullet.Bt.CollisionObject.CF_STATIC_OBJECT); + bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | CF_KINEMATIC_OBJECT); + bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() & ~CF_STATIC_OBJECT); } - if (staticObj && !animated) bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | bullet.Bt.CollisionObject.CF_STATIC_OBJECT); + if (staticObj && !animated) bodyColl.setCollisionFlags(bodyColl.getCollisionFlags() | CF_STATIC_OBJECT); if (ccd) setCcd(transform.radius); @@ -458,7 +463,7 @@ class RigidBody extends iron.Trait { if(animated) body.getMotionState().setWorldTransform(trans1); else - body.setWorldTransform(trans1); + body.setCenterOfMassTransform(trans1); if (currentScaleX != t.scale.x || currentScaleY != t.scale.y || currentScaleZ != t.scale.z) setScale(t.scale); activate(); } diff --git a/blender/arm/exporter.py b/blender/arm/exporter.py index c7978ef0..cbc14dab 100755 --- a/blender/arm/exporter.py +++ b/blender/arm/exporter.py @@ -2236,7 +2236,7 @@ class ArmoryExporter: elif rb.collision_shape == 'CAPSULE': shape = 6 body_mass = rb.mass - is_static = (not rb.enabled and not rb.kinematic) or (rb.type == 'PASSIVE' and rb.kinematic) + is_static = (not rb.enabled and not rb.kinematic) or (rb.type == 'PASSIVE' and not rb.kinematic) if is_static: body_mass = 0 x = {}