movement tree networking work
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
341d5683cf
commit
bd244b151d
@ -87,9 +87,9 @@ import electrosphere.entity.state.inventory.UnrelationalInventoryState;
|
|||||||
import electrosphere.entity.state.ironsight.IronSightTree;
|
import electrosphere.entity.state.ironsight.IronSightTree;
|
||||||
import electrosphere.entity.state.movement.JumpTree;
|
import electrosphere.entity.state.movement.JumpTree;
|
||||||
import electrosphere.entity.state.movement.SprintTree;
|
import electrosphere.entity.state.movement.SprintTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.entity.types.camera.CameraEntityUtils;
|
import electrosphere.entity.types.camera.CameraEntityUtils;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.logger.LoggerInterface;
|
import electrosphere.logger.LoggerInterface;
|
||||||
@ -264,10 +264,10 @@ public class ControlHandler {
|
|||||||
handler.addControl(INPUT_CODE_CAMERA_ROTATION, new Control(ControlType.MOUSE_MOVEMENT,0));
|
handler.addControl(INPUT_CODE_CAMERA_ROTATION, new Control(ControlType.MOUSE_MOVEMENT,0));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD, new Control(ControlType.KEY,GLFW_KEY_W));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD, new Control(ControlType.KEY,GLFW_KEY_W));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD, new Control(ControlType.KEY,GLFW_KEY_S));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD, new Control(ControlType.KEY,GLFW_KEY_S));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT, new Control(ControlType.KEY,GLFW_KEY_A));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT, new Control(ControlType.KEY,GLFW_KEY_D));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_LEFT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_LEFT, new Control(ControlType.KEY,GLFW_KEY_A));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_RIGHT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_RIGHT, new Control(ControlType.KEY,GLFW_KEY_D));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_JUMP, new Control(ControlType.KEY,GLFW_KEY_SPACE));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_JUMP, new Control(ControlType.KEY,GLFW_KEY_SPACE));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_FALL, new Control(ControlType.KEY,GLFW_KEY_LEFT_CONTROL));
|
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_FALL, new Control(ControlType.KEY,GLFW_KEY_LEFT_CONTROL));
|
||||||
handler.addControl(DATA_STRING_INPUT_CODE_ATTACK_PRIMARY, new Control(ControlType.MOUSE_BUTTON,GLFW_MOUSE_BUTTON_LEFT));
|
handler.addControl(DATA_STRING_INPUT_CODE_ATTACK_PRIMARY, new Control(ControlType.MOUSE_BUTTON,GLFW_MOUSE_BUTTON_LEFT));
|
||||||
@ -472,8 +472,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
||||||
Vector3d newFacingVector = new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/4.0).normalize();
|
Vector3d newFacingVector = new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/4.0).normalize();
|
||||||
@ -494,8 +494,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
||||||
Vector3d newFacingVector = new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/4.0).normalize();
|
Vector3d newFacingVector = new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/4.0).normalize();
|
||||||
@ -516,8 +516,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,8 +529,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
|
||||||
@ -548,8 +548,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
if(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).isState()){
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
|
||||||
@ -567,8 +567,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -580,8 +580,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
@ -596,8 +596,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
@ -612,8 +612,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -625,8 +625,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
@ -641,8 +641,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
@ -657,8 +657,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -679,8 +679,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||||
if(
|
if(
|
||||||
@ -696,8 +696,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||||
if(
|
if(
|
||||||
@ -713,8 +713,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -726,8 +726,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||||
if(
|
if(
|
||||||
@ -743,8 +743,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRepeat(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||||
if(
|
if(
|
||||||
@ -760,8 +760,8 @@ public class ControlHandler {
|
|||||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRelease(new ControlMethod(){public void execute(){
|
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRelease(new ControlMethod(){public void execute(){
|
||||||
if(Globals.playerEntity != null){
|
if(Globals.playerEntity != null){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||||
groundTree.slowdown();
|
groundTree.slowdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,6 +55,8 @@ public class EntityDataStrings {
|
|||||||
public static final String DATA_STRING_CREATURE_CONTROLLER_PLAYER_ID = "creaturePlayerId";
|
public static final String DATA_STRING_CREATURE_CONTROLLER_PLAYER_ID = "creaturePlayerId";
|
||||||
public static final String CLIENT_MOVEMENT_BT = "clientMovementBT";
|
public static final String CLIENT_MOVEMENT_BT = "clientMovementBT";
|
||||||
public static final String SERVER_MOVEMENT_BT = "serverMovementBT";
|
public static final String SERVER_MOVEMENT_BT = "serverMovementBT";
|
||||||
|
public static final String TREE_CLIENTGROUNDMOVEMENTTREE = "treeClientGroundMovementTree";
|
||||||
|
public static final String TREE_SERVERGROUNDMOVEMENTTREE = "treeServerGroundMovementTree";
|
||||||
public static final String CLIENT_SPRINT_TREE = "clientSprintBT";
|
public static final String CLIENT_SPRINT_TREE = "clientSprintBT";
|
||||||
public static final String SERVER_SPRINT_TREE = "serverSprintBT";
|
public static final String SERVER_SPRINT_TREE = "serverSprintBT";
|
||||||
public static final String DATA_STRING_FACING_VECTOR = "facingVector";
|
public static final String DATA_STRING_FACING_VECTOR = "facingVector";
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
package electrosphere.entity;
|
package electrosphere.entity;
|
||||||
|
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.types.collision.CollisionObjUtils;
|
import electrosphere.entity.types.collision.CollisionObjUtils;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.entity.types.item.ItemUtils;
|
import electrosphere.entity.types.item.ItemUtils;
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import electrosphere.entity.ServerEntityUtils;
|
|||||||
import electrosphere.entity.btree.BehaviorTree;
|
import electrosphere.entity.btree.BehaviorTree;
|
||||||
import electrosphere.entity.state.collidable.Impulse;
|
import electrosphere.entity.state.collidable.Impulse;
|
||||||
import electrosphere.entity.state.equip.ClientEquipState;
|
import electrosphere.entity.state.equip.ClientEquipState;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.rotator.RotatorTree;
|
import electrosphere.entity.state.rotator.RotatorTree;
|
||||||
import electrosphere.entity.types.attach.AttachUtils;
|
import electrosphere.entity.types.attach.AttachUtils;
|
||||||
import electrosphere.entity.types.collision.CollisionObjUtils;
|
import electrosphere.entity.types.collision.CollisionObjUtils;
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import electrosphere.entity.state.attack.ClientAttackTree.AttackTreeDriftState;
|
|||||||
import electrosphere.entity.state.attack.ClientAttackTree.AttackTreeState;
|
import electrosphere.entity.state.attack.ClientAttackTree.AttackTreeState;
|
||||||
import electrosphere.entity.state.collidable.Impulse;
|
import electrosphere.entity.state.collidable.Impulse;
|
||||||
import electrosphere.entity.state.equip.ServerEquipState;
|
import electrosphere.entity.state.equip.ServerEquipState;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
||||||
import electrosphere.entity.state.rotator.RotatorTree;
|
import electrosphere.entity.state.rotator.RotatorTree;
|
||||||
import electrosphere.entity.state.rotator.ServerRotatorTree;
|
import electrosphere.entity.state.rotator.ServerRotatorTree;
|
||||||
|
|||||||
@ -4,8 +4,8 @@ package electrosphere.entity.state.idle;
|
|||||||
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||||
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.collision.PhysicsEntityUtils;
|
import electrosphere.collision.PhysicsEntityUtils;
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
@ -99,8 +99,8 @@ public class IdleTree implements BehaviorTree {
|
|||||||
boolean hasMovementTree = parent.containsKey(EntityDataStrings.CLIENT_MOVEMENT_BT);
|
boolean hasMovementTree = parent.containsKey(EntityDataStrings.CLIENT_MOVEMENT_BT);
|
||||||
if(hasMovementTree){
|
if(hasMovementTree){
|
||||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(parent);
|
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(parent);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
if(((GroundMovementTree)movementTree).getState() == MovementTreeState.IDLE){
|
if(((ClientGroundMovementTree)movementTree).getState() == MovementTreeState.IDLE){
|
||||||
rVal = true;
|
rVal = true;
|
||||||
}
|
}
|
||||||
} else if(movementTree instanceof AirplaneMovementTree){
|
} else if(movementTree instanceof AirplaneMovementTree){
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import electrosphere.entity.state.attack.ClientAttackTree.AttackTreeState;
|
|||||||
import electrosphere.entity.state.attack.ServerAttackTree;
|
import electrosphere.entity.state.attack.ServerAttackTree;
|
||||||
import electrosphere.entity.state.idle.IdleTree.IdleTreeState;
|
import electrosphere.entity.state.idle.IdleTree.IdleTreeState;
|
||||||
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
||||||
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree.MovementTreeState;
|
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityDataStrings;
|
import electrosphere.entity.EntityDataStrings;
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package electrosphere.entity.state.movement;
|
|||||||
import electrosphere.engine.Main;
|
import electrosphere.engine.Main;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.btree.BehaviorTree;
|
import electrosphere.entity.btree.BehaviorTree;
|
||||||
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree.MovementTreeState;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package electrosphere.entity.state.movement;
|
|||||||
import electrosphere.engine.Main;
|
import electrosphere.engine.Main;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.btree.BehaviorTree;
|
import electrosphere.entity.btree.BehaviorTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -19,7 +19,7 @@ public class SprintTree implements BehaviorTree {
|
|||||||
|
|
||||||
SprintTreeState state;
|
SprintTreeState state;
|
||||||
|
|
||||||
GroundMovementTree groundMovementTree;
|
ClientGroundMovementTree groundMovementTree;
|
||||||
|
|
||||||
Entity parent;
|
Entity parent;
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ public class SprintTree implements BehaviorTree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGroundMovementTree(GroundMovementTree groundMovementTree){
|
public void setGroundMovementTree(ClientGroundMovementTree groundMovementTree){
|
||||||
this.groundMovementTree = groundMovementTree;
|
this.groundMovementTree = groundMovementTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
package electrosphere.entity.state.movement.groundmove;
|
package electrosphere.entity.state.movement.groundmove;
|
||||||
|
|
||||||
|
|
||||||
|
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||||
|
|
||||||
import electrosphere.entity.state.collidable.Impulse;
|
import electrosphere.entity.state.collidable.Impulse;
|
||||||
import electrosphere.entity.state.gravity.ClientGravityTree;
|
import electrosphere.entity.state.gravity.ClientGravityTree;
|
||||||
import electrosphere.entity.state.gravity.GravityUtils;
|
import electrosphere.entity.state.gravity.GravityUtils;
|
||||||
@ -25,6 +28,8 @@ import electrosphere.entity.state.movement.SprintTree;
|
|||||||
import electrosphere.entity.state.movement.SprintTree.SprintTreeState;
|
import electrosphere.entity.state.movement.SprintTree.SprintTreeState;
|
||||||
import electrosphere.net.NetUtils;
|
import electrosphere.net.NetUtils;
|
||||||
import electrosphere.net.parser.net.message.EntityMessage;
|
import electrosphere.net.parser.net.message.EntityMessage;
|
||||||
|
import electrosphere.net.synchronization.annotation.SyncedField;
|
||||||
|
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
|
||||||
import electrosphere.renderer.anim.Animation;
|
import electrosphere.renderer.anim.Animation;
|
||||||
import electrosphere.renderer.model.Model;
|
import electrosphere.renderer.model.Model;
|
||||||
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
||||||
@ -42,11 +47,15 @@ import org.ode4j.math.DVector3;
|
|||||||
import org.ode4j.math.DVector3C;
|
import org.ode4j.math.DVector3C;
|
||||||
import org.ode4j.ode.DBody;
|
import org.ode4j.ode.DBody;
|
||||||
|
|
||||||
|
@SynchronizedBehaviorTree(name = "clientGroundMovementTree", isServer = false, correspondingTree="serverGroundMovementTree")
|
||||||
/*
|
/*
|
||||||
Behavior tree for movement in an entity
|
Behavior tree for movement in an entity
|
||||||
*/
|
*/
|
||||||
public class GroundMovementTree implements BehaviorTree {
|
public class ClientGroundMovementTree implements BehaviorTree {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The state of the ground movement tree
|
||||||
|
*/
|
||||||
public static enum MovementTreeState {
|
public static enum MovementTreeState {
|
||||||
STARTUP,
|
STARTUP,
|
||||||
MOVE,
|
MOVE,
|
||||||
@ -54,6 +63,10 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
IDLE,
|
IDLE,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The relative facing of the character to its rotation
|
||||||
|
* (ie is it strafing, moveing straight forward, backpedaling, etc)
|
||||||
|
*/
|
||||||
public static enum MovementRelativeFacing {
|
public static enum MovementRelativeFacing {
|
||||||
FORWARD,
|
FORWARD,
|
||||||
LEFT,
|
LEFT,
|
||||||
@ -77,7 +90,8 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
||||||
|
|
||||||
MovementTreeState state;
|
MovementTreeState state;
|
||||||
MovementRelativeFacing facing;
|
@SyncedField
|
||||||
|
MovementRelativeFacing facing = MovementRelativeFacing.FORWARD;
|
||||||
|
|
||||||
SprintTree sprintTree;
|
SprintTree sprintTree;
|
||||||
JumpTree jumpTree;
|
JumpTree jumpTree;
|
||||||
@ -92,11 +106,9 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
long lastUpdateTime = 0;
|
long lastUpdateTime = 0;
|
||||||
|
|
||||||
|
|
||||||
public GroundMovementTree(Entity e, Collidable collidable){
|
private ClientGroundMovementTree(Entity e){
|
||||||
state = MovementTreeState.IDLE;
|
state = MovementTreeState.IDLE;
|
||||||
facing = MovementRelativeFacing.FORWARD;
|
|
||||||
parent = e;
|
parent = e;
|
||||||
this.collidable = collidable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public MovementTreeState getState(){
|
public MovementTreeState getState(){
|
||||||
@ -105,7 +117,7 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
|
|
||||||
public void start(MovementRelativeFacing facing){
|
public void start(MovementRelativeFacing facing){
|
||||||
if(canStartMoving()){
|
if(canStartMoving()){
|
||||||
this.facing = facing;
|
setFacing(facing);
|
||||||
state = MovementTreeState.STARTUP;
|
state = MovementTreeState.STARTUP;
|
||||||
//if we aren't the server, alert the server we intend to walk forward
|
//if we aren't the server, alert the server we intend to walk forward
|
||||||
Vector3d position = EntityUtils.getPosition(parent);
|
Vector3d position = EntityUtils.getPosition(parent);
|
||||||
@ -287,11 +299,6 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
}
|
}
|
||||||
CreatureUtils.setVelocity(parent, velocity);
|
CreatureUtils.setVelocity(parent, velocity);
|
||||||
//actually update
|
//actually update
|
||||||
// body.addForce(
|
|
||||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
|
||||||
// linearVelocity.get1(),
|
|
||||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
|
||||||
// );
|
|
||||||
body.setLinearVel(
|
body.setLinearVel(
|
||||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||||
linearVelocity.get1(),
|
linearVelocity.get1(),
|
||||||
@ -321,11 +328,6 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
velocity = maxNaturalVelocity;
|
velocity = maxNaturalVelocity;
|
||||||
CreatureUtils.setVelocity(parent, velocity);
|
CreatureUtils.setVelocity(parent, velocity);
|
||||||
}
|
}
|
||||||
// body.addForce(
|
|
||||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
|
||||||
// linearVelocity.get1(),
|
|
||||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
|
||||||
// );
|
|
||||||
body.setLinearVel(
|
body.setLinearVel(
|
||||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||||
linearVelocity.get1(),
|
linearVelocity.get1(),
|
||||||
@ -364,11 +366,6 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
CreatureUtils.setVelocity(parent, velocity);
|
CreatureUtils.setVelocity(parent, velocity);
|
||||||
// body.addForce(
|
|
||||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
|
||||||
// linearVelocity.get1(),
|
|
||||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
|
||||||
// );
|
|
||||||
body.setLinearVel(
|
body.setLinearVel(
|
||||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||||
linearVelocity.get1(),
|
linearVelocity.get1(),
|
||||||
@ -433,6 +430,12 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
this.fallTree = fallTree;
|
this.fallTree = fallTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Gets facing.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
public MovementRelativeFacing getFacing(){
|
public MovementRelativeFacing getFacing(){
|
||||||
return facing;
|
return facing;
|
||||||
}
|
}
|
||||||
@ -642,4 +645,61 @@ public class GroundMovementTree implements BehaviorTree {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Sets facing and handles the synchronization logic for it.
|
||||||
|
* </p>
|
||||||
|
* @param facing The value to set facing to.
|
||||||
|
*/
|
||||||
|
public void setFacing(MovementRelativeFacing facing){
|
||||||
|
this.facing = facing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> (initially) Automatically generated </p>
|
||||||
|
* <p> More parameters can be safely added to this method</p>
|
||||||
|
* <p>
|
||||||
|
* Attaches this tree to the entity.
|
||||||
|
* </p>
|
||||||
|
* @param entity The entity to attach to
|
||||||
|
* @param tree The behavior tree to attach
|
||||||
|
*/
|
||||||
|
public static ClientGroundMovementTree attachTree(Entity parent, Collidable collidable){
|
||||||
|
ClientGroundMovementTree rVal = new ClientGroundMovementTree(parent);
|
||||||
|
//put manual code here (setting params, etc)
|
||||||
|
|
||||||
|
rVal.collidable = collidable;
|
||||||
|
|
||||||
|
//!!WARNING!! from here below should not be touched
|
||||||
|
//This was generated automatically to properly alert various systems that the btree exists and should be tracked
|
||||||
|
parent.putData(EntityDataStrings.TREE_CLIENTGROUNDMOVEMENTTREE, rVal);
|
||||||
|
Globals.clientScene.registerBehaviorTree(rVal);
|
||||||
|
Globals.entityValueTrackingService.attachTreeToEntity(parent, BehaviorTreeIdEnums.BTREE_CLIENTGROUNDMOVEMENTTREE_ID);
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Detatches this tree from the entity.
|
||||||
|
* </p>
|
||||||
|
* @param entity The entity to detach to
|
||||||
|
* @param tree The behavior tree to detach
|
||||||
|
*/
|
||||||
|
public static void detachTree(Entity entity, BehaviorTree tree){
|
||||||
|
Globals.entityValueTrackingService.detatchTreeFromEntity(entity, BehaviorTreeIdEnums.BTREE_CLIENTGROUNDMOVEMENTTREE_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Gets the GroundMovementTree of the entity
|
||||||
|
* </p>
|
||||||
|
* @param entity the entity
|
||||||
|
* @return The GroundMovementTree
|
||||||
|
*/
|
||||||
|
public static ClientGroundMovementTree getGroundMovementTree(Entity entity){
|
||||||
|
return (ClientGroundMovementTree)entity.getData(EntityDataStrings.TREE_CLIENTGROUNDMOVEMENTTREE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,5 +1,8 @@
|
|||||||
package electrosphere.entity.state.movement.groundmove;
|
package electrosphere.entity.state.movement.groundmove;
|
||||||
|
|
||||||
|
|
||||||
|
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||||
|
|
||||||
import electrosphere.entity.state.collidable.Impulse;
|
import electrosphere.entity.state.collidable.Impulse;
|
||||||
import electrosphere.entity.state.gravity.GravityUtils;
|
import electrosphere.entity.state.gravity.GravityUtils;
|
||||||
import electrosphere.collision.CollisionEngine;
|
import electrosphere.collision.CollisionEngine;
|
||||||
@ -20,8 +23,12 @@ import electrosphere.entity.state.movement.ServerFallTree;
|
|||||||
import electrosphere.entity.state.movement.ServerJumpTree;
|
import electrosphere.entity.state.movement.ServerJumpTree;
|
||||||
import electrosphere.entity.state.movement.ServerSprintTree;
|
import electrosphere.entity.state.movement.ServerSprintTree;
|
||||||
import electrosphere.entity.state.movement.ServerSprintTree.SprintTreeState;
|
import electrosphere.entity.state.movement.ServerSprintTree.SprintTreeState;
|
||||||
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.net.NetUtils;
|
import electrosphere.net.NetUtils;
|
||||||
import electrosphere.net.parser.net.message.EntityMessage;
|
import electrosphere.net.parser.net.message.EntityMessage;
|
||||||
|
import electrosphere.net.synchronization.annotation.SyncedField;
|
||||||
|
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
|
||||||
import electrosphere.renderer.anim.Animation;
|
import electrosphere.renderer.anim.Animation;
|
||||||
import electrosphere.renderer.model.Model;
|
import electrosphere.renderer.model.Model;
|
||||||
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
||||||
@ -39,28 +46,12 @@ import org.joml.Vector3f;
|
|||||||
import org.ode4j.math.DVector3C;
|
import org.ode4j.math.DVector3C;
|
||||||
import org.ode4j.ode.DBody;
|
import org.ode4j.ode.DBody;
|
||||||
|
|
||||||
|
@SynchronizedBehaviorTree(name = "serverGroundMovementTree", isServer = false, correspondingTree="clientGroundMovementTree")
|
||||||
/*
|
/*
|
||||||
Behavior tree for movement in an entity
|
Behavior tree for movement in an entity
|
||||||
*/
|
*/
|
||||||
public class ServerGroundMovementTree implements BehaviorTree {
|
public class ServerGroundMovementTree implements BehaviorTree {
|
||||||
|
|
||||||
public static enum MovementTreeState {
|
|
||||||
STARTUP,
|
|
||||||
MOVE,
|
|
||||||
SLOWDOWN,
|
|
||||||
IDLE,
|
|
||||||
}
|
|
||||||
|
|
||||||
public static enum MovementRelativeFacing {
|
|
||||||
FORWARD,
|
|
||||||
LEFT,
|
|
||||||
RIGHT,
|
|
||||||
BACKWARD,
|
|
||||||
FORWARD_LEFT,
|
|
||||||
FORWARD_RIGHT,
|
|
||||||
BACKWARD_LEFT,
|
|
||||||
BACKWARD_RIGHT,
|
|
||||||
}
|
|
||||||
|
|
||||||
static final double STATE_DIFFERENCE_HARD_UPDATE_THRESHOLD = 1.0;
|
static final double STATE_DIFFERENCE_HARD_UPDATE_THRESHOLD = 1.0;
|
||||||
static final double STATE_DIFFERENCE_SOFT_UPDATE_THRESHOLD = 0.2;
|
static final double STATE_DIFFERENCE_SOFT_UPDATE_THRESHOLD = 0.2;
|
||||||
@ -74,6 +65,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
|||||||
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
||||||
|
|
||||||
MovementTreeState state;
|
MovementTreeState state;
|
||||||
|
@SyncedField
|
||||||
MovementRelativeFacing facing;
|
MovementRelativeFacing facing;
|
||||||
|
|
||||||
ServerSprintTree sprintTree;
|
ServerSprintTree sprintTree;
|
||||||
@ -89,11 +81,10 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
|||||||
long lastUpdateTime = 0;
|
long lastUpdateTime = 0;
|
||||||
|
|
||||||
|
|
||||||
public ServerGroundMovementTree(Entity e, Collidable collidable){
|
public ServerGroundMovementTree(Entity e){
|
||||||
state = MovementTreeState.IDLE;
|
state = MovementTreeState.IDLE;
|
||||||
facing = MovementRelativeFacing.FORWARD;
|
facing = MovementRelativeFacing.FORWARD;
|
||||||
parent = e;
|
parent = e;
|
||||||
this.collidable = collidable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public MovementTreeState getState(){
|
public MovementTreeState getState(){
|
||||||
@ -102,7 +93,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
|||||||
|
|
||||||
public void start(MovementRelativeFacing facing){
|
public void start(MovementRelativeFacing facing){
|
||||||
if(canStartMoving()){
|
if(canStartMoving()){
|
||||||
this.facing = facing;
|
setFacing(facing);
|
||||||
state = MovementTreeState.STARTUP;
|
state = MovementTreeState.STARTUP;
|
||||||
//if we aren't the server, alert the server we intend to walk forward
|
//if we aren't the server, alert the server we intend to walk forward
|
||||||
Vector3d position = EntityUtils.getPosition(parent);
|
Vector3d position = EntityUtils.getPosition(parent);
|
||||||
@ -468,6 +459,12 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
|||||||
this.fallTree = fallTree;
|
this.fallTree = fallTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Gets facing.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
public MovementRelativeFacing getFacing(){
|
public MovementRelativeFacing getFacing(){
|
||||||
return facing;
|
return facing;
|
||||||
}
|
}
|
||||||
@ -677,4 +674,62 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Sets facing and handles the synchronization logic for it.
|
||||||
|
* </p>
|
||||||
|
* @param facing The value to set facing to.
|
||||||
|
*/
|
||||||
|
public void setFacing(MovementRelativeFacing facing){
|
||||||
|
this.facing = facing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> (initially) Automatically generated </p>
|
||||||
|
* <p> More parameters can be safely added to this method</p>
|
||||||
|
* <p>
|
||||||
|
* Attaches this tree to the entity.
|
||||||
|
* </p>
|
||||||
|
* @param entity The entity to attach to
|
||||||
|
* @param tree The behavior tree to attach
|
||||||
|
*/
|
||||||
|
public static ServerGroundMovementTree attachTree(Entity parent, Collidable collidable){
|
||||||
|
ServerGroundMovementTree rVal = new ServerGroundMovementTree(parent);
|
||||||
|
//put manual code here (setting params, etc)
|
||||||
|
|
||||||
|
rVal.collidable = collidable;
|
||||||
|
|
||||||
|
|
||||||
|
//!!WARNING!! from here below should not be touched
|
||||||
|
//This was generated automatically to properly alert various systems that the btree exists and should be tracked
|
||||||
|
parent.putData(EntityDataStrings.TREE_SERVERGROUNDMOVEMENTTREE, rVal);
|
||||||
|
Globals.clientScene.registerBehaviorTree(rVal);
|
||||||
|
Globals.entityValueTrackingService.attachTreeToEntity(parent, BehaviorTreeIdEnums.BTREE_SERVERGROUNDMOVEMENTTREE_ID);
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> Automatically generated </p>
|
||||||
|
* <p>
|
||||||
|
* Detatches this tree from the entity.
|
||||||
|
* </p>
|
||||||
|
* @param entity The entity to detach to
|
||||||
|
* @param tree The behavior tree to detach
|
||||||
|
*/
|
||||||
|
public static void detachTree(Entity entity, BehaviorTree tree){
|
||||||
|
Globals.entityValueTrackingService.detatchTreeFromEntity(entity, BehaviorTreeIdEnums.BTREE_SERVERGROUNDMOVEMENTTREE_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Gets the ServerGroundMovementTree of the entity
|
||||||
|
* </p>
|
||||||
|
* @param entity the entity
|
||||||
|
* @return The ServerGroundMovementTree
|
||||||
|
*/
|
||||||
|
public static ServerGroundMovementTree getServerGroundMovementTree(Entity entity){
|
||||||
|
return (ServerGroundMovementTree)entity.getData(EntityDataStrings.TREE_SERVERGROUNDMOVEMENTTREE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,7 +44,7 @@ import electrosphere.entity.state.movement.ServerFallTree;
|
|||||||
import electrosphere.entity.state.movement.ServerJumpTree;
|
import electrosphere.entity.state.movement.ServerJumpTree;
|
||||||
import electrosphere.entity.state.movement.ServerSprintTree;
|
import electrosphere.entity.state.movement.ServerSprintTree;
|
||||||
import electrosphere.entity.state.movement.SprintTree;
|
import electrosphere.entity.state.movement.SprintTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree;
|
||||||
import electrosphere.entity.state.rotator.RotatorHierarchyNode;
|
import electrosphere.entity.state.rotator.RotatorHierarchyNode;
|
||||||
import electrosphere.entity.state.rotator.RotatorTree;
|
import electrosphere.entity.state.rotator.RotatorTree;
|
||||||
@ -132,7 +132,7 @@ public class CreatureUtils {
|
|||||||
// Generic ground
|
// Generic ground
|
||||||
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
||||||
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
||||||
GroundMovementTree moveTree = new GroundMovementTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
ClientGroundMovementTree moveTree = ClientGroundMovementTree.attachTree(rVal, CollisionObjUtils.getCollidable(rVal));
|
||||||
if(groundMovementSystem.getAnimationStartup() != null){
|
if(groundMovementSystem.getAnimationStartup() != null){
|
||||||
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
||||||
}
|
}
|
||||||
@ -178,8 +178,8 @@ public class CreatureUtils {
|
|||||||
if(jumpMovementSystem.getAnimationJump() != null){
|
if(jumpMovementSystem.getAnimationJump() != null){
|
||||||
jumpTree.setAnimationJump(jumpMovementSystem.getAnimationJump().getName());
|
jumpTree.setAnimationJump(jumpMovementSystem.getAnimationJump().getName());
|
||||||
}
|
}
|
||||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||||
((GroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientJumpTree(jumpTree);
|
((ClientGroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientJumpTree(jumpTree);
|
||||||
}
|
}
|
||||||
if(FallTree.getFallTree(rVal)!=null){
|
if(FallTree.getFallTree(rVal)!=null){
|
||||||
FallTree.getFallTree(rVal).setJumpTree(jumpTree);
|
FallTree.getFallTree(rVal).setJumpTree(jumpTree);
|
||||||
@ -198,8 +198,8 @@ public class CreatureUtils {
|
|||||||
if(fallMovementSystem.getAnimationLand()!=null){
|
if(fallMovementSystem.getAnimationLand()!=null){
|
||||||
fallTree.setAnimationLand(fallMovementSystem.getAnimationLand().getName());
|
fallTree.setAnimationLand(fallMovementSystem.getAnimationLand().getName());
|
||||||
}
|
}
|
||||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||||
((GroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientFallTree(fallTree);
|
((ClientGroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientFallTree(fallTree);
|
||||||
}
|
}
|
||||||
if(JumpTree.getClientJumpTree(rVal)!=null){
|
if(JumpTree.getClientJumpTree(rVal)!=null){
|
||||||
fallTree.setJumpTree(JumpTree.getClientJumpTree(rVal));
|
fallTree.setJumpTree(JumpTree.getClientJumpTree(rVal));
|
||||||
@ -426,7 +426,7 @@ public class CreatureUtils {
|
|||||||
// Generic ground
|
// Generic ground
|
||||||
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
||||||
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
||||||
ServerGroundMovementTree moveTree = new ServerGroundMovementTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
ServerGroundMovementTree moveTree = ServerGroundMovementTree.attachTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
||||||
if(groundMovementSystem.getAnimationStartup() != null){
|
if(groundMovementSystem.getAnimationStartup() != null){
|
||||||
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
||||||
}
|
}
|
||||||
@ -472,7 +472,7 @@ public class CreatureUtils {
|
|||||||
if(jumpMovementSystem.getAnimationJump() != null){
|
if(jumpMovementSystem.getAnimationJump() != null){
|
||||||
jumpTree.setAnimationJump(jumpMovementSystem.getAnimationJump().getName());
|
jumpTree.setAnimationJump(jumpMovementSystem.getAnimationJump().getName());
|
||||||
}
|
}
|
||||||
if(CreatureUtils.serverGetEntityMovementTree(rVal) != null && CreatureUtils.serverGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
if(CreatureUtils.serverGetEntityMovementTree(rVal) != null && CreatureUtils.serverGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||||
((ServerGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(rVal)).setServerJumpTree(jumpTree);
|
((ServerGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(rVal)).setServerJumpTree(jumpTree);
|
||||||
}
|
}
|
||||||
if(ServerFallTree.getFallTree(rVal)!=null){
|
if(ServerFallTree.getFallTree(rVal)!=null){
|
||||||
@ -492,7 +492,7 @@ public class CreatureUtils {
|
|||||||
if(fallMovementSystem.getAnimationLand()!=null){
|
if(fallMovementSystem.getAnimationLand()!=null){
|
||||||
fallTree.setAnimationLand(fallMovementSystem.getAnimationLand().getName());
|
fallTree.setAnimationLand(fallMovementSystem.getAnimationLand().getName());
|
||||||
}
|
}
|
||||||
if(CreatureUtils.serverGetEntityMovementTree(rVal) != null && CreatureUtils.serverGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
if(CreatureUtils.serverGetEntityMovementTree(rVal) != null && CreatureUtils.serverGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||||
((ServerGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(rVal)).setServerFallTree(fallTree);
|
((ServerGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(rVal)).setServerFallTree(fallTree);
|
||||||
}
|
}
|
||||||
if(ServerJumpTree.getServerJumpTree(rVal)!=null){
|
if(ServerJumpTree.getServerJumpTree(rVal)!=null){
|
||||||
@ -744,8 +744,8 @@ public class CreatureUtils {
|
|||||||
|
|
||||||
public static void clientAttachEntityMessageToMovementTree(Entity e, EntityMessage em){
|
public static void clientAttachEntityMessageToMovementTree(Entity e, EntityMessage em){
|
||||||
BehaviorTree movementTree = clientGetEntityMovementTree(e);
|
BehaviorTree movementTree = clientGetEntityMovementTree(e);
|
||||||
if(movementTree instanceof GroundMovementTree){
|
if(movementTree instanceof ClientGroundMovementTree){
|
||||||
((GroundMovementTree)movementTree).addNetworkMessage(em);
|
((ClientGroundMovementTree)movementTree).addNetworkMessage(em);
|
||||||
} else if(movementTree instanceof AirplaneMovementTree){
|
} else if(movementTree instanceof AirplaneMovementTree){
|
||||||
((AirplaneMovementTree)movementTree).addNetworkMessage(em);
|
((AirplaneMovementTree)movementTree).addNetworkMessage(em);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,5 +13,7 @@ public class BehaviorTreeIdEnums {
|
|||||||
public static final int BTREE_SERVERGRAVITY_ID = 5;
|
public static final int BTREE_SERVERGRAVITY_ID = 5;
|
||||||
public static final int BTREE_IDLE_ID = 6;
|
public static final int BTREE_IDLE_ID = 6;
|
||||||
public static final int BTREE_SERVERIDLE_ID = 7;
|
public static final int BTREE_SERVERIDLE_ID = 7;
|
||||||
|
public static final int BTREE_CLIENTGROUNDMOVEMENTTREE_ID = 8;
|
||||||
|
public static final int BTREE_SERVERGROUNDMOVEMENTTREE_ID = 9;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package electrosphere.server.ai.creature;
|
|||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.server.ai.AI;
|
import electrosphere.server.ai.AI;
|
||||||
|
|
||||||
@ -79,12 +79,12 @@ public class MillAbout extends AI {
|
|||||||
if(moveTargetPosition.distance(position) > 0.4){
|
if(moveTargetPosition.distance(position) > 0.4){
|
||||||
Vector3d moveVector = new Vector3d(moveTargetPosition).sub(position).normalize();
|
Vector3d moveVector = new Vector3d(moveTargetPosition).sub(position).normalize();
|
||||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
characterMoveTree.slowdown();
|
characterMoveTree.slowdown();
|
||||||
// System.out.println("Made it to destination");
|
// System.out.println("Made it to destination");
|
||||||
moveToTarget = false;
|
moveToTarget = false;
|
||||||
|
|||||||
@ -7,8 +7,8 @@ import electrosphere.entity.EntityTags;
|
|||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||||
import electrosphere.entity.state.attack.ServerAttackTree;
|
import electrosphere.entity.state.attack.ServerAttackTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.server.ai.AI;
|
import electrosphere.server.ai.AI;
|
||||||
import electrosphere.server.datacell.Realm;
|
import electrosphere.server.datacell.Realm;
|
||||||
@ -76,8 +76,8 @@ public class MindlessAttacker extends AI{
|
|||||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,8 @@ import electrosphere.entity.EntityUtils;
|
|||||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||||
import electrosphere.entity.state.attack.ServerAttackTree;
|
import electrosphere.entity.state.attack.ServerAttackTree;
|
||||||
import electrosphere.entity.state.equip.ClientEquipState;
|
import electrosphere.entity.state.equip.ClientEquipState;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.entity.types.item.ItemUtils;
|
import electrosphere.entity.types.item.ItemUtils;
|
||||||
import electrosphere.server.ai.AI;
|
import electrosphere.server.ai.AI;
|
||||||
@ -166,8 +166,8 @@ public class OpportunisticAttacker extends AI {
|
|||||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,8 +5,8 @@ import org.joml.Vector3d;
|
|||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.game.server.town.Town;
|
import electrosphere.game.server.town.Town;
|
||||||
import electrosphere.server.ai.AI;
|
import electrosphere.server.ai.AI;
|
||||||
@ -49,8 +49,8 @@ public class SeekTown extends AI {
|
|||||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,8 +5,8 @@ import org.joml.Vector3d;
|
|||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.server.ai.AI;
|
import electrosphere.server.ai.AI;
|
||||||
|
|
||||||
@ -43,8 +43,8 @@ public class PartyFollower extends AI {
|
|||||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@ import electrosphere.entity.types.item.ItemUtils;
|
|||||||
import electrosphere.entity.state.life.LifeState;
|
import electrosphere.entity.state.life.LifeState;
|
||||||
import electrosphere.entity.state.life.LifeUtils;
|
import electrosphere.entity.state.life.LifeUtils;
|
||||||
import electrosphere.entity.state.movement.SprintTree;
|
import electrosphere.entity.state.movement.SprintTree;
|
||||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||||
import electrosphere.entity.types.particle.ParticleUtils;
|
import electrosphere.entity.types.particle.ParticleUtils;
|
||||||
import electrosphere.net.parser.net.message.EntityMessage;
|
import electrosphere.net.parser.net.message.EntityMessage;
|
||||||
import electrosphere.renderer.actor.Actor;
|
import electrosphere.renderer.actor.Actor;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user