mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-27 15:17:59 +01:00
Use local velocity on the client (since other players don't send their velocity)
This commit is contained in:
parent
50f3df37a2
commit
49e74f4c54
3 changed files with 12 additions and 3 deletions
|
@ -44,7 +44,7 @@ public class Main extends MineLPDelegate implements ClientModInitializer {
|
||||||
if (pony.getMotion().isFlying()) {
|
if (pony.getMotion().isFlying()) {
|
||||||
model.getAttributes().wingAngle = MathHelper.clamp(pony.getMotion().getWingAngle() / 3F - (float)Math.PI * 0.4F, -2, 0);
|
model.getAttributes().wingAngle = MathHelper.clamp(pony.getMotion().getWingAngle() / 3F - (float)Math.PI * 0.4F, -2, 0);
|
||||||
|
|
||||||
Vec3d motion = entity.getVelocity();
|
Vec3d motion = pony.getMotion().getClientVelocity();
|
||||||
double zMotion = Math.sqrt(motion.x * motion.x + motion.z * motion.z);
|
double zMotion = Math.sqrt(motion.x * motion.x + motion.z * motion.z);
|
||||||
model.getAttributes().isGoingFast |= zMotion > 0.4F;
|
model.getAttributes().isGoingFast |= zMotion > 0.4F;
|
||||||
model.getAttributes().isGoingFast |= pony.getMotion().isDiving();
|
model.getAttributes().isGoingFast |= pony.getMotion().isDiving();
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.minelittlepony.unicopia.entity.player;
|
package com.minelittlepony.unicopia.entity.player;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for controlling flight.
|
* Interface for controlling flight.
|
||||||
*/
|
*/
|
||||||
|
@ -18,4 +20,6 @@ public interface Motion {
|
||||||
float getWingAngle();
|
float getWingAngle();
|
||||||
|
|
||||||
PlayerDimensions getDimensions();
|
PlayerDimensions getDimensions();
|
||||||
|
|
||||||
|
Vec3d getClientVelocity();
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,11 @@ public class PlayerPhysics extends EntityPhysics<PlayerEntity> implements Tickab
|
||||||
return dimensions;
|
return dimensions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vec3d getClientVelocity() {
|
||||||
|
return lastVel;
|
||||||
|
}
|
||||||
|
|
||||||
public final float getPersistantGravityModifier() {
|
public final float getPersistantGravityModifier() {
|
||||||
return super.getGravityModifier();
|
return super.getGravityModifier();
|
||||||
}
|
}
|
||||||
|
@ -133,7 +138,7 @@ public class PlayerPhysics extends EntityPhysics<PlayerEntity> implements Tickab
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isRainbooming() {
|
public boolean isRainbooming() {
|
||||||
return pony.getSpellSlot().get(SpellType.RAINBOOM, true).isPresent();
|
return SpellType.RAINBOOM.isOn(pony);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -208,7 +213,7 @@ public class PlayerPhysics extends EntityPhysics<PlayerEntity> implements Tickab
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getHorizontalMotion() {
|
public double getHorizontalMotion() {
|
||||||
return lastVel.horizontalLengthSquared();
|
return getClientVelocity().horizontalLengthSquared();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue