diff --git a/src/main/java/com/raoulvdberge/refinedstorage/loottable/StorageBlockLootFunction.java b/src/main/java/com/raoulvdberge/refinedstorage/loottable/StorageBlockLootFunction.java index 7e71c072d..1eb65b5b0 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/loottable/StorageBlockLootFunction.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/loottable/StorageBlockLootFunction.java @@ -16,12 +16,25 @@ public class StorageBlockLootFunction implements ILootFunction { public ItemStack apply(ItemStack stack, LootContext lootContext) { TileEntity tile = lootContext.get(LootParameters.BLOCK_ENTITY); + // This code needs to work without the node being removed as well. + // For example: the Destructor calls getDrops before the node has been removed. + if (tile instanceof StorageTile) { + StorageNetworkNode removedNode = ((StorageTile) tile).getRemovedNode(); + if (removedNode == null) { + removedNode = ((StorageTile) tile).getNode(); + } + stack.setTag(new CompoundNBT()); - stack.getTag().putUniqueId(StorageNetworkNode.NBT_ID, ((StorageTile) tile).getRemovedNode().getStorageId()); + stack.getTag().putUniqueId(StorageNetworkNode.NBT_ID, removedNode.getStorageId()); } else if (tile instanceof FluidStorageTile) { + FluidStorageNetworkNode removedNode = ((FluidStorageTile) tile).getRemovedNode(); + if (removedNode == null) { + removedNode = ((FluidStorageTile) tile).getNode(); + } + stack.setTag(new CompoundNBT()); - stack.getTag().putUniqueId(FluidStorageNetworkNode.NBT_ID, ((FluidStorageTile) tile).getRemovedNode().getStorageId()); + stack.getTag().putUniqueId(FluidStorageNetworkNode.NBT_ID, removedNode.getStorageId()); } return stack; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 5f5e19476..2ead5d208 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -7,8 +7,6 @@ public class ProxyCommon { API.deliver(e.getAsmData()); - WirelessGrid.ID = API.instance().getGridManager().add(new GridFactoryWirelessGrid()); - WirelessFluidGrid.ID = API.instance().getGridManager().add(new GridFactoryWirelessFluidGrid()); TilePortableGrid.FACTORY_ID = API.instance().getGridManager().add(new GridFactoryPortableGridBlock()); PortableGrid.ID = API.instance().getGridManager().add(new GridFactoryPortableGrid()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 3b1029e71..fe7e91853 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -38,6 +38,7 @@ import com.raoulvdberge.refinedstorage.inventory.item.BaseItemHandler; import com.raoulvdberge.refinedstorage.inventory.item.FilterItemHandler; import com.raoulvdberge.refinedstorage.inventory.item.validator.StorageDiskItemValidator; import com.raoulvdberge.refinedstorage.inventory.listener.TileInventoryListener; +import com.raoulvdberge.refinedstorage.item.WirelessGridItem; import com.raoulvdberge.refinedstorage.screen.BaseScreen; import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.tile.BaseTile; @@ -237,13 +238,13 @@ public class TilePortableGrid extends BaseTile implements IGrid, IPortableGrid, } public void onPassItemContext(ItemStack stack) { - /* TODO this.sortingType = ItemWirelessGrid.getSortingType(stack); - this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack); - this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack); - this.tabSelected = ItemWirelessGrid.getTabSelected(stack); - this.tabPage = ItemWirelessGrid.getTabPage(stack); - this.size = ItemWirelessGrid.getSize(stack); -*/ + this.sortingType = WirelessGridItem.getSortingType(stack); + this.sortingDirection = WirelessGridItem.getSortingDirection(stack); + this.searchBoxMode = WirelessGridItem.getSearchBoxMode(stack); + this.tabSelected = WirelessGridItem.getTabSelected(stack); + this.tabPage = WirelessGridItem.getTabPage(stack); + this.size = WirelessGridItem.getSize(stack); + IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY).orElse(null); this.energyStorage = recreateEnergyStorage(energyStorage != null ? energyStorage.getEnergyStored() : 0);