@Override public void onDescUpdate() { super.onDescUpdate(); if (drone != null) { drone.setDead(); } }
@Override public void setName(String string) { droneName = string; if (drone != null) drone.setCustomNameTag(droneName); if (inventory[0] != null) inventory[0].setStackDisplayName(string); }
@Override public void updateEntity() { super.updateEntity(); oldCurX = curX; oldCurY = curY; oldCurZ = curZ; if (PneumaticCraftUtils.distBetween(getPosition(), targetX, targetY, targetZ) <= getSpeed()) { curX = targetX; curY = targetY; curZ = targetZ; } else { Vec3 vec = Vec3.createVectorHelper(targetX - curX, targetY - curY, targetZ - curZ).normalize(); curX += vec.xCoord * getSpeed(); curY += vec.yCoord * getSpeed(); curZ += vec.zCoord * getSpeed(); } if (!worldObj.isRemote) { getAIManager(); if (worldObj.getTotalWorldTime() % 40 == 0) { dispenserUpgrades = getUpgrades(ItemMachineUpgrade.UPGRADE_DISPENSER_DAMAGE); speedUpgrades = getUpgrades(ItemMachineUpgrade.UPGRADE_SPEED_DAMAGE); for (int i = getDroneSlots(); i < 36; i++) { ItemStack stack = getFakePlayer().inventory.getStackInSlot(i); if (stack != null) { worldObj.spawnEntityInWorld( new EntityItem(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, stack)); getFakePlayer().inventory.setInventorySlotContents(i, null); } } tank.setCapacity((dispenserUpgrades + 1) * 16000); if (tank.getFluidAmount() > tank.getCapacity()) { tank.getFluid().amount = tank.getCapacity(); } } for (int i = 0; i < 4; i++) { getFakePlayer().theItemInWorldManager.updateBlockRemoving(); } if (getPressure(ForgeDirection.UNKNOWN) >= getMinWorkingPressure()) { if (!aiManager.isIdling()) addAir(-10, ForgeDirection.UNKNOWN); aiManager.onUpdateTasks(); } } else { if (drone == null || drone.isDead) { drone = new EntityProgrammableController(worldObj, this); drone.posX = curX; drone.posY = curY; drone.posZ = curZ; worldObj.spawnEntityInWorld(drone); } drone.setPosition(curX, curY, curZ); // drone.getMoveHelper().setMoveTo(curX, curY, curZ, 0); /* drone.prevPosX = oldCurX; drone.prevPosY = oldCurY; drone.prevPosZ = oldCurZ;*/ // drone.getMoveHelper().setMoveTo(curX, curY, curZ, getSpeed()); } }