Clean up idle trees

This commit is contained in:
austin 2024-02-24 21:45:32 -05:00
parent e924511883
commit b3949e8583
2 changed files with 6 additions and 87 deletions

View File

@ -5,7 +5,6 @@ import electrosphere.net.synchronization.BehaviorTreeIdEnums;
import electrosphere.entity.state.BehaviorTree;
import electrosphere.entity.state.attack.AttackTree;
import electrosphere.entity.state.attack.AttackTree.AttackTreeState;
import electrosphere.entity.state.movement.AirplaneMovementTree;
import electrosphere.entity.state.movement.GroundMovementTree;
import electrosphere.engine.Globals;
@ -14,16 +13,12 @@ import electrosphere.entity.EntityDataStrings;
import electrosphere.entity.EntityUtils;
import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState;
import electrosphere.entity.types.creature.CreatureUtils;
import electrosphere.net.parser.net.message.EntityMessage;
import electrosphere.net.synchronization.annotation.SyncedField;
import electrosphere.net.synchronization.annotation.SynchronizableEnum;
import electrosphere.net.synchronization.annotation.SynchronizedBehaviorTree;
import electrosphere.renderer.actor.Actor;
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")
@ -39,18 +34,12 @@ public class IdleTree implements BehaviorTree {
}
@SyncedField
IdleTreeState state;
private IdleTreeState state;
Entity parent;
CopyOnWriteArrayList<EntityMessage> networkMessageQueue = new CopyOnWriteArrayList<EntityMessage>();
int frameCurrent;
int maxFrame = 60;
public IdleTree(Entity e){
state = IdleTreeState.NOT_IDLE;
state = IdleTreeState.IDLE;
parent = e;
}
@ -83,41 +72,6 @@ public class IdleTree implements BehaviorTree {
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
switch(state){
@ -132,32 +86,8 @@ public class IdleTree implements BehaviorTree {
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;
case NOT_IDLE:
// isIdle = true;
// if(!movementTreeIsIdle){
// isIdle = false;
// }
// if(hasAttackTree){
// if(attackTree.getState() != AttackTreeState.IDLE){
// isIdle = false;
// }
// }
// if(isIdle){
// state = IdleTreeState.IDLE;
// }
break;
}
}
@ -178,10 +108,6 @@ public class IdleTree implements BehaviorTree {
return rVal;
}
public void addNetworkMessage(EntityMessage networkMessage) {
networkMessageQueue.add(networkMessage);
}
/**
* <p> Automatically generated </p>
* <p>

View File

@ -21,6 +21,7 @@ import electrosphere.renderer.actor.Actor;
import electrosphere.renderer.anim.Animation;
import electrosphere.server.datacell.utils.DataCellSearchUtils;
import electrosphere.server.datacell.utils.ServerBehaviorTreeUtils;
import electrosphere.server.poseactor.PoseActor;
import java.util.concurrent.CopyOnWriteArrayList;
@ -32,16 +33,12 @@ import java.util.concurrent.CopyOnWriteArrayList;
public class ServerIdleTree implements BehaviorTree {
@SyncedField
IdleTreeState state;
private IdleTreeState state;
Entity parent;
CopyOnWriteArrayList<EntityMessage> networkMessageQueue = new CopyOnWriteArrayList<EntityMessage>();
int frameCurrent;
int maxFrame = 60;
public ServerIdleTree(Entity e){
state = IdleTreeState.IDLE;
parent = e;
@ -60,7 +57,6 @@ public class ServerIdleTree implements BehaviorTree {
public void start(){
//TODO: check if can start moving
state = IdleTreeState.IDLE;
frameCurrent = 0;
}
public void interrupt(){
@ -72,8 +68,7 @@ public class ServerIdleTree implements BehaviorTree {
}
public void simulate(float deltaTime){
System.out.println("simulate server chunk");
Actor entityActor = EntityUtils.getActor(parent);
PoseActor entityActor = EntityUtils.getPoseActor(parent);
boolean movementTreeIsIdle = movementTreeIsIdle();
@ -90,9 +85,7 @@ public class ServerIdleTree implements BehaviorTree {
case IDLE:
if(entityActor != null){
if(
(!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.isPlayingAnimation() || !entityActor.isPlayingAnimation(Animation.ANIMATION_IDLE_1))
){
entityActor.playAnimation(Animation.ANIMATION_IDLE_1,3);
entityActor.incrementAnimationTime(0.0001);