mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
Fix item EAR ticks
Item entities only have their gravity ticked every 4 ticks when on ground. Fix that and also remove Spigot's arbitrary tick skipping. It's a terribly cheap way of getting extra performance that doesn't really work at all.
This commit is contained in:
parent
b948d38658
commit
8a2c2db2a5
2 changed files with 11 additions and 5 deletions
|
@ -84,6 +84,15 @@
|
||||||
|
|
||||||
this.xo = this.getX();
|
this.xo = this.getX();
|
||||||
this.yo = this.getY();
|
this.yo = this.getY();
|
||||||
|
@@ -162,7 +175,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!this.onGround() || this.getDeltaMovement().horizontalDistanceSqr() > 9.999999747378752E-6D || (this.tickCount + this.getId()) % 4 == 0) {
|
||||||
|
+ if (!this.onGround() || this.getDeltaMovement().horizontalDistanceSqr() > 9.999999747378752E-6D || (this.tickCount + this.getId()) % 4 == 0) { // Paper - Diff on change; ActivationRange immunity
|
||||||
|
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||||
|
this.applyEffectsFromBlocks();
|
||||||
|
float f = 0.98F;
|
||||||
@@ -188,9 +201,11 @@
|
@@ -188,9 +201,11 @@
|
||||||
this.mergeWithNeighbours();
|
this.mergeWithNeighbours();
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,7 +234,7 @@ public class ActivationRange
|
||||||
public static boolean checkIfActive(Entity entity)
|
public static boolean checkIfActive(Entity entity)
|
||||||
{
|
{
|
||||||
// Never safe to skip fireworks or item gravity
|
// Never safe to skip fireworks or item gravity
|
||||||
if (entity instanceof FireworkRocketEntity || (entity instanceof ItemEntity && (entity.tickCount + entity.getId() + 1) % 4 == 0)) {
|
if (entity instanceof FireworkRocketEntity || (entity instanceof ItemEntity && (entity.tickCount + entity.getId()) % 4 == 0)) { // Paper - Needed for item gravity, see ItemEntity tick
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,11 +253,8 @@ public class ActivationRange
|
||||||
}
|
}
|
||||||
isActive = true;
|
isActive = true;
|
||||||
}
|
}
|
||||||
// Add a little performance juice to active entities. Skip 1/4 if not immune.
|
|
||||||
} else if ( !entity.defaultActivationState && entity.tickCount % 4 == 0 && !ActivationRange.checkEntityImmunities( entity ) )
|
|
||||||
{
|
|
||||||
isActive = false;
|
|
||||||
}
|
}
|
||||||
|
// Paper - remove dumb tick skipping for active entities
|
||||||
return isActive;
|
return isActive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue