Fixed Slider desync
This commit is contained in:
parent
f39c3ee470
commit
1639f5e647
|
@ -158,14 +158,18 @@ public class EntitySlider extends EntityFlying
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!this.worldObj.isRemote)
|
if (this.isMoving)
|
||||||
{
|
{
|
||||||
if (this.getAttackTarget() == null || this.getAttackTarget().isDead || this.getAttackTarget().getHealth() <= 0.0F)
|
if (this.getAttackTarget() == null || this.getAttackTarget().isDead || this.getAttackTarget().getHealth() <= 0.0F)
|
||||||
{
|
{
|
||||||
this.findTarget();
|
this.reset();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!this.worldObj.isRemote)
|
||||||
|
{
|
||||||
if(this.isMoving)
|
if(this.isMoving)
|
||||||
{
|
{
|
||||||
if(this.isCollided)
|
if(this.isCollided)
|
||||||
|
@ -311,7 +315,7 @@ public class EntitySlider extends EntityFlying
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(this.moveTime > 0)
|
if(this.moveTime > 0)
|
||||||
{
|
{
|
||||||
|
@ -323,7 +327,7 @@ public class EntitySlider extends EntityFlying
|
||||||
}
|
}
|
||||||
|
|
||||||
this.motionX = this.motionY = this.motionZ = 0.0F;
|
this.motionX = this.motionY = this.motionZ = 0.0F;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double a, b, c;
|
double a, b, c;
|
||||||
|
@ -539,7 +543,7 @@ public class EntitySlider extends EntityFlying
|
||||||
a = Math.abs(this.posX - player.posX);
|
a = Math.abs(this.posX - player.posX);
|
||||||
c = Math.abs(this.posZ - player.posZ);
|
c = Math.abs(this.posZ - player.posZ);
|
||||||
|
|
||||||
if(a > c)
|
if(a > c)
|
||||||
{
|
{
|
||||||
this.hurtAngleZ = 1;
|
this.hurtAngleZ = 1;
|
||||||
this.hurtAngleX = 0;
|
this.hurtAngleX = 0;
|
||||||
|
@ -635,32 +639,16 @@ public class EntitySlider extends EntityFlying
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void findTarget()
|
|
||||||
{
|
|
||||||
EntityPlayer replacement = this.worldObj.getClosestPlayerToEntity(this, 16.0D);
|
|
||||||
|
|
||||||
if (replacement == null)
|
|
||||||
{
|
|
||||||
this.reset();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.setAttackTarget(replacement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void reset()
|
public void reset()
|
||||||
{
|
{
|
||||||
this.moveTime = 0;
|
this.moveTime = 0;
|
||||||
this.posX = this.dungeonX;
|
|
||||||
this.posY = this.dungeonY;
|
|
||||||
this.posZ = this.dungeonZ;
|
|
||||||
|
|
||||||
this.stop();
|
this.stop();
|
||||||
this.openDoor();
|
this.openDoor();
|
||||||
this.setAwake(false);
|
this.setAwake(false);
|
||||||
this.setAttackTarget(null);
|
this.setAttackTarget(null);
|
||||||
this.setHealth(this.getMaxHealth());
|
this.setHealth(this.getMaxHealth());
|
||||||
|
this.setPositionAndUpdate(this.dungeonX + 8, this.dungeonY + 2, this.dungeonZ + 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDungeon(double posX, double posY, double posZ)
|
public void setDungeon(double posX, double posY, double posZ)
|
||||||
|
|
Loading…
Reference in a new issue