diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java index 703fe8d35..32ed8e956 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java @@ -14,12 +14,10 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; -import ru.dbotthepony.mc.otm.capability.IMatterGridCell; +import net.minecraftforge.items.IItemHandler; +import ru.dbotthepony.mc.otm.capability.*; import ru.dbotthepony.mc.otm.matter.MatterGrid; import ru.dbotthepony.mc.otm.Registry; -import ru.dbotthepony.mc.otm.capability.IMatterHandler; -import ru.dbotthepony.mc.otm.capability.IPatternStorage; -import ru.dbotthepony.mc.otm.capability.MatteryCapability; import ru.dbotthepony.mc.otm.container.MatteryContainer; import ru.dbotthepony.mc.otm.menu.PatternStorageMenu; @@ -41,6 +39,10 @@ public class BlockEntityPatternStorage extends BlockEntityMattery implements IMa } }; + private final LazyOptional resolver_item = LazyOptional.of(() -> patterns.handler( + ((slot, stack) -> stack.getCapability(MatteryCapability.PATTERN).isPresent()) + )); + private void setChangedPatterns() { setChanged(); @@ -118,8 +120,11 @@ public class BlockEntityPatternStorage extends BlockEntityMattery implements IMa @Override public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { if (valid) { - if (cap == MatteryCapability.PATTERN || cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || cap == MatteryCapability.MATTER_CELL) + if (cap == MatteryCapability.PATTERN || cap == MatteryCapability.MATTER_CELL) return resolver.cast(); + + if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + return resolver_item.cast(); } return super.getCapability(cap, side);