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.movement.JumpTree;
|
||||
import electrosphere.entity.state.movement.SprintTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||
import electrosphere.entity.types.camera.CameraEntityUtils;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
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(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_LEFT, new Control(ControlType.KEY,GLFW_KEY_A));
|
||||
handler.addControl(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT, new Control(ControlType.KEY,GLFW_KEY_D));
|
||||
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_LEFT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
||||
handler.addControl(DATA_STRING_INPUT_CODE_STRAFE_RIGHT, new Control(ControlType.KEY,GLFW_KEY_F24));
|
||||
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_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_D));
|
||||
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_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(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
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();
|
||||
@ -494,8 +494,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
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();
|
||||
@ -516,8 +516,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).setOnRelease(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
@ -529,8 +529,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnPress(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
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());
|
||||
@ -548,8 +548,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRepeat(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
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());
|
||||
@ -567,8 +567,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).setOnRelease(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
@ -580,8 +580,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
if(
|
||||
(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(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
if(
|
||||
(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(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
@ -625,8 +625,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
if(
|
||||
(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(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
if(
|
||||
(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(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
@ -679,8 +679,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnPress(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||
if(
|
||||
@ -696,8 +696,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||
if(
|
||||
@ -713,8 +713,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).setOnRelease(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
@ -726,8 +726,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnPress(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||
if(
|
||||
@ -743,8 +743,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRepeat(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||
CreatureUtils.setFacingVector(Globals.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z));
|
||||
if(
|
||||
@ -760,8 +760,8 @@ public class ControlHandler {
|
||||
controls.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).setOnRelease(new ControlMethod(){public void execute(){
|
||||
if(Globals.playerEntity != null){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.playerEntity);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
GroundMovementTree groundTree = (GroundMovementTree) movementTree;
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
|
||||
groundTree.slowdown();
|
||||
}
|
||||
}
|
||||
|
||||
@ -55,6 +55,8 @@ public class EntityDataStrings {
|
||||
public static final String DATA_STRING_CREATURE_CONTROLLER_PLAYER_ID = "creaturePlayerId";
|
||||
public static final String CLIENT_MOVEMENT_BT = "clientMovementBT";
|
||||
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 SERVER_SPRINT_TREE = "serverSprintBT";
|
||||
public static final String DATA_STRING_FACING_VECTOR = "facingVector";
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
package electrosphere.entity;
|
||||
|
||||
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.creature.CreatureUtils;
|
||||
import electrosphere.entity.types.item.ItemUtils;
|
||||
|
||||
@ -13,7 +13,7 @@ import electrosphere.entity.ServerEntityUtils;
|
||||
import electrosphere.entity.btree.BehaviorTree;
|
||||
import electrosphere.entity.state.collidable.Impulse;
|
||||
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.types.attach.AttachUtils;
|
||||
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.collidable.Impulse;
|
||||
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.rotator.RotatorTree;
|
||||
import electrosphere.entity.state.rotator.ServerRotatorTree;
|
||||
|
||||
@ -4,8 +4,8 @@ package electrosphere.entity.state.idle;
|
||||
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||
import electrosphere.collision.PhysicsEntityUtils;
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.entity.Entity;
|
||||
@ -99,8 +99,8 @@ public class IdleTree implements BehaviorTree {
|
||||
boolean hasMovementTree = parent.containsKey(EntityDataStrings.CLIENT_MOVEMENT_BT);
|
||||
if(hasMovementTree){
|
||||
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(parent);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
if(((GroundMovementTree)movementTree).getState() == MovementTreeState.IDLE){
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
if(((ClientGroundMovementTree)movementTree).getState() == MovementTreeState.IDLE){
|
||||
rVal = true;
|
||||
}
|
||||
} 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.idle.IdleTree.IdleTreeState;
|
||||
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.MovementTreeState;
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.entity.Entity;
|
||||
import electrosphere.entity.EntityDataStrings;
|
||||
|
||||
@ -3,8 +3,8 @@ package electrosphere.entity.state.movement;
|
||||
import electrosphere.engine.Main;
|
||||
import electrosphere.entity.Entity;
|
||||
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.MovementTreeState;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@ -3,8 +3,8 @@ package electrosphere.entity.state.movement;
|
||||
import electrosphere.engine.Main;
|
||||
import electrosphere.entity.Entity;
|
||||
import electrosphere.entity.btree.BehaviorTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementTreeState;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -19,7 +19,7 @@ public class SprintTree implements BehaviorTree {
|
||||
|
||||
SprintTreeState state;
|
||||
|
||||
GroundMovementTree groundMovementTree;
|
||||
ClientGroundMovementTree groundMovementTree;
|
||||
|
||||
Entity parent;
|
||||
|
||||
@ -70,7 +70,7 @@ public class SprintTree implements BehaviorTree {
|
||||
}
|
||||
}
|
||||
|
||||
public void setGroundMovementTree(GroundMovementTree groundMovementTree){
|
||||
public void setGroundMovementTree(ClientGroundMovementTree groundMovementTree){
|
||||
this.groundMovementTree = groundMovementTree;
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
package electrosphere.entity.state.movement.groundmove;
|
||||
|
||||
|
||||
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||
|
||||
import electrosphere.entity.state.collidable.Impulse;
|
||||
import electrosphere.entity.state.gravity.ClientGravityTree;
|
||||
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.net.NetUtils;
|
||||
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.model.Model;
|
||||
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
||||
@ -42,11 +47,15 @@ import org.ode4j.math.DVector3;
|
||||
import org.ode4j.math.DVector3C;
|
||||
import org.ode4j.ode.DBody;
|
||||
|
||||
@SynchronizedBehaviorTree(name = "clientGroundMovementTree", isServer = false, correspondingTree="serverGroundMovementTree")
|
||||
/*
|
||||
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 {
|
||||
STARTUP,
|
||||
MOVE,
|
||||
@ -54,6 +63,10 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
IDLE,
|
||||
}
|
||||
|
||||
/**
|
||||
* The relative facing of the character to its rotation
|
||||
* (ie is it strafing, moveing straight forward, backpedaling, etc)
|
||||
*/
|
||||
public static enum MovementRelativeFacing {
|
||||
FORWARD,
|
||||
LEFT,
|
||||
@ -77,7 +90,8 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
||||
|
||||
MovementTreeState state;
|
||||
MovementRelativeFacing facing;
|
||||
@SyncedField
|
||||
MovementRelativeFacing facing = MovementRelativeFacing.FORWARD;
|
||||
|
||||
SprintTree sprintTree;
|
||||
JumpTree jumpTree;
|
||||
@ -92,11 +106,9 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
long lastUpdateTime = 0;
|
||||
|
||||
|
||||
public GroundMovementTree(Entity e, Collidable collidable){
|
||||
private ClientGroundMovementTree(Entity e){
|
||||
state = MovementTreeState.IDLE;
|
||||
facing = MovementRelativeFacing.FORWARD;
|
||||
parent = e;
|
||||
this.collidable = collidable;
|
||||
}
|
||||
|
||||
public MovementTreeState getState(){
|
||||
@ -105,7 +117,7 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
|
||||
public void start(MovementRelativeFacing facing){
|
||||
if(canStartMoving()){
|
||||
this.facing = facing;
|
||||
setFacing(facing);
|
||||
state = MovementTreeState.STARTUP;
|
||||
//if we aren't the server, alert the server we intend to walk forward
|
||||
Vector3d position = EntityUtils.getPosition(parent);
|
||||
@ -287,11 +299,6 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
}
|
||||
CreatureUtils.setVelocity(parent, velocity);
|
||||
//actually update
|
||||
// body.addForce(
|
||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
// linearVelocity.get1(),
|
||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
||||
// );
|
||||
body.setLinearVel(
|
||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
linearVelocity.get1(),
|
||||
@ -321,11 +328,6 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
velocity = maxNaturalVelocity;
|
||||
CreatureUtils.setVelocity(parent, velocity);
|
||||
}
|
||||
// body.addForce(
|
||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
// linearVelocity.get1(),
|
||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
||||
// );
|
||||
body.setLinearVel(
|
||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
linearVelocity.get1(),
|
||||
@ -364,11 +366,6 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
}
|
||||
}
|
||||
CreatureUtils.setVelocity(parent, velocity);
|
||||
// body.addForce(
|
||||
// movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
// linearVelocity.get1(),
|
||||
// movementVector.z * velocity * Globals.timekeeper.getSimFrameTime()
|
||||
// );
|
||||
body.setLinearVel(
|
||||
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(),
|
||||
linearVelocity.get1(),
|
||||
@ -433,6 +430,12 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
this.fallTree = fallTree;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p> Automatically generated </p>
|
||||
* <p>
|
||||
* Gets facing.
|
||||
* </p>
|
||||
*/
|
||||
public MovementRelativeFacing getFacing(){
|
||||
return facing;
|
||||
}
|
||||
@ -642,4 +645,61 @@ public class GroundMovementTree implements BehaviorTree {
|
||||
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;
|
||||
|
||||
|
||||
import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
||||
|
||||
import electrosphere.entity.state.collidable.Impulse;
|
||||
import electrosphere.entity.state.gravity.GravityUtils;
|
||||
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.ServerSprintTree;
|
||||
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.parser.net.message.EntityMessage;
|
||||
import electrosphere.net.synchronization.annotation.SyncedField;
|
||||
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
|
||||
import electrosphere.renderer.anim.Animation;
|
||||
import electrosphere.renderer.model.Model;
|
||||
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
||||
@ -39,28 +46,12 @@ import org.joml.Vector3f;
|
||||
import org.ode4j.math.DVector3C;
|
||||
import org.ode4j.ode.DBody;
|
||||
|
||||
@SynchronizedBehaviorTree(name = "serverGroundMovementTree", isServer = false, correspondingTree="clientGroundMovementTree")
|
||||
/*
|
||||
Behavior tree for movement in an entity
|
||||
*/
|
||||
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_SOFT_UPDATE_THRESHOLD = 0.2;
|
||||
@ -74,6 +65,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
||||
String animationSprintWindDown = Animation.ANIMATION_SPRINT_WINDDOWN;
|
||||
|
||||
MovementTreeState state;
|
||||
@SyncedField
|
||||
MovementRelativeFacing facing;
|
||||
|
||||
ServerSprintTree sprintTree;
|
||||
@ -89,11 +81,10 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
||||
long lastUpdateTime = 0;
|
||||
|
||||
|
||||
public ServerGroundMovementTree(Entity e, Collidable collidable){
|
||||
public ServerGroundMovementTree(Entity e){
|
||||
state = MovementTreeState.IDLE;
|
||||
facing = MovementRelativeFacing.FORWARD;
|
||||
parent = e;
|
||||
this.collidable = collidable;
|
||||
}
|
||||
|
||||
public MovementTreeState getState(){
|
||||
@ -102,7 +93,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
||||
|
||||
public void start(MovementRelativeFacing facing){
|
||||
if(canStartMoving()){
|
||||
this.facing = facing;
|
||||
setFacing(facing);
|
||||
state = MovementTreeState.STARTUP;
|
||||
//if we aren't the server, alert the server we intend to walk forward
|
||||
Vector3d position = EntityUtils.getPosition(parent);
|
||||
@ -468,6 +459,12 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
||||
this.fallTree = fallTree;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p> Automatically generated </p>
|
||||
* <p>
|
||||
* Gets facing.
|
||||
* </p>
|
||||
*/
|
||||
public MovementRelativeFacing getFacing(){
|
||||
return facing;
|
||||
}
|
||||
@ -677,4 +674,62 @@ public class ServerGroundMovementTree implements BehaviorTree {
|
||||
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.ServerSprintTree;
|
||||
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.rotator.RotatorHierarchyNode;
|
||||
import electrosphere.entity.state.rotator.RotatorTree;
|
||||
@ -132,7 +132,7 @@ public class CreatureUtils {
|
||||
// Generic ground
|
||||
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
||||
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
||||
GroundMovementTree moveTree = new GroundMovementTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
||||
ClientGroundMovementTree moveTree = ClientGroundMovementTree.attachTree(rVal, CollisionObjUtils.getCollidable(rVal));
|
||||
if(groundMovementSystem.getAnimationStartup() != null){
|
||||
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
||||
}
|
||||
@ -178,8 +178,8 @@ public class CreatureUtils {
|
||||
if(jumpMovementSystem.getAnimationJump() != null){
|
||||
jumpTree.setAnimationJump(jumpMovementSystem.getAnimationJump().getName());
|
||||
}
|
||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
||||
((GroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientJumpTree(jumpTree);
|
||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||
((ClientGroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientJumpTree(jumpTree);
|
||||
}
|
||||
if(FallTree.getFallTree(rVal)!=null){
|
||||
FallTree.getFallTree(rVal).setJumpTree(jumpTree);
|
||||
@ -198,8 +198,8 @@ public class CreatureUtils {
|
||||
if(fallMovementSystem.getAnimationLand()!=null){
|
||||
fallTree.setAnimationLand(fallMovementSystem.getAnimationLand().getName());
|
||||
}
|
||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof GroundMovementTree){
|
||||
((GroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientFallTree(fallTree);
|
||||
if(CreatureUtils.clientGetEntityMovementTree(rVal) != null && CreatureUtils.clientGetEntityMovementTree(rVal) instanceof ClientGroundMovementTree){
|
||||
((ClientGroundMovementTree)CreatureUtils.clientGetEntityMovementTree(rVal)).setClientFallTree(fallTree);
|
||||
}
|
||||
if(JumpTree.getClientJumpTree(rVal)!=null){
|
||||
fallTree.setJumpTree(JumpTree.getClientJumpTree(rVal));
|
||||
@ -426,7 +426,7 @@ public class CreatureUtils {
|
||||
// Generic ground
|
||||
case GroundMovementSystem.GROUND_MOVEMENT_SYSTEM:
|
||||
GroundMovementSystem groundMovementSystem = (GroundMovementSystem)movementSystem;
|
||||
ServerGroundMovementTree moveTree = new ServerGroundMovementTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
||||
ServerGroundMovementTree moveTree = ServerGroundMovementTree.attachTree(rVal,CollisionObjUtils.getCollidable(rVal));
|
||||
if(groundMovementSystem.getAnimationStartup() != null){
|
||||
moveTree.setAnimationStartUp(groundMovementSystem.getAnimationStartup().getName());
|
||||
}
|
||||
@ -472,7 +472,7 @@ public class CreatureUtils {
|
||||
if(jumpMovementSystem.getAnimationJump() != null){
|
||||
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);
|
||||
}
|
||||
if(ServerFallTree.getFallTree(rVal)!=null){
|
||||
@ -492,7 +492,7 @@ public class CreatureUtils {
|
||||
if(fallMovementSystem.getAnimationLand()!=null){
|
||||
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);
|
||||
}
|
||||
if(ServerJumpTree.getServerJumpTree(rVal)!=null){
|
||||
@ -744,8 +744,8 @@ public class CreatureUtils {
|
||||
|
||||
public static void clientAttachEntityMessageToMovementTree(Entity e, EntityMessage em){
|
||||
BehaviorTree movementTree = clientGetEntityMovementTree(e);
|
||||
if(movementTree instanceof GroundMovementTree){
|
||||
((GroundMovementTree)movementTree).addNetworkMessage(em);
|
||||
if(movementTree instanceof ClientGroundMovementTree){
|
||||
((ClientGroundMovementTree)movementTree).addNetworkMessage(em);
|
||||
} else if(movementTree instanceof AirplaneMovementTree){
|
||||
((AirplaneMovementTree)movementTree).addNetworkMessage(em);
|
||||
}
|
||||
|
||||
@ -13,5 +13,7 @@ public class BehaviorTreeIdEnums {
|
||||
public static final int BTREE_SERVERGRAVITY_ID = 5;
|
||||
public static final int BTREE_IDLE_ID = 6;
|
||||
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.entity.Entity;
|
||||
import electrosphere.entity.EntityUtils;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
import electrosphere.server.ai.AI;
|
||||
|
||||
@ -79,12 +79,12 @@ public class MillAbout extends AI {
|
||||
if(moveTargetPosition.distance(position) > 0.4){
|
||||
Vector3d moveVector = new Vector3d(moveTargetPosition).sub(position).normalize();
|
||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||
}
|
||||
} else {
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
characterMoveTree.slowdown();
|
||||
// System.out.println("Made it to destination");
|
||||
moveToTarget = false;
|
||||
|
||||
@ -7,8 +7,8 @@ import electrosphere.entity.EntityTags;
|
||||
import electrosphere.entity.EntityUtils;
|
||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||
import electrosphere.entity.state.attack.ServerAttackTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
import electrosphere.server.ai.AI;
|
||||
import electrosphere.server.datacell.Realm;
|
||||
@ -76,8 +76,8 @@ public class MindlessAttacker extends AI{
|
||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,8 +8,8 @@ import electrosphere.entity.EntityUtils;
|
||||
import electrosphere.entity.state.attack.ClientAttackTree;
|
||||
import electrosphere.entity.state.attack.ServerAttackTree;
|
||||
import electrosphere.entity.state.equip.ClientEquipState;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
import electrosphere.entity.types.item.ItemUtils;
|
||||
import electrosphere.server.ai.AI;
|
||||
@ -166,8 +166,8 @@ public class OpportunisticAttacker extends AI {
|
||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,8 +5,8 @@ import org.joml.Vector3d;
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.entity.Entity;
|
||||
import electrosphere.entity.EntityUtils;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
import electrosphere.game.server.town.Town;
|
||||
import electrosphere.server.ai.AI;
|
||||
@ -49,8 +49,8 @@ public class SeekTown extends AI {
|
||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
characterMoveTree.start(MovementRelativeFacing.FORWARD);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,8 +5,8 @@ import org.joml.Vector3d;
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.entity.Entity;
|
||||
import electrosphere.entity.EntityUtils;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree;
|
||||
import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing;
|
||||
import electrosphere.entity.types.creature.CreatureUtils;
|
||||
import electrosphere.server.ai.AI;
|
||||
|
||||
@ -43,8 +43,8 @@ public class PartyFollower extends AI {
|
||||
Vector3d characterPosition = EntityUtils.getPosition(character);
|
||||
Vector3d moveVector = new Vector3d(targetPosition).sub(characterPosition).normalize();
|
||||
CreatureUtils.setFacingVector(character, new Vector3d((float)moveVector.x,(float)moveVector.y,(float)moveVector.z));
|
||||
GroundMovementTree characterMoveTree = (GroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==GroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==GroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
ClientGroundMovementTree characterMoveTree = (ClientGroundMovementTree)CreatureUtils.serverGetEntityMovementTree(character);
|
||||
if(characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.IDLE || characterMoveTree.getState()==ClientGroundMovementTree.MovementTreeState.SLOWDOWN){
|
||||
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.LifeUtils;
|
||||
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.net.parser.net.message.EntityMessage;
|
||||
import electrosphere.renderer.actor.Actor;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user