From ba5537bcf7fe74d10cc9938c1793d0c505d67f80 Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 21 Mar 2024 18:47:07 -0400 Subject: [PATCH] ground move refactor --- docs/src/highlevel-design/locations/biomeideas.md | 8 ++++++++ .../java/electrosphere/controls/ControlHandler.java | 6 +++--- src/main/java/electrosphere/entity/EntityUtils.java | 2 +- .../electrosphere/entity/state/attack/AttackTree.java | 2 +- .../entity/state/attack/ServerAttackTree.java | 4 ++-- .../java/electrosphere/entity/state/idle/IdleTree.java | 4 ++-- .../entity/state/idle/ServerIdleTree.java | 4 ++-- .../entity/state/movement/ServerSprintTree.java | 10 +++++++++- .../entity/state/movement/SprintTree.java | 10 +++++++++- .../movement/{ => groundmove}/GroundMovementTree.java | 9 ++++++--- .../{ => groundmove}/ServerGroundMovementTree.java | 9 ++++++--- .../entity/types/creature/CreatureUtils.java | 4 ++-- .../electrosphere/server/ai/creature/MillAbout.java | 4 ++-- .../server/ai/creature/MindlessAttacker.java | 4 ++-- .../server/ai/creature/OpportunisticAttacker.java | 4 ++-- .../server/ai/creature/adventurer/SeekTown.java | 4 ++-- .../server/ai/creature/party/PartyFollower.java | 4 ++-- .../server/simulation/MicroSimulation.java | 2 +- 18 files changed, 62 insertions(+), 32 deletions(-) rename src/main/java/electrosphere/entity/state/movement/{ => groundmove}/GroundMovementTree.java (98%) rename src/main/java/electrosphere/entity/state/movement/{ => groundmove}/ServerGroundMovementTree.java (98%) diff --git a/docs/src/highlevel-design/locations/biomeideas.md b/docs/src/highlevel-design/locations/biomeideas.md index 258ff409..784eb79b 100644 --- a/docs/src/highlevel-design/locations/biomeideas.md +++ b/docs/src/highlevel-design/locations/biomeideas.md @@ -39,6 +39,8 @@ - Overgrown Mountain - Magnetic Mountain +## Hot Springs + ## Ruins ## Light Valley @@ -306,3 +308,9 @@ Full of kelp dangling from island, lots of sea-themed flying creatures ## Ghost Water in the Sky Idk what this means but I just came up with it and it sounds cool +## Resort Island +Extremely pretty and serene nature island perfect for building a resort + +## Fleshy Horror Island +A living sky island full of demons + diff --git a/src/main/java/electrosphere/controls/ControlHandler.java b/src/main/java/electrosphere/controls/ControlHandler.java index b238b8b0..06d13aa1 100644 --- a/src/main/java/electrosphere/controls/ControlHandler.java +++ b/src/main/java/electrosphere/controls/ControlHandler.java @@ -88,11 +88,11 @@ import electrosphere.entity.state.equip.EquipState; import electrosphere.entity.state.inventory.InventoryUtils; import electrosphere.entity.state.inventory.UnrelationalInventoryState; import electrosphere.entity.state.ironsight.IronSightTree; -import electrosphere.entity.state.movement.GroundMovementTree; import electrosphere.entity.state.movement.JumpTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; -import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState; 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.types.camera.CameraEntityUtils; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.logger.LoggerInterface; diff --git a/src/main/java/electrosphere/entity/EntityUtils.java b/src/main/java/electrosphere/entity/EntityUtils.java index 953880fc..74b04d7d 100644 --- a/src/main/java/electrosphere/entity/EntityUtils.java +++ b/src/main/java/electrosphere/entity/EntityUtils.java @@ -6,7 +6,7 @@ package electrosphere.entity; import electrosphere.engine.Globals; -import electrosphere.entity.state.movement.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; import electrosphere.entity.types.collision.CollisionObjUtils; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.item.ItemUtils; diff --git a/src/main/java/electrosphere/entity/state/attack/AttackTree.java b/src/main/java/electrosphere/entity/state/attack/AttackTree.java index 1c518f5c..252045a3 100644 --- a/src/main/java/electrosphere/entity/state/attack/AttackTree.java +++ b/src/main/java/electrosphere/entity/state/attack/AttackTree.java @@ -10,7 +10,7 @@ import electrosphere.entity.ServerEntityUtils; import electrosphere.entity.state.BehaviorTree; import electrosphere.entity.state.collidable.Impulse; import electrosphere.entity.state.equip.EquipState; -import electrosphere.entity.state.movement.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; import electrosphere.entity.state.rotator.RotatorTree; import electrosphere.entity.types.attach.AttachUtils; import electrosphere.entity.types.collision.CollisionObjUtils; diff --git a/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java b/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java index b54ee127..ed9275dc 100644 --- a/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java +++ b/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java @@ -10,8 +10,8 @@ import electrosphere.entity.ServerEntityUtils; import electrosphere.entity.state.BehaviorTree; import electrosphere.entity.state.collidable.Impulse; import electrosphere.entity.state.equip.EquipState; -import electrosphere.entity.state.movement.GroundMovementTree; -import electrosphere.entity.state.movement.ServerGroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree; import electrosphere.entity.state.rotator.RotatorTree; import electrosphere.entity.state.rotator.ServerRotatorTree; import electrosphere.entity.types.attach.AttachUtils; diff --git a/src/main/java/electrosphere/entity/state/idle/IdleTree.java b/src/main/java/electrosphere/entity/state/idle/IdleTree.java index 3e4d6bd5..d2baaf2f 100644 --- a/src/main/java/electrosphere/entity/state/idle/IdleTree.java +++ b/src/main/java/electrosphere/entity/state/idle/IdleTree.java @@ -6,12 +6,12 @@ import electrosphere.net.synchronization.BehaviorTreeIdEnums; import electrosphere.entity.state.BehaviorTree; import electrosphere.entity.state.attack.AttackTree; import electrosphere.entity.state.movement.AirplaneMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.EntityDataStrings; import electrosphere.entity.EntityUtils; -import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.net.synchronization.annotation.SyncedField; import electrosphere.net.synchronization.annotation.SynchronizableEnum; diff --git a/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java b/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java index 55e509f2..1efb3ce6 100644 --- a/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java +++ b/src/main/java/electrosphere/entity/state/idle/ServerIdleTree.java @@ -5,12 +5,12 @@ import electrosphere.entity.state.attack.ServerAttackTree; import electrosphere.entity.state.attack.ServerAttackTree.AttackTreeState; import electrosphere.entity.state.idle.IdleTree.IdleTreeState; import electrosphere.entity.state.movement.AirplaneMovementTree; -import electrosphere.entity.state.movement.ServerGroundMovementTree; +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; import electrosphere.entity.EntityUtils; -import electrosphere.entity.state.movement.ServerGroundMovementTree.MovementTreeState; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.net.parser.net.message.EntityMessage; import electrosphere.net.parser.net.message.SynchronizationMessage; diff --git a/src/main/java/electrosphere/entity/state/movement/ServerSprintTree.java b/src/main/java/electrosphere/entity/state/movement/ServerSprintTree.java index af952993..80e4ad40 100644 --- a/src/main/java/electrosphere/entity/state/movement/ServerSprintTree.java +++ b/src/main/java/electrosphere/entity/state/movement/ServerSprintTree.java @@ -3,7 +3,8 @@ package electrosphere.entity.state.movement; import electrosphere.engine.Main; import electrosphere.entity.Entity; import electrosphere.entity.state.BehaviorTree; -import electrosphere.entity.state.movement.ServerGroundMovementTree.MovementTreeState; +import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree; +import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree.MovementTreeState; /** * @@ -72,5 +73,12 @@ public class ServerSprintTree implements BehaviorTree { public void setServerGroundMovementTree(ServerGroundMovementTree groundMovementTree){ this.groundMovementTree = groundMovementTree; } + + //get max velocity + public float getMaxVelocity() { + return maxVelocity; + } + + } diff --git a/src/main/java/electrosphere/entity/state/movement/SprintTree.java b/src/main/java/electrosphere/entity/state/movement/SprintTree.java index 26c4a813..d87c61ea 100644 --- a/src/main/java/electrosphere/entity/state/movement/SprintTree.java +++ b/src/main/java/electrosphere/entity/state/movement/SprintTree.java @@ -3,7 +3,8 @@ package electrosphere.entity.state.movement; import electrosphere.engine.Main; import electrosphere.entity.Entity; import electrosphere.entity.state.BehaviorTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementTreeState; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementTreeState; /** * @@ -72,5 +73,12 @@ public class SprintTree implements BehaviorTree { public void setGroundMovementTree(GroundMovementTree groundMovementTree){ this.groundMovementTree = groundMovementTree; } + + //get max velocity + public float getMaxVelocity() { + return maxVelocity; + } + + } diff --git a/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java b/src/main/java/electrosphere/entity/state/movement/groundmove/GroundMovementTree.java similarity index 98% rename from src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java rename to src/main/java/electrosphere/entity/state/movement/groundmove/GroundMovementTree.java index d7d42fb6..6d28c9b2 100644 --- a/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/groundmove/GroundMovementTree.java @@ -1,4 +1,4 @@ -package electrosphere.entity.state.movement; +package electrosphere.entity.state.movement.groundmove; import electrosphere.entity.state.collidable.Impulse; import electrosphere.entity.state.gravity.ClientGravityTree; @@ -16,6 +16,9 @@ import electrosphere.entity.EntityUtils; import electrosphere.entity.state.BehaviorTree; import electrosphere.entity.state.attack.AttackTree; import electrosphere.entity.state.attack.AttackTree.AttackTreeState; +import electrosphere.entity.state.movement.FallTree; +import electrosphere.entity.state.movement.JumpTree; +import electrosphere.entity.state.movement.SprintTree; import electrosphere.entity.state.movement.SprintTree.SprintTreeState; import electrosphere.net.NetUtils; import electrosphere.net.parser.net.message.EntityMessage; @@ -153,7 +156,7 @@ public class GroundMovementTree implements BehaviorTree { public void simulate(float deltaTime){ float velocity = CreatureUtils.getVelocity(parent); float acceleration = CreatureUtils.getAcceleration(parent); - float maxNaturalVelocity = sprintTree != null && sprintTree.state == SprintTreeState.SPRINTING ? sprintTree.maxVelocity : CreatureUtils.getMaxNaturalVelocity(parent); + float maxNaturalVelocity = sprintTree != null && sprintTree.getState() == SprintTreeState.SPRINTING ? sprintTree.getMaxVelocity() : CreatureUtils.getMaxNaturalVelocity(parent); Actor entityActor = EntityUtils.getActor(parent); // Model entityModel = Globals.assetManager.fetchModel(EntityUtils.getEntityModelPath(parent)); Vector3d position = EntityUtils.getPosition(parent); @@ -396,7 +399,7 @@ public class GroundMovementTree implements BehaviorTree { public String determineCorrectAnimation(){ String rVal = ""; if(sprintTree != null){ - switch(sprintTree.state){ + switch(sprintTree.getState()){ case SPRINTING: switch(state){ case IDLE: diff --git a/src/main/java/electrosphere/entity/state/movement/ServerGroundMovementTree.java b/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java similarity index 98% rename from src/main/java/electrosphere/entity/state/movement/ServerGroundMovementTree.java rename to src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java index c181f9cc..6c39f618 100644 --- a/src/main/java/electrosphere/entity/state/movement/ServerGroundMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java @@ -1,4 +1,4 @@ -package electrosphere.entity.state.movement; +package electrosphere.entity.state.movement.groundmove; import electrosphere.entity.state.collidable.Impulse; import electrosphere.entity.state.gravity.GravityUtils; @@ -15,6 +15,9 @@ import electrosphere.entity.EntityUtils; import electrosphere.entity.state.BehaviorTree; import electrosphere.entity.state.attack.ServerAttackTree; import electrosphere.entity.state.attack.ServerAttackTree.AttackTreeState; +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.net.NetUtils; import electrosphere.net.parser.net.message.EntityMessage; @@ -153,7 +156,7 @@ public class ServerGroundMovementTree implements BehaviorTree { public void simulate(float deltaTime){ float velocity = CreatureUtils.getVelocity(parent); float acceleration = CreatureUtils.getAcceleration(parent); - float maxNaturalVelocity = sprintTree != null && sprintTree.state == SprintTreeState.SPRINTING ? sprintTree.maxVelocity : CreatureUtils.getMaxNaturalVelocity(parent); + float maxNaturalVelocity = sprintTree != null && sprintTree.getState() == SprintTreeState.SPRINTING ? sprintTree.getMaxVelocity() : CreatureUtils.getMaxNaturalVelocity(parent); PoseActor entityPoseActor = EntityUtils.getPoseActor(parent); // Model entityModel = Globals.assetManager.fetchModel(EntityUtils.getEntityModelPath(parent)); Vector3d position = EntityUtils.getPosition(parent); @@ -432,7 +435,7 @@ public class ServerGroundMovementTree implements BehaviorTree { public String determineCorrectAnimation(){ String rVal = ""; if(sprintTree != null){ - switch(sprintTree.state){ + switch(sprintTree.getState()){ case SPRINTING: switch(state){ case IDLE: diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java index 09d7ca50..d75ba883 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java +++ b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java @@ -37,13 +37,13 @@ import electrosphere.entity.state.inventory.UnrelationalInventoryState; import electrosphere.entity.state.life.LifeState; import electrosphere.entity.state.movement.AirplaneMovementTree; import electrosphere.entity.state.movement.FallTree; -import electrosphere.entity.state.movement.GroundMovementTree; import electrosphere.entity.state.movement.JumpTree; import electrosphere.entity.state.movement.ServerFallTree; -import electrosphere.entity.state.movement.ServerGroundMovementTree; 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.ServerGroundMovementTree; import electrosphere.entity.state.rotator.RotatorHierarchyNode; import electrosphere.entity.state.rotator.RotatorTree; import electrosphere.entity.state.rotator.ServerRotatorTree; diff --git a/src/main/java/electrosphere/server/ai/creature/MillAbout.java b/src/main/java/electrosphere/server/ai/creature/MillAbout.java index 5e9b08e8..c4f4a8f9 100644 --- a/src/main/java/electrosphere/server/ai/creature/MillAbout.java +++ b/src/main/java/electrosphere/server/ai/creature/MillAbout.java @@ -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.GroundMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.server.ai.AI; diff --git a/src/main/java/electrosphere/server/ai/creature/MindlessAttacker.java b/src/main/java/electrosphere/server/ai/creature/MindlessAttacker.java index 0d12b162..1530ee0b 100644 --- a/src/main/java/electrosphere/server/ai/creature/MindlessAttacker.java +++ b/src/main/java/electrosphere/server/ai/creature/MindlessAttacker.java @@ -7,8 +7,8 @@ import electrosphere.entity.EntityTags; import electrosphere.entity.EntityUtils; import electrosphere.entity.state.attack.AttackTree; import electrosphere.entity.state.attack.ServerAttackTree; -import electrosphere.entity.state.movement.GroundMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.server.ai.AI; import electrosphere.server.datacell.Realm; diff --git a/src/main/java/electrosphere/server/ai/creature/OpportunisticAttacker.java b/src/main/java/electrosphere/server/ai/creature/OpportunisticAttacker.java index 87b4253f..7374b5fe 100644 --- a/src/main/java/electrosphere/server/ai/creature/OpportunisticAttacker.java +++ b/src/main/java/electrosphere/server/ai/creature/OpportunisticAttacker.java @@ -8,8 +8,8 @@ import electrosphere.entity.EntityUtils; import electrosphere.entity.state.attack.AttackTree; import electrosphere.entity.state.attack.ServerAttackTree; import electrosphere.entity.state.equip.EquipState; -import electrosphere.entity.state.movement.GroundMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.item.ItemUtils; import electrosphere.server.ai.AI; diff --git a/src/main/java/electrosphere/server/ai/creature/adventurer/SeekTown.java b/src/main/java/electrosphere/server/ai/creature/adventurer/SeekTown.java index dbbcbb46..4cbd91a3 100644 --- a/src/main/java/electrosphere/server/ai/creature/adventurer/SeekTown.java +++ b/src/main/java/electrosphere/server/ai/creature/adventurer/SeekTown.java @@ -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.GroundMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.game.server.town.Town; import electrosphere.server.ai.AI; diff --git a/src/main/java/electrosphere/server/ai/creature/party/PartyFollower.java b/src/main/java/electrosphere/server/ai/creature/party/PartyFollower.java index bbee68fe..6131ce87 100644 --- a/src/main/java/electrosphere/server/ai/creature/party/PartyFollower.java +++ b/src/main/java/electrosphere/server/ai/creature/party/PartyFollower.java @@ -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.GroundMovementTree; -import electrosphere.entity.state.movement.GroundMovementTree.MovementRelativeFacing; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree; +import electrosphere.entity.state.movement.groundmove.GroundMovementTree.MovementRelativeFacing; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.server.ai.AI; diff --git a/src/main/java/electrosphere/server/simulation/MicroSimulation.java b/src/main/java/electrosphere/server/simulation/MicroSimulation.java index 6940f779..6321c4d0 100644 --- a/src/main/java/electrosphere/server/simulation/MicroSimulation.java +++ b/src/main/java/electrosphere/server/simulation/MicroSimulation.java @@ -10,7 +10,6 @@ import electrosphere.entity.EntityTags; import electrosphere.entity.EntityUtils; import electrosphere.entity.scene.EntityDescriptor; import electrosphere.entity.state.BehaviorTree; -import electrosphere.entity.state.movement.GroundMovementTree; import electrosphere.entity.state.ParticleTree; import electrosphere.entity.state.attack.AttackTree; import electrosphere.entity.state.collidable.ClientCollidableTree; @@ -23,6 +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.types.particle.ParticleUtils; import electrosphere.net.parser.net.message.EntityMessage; import electrosphere.renderer.actor.Actor;