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:
@@ -3,6 +3,7 @@ package electroblob.wizardry.client.animation;
|
||||
import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.spell.Grapple;
|
||||
import electroblob.wizardry.util.GeometryUtils;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -100,7 +101,7 @@ public abstract class ActionAnimation extends Animation {
|
||||
if(hit.entityHit instanceof EntityLivingBase){
|
||||
// If the target is an entity, we need to use the entity's centre rather than the original hit position
|
||||
// because the entity will have moved!
|
||||
target = new Vec3d(hit.entityHit.posX, hit.entityHit.getEntityBoundingBox().minY + hit.entityHit.height/2, hit.entityHit.posZ);
|
||||
target = GeometryUtils.getCentre(hit.entityHit);
|
||||
}
|
||||
|
||||
EnumHandSide side = InventoryUtils.getSideForHand(player, player.getActiveHand());
|
||||
|
||||
@@ -95,7 +95,7 @@ public abstract class ParticleTargeted extends ParticleWizardry {
|
||||
if(this.target != null){
|
||||
|
||||
this.targetX = this.target.prevPosX + (this.target.posX - this.target.prevPosX) * partialTicks;
|
||||
double correction = this.target.getEntityBoundingBox().minY - this.target.posY;
|
||||
double correction = this.target.posY - this.target.posY;
|
||||
this.targetY = this.target.prevPosY + (this.target.posY - this.target.prevPosY) * partialTicks
|
||||
+ target.height/2 + correction;
|
||||
this.targetZ = this.target.prevPosZ + (this.target.posZ - this.target.prevPosZ) * partialTicks;
|
||||
|
||||
@@ -206,7 +206,7 @@ public abstract class ParticleWizardry extends Particle {
|
||||
this.entity = entity;
|
||||
// Set these to the correct values
|
||||
if(entity != null){
|
||||
this.setPosition(this.entity.posX + relativeX, this.entity.getEntityBoundingBox().minY
|
||||
this.setPosition(this.entity.posX + relativeX, this.entity.posY
|
||||
+ relativeY, this.entity.posZ + relativeZ);
|
||||
this.prevPosX = this.posX;
|
||||
this.prevPosY = this.posY;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class RenderFireRing extends Render<EntityFireRing> {
|
||||
float f2 = 0.5F;
|
||||
float f3 = 0.0F;
|
||||
float f4 = 0.2f;
|
||||
float f5 = (float)(entity.posY - entity.getEntityBoundingBox().minY);
|
||||
float f5 = (float)(entity.posY - entity.posY);
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
float f61 = 0.0F;
|
||||
int i = 0;
|
||||
@@ -129,7 +129,7 @@ public class RenderFireRing extends Render<EntityFireRing> {
|
||||
float f2 = 0.5F;
|
||||
float f3 = 0.0F;
|
||||
float f4 = 0.2f;
|
||||
float f5 = (float)(entity.posY - entity.getEntityBoundingBox().minY);
|
||||
float f5 = (float)(entity.posY - entity.posY);
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
float f61 = 0.0F;
|
||||
int i = 0;
|
||||
|
||||
Reference in New Issue
Block a user