private void pickUpSaplings() { if (!theFolk.isSpawned()) { return; } List list1 = jobWorld.getEntitiesWithinAABBExcludingEntity( theFolk.theEntity, AxisAlignedBB.getBoundingBox( theFolk.theEntity.posX, theFolk.theEntity.posY, theFolk.theEntity.posZ, theFolk.theEntity.posX + 1.0D, theFolk.theEntity.posY + 1.0D, theFolk.theEntity.posZ + 1.0D) .expand(3D, 4D, 3D)); Iterator iterator1 = list1.iterator(); if (!list1.isEmpty()) { do { if (!iterator1.hasNext()) { break; } Entity entity1 = (Entity) iterator1.next(); if (!(entity1 instanceof EntityItem)) { continue; } EntityItem entityitem = (EntityItem) entity1; ItemStack is = entityitem.getEntityItem(); try { Item ID = is.getItem(); if (ID == Item.getItemFromBlock(Blocks.sapling)) { theFolk.inventory.add( new ItemStack(Item.getItemFromBlock(Blocks.sapling), is.getItemDamage(), 1)); entityitem.setDead(); } } catch (Exception e) { } } while (true); } }
private void plantSapling(Block is) { if (theFolk.isSpawned()) { if (jobWorld.getBlock( (int) theFolk.theEntity.posX, (int) theFolk.theEntity.posY, (int) theFolk.theEntity.posZ) == null) { jobWorld.setBlock( (int) theFolk.theEntity.posX, (int) theFolk.theEntity.posY, (int) theFolk.theEntity.posZ, is); } } else { jobWorld.setBlock( theFolk.location.x.intValue(), theFolk.location.y.intValue(), theFolk.location.z.intValue(), Blocks.sapling, 0, 0x03); } }
private void stageChoppingTree() { int count; Block theWood = theFolk.theEntity.worldObj.getBlock( foundWoodAt.x.intValue(), foundWoodAt.y.intValue(), foundWoodAt.z.intValue()); if (step == 1) { theFolk.statusText = "Choppy Choppy tree!"; theFolk.isWorking = true; /// find the bottom of the trunk for (int down = 0; down < 20; down++) { int x = foundWoodAt.x.intValue(); int y = foundWoodAt.y.intValue() - 0; int z = foundWoodAt.z.intValue(); if (jobWorld == null) { theFolk.selfFire(); return; } if (jobWorld.getBlock(x, y, z) != Blocks.log || jobWorld.getBlock(x, y, z) != Blocks.log2) { break; } else { foundWoodAt.y = (double) y; } } step = 2; } else if (step == 2) { if (jobWorld.getBlock( foundWoodAt.x.intValue(), foundWoodAt.y.intValue(), foundWoodAt.z.intValue()) == Blocks.log || jobWorld.getBlock( foundWoodAt.x.intValue(), foundWoodAt.y.intValue(), foundWoodAt.z.intValue()) == Blocks.log2) { Thread t = new Thread( new Runnable() { public void run() { isChopping = true; for (int d = 0; d < 12; d++) { try { mc.theWorld.playSound( theFolk.location.x, theFolk.location.y, theFolk.location.z, "step.wood", 1f, 1f, false); } catch (Exception e) { } if (theFolk.theEntity != null) { theFolk.theEntity.swingProgress = 0.3f; try { Thread.sleep(100); } catch (Exception e) { } theFolk.theEntity.swingProgress = 0.7f; try { Thread.sleep(100); } catch (Exception e) { } } } isChopping = false; } }); t.start(); step = 3; } else { // no more tree left step = 4; } } else if (step == 3) { if (isChopping) { return; } ArrayList<ItemStack> log = this.translateBlockWhenMined(jobWorld, foundWoodAt); jobWorld.setBlock( foundWoodAt.x.intValue(), foundWoodAt.y.intValue(), foundWoodAt.z.intValue(), Blocks.air, 0, 0x03); if (log != null) { for (int l = 0; l < log.size(); l++) { ItemStack isl = log.get(l); theFolk.inventory.add(isl); } } count = getInventoryCount(theFolk, Item.getItemFromBlock(Blocks.log)); theFolk.statusText = "Got " + count + " logs so far"; theFolk.stayPut = false; foundWoodAt.y = foundWoodAt.y + 1; step = 2; } else if (step == 4) { if (theFolk.isSpawned()) { count = getInventoryCount(theFolk, Item.getItemFromBlock(Blocks.sapling)); if (count > 0) { for (int i = 0; i < theFolk.inventory.size(); i++) { ItemStack fis = theFolk.inventory.get(i); if (fis != null && Block.getBlockFromItem(fis.getItem()) == Blocks.sapling) { theFolk.inventory.remove(i); plantSapling(Block.getBlockFromItem(fis.getItem())); break; } } } } else { // they're de-spawned, so are the saplings, so just plant one anyway plantSapling(Blocks.sapling); } count = getInventoryCount(theFolk, Item.getItemFromBlock(Blocks.log)); if (count < 12) { theStage = Stage.SCANFORTREE; } else { theStage = Stage.RETURNWOOD; step = 1; } } }