From 91a84185c180265f9c021e48f1d7b29209278245 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 31 Jul 2024 18:27:30 -0400 Subject: [PATCH] jump fix --- docs/src/progress/currenttarget.md | 3 --- docs/src/progress/renderertodo.md | 1 + .../entity/state/gravity/ClientGravityTree.java | 4 ++++ .../electrosphere/entity/state/gravity/GravityUtils.java | 2 +- .../entity/state/movement/jump/ServerJumpTree.java | 5 ++++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/src/progress/currenttarget.md b/docs/src/progress/currenttarget.md index 031353fe..3240316f 100644 --- a/docs/src/progress/currenttarget.md +++ b/docs/src/progress/currenttarget.md @@ -9,9 +9,7 @@ audio fx for everything + bug fixes - fix bug where synchronization packet for non-existant entity crashes engine fix items falling through floor - fix jump tree not applying force while movement tree is active Things that feel bad: @@ -20,4 +18,3 @@ Things that feel bad: Attack animation feels slow No audio Short movement bursts feel jittery - Can't jump without moving diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 004cbb75..9e630859 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -490,6 +490,7 @@ Fix eyebrow weights on human model Massive netcode gen refactor Server synchronization manager Jump tree synchronization +Fix jump bugginess # TODO diff --git a/src/main/java/electrosphere/entity/state/gravity/ClientGravityTree.java b/src/main/java/electrosphere/entity/state/gravity/ClientGravityTree.java index b54e80ea..2965d5f0 100644 --- a/src/main/java/electrosphere/entity/state/gravity/ClientGravityTree.java +++ b/src/main/java/electrosphere/entity/state/gravity/ClientGravityTree.java @@ -70,6 +70,10 @@ public class ClientGravityTree implements BehaviorTree { public GravityTreeState getState(){ return state; } + + public void start(){ + state = GravityTreeState.ACTIVE; + } public void interrupt(){ diff --git a/src/main/java/electrosphere/entity/state/gravity/GravityUtils.java b/src/main/java/electrosphere/entity/state/gravity/GravityUtils.java index a617351a..1103f1b4 100644 --- a/src/main/java/electrosphere/entity/state/gravity/GravityUtils.java +++ b/src/main/java/electrosphere/entity/state/gravity/GravityUtils.java @@ -5,10 +5,10 @@ import electrosphere.entity.EntityDataStrings; public class GravityUtils { - @Deprecated public static void clientAttemptActivateGravity(Entity target){ if(target.containsKey(EntityDataStrings.GRAVITY_ENTITY)){ ClientGravityTree tree = ClientGravityTree.getClientGravityTree(target); + tree.start(); } } diff --git a/src/main/java/electrosphere/entity/state/movement/jump/ServerJumpTree.java b/src/main/java/electrosphere/entity/state/movement/jump/ServerJumpTree.java index abe65d13..87caef86 100644 --- a/src/main/java/electrosphere/entity/state/movement/jump/ServerJumpTree.java +++ b/src/main/java/electrosphere/entity/state/movement/jump/ServerJumpTree.java @@ -16,6 +16,7 @@ import electrosphere.entity.EntityDataStrings; import electrosphere.entity.EntityUtils; import electrosphere.entity.btree.BehaviorTree; import electrosphere.entity.state.AnimationPriorities; +import electrosphere.entity.state.gravity.GravityUtils; import electrosphere.entity.state.movement.jump.ClientJumpTree.JumpState; import electrosphere.game.data.creature.type.movement.JumpMovementSystem; import electrosphere.net.synchronization.annotation.SyncedField; @@ -59,6 +60,7 @@ public class ServerJumpTree implements BehaviorTree { this.setState(JumpState.ACTIVE); this.setCurrentFrame(0); this.setCurrentJumpForce(jumpForce); + GravityUtils.serverAttemptActivateGravity(parent); } } @@ -85,6 +87,7 @@ public class ServerJumpTree implements BehaviorTree { //potentially disable if(currentFrame >= jumpFrames){ this.setState(JumpState.AWAITING_LAND); + GravityUtils.serverAttemptActivateGravity(parent); } break; case INACTIVE: @@ -107,7 +110,7 @@ public class ServerJumpTree implements BehaviorTree { public void land(){ if(state != JumpState.INACTIVE && currentFrame > 2){ - state = JumpState.INACTIVE; + this.setState(JumpState.INACTIVE); } }