From dce3bf89374326af42f9f0ee93bf207340cf5a42 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Sun, 2 Jun 2024 19:41:06 -0400 Subject: [PATCH] fixed logistics drones obliterating items from existance --- .../java/com/hbm/entity/item/EntityRequestDrone.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index 8674770af..06bd44760 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -137,11 +137,16 @@ public class EntityRequestDrone extends EntityDroneBase { TileEntity tile = worldObj.getTileEntity(mop.blockX, mop.blockY, mop.blockZ); if (tile instanceof TileEntityDroneDock) { 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) { + if (dock.slots[i] == null || (dock.slots[i].isItemEqual(drone) && dock.slots[i].stackSize < 64)) { this.setDead(); - dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + if(heldItem != 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; } @@ -150,6 +155,7 @@ public class EntityRequestDrone extends EntityDroneBase { } if (!this.isDead) { this.setDead(); + this.entityDropItem(heldItem, 1F); this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); }