diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index fd2ac6e7d..9a63c5dfd 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -160,23 +160,34 @@ public class EntityRequestDrone extends EntityDroneBase { TileEntityDroneDock dock = (TileEntityDroneDock) tile; ItemStack drone = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); for (int i = 0; i < dock.slots.length; i++) { - if (dock.slots[i] == null || (dock.slots[i].isItemEqual(drone) && dock.slots[i].stackSize < 64)) { + if (dock.slots[i] == null) { this.setDead(); if(heldItem != null){ - if(i != 9 && dock.slots[i + 1] != null){ + if(i != 9 && dock.slots[i + 1] == null){ dock.slots[i + 1] = heldItem.copy(); } } dock.slots[i] = drone.copy(); this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); break; + } else if (dock.slots[i].isItemEqual(drone) && dock.slots[i].stackSize < 64){ + this.setDead(); + if(heldItem != null){ + if(i != 9 && dock.slots[i + 1] == null){ + dock.slots[i + 1] = heldItem.copy(); + } + } + dock.slots[i].stackSize++; + this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); + break; } } } } if (!this.isDead) { this.setDead(); - this.entityDropItem(heldItem, 1F); + if(heldItem != null) + this.entityDropItem(heldItem, 1F); this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); } diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java index 8f98a9eb6..d9b710bfd 100644 --- a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -108,6 +108,7 @@ public class RequestNetwork { /** Node created by requesters, lists requested AStacks */ public static class RequestNode extends PathNode { public List request; + public int droneCount; public RequestNode(BlockPos pos, HashedSet reachableNodes, List request) { super(pos, reachableNodes); this.request = request; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index 82b6b93f0..9ae25a045 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -43,7 +43,7 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple public void updateEntity() { super.updateEntity(); - if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 100 == 0 && this.hasDrone()) { + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0 && this.hasDrone()) { // grab all nodes in a 5 chunk radius HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5);