void dropPipe(int jumpY) { World world = miner.node.coordonate.world(); Coordonate coord = new Coordonate(miner.node.coordonate); /* for(coord.y = miner.node.coordonate.y - 1; coord.y > 0;coord.y--) { GhostElement ghost = Eln.ghostManager.getGhost(coord); if(coord.y != jumpY) { if(ghost == null || ghost.getObservatorCoordonate().equals(miner.node.coordonate) != true) { coord.y++; break; } } Utils.dropItem(Eln.miningPipeDescriptor.newItemStack(1), coord); } */ for (coord.y = miner.node.coordonate.y - 1; coord.y >= miner.node.coordonate.y - pipeLength; coord.y--) { Utils.dropItem(Eln.miningPipeDescriptor.newItemStack(1), coord); } }
void setupJob() { ElectricalDrillDescriptor drill = (ElectricalDrillDescriptor) ElectricalDrillDescriptor.getDescriptor( miner.inventory.getStackInSlot(AutoMinerContainer.electricalDrillSlotId)); OreScanner scanner = (OreScanner) ElectricalDrillDescriptor.getDescriptor( miner.inventory.getStackInSlot(AutoMinerContainer.OreScannerSlotId)); MiningPipeDescriptor pipe = (MiningPipeDescriptor) ElectricalDrillDescriptor.getDescriptor( miner.inventory.getStackInSlot(AutoMinerContainer.MiningPipeSlotId)); int scannerRadius = 0; double scannerEnergy = 0; if (scanner != null) { scannerRadius = scanner.radius; scannerEnergy = scanner.OperationEnergy; } World world = miner.node.coordonate.world(); jobCoord.dimention = miner.node.coordonate.dimention; jobCoord.x = miner.node.coordonate.x; jobCoord.y = miner.node.coordonate.y - pipeLength; jobCoord.z = miner.node.coordonate.z; /*for(jobCoord.y = miner.node.coordonate.y - 1; jobCoord.y > 0;jobCoord.y--) { GhostElement ghost = Eln.ghostManager.getGhost(jobCoord); if(ghost == null || ghost.getObservatorCoordonate().equals(miner.node.coordonate) != true) { jobCoord.y++; break; } }*/ // JobCoord at last pipe boolean jobFind = false; if (drill == null) { if (jobCoord.y != miner.node.coordonate.y) { ItemStack pipeStack = miner.inventory.getStackInSlot(AutoMinerContainer.MiningPipeSlotId); if (pipeStack == null || (pipeStack.stackSize != pipeStack.getMaxStackSize() && pipeStack.stackSize != miner.inventory.getInventoryStackLimit())) { jobFind = true; setJob(jobType.pipeRemove); } } } else if (pipe != null) { if (jobCoord.y < miner.node.coordonate.y - 1) { for (jobCoord.z = miner.node.coordonate.z - scannerRadius; jobCoord.z <= miner.node.coordonate.z + scannerRadius; jobCoord.z++) { for (jobCoord.x = miner.node.coordonate.x - scannerRadius; jobCoord.x <= miner.node.coordonate.x + scannerRadius; jobCoord.x++) { if (checkIsOre(jobCoord)) { jobFind = true; setJob(jobType.ore); break; } } if (jobFind == true) break; } } if (jobFind == false && jobCoord.y > 2) { jobCoord.x = miner.node.coordonate.x; jobCoord.y--; jobCoord.z = miner.node.coordonate.z; int blockId = jobCoord.world().getBlockId(jobCoord.x, jobCoord.y, jobCoord.z); if (blockId != 0 && blockId != Block.waterMoving.blockID && blockId != Block.waterStill.blockID && blockId != Block.lavaMoving.blockID && blockId != Block.lavaStill.blockID) { if (blockId != Block.obsidian.blockID && blockId != Block.bedrock.blockID) { jobFind = true; setJob(jobType.ore); } } else { jobFind = true; setJob(jobType.pipeAdd); } } } if (jobFind == false) setJob(jobType.none); switch (job) { case none: energyTarget = 0; break; case ore: energyTarget = drill.OperationEnergy + scannerEnergy; break; case pipeAdd: energyTarget = miner.descriptor.pipeOperationEnergy; break; case pipeRemove: energyTarget = miner.descriptor.pipeOperationEnergy; break; default: break; } }