From 260043092ddd35b7ca645c5852fa143c545081a7 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 25 Feb 2024 20:43:13 -0500 Subject: [PATCH] significant framerate improvement --- buildNumber.properties | 4 ++-- .../java/electrosphere/collision/CollisionEngine.java | 8 ++++++-- .../electrosphere/collision/collidable/Collidable.java | 1 + .../electrosphere/entity/types/tree/ProceduralTree.java | 2 +- .../electrosphere/net/parser/net/raw/NetworkParser.java | 6 +++--- .../server/content/EnvironmentGenerator.java | 4 ++-- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/buildNumber.properties b/buildNumber.properties index db5c97c7..54ad855a 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Sun Feb 25 14:43:29 EST 2024 -buildNumber=13 +#Sun Feb 25 20:01:36 EST 2024 +buildNumber=14 diff --git a/src/main/java/electrosphere/collision/CollisionEngine.java b/src/main/java/electrosphere/collision/CollisionEngine.java index c930228c..d9a3c2ca 100644 --- a/src/main/java/electrosphere/collision/CollisionEngine.java +++ b/src/main/java/electrosphere/collision/CollisionEngine.java @@ -124,6 +124,9 @@ public class CollisionEngine { case Collidable.TYPE_OBJECT: receiver.addImpulse(new Impulse(normal, localPosition, worldPos, magnitude, Collidable.TYPE_OBJECT)); break; + case Collidable.TYPE_FOLIAGE_STATIC: + receiver.addImpulse(new Impulse(normal, localPosition, worldPos, magnitude, Collidable.TYPE_OBJECT)); + break; } break; case Collidable.TYPE_ITEM: @@ -252,8 +255,9 @@ public class CollisionEngine { if( bodyPointerMap.get(b1) != null && bodyPointerMap.get(b2) != null && - !(bodyPointerMap.get(b1).getType() == Collidable.TYPE_TERRAIN && - bodyPointerMap.get(b2).getType() == Collidable.TYPE_TERRAIN)){ + !(bodyPointerMap.get(b1).getType() == Collidable.TYPE_TERRAIN && bodyPointerMap.get(b2).getType() == Collidable.TYPE_TERRAIN) && + !(bodyPointerMap.get(b1).getType() == Collidable.TYPE_FOLIAGE_STATIC && bodyPointerMap.get(b2).getType() == Collidable.TYPE_FOLIAGE_STATIC) + ){ //calculate collisions int numc = OdeHelper.collide(o1,o2,MAX_CONTACTS,contacts.getGeomBuffer()); //create DContacts based on each collision that occurs diff --git a/src/main/java/electrosphere/collision/collidable/Collidable.java b/src/main/java/electrosphere/collision/collidable/Collidable.java index 59754852..bcaa162d 100644 --- a/src/main/java/electrosphere/collision/collidable/Collidable.java +++ b/src/main/java/electrosphere/collision/collidable/Collidable.java @@ -32,6 +32,7 @@ public class Collidable { public static final String TYPE_ITEM = "item"; public static final String TYPE_FORCE = "force"; public static final String TYPE_OBJECT = "object"; + public static final String TYPE_FOLIAGE_STATIC = "foliageStatic"; public Collidable(Entity parent, String type){ diff --git a/src/main/java/electrosphere/entity/types/tree/ProceduralTree.java b/src/main/java/electrosphere/entity/types/tree/ProceduralTree.java index 9285bf60..fbcacf6b 100644 --- a/src/main/java/electrosphere/entity/types/tree/ProceduralTree.java +++ b/src/main/java/electrosphere/entity/types/tree/ProceduralTree.java @@ -378,7 +378,7 @@ public class ProceduralTree { treeModel.getPhysicsBody().getDimension1(), treeModel.getPhysicsBody().getDimension2() ); - Collidable collidable = new Collidable(trunkChild, Collidable.TYPE_OBJECT); + Collidable collidable = new Collidable(trunkChild, Collidable.TYPE_FOLIAGE_STATIC); trunkChild.putData(EntityDataStrings.PHYSICS_COLLISION_BODY, rigidBody); trunkChild.putData(EntityDataStrings.PHYSICS_COLLISION_BODY_OFFSET, new Vector3f(0,treeModel.getPhysicsBody().getOffsetY(),0)); trunkChild.putData(EntityDataStrings.PHYSICS_MODEL_TEMPLATE, treeModel.getPhysicsBody()); diff --git a/src/main/java/electrosphere/net/parser/net/raw/NetworkParser.java b/src/main/java/electrosphere/net/parser/net/raw/NetworkParser.java index 325a7302..5f1b89f2 100644 --- a/src/main/java/electrosphere/net/parser/net/raw/NetworkParser.java +++ b/src/main/java/electrosphere/net/parser/net/raw/NetworkParser.java @@ -1,6 +1,6 @@ -package electrosphere.net.parser.net.raw; - -import electrosphere.net.parser.net.message.NetworkMessage; +package electrosphere.net.parser.net.raw; + +import electrosphere.net.parser.net.message.NetworkMessage; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; diff --git a/src/main/java/electrosphere/server/content/EnvironmentGenerator.java b/src/main/java/electrosphere/server/content/EnvironmentGenerator.java index 5abd5f75..6b5abfbc 100644 --- a/src/main/java/electrosphere/server/content/EnvironmentGenerator.java +++ b/src/main/java/electrosphere/server/content/EnvironmentGenerator.java @@ -49,9 +49,9 @@ public class EnvironmentGenerator { LoggerInterface.loggerGameLogic.DEBUG("generate forest"); for(int i = 0; i < targetNum; i++){ Vector3d position = new Vector3d( - Globals.serverWorldData.convertWorldToReal(worldPos.x) + rand.nextFloat() * 5, + Globals.serverWorldData.convertWorldToReal(worldPos.x) + rand.nextFloat() * 16, 0, - Globals.serverWorldData.convertWorldToReal(worldPos.z) + rand.nextFloat() * 5 + Globals.serverWorldData.convertWorldToReal(worldPos.z) + rand.nextFloat() * 16 ); Entity tree = FoliageUtils.serverSpawnTreeFoliage(realm, position, "oak", rand.nextLong()); }