diff --git a/assets/Data/entity/items.json b/assets/Data/entity/items.json index d7bb9ac9..aa76f041 100644 --- a/assets/Data/entity/items.json +++ b/assets/Data/entity/items.json @@ -117,6 +117,7 @@ "model": { "idleData": { "animation": { + "nameFirstPerson" : "Idle", "nameThirdPerson" : "Idle", "priorityCategory" : "IDLE" } diff --git a/buildNumber.properties b/buildNumber.properties index b70e28fc..62d16ddf 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Mon Oct 21 09:29:02 EDT 2024 -buildNumber=362 +#Mon Oct 21 09:58:24 EDT 2024 +buildNumber=363 diff --git a/docs/src/progress/currenttarget.md b/docs/src/progress/currenttarget.md index de158051..958314c0 100644 --- a/docs/src/progress/currenttarget.md +++ b/docs/src/progress/currenttarget.md @@ -43,7 +43,6 @@ - Spawn player in a town with a quest to complete a nearby dungeon + bug fixes - Fix idle animations Fix light cluster mapping for foliage shader Fix foliage placement Fix lights not being deleted @@ -51,5 +50,6 @@ Fix block tree preventing initiating an attack Fix equipping sword on toolbar Fix return to title menu synchronization bug + Fix particles not spawning in correct positions + unreproducible bugs diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 4479793e..3253f168 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -880,6 +880,7 @@ Fix inventory null pointer check on virtualaudiomanager (10/21/2024) Fix inventory message for undefined id on client Fix movement audio service when audio engine disabled +Fix idle animations (for katana) diff --git a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java index 49aec5a7..16ebec51 100644 --- a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java +++ b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java @@ -113,6 +113,7 @@ public class ClientParticleEmitterComponent implements BehaviorTree { Globals.clientSceneWrapper.getScene().registerBehaviorTree(rVal); return rVal; } + /** *

* Detatches this tree from the entity. @@ -122,6 +123,7 @@ public class ClientParticleEmitterComponent implements BehaviorTree { */ public static void detachTree(Entity entity, BehaviorTree tree){ } + /** *

* Gets the ClientEquipState of the entity @@ -132,4 +134,5 @@ public class ClientParticleEmitterComponent implements BehaviorTree { public static ClientEquipState getClientEquipState(Entity entity){ return (ClientEquipState)entity.getData(EntityDataStrings.TREE_CLIENTPARTICLEEMITTERSTATE); } + } diff --git a/src/main/java/electrosphere/entity/state/idle/ClientIdleTree.java b/src/main/java/electrosphere/entity/state/idle/ClientIdleTree.java index a00c65e2..6655bd53 100644 --- a/src/main/java/electrosphere/entity/state/idle/ClientIdleTree.java +++ b/src/main/java/electrosphere/entity/state/idle/ClientIdleTree.java @@ -10,7 +10,6 @@ import electrosphere.entity.EntityDataStrings; import electrosphere.entity.EntityUtils; import electrosphere.entity.btree.BehaviorTree; import electrosphere.entity.types.creature.CreatureUtils; -import electrosphere.game.data.creature.type.CreatureData; import electrosphere.game.data.creature.type.IdleData; import electrosphere.net.synchronization.annotation.SyncedField; import electrosphere.net.synchronization.annotation.SynchronizableEnum; @@ -42,15 +41,12 @@ public class ClientIdleTree implements BehaviorTree { * Creates an idle tree * @param e the entity to attach the tree to */ - public ClientIdleTree(Entity e, Object ... params){ + private ClientIdleTree(Entity e, Object ... params){ state = IdleTreeState.IDLE; parent = e; - //check if this is a creature, if so add its idle data - CreatureData creatureType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(CreatureUtils.getType(parent)); - if(creatureType != null){ - idleData = creatureType.getGraphicsTemplate().getModel().getIdleData(); + if(params.length > 0 && params[0] instanceof IdleData){ + idleData = (IdleData)params[0]; } - //TODO: if object, check if object has idle data and add accordingly } /** @@ -112,6 +108,8 @@ public class ClientIdleTree implements BehaviorTree { rVal = true; } } + } else { + rVal = true; } return rVal; } diff --git a/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java b/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java index dacff364..20311439 100644 --- a/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java +++ b/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java @@ -150,6 +150,8 @@ public class ServerIdleTree implements BehaviorTree { rVal = true; } } + } else { + rVal = true; } return rVal; } diff --git a/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java b/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java index 0bd9ea42..c9591b48 100644 --- a/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java +++ b/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java @@ -152,9 +152,10 @@ public class CommonEntityUtils { } //idle tree & generic stuff all creatures have if(graphicsTemplate.getModel() != null && graphicsTemplate.getModel().getIdleData() != null){ - ClientIdleTree idleTree = new ClientIdleTree(entity); - entity.putData(EntityDataStrings.TREE_IDLE, idleTree); - Globals.clientScene.registerBehaviorTree(idleTree); + ClientIdleTree.attachTree(entity, graphicsTemplate.getModel().getIdleData()); + // ClientIdleTree idleTree = new ClientIdleTree(entity); + // entity.putData(EntityDataStrings.TREE_IDLE, idleTree); + // Globals.clientScene.registerBehaviorTree(idleTree); } } Actor creatureActor = EntityUtils.getActor(entity); diff --git a/src/main/java/electrosphere/renderer/actor/Actor.java b/src/main/java/electrosphere/renderer/actor/Actor.java index 8f36e4bd..87140163 100644 --- a/src/main/java/electrosphere/renderer/actor/Actor.java +++ b/src/main/java/electrosphere/renderer/actor/Actor.java @@ -152,10 +152,10 @@ public class Actor { return false; } for(ActorAnimationMask mask : animationQueue){ - if(mask.getAnimationName().contains(animationData.getNameFirstPerson())){ + if(animationData.getNameFirstPerson() != null && mask.getAnimationName().contains(animationData.getNameFirstPerson())){ return true; } - if(mask.getAnimationName().contains(animationData.getNameThirdPerson())){ + if(animationData.getNameThirdPerson() != null && mask.getAnimationName().contains(animationData.getNameThirdPerson())){ return true; } }