diff --git a/build.gradle b/build.gradle index ed66a0e036..5c35f495ac 100644 --- a/build.gradle +++ b/build.gradle @@ -247,6 +247,7 @@ dependencies { // modRuntimeOnly("curse.maven:blueprint-382216:4749000") // modRuntimeOnly("curse.maven:windsweptmod-636321:4817132") // modRuntimeOnly("curse.maven:good-ending-690161:4363719") + // modRuntimeOnly("curse.maven:inventory-sorter-240633:5979609") // https://discord.com/channels/313125603924639766/725850371834118214/910619168821354497 // Prevent Mixin annotation processor from getting into IntelliJ's annotation processor settings diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 0037fc9960..ffaead4b0e 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -2,6 +2,8 @@ package com.simibubi.create; import java.util.Random; +import com.simibubi.create.compat.inventorySorter.InventorySorterCompat; + import org.slf4j.Logger; import com.google.gson.Gson; @@ -156,6 +158,7 @@ public class Create { // FIXME: this is not thread-safe Mods.CURIOS.executeIfInstalled(() -> () -> Curios.init(modEventBus, forgeEventBus)); + Mods.INVENTORYSORTER.executeIfInstalled(() -> () -> InventorySorterCompat.init(modEventBus)); } public static void init(final FMLCommonSetupEvent event) { diff --git a/src/main/java/com/simibubi/create/compat/Mods.java b/src/main/java/com/simibubi/create/compat/Mods.java index 37418fe6a7..a28b7085b7 100644 --- a/src/main/java/com/simibubi/create/compat/Mods.java +++ b/src/main/java/com/simibubi/create/compat/Mods.java @@ -34,7 +34,8 @@ public enum Mods { MODERNUI, FTBCHUNKS, JOURNEYMAP, - FTBLIBRARY; + FTBLIBRARY, + INVENTORYSORTER; private final String id; diff --git a/src/main/java/com/simibubi/create/compat/inventorySorter/InventorySorterCompat.java b/src/main/java/com/simibubi/create/compat/inventorySorter/InventorySorterCompat.java new file mode 100644 index 0000000000..6da07bf9a0 --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/inventorySorter/InventorySorterCompat.java @@ -0,0 +1,25 @@ +package com.simibubi.create.compat.inventorySorter; + +import com.simibubi.create.compat.Mods; + +import com.simibubi.create.content.logistics.redstoneRequester.RedstoneRequesterMenu.SorterProofSlot; + +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.InterModComms; +import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; + +/** + * Compatibility with cpw's InventorySorter. + * We need to stop it from interfering with scrolling in the Redstone Requester's screen. + */ +public class InventorySorterCompat { + public static final String SLOT_BLACKLIST = "slotblacklist"; + + public static void init(IEventBus bus) { + bus.addListener(InventorySorterCompat::sendImc); + } + + private static void sendImc(InterModEnqueueEvent event) { + InterModComms.sendTo(Mods.INVENTORYSORTER.id(), SLOT_BLACKLIST, SorterProofSlot.class::getName); + } +} diff --git a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterMenu.java b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterMenu.java index 878f42178f..98ea6ae424 100644 --- a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterMenu.java +++ b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterMenu.java @@ -16,6 +16,7 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.MenuType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.SlotItemHandler; @@ -64,7 +65,7 @@ public class RedstoneRequesterMenu extends GhostItemMenu getTooltipFromContainerItem(ItemStack pStack) { List tooltip = super.getTooltipFromContainerItem(pStack);