mirror of
https://github.com/Minestom/Minestom.git
synced 2024-12-28 03:57:50 +01:00
Prevent EntityCreature from ignoring gravity
This commit is contained in:
parent
e813037475
commit
3bc90fffd9
@ -455,6 +455,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
||||
|
||||
// Velocity
|
||||
final boolean applyVelocity = (hasVelocity() && !PlayerUtils.isNettyClient(this)) ||
|
||||
(!isOnGround() && !PlayerUtils.isNettyClient(this)) ||
|
||||
(PlayerUtils.isNettyClient(this) && hasVelocity());
|
||||
if (applyVelocity) {
|
||||
final float tps = MinecraftServer.TICK_PER_SECOND;
|
||||
|
@ -2,6 +2,7 @@ package net.minestom.server.entity;
|
||||
|
||||
import com.extollit.gaming.ai.path.HydrazinePathFinder;
|
||||
import com.extollit.gaming.ai.path.model.IPath;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.attribute.Attributes;
|
||||
import net.minestom.server.collision.CollisionUtils;
|
||||
import net.minestom.server.entity.ai.GoalSelector;
|
||||
@ -431,6 +432,7 @@ public abstract class EntityCreature extends LivingEntity {
|
||||
|
||||
final float radians = (float) Math.atan2(dz, dx);
|
||||
final float speedX = (float) (Math.cos(radians) * speed);
|
||||
final float speedY = noGravity ? 0 : -gravityDragPerTick * MinecraftServer.TICK_PER_SECOND;
|
||||
final float speedZ = (float) (Math.sin(radians) * speed);
|
||||
|
||||
lookAlong(dx, direction.getY(), dz);
|
||||
@ -439,7 +441,7 @@ public abstract class EntityCreature extends LivingEntity {
|
||||
Vector newVelocityOut = new Vector();
|
||||
|
||||
// Prevent ghosting
|
||||
CollisionUtils.handlePhysics(this, new Vector(speedX, 0, speedZ), newPosition, newVelocityOut);
|
||||
CollisionUtils.handlePhysics(this, new Vector(speedX, speedY, speedZ), newPosition, newVelocityOut);
|
||||
|
||||
getPosition().setX(newPosition.getX());
|
||||
getPosition().setZ(newPosition.getZ());
|
||||
|
Loading…
Reference in New Issue
Block a user