autodisable terrain colliders
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good

This commit is contained in:
austin 2024-11-29 12:23:23 -05:00
parent d8a9d660aa
commit cf9371461b
2 changed files with 6 additions and 3 deletions

View File

@ -1170,6 +1170,7 @@ Fix reentrant locking bug
Convert server physics cell generation to executor service Convert server physics cell generation to executor service
Simplifying physics cases Simplifying physics cases
Allow variable collision bits for collidable entities Allow variable collision bits for collidable entities
Autodisable terrain colliders
# TODO # TODO

View File

@ -497,6 +497,7 @@ public class PhysicsEntityUtils {
*/ */
public static void clientAttachTriGeomRigidBody(Entity terrain, TriGeomData data){ public static void clientAttachTriGeomRigidBody(Entity terrain, TriGeomData data){
DBody terrainBody = CollisionBodyCreation.generateBodyFromTerrainData(Globals.clientSceneWrapper.getCollisionEngine(), data, Collidable.TYPE_STATIC_BIT); DBody terrainBody = CollisionBodyCreation.generateBodyFromTerrainData(Globals.clientSceneWrapper.getCollisionEngine(), data, Collidable.TYPE_STATIC_BIT);
CollisionBodyCreation.setAutoDisable(Globals.clientSceneWrapper.getCollisionEngine(), terrainBody, true, LINEAR_THRESHOLD, ANGULAR_THRESHOLD, STEP_THRESHOLD);
Collidable collidable = new Collidable(terrain,Collidable.TYPE_STATIC, false); Collidable collidable = new Collidable(terrain,Collidable.TYPE_STATIC, false);
Globals.clientSceneWrapper.getCollisionEngine().registerCollisionObject(terrainBody, collidable); Globals.clientSceneWrapper.getCollisionEngine().registerCollisionObject(terrainBody, collidable);
PhysicsEntityUtils.setDBody(terrain,terrainBody); PhysicsEntityUtils.setDBody(terrain,terrainBody);
@ -511,10 +512,11 @@ public class PhysicsEntityUtils {
* @return The rigid body created (note, attachment has already been performed) * @return The rigid body created (note, attachment has already been performed)
*/ */
public static DBody serverAttachTriGeomRigidBody(Entity terrain, TriGeomData data){ public static DBody serverAttachTriGeomRigidBody(Entity terrain, TriGeomData data){
Realm terrainRealm = Globals.realmManager.getEntityRealm(terrain); Realm realm = Globals.realmManager.getEntityRealm(terrain);
DBody terrainBody = CollisionBodyCreation.generateBodyFromTerrainData(terrainRealm.getCollisionEngine(),data,Collidable.TYPE_STATIC_BIT); DBody terrainBody = CollisionBodyCreation.generateBodyFromTerrainData(realm.getCollisionEngine(),data,Collidable.TYPE_STATIC_BIT);
CollisionBodyCreation.setAutoDisable(realm.getCollisionEngine(), terrainBody, true, LINEAR_THRESHOLD, ANGULAR_THRESHOLD, STEP_THRESHOLD);
terrainRealm.getCollisionEngine().registerCollisionObject(terrainBody, new Collidable(terrain,Collidable.TYPE_STATIC, false)); realm.getCollisionEngine().registerCollisionObject(terrainBody, new Collidable(terrain,Collidable.TYPE_STATIC, false));
PhysicsEntityUtils.setDBody(terrain,terrainBody); PhysicsEntityUtils.setDBody(terrain,terrainBody);
return terrainBody; return terrainBody;