Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void alertOthers()
- {
- double d0 = this.getTargetDistance();
- for (EntityCreature entitycreature : this.taskOwner.world.getEntitiesWithinAABB(this.taskOwner.getClass(), (new AxisAlignedBB(this.taskOwner.posX, this.taskOwner.posY, this.taskOwner.posZ, this.taskOwner.posX + 1.0D, this.taskOwner.posY + 1.0D, this.taskOwner.posZ + 1.0D)).grow(d0, 10.0D, d0)))
- {
- if (this.taskOwner != entitycreature && entitycreature.getAttackTarget() == null && (!(this.taskOwner instanceof EntityTameable) || ((EntityTameable)this.taskOwner).getOwner() == ((EntityTameable)entitycreature).getOwner()) && !entitycreature.isOnSameTeam(this.taskOwner.getRevengeTarget()))
- {
- boolean flag = false;
- int xdiff = (int) (entitycreature.posX - this.taskOwner.getRevengeTarget().posX);
- int ydiff = (int) (entitycreature.posY - this.taskOwner.getRevengeTarget().posY);
- int zdiff = (int) (entitycreature.posZ - this.taskOwner.getRevengeTarget().posZ);
- int x = (int)entitycreature.posX;
- int y = (int)entitycreature.posY;
- int z = (int)entitycreature.posZ;
- boolean sincX = true;
- boolean sincY = true;
- boolean sincZ = true;
- if(xdiff == 0) {
- sincX = false;
- }
- if(ydiff == 0) {
- sincY = false;
- }
- if(zdiff == 0) {
- sincZ = false;
- }
- for(;;) {
- if(sincX) {
- if(xdiff < 0) {
- x++;
- } else {
- x--;
- }
- }
- if(sincY) {
- if(ydiff < 0) {
- y++;
- } else {
- y--;
- }
- }
- if(sincZ) {
- if(zdiff < 0) {
- z++;
- } else {
- z--;
- }
- }
- IBlockState bs = this.taskOwner.world.getBlockState(new BlockPos(x, y, z));
- if(bs.getMaterial() != Material.AIR) {
- // TODO: Debug message
- System.out.println("Block at X" + x + ", Y" + y + ", Z" + z + " is " + bs.getBlock().getLocalizedName() + ", aborting...");
- flag = true;
- break;
- } else {
- // TODO: Debug message
- System.out.println("Block at X" + x + ", Y" + y + ", Z" + z + " is air, continuing...");
- }
- if(x == (int)this.taskOwner.getRevengeTarget().posX) {
- sincX = false;
- }
- if(y == (int)this.taskOwner.getRevengeTarget().posY) {
- sincY = false;
- }
- if(z == (int)this.taskOwner.getRevengeTarget().posZ) {
- sincZ = false;
- }
- if(!sincX && !sincY && !sincZ) {
- break;
- }
- }
- for (Class<?> oclass : this.excludedReinforcementTypes)
- {
- if (entitycreature.getClass() == oclass)
- {
- flag = true;
- break;
- }
- }
- if (!flag)
- {
- this.setEntityAttackTarget(entitycreature, this.taskOwner.getRevengeTarget());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement