diff --git a/src/main/java/electrosphere/engine/LoadingThread.java b/src/main/java/electrosphere/engine/LoadingThread.java index e0700553..87c5afd1 100644 --- a/src/main/java/electrosphere/engine/LoadingThread.java +++ b/src/main/java/electrosphere/engine/LoadingThread.java @@ -692,6 +692,21 @@ public class LoadingThread extends Thread { // } // }}); + // Globals.entityManager.registerBehaviorTree(new BehaviorTree() { + // int i = 0; + // public void simulate(){ + // if(i < 10000){ + // i++; + // if(i % 100 == 0){ + // Entity sword = ItemUtils.spawnBasicItem("Katana"); + // EntityUtils.getPosition(sword).set(new Vector3f(1,1.4f,2)); + // EntityUtils.getRotation(sword).set(new Quaternionf().rotationY((float)(Math.PI/2.0))); + // } + // } + // }}); + + + // DebugVisualizerUtils.spawnVectorVisualizer(new Vector3d(0,0,0), new Vector3d(-1,-1,-1)); // Entity shorts = ItemUtils.spawnBasicItem("boots1"); diff --git a/src/main/java/electrosphere/entity/state/collidable/CollidableTree.java b/src/main/java/electrosphere/entity/state/collidable/CollidableTree.java index ed7335d2..287ec3c1 100644 --- a/src/main/java/electrosphere/entity/state/collidable/CollidableTree.java +++ b/src/main/java/electrosphere/entity/state/collidable/CollidableTree.java @@ -89,11 +89,13 @@ public class CollidableTree { Vector3d torqueVec = new Vector3d(collisionPoint).cross(forceDir).normalize(); // double torqueMag = Math.abs(impulse.force); double torqueMag = Math.sqrt(impulse.getCollisionPoint().length()) * impulse.getForce(); - if(!impulse.getType().equals(Collidable.TYPE_TERRAIN)){ - torqueMag = torqueMag * 10; - } else { - torqueMag = 0; + if(impulse.getType().equals(Collidable.TYPE_TERRAIN)){ + torqueMag = torqueMag * 3; } + torqueMag = torqueMag * 10; + // } else { + // torqueMag = 0; + // } // if(impulse.type.matches(Collidable.TYPE_ITEM) && ItemUtils.isItem(parent)){ // // System.out.println(rotation); // if(impulse.collisionPoint.x < 0){ @@ -105,15 +107,15 @@ public class CollidableTree { // cumulativeTorque.add(new Vector3d(impulse.getCollisionPoint()).cross(impulse.getDirection())); // } if(impulse.type.matches(Collidable.TYPE_CREATURE)){ - System.out.println("Impulse: " + impulse.getCollisionPoint() + " x " + impulse.getDirection() + " ->f " + impulse.force); + // System.out.println("Impulse: " + impulse.getCollisionPoint() + " x " + impulse.getDirection() + " ->f " + impulse.force); // incrementer++; // if(incrementer > 5){ // Globals.microSimulation.freeze(); // } else if(incrementer <= 5){ // // Globals.controlHandler.showMouse(); - // Vector3d pos = impulse.getWorldPoint(); + // Vector3d pos = impulse.getWorldPoint(); // // pos = new Vector3d(position).add(impulse.getCollisionPoint()).mul(1,0,1); - // DebugVisualizerUtils.spawnVectorVisualizer(pos, new Vector3d(torqueVec)); + // DebugVisualizerUtils.spawnVectorVisualizer(pos, new Vector3d(torqueVec)); // } // System.out.println("Impulse: " + torqueVec + " " + torqueMag); } @@ -136,7 +138,7 @@ public class CollidableTree { // } //friction if(angularVelocity.lengthSquared() > 0.001){ - angularVelocity.slerp(new Quaternionf(0,0,0,1), 0.01f); + angularVelocity.slerp(new Quaternionf(0,0,0,1), 0.03f); // angularVelocity.scale((float)(Math.sqrt(angularVelocity.lengthSquared()) * 0.9)); // System.out.println(angularVelocity); } diff --git a/src/main/java/electrosphere/entity/state/gravity/GravityTree.java b/src/main/java/electrosphere/entity/state/gravity/GravityTree.java index b5f63514..85d30057 100644 --- a/src/main/java/electrosphere/entity/state/gravity/GravityTree.java +++ b/src/main/java/electrosphere/entity/state/gravity/GravityTree.java @@ -130,7 +130,7 @@ public class GravityTree { if(hitFraction < 0){ hitFraction = 1; } - collidable.addImpulse(new Impulse(new Vector3d(0,-1,0), new Vector3d(0,0,0), new Vector3d(0,0,0), gravityDif * hitFraction,"gravity")); + collidable.addImpulse(new Impulse(new Vector3d(0,-1,0), new Vector3d(0,0,0), new Vector3d(position), gravityDif * hitFraction,"gravity")); // System.out.println(hitFraction); // bodyTransformMatrix = new javax.vecmath.Matrix4f(PhysicsUtils.jomlToVecmathQuaternionf(rotation),PhysicsUtils.jomlToVecmathVector3f(new Vector3f((float)position.x,(float)position.y,(float)position.z)),1.0f); // body.setWorldTransform(new electrosphere.linearmath.Transform(bodyTransformMatrix));