fixed grenade vertical rebound bug
This commit is contained in:
parent
8ceb6ccfca
commit
360f3db2ed
|
@ -177,6 +177,11 @@ public abstract class Grenade extends StrikeItem
|
|||
if (UtilEnt.isGrounded(ent) || ent.getVelocity().length() < 0.1 || ent.getTicksLived() < 4)
|
||||
return;
|
||||
|
||||
if (Math.abs(_vel.getX()) < 0.1 && Math.abs(_vel.getX()) < 0.1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* What we must do here, is record the velocity every tick.
|
||||
* Then when it collides, we get the velocity from a few ticks before and apply it, reversing the direction of collision.
|
||||
|
@ -184,8 +189,8 @@ public abstract class Grenade extends StrikeItem
|
|||
*/
|
||||
|
||||
//X Rebound
|
||||
if ((_vel.getX() > 0.05 && ent.getLocation().getX() - _lastLoc.getX() <= 0) ||
|
||||
(_vel.getX() < 0.05 && ent.getLocation().getX() - _lastLoc.getX() >= 0))
|
||||
if ((_vel.getX() > 0.1 && ent.getLocation().getX() - _lastLoc.getX() <= 0) ||
|
||||
(_vel.getX() < 0.1 && ent.getLocation().getX() - _lastLoc.getX() >= 0))
|
||||
{
|
||||
_vel = _velHistory.get(0);
|
||||
_vel.setX(-_vel.getX());
|
||||
|
@ -197,8 +202,8 @@ public abstract class Grenade extends StrikeItem
|
|||
}
|
||||
|
||||
//Z Rebound
|
||||
else if ((_vel.getZ() > 0.05 && ent.getLocation().getZ() - _lastLoc.getZ() <= 0) ||
|
||||
(_vel.getZ() < 0.05 && ent.getLocation().getZ() - _lastLoc.getZ() >= 0))
|
||||
else if ((_vel.getZ() > 0.1 && ent.getLocation().getZ() - _lastLoc.getZ() <= 0) ||
|
||||
(_vel.getZ() < 0.1 && ent.getLocation().getZ() - _lastLoc.getZ() >= 0))
|
||||
{
|
||||
_vel = _velHistory.get(0);
|
||||
_vel.setZ(-_vel.getZ());
|
||||
|
|
Loading…
Reference in New Issue