From d28f33d198060f61a3f9d2a03070ff1afb417177 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Mon, 24 Aug 2020 00:01:05 +0200 Subject: [PATCH] Split into internal and external inventories. Fixes Charger not being able to load inventories that violated the filter. --- src/main/java/appeng/tile/AEBaseInvBlockEntity.java | 11 +++++++++-- .../java/appeng/tile/misc/ChargerBlockEntity.java | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/appeng/tile/AEBaseInvBlockEntity.java b/src/main/java/appeng/tile/AEBaseInvBlockEntity.java index 3a0c63f3e..74c3bdc50 100644 --- a/src/main/java/appeng/tile/AEBaseInvBlockEntity.java +++ b/src/main/java/appeng/tile/AEBaseInvBlockEntity.java @@ -59,6 +59,13 @@ public abstract class AEBaseInvBlockEntity extends AEBaseBlockEntity implements public abstract @Nonnull FixedItemInv getInternalInventory(); + /** + * Inventory offered to other mods accessing this block externally. + */ + public @Nonnull FixedItemInv getExternalInventory() { + return getInternalInventory(); + } + @Override public CompoundTag toTag(final CompoundTag data) { super.toTag(data); @@ -95,7 +102,7 @@ public abstract class AEBaseInvBlockEntity extends AEBaseBlockEntity implements ItemStack added); protected @Nonnull FixedItemInv getItemHandlerForSide(@Nonnull Direction side) { - return this.getInternalInventory(); + return this.getExternalInventory(); } @Override @@ -107,7 +114,7 @@ public abstract class AEBaseInvBlockEntity extends AEBaseBlockEntity implements private void offerItemInventory(AttributeList to) { Direction searchDirection = to.getSearchDirection(); if (searchDirection == null) { - to.offer(getInternalInventory()); + to.offer(getExternalInventory()); } else { Direction side = searchDirection.getOpposite(); to.offer(getItemHandlerForSide(side)); diff --git a/src/main/java/appeng/tile/misc/ChargerBlockEntity.java b/src/main/java/appeng/tile/misc/ChargerBlockEntity.java index 282c5dc13..ea4818347 100644 --- a/src/main/java/appeng/tile/misc/ChargerBlockEntity.java +++ b/src/main/java/appeng/tile/misc/ChargerBlockEntity.java @@ -56,6 +56,7 @@ import appeng.util.Platform; import appeng.util.inv.InvOperation; import appeng.util.inv.filter.IAEItemFilter; import appeng.util.item.AEItemStack; +import org.jetbrains.annotations.NotNull; public class ChargerBlockEntity extends AENetworkPowerBlockEntity implements ICrankable, IGridTickable { private static final int POWER_MAXIMUM_AMOUNT = 1600; @@ -137,6 +138,12 @@ public class ChargerBlockEntity extends AENetworkPowerBlockEntity implements ICr @Override public FixedItemInv getInternalInventory() { + return inv; + } + + @NotNull + @Override + public FixedItemInv getExternalInventory() { return externalInv; } @@ -255,7 +262,7 @@ public class ChargerBlockEntity extends AENetworkPowerBlockEntity implements ICr return true; } - private class ChargerInvFilter implements IAEItemFilter { + private static class ChargerInvFilter implements IAEItemFilter { @Override public boolean allowInsert(FixedItemInv inv, final int i, final ItemStack itemstack) { final IItemDefinition cert = Api.instance().definitions().materials().certusQuartzCrystal();