From fcc8e1370ba6e4e536ea2a27b5c1d6247e8604b0 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Mon, 23 Jul 2018 16:54:33 +0200 Subject: [PATCH] Added config option to hide covers in the creative mode tabs and JEI. Fixes #1886 --- CHANGELOG.md | 1 + .../raoulvdberge/refinedstorage/RSConfig.java | 10 ++++++++ .../jei/RecipeRegistryPluginCover.java | 6 +++-- .../jei/RecipeRegistryPluginHollowCover.java | 23 ++++++++++++++----- .../refinedstorage/item/ItemCover.java | 13 +++++++++++ 5 files changed, 45 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d43560316..cf9958bb7 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Added fluid autocrafting (raoulvdberge) - Added Crafting Upgrade support for fluids on the Exporter, Constructor and Fluid Interface (raoulvdberge) - Added support for JEI ghost slot dragging (raoulvdberge) +- Added config option to hide covers in the creative mode tabs and JEI (raoulvdberge) - You can now keep fluids in stock by attaching a External Storage in fluid mode to a Fluid Interface with a Crafting Upgrade (raoulvdberge) - You can now specify the amount to export in the Fluid Interface (raoulvdberge) - Made the Crafting Preview window bigger (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSConfig.java b/src/main/java/com/raoulvdberge/refinedstorage/RSConfig.java index f2125fa9c..03965fdb3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSConfig.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSConfig.java @@ -115,6 +115,10 @@ public class RSConfig { public int readerWriterChannelEnergyCapacity; //endregion + //region Covers + public boolean hideCovers; + //endregion + //region Categories private static final String ENERGY = "energy"; private static final String CONTROLLER = "controller"; @@ -126,6 +130,7 @@ public class RSConfig { private static final String WIRELESS_CRAFTING_MONITOR = "wirelessCraftingMonitor"; private static final String UPGRADES = "upgrades"; private static final String READER_WRITER = "readerWriter"; + private static final String COVERS = "covers"; //endregion public RSConfig(@Nullable RSConfig originalClientVersion, File configFile) { @@ -257,6 +262,10 @@ public class RSConfig { readerWriterChannelEnergyCapacity = config.getInt("channelEnergyCapacity", READER_WRITER, 16000, 0, Integer.MAX_VALUE, "The energy capacity of energy channels"); //endregion + //region Covers + hideCovers = config.getBoolean("hideCovers", COVERS, false, "Whether to hide covers in the creative mode tabs and JEI"); + //endregion + if (config.hasChanged()) { config.save(); } @@ -276,6 +285,7 @@ public class RSConfig { list.add(new ConfigElement(config.getCategory(WIRELESS_CRAFTING_MONITOR))); list.add(new ConfigElement(config.getCategory(PORTABLE_GRID))); list.add(new ConfigElement(config.getCategory(READER_WRITER))); + list.add(new ConfigElement(config.getCategory(COVERS))); return list; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginCover.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginCover.java index 833b1e6ad..00b7975dc 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginCover.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginCover.java @@ -1,6 +1,8 @@ package com.raoulvdberge.refinedstorage.integration.jei; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSItems; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.raoulvdberge.refinedstorage.item.ItemCover; import mezz.jei.api.recipe.*; @@ -16,7 +18,7 @@ public class RecipeRegistryPluginCover implements IRecipeRegistryPlugin { ItemStack stack = (ItemStack) focus.getValue(); if (focus.getMode() == IFocus.Mode.INPUT) { - if (CoverManager.isValidCover(stack)) { + if ((!RS.INSTANCE.config.hideCovers && CoverManager.isValidCover(stack)) || API.instance().getComparer().isEqualNoQuantity(stack, ItemCover.HIDDEN_COVER_ALTERNATIVE)) { return Collections.singletonList(VanillaRecipeCategoryUid.CRAFTING); } } else if (focus.getMode() == IFocus.Mode.OUTPUT) { @@ -35,7 +37,7 @@ public class RecipeRegistryPluginCover implements IRecipeRegistryPlugin { ItemStack stack = (ItemStack) focus.getValue(); if (focus.getMode() == IFocus.Mode.INPUT) { - if (CoverManager.isValidCover(stack)) { + if ((!RS.INSTANCE.config.hideCovers && CoverManager.isValidCover(stack)) || API.instance().getComparer().isEqualNoQuantity(stack, ItemCover.HIDDEN_COVER_ALTERNATIVE)) { ItemStack cover = new ItemStack(RSItems.COVER); ItemCover.setItem(cover, stack); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginHollowCover.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginHollowCover.java index a80352f62..249cd74f3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginHollowCover.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeRegistryPluginHollowCover.java @@ -1,8 +1,11 @@ package com.raoulvdberge.refinedstorage.integration.jei; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSItems; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.raoulvdberge.refinedstorage.item.ItemCover; +import com.raoulvdberge.refinedstorage.item.ItemHollowCover; import mezz.jei.api.recipe.*; import net.minecraft.item.ItemStack; @@ -16,8 +19,12 @@ public class RecipeRegistryPluginHollowCover implements IRecipeRegistryPlugin { ItemStack stack = (ItemStack) focus.getValue(); if (focus.getMode() == IFocus.Mode.INPUT) { - if (stack.getItem() == RSItems.COVER && CoverManager.isValidCover(ItemCover.getItem(stack))) { - return Collections.singletonList(VanillaRecipeCategoryUid.CRAFTING); + if (stack.getItem() == RSItems.COVER) { + ItemStack covered = ItemCover.getItem(stack); + + if ((!RS.INSTANCE.config.hideCovers && CoverManager.isValidCover(covered)) || API.instance().getComparer().isEqualNoQuantity(covered, ItemHollowCover.HIDDEN_COVER_ALTERNATIVE)) { + return Collections.singletonList(VanillaRecipeCategoryUid.CRAFTING); + } } } else if (focus.getMode() == IFocus.Mode.OUTPUT) { if (stack.getItem() == RSItems.HOLLOW_COVER) { @@ -35,12 +42,16 @@ public class RecipeRegistryPluginHollowCover implements IRecipeRegistryPlugin { ItemStack stack = (ItemStack) focus.getValue(); if (focus.getMode() == IFocus.Mode.INPUT) { - if (stack.getItem() == RSItems.COVER && CoverManager.isValidCover(ItemCover.getItem(stack))) { - ItemStack hollowCover = new ItemStack(RSItems.HOLLOW_COVER); + if (stack.getItem() == RSItems.COVER) { + ItemStack covered = ItemCover.getItem(stack); - ItemCover.setItem(hollowCover, ItemCover.getItem(stack)); + if ((!RS.INSTANCE.config.hideCovers && CoverManager.isValidCover(covered)) || API.instance().getComparer().isEqualNoQuantity(covered, ItemHollowCover.HIDDEN_COVER_ALTERNATIVE)) { + ItemStack hollowCover = new ItemStack(RSItems.HOLLOW_COVER); - return Collections.singletonList((T) new RecipeWrapperHollowCover(stack, hollowCover)); + ItemCover.setItem(hollowCover, ItemCover.getItem(stack)); + + return Collections.singletonList((T) new RecipeWrapperHollowCover(stack, hollowCover)); + } } } else if (focus.getMode() == IFocus.Mode.OUTPUT) { if (stack.getItem() == RSItems.HOLLOW_COVER) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCover.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCover.java index 277614cd9..7c4ed8014 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCover.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemCover.java @@ -18,6 +18,7 @@ import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -39,6 +40,8 @@ import java.util.List; public class ItemCover extends ItemBase { private static final String NBT_ITEM = "Item"; + public static final ItemStack HIDDEN_COVER_ALTERNATIVE = new ItemStack(Blocks.STONEBRICK); + public ItemCover(IItemInfo info) { super(info); @@ -91,6 +94,16 @@ public class ItemCover extends ItemBase { return; } + if (RS.INSTANCE.config.hideCovers) { + ItemStack stack = new ItemStack(this); + + setItem(stack, HIDDEN_COVER_ALTERNATIVE); + + items.add(stack); + + return; + } + for (Block block : Block.REGISTRY) { Item item = Item.getItemFromBlock(block);