From 74fd2d17154544c1065a568004da9280ef1e9e6a Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 25 Feb 2021 01:14:32 +0000 Subject: [PATCH 1/5] Hide Tools in JEI - or not --- .../api/items/toolitem/ToolMetaItem.java | 47 ++++++++++++ .../java/gregtech/common/ConfigHolder.java | 4 + .../java/gregtech/common/items/MetaTool.java | 75 +++++++++++++++++++ .../gregtech/integration/jei/GTJeiPlugin.java | 9 ++- .../jei/utils/MetaItemSubtypeHandler.java | 3 + .../jei/utils/ToolMetaItemSubtypeHandler.java | 20 +++++ 6 files changed, 156 insertions(+), 2 deletions(-) mode change 100644 => 100755 src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java mode change 100644 => 100755 src/main/java/gregtech/common/ConfigHolder.java mode change 100644 => 100755 src/main/java/gregtech/common/items/MetaTool.java mode change 100644 => 100755 src/main/java/gregtech/integration/jei/utils/MetaItemSubtypeHandler.java create mode 100755 src/main/java/gregtech/integration/jei/utils/ToolMetaItemSubtypeHandler.java diff --git a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java old mode 100644 new mode 100755 index eb9a32c5a7..c624f2d650 --- a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java +++ b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java @@ -24,6 +24,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentDurability; import net.minecraft.enchantment.EnchantmentHelper; @@ -34,9 +35,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Enchantments; import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceResult; @@ -52,6 +55,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -69,6 +73,14 @@ @Interface(modid = GTValues.MODID_FR, iface = "forestry.api.arboriculture.IToolGrafter") public class ToolMetaItem.MetaToolValueItem> extends MetaItem implements IToolItem, IAOEItem, IToolGrafter { + public static boolean hasToolSubItems(final ItemStack itemStack) { + final Item item = itemStack.getItem(); + if (item instanceof ToolMetaItem == false) + return false; + final ToolMetaItem.MetaToolValueItem metaToolValueItem = (ToolMetaItem.MetaToolValueItem)((ToolMetaItem) item).getItem(itemStack); + return metaToolValueItem.canGenerate != null; + } + public ToolMetaItem() { super((short) 0); } @@ -407,6 +419,35 @@ public String getItemStackDisplayName(ItemStack stack) { return super.getItemStackDisplayName(stack); } + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(CreativeTabs tab, NonNullList subItems) { + super.getSubItems(tab, subItems); + + // Not expanding tools + if (ConfigHolder.hideToolsInJEI) + return; + + for (short itemMetaKey : metaItems.keys()) { + ToolMetaItem.MetaToolValueItem metaToolValueItem = metaItems.get(itemMetaKey); + + // This tool knows how to do this + if (metaToolValueItem.canGenerate != null) { + for (Material material : Material.MATERIAL_REGISTRY) { + if (material instanceof SolidMaterial == false) { + continue; + } + + // Matching tool + SolidMaterial solidMaterial = (SolidMaterial) material; + if (metaToolValueItem.canGenerate.test(solidMaterial)) { + subItems.add(metaToolValueItem.getStackForm(solidMaterial)); + } + } + } + } + } + @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack itemStack, @Nullable World worldIn, List lines, ITooltipFlag tooltipFlag) { @@ -596,6 +637,7 @@ public class MetaToolValueItem extends MetaValueItem { protected IToolStats toolStats = new DummyToolStats(); protected double amountOfMaterialToRepair = 0; + protected Predicate canGenerate; protected MetaToolValueItem(int metaValue, String unlocalizedName) { super(metaValue, unlocalizedName); @@ -637,6 +679,11 @@ public MetaToolValueItem addOreDict(ToolDictNames... oreDictNames) { return this; } + public MetaToolValueItem canGenerate(Predicate canGenerate) { + this.canGenerate = canGenerate; + return this; + } + @Nonnull public IToolStats getToolStats() { return toolStats; diff --git a/src/main/java/gregtech/common/ConfigHolder.java b/src/main/java/gregtech/common/ConfigHolder.java old mode 100644 new mode 100755 index 5c18741d47..fc98c20d3c --- a/src/main/java/gregtech/common/ConfigHolder.java +++ b/src/main/java/gregtech/common/ConfigHolder.java @@ -24,6 +24,10 @@ public class ConfigHolder { @Config.RequiresMcRestart public static boolean hideFilledTanksInJEI = true; + @Config.Comment("Whether to hide tools in JEI and creative search menu showing only Darmstadtium. Default: true") + @Config.RequiresMcRestart + public static boolean hideToolsInJEI = true; + @Config.Comment("Specifies min amount of veins in section. Default: 0") public static int minVeinsInSection = 0; diff --git a/src/main/java/gregtech/common/items/MetaTool.java b/src/main/java/gregtech/common/items/MetaTool.java old mode 100644 new mode 100755 index 177a3dd270..b92d75e02e --- a/src/main/java/gregtech/common/items/MetaTool.java +++ b/src/main/java/gregtech/common/items/MetaTool.java @@ -19,11 +19,38 @@ import net.minecraft.item.ItemStack; import java.util.function.Function; +import java.util.function.Predicate; +import static gregtech.api.unification.material.type.DustMaterial.MatFlags.GENERATE_PLATE; +import static gregtech.api.unification.material.type.DustMaterial.MatFlags.NO_SMASHING; +import static gregtech.api.unification.material.type.DustMaterial.MatFlags.NO_WORKING; +import static gregtech.api.unification.material.type.IngotMaterial.MatFlags.GENERATE_BOLT_SCREW; +import static gregtech.api.unification.material.type.SolidMaterial.MatFlags.GENERATE_ROD; import static gregtech.common.items.MetaItems.*; public class MetaTool extends ToolMetaItem.MetaToolValueItem> { + public static final Predicate isToolMaterial = (material) -> material.toolDurability > 0; + + public static final Predicate isToolMaterialFlint = (material) -> material.toolDurability > 0 || material == Materials.Flint; + + public static final Predicate isSmashingMaterial = (material) -> material.toolDurability > 0 && !material.hasFlag(NO_SMASHING); + + public static final Predicate isWorkingMaterial = (material) -> material.toolDurability > 0 && !material.hasFlag(NO_WORKING); + + public static final Predicate isSmashingMaterialRod = (material) -> material.toolDurability > 0 && material.hasFlag(GENERATE_ROD); + + public static final Predicate isSmashingMaterialPlateFlint = (material) -> (material.toolDurability > 0 && material.hasFlag(GENERATE_PLATE)) + || material == Materials.Flint; + + public static final Predicate isSmashingMaterialPlateRod = (material) -> + material.toolDurability > 0 && material.hasFlag(GENERATE_ROD) && + material.hasFlag(GENERATE_PLATE); + + public static final Predicate isSmashingMaterialPlateRodBoltScrew = (material) -> + material.toolDurability > 0 && material.hasFlag(GENERATE_ROD) && + material.hasFlag(GENERATE_PLATE) && material.hasFlag(GENERATE_BOLT_SCREW); + public MetaTool() { super(); } @@ -32,151 +59,199 @@ public MetaTool() { public void registerSubItems() { SWORD = addItem(0, "tool.sword").setToolStats(new ToolSword()) .setFullRepairCost(2) + .canGenerate(isToolMaterialFlint) .addOreDict(ToolDictNames.craftingToolSword); PICKAXE = addItem(1, "tool.pickaxe").setToolStats(new ToolPickaxe()) .setFullRepairCost(3) + .canGenerate(isToolMaterialFlint) .addOreDict(ToolDictNames.craftingToolPickaxe); SHOVEL = addItem(2, "tool.shovel").setToolStats(new ToolShovel()) .setFullRepairCost(1) + .canGenerate(isToolMaterialFlint) .addOreDict(ToolDictNames.craftingToolShovel); AXE = addItem(3, "tool.axe").setToolStats(new ToolAxe()) .setFullRepairCost(3) + .canGenerate(isToolMaterialFlint) .addOreDict(ToolDictNames.craftingToolAxe); HOE = addItem(4, "tool.hoe").setToolStats(new ToolHoe()) .setFullRepairCost(2) + .canGenerate(isToolMaterialFlint) .addOreDict(ToolDictNames.craftingToolHoe); SAW = addItem(5, "tool.saw").setToolStats(new ToolSaw()) .setFullRepairCost(2) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolSaw); HARD_HAMMER = addItem(6, "tool.hard_hammer").setToolStats(new ToolHardHammer()) .setFullRepairCost(6) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolHardHammer); SOFT_HAMMER = addItem(7, "tool.soft_hammer").setToolStats(new ToolSoftHammer()) .setFullRepairCost(6) + .canGenerate((material) -> + material == Materials.Wood || + material == Materials.Rubber || + material == Materials.Plastic || + material == Materials.Polytetrafluoroethylene + ) .addOreDict(ToolDictNames.craftingToolSoftHammer) .addComponents(new SoftMalletItemStat()); WRENCH = addItem(8, "tool.wrench").setToolStats(new ToolWrench()) .setFullRepairCost(6) + .canGenerate(isSmashingMaterial) .addOreDict(ToolDictNames.craftingToolWrench) .addComponents(new WrenchItemStat()); FILE = addItem(9, "tool.file").setToolStats(new ToolFile()) .setFullRepairCost(2) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolFile); CROWBAR = addItem(10, "tool.crowbar").setToolStats(new ToolCrowbar()) .setFullRepairCost(1.5) + .canGenerate(isSmashingMaterialRod) .addOreDict(ToolDictNames.craftingToolCrowbar); SCREWDRIVER = addItem(11, "tool.screwdriver").setToolStats(new ToolScrewdriver()) .setFullRepairCost(1) + .canGenerate(isSmashingMaterialRod) .addOreDict(ToolDictNames.craftingToolScrewdriver) .addComponents(new ScrewdriverItemStat()); MORTAR = addItem(12, "tool.mortar").setToolStats(new ToolMortar()) + .canGenerate((material) -> + material == Materials.Flint || + material == Materials.Bronze || + material == Materials.Iron || + material == Materials.Steel || + material == Materials.DamascusSteel || + material == Materials.WroughtIron || + material == Materials.RedSteel || + material == Materials.BlackSteel || + material == Materials.BlueSteel + ) .addOreDict(ToolDictNames.craftingToolMortar); WIRE_CUTTER = addItem(13, "tool.wire_cutter").setToolStats(new ToolWireCutter()) .setFullRepairCost(4.125) + .canGenerate(isSmashingMaterialPlateRodBoltScrew) .addOreDict(ToolDictNames.craftingToolWireCutter); SCOOP = addItem(14, "tool.scoop").setToolStats(new ToolScoop()) .setFullRepairCost(3) + .canGenerate(isSmashingMaterialRod) .addOreDict(ToolDictNames.craftingToolScoop); BRANCH_CUTTER = addItem(15, "tool.branch_cutter").setToolStats(new ToolBranchCutter()) .setFullRepairCost(5.125) + .canGenerate(isSmashingMaterialPlateRodBoltScrew) .addOreDict(ToolDictNames.craftingToolBranchCutter); UNIVERSAL_SPADE = addItem(16, "tool.universal_spade").setToolStats(new ToolUniversalSpade()) .setFullRepairCost(5) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolShovel, ToolDictNames.craftingToolCrowbar, ToolDictNames.craftingToolSaw); KNIFE = addItem(17, "tool.knife").setToolStats(new ToolKnife()) .setFullRepairCost(1.5) + .canGenerate(isSmashingMaterialPlateFlint) .addOreDict(ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolKnife); BUTCHERY_KNIFE = addItem(18, "tool.butchery_knife").setToolStats(new ToolButcheryKnife()) .setFullRepairCost(4.5) + .canGenerate(isSmashingMaterialPlateRod) .addOreDict(ToolDictNames.craftingToolBlade); SENSE = addItem(19, "tool.sense").setToolStats(new ToolSense()) .setFullRepairCost(3) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolBlade); DRILL_LV = addItem(23, "tool.drill.lv").setToolStats(new ToolDrillLV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolMiningDrill) .addComponents(ElectricStats.createElectricItem(100000L, 1L)); DRILL_MV = addItem(24, "tool.drill.mv").setToolStats(new ToolDrillMV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolMiningDrill) .addComponents(ElectricStats.createElectricItem(400000L, 2L)); DRILL_HV = addItem(25, "tool.drill.hv").setToolStats(new ToolDrillHV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolMiningDrill) .addComponents(ElectricStats.createElectricItem(1600000L, 3L)); CHAINSAW_LV = addItem(26, "tool.chainsaw.lv").setToolStats(new ToolChainsawLV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolSaw) .addComponents(ElectricStats.createElectricItem(100000L, 1L)); CHAINSAW_MV = addItem(27, "tool.chainsaw.mv").setToolStats(new ToolChainsawMV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolSaw) .addComponents(ElectricStats.createElectricItem(400000L, 2L)); CHAINSAW_HV = addItem(28, "tool.chainsaw.hv").setToolStats(new ToolChainsawHV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolSaw) .addComponents(ElectricStats.createElectricItem(1600000L, 3L)); WRENCH_LV = addItem(29, "tool.wrench.lv").setToolStats(new ToolWrenchLV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolWrench) .addComponents(new WrenchItemStat()) .addComponents(ElectricStats.createElectricItem(100000L, 1L)); WRENCH_MV = addItem(30, "tool.wrench.mv").setToolStats(new ToolWrenchMV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolWrench) .addComponents(new WrenchItemStat()) .addComponents(ElectricStats.createElectricItem(400000L, 2L)); WRENCH_HV = addItem(31, "tool.wrench.hv").setToolStats(new ToolWrenchHV()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolWrench) .addComponents(new WrenchItemStat()) .addComponents(ElectricStats.createElectricItem(1600000L, 3L)); SCREWDRIVER_LV = addItem(34, "tool.screwdriver.lv").setToolStats(new ToolScrewdriverLV()) .setFullRepairCost(1) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolScrewdriver) .addComponents(new ScrewdriverItemStat()) .addComponents(ElectricStats.createElectricItem(100000L, 1L)); JACKHAMMER = addItem(32, "tool.jackhammer").setToolStats(new ToolJackHammer()) .setFullRepairCost(5) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolJackHammer) .addComponents(ElectricStats.createElectricItem(1600000L, GTValues.HV)); BUZZSAW = addItem(33, "tool.buzzsaw").setToolStats(new ToolBuzzSaw()) .setFullRepairCost(4) + .canGenerate(isToolMaterial) .addOreDict(ToolDictNames.craftingToolSaw) .addComponents(ElectricStats.createElectricItem(100000L, 1L)); PLUNGER = addItem(37, "tool.plunger").setToolStats(new ToolPlunger()) + .canGenerate(isSmashingMaterial) .addOreDict(ToolDictNames.craftingToolPlunger); } diff --git a/src/main/java/gregtech/integration/jei/GTJeiPlugin.java b/src/main/java/gregtech/integration/jei/GTJeiPlugin.java index bf6d378ebd..629ef23798 100755 --- a/src/main/java/gregtech/integration/jei/GTJeiPlugin.java +++ b/src/main/java/gregtech/integration/jei/GTJeiPlugin.java @@ -8,6 +8,7 @@ import gregtech.api.capability.impl.FuelRecipeLogic; import gregtech.api.gui.impl.ModularUIGuiHandler; import gregtech.api.items.metaitem.MetaItem; +import gregtech.api.items.toolitem.ToolMetaItem; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.RecipeMaps; @@ -21,6 +22,7 @@ import gregtech.api.unification.ore.OrePrefix; import gregtech.api.worldgen.config.OreDepositDefinition; import gregtech.api.worldgen.config.WorldGenRegistry; +import gregtech.common.ConfigHolder; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; import gregtech.common.metatileentities.MetaTileEntities; @@ -32,6 +34,7 @@ import gregtech.integration.jei.utils.CustomItemReturnRecipeWrapper; import gregtech.integration.jei.utils.MachineSubtypeHandler; import gregtech.integration.jei.utils.MetaItemSubtypeHandler; +import gregtech.integration.jei.utils.ToolMetaItemSubtypeHandler; import gregtech.loaders.recipe.CustomItemReturnShapedOreRecipeRecipe; import mezz.jei.api.*; import mezz.jei.api.ingredients.IIngredientRegistry; @@ -56,9 +59,11 @@ public class GTJeiPlugin implements IModPlugin { @Override public void registerItemSubtypes(@Nonnull ISubtypeRegistry subtypeRegistry) { - MetaItemSubtypeHandler subtype = new MetaItemSubtypeHandler(); for (MetaItem metaItem : MetaItems.ITEMS) { - subtypeRegistry.registerSubtypeInterpreter(metaItem, subtype); + if (!ConfigHolder.hideToolsInJEI && metaItem instanceof ToolMetaItem) + subtypeRegistry.registerSubtypeInterpreter(metaItem, ToolMetaItemSubtypeHandler.INSTANCE); + else + subtypeRegistry.registerSubtypeInterpreter(metaItem, MetaItemSubtypeHandler.INSTANCE); } subtypeRegistry.registerSubtypeInterpreter(Item.getItemFromBlock(MetaBlocks.MACHINE), new MachineSubtypeHandler()); } diff --git a/src/main/java/gregtech/integration/jei/utils/MetaItemSubtypeHandler.java b/src/main/java/gregtech/integration/jei/utils/MetaItemSubtypeHandler.java old mode 100644 new mode 100755 index 764223ad03..c63f5ef3ff --- a/src/main/java/gregtech/integration/jei/utils/MetaItemSubtypeHandler.java +++ b/src/main/java/gregtech/integration/jei/utils/MetaItemSubtypeHandler.java @@ -6,6 +6,9 @@ import net.minecraft.item.ItemStack; public class MetaItemSubtypeHandler implements ISubtypeInterpreter { + + public static final MetaItemSubtypeHandler INSTANCE = new MetaItemSubtypeHandler(); + @Override public String apply(ItemStack itemStack) { MetaItem metaItem = (MetaItem) itemStack.getItem(); diff --git a/src/main/java/gregtech/integration/jei/utils/ToolMetaItemSubtypeHandler.java b/src/main/java/gregtech/integration/jei/utils/ToolMetaItemSubtypeHandler.java new file mode 100755 index 0000000000..23d8f43884 --- /dev/null +++ b/src/main/java/gregtech/integration/jei/utils/ToolMetaItemSubtypeHandler.java @@ -0,0 +1,20 @@ +package gregtech.integration.jei.utils; + +import gregtech.api.unification.material.type.SolidMaterial; +import gregtech.api.items.toolitem.ToolMetaItem; +import mezz.jei.api.ISubtypeRegistry.ISubtypeInterpreter; +import net.minecraft.item.ItemStack; + +public class ToolMetaItemSubtypeHandler implements ISubtypeInterpreter { + + public static final ToolMetaItemSubtypeHandler INSTANCE = new ToolMetaItemSubtypeHandler(); + + @Override + public String apply(ItemStack itemStack) { + if (!ToolMetaItem.hasToolSubItems(itemStack)) + return MetaItemSubtypeHandler.INSTANCE.apply(itemStack); + + SolidMaterial solidMaterial = ToolMetaItem.getToolMaterial(itemStack); + return String.format("%d;%s", itemStack.getMetadata(), solidMaterial.toString()); + } +} From c73b61e2f92942fcf147d2c0c668a98e39a595e1 Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 8 Apr 2021 11:39:18 +0100 Subject: [PATCH 2/5] Separate tools into their own creative tab --- src/main/java/gregtech/api/GregTechAPI.java | 2 ++ .../java/gregtech/api/items/toolitem/ToolMetaItem.java | 8 +++++++- src/main/resources/assets/gregtech/lang/en_us.lang | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/GregTechAPI.java b/src/main/java/gregtech/api/GregTechAPI.java index 654640c56c..6c5d359dc7 100644 --- a/src/main/java/gregtech/api/GregTechAPI.java +++ b/src/main/java/gregtech/api/GregTechAPI.java @@ -27,6 +27,8 @@ public class GregTechAPI { new BaseCreativeTab(GTValues.MODID + ".materials", () -> OreDictUnifier.get(OrePrefix.ingot, Materials.Aluminium), true); public static final BaseCreativeTab TAB_GREGTECH_ORES = new BaseCreativeTab(GTValues.MODID + ".ores", () -> MetaItems.JACKHAMMER.getStackForm(), true); + public static final BaseCreativeTab TAB_GREGTECH_TOOLS = + new BaseCreativeTab(GTValues.MODID + ".tools", () -> MetaItems.HARD_HAMMER.getStackForm(), true); public static final GTControlledRegistry META_TILE_ENTITY_REGISTRY = new GTControlledRegistry<>(Short.MAX_VALUE); diff --git a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java index 3ac19a6d0b..8511683427 100755 --- a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java +++ b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java @@ -5,6 +5,7 @@ import com.google.common.collect.Multimap; import forestry.api.arboriculture.IToolGrafter; import gregtech.api.GTValues; +import gregtech.api.GregTechAPI; import gregtech.api.capability.GregtechCapabilities; import gregtech.api.capability.IElectricItem; import gregtech.api.enchants.EnchantmentData; @@ -438,8 +439,13 @@ public void getSubItems(CreativeTabs tab, NonNullList subItems) { super.getSubItems(tab, subItems); // Not expanding tools - if (ConfigHolder.hideToolsInJEI) + if (ConfigHolder.hideToolsInJEI) { return; + } + + if (tab != GregTechAPI.TAB_GREGTECH_TOOLS && tab != CreativeTabs.SEARCH) { + return; + } for (short itemMetaKey : metaItems.keys()) { ToolMetaItem.MetaToolValueItem metaToolValueItem = metaItems.get(itemMetaKey); diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 5c98eba245..988e68fcf7 100755 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -1758,6 +1758,7 @@ tile.multiblock_casing.fusion_mk2.name=Fusion Machine Casing MK II itemGroup.gregtech.main=GregTech CE itemGroup.gregtech.materials=Materials (GTCE) itemGroup.gregtech.ores=Ores (GTCE) +itemGroup.gregtech.tools=Tools (GTCE) # Chests gregtech.machine.small_wooden_chest.name=Small Wooden Chest From 4026c4a3788ec788fc4d1ab0b82c55fa0a1da460 Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 8 Apr 2021 12:05:23 +0100 Subject: [PATCH 3/5] ws --- src/main/java/gregtech/api/GregTechAPI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/GregTechAPI.java b/src/main/java/gregtech/api/GregTechAPI.java index 6c5d359dc7..be3f678374 100644 --- a/src/main/java/gregtech/api/GregTechAPI.java +++ b/src/main/java/gregtech/api/GregTechAPI.java @@ -28,7 +28,7 @@ public class GregTechAPI { public static final BaseCreativeTab TAB_GREGTECH_ORES = new BaseCreativeTab(GTValues.MODID + ".ores", () -> MetaItems.JACKHAMMER.getStackForm(), true); public static final BaseCreativeTab TAB_GREGTECH_TOOLS = - new BaseCreativeTab(GTValues.MODID + ".tools", () -> MetaItems.HARD_HAMMER.getStackForm(), true); + new BaseCreativeTab(GTValues.MODID + ".tools", () -> MetaItems.HARD_HAMMER.getStackForm(), true); public static final GTControlledRegistry META_TILE_ENTITY_REGISTRY = new GTControlledRegistry<>(Short.MAX_VALUE); From fe747833a7276f87757becc872ac59db026c9afc Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 27 May 2021 11:05:53 +0100 Subject: [PATCH 4/5] Add vanilla dusts to dustRegular --- .../gregtech/api/items/materialitem/MaterialMetaItem.java | 2 +- src/main/java/gregtech/api/unification/ore/OrePrefix.java | 2 ++ src/main/java/gregtech/loaders/OreDictionaryLoader.java | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java mode change 100644 => 100755 src/main/java/gregtech/api/unification/ore/OrePrefix.java mode change 100644 => 100755 src/main/java/gregtech/loaders/OreDictionaryLoader.java diff --git a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java old mode 100644 new mode 100755 index ab4ce2fac5..43e5d2c214 --- a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java +++ b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java @@ -57,7 +57,7 @@ public void registerOreDict() { ItemStack item = new ItemStack(this, 1, metaItem); OreDictUnifier.registerOre(item, prefix, material); if(prefix.name().equals("dust")) - OreDictUnifier.registerOre(item, "dustRegular", material); + OreDictUnifier.registerOre(item, OrePrefix.DUST_REGULAR, material); items.add(item); } diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java old mode 100644 new mode 100755 index 22ff51ae64..b330c01c6a --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -161,6 +161,8 @@ public enum OrePrefix { circuit("Circuits", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null), // Introduced by Calclavia chipset("Chipsets", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null); // Introduced by Buildcraft + public static final String DUST_REGULAR = "dustRegular"; + public static class Flags { public static final long ENABLE_UNIFICATION = GTUtility.createFlag(0); public static final long SELF_REFERENCING = GTUtility.createFlag(1); diff --git a/src/main/java/gregtech/loaders/OreDictionaryLoader.java b/src/main/java/gregtech/loaders/OreDictionaryLoader.java old mode 100644 new mode 100755 index e2e00bf306..02e46c8e5a --- a/src/main/java/gregtech/loaders/OreDictionaryLoader.java +++ b/src/main/java/gregtech/loaders/OreDictionaryLoader.java @@ -67,13 +67,19 @@ public static void init() { OreDictUnifier.registerOre(new ItemStack(Items.IRON_INGOT), OrePrefix.ingot, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Items.PAPER), OrePrefix.plate, Materials.Paper); OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.dust, Materials.Sugar); + OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.DUST_REGULAR, Materials.Sugar); OreDictUnifier.registerOre(new ItemStack(Items.STICK), OrePrefix.stick, Materials.Wood); OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.dust, Materials.Redstone); + OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.DUST_REGULAR, Materials.Redstone); OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.dust, Materials.Gunpowder); + OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.DUST_REGULAR, Materials.Gunpowder); OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.dust, Materials.Glowstone); + OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.DUST_REGULAR, Materials.Glowstone); OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.dust, Materials.Bone); + OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.DUST_REGULAR, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BONE), OrePrefix.stick, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.dust, Materials.Blaze); + OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.DUST_REGULAR, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_ROD), OrePrefix.stick, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Blocks.IRON_BLOCK), OrePrefix.block, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Blocks.GOLD_BLOCK), OrePrefix.block, Materials.Gold); From ad872d2229959dc229b57ffe4c0c5e4bccba8373 Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 27 May 2021 11:10:14 +0100 Subject: [PATCH 5/5] Revert "Add vanilla dusts to dustRegular" This reverts commit fe747833a7276f87757becc872ac59db026c9afc. --- .../gregtech/api/items/materialitem/MaterialMetaItem.java | 2 +- src/main/java/gregtech/api/unification/ore/OrePrefix.java | 2 -- src/main/java/gregtech/loaders/OreDictionaryLoader.java | 6 ------ 3 files changed, 1 insertion(+), 9 deletions(-) mode change 100755 => 100644 src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java mode change 100755 => 100644 src/main/java/gregtech/api/unification/ore/OrePrefix.java mode change 100755 => 100644 src/main/java/gregtech/loaders/OreDictionaryLoader.java diff --git a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java old mode 100755 new mode 100644 index 43e5d2c214..ab4ce2fac5 --- a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java +++ b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java @@ -57,7 +57,7 @@ public void registerOreDict() { ItemStack item = new ItemStack(this, 1, metaItem); OreDictUnifier.registerOre(item, prefix, material); if(prefix.name().equals("dust")) - OreDictUnifier.registerOre(item, OrePrefix.DUST_REGULAR, material); + OreDictUnifier.registerOre(item, "dustRegular", material); items.add(item); } diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java old mode 100755 new mode 100644 index b330c01c6a..22ff51ae64 --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -161,8 +161,6 @@ public enum OrePrefix { circuit("Circuits", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null), // Introduced by Calclavia chipset("Chipsets", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null); // Introduced by Buildcraft - public static final String DUST_REGULAR = "dustRegular"; - public static class Flags { public static final long ENABLE_UNIFICATION = GTUtility.createFlag(0); public static final long SELF_REFERENCING = GTUtility.createFlag(1); diff --git a/src/main/java/gregtech/loaders/OreDictionaryLoader.java b/src/main/java/gregtech/loaders/OreDictionaryLoader.java old mode 100755 new mode 100644 index 02e46c8e5a..e2e00bf306 --- a/src/main/java/gregtech/loaders/OreDictionaryLoader.java +++ b/src/main/java/gregtech/loaders/OreDictionaryLoader.java @@ -67,19 +67,13 @@ public static void init() { OreDictUnifier.registerOre(new ItemStack(Items.IRON_INGOT), OrePrefix.ingot, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Items.PAPER), OrePrefix.plate, Materials.Paper); OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.dust, Materials.Sugar); - OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.DUST_REGULAR, Materials.Sugar); OreDictUnifier.registerOre(new ItemStack(Items.STICK), OrePrefix.stick, Materials.Wood); OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.dust, Materials.Redstone); - OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.DUST_REGULAR, Materials.Redstone); OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.dust, Materials.Gunpowder); - OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.DUST_REGULAR, Materials.Gunpowder); OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.dust, Materials.Glowstone); - OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.DUST_REGULAR, Materials.Glowstone); OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.dust, Materials.Bone); - OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.DUST_REGULAR, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BONE), OrePrefix.stick, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.dust, Materials.Blaze); - OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.DUST_REGULAR, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_ROD), OrePrefix.stick, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Blocks.IRON_BLOCK), OrePrefix.block, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Blocks.GOLD_BLOCK), OrePrefix.block, Materials.Gold);