diff --git a/build.gradle b/build.gradle index 1a27eecfb..4836fb5ef 100755 --- a/build.gradle +++ b/build.gradle @@ -13,13 +13,16 @@ repositories { maven { url = "https://dvs1.progwml6.com/files/maven/" } + maven { + url "https://minecraft.curseforge.com/api/maven/" + } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.7+10' +version = '1.7' group = 'com.raoulvdberge' archivesBaseName = 'refinedstorage' @@ -83,6 +86,7 @@ processResources { dependencies { minecraft 'net.minecraftforge:forge:1.14.4-28.1.70' compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11:api") + runtimeOnly fg.deobf('crafting-tweaks:CraftingTweaks_1.14.4:10.1.3') runtimeOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.11") } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java new file mode 100644 index 000000000..c762a5165 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/CraftingTweaksIntegration.java @@ -0,0 +1,54 @@ +package com.raoulvdberge.refinedstorage.integration.craftingtweaks; + +import com.raoulvdberge.refinedstorage.api.network.grid.GridType; +import com.raoulvdberge.refinedstorage.container.GridContainer; +import com.raoulvdberge.refinedstorage.container.slot.grid.CraftingGridSlot; +import net.minecraft.nbt.CompoundNBT; +import net.minecraftforge.fml.InterModComms; +import net.minecraftforge.fml.ModList; + +import java.util.function.Function; +import java.util.function.Predicate; + +public final class CraftingTweaksIntegration { + private static final String ID = "craftingtweaks"; + + public static boolean isLoaded() { + return ModList.get().isLoaded(ID); + } + + public static boolean isCraftingTweaksClass(Class clazz) { + return clazz.getName().startsWith("net.blay09.mods.craftingtweaks"); + } + + public static void register() { + CompoundNBT tag = new CompoundNBT(); + + tag.putString("ContainerClass", GridContainer.class.getName()); + tag.putString("ValidContainerPredicate", ValidContainerPredicate.class.getName()); + tag.putString("GetGridStartFunction", GetGridStartFunction.class.getName()); + tag.putString("AlignToGrid", "left"); + + InterModComms.sendTo(ID, "RegisterProvider", () -> tag); + } + + public static class ValidContainerPredicate implements Predicate { + @Override + public boolean test(GridContainer containerGrid) { + return containerGrid.getGrid().getGridType() == GridType.CRAFTING; + } + } + + public static class GetGridStartFunction implements Function { + @Override + public Integer apply(GridContainer containerGrid) { + for (int i = 0; i < containerGrid.inventorySlots.size(); i++) { + if (containerGrid.inventorySlots.get(i) instanceof CraftingGridSlot) { + return i; + } + } + + return 0; + } + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java deleted file mode 100755 index 660c99ca7..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.craftingtweaks; - -/* -public final class IntegrationCraftingTweaks { - private static final String ID = "craftingtweaks"; - - public static boolean isLoaded() { - return Loader.isModLoaded(ID); - } - - public static void register() { - CompoundNBT tag = new CompoundNBT(); - - tag.setString("ContainerClass", ContainerGrid.class.getName()); - tag.setString("ValidContainerPredicate", ValidContainerPredicate.class.getName()); - tag.setString("GetGridStartFunction", GetGridStartFunction.class.getName()); - tag.setString("AlignToGrid", "left"); - - FMLInterModComms.sendMessage(ID, "RegisterProviderV3", tag); - } - - public static class ValidContainerPredicate implements Predicate { - @Override - public boolean apply(ContainerGrid containerGrid) { - return containerGrid.getGrid().getGridType() == GridType.CRAFTING; - } - } - - public static class GetGridStartFunction implements Function { - @Override - public Integer apply(ContainerGrid containerGrid) { - for (int i = 0; i < containerGrid.inventorySlots.size(); i++) { - if (containerGrid.inventorySlots.get(i) instanceof SlotGridCrafting) { - return i; - } - } - return 0; - } - } -} -*/ diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java index 0d4635638..8de87b4db 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot; import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot; +import com.raoulvdberge.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration; import com.raoulvdberge.refinedstorage.render.FluidRenderer; import com.raoulvdberge.refinedstorage.screen.widget.CheckBoxWidget; import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.SideButton; @@ -73,8 +74,13 @@ public abstract class BaseScreen extends ContainerScreen super.init(); - buttons.clear(); - children.clear(); + if (CraftingTweaksIntegration.isLoaded()) { + buttons.removeIf(b -> !CraftingTweaksIntegration.isCraftingTweaksClass(b.getClass())); + children.removeIf(c -> !CraftingTweaksIntegration.isCraftingTweaksClass(c.getClass())); + } else { + buttons.clear(); + children.clear(); + } sideButtonY = 6; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/setup/CommonSetup.java b/src/main/java/com/raoulvdberge/refinedstorage/setup/CommonSetup.java index ea800645c..b980bfe9e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/setup/CommonSetup.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/setup/CommonSetup.java @@ -32,6 +32,7 @@ import com.raoulvdberge.refinedstorage.block.*; import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability; import com.raoulvdberge.refinedstorage.container.*; import com.raoulvdberge.refinedstorage.container.factory.*; +import com.raoulvdberge.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration; import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.item.blockitem.*; import com.raoulvdberge.refinedstorage.loottable.ControllerLootFunctionSerializer; @@ -134,6 +135,10 @@ public class CommonSetup { LootFunctionManager.registerFunction(new PortableGridBlockLootFunctionSerializer()); LootFunctionManager.registerFunction(new CrafterLootFunctionSerializer()); LootFunctionManager.registerFunction(new ControllerLootFunctionSerializer()); + + if (CraftingTweaksIntegration.isLoaded()) { + CraftingTweaksIntegration.register(); + } } private INetworkNode readAndReturn(CompoundNBT tag, NetworkNode node) {