significant framerate improvement
This commit is contained in:
parent
fa11fc9bec
commit
260043092d
@ -1,3 +1,3 @@
|
|||||||
#maven.buildNumber.plugin properties file
|
#maven.buildNumber.plugin properties file
|
||||||
#Sun Feb 25 14:43:29 EST 2024
|
#Sun Feb 25 20:01:36 EST 2024
|
||||||
buildNumber=13
|
buildNumber=14
|
||||||
|
|||||||
@ -124,6 +124,9 @@ public class CollisionEngine {
|
|||||||
case Collidable.TYPE_OBJECT:
|
case Collidable.TYPE_OBJECT:
|
||||||
receiver.addImpulse(new Impulse(normal, localPosition, worldPos, magnitude, Collidable.TYPE_OBJECT));
|
receiver.addImpulse(new Impulse(normal, localPosition, worldPos, magnitude, Collidable.TYPE_OBJECT));
|
||||||
break;
|
break;
|
||||||
|
case Collidable.TYPE_FOLIAGE_STATIC:
|
||||||
|
receiver.addImpulse(new Impulse(normal, localPosition, worldPos, magnitude, Collidable.TYPE_OBJECT));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Collidable.TYPE_ITEM:
|
case Collidable.TYPE_ITEM:
|
||||||
@ -252,8 +255,9 @@ public class CollisionEngine {
|
|||||||
if(
|
if(
|
||||||
bodyPointerMap.get(b1) != null &&
|
bodyPointerMap.get(b1) != null &&
|
||||||
bodyPointerMap.get(b2) != null &&
|
bodyPointerMap.get(b2) != null &&
|
||||||
!(bodyPointerMap.get(b1).getType() == Collidable.TYPE_TERRAIN &&
|
!(bodyPointerMap.get(b1).getType() == Collidable.TYPE_TERRAIN && bodyPointerMap.get(b2).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
|
//calculate collisions
|
||||||
int numc = OdeHelper.collide(o1,o2,MAX_CONTACTS,contacts.getGeomBuffer());
|
int numc = OdeHelper.collide(o1,o2,MAX_CONTACTS,contacts.getGeomBuffer());
|
||||||
//create DContacts based on each collision that occurs
|
//create DContacts based on each collision that occurs
|
||||||
|
|||||||
@ -32,6 +32,7 @@ public class Collidable {
|
|||||||
public static final String TYPE_ITEM = "item";
|
public static final String TYPE_ITEM = "item";
|
||||||
public static final String TYPE_FORCE = "force";
|
public static final String TYPE_FORCE = "force";
|
||||||
public static final String TYPE_OBJECT = "object";
|
public static final String TYPE_OBJECT = "object";
|
||||||
|
public static final String TYPE_FOLIAGE_STATIC = "foliageStatic";
|
||||||
|
|
||||||
|
|
||||||
public Collidable(Entity parent, String type){
|
public Collidable(Entity parent, String type){
|
||||||
|
|||||||
@ -378,7 +378,7 @@ public class ProceduralTree {
|
|||||||
treeModel.getPhysicsBody().getDimension1(),
|
treeModel.getPhysicsBody().getDimension1(),
|
||||||
treeModel.getPhysicsBody().getDimension2()
|
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, rigidBody);
|
||||||
trunkChild.putData(EntityDataStrings.PHYSICS_COLLISION_BODY_OFFSET, new Vector3f(0,treeModel.getPhysicsBody().getOffsetY(),0));
|
trunkChild.putData(EntityDataStrings.PHYSICS_COLLISION_BODY_OFFSET, new Vector3f(0,treeModel.getPhysicsBody().getOffsetY(),0));
|
||||||
trunkChild.putData(EntityDataStrings.PHYSICS_MODEL_TEMPLATE, treeModel.getPhysicsBody());
|
trunkChild.putData(EntityDataStrings.PHYSICS_MODEL_TEMPLATE, treeModel.getPhysicsBody());
|
||||||
|
|||||||
@ -49,9 +49,9 @@ public class EnvironmentGenerator {
|
|||||||
LoggerInterface.loggerGameLogic.DEBUG("generate forest");
|
LoggerInterface.loggerGameLogic.DEBUG("generate forest");
|
||||||
for(int i = 0; i < targetNum; i++){
|
for(int i = 0; i < targetNum; i++){
|
||||||
Vector3d position = new Vector3d(
|
Vector3d position = new Vector3d(
|
||||||
Globals.serverWorldData.convertWorldToReal(worldPos.x) + rand.nextFloat() * 5,
|
Globals.serverWorldData.convertWorldToReal(worldPos.x) + rand.nextFloat() * 16,
|
||||||
0,
|
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());
|
Entity tree = FoliageUtils.serverSpawnTreeFoliage(realm, position, "oak", rand.nextLong());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user