Tidy up entity geometry stuff:

- Add a getCentre method for entities to GeometryUtils
- Replace getPositionEyes(0) with getPositionEyes(1) since it's more efficient, and by definition they must be the same
- Remove all the silly getEntityBoundingBox().minY stuff, this bug has been fixed since 1.8! (which begs the question: if it was considered a bug, how on earth did it go unfixed for that long?)
- A few other small things
This commit is contained in:
Electroblob77
2020-07-04 13:34:11 +01:00
parent 3f19e89b91
commit 8ae6bc9102
67 changed files with 109 additions and 104 deletions
@@ -609,7 +609,7 @@ public class ItemArtefact extends Item {
.pos(0, event.getEntity().height/2, 0).target(target).spawn(player.world);
ParticleBuilder.spawnShockParticles(player.world, target.posX,
target.getEntityBoundingBox().minY + target.height/2, target.posZ);
target.posY + target.height/2, target.posZ);
}
DamageSafetyChecker.attackEntitySafely(target, MagicDamage.causeDirectMagicDamage(player,
@@ -693,7 +693,7 @@ public class ItemArtefact extends Item {
.pos(0, event.getEntity().height/2, 0).target(target).spawn(world);
ParticleBuilder.spawnShockParticles(world, target.posX,
target.getEntityBoundingBox().minY + target.height/2, target.posZ);
target.posY + target.height/2, target.posZ);
}
DamageSafetyChecker.attackEntitySafely(target, MagicDamage.causeDirectMagicDamage(player,
@@ -210,7 +210,7 @@ public class ItemLightningHammer extends Item implements IConjuredItem {
if(hit.world.isRemote){
ParticleBuilder.create(Type.LIGHTNING).pos(hit.getPositionVector().add(0, hit.height / 2, 0))
.target(target).spawn(hit.world);
ParticleBuilder.spawnShockParticles(hit.world, target.posX, target.getEntityBoundingBox().minY + target.height / 2, target.posZ);
ParticleBuilder.spawnShockParticles(hit.world, target.posX, target.posY + target.height / 2, target.posZ);
}
//target.playSound(WizardrySounds.SPELL_SPARK, 1, 1.5f + 0.4f * world.rand.nextFloat());
@@ -59,7 +59,7 @@ public class ItemPurifyingElixir extends Item {
for(int i = 0; i < 20; i++){
double x = entity.posX + world.rand.nextDouble() * 2 - 1;
double y = entity.getEntityBoundingBox().minY + entity.getEyeHeight() - 0.5 + world.rand.nextDouble();
double y = entity.posY + entity.getEyeHeight() - 0.5 + world.rand.nextDouble();
double z = entity.posZ + world.rand.nextDouble() * 2 - 1;
ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).vel(0, 0.14, 0).clr(0x0f001b)
.time(20 + world.rand.nextInt(12)).spawn(world);
@@ -847,7 +847,7 @@ public class ItemWand extends Item implements IWorkbenchItem, ISpellCastingItem,
if(player.world.isRemote){
Vec3d origin = new Vec3d(player.posX, player.getEntityBoundingBox().minY + player.getEyeHeight(), player.posZ);
Vec3d origin = player.getPositionEyes(1);
Vec3d hit = origin.add(player.getLookVec().scale(player.getDistance(event.getTarget())));
// Generate two perpendicular vectors in the plane perpendicular to the look vec
Vec3d vec1 = player.getLookVec().rotatePitch(90);