Clean up idle trees
This commit is contained in:
parent
e924511883
commit
b3949e8583
@ -5,7 +5,6 @@ import electrosphere.net.synchronization.BehaviorTreeIdEnums;
|
|||||||
|
|
||||||
import electrosphere.entity.state.BehaviorTree;
|
import electrosphere.entity.state.BehaviorTree;
|
||||||
import electrosphere.entity.state.attack.AttackTree;
|
import electrosphere.entity.state.attack.AttackTree;
|
||||||
import electrosphere.entity.state.attack.AttackTree.AttackTreeState;
|
|
||||||
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
import electrosphere.entity.state.movement.AirplaneMovementTree;
|
||||||
import electrosphere.entity.state.movement.GroundMovementTree;
|
import electrosphere.entity.state.movement.GroundMovementTree;
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
@ -14,16 +13,12 @@ import electrosphere.entity.EntityDataStrings;
|
|||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState;
|
import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.net.parser.net.message.EntityMessage;
|
|
||||||
import electrosphere.net.synchronization.annotation.SyncedField;
|
import electrosphere.net.synchronization.annotation.SyncedField;
|
||||||
import electrosphere.net.synchronization.annotation.SynchronizableEnum;
|
import electrosphere.net.synchronization.annotation.SynchronizableEnum;
|
||||||
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
|
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
|
||||||
import electrosphere.renderer.actor.Actor;
|
import electrosphere.renderer.actor.Actor;
|
||||||
import electrosphere.renderer.anim.Animation;
|
import electrosphere.renderer.anim.Animation;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
import org.joml.Vector3d;
|
|
||||||
|
|
||||||
|
|
||||||
@SynchronizedBehaviorTree(name = "idle", isServer = false, correspondingTree="serverIdle")
|
@SynchronizedBehaviorTree(name = "idle", isServer = false, correspondingTree="serverIdle")
|
||||||
@ -39,18 +34,12 @@ public class IdleTree implements BehaviorTree {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SyncedField
|
@SyncedField
|
||||||
IdleTreeState state;
|
private IdleTreeState state;
|
||||||
|
|
||||||
Entity parent;
|
Entity parent;
|
||||||
|
|
||||||
CopyOnWriteArrayList<EntityMessage> networkMessageQueue = new CopyOnWriteArrayList<EntityMessage>();
|
|
||||||
|
|
||||||
int frameCurrent;
|
|
||||||
|
|
||||||
int maxFrame = 60;
|
|
||||||
|
|
||||||
public IdleTree(Entity e){
|
public IdleTree(Entity e){
|
||||||
state = IdleTreeState.NOT_IDLE;
|
state = IdleTreeState.IDLE;
|
||||||
parent = e;
|
parent = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,41 +72,6 @@ public class IdleTree implements BehaviorTree {
|
|||||||
attackTree = CreatureUtils.clientGetAttackTree(parent);
|
attackTree = CreatureUtils.clientGetAttackTree(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse attached network messages
|
|
||||||
// for(EntityMessage message : networkMessageQueue){
|
|
||||||
// networkMessageQueue.remove(message);
|
|
||||||
// // System.out.println("MOVE to " + message.getX() + " " + message.getY() + " " + message.getZ());
|
|
||||||
// switch(message.getMessageSubtype()){
|
|
||||||
// case ATTACKUPDATE:
|
|
||||||
// switch(message.gettreeState()){
|
|
||||||
// case 0:
|
|
||||||
// state = IdleTreeState.IDLE;
|
|
||||||
// break;
|
|
||||||
// case 1:
|
|
||||||
// state = IdleTreeState.NOT_IDLE;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// EntityUtils.getPosition(parent).set(message.getpositionX(),message.getpositionY(),message.getpositionZ());
|
|
||||||
// CreatureUtils.setFacingVector(parent, new Vector3d(message.getrotationX(),message.getrotationY(),message.getrotationZ()));
|
|
||||||
// break;
|
|
||||||
// case ATTACHENTITYTOENTITY:
|
|
||||||
// case CREATE:
|
|
||||||
// case DESTROY:
|
|
||||||
// case MOVE:
|
|
||||||
// case MOVEUPDATE:
|
|
||||||
// case SETBEHAVIORTREE:
|
|
||||||
// case SETFACING:
|
|
||||||
// case SETPOSITION:
|
|
||||||
// case SETPROPERTY:
|
|
||||||
// case SPAWNCREATURE:
|
|
||||||
// case SPAWNITEM:
|
|
||||||
// case KILL:
|
|
||||||
// //silently ignore
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
boolean isIdle;
|
|
||||||
|
|
||||||
//state machine
|
//state machine
|
||||||
switch(state){
|
switch(state){
|
||||||
@ -132,32 +86,8 @@ public class IdleTree implements BehaviorTree {
|
|||||||
entityActor.incrementAnimationTime(0.0001);
|
entityActor.incrementAnimationTime(0.0001);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// isIdle = true;
|
|
||||||
// if(!movementTreeIsIdle){
|
|
||||||
// isIdle = false;
|
|
||||||
// }
|
|
||||||
// if(hasAttackTree){
|
|
||||||
// if(attackTree.getState() != AttackTreeState.IDLE){
|
|
||||||
// isIdle = false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if(!isIdle){
|
|
||||||
// state = IdleTreeState.NOT_IDLE;
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
case NOT_IDLE:
|
case NOT_IDLE:
|
||||||
// isIdle = true;
|
|
||||||
// if(!movementTreeIsIdle){
|
|
||||||
// isIdle = false;
|
|
||||||
// }
|
|
||||||
// if(hasAttackTree){
|
|
||||||
// if(attackTree.getState() != AttackTreeState.IDLE){
|
|
||||||
// isIdle = false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if(isIdle){
|
|
||||||
// state = IdleTreeState.IDLE;
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,10 +108,6 @@ public class IdleTree implements BehaviorTree {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addNetworkMessage(EntityMessage networkMessage) {
|
|
||||||
networkMessageQueue.add(networkMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Automatically generated </p>
|
* <p> Automatically generated </p>
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import electrosphere.renderer.actor.Actor;
|
|||||||
import electrosphere.renderer.anim.Animation;
|
import electrosphere.renderer.anim.Animation;
|
||||||
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
import electrosphere.server.datacell.utils.DataCellSearchUtils;
|
||||||
import electrosphere.server.datacell.utils.ServerBehaviorTreeUtils;
|
import electrosphere.server.datacell.utils.ServerBehaviorTreeUtils;
|
||||||
|
import electrosphere.server.poseactor.PoseActor;
|
||||||
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
@ -32,16 +33,12 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||||||
public class ServerIdleTree implements BehaviorTree {
|
public class ServerIdleTree implements BehaviorTree {
|
||||||
|
|
||||||
@SyncedField
|
@SyncedField
|
||||||
IdleTreeState state;
|
private IdleTreeState state;
|
||||||
|
|
||||||
Entity parent;
|
Entity parent;
|
||||||
|
|
||||||
CopyOnWriteArrayList<EntityMessage> networkMessageQueue = new CopyOnWriteArrayList<EntityMessage>();
|
CopyOnWriteArrayList<EntityMessage> networkMessageQueue = new CopyOnWriteArrayList<EntityMessage>();
|
||||||
|
|
||||||
int frameCurrent;
|
|
||||||
|
|
||||||
int maxFrame = 60;
|
|
||||||
|
|
||||||
public ServerIdleTree(Entity e){
|
public ServerIdleTree(Entity e){
|
||||||
state = IdleTreeState.IDLE;
|
state = IdleTreeState.IDLE;
|
||||||
parent = e;
|
parent = e;
|
||||||
@ -60,7 +57,6 @@ public class ServerIdleTree implements BehaviorTree {
|
|||||||
public void start(){
|
public void start(){
|
||||||
//TODO: check if can start moving
|
//TODO: check if can start moving
|
||||||
state = IdleTreeState.IDLE;
|
state = IdleTreeState.IDLE;
|
||||||
frameCurrent = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void interrupt(){
|
public void interrupt(){
|
||||||
@ -72,8 +68,7 @@ public class ServerIdleTree implements BehaviorTree {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void simulate(float deltaTime){
|
public void simulate(float deltaTime){
|
||||||
System.out.println("simulate server chunk");
|
PoseActor entityActor = EntityUtils.getPoseActor(parent);
|
||||||
Actor entityActor = EntityUtils.getActor(parent);
|
|
||||||
|
|
||||||
boolean movementTreeIsIdle = movementTreeIsIdle();
|
boolean movementTreeIsIdle = movementTreeIsIdle();
|
||||||
|
|
||||||
@ -90,9 +85,7 @@ public class ServerIdleTree implements BehaviorTree {
|
|||||||
case IDLE:
|
case IDLE:
|
||||||
if(entityActor != null){
|
if(entityActor != null){
|
||||||
if(
|
if(
|
||||||
(!entityActor.isPlayingAnimation() || !entityActor.isPlayingAnimation(Animation.ANIMATION_IDLE_1)) &&
|
(!entityActor.isPlayingAnimation() || !entityActor.isPlayingAnimation(Animation.ANIMATION_IDLE_1))
|
||||||
(Globals.assetManager.fetchModel(entityActor.getModelPath()) != null && Globals.assetManager.fetchModel(entityActor.getModelPath()).getAnimation(Animation.ANIMATION_IDLE_1) != null)
|
|
||||||
|
|
||||||
){
|
){
|
||||||
entityActor.playAnimation(Animation.ANIMATION_IDLE_1,3);
|
entityActor.playAnimation(Animation.ANIMATION_IDLE_1,3);
|
||||||
entityActor.incrementAnimationTime(0.0001);
|
entityActor.incrementAnimationTime(0.0001);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user