From 9b3cfc2f6efe91652455d38277947e30678fd7cb Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:38:16 -0700 Subject: [PATCH 01/21] uhhh stuff and things --- .../gtceu/api/block/MaterialBlock.java | 1 + .../recipe/ItemRecipeCapability.java | 2 +- .../api/data/chemical/ChemicalHelper.java | 213 ++---- .../material/properties/HazardProperty.java | 4 +- .../material/stack/ItemMaterialInfo.java | 4 +- ...ificationEntry.java => MaterialEntry.java} | 36 +- .../gtceu/api/data/tag/TagPrefix.java | 5 +- .../worldgen/generator/VeinGenerator.java | 10 +- .../gtceu/api/gui/misc/ProspectorMode.java | 6 +- .../gregtechceu/gtceu/api/item/IGTTool.java | 4 +- .../gtceu/api/recipe/GTRecipeType.java | 4 +- .../api/recipe/ToolHeadReplaceRecipe.java | 16 +- .../gtceu/client/TooltipsHandler.java | 2 +- .../renderer/BlockHighlightRenderer.java | 47 +- .../gregtechceu/gtceu/common/CommonProxy.java | 4 +- .../gtceu/common/data/GTBlocks.java | 10 +- .../gtceu/common/data/GTItems.java | 11 +- .../steam/SteamSolidBoilerMachine.java | 2 +- .../gregtechceu/gtceu/core/MixinHelpers.java | 5 +- .../gtceu/data/recipe/CraftingComponent.java | 612 +++++++++--------- .../gtceu/data/recipe/MaterialInfoLoader.java | 600 ++++++++--------- .../data/recipe/VanillaRecipeHelper.java | 25 +- .../data/recipe/builder/GTRecipeBuilder.java | 18 +- .../recipe/configurable/RecipeAddition.java | 416 ++++++------ .../generated/MaterialRecipeHandler.java | 40 +- .../recipe/generated/OreRecipeHandler.java | 8 +- .../recipe/generated/PartsRecipeHandler.java | 48 +- .../recipe/generated/PipeRecipeHandler.java | 22 +- .../recipe/generated/ToolRecipeHandler.java | 62 +- .../generated/WireCombiningHandler.java | 16 +- .../recipe/generated/WireRecipeHandler.java | 6 +- .../data/recipe/misc/BatteryRecipes.java | 16 +- .../data/recipe/misc/CircuitRecipes.java | 46 +- .../data/recipe/misc/ComponentRecipes.java | 180 +++--- .../recipe/misc/CraftingRecipeLoader.java | 90 +-- .../gtceu/data/recipe/misc/GCYMRecipes.java | 100 +-- .../data/recipe/misc/MachineRecipeLoader.java | 4 +- .../recipe/misc/MetaTileEntityLoader.java | 556 ++++++++-------- .../MetaTileEntityMachineRecipeLoader.java | 18 +- .../data/recipe/misc/MiscRecipeLoader.java | 28 +- .../data/recipe/misc/RecyclingRecipes.java | 24 +- .../recipe/misc/VanillaStandardRecipes.java | 52 +- .../data/recipe/misc/WoodMachineRecipes.java | 65 +- .../serialized/chemistry/MixerRecipes.java | 18 +- .../gtceu/data/tags/TagsHandler.java | 38 +- .../integration/kjs/GregTechKubeJSPlugin.java | 12 +- .../kjs/events/CraftingComponentsEventJS.java | 8 +- .../kjs/recipe/GTRecipeSchema.java | 18 +- .../map/cache/server/ServerCache.java | 2 +- .../map/journeymap/JourneymapRenderer.java | 2 +- .../gtceu/utils/SupplierMemoizer.java | 4 +- .../block/material_sets/dull/block.json | 2 +- .../block/material_sets/fine/block.json | 2 +- 53 files changed, 1733 insertions(+), 1811 deletions(-) rename src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/{UnificationEntry.java => MaterialEntry.java} (53%) diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java index ec684acbcb..06c65f235e 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java +++ b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java @@ -39,6 +39,7 @@ import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/ItemRecipeCapability.java b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/ItemRecipeCapability.java index fe92242c3b..f5a28dc818 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/ItemRecipeCapability.java +++ b/src/main/java/com/gregtechceu/gtceu/api/capability/recipe/ItemRecipeCapability.java @@ -169,7 +169,7 @@ public List convertToMapIngredient(Object obj) { } TagPrefix prefix = ChemicalHelper.getPrefix(stack.getItem()); if (prefix != null && TagPrefix.ORES.containsKey(prefix)) { - Material material = ChemicalHelper.getMaterial(stack.getItem()).material(); + Material material = ChemicalHelper.getMaterialStack(stack.getItem()).material(); ingredients.add(new MapIntersectionIngredient((IntersectionIngredient) IntersectionIngredient.of( Ingredient.of(prefix.getItemTags(material)[0]), Ingredient.of(prefix.getItemParentTags()[0])))); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 21f89238db..77fe8fff1e 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -2,42 +2,33 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.GTCEuAPI; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; -import com.gregtechceu.gtceu.common.data.GTItems; -import com.gregtechceu.gtceu.data.recipe.misc.WoodMachineRecipes; -import com.gregtechceu.gtceu.data.tags.TagsHandler; -import com.gregtechceu.gtceu.utils.SupplierMemoizer; import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.tags.TagKey; -import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.registries.RegistryObject; import com.mojang.datafixers.util.Pair; -import com.tterrag.registrate.util.entry.BlockEntry; -import com.tterrag.registrate.util.entry.ItemEntry; -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; -import java.util.concurrent.ConcurrentHashMap; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -50,124 +41,47 @@ */ public class ChemicalHelper { - /** Used for custom material data for items that do not fall into the normal "prefix, material" pair */ - public static final Map ITEM_MATERIAL_INFO = new ConcurrentHashMap<>(); - /** Mapping of an item to a "prefix, material" pair */ - public static final Set, UnificationEntry>> ITEM_UNIFICATION_ENTRY = ConcurrentHashMap - .newKeySet(); - public static final Map ITEM_UNIFICATION_ENTRY_COLLECTED = new ConcurrentHashMap<>(); - /** Mapping of a tag to a "prefix, material" pair */ - public static final Map, UnificationEntry> TAG_UNIFICATION_ENTRY = new Object2ObjectLinkedOpenHashMap<>(); - /** Mapping of a fluid to a material */ - public static final Map FLUID_MATERIAL = new ConcurrentHashMap<>(); - /** Mapping of all items that represent a "prefix, material" pair */ - public static final Map>> UNIFICATION_ENTRY_ITEM = new ConcurrentHashMap<>(); - public static final Map>> UNIFICATION_ENTRY_BLOCK = new ConcurrentHashMap<>(); - /** Mapping of stone type blockState to "prefix, material" */ - public static final Map, TagPrefix> ORES_INVERSE = new ConcurrentHashMap<>(); - - public static void registerMaterialInfo(ItemLike item, ItemMaterialInfo materialInfo) { - ITEM_MATERIAL_INFO.put(item, materialInfo); - } - - public static ItemMaterialInfo getMaterialInfo(ItemLike item) { - if (item instanceof Block block) { - return ITEM_MATERIAL_INFO.get(block); - } else if (item instanceof BlockItem blockItem) { - return ITEM_MATERIAL_INFO.get(blockItem.getBlock()); - } else if (item instanceof ItemEntry entry) { - return ITEM_MATERIAL_INFO.get(entry.asItem()); - } - return ITEM_MATERIAL_INFO.get(item); - } - - @SafeVarargs - public static void registerUnificationItems(UnificationEntry unificationEntry, - Supplier... items) { - UNIFICATION_ENTRY_ITEM.computeIfAbsent(unificationEntry, entry -> new ArrayList<>()) - .addAll(Arrays.asList(items)); - for (Supplier item : items) { - ITEM_UNIFICATION_ENTRY.add(Map.entry(item, unificationEntry)); - if (item instanceof Block block) { - UNIFICATION_ENTRY_BLOCK.computeIfAbsent(unificationEntry, entry -> new ArrayList<>()) - .add(() -> block); - } else if (item instanceof BlockEntry blockEntry) { - UNIFICATION_ENTRY_BLOCK.computeIfAbsent(unificationEntry, entry -> new ArrayList<>()) - .add(blockEntry); - } else if (item instanceof RegistryObject registryObject) { - if (registryObject.getKey().isFor(Registries.BLOCK)) { - UNIFICATION_ENTRY_BLOCK.computeIfAbsent(unificationEntry, entry -> new ArrayList<>()) - .add((RegistryObject) registryObject); - } - } else if (item instanceof SupplierMemoizer.MemoizedBlockSupplier supplier) { - UNIFICATION_ENTRY_BLOCK.computeIfAbsent(unificationEntry, entry -> new ArrayList<>()) - .add(supplier); - } - } - if (TagPrefix.ORES.containsKey(unificationEntry.tagPrefix) && - !ORES_INVERSE.containsValue(unificationEntry.tagPrefix)) { - ORES_INVERSE.put(TagPrefix.ORES.get(unificationEntry.tagPrefix).stoneType(), unificationEntry.tagPrefix); - } - for (TagKey tag : unificationEntry.tagPrefix.getAllItemTags(unificationEntry.material)) { - TAG_UNIFICATION_ENTRY.putIfAbsent(tag, unificationEntry); - } - } - - @SafeVarargs - public static void registerUnificationItems(TagPrefix tagPrefix, @Nullable Material material, - Supplier... items) { - registerUnificationItems(new UnificationEntry(tagPrefix, material), items); - } - - public static void registerUnificationItems(TagPrefix tagPrefix, @Nullable Material material, ItemLike... items) { - registerUnificationItems(new UnificationEntry(tagPrefix, material), - Arrays.stream(items).map(item -> (Supplier) () -> item).toArray(Supplier[]::new)); - for (ItemLike item : items) { - ITEM_UNIFICATION_ENTRY_COLLECTED.put(item, new UnificationEntry(tagPrefix, material)); - } - } - @Nullable - public static MaterialStack getMaterial(Object object) { + public static MaterialStack getMaterialStack(Object object) { if (object instanceof MaterialStack materialStack) { return materialStack; - } else if (object instanceof UnificationEntry entry) { - return getMaterial(entry); + } else if (object instanceof MaterialEntry entry) { + return getMaterialStack(entry); } else if (object instanceof ItemStack itemStack) { - return getMaterial(itemStack); + return getMaterialStack(itemStack); } else if (object instanceof ItemLike item) { - return getMaterial(item); + return getMaterialStack(item); } return null; } @Nullable - public static MaterialStack getMaterial(ItemStack itemStack) { + public static MaterialStack getMaterialStack(ItemStack itemStack) { if (itemStack.isEmpty()) return null; - return getMaterial(itemStack.getItem()); + return getMaterialStack(itemStack.getItem()); } @Nullable - public static MaterialStack getMaterial(UnificationEntry entry) { + public static MaterialStack getMaterialStack(MaterialEntry entry) { if (entry != null) { - Material entryMaterial = entry.material; + Material entryMaterial = entry.material(); if (entryMaterial != null) { - return new MaterialStack(entryMaterial, entry.tagPrefix.getMaterialAmount(entryMaterial)); + return new MaterialStack(entryMaterial, entry.tagPrefix().getMaterialAmount(entryMaterial)); } } return null; } @Nullable - public static MaterialStack getMaterial(ItemLike itemLike) { - var entry = getUnificationEntry(itemLike); + public static MaterialStack getMaterialStack(ItemLike itemLike) { + var entry = getMaterialEntry(itemLike); if (entry != null) { - Material entryMaterial = entry.material; + Material entryMaterial = entry.material(); if (entryMaterial != null) { - return new MaterialStack(entryMaterial, entry.tagPrefix.getMaterialAmount(entryMaterial)); + return new MaterialStack(entryMaterial, entry.tagPrefix().getMaterialAmount(entryMaterial)); } } - ItemMaterialInfo info = ITEM_MATERIAL_INFO.get(itemLike); + ItemMaterialInfo info = ItemMaterialData.ITEM_MATERIAL_INFO.get(itemLike); if (info == null) return null; if (info.getMaterial() == null) { @@ -179,7 +93,7 @@ public static MaterialStack getMaterial(ItemLike itemLike) { @Nullable public static Material getMaterial(Fluid fluid) { - if (FLUID_MATERIAL.isEmpty()) { + if (ItemMaterialData.FLUID_MATERIAL.isEmpty()) { Set> allFluidTags = BuiltInRegistries.FLUID.getTagNames().collect(Collectors.toSet()); for (final Material material : GTCEuAPI.materialManager.getRegisteredMaterials()) { if (material.hasProperty(PropertyKey.FLUID)) { @@ -191,19 +105,19 @@ public static Material getMaterial(Fluid fluid) { .filter(pair -> allFluidTags.contains(pair.getSecond())) .forEach(pair -> { allFluidTags.remove(pair.getSecond()); - FLUID_MATERIAL.put(pair.getFirst(), material); + ItemMaterialData.FLUID_MATERIAL.put(pair.getFirst(), material); }); } } } - return FLUID_MATERIAL.get(fluid); + return ItemMaterialData.FLUID_MATERIAL.get(fluid); } @Nullable public static TagPrefix getPrefix(ItemLike itemLike) { if (itemLike == null) return null; - UnificationEntry entry = getUnificationEntry(itemLike); - if (entry != null) return entry.tagPrefix; + MaterialEntry entry = getMaterialEntry(itemLike); + if (entry != null) return entry.tagPrefix(); return null; } @@ -259,37 +173,37 @@ public static ItemStack getGem(MaterialStack materialStack) { } @Nullable - public static UnificationEntry getUnificationEntry(ItemLike itemLike) { + public static MaterialEntry getMaterialEntry(ItemLike itemLike) { // asItem is a bit slow, avoid calling it multiple times var itemKey = itemLike.asItem(); - var unifyingEntry = ITEM_UNIFICATION_ENTRY_COLLECTED.get(itemKey); + var unifyingEntry = ItemMaterialData.ITEM_MATERIAL_ENTRY_COLLECTED.get(itemKey); if (unifyingEntry == null) { // Resolve all the lazy suppliers once, rather than on each request. This avoids O(n) lookup performance // for unification entries. - ITEM_UNIFICATION_ENTRY.removeIf(entry -> { - ITEM_UNIFICATION_ENTRY_COLLECTED.put(entry.getKey().get().asItem(), entry.getValue()); + ItemMaterialData.ITEM_MATERIAL_ENTRY.removeIf(entry -> { + ItemMaterialData.ITEM_MATERIAL_ENTRY_COLLECTED.put(entry.getKey().get().asItem(), entry.getValue()); return true; }); // guess an entry based on the item's tags if none are pre-registered. - unifyingEntry = ITEM_UNIFICATION_ENTRY_COLLECTED.computeIfAbsent(itemKey, item -> { + unifyingEntry = ItemMaterialData.ITEM_MATERIAL_ENTRY_COLLECTED.computeIfAbsent(itemKey, item -> { for (TagKey itemTag : item.asItem().builtInRegistryHolder().tags().toList()) { - UnificationEntry unificationEntry = getUnificationEntry(itemTag); + MaterialEntry materialEntry = getMaterialEntry(itemTag); // check that it's not the empty marker and that it's not a parent tag - if (unificationEntry != null && - Arrays.stream(unificationEntry.tagPrefix.getItemParentTags()).noneMatch(itemTag::equals)) { - return unificationEntry; + if (materialEntry != null && + Arrays.stream(materialEntry.tagPrefix().getItemParentTags()).noneMatch(itemTag::equals)) { + return materialEntry; } } - return UnificationEntry.EmptyMapMarkerEntry; + return null; }); } - return unifyingEntry != UnificationEntry.EmptyMapMarkerEntry ? unifyingEntry : null; + return unifyingEntry; } - public static UnificationEntry getUnificationEntry(TagKey tag) { - if (TAG_UNIFICATION_ENTRY.isEmpty()) { + public static MaterialEntry getMaterialEntry(TagKey tag) { + if (ItemMaterialData.TAG_MATERIAL_ENTRY.isEmpty()) { // If the map is empty, resolve all possible tags to their values in an attempt to save time on later // lookups. Set> allItemTags = BuiltInRegistries.ITEM.getTagNames().collect(Collectors.toSet()); @@ -300,32 +214,32 @@ public static UnificationEntry getUnificationEntry(TagKey tag) { .forEach(tagKey -> { // remove the tag so that the next iteration is faster. allItemTags.remove(tagKey); - TAG_UNIFICATION_ENTRY.put(tagKey, new UnificationEntry(prefix, material)); + ItemMaterialData.TAG_MATERIAL_ENTRY.put(tagKey, new MaterialEntry(prefix, material)); }); } } } - return TAG_UNIFICATION_ENTRY.get(tag); + return ItemMaterialData.TAG_MATERIAL_ENTRY.get(tag); } - public static List getItems(UnificationEntry unificationEntry) { - return UNIFICATION_ENTRY_ITEM.computeIfAbsent(unificationEntry, entry -> { + public static List getItems(MaterialEntry materialEntry) { + return ItemMaterialData.MATERIAL_ENTRY_ITEM_MAP.computeIfAbsent(materialEntry, entry -> { var items = new ArrayList>(); - for (TagKey tag : getTags(entry.tagPrefix, entry.material)) { + for (TagKey tag : getTags(entry.tagPrefix(), entry.material())) { for (Holder itemHolder : BuiltInRegistries.ITEM.getTagOrEmpty(tag)) { items.add(itemHolder::value); } } - TagPrefix prefix = entry.tagPrefix; - if (items.isEmpty() && prefix.hasItemTable() && prefix.doGenerateItem(entry.material)) { - return new ArrayList<>(List.of(prefix.getItemFromTable(entry.material))); + TagPrefix prefix = entry.tagPrefix(); + if (items.isEmpty() && prefix.hasItemTable() && prefix.doGenerateItem(entry.material())) { + return new ArrayList<>(List.of(prefix.getItemFromTable(entry.material()))); } return items; }).stream().map(Supplier::get).collect(Collectors.toList()); } - public static ItemStack get(UnificationEntry unificationEntry, int size) { - var list = getItems(unificationEntry); + public static ItemStack get(MaterialEntry materialEntry, int size) { + var list = getItems(materialEntry); if (list.isEmpty()) return ItemStack.EMPTY; var stack = list.get(0).asItem().getDefaultInstance(); stack.setCount(size); @@ -333,17 +247,17 @@ public static ItemStack get(UnificationEntry unificationEntry, int size) { } public static ItemStack get(TagPrefix orePrefix, Material material, int stackSize) { - return get(new UnificationEntry(orePrefix, material), stackSize); + return get(new MaterialEntry(orePrefix, material), stackSize); } public static ItemStack get(TagPrefix orePrefix, Material material) { return get(orePrefix, material, 1); } - public static List getBlocks(UnificationEntry unificationEntry) { - return UNIFICATION_ENTRY_BLOCK.computeIfAbsent(unificationEntry, entry -> { + public static List getBlocks(MaterialEntry materialEntry) { + return ItemMaterialData.MATERIAL_ENTRY_BLOCK_MAP.computeIfAbsent(materialEntry, entry -> { var blocks = new ArrayList>(); - for (TagKey tag : Arrays.stream(getTags(unificationEntry.tagPrefix, unificationEntry.material)) + for (TagKey tag : Arrays.stream(getTags(materialEntry.tagPrefix(), materialEntry.material())) .map(itemTagKey -> TagKey.create(Registries.BLOCK, itemTagKey.location())).toList()) { for (Holder itemHolder : BuiltInRegistries.BLOCK.getTagOrEmpty(tag)) { blocks.add(itemHolder::value); @@ -353,14 +267,14 @@ public static List getBlocks(UnificationEntry unificationEntry) { }).stream().map(Supplier::get).collect(Collectors.toList()); } - public static Block getBlock(UnificationEntry unificationEntry) { - var list = getBlocks(unificationEntry); + public static Block getBlock(MaterialEntry materialEntry) { + var list = getBlocks(materialEntry); if (list.isEmpty()) return null; return list.get(0); } public static Block getBlock(TagPrefix orePrefix, Material material) { - return getBlock(new UnificationEntry(orePrefix, material)); + return getBlock(new MaterialEntry(orePrefix, material)); } @Nullable @@ -386,33 +300,14 @@ public static TagKey[] getTags(TagPrefix orePrefix, @NotNull Material mate } public static List> getAllItemInfos() { - return ITEM_MATERIAL_INFO.entrySet().stream() + return ItemMaterialData.ITEM_MATERIAL_INFO.entrySet().stream() .map(entry -> new AbstractMap.SimpleEntry<>(new ItemStack(entry.getKey().asItem()), entry.getValue())) .collect(Collectors.toList()); } public static Optional getOrePrefix(BlockState state) { - return ORES_INVERSE.entrySet().stream().filter(entry -> entry.getKey().get().equals(state)) + return ItemMaterialData.ORES_INVERSE.entrySet().stream().filter(entry -> entry.getKey().get().equals(state)) .map(Map.Entry::getValue).findFirst(); } - public static void reinitializeUnification() { - // Clear old data - ChemicalHelper.UNIFICATION_ENTRY_ITEM.clear(); - ChemicalHelper.UNIFICATION_ENTRY_BLOCK.clear(); - ChemicalHelper.ITEM_UNIFICATION_ENTRY.clear(); - ChemicalHelper.FLUID_MATERIAL.clear(); - - // Load new data - TagsHandler.initExtraUnificationEntries(); - for (TagPrefix prefix : TagPrefix.values()) { - prefix.getIgnored().forEach((mat, items) -> { - if (items.length > 0) { - ChemicalHelper.registerUnificationItems(prefix, mat, items); - } - }); - } - GTItems.toUnify.forEach(ChemicalHelper::registerUnificationItems); - WoodMachineRecipes.registerUnificationInfo(); - } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java index f63a34822f..85363f029b 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java @@ -3,7 +3,7 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.GTBucketItem; @@ -191,7 +191,7 @@ public static Material getValidHazardMaterial(ItemStack item) { isFluid = true; } } else if (ConfigHolder.INSTANCE.gameplay.universalHazards) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(item.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(item.getItem()); if (entry != null && entry.material != null) { material = entry.material; prefix = entry.tagPrefix; diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java index d388f25739..6305f3dc82 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java @@ -22,7 +22,7 @@ public ItemMaterialInfo(List materials) { * Returns the first MaterialStack in the "materials" list */ public MaterialStack getMaterial() { - return materials.size() == 0 ? null : materials.get(0); + return materials.isEmpty() ? null : materials.get(0); } /** @@ -48,6 +48,6 @@ public int hashCode() { @Override public String toString() { - return materials.size() == 0 ? "" : materials.get(0).material().toCamelCaseString(); + return materials.isEmpty() ? "" : materials.get(0).material().toCamelCaseString(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/UnificationEntry.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java similarity index 53% rename from src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/UnificationEntry.java rename to src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java index 4aadc9675b..027a13fb4d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/UnificationEntry.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java @@ -7,20 +7,10 @@ import java.util.Objects; -public class UnificationEntry { +public record MaterialEntry(TagPrefix tagPrefix, @Nullable Material material) { - public final TagPrefix tagPrefix; - @Nullable - public final Material material; - - public UnificationEntry(TagPrefix tagPrefix, @Nullable Material material) { - this.tagPrefix = tagPrefix; - this.material = material; - } - - public UnificationEntry(TagPrefix tagPrefix) { - this.tagPrefix = tagPrefix; - this.material = null; + public MaterialEntry(TagPrefix tagPrefix) { + this(tagPrefix, null); } @Override @@ -28,7 +18,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - UnificationEntry that = (UnificationEntry) o; + MaterialEntry that = (MaterialEntry) o; if (tagPrefix != that.tagPrefix) return false; return Objects.equals(material, that.material); @@ -46,21 +36,5 @@ public String toString() { return (tagPrefix != null ? tagPrefix.name : "") + (material != null ? material.toCamelCaseString() : ""); } - public static final UnificationEntry EmptyMapMarkerEntry = new UnificationEntry(null) { - - @Override - public boolean equals(Object o) { - return this == o; - } - - @Override - public int hashCode() { - return 0; - } - - @Override - public String toString() { - return "EMPTY UNIFICATION ENTRY"; - } - }; + public static final MaterialEntry NullEntry = new MaterialEntry(null, null); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java b/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java index 39cdf1d166..7bb23dde3d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java @@ -6,6 +6,7 @@ import com.gregtechceu.gtceu.api.addon.AddonFinder; import com.gregtechceu.gtceu.api.addon.IGTAddon; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconType; @@ -83,6 +84,8 @@ public static TagPrefix get(String name) { return PREFIXES.get(name); } + public static final TagPrefix nullPrefix = new TagPrefix("null"); + public static final TagPrefix ore = oreTagPrefix("stone", BlockTags.MINEABLE_WITH_PICKAXE) .langValue("%s Ore") .registerOre( @@ -1131,7 +1134,7 @@ public boolean isIgnored(Material material) { public final void setIgnored(Material material, Supplier... items) { ignoredMaterials.put(material, items); if (items.length > 0) { - ChemicalHelper.registerUnificationItems(this, material, items); + ItemMaterialData.registerMaterialInfoItems(this, material, items); } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java b/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java index 5464c344d2..3b2b22ff28 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java @@ -57,7 +57,7 @@ public List getAllMaterials() { .sorted(Comparator.comparingInt(Map.Entry::getValue)) .map(Map.Entry::getKey) .map(either -> either.map(state -> { - var matStack = ChemicalHelper.getMaterial(state.getBlock()); + var matStack = ChemicalHelper.getMaterialStack(state.getBlock()); return matStack == null ? null : matStack.material(); }, Function.identity())) .filter(Objects::nonNull) @@ -71,12 +71,12 @@ public List getAllChances() { public List> getValidMaterialsChances() { return getAllEntries().stream() .filter(entry -> entry.getKey() - .map(state -> ChemicalHelper.getMaterial(state.getBlock()) != null ? - ChemicalHelper.getMaterial(state.getBlock()).material() : null, Function.identity()) != + .map(state -> ChemicalHelper.getMaterialStack(state.getBlock()) != null ? + ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, Function.identity()) != null) .map(entry -> Map.entry(entry.getValue(), entry.getKey() - .map(state -> ChemicalHelper.getMaterial(state.getBlock()) != null ? - ChemicalHelper.getMaterial(state.getBlock()).material() : null, Function.identity()))) + .map(state -> ChemicalHelper.getMaterialStack(state.getBlock()) != null ? + ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, Function.identity()))) .collect(Collectors.toList()); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java index ab4f3a5079..7f8d5a9232 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java @@ -3,7 +3,7 @@ import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.data.worldgen.bedrockfluid.BedrockFluidVeinSavedData; @@ -70,7 +70,7 @@ public void scan(String[][][] storage, LevelChunk chunk) { if (state.is(oreTag)) { var itemName = BLOCK_CACHE.computeIfAbsent(state, blockState -> { var name = BuiltInRegistries.BLOCK.getKey(blockState.getBlock()).toString(); - var entry = ChemicalHelper.getUnificationEntry(blockState.getBlock()); + var entry = ChemicalHelper.getMaterialEntry(blockState.getBlock()); if (entry != null && entry.material != null) { name = "material_" + entry.material.toString(); } @@ -102,7 +102,7 @@ public IGuiTexture getItemIcon(String item) { if (mat != null) { var list = new ArrayList(); for (TagPrefix oreTag : TagPrefix.ORES.keySet()) { - for (var block : ChemicalHelper.getBlocks(new UnificationEntry(oreTag, mat))) { + for (var block : ChemicalHelper.getBlocks(new MaterialEntry(oreTag, mat))) { list.add(new ItemStack(block)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java b/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java index d6bb85a263..e970de7f1b 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java +++ b/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java @@ -8,7 +8,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.gui.GuiTextures; import com.gregtechceu.gtceu.api.item.capability.ElectricItem; @@ -427,7 +427,7 @@ default int getTotalHarvestLevel(ItemStack stack) { if (repair.getItem() instanceof IGTTool gtTool) { return getToolMaterial(toRepair) == gtTool.getToolMaterial(repair); } - UnificationEntry entry = ChemicalHelper.getUnificationEntry(repair.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(repair.getItem()); if (entry == null || entry.material == null) return false; if (entry.material == getToolMaterial(toRepair)) { // special case wood to allow Wood Planks diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java index a07a2a6983..3def4ea415 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java @@ -2,7 +2,7 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.capability.recipe.*; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.gui.SteamTexture; import com.gregtechceu.gtceu.api.recipe.category.GTRecipeCategory; import com.gregtechceu.gtceu.api.recipe.chance.boost.ChanceBoostFunction; @@ -275,7 +275,7 @@ public GTRecipeBuilder recipeBuilder(String id, Object... append) { return recipeBuilder(GTCEu.id(id), append); } - public GTRecipeBuilder recipeBuilder(UnificationEntry entry, Object... append) { + public GTRecipeBuilder recipeBuilder(MaterialEntry entry, Object... append) { return recipeBuilder(GTCEu.id(entry.tagPrefix + (entry.material == null ? "" : "_" + entry.material.getName())), append); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java index 05b223547c..295bb83a9d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java @@ -4,7 +4,7 @@ import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; import com.gregtechceu.gtceu.api.capability.IElectricItem; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.IGTTool; import com.gregtechceu.gtceu.api.item.tool.GTToolType; @@ -63,18 +63,18 @@ public boolean matches(CraftingContainer inv, @NotNull Level level) { ItemStack stack2 = list.get(1); IGTTool tool; - UnificationEntry toolHead; + MaterialEntry toolHead; if (stack1.getItem() instanceof IGTTool) { tool = (IGTTool) stack1.getItem(); - toolHead = ChemicalHelper.getUnificationEntry(stack2.getItem()); + toolHead = ChemicalHelper.getMaterialEntry(stack2.getItem()); } else if (stack2.getItem() instanceof IGTTool) { tool = (IGTTool) stack2.getItem(); - toolHead = ChemicalHelper.getUnificationEntry(stack1.getItem()); + toolHead = ChemicalHelper.getMaterialEntry(stack1.getItem()); } else return false; if (!tool.isElectric()) return false; if (toolHead == null) return false; - GTToolType[] output = TOOL_HEAD_TO_TOOL_MAP.get(toolHead.tagPrefix); + GTToolType[] output = TOOL_HEAD_TO_TOOL_MAP.get(toolHead.tagPrefix()); return output != null && output[tool.getElectricTier()] != null; } return false; @@ -96,15 +96,15 @@ public boolean matches(CraftingContainer inv, @NotNull Level level) { ItemStack first = list.get(0), second = list.get(1); IGTTool tool; - UnificationEntry toolHead; + MaterialEntry toolHead; ItemStack realTool; if (first.getItem() instanceof IGTTool) { tool = (IGTTool) first.getItem(); - toolHead = ChemicalHelper.getUnificationEntry(second.getItem()); + toolHead = ChemicalHelper.getMaterialEntry(second.getItem()); realTool = first; } else if (second.getItem() instanceof IGTTool) { tool = (IGTTool) second.getItem(); - toolHead = ChemicalHelper.getUnificationEntry(first.getItem()); + toolHead = ChemicalHelper.getMaterialEntry(first.getItem()); realTool = second; } else return ItemStack.EMPTY; if (!tool.isElectric()) return ItemStack.EMPTY; diff --git a/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java index 3fe75aeafa..432c75d12a 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java @@ -44,7 +44,7 @@ public class TooltipsHandler { public static void appendTooltips(ItemStack stack, TooltipFlag flag, List tooltips) { // Formula - var unificationEntry = ChemicalHelper.getUnificationEntry(stack.getItem()); + var unificationEntry = ChemicalHelper.getMaterialEntry(stack.getItem()); if (unificationEntry != null && unificationEntry.material != null) { if (unificationEntry.material.getChemicalFormula() != null && !unificationEntry.material.getChemicalFormula().isEmpty()) diff --git a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java index 6c393e4585..41408b5a5b 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java @@ -1,5 +1,6 @@ package com.gregtechceu.gtceu.client.renderer; +import com.gregtechceu.gtceu.api.block.MaterialBlock; import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; import com.gregtechceu.gtceu.api.capability.ICoverable; @@ -9,6 +10,7 @@ import com.gregtechceu.gtceu.api.item.tool.IToolGridHighlight; import com.gregtechceu.gtceu.api.item.tool.ToolHelper; import com.gregtechceu.gtceu.api.pipenet.IPipeType; +import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.item.CoverPlaceBehavior; import com.gregtechceu.gtceu.common.item.tool.rotation.CustomBlockRotations; import com.gregtechceu.gtceu.core.mixins.GuiGraphicsAccessor; @@ -39,6 +41,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import org.joml.Matrix4f; import org.joml.Quaternionf; +import org.joml.Vector3d; import org.joml.Vector3f; import java.util.Set; @@ -64,6 +67,44 @@ public static void renderBlockHighlight(PoseStack poseStack, Camera camera, Bloc Set toolType = ToolHelper.getToolTypes(held); BlockEntity blockEntity = level.getBlockEntity(blockPos); + var block = level.getBlockState(blockPos); + + if(block.getBlock() instanceof MaterialBlock) { + rColour = gColour = 0; + bColour = 0; + alpha = 0.55f; + Vec3 pos = camera.getPosition(); + poseStack.pushPose(); + poseStack.translate(-pos.x, -pos.y, -pos.z); + var buffer = multiBufferSource.getBuffer(RenderType.lines()); + RenderSystem.lineWidth(3); + RenderSystem.disableDepthTest(); + RenderSystem.enableBlend(); + var mat = poseStack.last().pose(); + var box = new AABB(blockPos); + float minX = (float)box.minX, minY = (float)box.minY, minZ = (float)box.minZ, + maxX = (float)box.maxX, maxY = (float)box.maxY, maxZ = (float)box.maxZ; + drawLine(mat, buffer, new Vector3f(minX, minY, minZ), new Vector3f(maxX, minY, minZ)); // bottom face + drawLine(mat, buffer, new Vector3f(maxX, minY, minZ), new Vector3f(maxX, minY, maxZ)); + drawLine(mat, buffer, new Vector3f(maxX, minY, maxZ), new Vector3f(minX, minY, maxZ)); + drawLine(mat, buffer, new Vector3f(minX, minY, maxZ), new Vector3f(minX, minY, minZ)); + + drawLine(mat, buffer, new Vector3f(minX, minY, minZ), new Vector3f(minX, maxY, minZ)); // posts + drawLine(mat, buffer, new Vector3f(maxX, minY, minZ), new Vector3f(maxX, maxY, minZ)); + drawLine(mat, buffer, new Vector3f(maxX, minY, maxZ), new Vector3f(maxX, maxY, maxZ)); + drawLine(mat, buffer, new Vector3f(minX, minY, maxZ), new Vector3f(minX, maxY, maxZ)); + + drawLine(mat, buffer, new Vector3f(minX, maxY, minZ), new Vector3f(maxX, maxY, minZ)); // posts + drawLine(mat, buffer, new Vector3f(maxX, maxY, minZ), new Vector3f(maxX, maxY, maxZ)); + drawLine(mat, buffer, new Vector3f(maxX, maxY, maxZ), new Vector3f(minX, maxY, maxZ)); + drawLine(mat, buffer, new Vector3f(minX, maxY, maxZ), new Vector3f(minX, maxY, minZ)); + + RenderSystem.disableBlend(); + RenderSystem.enableDepthTest(); + poseStack.popPose(); + return; + } + // draw tool grid highlight if ((!toolType.isEmpty()) || (held.isEmpty() && player.isShiftKeyDown())) { IToolGridHighlight gridHighlight = null; @@ -165,11 +206,13 @@ public ResourceTexture sideTips(Player player, BlockPos pos, BlockState state, private static float rColour; private static float gColour; private static float bColour; + private static float alpha; private static void drawGridOverlays(PoseStack poseStack, VertexConsumer buffer, BlockHitResult blockHitResult, Function test) { rColour = gColour = 0.2F + (float) Math.sin((float) (System.currentTimeMillis() % (Mth.PI * 800)) / 800) / 2; bColour = 1f; + alpha = 1.0f; var blockPos = blockHitResult.getBlockPos(); var facing = blockHitResult.getDirection(); var box = new AABB(blockPos); @@ -363,9 +406,9 @@ private static void drawGridOverlays(PoseStack poseStack, VertexConsumer buffer, private static void drawLine(Matrix4f mat, VertexConsumer buffer, Vector3f from, Vector3f to) { var normal = new Vector3f(from).sub(to); - buffer.vertex(mat, from.x, from.y, from.z).color(rColour, gColour, bColour, 1f) + buffer.vertex(mat, from.x, from.y, from.z).color(rColour, gColour, bColour, alpha) .normal(normal.x, normal.y, normal.z).endVertex(); - buffer.vertex(mat, to.x, to.y, to.z).color(rColour, gColour, bColour, 1f).normal(normal.x, normal.y, normal.z) + buffer.vertex(mat, to.x, to.y, to.z).color(rColour, gColour, bColour, alpha).normal(normal.x, normal.y, normal.z) .endVertex(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java index 4504eac441..cd4a39dd03 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java +++ b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java @@ -6,7 +6,7 @@ import com.gregtechceu.gtceu.api.addon.AddonFinder; import com.gregtechceu.gtceu.api.addon.IGTAddon; import com.gregtechceu.gtceu.api.capability.forge.GTCapability; -import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialEvent; import com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialRegistryEvent; import com.gregtechceu.gtceu.api.data.chemical.material.event.PostMaterialEvent; @@ -268,7 +268,7 @@ public void registerPackFinders(AddPackFindersEvent event) { // Register recipes & unification data again long startTime = System.currentTimeMillis(); - ChemicalHelper.reinitializeUnification(); + ItemMaterialData.reinitializeMaterialData(); GTRecipes.recipeRemoval(); GTRecipes.recipeAddition(GTDynamicDataPack::addRecipe); // Initialize dungeon loot additions diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java index 5f752c88d7..64fa5ed8eb 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java @@ -6,11 +6,11 @@ import com.gregtechceu.gtceu.api.addon.AddonFinder; import com.gregtechceu.gtceu.api.addon.events.MaterialCasingCollectionEvent; import com.gregtechceu.gtceu.api.block.*; -import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.registry.MaterialRegistry; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.item.*; @@ -145,7 +145,7 @@ private static void generateMaterialBlocks() { .block(tagPrefix.idPattern().formatted(material.getName()), properties -> new MaterialBlock(properties, tagPrefix, material)) .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> tagPrefix.blockProperties().properties().apply(p).noLootTable()) + .properties(p -> tagPrefix.blockProperties().properties().apply(p).isViewBlocking(tagPrefix == TagPrefix.frameGt ? Blocks::never : Blocks::always).noLootTable()) .transform(unificationBlock(tagPrefix, material)) .addLayer(tagPrefix.blockProperties().renderType()) .setData(ProviderType.BLOCKSTATE, NonNullBiConsumer.noop()) @@ -1663,9 +1663,9 @@ S2 extends BlockBuilder> NonNullFunction unificationBlock(@NotNull return builder -> { builder.onRegister(block -> { Supplier blockSupplier = SupplierMemoizer.memoizeBlockSupplier(() -> block); - UnificationEntry entry = new UnificationEntry(tagPrefix, mat); + MaterialEntry entry = new MaterialEntry(tagPrefix, mat); GTItems.toUnify.put(entry, blockSupplier); - ChemicalHelper.registerUnificationItems(entry, blockSupplier); + ItemMaterialData.registerMaterialInfoItems(entry, blockSupplier); }); return builder; }; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java index 51606005cb..3e159f9ce1 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java @@ -5,6 +5,7 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.cover.filter.*; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterial; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterials; import com.gregtechceu.gtceu.api.data.chemical.material.Material; @@ -12,7 +13,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.registry.MaterialRegistry; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.gui.misc.ProspectorMode; @@ -101,7 +102,7 @@ public class GTItems { // ***** Material Items ******// ////////////////////////////////////// - public static final Map> toUnify = new HashMap<>(); + public static final Map> toUnify = new HashMap<>(); public static final Map purifyMap = new HashMap<>(); static { @@ -2681,7 +2682,7 @@ public static void init() { } public static NonNullConsumer materialInfo(ItemMaterialInfo materialInfo) { - return item -> ChemicalHelper.registerMaterialInfo(item, materialInfo); + return item -> ItemMaterialData.registerMaterialInfo(item, materialInfo); } public static > NonNullFunction unificationItem(@NotNull T return builder -> { builder.onRegister(item -> { Supplier supplier = SupplierMemoizer.memoize(() -> item); - UnificationEntry entry = new UnificationEntry(tagPrefix, mat); + MaterialEntry entry = new MaterialEntry(tagPrefix, mat); toUnify.put(entry, supplier); - ChemicalHelper.registerUnificationItems(entry, supplier); + ItemMaterialData.registerMaterialInfoItems(entry, supplier); }); return builder; }; diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/steam/SteamSolidBoilerMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/steam/SteamSolidBoilerMachine.java index 8c27fa4d94..65a21dcbed 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/steam/SteamSolidBoilerMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/steam/SteamSolidBoilerMachine.java @@ -115,7 +115,7 @@ public void afterWorking() { public static ItemStack getBurningFuelRemainder(ItemStack fuelStack) { float remainderChance; ItemStack remainder; - var materialStack = ChemicalHelper.getMaterial(fuelStack); + var materialStack = ChemicalHelper.getMaterialStack(fuelStack); if (materialStack == null) return ItemStack.EMPTY; else if (materialStack.material() == GTMaterials.Charcoal) { diff --git a/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java b/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java index 2072bda138..704533c7c2 100644 --- a/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java +++ b/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java @@ -3,6 +3,7 @@ import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; @@ -60,7 +61,7 @@ public class MixinHelpers { public static void generateGTDynamicTags(Map> tagMap, Registry registry) { if (registry == BuiltInRegistries.ITEM) { - ChemicalHelper.UNIFICATION_ENTRY_ITEM.forEach((entry, itemLikes) -> { + ItemMaterialData.MATERIAL_ENTRY_ITEM_MAP.forEach((entry, itemLikes) -> { if (itemLikes.isEmpty()) return; var material = entry.material; if (material != null) { @@ -124,7 +125,7 @@ public static void generateGTDynamicTags(Map (Integer) data[0], data -> data[1]))); WIRE_QUAD = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Lead) }, - { 1, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Tungsten) }, - { 6, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Lead) }, + { 1, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Tungsten) }, + { 6, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); WIRE_OCT = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Lead) }, - { 1, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Tungsten) }, - { 6, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Lead) }, + { 1, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Tungsten) }, + { 6, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); WIRE_HEX = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Lead) }, - { 1, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Tungsten) }, - { 6, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.wireGtHex, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Lead) }, + { 1, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Tungsten) }, + { 6, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.wireGtHex, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.RedAlloy) }, - { 1, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Platinum) }, - { 6, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.RedAlloy) }, + { 1, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Platinum) }, + { 6, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_DOUBLE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.RedAlloy) }, - { 1, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Platinum) }, - { 6, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.RedAlloy) }, + { 1, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Platinum) }, + { 6, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_QUAD = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.RedAlloy) }, - { 1, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Platinum) }, - { 6, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.RedAlloy) }, + { 1, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Platinum) }, + { 6, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_OCT = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.RedAlloy) }, - { 1, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Platinum) }, - { 6, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.RedAlloy) }, + { 1, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Platinum) }, + { 6, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_HEX = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.RedAlloy) }, - { 1, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Platinum) }, - { 6, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.RedAlloy) }, + { 1, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Platinum) }, + { 6, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_TIER_UP = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold) }, - { 3, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium) }, - { 4, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Platinum) }, - { 5, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.NiobiumTitanium) }, - { 6, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.VanadiumGallium) }, - { 7, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate) }, - { 8, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold) }, + { 3, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium) }, + { 4, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Platinum) }, + { 5, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.NiobiumTitanium) }, + { 6, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.VanadiumGallium) }, + { 7, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate) }, + { 8, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_TIER_UP_DOUBLE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Gold) }, - { 3, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Aluminium) }, - { 4, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Platinum) }, - { 5, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.NiobiumTitanium) }, - { 6, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.VanadiumGallium) }, - { 7, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.YttriumBariumCuprate) }, - { 8, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Gold) }, + { 3, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Aluminium) }, + { 4, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Platinum) }, + { 5, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.NiobiumTitanium) }, + { 6, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.VanadiumGallium) }, + { 7, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.YttriumBariumCuprate) }, + { 8, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtDouble, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_TIER_UP_QUAD = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Gold) }, - { 3, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Aluminium) }, - { 4, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Platinum) }, - { 5, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.NiobiumTitanium) }, - { 6, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.VanadiumGallium) }, - { 7, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.YttriumBariumCuprate) }, - { 8, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Gold) }, + { 3, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Aluminium) }, + { 4, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Platinum) }, + { 5, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.NiobiumTitanium) }, + { 6, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.VanadiumGallium) }, + { 7, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.YttriumBariumCuprate) }, + { 8, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_TIER_UP_OCT = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Gold) }, - { 3, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Aluminium) }, - { 4, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Platinum) }, - { 5, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.NiobiumTitanium) }, - { 6, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.VanadiumGallium) }, - { 7, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.YttriumBariumCuprate) }, - { 8, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Gold) }, + { 3, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Aluminium) }, + { 4, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Platinum) }, + { 5, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.NiobiumTitanium) }, + { 6, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.VanadiumGallium) }, + { 7, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.YttriumBariumCuprate) }, + { 8, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); CABLE_TIER_UP_HEX = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Gold) }, - { 3, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Aluminium) }, - { 4, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Platinum) }, - { 5, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.NiobiumTitanium) }, - { 6, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.VanadiumGallium) }, - { 7, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.YttriumBariumCuprate) }, - { 8, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, - { FALLBACK, new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Gold) }, + { 3, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Aluminium) }, + { 4, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Platinum) }, + { 5, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.NiobiumTitanium) }, + { 6, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.VanadiumGallium) }, + { 7, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.YttriumBariumCuprate) }, + { 8, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, + { FALLBACK, new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -428,42 +428,42 @@ public static void initializeComponents() { PIPE_NORMAL = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze) }, - { 1, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze) }, - { 2, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel) }, - { 3, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.StainlessSteel) }, - { 4, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium) }, - { 5, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Iridium) }, - { 8, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Naquadah) }, - { FALLBACK, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Naquadah) }, + { 0, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze) }, + { 1, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze) }, + { 2, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel) }, + { 3, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.StainlessSteel) }, + { 4, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium) }, + { 5, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Iridium) }, + { 8, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Naquadah) }, + { FALLBACK, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Naquadah) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); PIPE_LARGE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Bronze) }, - { 1, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Bronze) }, - { 2, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel) }, - { 3, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel) }, - { 4, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Titanium) }, - { 5, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Ultimet) }, - { 8, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Naquadah) }, - { FALLBACK, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Neutronium) }, + { 0, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Bronze) }, + { 1, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Bronze) }, + { 2, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel) }, + { 3, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel) }, + { 4, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Titanium) }, + { 5, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Ultimet) }, + { 8, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Naquadah) }, + { FALLBACK, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Neutronium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); PIPE_NONUPLE = new Component(Stream.of(new Object[][] { - { 4, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Titanium) }, - { 5, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Iridium) }, - { 8, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Naquadah) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Neutronium) }, + { 4, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Titanium) }, + { 5, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Iridium) }, + { 8, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Naquadah) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.pipeNonupleFluid, GTMaterials.Neutronium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -490,32 +490,32 @@ public static void initializeComponents() { PLATE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, - { 1, new UnificationEntry(TagPrefix.plate, GTMaterials.Steel) }, - { 2, new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium) }, - { 3, new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel) }, - { 4, new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium) }, - { 5, new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium) }, - { 7, new UnificationEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy) }, - { 8, new UnificationEntry(TagPrefix.plate, GTMaterials.Darmstadtium) }, - { 9, new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium) }, - { FALLBACK, new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium) }, + { 0, new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, + { 1, new MaterialEntry(TagPrefix.plate, GTMaterials.Steel) }, + { 2, new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium) }, + { 3, new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel) }, + { 4, new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium) }, + { 5, new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium) }, + { 7, new MaterialEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy) }, + { 8, new MaterialEntry(TagPrefix.plate, GTMaterials.Darmstadtium) }, + { 9, new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium) }, + { FALLBACK, new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); HULL_PLATE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.plate, GTMaterials.Wood) }, - { 1, new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, - { 2, new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, - { 3, new UnificationEntry(TagPrefix.plate, GTMaterials.Polyethylene) }, - { 4, new UnificationEntry(TagPrefix.plate, GTMaterials.Polyethylene) }, - { 5, new UnificationEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene) }, - { 6, new UnificationEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene) }, - { 7, new UnificationEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, - { 8, new UnificationEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, + { 0, new MaterialEntry(TagPrefix.plate, GTMaterials.Wood) }, + { 1, new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, + { 2, new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron) }, + { 3, new MaterialEntry(TagPrefix.plate, GTMaterials.Polyethylene) }, + { 4, new MaterialEntry(TagPrefix.plate, GTMaterials.Polyethylene) }, + { 5, new MaterialEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene) }, + { 6, new MaterialEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene) }, + { 7, new MaterialEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, + { 8, new MaterialEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.plate, GTMaterials.Polybenzimidazole) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -545,16 +545,16 @@ public static void initializeComponents() { ROTOR = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.rotor, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.rotor, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.rotor, GTMaterials.Bronze) }, - { 3, new UnificationEntry(TagPrefix.rotor, GTMaterials.Steel) }, - { 4, new UnificationEntry(TagPrefix.rotor, GTMaterials.StainlessSteel) }, - { 5, new UnificationEntry(TagPrefix.rotor, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.rotor, GTMaterials.RhodiumPlatedPalladium) }, - { 7, new UnificationEntry(TagPrefix.rotor, GTMaterials.NaquadahAlloy) }, - { 8, new UnificationEntry(TagPrefix.rotor, GTMaterials.Darmstadtium) }, - { FALLBACK, new UnificationEntry(TagPrefix.rotor, GTMaterials.Darmstadtium) }, + { 0, new MaterialEntry(TagPrefix.rotor, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.rotor, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.rotor, GTMaterials.Bronze) }, + { 3, new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel) }, + { 4, new MaterialEntry(TagPrefix.rotor, GTMaterials.StainlessSteel) }, + { 5, new MaterialEntry(TagPrefix.rotor, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.rotor, GTMaterials.RhodiumPlatedPalladium) }, + { 7, new MaterialEntry(TagPrefix.rotor, GTMaterials.NaquadahAlloy) }, + { 8, new MaterialEntry(TagPrefix.rotor, GTMaterials.Darmstadtium) }, + { FALLBACK, new MaterialEntry(TagPrefix.rotor, GTMaterials.Darmstadtium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -584,9 +584,9 @@ public static void initializeComponents() { GRINDER = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond) }, - { 1, new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond) }, - { 2, new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond) }, + { 0, new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond) }, + { 1, new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond) }, + { 2, new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond) }, { 3, GTItems.COMPONENT_GRINDER_DIAMOND.asStack() }, { 4, GTItems.COMPONENT_GRINDER_DIAMOND.asStack() }, { 5, GTItems.COMPONENT_GRINDER_TUNGSTEN.asStack() }, @@ -596,22 +596,22 @@ public static void initializeComponents() { SAWBLADE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Bronze) }, - { 1, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.CobaltBrass) }, - { 2, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.VanadiumSteel) }, - { 3, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.RedSteel) }, - { 4, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Ultimet) }, - { 5, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.TungstenCarbide) }, - { 6, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.HSSE) }, - { 7, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.NaquadahAlloy) }, - { 8, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Duranium) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Duranium) }, + { 0, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Bronze) }, + { 1, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.CobaltBrass) }, + { 2, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.VanadiumSteel) }, + { 3, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.RedSteel) }, + { 4, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Ultimet) }, + { 5, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.TungstenCarbide) }, + { 6, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.HSSE) }, + { 7, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.NaquadahAlloy) }, + { 8, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Duranium) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.toolHeadBuzzSaw, GTMaterials.Duranium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); DIAMOND = new Component(Stream.of(new Object[][] { - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -712,74 +712,74 @@ public static void initializeComponents() { COIL_HEATING = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, - { 1, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Cupronickel) }, - { 3, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Kanthal) }, - { 4, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Nichrome) }, - { 5, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.RTMAlloy) }, - { 6, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.HSSG) }, - { 7, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Naquadah) }, - { 8, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.NaquadahAlloy) }, - { FALLBACK, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Trinium) }, + { 0, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, + { 1, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Cupronickel) }, + { 3, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Kanthal) }, + { 4, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Nichrome) }, + { 5, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.RTMAlloy) }, + { 6, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.HSSG) }, + { 7, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Naquadah) }, + { 8, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.NaquadahAlloy) }, + { FALLBACK, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Trinium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); COIL_HEATING_DOUBLE = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, - { 1, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Cupronickel) }, - { 3, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Kanthal) }, - { 4, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Nichrome) }, - { 5, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.RTMAlloy) }, - { 6, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.HSSG) }, - { 7, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Naquadah) }, - { 8, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.NaquadahAlloy) }, - { FALLBACK, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Trinium) }, + { 0, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, + { 1, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Cupronickel) }, + { 3, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Kanthal) }, + { 4, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Nichrome) }, + { 5, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.RTMAlloy) }, + { 6, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.HSSG) }, + { 7, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Naquadah) }, + { 8, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.NaquadahAlloy) }, + { FALLBACK, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Trinium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); COIL_ELECTRIC = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.Tin) }, - { 1, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Silver) }, - { 4, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Steel) }, - { 5, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Graphene) }, - { 6, new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.NiobiumNitride) }, - { 7, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.wireGtOctal, GTMaterials.YttriumBariumCuprate) }, + { 0, new MaterialEntry(TagPrefix.wireGtSingle, GTMaterials.Tin) }, + { 1, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Silver) }, + { 4, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Steel) }, + { 5, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Graphene) }, + { 6, new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.NiobiumNitride) }, + { 7, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.wireGtOctal, GTMaterials.YttriumBariumCuprate) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); STICK_MAGNETIC = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.rod, GTMaterials.IronMagnetic) }, - { 1, new UnificationEntry(TagPrefix.rod, GTMaterials.IronMagnetic) }, - { 2, new UnificationEntry(TagPrefix.rod, GTMaterials.SteelMagnetic) }, - { 3, new UnificationEntry(TagPrefix.rod, GTMaterials.SteelMagnetic) }, - { 4, new UnificationEntry(TagPrefix.rod, GTMaterials.NeodymiumMagnetic) }, - { 5, new UnificationEntry(TagPrefix.rod, GTMaterials.NeodymiumMagnetic) }, - { 6, new UnificationEntry(TagPrefix.rodLong, GTMaterials.NeodymiumMagnetic) }, - { 7, new UnificationEntry(TagPrefix.rodLong, GTMaterials.NeodymiumMagnetic) }, - { 8, new UnificationEntry(TagPrefix.block, GTMaterials.NeodymiumMagnetic) }, + { 0, new MaterialEntry(TagPrefix.rod, GTMaterials.IronMagnetic) }, + { 1, new MaterialEntry(TagPrefix.rod, GTMaterials.IronMagnetic) }, + { 2, new MaterialEntry(TagPrefix.rod, GTMaterials.SteelMagnetic) }, + { 3, new MaterialEntry(TagPrefix.rod, GTMaterials.SteelMagnetic) }, + { 4, new MaterialEntry(TagPrefix.rod, GTMaterials.NeodymiumMagnetic) }, + { 5, new MaterialEntry(TagPrefix.rod, GTMaterials.NeodymiumMagnetic) }, + { 6, new MaterialEntry(TagPrefix.rodLong, GTMaterials.NeodymiumMagnetic) }, + { 7, new MaterialEntry(TagPrefix.rodLong, GTMaterials.NeodymiumMagnetic) }, + { 8, new MaterialEntry(TagPrefix.block, GTMaterials.NeodymiumMagnetic) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); STICK_DISTILLATION = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.rod, GTMaterials.Blaze) }, - { 1, new UnificationEntry(TagPrefix.spring, GTMaterials.Copper) }, - { 2, new UnificationEntry(TagPrefix.spring, GTMaterials.Cupronickel) }, - { 3, new UnificationEntry(TagPrefix.spring, GTMaterials.Kanthal) }, - { 4, new UnificationEntry(TagPrefix.spring, GTMaterials.Nichrome) }, - { 5, new UnificationEntry(TagPrefix.spring, GTMaterials.RTMAlloy) }, - { 6, new UnificationEntry(TagPrefix.spring, GTMaterials.HSSG) }, - { 7, new UnificationEntry(TagPrefix.spring, GTMaterials.Naquadah) }, - { 8, new UnificationEntry(TagPrefix.spring, GTMaterials.NaquadahAlloy) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.rod, GTMaterials.Blaze) }, + { 0, new MaterialEntry(TagPrefix.rod, GTMaterials.Blaze) }, + { 1, new MaterialEntry(TagPrefix.spring, GTMaterials.Copper) }, + { 2, new MaterialEntry(TagPrefix.spring, GTMaterials.Cupronickel) }, + { 3, new MaterialEntry(TagPrefix.spring, GTMaterials.Kanthal) }, + { 4, new MaterialEntry(TagPrefix.spring, GTMaterials.Nichrome) }, + { 5, new MaterialEntry(TagPrefix.spring, GTMaterials.RTMAlloy) }, + { 6, new MaterialEntry(TagPrefix.spring, GTMaterials.HSSG) }, + { 7, new MaterialEntry(TagPrefix.spring, GTMaterials.Naquadah) }, + { 8, new MaterialEntry(TagPrefix.spring, GTMaterials.NaquadahAlloy) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.rod, GTMaterials.Blaze) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -808,22 +808,22 @@ public static void initializeComponents() { STICK_ELECTROMAGNETIC = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.rod, GTMaterials.Iron) }, - { 1, new UnificationEntry(TagPrefix.rod, GTMaterials.Iron) }, - { 2, new UnificationEntry(TagPrefix.rod, GTMaterials.Steel) }, - { 3, new UnificationEntry(TagPrefix.rod, GTMaterials.Steel) }, - { 4, new UnificationEntry(TagPrefix.rod, GTMaterials.Neodymium) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.rod, GTMaterials.VanadiumGallium) }, + { 0, new MaterialEntry(TagPrefix.rod, GTMaterials.Iron) }, + { 1, new MaterialEntry(TagPrefix.rod, GTMaterials.Iron) }, + { 2, new MaterialEntry(TagPrefix.rod, GTMaterials.Steel) }, + { 3, new MaterialEntry(TagPrefix.rod, GTMaterials.Steel) }, + { 4, new MaterialEntry(TagPrefix.rod, GTMaterials.Neodymium) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.rod, GTMaterials.VanadiumGallium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); STICK_RADIOACTIVE = new Component(Stream.of(new Object[][] { - { 4, new UnificationEntry(TagPrefix.rod, GTMaterials.Uranium235) }, - { 5, new UnificationEntry(TagPrefix.rod, GTMaterials.Plutonium241) }, - { 6, new UnificationEntry(TagPrefix.rod, GTMaterials.NaquadahEnriched) }, - { 7, new UnificationEntry(TagPrefix.rod, GTMaterials.Americium) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.rod, GTMaterials.Tritanium) }, + { 4, new MaterialEntry(TagPrefix.rod, GTMaterials.Uranium235) }, + { 5, new MaterialEntry(TagPrefix.rod, GTMaterials.Plutonium241) }, + { 6, new MaterialEntry(TagPrefix.rod, GTMaterials.NaquadahEnriched) }, + { 7, new MaterialEntry(TagPrefix.rod, GTMaterials.Americium) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.rod, GTMaterials.Tritanium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -832,13 +832,13 @@ public static void initializeComponents() { { 0, new ItemStack(Blocks.GLASS, 1) }, { 1, new ItemStack(Blocks.GLASS, 1) }, { 2, new ItemStack(Blocks.GLASS, 1) }, - { 3, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polyethylene) }, - { 4, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polyethylene) }, - { 5, new UnificationEntry(TagPrefix.pipeHugeFluid, GTMaterials.Polyethylene) }, - { 6, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polytetrafluoroethylene) }, - { 7, new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polytetrafluoroethylene) }, - { 8, new UnificationEntry(TagPrefix.pipeHugeFluid, GTMaterials.Polytetrafluoroethylene) }, - { GTValues.FALLBACK, new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polyethylene) }, + { 3, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polyethylene) }, + { 4, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polyethylene) }, + { 5, new MaterialEntry(TagPrefix.pipeHugeFluid, GTMaterials.Polyethylene) }, + { 6, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polytetrafluoroethylene) }, + { 7, new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polytetrafluoroethylene) }, + { 8, new MaterialEntry(TagPrefix.pipeHugeFluid, GTMaterials.Polytetrafluoroethylene) }, + { GTValues.FALLBACK, new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polyethylene) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -873,16 +873,16 @@ public static void initializeComponents() { SPRING = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.spring, GTMaterials.Lead) }, - { 1, new UnificationEntry(TagPrefix.spring, GTMaterials.Tin) }, - { 2, new UnificationEntry(TagPrefix.spring, GTMaterials.Copper) }, - { 3, new UnificationEntry(TagPrefix.spring, GTMaterials.Gold) }, - { 4, new UnificationEntry(TagPrefix.spring, GTMaterials.Aluminium) }, - { 5, new UnificationEntry(TagPrefix.spring, GTMaterials.Tungsten) }, - { 6, new UnificationEntry(TagPrefix.spring, GTMaterials.NiobiumTitanium) }, - { 7, new UnificationEntry(TagPrefix.spring, GTMaterials.VanadiumGallium) }, - { 8, new UnificationEntry(TagPrefix.spring, GTMaterials.YttriumBariumCuprate) }, - { 9, new UnificationEntry(TagPrefix.spring, GTMaterials.Europium) }, + { 0, new MaterialEntry(TagPrefix.spring, GTMaterials.Lead) }, + { 1, new MaterialEntry(TagPrefix.spring, GTMaterials.Tin) }, + { 2, new MaterialEntry(TagPrefix.spring, GTMaterials.Copper) }, + { 3, new MaterialEntry(TagPrefix.spring, GTMaterials.Gold) }, + { 4, new MaterialEntry(TagPrefix.spring, GTMaterials.Aluminium) }, + { 5, new MaterialEntry(TagPrefix.spring, GTMaterials.Tungsten) }, + { 6, new MaterialEntry(TagPrefix.spring, GTMaterials.NiobiumTitanium) }, + { 7, new MaterialEntry(TagPrefix.spring, GTMaterials.VanadiumGallium) }, + { 8, new MaterialEntry(TagPrefix.spring, GTMaterials.YttriumBariumCuprate) }, + { 9, new MaterialEntry(TagPrefix.spring, GTMaterials.Europium) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -913,16 +913,16 @@ public static void initializeComponents() { }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); FRAME = new Component(Stream.of(new Object[][] { - { 0, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Wood) }, - { 1, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel) }, - { 2, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Aluminium) }, - { 3, new UnificationEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel) }, - { 4, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Titanium) }, - { 5, new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel) }, - { 6, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Ruridit) }, - { 7, new UnificationEntry(TagPrefix.frameGt, GTMaterials.Iridium) }, - { 8, new UnificationEntry(TagPrefix.frameGt, GTMaterials.NaquadahAlloy) }, - { FALLBACK, new UnificationEntry(TagPrefix.frameGt, GTMaterials.NaquadahAlloy) }, + { 0, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Wood) }, + { 1, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel) }, + { 2, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Aluminium) }, + { 3, new MaterialEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel) }, + { 4, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Titanium) }, + { 5, new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel) }, + { 6, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Ruridit) }, + { 7, new MaterialEntry(TagPrefix.frameGt, GTMaterials.Iridium) }, + { 8, new MaterialEntry(TagPrefix.frameGt, GTMaterials.NaquadahAlloy) }, + { FALLBACK, new MaterialEntry(TagPrefix.frameGt, GTMaterials.NaquadahAlloy) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); MinecraftForge.EVENT_BUS.post(new CraftingComponentModificationEvent()); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java index 47b5458cdb..858e1be5b4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java @@ -1,6 +1,6 @@ package com.gregtechceu.gtceu.data.recipe; -import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.common.data.GTBlocks; @@ -16,98 +16,98 @@ public class MaterialInfoLoader { public static void init() { - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Cupronickel, M * 8), // double wire new MaterialStack(GTMaterials.Bronze, M * 2), // foil new MaterialStack(GTMaterials.TinAlloy, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_KANTHAL.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_KANTHAL.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Kanthal, M * 8), // double wire new MaterialStack(GTMaterials.Aluminium, M * 2), // foil new MaterialStack(GTMaterials.Copper, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_NICHROME.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NICHROME.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Nichrome, M * 8), // double wire new MaterialStack(GTMaterials.StainlessSteel, M * 2), // foil new MaterialStack(GTMaterials.Aluminium, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_RTMALLOY.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_RTMALLOY.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.RTMAlloy, M * 8), // double wire new MaterialStack(GTMaterials.VanadiumSteel, M * 2), // foil new MaterialStack(GTMaterials.Nichrome, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_HSSG.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_HSSG.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.HSSG, M * 8), // double wire new MaterialStack(GTMaterials.TungstenCarbide, M * 2), // foil new MaterialStack(GTMaterials.Tungsten, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_NAQUADAH.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NAQUADAH.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Naquadah, M * 8), // double wire new MaterialStack(GTMaterials.Osmium, M * 2), // foil new MaterialStack(GTMaterials.TungstenSteel, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_TRINIUM.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRINIUM.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Trinium, M * 8), // double wire new MaterialStack(GTMaterials.NaquadahEnriched, M * 2), // foil new MaterialStack(GTMaterials.Naquadah, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTBlocks.COIL_TRITANIUM.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRITANIUM.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Tritanium, M * 8), // double wire new MaterialStack(GTMaterials.Naquadria, M * 2), // foil new MaterialStack(GTMaterials.Trinium, M)) // ingot ); - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.WroughtIron, M * 8), // plate new MaterialStack(GTMaterials.RedAlloy, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[1].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[1].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Steel, M * 8), // plate new MaterialStack(GTMaterials.Tin, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[2].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[2].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Aluminium, M * 8), // plate new MaterialStack(GTMaterials.Copper, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[3].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[3].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate new MaterialStack(GTMaterials.Gold, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[4].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[4].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Titanium, M * 8), // plate new MaterialStack(GTMaterials.Aluminium, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[5].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[5].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate new MaterialStack(GTMaterials.Platinum, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[6].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[6].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.RhodiumPlatedPalladium, M * 8), // plate new MaterialStack(GTMaterials.NiobiumTitanium, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[7].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[7].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.NaquadahAlloy, M * 8), // plate new MaterialStack(GTMaterials.VanadiumGallium, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[8].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[8].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Darmstadtium, M * 8), // plate new MaterialStack(GTMaterials.YttriumBariumCuprate, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.HULL[9].getBlock(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.HULL[9].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Neutronium, M * 8), // plate new MaterialStack(GTMaterials.Europium, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate new MaterialStack(GTMaterials.Gold, M * 2), // single cable new MaterialStack(GTMaterials.Rubber, M * 4), // plate @@ -115,7 +115,7 @@ public static void init() { new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[4].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[4].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Titanium, M * 8), // plate new MaterialStack(GTMaterials.Aluminium, M * 2), // single cable new MaterialStack(GTMaterials.Rubber, M * 4), // plate @@ -123,7 +123,7 @@ public static void init() { new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[5].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[5].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate new MaterialStack(GTMaterials.Tungsten, M * 2), // single cable new MaterialStack(GTMaterials.Rubber, M * 4), // plate @@ -131,7 +131,7 @@ public static void init() { new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[3].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[3].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate new MaterialStack(GTMaterials.Gold, 3 * M), // single cable + spring new MaterialStack(GTMaterials.Rubber, M * 2), // plate @@ -139,7 +139,7 @@ public static void init() { new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[4].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[4].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Titanium, M * 8), // plate new MaterialStack(GTMaterials.Aluminium, 3 * M), // single cable + spring new MaterialStack(GTMaterials.Rubber, M * 2), // plate @@ -147,7 +147,7 @@ public static void init() { new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[5].getItem(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[5].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate new MaterialStack(GTMaterials.Tungsten, 3 * M), // single cable + spring new MaterialStack(GTMaterials.Rubber, M * 2), // plate @@ -155,655 +155,655 @@ public static void init() { new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod )); - ChemicalHelper.registerMaterialInfo(GTBlocks.PLASTCRETE.get(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTBlocks.PLASTCRETE.get(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Steel, M), // frame / 2 new MaterialStack(GTMaterials.Polyethylene, M * 3), // 6 sheets / 2 new MaterialStack(GTMaterials.Concrete, M / 2) // 1 block / 2 )); - ChemicalHelper.registerMaterialInfo(GTBlocks.CLEANROOM_GLASS.get(), new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(GTBlocks.CLEANROOM_GLASS.get(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Steel, M), // frame / 2 new MaterialStack(GTMaterials.Polyethylene, M * 3), // 6 sheets / 2 new MaterialStack(GTMaterials.Glass, M / 2) // 1 block / 2 )); - ChemicalHelper.registerMaterialInfo(Blocks.TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.WHITE_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.WHITE_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.ORANGE_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.ORANGE_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.MAGENTA_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.MAGENTA_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_BLUE_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_BLUE_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.YELLOW_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.YELLOW_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIME_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIME_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.PINK_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.PINK_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.GRAY_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.GRAY_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_GRAY_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_GRAY_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.CYAN_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.CYAN_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.PURPLE_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.PURPLE_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BLUE_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BLUE_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BROWN_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BROWN_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.GREEN_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.GREEN_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.RED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.RED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BLACK_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BLACK_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.WHITE_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.WHITE_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.ORANGE_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.ORANGE_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.MAGENTA_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.MAGENTA_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.YELLOW_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.YELLOW_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIME_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIME_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.PINK_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.PINK_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.GRAY_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.GRAY_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.CYAN_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.CYAN_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.PURPLE_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.PURPLE_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BLUE_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BLUE_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BROWN_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BROWN_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.GREEN_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.GREEN_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.RED_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.RED_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.BLACK_GLAZED_TERRACOTTA, + ItemMaterialData.registerMaterialInfo(Blocks.BLACK_GLAZED_TERRACOTTA, new ItemMaterialInfo(new MaterialStack(GTMaterials.Clay, M * 4))); - ChemicalHelper.registerMaterialInfo(GTBlocks.CASING_PRIMITIVE_BRICKS.get(), + ItemMaterialData.registerMaterialInfo(GTBlocks.CASING_PRIMITIVE_BRICKS.get(), ConfigHolder.INSTANCE.recipes.harderBrickRecipes ? new ItemMaterialInfo(new MaterialStack(GTMaterials.Fireclay, M * 6), new MaterialStack(GTMaterials.Gypsum, M * 2)) : new ItemMaterialInfo(new MaterialStack(GTMaterials.Fireclay, M * 4))); if (ConfigHolder.INSTANCE.recipes.hardWoodRecipes) { - ChemicalHelper.registerMaterialInfo(Items.ACACIA_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.ACACIA_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.BIRCH_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.BIRCH_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.JUNGLE_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.JUNGLE_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.OAK_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.OAK_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.SPRUCE_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.SPRUCE_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.DARK_OAK_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DARK_OAK_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.MANGROVE_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.MANGROVE_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.CRIMSON_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.CRIMSON_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.WARPED_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.WARPED_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.BAMBOO_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.BAMBOO_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw - ChemicalHelper.registerMaterialInfo(Items.CHERRY_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.CHERRY_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 2), new MaterialStack(GTMaterials.Iron, M / 9))); // screw } else { - ChemicalHelper.registerMaterialInfo(Items.ACACIA_DOOR, + ItemMaterialData.registerMaterialInfo(Items.ACACIA_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.BIRCH_DOOR, + ItemMaterialData.registerMaterialInfo(Items.BIRCH_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.JUNGLE_DOOR, + ItemMaterialData.registerMaterialInfo(Items.JUNGLE_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.OAK_DOOR, + ItemMaterialData.registerMaterialInfo(Items.OAK_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.SPRUCE_DOOR, + ItemMaterialData.registerMaterialInfo(Items.SPRUCE_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.DARK_OAK_DOOR, + ItemMaterialData.registerMaterialInfo(Items.DARK_OAK_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.MANGROVE_DOOR, + ItemMaterialData.registerMaterialInfo(Items.MANGROVE_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.CRIMSON_DOOR, + ItemMaterialData.registerMaterialInfo(Items.CRIMSON_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.WARPED_DOOR, + ItemMaterialData.registerMaterialInfo(Items.WARPED_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.BAMBOO_DOOR, + ItemMaterialData.registerMaterialInfo(Items.BAMBOO_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.CHERRY_DOOR, + ItemMaterialData.registerMaterialInfo(Items.CHERRY_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); } - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.OAK_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_PLANKS, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_PLANKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); if (ConfigHolder.INSTANCE.recipes.hardAdvancedIronRecipes) { - ChemicalHelper.registerMaterialInfo(Items.IRON_DOOR, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_DOOR, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 4 + (M * 3 / 16)), // 4 iron plates + 1 iron bars new MaterialStack(GTMaterials.Steel, M / 9))); // tiny steel dust } else { - ChemicalHelper.registerMaterialInfo(Items.IRON_DOOR, + ItemMaterialData.registerMaterialInfo(Items.IRON_DOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 2))); } - ChemicalHelper.registerMaterialInfo(Blocks.OAK_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_FENCE, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_FENCE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.OAK_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_FENCE_GATE, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_FENCE_GATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.OAK_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_MOSAIC_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_MOSAIC_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Items.OAK_BOAT, + ItemMaterialData.registerMaterialInfo(Items.OAK_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.BIRCH_BOAT, + ItemMaterialData.registerMaterialInfo(Items.BIRCH_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.SPRUCE_BOAT, + ItemMaterialData.registerMaterialInfo(Items.SPRUCE_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.JUNGLE_BOAT, + ItemMaterialData.registerMaterialInfo(Items.JUNGLE_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.DARK_OAK_BOAT, + ItemMaterialData.registerMaterialInfo(Items.DARK_OAK_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.ACACIA_BOAT, + ItemMaterialData.registerMaterialInfo(Items.ACACIA_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.MANGROVE_BOAT, + ItemMaterialData.registerMaterialInfo(Items.MANGROVE_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.BAMBOO_RAFT, + ItemMaterialData.registerMaterialInfo(Items.BAMBOO_RAFT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.CHERRY_BOAT, + ItemMaterialData.registerMaterialInfo(Items.CHERRY_BOAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 5))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.SANDSTONE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.SANDSTONE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.RED_SANDSTONE_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.RED_SANDSTONE_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.STONE_BRICK_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_BRICK_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, (3 * M) / 2))); // dust small - ChemicalHelper.registerMaterialInfo(Blocks.QUARTZ_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.QUARTZ_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.NetherQuartz, M * 4))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.BRICK_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.BRICK_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Brick, M * 4))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.NETHER_BRICK_STAIRS, + ItemMaterialData.registerMaterialInfo(Blocks.NETHER_BRICK_STAIRS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Netherrack, M * 4))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.STONE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.SANDSTONE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.SANDSTONE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.RED_SANDSTONE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.RED_SANDSTONE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.COBBLESTONE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.COBBLESTONE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.BRICK_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.BRICK_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Brick, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_BRICK_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_BRICK_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.NETHER_BRICK_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.NETHER_BRICK_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Netherrack, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.QUARTZ_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.QUARTZ_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.NetherQuartz, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.SMOOTH_QUARTZ_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.SMOOTH_QUARTZ_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.NetherQuartz, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.OAK_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_MOSAIC_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_MOSAIC_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_SLAB, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_SLAB, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.LEVER, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.LEVER, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M / 9), new MaterialStack(GTMaterials.Wood, 1814400L))); - ChemicalHelper.registerMaterialInfo(Blocks.OAK_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.OAK_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.BIRCH_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.BIRCH_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.SPRUCE_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.SPRUCE_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.JUNGLE_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.JUNGLE_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.DARK_OAK_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.DARK_OAK_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.ACACIA_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.ACACIA_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.MANGROVE_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.MANGROVE_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.CRIMSON_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.CRIMSON_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.WARPED_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.WARPED_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.BAMBOO_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.BAMBOO_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.CHERRY_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.CHERRY_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_BUTTON, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_BUTTON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M / 9))); - ChemicalHelper.registerMaterialInfo(Blocks.REDSTONE_TORCH, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.REDSTONE_TORCH, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M / 2), new MaterialStack(GTMaterials.Redstone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.RAIL, + ItemMaterialData.registerMaterialInfo(Blocks.RAIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 3 / 16))); - ChemicalHelper.registerMaterialInfo(Blocks.POWERED_RAIL, + ItemMaterialData.registerMaterialInfo(Blocks.POWERED_RAIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.DETECTOR_RAIL, + ItemMaterialData.registerMaterialInfo(Blocks.DETECTOR_RAIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.ACTIVATOR_RAIL, + ItemMaterialData.registerMaterialInfo(Blocks.ACTIVATOR_RAIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M / 2))); if (ConfigHolder.INSTANCE.recipes.hardRedstoneRecipes) { // ChemicalHelper.registerMaterialInfo(new ItemStack(Blocks.WOODEN_PRESSURE_PLATE, 1, W), new // ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M), new MaterialStack(GTMaterials.Iron, M / 2))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_PRESSURE_PLATE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.STONE_PRESSURE_PLATE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M), new MaterialStack(GTMaterials.Iron, M * 6 / 8))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M), new MaterialStack(GTMaterials.Steel, M))); - ChemicalHelper.registerMaterialInfo(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M), new MaterialStack(GTMaterials.Steel, M))); } else { // ChemicalHelper.registerMaterialInfo(new ItemStack(Blocks.WOODEN_PRESSURE_PLATE, 1, W), new // ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_PRESSURE_PLATE, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_PRESSURE_PLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, + ItemMaterialData.registerMaterialInfo(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, + ItemMaterialData.registerMaterialInfo(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 2))); } - ChemicalHelper.registerMaterialInfo(Items.WHEAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M))); - ChemicalHelper.registerMaterialInfo(Blocks.HAY_BLOCK, + ItemMaterialData.registerMaterialInfo(Items.WHEAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M))); + ItemMaterialData.registerMaterialInfo(Blocks.HAY_BLOCK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M * 9))); - ChemicalHelper.registerMaterialInfo(Items.SNOWBALL, + ItemMaterialData.registerMaterialInfo(Items.SNOWBALL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M / 4))); - ChemicalHelper.registerMaterialInfo(Blocks.SNOW, new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M))); + ItemMaterialData.registerMaterialInfo(Blocks.SNOW, new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M))); - ChemicalHelper.registerMaterialInfo(Blocks.ICE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Ice, M))); - ChemicalHelper.registerMaterialInfo(Blocks.PACKED_ICE, + ItemMaterialData.registerMaterialInfo(Blocks.ICE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Ice, M))); + ItemMaterialData.registerMaterialInfo(Blocks.PACKED_ICE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Ice, M * 9))); - ChemicalHelper.registerMaterialInfo(Blocks.BLUE_ICE, + ItemMaterialData.registerMaterialInfo(Blocks.BLUE_ICE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Ice, M * 81))); - ChemicalHelper.registerMaterialInfo(Items.BOOK, + ItemMaterialData.registerMaterialInfo(Items.BOOK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Paper, M * 3))); - ChemicalHelper.registerMaterialInfo(Items.WRITABLE_BOOK, + ItemMaterialData.registerMaterialInfo(Items.WRITABLE_BOOK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Paper, M * 3))); - ChemicalHelper.registerMaterialInfo(Items.ENCHANTED_BOOK, + ItemMaterialData.registerMaterialInfo(Items.ENCHANTED_BOOK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Paper, M * 3))); - ChemicalHelper.registerMaterialInfo(Blocks.BOOKSHELF, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.BOOKSHELF, new ItemMaterialInfo( new MaterialStack(GTMaterials.Paper, M * 9), new MaterialStack(GTMaterials.Wood, M * 6))); - ChemicalHelper.registerMaterialInfo(Items.ENCHANTED_GOLDEN_APPLE, + ItemMaterialData.registerMaterialInfo(Items.ENCHANTED_GOLDEN_APPLE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 72))); // block - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_APPLE, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_APPLE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 8))); // ingot - ChemicalHelper.registerMaterialInfo(Items.MINECART, + ItemMaterialData.registerMaterialInfo(Items.MINECART, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.CHEST_MINECART, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.CHEST_MINECART, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 5), new MaterialStack(GTMaterials.Wood, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.FURNACE_MINECART, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.FURNACE_MINECART, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 5), new MaterialStack(GTMaterials.Stone, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.TNT_MINECART, + ItemMaterialData.registerMaterialInfo(Items.TNT_MINECART, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.HOPPER_MINECART, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.HOPPER_MINECART, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 10), new MaterialStack(GTMaterials.Wood, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.CAULDRON, + ItemMaterialData.registerMaterialInfo(Items.CAULDRON, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 7))); - ChemicalHelper.registerMaterialInfo(Blocks.IRON_BARS, + ItemMaterialData.registerMaterialInfo(Blocks.IRON_BARS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 3 / 16))); // todo is this accurate - ChemicalHelper.registerMaterialInfo(Blocks.IRON_TRAPDOOR, + ItemMaterialData.registerMaterialInfo(Blocks.IRON_TRAPDOOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 4))); - ChemicalHelper.registerMaterialInfo(Items.BUCKET, + ItemMaterialData.registerMaterialInfo(Items.BUCKET, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 3))); - ChemicalHelper.registerMaterialInfo(Blocks.ANVIL, + ItemMaterialData.registerMaterialInfo(Blocks.ANVIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 31))); - ChemicalHelper.registerMaterialInfo(Blocks.CHIPPED_ANVIL, + ItemMaterialData.registerMaterialInfo(Blocks.CHIPPED_ANVIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 22))); - ChemicalHelper.registerMaterialInfo(Blocks.DAMAGED_ANVIL, + ItemMaterialData.registerMaterialInfo(Blocks.DAMAGED_ANVIL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 13))); - ChemicalHelper.registerMaterialInfo(Blocks.HOPPER, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.HOPPER, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 5), new MaterialStack(GTMaterials.Wood, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.GLASS_BOTTLE, + ItemMaterialData.registerMaterialInfo(Items.GLASS_BOTTLE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Glass, M))); // ChemicalHelper.registerMaterialInfo(new ItemStack(Blocks.STAINED_GLASS, 1, W), new ItemMaterialInfo(new // MaterialStack(GTMaterials.Glass, M))); - ChemicalHelper.registerMaterialInfo(Blocks.GLASS, + ItemMaterialData.registerMaterialInfo(Blocks.GLASS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Glass, M))); // ChemicalHelper.registerMaterialInfo(new ItemStack(Blocks.STAINED_GLASS_PANE, 1, W), new ItemMaterialInfo(new // MaterialStack(GTMaterials.Glass, M / 3))); // dust tiny - ChemicalHelper.registerMaterialInfo(Blocks.GLASS_PANE, + ItemMaterialData.registerMaterialInfo(Blocks.GLASS_PANE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Glass, M / 3))); // dust tiny - ChemicalHelper.registerMaterialInfo(Items.FLOWER_POT, + ItemMaterialData.registerMaterialInfo(Items.FLOWER_POT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Brick, M * 3))); - ChemicalHelper.registerMaterialInfo(Items.PAINTING, + ItemMaterialData.registerMaterialInfo(Items.PAINTING, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.ITEM_FRAME, + ItemMaterialData.registerMaterialInfo(Items.ITEM_FRAME, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.COBBLESTONE_WALL, + ItemMaterialData.registerMaterialInfo(Blocks.COBBLESTONE_WALL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M))); - ChemicalHelper.registerMaterialInfo(Items.END_CRYSTAL, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.END_CRYSTAL, new ItemMaterialInfo( new MaterialStack(GTMaterials.Glass, M * 7), new MaterialStack(GTMaterials.EnderEye, M))); if (ConfigHolder.INSTANCE.recipes.hardToolArmorRecipes) { - ChemicalHelper.registerMaterialInfo(Items.CLOCK, + ItemMaterialData.registerMaterialInfo(Items.CLOCK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, (13 * M) / 8), // M + ring + 3 * bolt new MaterialStack(GTMaterials.Redstone, M))); - ChemicalHelper.registerMaterialInfo(Items.COMPASS, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.COMPASS, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, (4 * M) / 3), // M + 3*screw new MaterialStack(GTMaterials.RedAlloy, M / 8), // bolt new MaterialStack(GTMaterials.Zinc, M / 4))); // ring } else { - ChemicalHelper.registerMaterialInfo(Items.CLOCK, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.CLOCK, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M * 4), new MaterialStack(GTMaterials.Redstone, M))); - ChemicalHelper.registerMaterialInfo(Items.COMPASS, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.COMPASS, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 4), new MaterialStack(GTMaterials.Redstone, M))); } if (ConfigHolder.INSTANCE.recipes.hardMiscRecipes) { - ChemicalHelper.registerMaterialInfo(Blocks.BEACON, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.BEACON, new ItemMaterialInfo( new MaterialStack(GTMaterials.NetherStar, (7 * M) / 4), // M + lens new MaterialStack(GTMaterials.Obsidian, M * 3), new MaterialStack(GTMaterials.Glass, M * 4))); - ChemicalHelper.registerMaterialInfo(Blocks.ENCHANTING_TABLE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.ENCHANTING_TABLE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M * 4), new MaterialStack(GTMaterials.Obsidian, M * 3), new MaterialStack(GTMaterials.Paper, M * 9))); - ChemicalHelper.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 8), // chest new MaterialStack(GTMaterials.Obsidian, M * 9 * 6), // 6 dense plates new MaterialStack(GTMaterials.EnderEye, M))); } else { - ChemicalHelper.registerMaterialInfo(Blocks.BEACON, + ItemMaterialData.registerMaterialInfo(Blocks.BEACON, new ItemMaterialInfo(new MaterialStack(GTMaterials.NetherStar, M), new MaterialStack(GTMaterials.Obsidian, M * 3), new MaterialStack(GTMaterials.Glass, M * 5))); - ChemicalHelper.registerMaterialInfo(Blocks.ENCHANTING_TABLE, + ItemMaterialData.registerMaterialInfo(Blocks.ENCHANTING_TABLE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 2), new MaterialStack(GTMaterials.Obsidian, M * 4), new MaterialStack(GTMaterials.Paper, M * 3))); - ChemicalHelper.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( new MaterialStack(GTMaterials.EnderEye, M), new MaterialStack(GTMaterials.Obsidian, M * 8))); } - ChemicalHelper.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.ENDER_CHEST, new ItemMaterialInfo( new MaterialStack(GTMaterials.EnderEye, M), new MaterialStack(GTMaterials.Obsidian, M * 8))); - ChemicalHelper.registerMaterialInfo(Blocks.FURNACE, + ItemMaterialData.registerMaterialInfo(Blocks.FURNACE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M * 8))); - ChemicalHelper.registerMaterialInfo(Blocks.STONE_BRICKS, + ItemMaterialData.registerMaterialInfo(Blocks.STONE_BRICKS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.COBBLESTONE, + ItemMaterialData.registerMaterialInfo(Blocks.COBBLESTONE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.MOSSY_COBBLESTONE, + ItemMaterialData.registerMaterialInfo(Blocks.MOSSY_COBBLESTONE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.LADDER, + ItemMaterialData.registerMaterialInfo(Blocks.LADDER, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M))); - ChemicalHelper.registerMaterialInfo(Items.BOWL, + ItemMaterialData.registerMaterialInfo(Items.BOWL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M / 4))); // ChemicalHelper.registerMaterialInfo(new ItemStack(Items.SIGN, 1, W), new ItemMaterialInfo(new // MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.CHEST, + ItemMaterialData.registerMaterialInfo(Blocks.CHEST, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 8))); - ChemicalHelper.registerMaterialInfo(Blocks.TRAPPED_CHEST, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.TRAPPED_CHEST, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 8), new MaterialStack(GTMaterials.Iron, M / 2))); // ring if (ConfigHolder.INSTANCE.recipes.hardMiscRecipes) { - ChemicalHelper.registerMaterialInfo(Blocks.NOTE_BLOCK, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.NOTE_BLOCK, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 8), new MaterialStack(GTMaterials.RedAlloy, M / 2))); // rod - ChemicalHelper.registerMaterialInfo(Blocks.JUKEBOX, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.JUKEBOX, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M / 8), // bolt new MaterialStack(GTMaterials.Iron, (17 * M) / 4), // gear + ring new MaterialStack(GTMaterials.RedAlloy, M))); } else { - ChemicalHelper.registerMaterialInfo(Blocks.NOTE_BLOCK, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.NOTE_BLOCK, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 8), new MaterialStack(GTMaterials.Redstone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.JUKEBOX, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.JUKEBOX, new ItemMaterialInfo( new MaterialStack(GTMaterials.Wood, M * 8), new MaterialStack(GTMaterials.Diamond, M))); } - ChemicalHelper.registerMaterialInfo(Blocks.REDSTONE_LAMP, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.REDSTONE_LAMP, new ItemMaterialInfo( new MaterialStack(GTMaterials.Glowstone, M * 4), new MaterialStack(GTMaterials.Redstone, M * 4))); // dust - ChemicalHelper.registerMaterialInfo(Blocks.CRAFTING_TABLE, + ItemMaterialData.registerMaterialInfo(Blocks.CRAFTING_TABLE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2))); - ChemicalHelper.registerMaterialInfo(Blocks.PISTON, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.PISTON, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 4), new MaterialStack(GTMaterials.Wood, M * 3))); - ChemicalHelper.registerMaterialInfo(Blocks.STICKY_PISTON, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.STICKY_PISTON, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 4), new MaterialStack(GTMaterials.Wood, M * 3))); if (ConfigHolder.INSTANCE.recipes.hardRedstoneRecipes) { - ChemicalHelper.registerMaterialInfo(Blocks.DISPENSER, + ItemMaterialData.registerMaterialInfo(Blocks.DISPENSER, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.RedAlloy, M / 2), new MaterialStack(GTMaterials.Iron, M * 4 + M / 4))); - ChemicalHelper.registerMaterialInfo(Blocks.DROPPER, + ItemMaterialData.registerMaterialInfo(Blocks.DROPPER, new ItemMaterialInfo(new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.RedAlloy, M / 2), new MaterialStack(GTMaterials.Iron, M * 2 + M * 3 / 4))); } else { - ChemicalHelper.registerMaterialInfo(Blocks.DISPENSER, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.DISPENSER, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.Redstone, M))); - ChemicalHelper.registerMaterialInfo(Blocks.DROPPER, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Blocks.DROPPER, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.Redstone, M))); } - ChemicalHelper.registerMaterialInfo(Items.IRON_HELMET, + ItemMaterialData.registerMaterialInfo(Items.IRON_HELMET, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.IRON_CHESTPLATE, + ItemMaterialData.registerMaterialInfo(Items.IRON_CHESTPLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.IRON_LEGGINGS, + ItemMaterialData.registerMaterialInfo(Items.IRON_LEGGINGS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 7))); - ChemicalHelper.registerMaterialInfo(Items.IRON_BOOTS, + ItemMaterialData.registerMaterialInfo(Items.IRON_BOOTS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 4))); - ChemicalHelper.registerMaterialInfo(Items.IRON_HORSE_ARMOR, + ItemMaterialData.registerMaterialInfo(Items.IRON_HORSE_ARMOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.IRON_SHOVEL, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_SHOVEL, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.IRON_PICKAXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_PICKAXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.IRON_AXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_AXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.IRON_SWORD, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_SWORD, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.IRON_HOE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.IRON_HOE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Iron, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_HELMET, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_HELMET, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_CHESTPLATE, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_CHESTPLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_LEGGINGS, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_LEGGINGS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 7))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_BOOTS, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_BOOTS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 4))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_HORSE_ARMOR, + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_HORSE_ARMOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Gold, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_SHOVEL, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_SHOVEL, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_PICKAXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_PICKAXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_AXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_AXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_SWORD, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_SWORD, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.GOLDEN_HOE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.GOLDEN_HOE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Gold, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_HELMET, + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_HELMET, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 5))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_CHESTPLATE, + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_CHESTPLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_LEGGINGS, + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_LEGGINGS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 7))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_BOOTS, + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_BOOTS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 4))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_HORSE_ARMOR, + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_HORSE_ARMOR, new ItemMaterialInfo(new MaterialStack(GTMaterials.Diamond, M * 8))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_SHOVEL, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_SHOVEL, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_PICKAXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_PICKAXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_AXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_AXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_SWORD, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_SWORD, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.DIAMOND_HOE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.DIAMOND_HOE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Diamond, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.CHAINMAIL_HELMET, + ItemMaterialData.registerMaterialInfo(Items.CHAINMAIL_HELMET, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 5 / 4))); - ChemicalHelper.registerMaterialInfo(Items.CHAINMAIL_CHESTPLATE, + ItemMaterialData.registerMaterialInfo(Items.CHAINMAIL_CHESTPLATE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 2))); - ChemicalHelper.registerMaterialInfo(Items.CHAINMAIL_LEGGINGS, + ItemMaterialData.registerMaterialInfo(Items.CHAINMAIL_LEGGINGS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 7 / 4))); - ChemicalHelper.registerMaterialInfo(Items.CHAINMAIL_BOOTS, + ItemMaterialData.registerMaterialInfo(Items.CHAINMAIL_BOOTS, new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M))); - ChemicalHelper.registerMaterialInfo(Items.WOODEN_SHOVEL, + ItemMaterialData.registerMaterialInfo(Items.WOODEN_SHOVEL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M + M / 2))); - ChemicalHelper.registerMaterialInfo(Items.WOODEN_PICKAXE, + ItemMaterialData.registerMaterialInfo(Items.WOODEN_PICKAXE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3 + M / 2))); - ChemicalHelper.registerMaterialInfo(Items.WOODEN_AXE, + ItemMaterialData.registerMaterialInfo(Items.WOODEN_AXE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 3 + M / 2))); - ChemicalHelper.registerMaterialInfo(Items.WOODEN_HOE, + ItemMaterialData.registerMaterialInfo(Items.WOODEN_HOE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2 + M / 2))); - ChemicalHelper.registerMaterialInfo(Items.WOODEN_SWORD, + ItemMaterialData.registerMaterialInfo(Items.WOODEN_SWORD, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wood, M * 2 + M / 4))); - ChemicalHelper.registerMaterialInfo(Items.STONE_SHOVEL, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.STONE_SHOVEL, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.STONE_PICKAXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.STONE_PICKAXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.STONE_AXE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.STONE_AXE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 3), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.STONE_HOE, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.STONE_HOE, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.Wood, M / 2))); - ChemicalHelper.registerMaterialInfo(Items.STONE_SWORD, new ItemMaterialInfo( + ItemMaterialData.registerMaterialInfo(Items.STONE_SWORD, new ItemMaterialInfo( new MaterialStack(GTMaterials.Stone, M * 2), new MaterialStack(GTMaterials.Wood, M / 4))); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java index 6694452f07..cfabd27158 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java @@ -2,12 +2,13 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterial; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.tool.ToolHelper; import com.gregtechceu.gtceu.data.recipe.builder.*; @@ -207,7 +208,7 @@ public static void addStrictShapedRecipe(Consumer provider, @Not *

* For Enums - {@link Enum#name()} is called. *

- * For {@link UnificationEntry} - {@link UnificationEntry#toString()} is called. + * For {@link MaterialEntry} - {@link MaterialEntry#toString()} is called. *

* Base tool names are as follows: *

    @@ -268,7 +269,7 @@ public static void addShapedRecipe(Consumer provider, boolean wi } } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); - } else if (content instanceof UnificationEntry entry) { + } else if (content instanceof MaterialEntry entry) { TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); if (tag != null) { builder.define(sign, tag); @@ -284,7 +285,7 @@ public static void addShapedRecipe(Consumer provider, boolean wi builder.save(provider); if (withUnificationData) { - ChemicalHelper.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); + ItemMaterialData.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); } } @@ -349,7 +350,7 @@ public static void addShapedEnergyTransferRecipe(Consumer provid builder.define(sign, (TagKey) key); } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); - } else if (content instanceof UnificationEntry entry) { + } else if (content instanceof MaterialEntry entry) { TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); if (tag != null) { builder.define(sign, tag); @@ -365,7 +366,7 @@ public static void addShapedEnergyTransferRecipe(Consumer provid builder.save(provider); if (withUnificationData) { - ChemicalHelper.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); + ItemMaterialData.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); } } @@ -419,7 +420,7 @@ public static void addShapedFluidContainerRecipe(Consumer provid } } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); - } else if (content instanceof UnificationEntry entry) { + } else if (content instanceof MaterialEntry entry) { TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); if (tag != null) { builder.define(sign, tag); @@ -436,7 +437,7 @@ public static void addShapedFluidContainerRecipe(Consumer provid builder.save(provider); if (withUnificationData) { - ChemicalHelper.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); + ItemMaterialData.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); } } @@ -489,7 +490,7 @@ public static void addShapelessRecipe(Consumer provider, @NotNul builder.requires((TagKey) key); } else if (content instanceof ItemLike itemLike) { builder.requires(itemLike); - } else if (content instanceof UnificationEntry entry) { + } else if (content instanceof MaterialEntry entry) { TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); if (tag != null) { builder.requires(tag); @@ -553,7 +554,7 @@ public static ItemMaterialInfo getRecyclingIngredients(int outputCount, @NotNull continue; // todo can this be improved? } else if (ingredient instanceof ItemLike) { itemLike = (ItemLike) ingredient; - } else if (ingredient instanceof UnificationEntry entry) { + } else if (ingredient instanceof MaterialEntry entry) { ItemStack stack = ChemicalHelper.get(entry.tagPrefix, entry.material); if (stack == ItemStack.EMPTY) continue; itemLike = stack.getItem(); @@ -562,7 +563,7 @@ public static ItemMaterialInfo getRecyclingIngredients(int outputCount, @NotNull } else continue; // throw out bad entries // First try to get ItemMaterialInfo - ItemMaterialInfo info = ChemicalHelper.getMaterialInfo(itemLike); + ItemMaterialInfo info = ItemMaterialData.getMaterialInfo(itemLike); if (info != null) { for (MaterialStack ms : info.getMaterials()) { if (!(ms.material() instanceof MarkerMaterial)) { @@ -573,7 +574,7 @@ public static ItemMaterialInfo getRecyclingIngredients(int outputCount, @NotNull } // Then try to get a single Material (UnificationEntry needs this, for example) - MaterialStack materialStack = ChemicalHelper.getMaterial(itemLike); + MaterialStack materialStack = ChemicalHelper.getMaterialStack(itemLike); if (materialStack != null && !(materialStack.material() instanceof MarkerMaterial)) { addMaterialStack(materialStacksExploded, inputCountMap, materialStack, lastChar); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 526f89ce03..c3473aa30e 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -4,7 +4,7 @@ import com.gregtechceu.gtceu.api.capability.recipe.*; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; @@ -333,7 +333,7 @@ public GTRecipeBuilder inputItems(Object input) { return inputItems(stack); } else if (input instanceof Ingredient ingredient) { return inputItems(ingredient); - } else if (input instanceof UnificationEntry entry) { + } else if (input instanceof MaterialEntry entry) { return inputItems(entry); } else if (input instanceof TagKey tag) { return inputItems((TagKey) tag); @@ -356,7 +356,7 @@ public GTRecipeBuilder inputItems(Object input, int count) { return inputItems(stack.copyWithCount(count)); } else if (input instanceof Ingredient ingredient) { return inputItems(ingredient, count); - } else if (input instanceof UnificationEntry entry) { + } else if (input instanceof MaterialEntry entry) { return inputItems(entry, count); } else if (input instanceof TagKey tag) { return inputItems((TagKey) tag, count); @@ -426,14 +426,14 @@ public GTRecipeBuilder inputItems(TagPrefix orePrefix, Material material) { return inputItems(orePrefix, material, 1); } - public GTRecipeBuilder inputItems(UnificationEntry input) { + public GTRecipeBuilder inputItems(MaterialEntry input) { if (input.material == null) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); } return inputItems(input.tagPrefix, input.material, 1); } - public GTRecipeBuilder inputItems(UnificationEntry input, int count) { + public GTRecipeBuilder inputItems(MaterialEntry input, int count) { if (input.material == null) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); } @@ -469,7 +469,7 @@ public GTRecipeBuilder outputItems(Object input) { return outputItems(item.asItem()); } else if (input instanceof ItemStack stack) { return outputItems(stack); - } else if (input instanceof UnificationEntry entry) { + } else if (input instanceof MaterialEntry entry) { return outputItems(entry); } else if (input instanceof MachineDefinition machine) { return outputItems(machine); @@ -488,7 +488,7 @@ public GTRecipeBuilder outputItems(Object input, int count) { return outputItems(item.asItem(), count); } else if (input instanceof ItemStack stack) { return outputItems(stack.copyWithCount(count)); - } else if (input instanceof UnificationEntry entry) { + } else if (input instanceof MaterialEntry entry) { return outputItems(entry, count); } else if (input instanceof MachineDefinition machine) { return outputItems(machine, count); @@ -550,14 +550,14 @@ public GTRecipeBuilder outputItems(TagPrefix orePrefix, Material material, int c return outputItems(item); } - public GTRecipeBuilder outputItems(UnificationEntry entry) { + public GTRecipeBuilder outputItems(MaterialEntry entry) { if (entry.material == null) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); } return outputItems(entry.tagPrefix, entry.material); } - public GTRecipeBuilder outputItems(UnificationEntry entry, int count) { + public GTRecipeBuilder outputItems(MaterialEntry entry, int count) { if (entry.material == null) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java index ae6ac42345..8356dd2cff 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java @@ -3,7 +3,7 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.recipe.ingredient.FluidContainerIngredient; import com.gregtechceu.gtceu.common.data.*; @@ -52,13 +52,13 @@ private static void steelSteamMultiblocks(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_oven", GTMachines.STEAM_OVEN.asStack(), "CGC", "FMF", "CGC", 'F', GTBlocks.FIREBOX_STEEL.asStack(), 'C', GTBlocks.CASING_STEEL_SOLID.asStack(), 'M', GTMachines.STEAM_FURNACE.right().asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Invar)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Invar)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", GTMachines.STEAM_GRINDER.asStack(), - "CGC", "CFC", "CGC", 'G', new UnificationEntry(TagPrefix.gear, GTMaterials.Potin), 'F', + "CGC", "CFC", "CGC", 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Potin), 'F', GTMachines.STEAM_MACERATOR.right().asStack(), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hatch", GTMachines.STEAM_HATCH.asStack(), "BPB", - "BTB", "BPB", 'B', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel), 'T', + "BTB", "BPB", 'B', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'P', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel), 'T', GTMachines.STEEL_DRUM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_input_bus", GTMachines.STEAM_IMPORT_BUS.asStack(), "C", "H", 'H', GTBlocks.STEEL_HULL.asStack(), 'C', @@ -70,13 +70,13 @@ private static void steelSteamMultiblocks(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_oven", GTMachines.STEAM_OVEN.asStack(), "CGC", "FMF", "CGC", 'F', GTBlocks.FIREBOX_BRONZE.asStack(), 'C', GTBlocks.CASING_BRONZE_BRICKS.asStack(), 'M', GTMachines.STEAM_FURNACE.left().asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Invar)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Invar)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", GTMachines.STEAM_GRINDER.asStack(), - "CGC", "CFC", "CGC", 'G', new UnificationEntry(TagPrefix.gear, GTMaterials.Potin), 'F', + "CGC", "CFC", "CGC", 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Potin), 'F', GTMachines.STEAM_MACERATOR.left().asStack(), 'C', GTBlocks.CASING_BRONZE_BRICKS.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hatch", GTMachines.STEAM_HATCH.asStack(), "BPB", - "BTB", "BPB", 'B', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze), 'T', + "BTB", "BPB", 'B', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'P', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze), 'T', GTMachines.BRONZE_DRUM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_input_bus", GTMachines.STEAM_IMPORT_BUS.asStack(), "C", "H", 'H', GTBlocks.BRONZE_HULL.asStack(), 'C', @@ -104,18 +104,18 @@ private static void harderBrickRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "bucket_of_concrete", new ItemStack(Concrete.getBucket()), "CBS", "CWQ", " L ", - 'C', new UnificationEntry(dust, Calcite), - 'S', new UnificationEntry(dust, Stone), + 'C', new MaterialEntry(dust, Calcite), + 'S', new MaterialEntry(dust, Stone), 'W', new ItemStack(Items.WATER_BUCKET), - 'Q', new UnificationEntry(dust, QuartzSand), - 'L', new UnificationEntry(dust, Clay), + 'Q', new MaterialEntry(dust, QuartzSand), + 'L', new MaterialEntry(dust, Clay), 'B', new ItemStack(Items.BUCKET)); VanillaRecipeHelper.addShapedFluidContainerRecipe(provider, "casing_primitive_bricks", GTBlocks.CASING_PRIMITIVE_BRICKS.asStack(), "BGB", "BCB", "BGB", 'B', GTItems.FIRECLAY_BRICK.asStack(), - 'G', new UnificationEntry(dust, Gypsum), + 'G', new MaterialEntry(dust, Gypsum), 'C', new FluidContainerIngredient(Concrete.getFluidTag(), 1000)); VanillaRecipeHelper.addShapelessRecipe(provider, "compressed_clay", COMPRESSED_CLAY.asStack(), @@ -132,8 +132,8 @@ private static void harderBrickRecipes(Consumer provider) { private static void hardWoodRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "ladder", new ItemStack(Blocks.LADDER, 2), "SrS", "SRS", "ShS", - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), 'R', - new UnificationEntry(TagPrefix.bolt, GTMaterials.Wood)); + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), 'R', + new MaterialEntry(TagPrefix.bolt, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "bowl", new ItemStack(Items.BOWL), "k", "X", 'X', ItemTags.PLANKS); @@ -151,23 +151,23 @@ private static void hardWoodRecipes(Consumer provider) { private static void hardIronRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "cauldron", new ItemStack(Items.CAULDRON), "X X", "XhX", "XXX", - 'X', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron)); + 'X', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "hopper", new ItemStack(Blocks.HOPPER), "XCX", "XGX", "wXh", - 'X', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), + 'X', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), 'C', Tags.Items.CHESTS_WOODEN, - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron)); + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "iron_bars", new ItemStack(Blocks.IRON_BARS, 8), " h ", "XXX", "XXX", - 'X', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron)); + 'X', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "iron_bucket", new ItemStack(Items.BUCKET), "XhX", " X ", 'X', - new UnificationEntry(TagPrefix.plate, GTMaterials.Iron)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "chain_iron", new ItemStack(Items.CHAIN), " R ", "wR ", " R ", - 'R', new UnificationEntry(ring, Iron)); + 'R', new MaterialEntry(ring, Iron)); ASSEMBLER_RECIPES.recipeBuilder("chain_iron") .inputItems(ring, Iron, 3) @@ -177,7 +177,7 @@ private static void hardIronRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "chain_wrought_iron", new ItemStack(Items.CHAIN, 2), " R ", "wR ", " R ", - 'R', new UnificationEntry(ring, WroughtIron)); + 'R', new MaterialEntry(ring, WroughtIron)); ASSEMBLER_RECIPES.recipeBuilder("chain_wrought_iron") .inputItems(ring, WroughtIron, 3) @@ -187,7 +187,7 @@ private static void hardIronRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "chain_steel", new ItemStack(Items.CHAIN, 3), " R ", "wR ", " R ", - 'R', new UnificationEntry(ring, Steel)); + 'R', new MaterialEntry(ring, Steel)); ASSEMBLER_RECIPES.recipeBuilder("chain_steel") .inputItems(ring, Steel, 3) @@ -201,11 +201,11 @@ private static void hardRedstoneRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "dispenser", new ItemStack(Blocks.DISPENSER), "CRC", "STS", "GAG", 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.spring, GTMaterials.Iron), 'T', new ItemStack(Items.STRING), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), - 'A', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'A', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); ASSEMBLER_RECIPES.recipeBuilder("dispenser").duration(100).EUt(VA[LV]) .inputItems(ItemTags.STONE_CRAFTING_MATERIALS, 2) @@ -226,8 +226,8 @@ private static void hardRedstoneRecipes(Consumer provider) { "CRC", 'W', ItemTags.PLANKS, 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(TagPrefix.plate, GTMaterials.RedAlloy), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.plate, GTMaterials.RedAlloy), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), 'F', ItemTags.WOODEN_FENCES); ASSEMBLER_RECIPES.recipeBuilder("piston_iron") @@ -277,27 +277,27 @@ private static void hardRedstoneRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "stone_pressure_plate", new ItemStack(Blocks.STONE_PRESSURE_PLATE, 2), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'L', new ItemStack(Blocks.STONE_SLAB), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); + 'C', new MaterialEntry(TagPrefix.spring, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "polished_blackstone_pressure_plate", new ItemStack(Blocks.POLISHED_BLACKSTONE_PRESSURE_PLATE, 2), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'L', new ItemStack(Blocks.POLISHED_BLACKSTONE_SLAB), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); + 'C', new MaterialEntry(TagPrefix.spring, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "heavy_weighted_pressure_plate", new ItemStack(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel), - 'L', new UnificationEntry(TagPrefix.plate, GTMaterials.Gold), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Steel)); + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Steel), + 'L', new MaterialEntry(TagPrefix.plate, GTMaterials.Gold), + 'C', new MaterialEntry(TagPrefix.spring, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, "light_weighted_pressure_plate", new ItemStack(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel), - 'L', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Steel)); + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Steel), + 'L', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), + 'C', new MaterialEntry(TagPrefix.spring, GTMaterials.Steel)); ASSEMBLER_RECIPES.recipeBuilder("stone_pressure_plate") .inputItems(TagPrefix.spring, GTMaterials.Iron) @@ -342,28 +342,28 @@ private static void hardRedstoneRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "lever", new ItemStack(Blocks.LEVER), "B", "S", 'B', new ItemStack(Blocks.STONE_BUTTON), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "daylight_detector", new ItemStack(Blocks.DAYLIGHT_DETECTOR), "GGG", "PPP", "SRS", 'G', new ItemStack(Blocks.GLASS), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.NetherQuartz), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.NetherQuartz), 'S', ItemTags.WOODEN_SLABS, - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "daylight_detector_certus", new ItemStack(Blocks.DAYLIGHT_DETECTOR), "GGG", "PPP", "SRS", 'G', new ItemStack(Blocks.GLASS), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.CertusQuartz), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.CertusQuartz), 'S', ItemTags.WOODEN_SLABS, - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "daylight_detector_quartzite", new ItemStack(Blocks.DAYLIGHT_DETECTOR), "GGG", "PPP", "SRS", 'G', new ItemStack(Blocks.GLASS, 1), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Quartzite), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Quartzite), 'S', ItemTags.WOODEN_SLABS, - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); ASSEMBLER_RECIPES.recipeBuilder("daylight_detector") .inputItems(rod, RedAlloy) @@ -393,104 +393,104 @@ private static void hardRedstoneRecipes(Consumer provider) { "PGP", "PRP", 'P', new ItemStack(Blocks.GLASS_PANE), 'G', new ItemStack(Blocks.GLOWSTONE), - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "tripwire_hook", new ItemStack(Blocks.TRIPWIRE_HOOK), "IRI", "SRS", " S ", - 'I', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), + 'I', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), 'S', new ItemStack(Items.STRING)); VanillaRecipeHelper.addShapedRecipe(provider, "dropper", new ItemStack(Blocks.DROPPER), "CRC", "STS", "GAG", 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.springSmall, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.springSmall, GTMaterials.Iron), 'T', new ItemStack(Items.STRING), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), - 'A', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'A', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "observer", new ItemStack(Blocks.OBSERVER), "RCR", "CQC", "GSG", - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.NetherQuartz), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.NetherQuartz), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "observer_certus", new ItemStack(Blocks.OBSERVER), "RCR", "CQC", "GSG", - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.CertusQuartz), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.CertusQuartz), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "observer_quartzite", new ItemStack(Blocks.OBSERVER), "RCR", "CQC", "GSG", - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.Quartzite), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.Quartzite), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "repeater", new ItemStack(Items.REPEATER), "S S", "TdT", "PRP", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'T', new ItemStack(Blocks.REDSTONE_TORCH), 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE), - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, "comparator", new ItemStack(Items.COMPARATOR), "STS", "TQT", "PdP", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'T', new ItemStack(Blocks.REDSTONE_TORCH), - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.NetherQuartz), + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.NetherQuartz), 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE)); VanillaRecipeHelper.addShapedRecipe(provider, "comparator_certus", new ItemStack(Items.COMPARATOR), "STS", "TQT", "PdP", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'T', new ItemStack(Blocks.REDSTONE_TORCH), - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.CertusQuartz), + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.CertusQuartz), 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE)); VanillaRecipeHelper.addShapedRecipe(provider, "comparator_quartzite", new ItemStack(Items.COMPARATOR), "STS", "TQT", "PdP", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'T', new ItemStack(Blocks.REDSTONE_TORCH), - 'Q', new UnificationEntry(TagPrefix.plate, GTMaterials.Quartzite), + 'Q', new MaterialEntry(TagPrefix.plate, GTMaterials.Quartzite), 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE)); VanillaRecipeHelper.addShapedRecipe(provider, "powered_rail", new ItemStack(Blocks.POWERED_RAIL, 6), "SPS", "IWI", "GdG", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.RedAlloy), - 'I', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), - 'W', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), - 'G', new UnificationEntry(TagPrefix.rod, GTMaterials.Gold)); + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Steel), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.RedAlloy), + 'I', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), + 'W', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), + 'G', new MaterialEntry(TagPrefix.rod, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, "detector_rail", new ItemStack(Blocks.DETECTOR_RAIL, 6), "SPS", "IWI", "IdI", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'P', new ItemStack(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE), - 'I', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), - 'W', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'I', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), + 'W', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "rail", new ItemStack(Blocks.RAIL, 8), "ShS", "IWI", "IdI", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'I', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), - 'W', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'I', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), + 'W', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "activator_rail", new ItemStack(Blocks.ACTIVATOR_RAIL, 6), "SPS", "IWI", "IdI", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'P', new ItemStack(Blocks.REDSTONE_TORCH), - 'I', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), + 'I', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), 'W', Tags.Items.RODS_WOODEN); VanillaRecipeHelper.addShapedRecipe(provider, "redstone_torch", new ItemStack(Blocks.REDSTONE_TORCH), "R", "T", - 'R', new UnificationEntry(TagPrefix.dust, GTMaterials.Redstone), + 'R', new MaterialEntry(TagPrefix.dust, GTMaterials.Redstone), 'T', new ItemStack(Blocks.TORCH)); ASSEMBLER_RECIPES.recipeBuilder("calibrated_sculk_sensor") @@ -508,29 +508,29 @@ private static void hardRedstoneRecipes(Consumer provider) { "CBC", "CRC", 'W', ItemTags.PLANKS, 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(dust, Redstone), - 'B', new UnificationEntry(ingot, Bronze)); + 'R', new MaterialEntry(dust, Redstone), + 'B', new MaterialEntry(ingot, Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, "piston_steel", new ItemStack(Blocks.PISTON, 2), "WWW", "CBC", "CRC", 'W', ItemTags.PLANKS, 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(dust, Redstone), - 'B', new UnificationEntry(ingot, Steel)); + 'R', new MaterialEntry(dust, Redstone), + 'B', new MaterialEntry(ingot, Steel)); VanillaRecipeHelper.addShapedRecipe(provider, "piston_aluminium", new ItemStack(Blocks.PISTON, 4), "WWW", "CBC", "CRC", 'W', ItemTags.PLANKS, 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(dust, Redstone), - 'B', new UnificationEntry(ingot, Aluminium)); + 'R', new MaterialEntry(dust, Redstone), + 'B', new MaterialEntry(ingot, Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, "piston_titanium", new ItemStack(Blocks.PISTON, 8), "WWW", "CBC", "CRC", 'W', ItemTags.PLANKS, 'C', ItemTags.STONE_CRAFTING_MATERIALS, - 'R', new UnificationEntry(dust, Redstone), - 'B', new UnificationEntry(ingot, Titanium)); + 'R', new MaterialEntry(dust, Redstone), + 'B', new MaterialEntry(ingot, Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, "sticky_piston_resin", new ItemStack(Blocks.STICKY_PISTON), "h", "R", "P", @@ -566,25 +566,25 @@ private static void hardRedstoneRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "comparator_certus", new ItemStack(Items.COMPARATOR), " T ", "TQT", "SSS", 'T', new ItemStack(Blocks.REDSTONE_TORCH), - 'Q', new UnificationEntry(gem, CertusQuartz), + 'Q', new MaterialEntry(gem, CertusQuartz), 'S', new ItemStack(Blocks.STONE)); VanillaRecipeHelper.addShapedRecipe(provider, "comparator_quartzite", new ItemStack(Items.COMPARATOR), " T ", "TQT", "SSS", 'T', new ItemStack(Blocks.REDSTONE_TORCH), - 'Q', new UnificationEntry(gem, Quartzite), + 'Q', new MaterialEntry(gem, Quartzite), 'S', new ItemStack(Blocks.STONE)); VanillaRecipeHelper.addShapedRecipe(provider, "daylight_detector_certus", new ItemStack(Blocks.DAYLIGHT_DETECTOR), "GGG", "CCC", "PPP", 'G', new ItemStack(Blocks.GLASS), - 'C', new UnificationEntry(gem, CertusQuartz), + 'C', new MaterialEntry(gem, CertusQuartz), 'P', ItemTags.WOODEN_SLABS); VanillaRecipeHelper.addShapedRecipe(provider, "daylight_detector_quartzite", new ItemStack(Blocks.DAYLIGHT_DETECTOR), "GGG", "CCC", "PPP", 'G', new ItemStack(Blocks.GLASS), - 'C', new UnificationEntry(gem, Quartzite), + 'C', new MaterialEntry(gem, Quartzite), 'P', ItemTags.WOODEN_SLABS); ASSEMBLER_RECIPES.recipeBuilder("note_block").duration(100).EUt(16).inputItems(ItemTags.PLANKS, 8) @@ -633,12 +633,12 @@ private static void hardToolArmorRecipes(Consumer provider) { createBootsRecipe(provider, "diamond_boots", new ItemStack(Items.DIAMOND_BOOTS), GTMaterials.Diamond); VanillaRecipeHelper.addShapedRecipe(provider, "compass", new ItemStack(Items.COMPASS), "SGB", "RPR", "AdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'G', new ItemStack(Blocks.GLASS_PANE), - 'B', new UnificationEntry(TagPrefix.bolt, GTMaterials.IronMagnetic), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Zinc), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), - 'A', new UnificationEntry(TagPrefix.bolt, GTMaterials.RedAlloy)); + 'B', new MaterialEntry(TagPrefix.bolt, GTMaterials.IronMagnetic), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Zinc), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), + 'A', new MaterialEntry(TagPrefix.bolt, GTMaterials.RedAlloy)); ASSEMBLER_RECIPES.recipeBuilder("compass") .inputItems(TagPrefix.plate, GTMaterials.Iron) @@ -651,16 +651,16 @@ private static void hardToolArmorRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "fishing_rod", new ItemStack(Items.FISHING_ROD), " S", " SL", "SxR", - 'S', new UnificationEntry(TagPrefix.rodLong, GTMaterials.Wood), + 'S', new MaterialEntry(TagPrefix.rodLong, GTMaterials.Wood), 'L', new ItemStack(Items.STRING), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron)); + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "clock", new ItemStack(Items.CLOCK), "RPR", "BCB", "dSw", - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Gold), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Gold), - 'B', new UnificationEntry(TagPrefix.bolt, GTMaterials.Gold), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Gold), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Gold), + 'B', new MaterialEntry(TagPrefix.bolt, GTMaterials.Gold), 'C', new ItemStack(Items.COMPARATOR), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Gold)); + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Gold)); ASSEMBLER_RECIPES.recipeBuilder("clock") .inputItems(TagPrefix.plate, GTMaterials.Gold) @@ -672,28 +672,28 @@ private static void hardToolArmorRecipes(Consumer provider) { .duration(100).EUt(16).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, "shears", new ItemStack(Items.SHEARS), "PSP", "hRf", "TdT", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'T', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'T', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "shield", new ItemStack(Items.SHIELD), "BRB", "LPL", "BRB", - 'B', new UnificationEntry(TagPrefix.bolt, GTMaterials.Iron), - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), - 'L', new UnificationEntry(TagPrefix.rodLong, GTMaterials.Iron), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Wood)); + 'B', new MaterialEntry(TagPrefix.bolt, GTMaterials.Iron), + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), + 'L', new MaterialEntry(TagPrefix.rodLong, GTMaterials.Iron), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, "bow", new ItemStack(Items.BOW), "hLS", "LRS", "fLS", - 'L', new UnificationEntry(TagPrefix.rodLong, GTMaterials.Wood), + 'L', new MaterialEntry(TagPrefix.rodLong, GTMaterials.Wood), 'S', new ItemStack(Items.STRING), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron)); + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "crossbow", new ItemStack(Items.CROSSBOW), "RIR", "STS", "sRf", - 'R', new UnificationEntry(TagPrefix.rodLong, GTMaterials.Wood), + 'R', new MaterialEntry(TagPrefix.rodLong, GTMaterials.Wood), 'S', new ItemStack(Items.STRING), 'T', new ItemStack(Items.TRIPWIRE_HOOK), - 'I', new UnificationEntry(ring, Iron)); + 'I', new MaterialEntry(ring, Iron)); } else { ASSEMBLER_RECIPES.recipeBuilder("compass") .inputItems(dust, Redstone) @@ -749,9 +749,9 @@ private static void hardMiscRecipes(Consumer provider) { if (ConfigHolder.INSTANCE.recipes.hardMiscRecipes) { VanillaRecipeHelper.addShapedRecipe(provider, "beacon", new ItemStack(Blocks.BEACON), "GLG", "GSG", "OOO", 'G', new ItemStack(Blocks.GLASS), - 'L', new UnificationEntry(TagPrefix.lens, GTMaterials.NetherStar), + 'L', new MaterialEntry(TagPrefix.lens, GTMaterials.NetherStar), 'S', new ItemStack(Items.NETHER_STAR), - 'O', new UnificationEntry(TagPrefix.plate, GTMaterials.Obsidian)); + 'O', new MaterialEntry(TagPrefix.plate, GTMaterials.Obsidian)); VanillaRecipeHelper.addShapedRecipe(provider, "jack_o_lantern", new ItemStack(Blocks.JACK_O_LANTERN), "PT", "k ", @@ -766,25 +766,25 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "brewing_stand", new ItemStack(Items.BREWING_STAND), "RBR", "ABA", "SCS", - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Aluminium), - 'B', new UnificationEntry(TagPrefix.rod, GTMaterials.Blaze), - 'A', new UnificationEntry(TagPrefix.rod, GTMaterials.Aluminium), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Aluminium), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Aluminium), + 'B', new MaterialEntry(TagPrefix.rod, GTMaterials.Blaze), + 'A', new MaterialEntry(TagPrefix.rod, GTMaterials.Aluminium), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Aluminium), 'C', new ItemStack(Items.CAULDRON)); VanillaRecipeHelper.addShapedRecipe(provider, "enchanting_table", new ItemStack(Blocks.ENCHANTING_TABLE), "DCD", "PBP", "DPD", - 'D', new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond), + 'D', new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond), 'C', new ItemStack(Blocks.RED_CARPET), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Obsidian), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Obsidian), 'B', new ItemStack(Blocks.BOOKSHELF)); VanillaRecipeHelper.addShapedRecipe(provider, "jukebox", new ItemStack(Blocks.JUKEBOX), "LBL", "NRN", "LGL", 'L', ItemTags.LOGS, - 'B', new UnificationEntry(TagPrefix.bolt, GTMaterials.Diamond), + 'B', new MaterialEntry(TagPrefix.bolt, GTMaterials.Diamond), 'N', new ItemStack(Blocks.NOTE_BLOCK), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'G', new UnificationEntry(TagPrefix.gear, GTMaterials.Iron)); + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Iron)); ASSEMBLER_RECIPES.recipeBuilder("jukebox") .inputItems(TagPrefix.bolt, GTMaterials.Diamond) @@ -797,10 +797,10 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "note_block", new ItemStack(Blocks.NOTE_BLOCK), "PPP", "BGB", "PRP", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Wood), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Wood), 'B', new ItemStack(Blocks.IRON_BARS), - 'G', new UnificationEntry(TagPrefix.gear, GTMaterials.Wood), - 'R', new UnificationEntry(TagPrefix.rod, GTMaterials.RedAlloy)); + 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Wood), + 'R', new MaterialEntry(TagPrefix.rod, GTMaterials.RedAlloy)); ASSEMBLER_RECIPES.recipeBuilder("note_block") .inputItems(TagPrefix.plate, GTMaterials.Wood, 4) @@ -839,15 +839,15 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "item_frame", new ItemStack(Items.ITEM_FRAME), "SRS", "TLT", "TTT", 'S', new ItemStack(Items.STRING), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'T', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'T', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), 'L', new ItemStack(Items.LEATHER)); VanillaRecipeHelper.addShapedRecipe(provider, "painting", new ItemStack(Items.PAINTING), "SRS", "TCT", "TTT", 'S', new ItemStack(Items.STRING), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), - 'T', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), + 'T', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), 'C', ItemTags.WOOL_CARPETS); VanillaRecipeHelper.addShapedRecipe(provider, "chest_minecart", new ItemStack(Items.CHEST_MINECART), "hIw", @@ -864,9 +864,9 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "armor_stand", new ItemStack(Items.ARMOR_STAND), "BSB", "hSs", "IPI", - 'B', new UnificationEntry(TagPrefix.bolt, GTMaterials.Wood), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood), - 'I', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), + 'B', new MaterialEntry(TagPrefix.bolt, GTMaterials.Wood), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood), + 'I', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), 'P', new ItemStack(Blocks.STONE_PRESSURE_PLATE)); ASSEMBLER_RECIPES.recipeBuilder("armor_stand") .inputItems(Blocks.STONE_PRESSURE_PLATE.asItem()) @@ -878,7 +878,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "trapped_chest", new ItemStack(Blocks.TRAPPED_CHEST), " H ", "SCS", " d ", 'H', new ItemStack(Blocks.TRIPWIRE_HOOK), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'C', new ItemStack(Blocks.CHEST)); ASSEMBLER_RECIPES.recipeBuilder("ender_chest") @@ -891,7 +891,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "lantern", new ItemStack(Blocks.LANTERN), "hRf", "RFR", " R ", 'F', new ItemStack(Blocks.TORCH), - 'R', new UnificationEntry(ring, Iron)); + 'R', new MaterialEntry(ring, Iron)); ASSEMBLER_RECIPES.recipeBuilder("lantern") .inputItems(new ItemStack(Blocks.TORCH)) @@ -902,7 +902,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "soul_lantern", new ItemStack(Blocks.SOUL_LANTERN), "hRf", "RFR", " R ", 'F', new ItemStack(Blocks.SOUL_TORCH), - 'R', new UnificationEntry(ring, Iron)); + 'R', new MaterialEntry(ring, Iron)); ASSEMBLER_RECIPES.recipeBuilder("soul_lantern") .inputItems(new ItemStack(Blocks.SOUL_TORCH)) @@ -913,8 +913,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "stonecutter", new ItemStack(Blocks.STONECUTTER), "f d", "SBS", "XXX", 'X', new ItemStack(Blocks.STONE_SLAB), - 'S', new UnificationEntry(screw, Wood), - 'B', new UnificationEntry(toolHeadBuzzSaw, Iron)); + 'S', new MaterialEntry(screw, Wood), + 'B', new MaterialEntry(toolHeadBuzzSaw, Iron)); ASSEMBLER_RECIPES.recipeBuilder("stonecutter") .inputItems(toolHeadBuzzSaw, Iron) @@ -926,8 +926,8 @@ private static void hardMiscRecipes(Consumer provider) { "sPd", "WWW", "SLS", 'P', new ItemStack(Items.PAPER), - 'S', new UnificationEntry(screw, Iron), - 'W', new UnificationEntry(plate, TreatedWood), + 'S', new MaterialEntry(screw, Iron), + 'W', new MaterialEntry(plate, TreatedWood), 'L', ItemTags.LOGS); ASSEMBLER_RECIPES.recipeBuilder("cartography_table") @@ -940,8 +940,8 @@ private static void hardMiscRecipes(Consumer provider) { "sPd", "WWW", "SLS", 'P', new ItemStack(Items.FEATHER), - 'S', new UnificationEntry(screw, Iron), - 'W', new UnificationEntry(plate, Wood), + 'S', new MaterialEntry(screw, Iron), + 'W', new MaterialEntry(plate, Wood), 'L', ItemTags.LOGS); ASSEMBLER_RECIPES.recipeBuilder("fletching_table") @@ -952,8 +952,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "smithing_table", new ItemStack(Blocks.SMITHING_TABLE), "h d", "WWW", "SLS", - 'S', new UnificationEntry(screw, WroughtIron), - 'W', new UnificationEntry(plate, Steel), + 'S', new MaterialEntry(screw, WroughtIron), + 'W', new MaterialEntry(plate, Steel), 'L', ItemTags.LOGS); ASSEMBLER_RECIPES.recipeBuilder("smithing_table") @@ -966,9 +966,9 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "grindstone", new ItemStack(Blocks.GRINDSTONE), "hBd", "IXI", "WfW", 'X', new ItemStack(Blocks.STONE_SLAB), - 'B', new UnificationEntry(toolHeadBuzzSaw, Iron), - 'I', new UnificationEntry(bolt, Iron), - 'W', new UnificationEntry(rodLong, Wood)); + 'B', new MaterialEntry(toolHeadBuzzSaw, Iron), + 'I', new MaterialEntry(bolt, Iron), + 'W', new MaterialEntry(rodLong, Wood)); ASSEMBLER_RECIPES.recipeBuilder("grindstone") .inputItems(new ItemStack(Blocks.STONE_SLAB)) @@ -980,8 +980,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "loom", new ItemStack(Blocks.LOOM), "SSS", "PdP", "XYX", 'S', new ItemStack(Items.STRING), - 'P', new UnificationEntry(plate, Wood), - 'X', new UnificationEntry(screw, Wood), + 'P', new MaterialEntry(plate, Wood), + 'X', new MaterialEntry(screw, Wood), 'Y', ItemTags.PLANKS); ASSEMBLER_RECIPES.recipeBuilder("loom") @@ -994,8 +994,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "smoker", new ItemStack(Blocks.SMOKER), "wId", "PFP", "XPX", 'I', new ItemStack(Blocks.IRON_BARS), - 'P', new UnificationEntry(plate, TreatedWood), - 'X', new UnificationEntry(bolt, Iron), + 'P', new MaterialEntry(plate, TreatedWood), + 'X', new MaterialEntry(bolt, Iron), 'F', new ItemStack(Blocks.FURNACE)); ASSEMBLER_RECIPES.recipeBuilder("smoker") @@ -1007,8 +1007,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "blast_furnace", new ItemStack(Blocks.BLAST_FURNACE), "wfd", "PFP", "XPX", - 'P', new UnificationEntry(plate, Iron), - 'X', new UnificationEntry(screw, Iron), + 'P', new MaterialEntry(plate, Iron), + 'X', new MaterialEntry(screw, Iron), 'F', new ItemStack(Blocks.FURNACE)); ASSEMBLER_RECIPES.recipeBuilder("blast_furnace") @@ -1020,7 +1020,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "composter", new ItemStack(Blocks.COMPOSTER), "PsP", "P P", "XPX", 'P', ItemTags.PLANKS, - 'X', new UnificationEntry(screw, Wood)); + 'X', new MaterialEntry(screw, Wood)); ASSEMBLER_RECIPES.recipeBuilder("composter") .inputItems(ItemTags.PLANKS, 4) @@ -1061,7 +1061,7 @@ private static void hardMiscRecipes(Consumer provider) { "BWB", "BrB", 'B', new ItemStack(Items.BAMBOO), 'S', new ItemStack(Items.STRING), - 'W', new UnificationEntry(bolt, Wood)); + 'W', new MaterialEntry(bolt, Wood)); ASSEMBLER_RECIPES.recipeBuilder("scaffolding") .inputItems(new ItemStack(Items.BAMBOO, 6)) @@ -1072,8 +1072,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "beehive", new ItemStack(Blocks.BEEHIVE, 1), "PsP", "WXW", "PdP", 'P', ItemTags.PLANKS, - 'W', new UnificationEntry(plate, Wood), - 'X', new UnificationEntry(bolt, Wood)); + 'W', new MaterialEntry(plate, Wood), + 'X', new MaterialEntry(bolt, Wood)); ASSEMBLER_RECIPES.recipeBuilder("beehive") .inputItems(screw, Wood, 2) @@ -1084,8 +1084,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "lightning_rod", new ItemStack(Blocks.LIGHTNING_ROD), " B ", "fRh", " R ", - 'R', new UnificationEntry(rod, Copper), - 'B', new UnificationEntry(plateDouble, Copper)); + 'R', new MaterialEntry(rod, Copper), + 'B', new MaterialEntry(plateDouble, Copper)); ASSEMBLER_RECIPES.recipeBuilder("lightning_rod") .inputItems(rod, Copper, 2) @@ -1102,7 +1102,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "lectern", new ItemStack(Blocks.LECTERN), "SSS", "WBW", "dSs", 'S', ItemTags.WOODEN_SLABS, - 'W', new UnificationEntry(screw, Wood), + 'W', new MaterialEntry(screw, Wood), 'B', new ItemStack(Blocks.BOOKSHELF)); ASSEMBLER_RECIPES.recipeBuilder("lectern") @@ -1114,8 +1114,8 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "brush", new ItemStack(Items.BRUSH), " F ", "fRr", " S ", - 'S', new UnificationEntry(rod, Wood), - 'R', new UnificationEntry(ring, Copper), + 'S', new MaterialEntry(rod, Wood), + 'R', new MaterialEntry(ring, Copper), 'F', new ItemStack(Items.FEATHER)); ASSEMBLER_RECIPES.recipeBuilder("brush") @@ -1128,10 +1128,10 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "spyglass", new ItemStack(Items.SPYGLASS), "hGd", "LRS", "fP ", 'L', new ItemStack(Items.LEATHER), - 'G', new UnificationEntry(lens, Glass), - 'R', new UnificationEntry(ring, Gold), - 'S', new UnificationEntry(screw, Iron), - 'P', new UnificationEntry(plate, Copper)); + 'G', new MaterialEntry(lens, Glass), + 'R', new MaterialEntry(ring, Gold), + 'S', new MaterialEntry(screw, Iron), + 'P', new MaterialEntry(plate, Copper)); ASSEMBLER_RECIPES.recipeBuilder("spyglass") .inputItems(lens, Glass) @@ -1151,7 +1151,7 @@ private static void hardMiscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "respawn_anchor", new ItemStack(Items.RESPAWN_ANCHOR), "CCC", "GGG", "CCC", 'C', new ItemStack(Items.CRYING_OBSIDIAN), - 'G', new UnificationEntry(plate, Glowstone)); + 'G', new MaterialEntry(plate, Glowstone)); ASSEMBLER_RECIPES.recipeBuilder("respawn_anchor") .inputItems(new ItemStack(Items.CRYING_OBSIDIAN, 6)) @@ -1284,16 +1284,16 @@ private static void nerfPaperCrafting(Consumer provider) { "Sm ", 'S', new ItemStack(Items.SUGAR_CANE)); VanillaRecipeHelper.addShapedRecipe(provider, "paper", new ItemStack(Items.PAPER, 2), " r ", "SSS", " B ", - 'S', new UnificationEntry(TagPrefix.dust, GTMaterials.Paper), + 'S', new MaterialEntry(TagPrefix.dust, GTMaterials.Paper), 'B', new ItemStack(Items.WATER_BUCKET)); } private static void hardAdvancedIronRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "iron_door", new ItemStack(Items.IRON_DOOR), "PTh", "PRS", "PPd", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), 'T', new ItemStack(Blocks.IRON_BARS), - 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Steel), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel)); + 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Steel), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Steel)); ASSEMBLER_RECIPES.recipeBuilder("iron_door") .inputItems(TagPrefix.plate, GTMaterials.Iron, 4) @@ -1303,32 +1303,32 @@ private static void hardAdvancedIronRecipes(Consumer provider) { .duration(400).EUt(VA[ULV]).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, "anvil", new ItemStack(Blocks.ANVIL), "BBB", "SBS", "PBP", - 'B', new UnificationEntry(TagPrefix.block, GTMaterials.Iron), - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron)); + 'B', new MaterialEntry(TagPrefix.block, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "iron_trapdoor", new ItemStack(Blocks.IRON_TRAPDOOR), "SPS", "PTP", "sPd", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), 'T', ItemTags.WOODEN_TRAPDOORS); VanillaRecipeHelper.addShapedRecipe(provider, "minecart_iron", new ItemStack(Items.MINECART), " h ", "PwP", "WPW", 'W', GTItems.IRON_MINECART_WHEELS.asStack(), - 'P', new UnificationEntry(plate, Iron)); + 'P', new MaterialEntry(plate, Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "minecart_steel", new ItemStack(Items.MINECART), " h ", "PwP", "WPW", 'W', GTItems.STEEL_MINECART_WHEELS.asStack(), - 'P', new UnificationEntry(plate, Steel)); + 'P', new MaterialEntry(plate, Steel)); } private static void flintAndSteelRequireSteel(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "flint_and_steel", new ItemStack(Items.FLINT_AND_STEEL), "G", "F", "S", - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Steel), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Steel), 'F', new ItemStack(Items.FLINT), - 'S', new UnificationEntry(TagPrefix.springSmall, GTMaterials.Steel)); + 'S', new MaterialEntry(TagPrefix.springSmall, GTMaterials.Steel)); } private static void removeVanillaBlockRecipes(Consumer provider) { @@ -1436,65 +1436,65 @@ private static void removeVanillaBlockRecipes(Consumer provider) private static void createShovelRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "hPf", " S ", " S ", - 'P', new UnificationEntry(TagPrefix.plate, material), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'P', new MaterialEntry(TagPrefix.plate, material), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); } private static void createPickaxeRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PII", "hSf", " S ", - 'P', new UnificationEntry(TagPrefix.plate, material), + 'P', new MaterialEntry(TagPrefix.plate, material), 'I', - new UnificationEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + new MaterialEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); } private static void createAxeRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PIf", "PS ", "hS ", - 'P', new UnificationEntry(TagPrefix.plate, material), + 'P', new MaterialEntry(TagPrefix.plate, material), 'I', - new UnificationEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + new MaterialEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); } private static void createSwordRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, " P ", "hPf", " S ", - 'P', new UnificationEntry(TagPrefix.plate, material), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + 'P', new MaterialEntry(TagPrefix.plate, material), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); } private static void createHoeRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PIf", "hS ", " S ", - 'P', new UnificationEntry(TagPrefix.plate, material), + 'P', new MaterialEntry(TagPrefix.plate, material), 'I', - new UnificationEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), - 'S', new UnificationEntry(TagPrefix.rod, GTMaterials.Wood)); + new MaterialEntry(material.equals(GTMaterials.Diamond) ? TagPrefix.gem : TagPrefix.ingot, material), + 'S', new MaterialEntry(TagPrefix.rod, GTMaterials.Wood)); } private static void createHelmetRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PPP", "PhP", - 'P', new UnificationEntry(TagPrefix.plate, material)); + 'P', new MaterialEntry(TagPrefix.plate, material)); } private static void createChestplateRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PhP", "PPP", "PPP", - 'P', new UnificationEntry(TagPrefix.plate, material)); + 'P', new MaterialEntry(TagPrefix.plate, material)); } private static void createLeggingsRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "PPP", "PhP", "P P", - 'P', new UnificationEntry(TagPrefix.plate, material)); + 'P', new MaterialEntry(TagPrefix.plate, material)); } private static void createBootsRecipe(Consumer provider, String regName, ItemStack output, Material material) { VanillaRecipeHelper.addShapedRecipe(provider, regName, output, "P P", "PhP", - 'P', new UnificationEntry(TagPrefix.plate, material)); + 'P', new MaterialEntry(TagPrefix.plate, material)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java index 8feacf2790..9494ced9f1 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java @@ -7,7 +7,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.*; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.registry.MaterialRegistry; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys; import com.gregtechceu.gtceu.api.recipe.ingredient.FluidIngredient; @@ -250,9 +250,9 @@ public static void processSmallDust(TagPrefix orePrefix, Material material, Dust VanillaRecipeHelper.addStrictShapedRecipe(provider, String.format("small_dust_disassembling_%s", material.getName()), - GTUtil.copyAmount(4, smallDustStack), " X ", " ", " ", 'X', new UnificationEntry(dust, material)); + GTUtil.copyAmount(4, smallDustStack), " X ", " ", " ", 'X', new MaterialEntry(dust, material)); VanillaRecipeHelper.addShapedRecipe(provider, String.format("small_dust_assembling_%s", material.getName()), - dustStack, "XX", "XX", 'X', new UnificationEntry(orePrefix, material)); + dustStack, "XX", "XX", 'X', new MaterialEntry(orePrefix, material)); PACKER_RECIPES.recipeBuilder("package_" + material.getName() + "_small_dust") .inputItems(orePrefix, material, 4) @@ -275,9 +275,9 @@ public static void processTinyDust(TagPrefix orePrefix, Material material, DustP VanillaRecipeHelper.addStrictShapedRecipe(provider, String.format("tiny_dust_disassembling_%s", material.getName()), - GTUtil.copyAmount(9, tinyDustStack), "X ", " ", " ", 'X', new UnificationEntry(dust, material)); + GTUtil.copyAmount(9, tinyDustStack), "X ", " ", " ", 'X', new MaterialEntry(dust, material)); VanillaRecipeHelper.addShapedRecipe(provider, String.format("tiny_dust_assembling_%s", material.getName()), - dustStack, "XXX", "XXX", "XXX", 'X', new UnificationEntry(orePrefix, material)); + dustStack, "XXX", "XXX", "XXX", 'X', new MaterialEntry(orePrefix, material)); PACKER_RECIPES.recipeBuilder("package_" + material.getName() + "_tiny_dust") .inputItems(orePrefix, material, 9) @@ -296,7 +296,7 @@ public static void processIngot(TagPrefix ingotPrefix, Material material, IngotP Consumer provider) { if (material.hasFlag(MORTAR_GRINDABLE)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("mortar_grind_%s", material.getName()), - ChemicalHelper.get(dust, material), "X", "m", 'X', new UnificationEntry(ingotPrefix, material)); + ChemicalHelper.get(dust, material), "X", "m", 'X', new MaterialEntry(ingotPrefix, material)); } var magMaterial = material.hasFlag(IS_MAGNETIC) ? @@ -306,7 +306,7 @@ public static void processIngot(TagPrefix ingotPrefix, Material material, IngotP VanillaRecipeHelper.addShapedRecipe(provider, String.format("stick_%s", material.getName()), ChemicalHelper.get(rod, magMaterial), "f ", " X", - 'X', new UnificationEntry(ingotPrefix, material)); + 'X', new MaterialEntry(ingotPrefix, material)); if (!material.hasFlag(NO_WORKING)) { EXTRUDER_RECIPES.recipeBuilder("extrude_" + material.getName() + "_to_rod") .inputItems(ingotPrefix, material) @@ -381,7 +381,7 @@ public static void processIngot(TagPrefix ingotPrefix, Material material, IngotP .save(provider); VanillaRecipeHelper.addShapedRecipe(provider, String.format("plate_%s", material.getName()), - plateStack, "h", "I", "I", 'I', new UnificationEntry(ingotPrefix, material)); + plateStack, "h", "I", "I", 'I', new MaterialEntry(ingotPrefix, material)); } } @@ -418,7 +418,7 @@ public static void processGemConversion(TagPrefix gemPrefix, Material material, String.format("gem_to_dust_%s_%s", material.getName(), FormattingUtil.toLowerCaseUnder(gemPrefix.name)), crushedStack, - "X", "m", 'X', new UnificationEntry(gemPrefix, material)); + "X", "m", 'X', new MaterialEntry(gemPrefix, material)); } TagPrefix prevPrefix = GTUtil.getItem(GEM_ORDER, GEM_ORDER.indexOf(gemPrefix) - 1, null); @@ -428,7 +428,7 @@ public static void processGemConversion(TagPrefix gemPrefix, Material material, String.format("gem_to_gem_%s_%s", FormattingUtil.toLowerCaseUnder(prevPrefix.name), material.getName()), prevStack, - 'h', new UnificationEntry(gemPrefix, material)); + 'h', new MaterialEntry(gemPrefix, material)); CUTTER_RECIPES .recipeBuilder("cut_" + material.getName() + "_" + FormattingUtil.toLowerCaseUnder(gemPrefix.name) + @@ -463,12 +463,12 @@ public static void processNugget(TagPrefix orePrefix, Material material, DustPro if (!ingot.isIgnored(material)) { VanillaRecipeHelper.addShapelessRecipe(provider, String.format("nugget_disassembling_%s", material.getName()), - GTUtil.copyAmount(9, nuggetStack), new UnificationEntry(ingot, material)); + GTUtil.copyAmount(9, nuggetStack), new MaterialEntry(ingot, material)); } if (!orePrefix.isIgnored(material)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("nugget_assembling_%s", material.getName()), - ingotStack, "XXX", "XXX", "XXX", 'X', new UnificationEntry(orePrefix, material)); + ingotStack, "XXX", "XXX", "XXX", 'X', new MaterialEntry(orePrefix, material)); } } @@ -501,12 +501,12 @@ public static void processNugget(TagPrefix orePrefix, Material material, DustPro if (!gem.isIgnored(material)) { VanillaRecipeHelper.addShapelessRecipe(provider, String.format("nugget_disassembling_%s", material.getName()), - GTUtil.copyAmount(9, nuggetStack), new UnificationEntry(gem, material)); + GTUtil.copyAmount(9, nuggetStack), new MaterialEntry(gem, material)); } if (!orePrefix.isIgnored(material)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("nugget_assembling_%s", material.getName()), - gemStack, "XXX", "XXX", "XXX", 'X', new UnificationEntry(orePrefix, material)); + gemStack, "XXX", "XXX", "XXX", 'X', new MaterialEntry(orePrefix, material)); } } } @@ -519,7 +519,7 @@ public static void processFrame(TagPrefix framePrefix, Material material, DustPr VanillaRecipeHelper.addShapedRecipe(provider, String.format("frame_%s", material.getName()), ChemicalHelper.get(framePrefix, material, 2), "SSS", isWoodenFrame ? "SsS" : "SwS", "SSS", - 'S', new UnificationEntry(rod, material)); + 'S', new MaterialEntry(rod, material)); ASSEMBLER_RECIPES.recipeBuilder("assemble_" + material.getName() + "_frame") .inputItems(rod, material, 4) @@ -556,13 +556,13 @@ public static void processBlock(TagPrefix blockPrefix, Material material, DustPr } } - UnificationEntry blockEntry; + MaterialEntry blockEntry; if (material.hasProperty(PropertyKey.GEM)) { - blockEntry = new UnificationEntry(gem, material); + blockEntry = new MaterialEntry(gem, material); } else if (material.hasProperty(PropertyKey.INGOT)) { - blockEntry = new UnificationEntry(ingot, material); + blockEntry = new MaterialEntry(ingot, material); } else { - blockEntry = new UnificationEntry(dust, material); + blockEntry = new MaterialEntry(dust, material); } // do not allow handcrafting or uncrafting, extruding or alloy smelting of blacklisted blocks @@ -584,7 +584,7 @@ public static void processBlock(TagPrefix blockPrefix, Material material, DustPr VanillaRecipeHelper.addShapelessRecipe(provider, String.format("block_decompress_%s", material.getName()), GTUtil.copyAmount(size, ChemicalHelper.get(blockEntry.tagPrefix, blockEntry.material)), - new UnificationEntry(blockPrefix, material)); + new MaterialEntry(blockPrefix, material)); } if (material.hasProperty(PropertyKey.INGOT)) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java index ab640bd160..57c63d279e 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java @@ -6,7 +6,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.OreProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; @@ -318,7 +318,7 @@ public static void processCrushedOre(TagPrefix crushedPrefix, Material material, } VanillaRecipeHelper.addShapelessRecipe(provider, String.format("crushed_ore_to_dust_%s", material.getName()), - impureDustStack, 'h', new UnificationEntry(crushedPrefix, material)); + impureDustStack, 'h', new MaterialEntry(crushedPrefix, material)); processMetalSmelting(crushedPrefix, material, property, provider); } @@ -346,7 +346,7 @@ public static void processCrushedCentrifuged(TagPrefix centrifugedPrefix, Materi VanillaRecipeHelper.addShapelessRecipe(provider, String.format("centrifuged_ore_to_dust_%s", material.getName()), dustStack, - 'h', new UnificationEntry(centrifugedPrefix, material)); + 'h', new MaterialEntry(centrifugedPrefix, material)); processMetalSmelting(centrifugedPrefix, material, property, provider); } @@ -377,7 +377,7 @@ public static void processCrushedPurified(TagPrefix purifiedPrefix, Material mat VanillaRecipeHelper.addShapelessRecipe(provider, String.format("purified_ore_to_dust_%s", material.getName()), dustStack, - 'h', new UnificationEntry(purifiedPrefix, material)); + 'h', new MaterialEntry(purifiedPrefix, material)); if (!crushedCentrifugedStack.isEmpty()) { THERMAL_CENTRIFUGE_RECIPES diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PartsRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PartsRecipeHandler.java index 6594ea680f..e7c6da11ab 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PartsRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PartsRecipeHandler.java @@ -3,7 +3,7 @@ import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.*; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTItems; import com.gregtechceu.gtceu.common.data.GTMaterials; @@ -99,7 +99,7 @@ public static void processScrew(TagPrefix screwPrefix, Material material, DustPr VanillaRecipeHelper.addShapedRecipe(provider, String.format("screw_%s", material.getName()), screwStack, "fX", "X ", - 'X', new UnificationEntry(bolt, material)); + 'X', new MaterialEntry(bolt, material)); } public static void processFoil(TagPrefix foilPrefix, Material material, IngotProperty property, @@ -109,7 +109,7 @@ public static void processFoil(TagPrefix foilPrefix, Material material, IngotPro if (!material.hasFlag(NO_SMASHING)) VanillaRecipeHelper.addShapedRecipe(provider, String.format("foil_%s", material.getName()), ChemicalHelper.get(foilPrefix, material, 2), - "hP ", 'P', new UnificationEntry(plate, magMaterial)); + "hP ", 'P', new MaterialEntry(plate, magMaterial)); BENDER_RECIPES.recipeBuilder("bend_" + material.getName() + "_plate_to_foil") .inputItems(plate, material) @@ -153,7 +153,7 @@ public static void processFineWire(TagPrefix fineWirePrefix, Material material, if (!ChemicalHelper.get(foil, material).isEmpty()) VanillaRecipeHelper.addShapelessRecipe(provider, String.format("fine_wire_%s", material.getName()), - fineWireStack, 'x', new UnificationEntry(foil, material)); + fineWireStack, 'x', new MaterialEntry(foil, material)); if (material.hasProperty(PropertyKey.WIRE)) { WIREMILL_RECIPES.recipeBuilder("mill_" + material.getName() + "_wire_to_fine_wire") @@ -221,8 +221,8 @@ public static void processGear(TagPrefix gearPrefix, Material material, DustProp if (gearPrefix == gearSmall) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("small_gear_%s", material.getName()), stack, - " R ", "hPx", " R ", 'R', new UnificationEntry(rod, material), 'P', - new UnificationEntry(plate, material)); + " R ", "hPx", " R ", 'R', new MaterialEntry(rod, material), 'P', + new MaterialEntry(plate, material)); EXTRUDER_RECIPES.recipeBuilder("extrude_" + material.getName() + "_ingot_to_small_gear") .inputItems(ingot, material) @@ -252,8 +252,8 @@ public static void processGear(TagPrefix gearPrefix, Material material, DustProp } else { VanillaRecipeHelper.addShapedRecipe(provider, String.format("gear_%s", material.getName()), stack, "RPR", "PwP", "RPR", - 'P', new UnificationEntry(plate, material), - 'R', new UnificationEntry(rod, material)); + 'P', new MaterialEntry(plate, material), + 'R', new MaterialEntry(rod, material)); } } } @@ -298,7 +298,7 @@ public static void processPlateDouble(TagPrefix doublePrefix, Material material, if (!material.hasFlag(NO_SMASHING)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("plate_double_%s", material.getName()), ChemicalHelper.get(doublePrefix, magMaterial), - "h", "P", "P", 'P', new UnificationEntry(plate, material)); + "h", "P", "P", 'P', new MaterialEntry(plate, material)); } BENDER_RECIPES.recipeBuilder("bend_" + material.getName() + "_plate_to_double_plate") @@ -355,7 +355,7 @@ public static void processRing(TagPrefix ringPrefix, Material material, IngotPro VanillaRecipeHelper.addShapedRecipe(provider, String.format("ring_%s", material.getName()), ChemicalHelper.get(ringPrefix, material), "h ", " X", - 'X', new UnificationEntry(rod, material)); + 'X', new MaterialEntry(rod, material)); } else { EXTRUDER_RECIPES.recipeBuilder("extrude_" + material.getName() + "_dust_to_ring") .inputItems(dust, material) @@ -371,7 +371,7 @@ public static void processSpringSmall(TagPrefix springPrefix, Material material, Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("spring_small_%s", material.getName()), ChemicalHelper.get(springSmall, material), - " s ", "fRx", 'R', new UnificationEntry(rod, material)); + " s ", "fRx", 'R', new MaterialEntry(rod, material)); BENDER_RECIPES.recipeBuilder("bend_" + material.getName() + "_rod_to_small_spring") .duration((int) (material.getMass() / 2)).EUt(VA[ULV]) @@ -393,7 +393,7 @@ public static void processSpring(TagPrefix springPrefix, Material material, Ingo VanillaRecipeHelper.addShapedRecipe(provider, String.format("spring_%s", material.getName()), ChemicalHelper.get(spring, material), - " s ", "fRx", " R ", 'R', new UnificationEntry(rodLong, material)); + " s ", "fRx", " R ", 'R', new MaterialEntry(rodLong, material)); } public static void processRotor(TagPrefix rotorPrefix, Material material, IngotProperty property, @@ -401,9 +401,9 @@ public static void processRotor(TagPrefix rotorPrefix, Material material, IngotP ItemStack stack = ChemicalHelper.get(rotorPrefix, material); VanillaRecipeHelper.addShapedRecipe(provider, String.format("rotor_%s", material.getName()), stack, "ChC", "SRf", "CdC", - 'C', new UnificationEntry(plate, material), - 'S', new UnificationEntry(screw, material), - 'R', new UnificationEntry(ring, material)); + 'C', new MaterialEntry(plate, material), + 'S', new MaterialEntry(screw, material), + 'R', new MaterialEntry(ring, material)); if (material.hasFluid()) { FLUID_SOLIDFICATION_RECIPES.recipeBuilder("solidify_" + material.getName() + "_to_rotor") @@ -466,7 +466,7 @@ public static void processStick(TagPrefix stickPrefix, Material material, DustPr VanillaRecipeHelper.addShapedRecipe(provider, String.format("bolt_saw_%s", material.getName()), GTUtil.copyAmount(2, boltStack), "s ", " X", - 'X', new UnificationEntry(rod, material)); + 'X', new MaterialEntry(rod, material)); } } @@ -485,7 +485,7 @@ public static void processLongStick(TagPrefix longStickPrefix, Material material VanillaRecipeHelper.addShapedRecipe(provider, String.format("stick_long_%s", material.getName()), GTUtil.copyAmount(2, stickStack), - "s", "X", 'X', new UnificationEntry(rodLong, material)); + "s", "X", 'X', new MaterialEntry(rodLong, material)); if (material.hasProperty(PropertyKey.GEM)) { VanillaRecipeHelper.addShapedRecipe(provider, @@ -493,19 +493,19 @@ public static void processLongStick(TagPrefix longStickPrefix, Material material stickStack, "sf", "G ", - 'G', new UnificationEntry(gemFlawless, material)); + 'G', new MaterialEntry(gemFlawless, material)); VanillaRecipeHelper.addShapedRecipe(provider, String.format("stick_long_gem_exquisite_%s", material.getName()), GTUtil.copyAmount(2, stickStack), "sf", "G ", - 'G', new UnificationEntry(gemExquisite, material)); + 'G', new MaterialEntry(gemExquisite, material)); } VanillaRecipeHelper.addShapedRecipe(provider, String.format("stick_long_stick_%s", material.getName()), stack, "ShS", - 'S', new UnificationEntry(rod, material)); + 'S', new MaterialEntry(rod, material)); FORGE_HAMMER_RECIPES.recipeBuilder("hammer_" + material.getName() + "_rod_to_long_rod") .inputItems(rod, material, 2) @@ -560,8 +560,8 @@ public static void processTurbine(TagPrefix toolPrefix, Material material, Ingot VanillaRecipeHelper.addShapedRecipe(provider, String.format("turbine_blade_%s", material.getName()), ChemicalHelper.get(toolPrefix, material), "PPP", "SPS", "fPd", - 'P', new UnificationEntry(plateDouble, material), - 'S', new UnificationEntry(screw, material)); + 'P', new MaterialEntry(plateDouble, material), + 'S', new MaterialEntry(screw, material)); } public static void processRound(TagPrefix roundPrefix, Material material, IngotProperty property, @@ -572,11 +572,11 @@ public static void processRound(TagPrefix roundPrefix, Material material, IngotP VanillaRecipeHelper.addShapedRecipe(provider, String.format("round_%s", material.getName()), ChemicalHelper.get(round, outputMaterial), - "fN", "Nh", 'N', new UnificationEntry(nugget, material)); + "fN", "Nh", 'N', new MaterialEntry(nugget, material)); VanillaRecipeHelper.addShapedRecipe(provider, String.format("round_from_ingot_%s", material.getName()), ChemicalHelper.get(round, outputMaterial, 4), - "fIh", 'I', new UnificationEntry(ingot, material)); + "fIh", 'I', new MaterialEntry(ingot, material)); } LATHE_RECIPES.recipeBuilder("lathe_" + material.getName() + "_nugget_to_round") diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java index d8a943a49a..7cdf3a4b9b 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java @@ -6,7 +6,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.IMaterialProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ItemPipeProperties; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.data.GTItems; @@ -74,7 +74,7 @@ private static void processRestrictivePipe(TagPrefix pipePrefix, Material materi VanillaRecipeHelper.addShapedRecipe(provider, FormattingUtil.toLowerCaseUnder(pipePrefix.toString() + "_" + material.getName()), ChemicalHelper.get(pipePrefix, material), "PR", "Rh", - 'P', new UnificationEntry(unrestrictive, material), 'R', ChemicalHelper.get(ring, Iron)); + 'P', new MaterialEntry(unrestrictive, material), 'R', ChemicalHelper.get(ring, Iron)); } private static void processPipeTiny(TagPrefix pipePrefix, Material material, IMaterialProperty property, @@ -100,7 +100,7 @@ private static void processPipeTiny(TagPrefix pipePrefix, Material material, IMa } else { VanillaRecipeHelper.addShapedRecipe(provider, String.format("tiny_%s_pipe", material.getName()), GTUtil.copyAmount(2, pipeStack), " s ", "hXw", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); } } @@ -127,7 +127,7 @@ private static void processPipeSmall(TagPrefix pipePrefix, Material material, IM } else { VanillaRecipeHelper.addShapedRecipe(provider, String.format("small_%s_pipe", material.getName()), pipeStack, "wXh", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); } } @@ -154,7 +154,7 @@ private static void processPipeNormal(TagPrefix pipePrefix, Material material, I } else { VanillaRecipeHelper.addShapedRecipe(provider, String.format("medium_%s_pipe", material.getName()), pipeStack, "XXX", "w h", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); } } @@ -181,7 +181,7 @@ private static void processPipeLarge(TagPrefix pipePrefix, Material material, IM } else { VanillaRecipeHelper.addShapedRecipe(provider, String.format("large_%s_pipe", material.getName()), pipeStack, "XXX", "w h", "XXX", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); } } @@ -208,7 +208,7 @@ private static void processPipeHuge(TagPrefix pipePrefix, Material material, IMa } else if (plateDouble.doGenerateItem(material)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("huge_%s_pipe", material.getName()), pipeStack, "XXX", "w h", "XXX", - 'X', new UnificationEntry(plateDouble, material)); + 'X', new MaterialEntry(plateDouble, material)); } } @@ -251,16 +251,16 @@ private static void processPipeNonuple(TagPrefix pipePrefix, Material material, private static void addDuctRecipes(Consumer provider, Material material, int outputAmount) { VanillaRecipeHelper.addShapedRecipe(provider, "small_duct_%s".formatted(material.getName()), GTBlocks.DUCT_PIPES[DuctPipeType.SMALL.ordinal()].asStack(outputAmount * 2), "w", "X", "h", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); VanillaRecipeHelper.addShapedRecipe(provider, "medium_duct_%s".formatted(material.getName()), GTBlocks.DUCT_PIPES[DuctPipeType.NORMAL.ordinal()].asStack(outputAmount), " X ", "wXh", " X ", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); VanillaRecipeHelper.addShapedRecipe(provider, "large_duct_%s".formatted(material.getName()), GTBlocks.DUCT_PIPES[DuctPipeType.LARGE.ordinal()].asStack(outputAmount), "XwX", "X X", "XhX", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); VanillaRecipeHelper.addShapedRecipe(provider, "huge_duct_%s".formatted(material.getName()), GTBlocks.DUCT_PIPES[DuctPipeType.HUGE.ordinal()].asStack(outputAmount), "XwX", "X X", "XhX", - 'X', new UnificationEntry(plateDouble, material)); + 'X', new MaterialEntry(plateDouble, material)); } private static int getVoltageMultiplier(Material material) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler.java index 9262389562..a63f2906d7 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler.java @@ -9,7 +9,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.tool.GTToolType; import com.gregtechceu.gtceu.api.item.tool.ToolHelper; @@ -132,9 +132,9 @@ public static void registerPowerUnitRecipes(Consumer provider) { Ingredient.of(batteryStack), powerUnitStack, "S d", "GMG", "PBP", 'M', motorItems.get(tier).asStack(), - 'S', new UnificationEntry(screw, baseMaterials.get(tier)), - 'P', new UnificationEntry(plate, baseMaterials.get(tier)), - 'G', new UnificationEntry(gearSmall, baseMaterials.get(tier)), + 'S', new MaterialEntry(screw, baseMaterials.get(tier)), + 'P', new MaterialEntry(plate, baseMaterials.get(tier)), + 'G', new MaterialEntry(gearSmall, baseMaterials.get(tier)), 'B', batteryStack); } } @@ -144,8 +144,8 @@ public static void registerPowerUnitRecipes(Consumer provider) { private static void processTool(TagPrefix prefix, Material material, ToolProperty property, Consumer provider) { ItemStack stick = new ItemStack(Items.STICK); - UnificationEntry plate = new UnificationEntry(TagPrefix.plate, material); - UnificationEntry ingot = new UnificationEntry( + MaterialEntry plate = new MaterialEntry(TagPrefix.plate, material); + MaterialEntry ingot = new MaterialEntry( material.hasProperty(PropertyKey.GEM) ? TagPrefix.gem : TagPrefix.ingot, material); if (material.hasFlag(GENERATE_PLATE)) { @@ -223,7 +223,7 @@ private static void processTool(TagPrefix prefix, Material material, ToolPropert } if (material.hasFlag(GENERATE_ROD)) { - UnificationEntry rod = new UnificationEntry(TagPrefix.rod, material); + MaterialEntry rod = new MaterialEntry(TagPrefix.rod, material); if (material.hasFlag(GENERATE_PLATE)) { addToolRecipe(provider, material, GTToolType.BUTCHERY_KNIFE, false, @@ -235,7 +235,7 @@ private static void processTool(TagPrefix prefix, Material material, ToolPropert addToolRecipe(provider, material, GTToolType.WIRE_CUTTER, false, "PfP", "hPd", "STS", 'P', plate, - 'T', new UnificationEntry(TagPrefix.screw, material), + 'T', new MaterialEntry(TagPrefix.screw, material), 'S', rod); } else if (!ArrayUtils.contains(softMaterials, material)) { GTCEu.LOGGER @@ -267,9 +267,9 @@ private static void processElectricTool(TagPrefix prefix, Material material, Too TagPrefix toolPrefix; if (material.hasFlag(GENERATE_PLATE)) { - final UnificationEntry plate = new UnificationEntry(TagPrefix.plate, material); - final UnificationEntry steelPlate = new UnificationEntry(TagPrefix.plate, GTMaterials.Steel); - final UnificationEntry steelRing = new UnificationEntry(TagPrefix.ring, GTMaterials.Steel); + final MaterialEntry plate = new MaterialEntry(TagPrefix.plate, material); + final MaterialEntry steelPlate = new MaterialEntry(TagPrefix.plate, GTMaterials.Steel); + final MaterialEntry steelRing = new MaterialEntry(TagPrefix.ring, GTMaterials.Steel); // drill if (property.hasType(GTToolType.DRILL_LV)) { @@ -309,7 +309,7 @@ private static void processElectricTool(TagPrefix prefix, Material material, Too "hXW", "XRX", "WXd", 'X', plate, 'R', steelRing, - 'W', new UnificationEntry(TagPrefix.screw, GTMaterials.Steel)); + 'W', new MaterialEntry(TagPrefix.screw, GTMaterials.Steel)); } // electric wire cutters @@ -325,7 +325,7 @@ private static void processElectricTool(TagPrefix prefix, Material material, Too "XfX", "X X", "SRS", 'X', plate, 'R', steelRing, - 'S', new UnificationEntry(screw, GTMaterials.Steel)); + 'S', new MaterialEntry(screw, GTMaterials.Steel)); } // buzzsaw @@ -364,7 +364,7 @@ private static void processElectricTool(TagPrefix prefix, Material material, Too VanillaRecipeHelper.addShapedRecipe(provider, String.format("screwdriver_tip_%s", material.getName()), ChemicalHelper.get(toolPrefix, material), "fR", " h", - 'R', new UnificationEntry(TagPrefix.rodLong, material)); + 'R', new MaterialEntry(TagPrefix.rodLong, material)); } else { GTCEu.LOGGER.info("Did not find long rod for " + material.getName() + ", skipping electric screwdriver recipe"); @@ -387,7 +387,7 @@ public static void addElectricToolRecipe(TagPrefix toolHead, Material material, Ingredient.of(powerUnitStack), tool, "wHd", " U ", - 'H', new UnificationEntry(toolHead, material), + 'H', new MaterialEntry(toolHead, material), 'U', powerUnitStack); } } @@ -415,7 +415,7 @@ public static void addDyeableToolRecipe(Consumer provider, @NotN for (var color : MarkerMaterials.Color.COLORS.entrySet()) { ToolHelper.getToolTag(toolStack).putInt(ToolHelper.TINT_COLOR_KEY, color.getKey().getTextColor()); Object[] recipeWithDye = ArrayUtils.addAll(recipe, 'D', - new UnificationEntry(TagPrefix.dye, color.getValue())); + new MaterialEntry(TagPrefix.dye, color.getValue())); if (mirrored) { // todo mirrored VanillaRecipeHelper.addShapedRecipe(provider, @@ -440,7 +440,7 @@ public static void registerCustomToolRecipes(Consumer provider) } private static void registerFlintToolRecipes(Consumer provider) { - final UnificationEntry flint = new UnificationEntry(TagPrefix.gem, GTMaterials.Flint); + final MaterialEntry flint = new MaterialEntry(TagPrefix.gem, GTMaterials.Flint); final ItemStack stick = new ItemStack(Items.STICK); addToolRecipe(provider, GTMaterials.Flint, GTToolType.MORTAR, false, @@ -487,7 +487,7 @@ private static void registerMortarRecipes(Consumer provider) { addToolRecipe(provider, material, GTToolType.MORTAR, false, " I ", "SIS", "SSS", 'I', - new UnificationEntry(material.hasProperty(PropertyKey.GEM) ? TagPrefix.gem : TagPrefix.ingot, + new MaterialEntry(material.hasProperty(PropertyKey.GEM) ? TagPrefix.gem : TagPrefix.ingot, material), 'S', new ItemStack(Blocks.STONE)); } @@ -510,13 +510,13 @@ private static void registerSoftToolRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("soft_mallet_%s", material.getName()), ToolHelper.get(GTToolType.SOFT_MALLET, material), "II ", "IIS", "II ", - 'I', new UnificationEntry(TagPrefix.ingot, material), + 'I', new MaterialEntry(TagPrefix.ingot, material), 'S', stick); VanillaRecipeHelper.addShapedRecipe(provider, String.format("plunger_%s", material.getName()), ToolHelper.getAndSetToolData(GTToolType.PLUNGER, material, 128 * (i << 1), 1, 4F, 0F), "xPP", " SP", "S f", - 'P', new UnificationEntry(TagPrefix.plate, material), + 'P', new MaterialEntry(TagPrefix.plate, material), 'S', rod); } } @@ -529,9 +529,9 @@ private static void registerElectricRecipes(Consumer provider) { Ingredient.of(batteryItem), GTItems.PROSPECTOR_LV.asStack(), "EPS", "CDC", "PBP", 'E', GTItems.EMITTER_LV.asStack(), - 'P', new UnificationEntry(plate, GTMaterials.Steel), + 'P', new MaterialEntry(plate, GTMaterials.Steel), 'S', GTItems.SENSOR_LV.asStack(), - 'D', new UnificationEntry(plate, GTMaterials.Glass), + 'D', new MaterialEntry(plate, GTMaterials.Glass), 'C', CustomTags.LV_CIRCUITS, 'B', batteryItem.asStack()); @@ -539,9 +539,9 @@ private static void registerElectricRecipes(Consumer provider) { "lv_magnet_" + batteryItem.getId().getPath(), Ingredient.of(batteryItem), GTItems.ITEM_MAGNET_LV.asStack(), "MwM", "MBM", "CPC", - 'M', new UnificationEntry(rod, GTMaterials.SteelMagnetic), - 'P', new UnificationEntry(plate, GTMaterials.Steel), - 'C', new UnificationEntry(cableGtSingle, GTMaterials.Tin), + 'M', new MaterialEntry(rod, GTMaterials.SteelMagnetic), + 'P', new MaterialEntry(plate, GTMaterials.Steel), + 'C', new MaterialEntry(cableGtSingle, GTMaterials.Tin), 'B', batteryItem.asStack()); } @@ -551,7 +551,7 @@ private static void registerElectricRecipes(Consumer provider) { Ingredient.of(batteryItem), GTItems.PORTABLE_SCANNER.asStack(), "EPS", "CDC", "PBP", 'E', GTItems.EMITTER_MV.asStack(), - 'P', new UnificationEntry(plate, GTMaterials.Aluminium), + 'P', new MaterialEntry(plate, GTMaterials.Aluminium), 'S', GTItems.SENSOR_MV.asStack(), 'D', GTItems.COVER_SCREEN.asStack(), 'C', CustomTags.MV_CIRCUITS, @@ -564,7 +564,7 @@ private static void registerElectricRecipes(Consumer provider) { Ingredient.of(batteryItem), GTItems.PROSPECTOR_HV.asStack(), "EPS", "CDC", "PBP", 'E', GTItems.EMITTER_HV.asStack(), - 'P', new UnificationEntry(plate, GTMaterials.StainlessSteel), + 'P', new MaterialEntry(plate, GTMaterials.StainlessSteel), 'S', GTItems.SENSOR_HV.asStack(), 'D', GTItems.COVER_SCREEN.asStack(), 'C', CustomTags.HV_CIRCUITS, @@ -574,9 +574,9 @@ private static void registerElectricRecipes(Consumer provider) { "hv_magnet_" + batteryItem.getId().getPath(), Ingredient.of(batteryItem), GTItems.ITEM_MAGNET_HV.asStack(), "MwM", "MBM", "CPC", - 'M', new UnificationEntry(rod, GTMaterials.NeodymiumMagnetic), - 'P', new UnificationEntry(plate, GTMaterials.StainlessSteel), - 'C', new UnificationEntry(cableGtSingle, GTMaterials.Gold), + 'M', new MaterialEntry(rod, GTMaterials.NeodymiumMagnetic), + 'P', new MaterialEntry(plate, GTMaterials.StainlessSteel), + 'C', new MaterialEntry(cableGtSingle, GTMaterials.Gold), 'B', batteryItem.asStack()); } @@ -586,7 +586,7 @@ private static void registerElectricRecipes(Consumer provider) { Ingredient.of(batteryItem), GTItems.PROSPECTOR_LuV.asStack(), "EPS", "CDC", "PBP", 'E', GTItems.EMITTER_LuV.asStack(), - 'P', new UnificationEntry(plate, GTMaterials.RhodiumPlatedPalladium), + 'P', new MaterialEntry(plate, GTMaterials.RhodiumPlatedPalladium), 'S', GTItems.SENSOR_LuV.asStack(), 'D', GTItems.COVER_SCREEN.asStack(), 'C', CustomTags.LuV_CIRCUITS, diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireCombiningHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireCombiningHandler.java index 7e1ae80325..98d04d3574 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireCombiningHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireCombiningHandler.java @@ -5,7 +5,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.WireProperties; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; @@ -57,25 +57,25 @@ private static void generateWireCombiningRecipe(TagPrefix wirePrefix, Material m VanillaRecipeHelper.addShapelessRecipe(provider, String.format("%s_wire_%s_doubling", material.getName(), wirePrefix), ChemicalHelper.get(WIRE_DOUBLING_ORDER[wireIndex + 1], material), - new UnificationEntry(wirePrefix, material), - new UnificationEntry(wirePrefix, material)); + new MaterialEntry(wirePrefix, material), + new MaterialEntry(wirePrefix, material)); } if (wireIndex > 0) { VanillaRecipeHelper.addShapelessRecipe(provider, String.format("%s_wire_%s_splitting", material.getName(), wirePrefix), ChemicalHelper.get(WIRE_DOUBLING_ORDER[wireIndex - 1], material, 2), - new UnificationEntry(wirePrefix, material)); + new MaterialEntry(wirePrefix, material)); } if (wireIndex < 3) { VanillaRecipeHelper.addShapelessRecipe(provider, String.format("%s_wire_%s_quadrupling", material.getName(), wirePrefix), ChemicalHelper.get(WIRE_DOUBLING_ORDER[wireIndex + 2], material), - new UnificationEntry(wirePrefix, material), - new UnificationEntry(wirePrefix, material), - new UnificationEntry(wirePrefix, material), - new UnificationEntry(wirePrefix, material)); + new MaterialEntry(wirePrefix, material), + new MaterialEntry(wirePrefix, material), + new MaterialEntry(wirePrefix, material), + new MaterialEntry(wirePrefix, material)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java index ba6b4084bb..2eae74a9b6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java @@ -5,7 +5,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.WireProperties; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTItems; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; @@ -116,7 +116,7 @@ public static void processWires(TagPrefix wirePrefix, Material material, WirePro if (!material.hasFlag(NO_WORKING) && material.hasFlag(GENERATE_PLATE)) { VanillaRecipeHelper.addShapedRecipe(provider, String.format("%s_wire_single", material.getName()), ChemicalHelper.get(wireGtSingle, material), "Xx", - 'X', new UnificationEntry(plate, material)); + 'X', new MaterialEntry(plate, material)); } } @@ -195,7 +195,7 @@ private static void generateManualRecipe(TagPrefix wirePrefix, Material material int cableAmount, Consumer provider) { int insulationAmount = INSULATION_AMOUNT.get(cablePrefix); Object[] ingredients = new Object[insulationAmount + 1]; - ingredients[0] = new UnificationEntry(wirePrefix, material); + ingredients[0] = new MaterialEntry(wirePrefix, material); for (int i = 1; i <= insulationAmount; i++) { ingredients[i] = ChemicalHelper.get(plate, Rubber); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/BatteryRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/BatteryRecipes.java index 0ed160d509..51e12270ce 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/BatteryRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/BatteryRecipes.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.misc; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterials.Color; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.data.recipe.CustomTags; @@ -37,17 +37,17 @@ private static void standardBatteries(Consumer provider) { // :trol: VanillaRecipeHelper.addShapedRecipe(provider, "tantalum_capacitor", BATTERY_ULV_TANTALUM.asStack(2), " F ", "FDF", "B B", - 'F', new UnificationEntry(foil, Manganese), - 'D', new UnificationEntry(dust, Tantalum), - 'B', new UnificationEntry(bolt, Iron)); + 'F', new MaterialEntry(foil, Manganese), + 'D', new MaterialEntry(dust, Tantalum), + 'B', new MaterialEntry(bolt, Iron)); // Battery Hull Recipes // LV VanillaRecipeHelper.addShapedRecipe(provider, "battery_hull_lv", BATTERY_HULL_LV.asStack(), "C", "P", "P", - 'C', new UnificationEntry(cableGtSingle, Tin), - 'P', new UnificationEntry(plate, BatteryAlloy)); + 'C', new MaterialEntry(cableGtSingle, Tin), + 'P', new MaterialEntry(plate, BatteryAlloy)); ASSEMBLER_RECIPES.recipeBuilder("battery_hull_lv") .inputItems(cableGtSingle, Tin) @@ -59,8 +59,8 @@ private static void standardBatteries(Consumer provider) { // MV VanillaRecipeHelper.addShapedRecipe(provider, "battery_hull_mv", BATTERY_HULL_MV.asStack(), "C C", "PPP", "PPP", - 'C', new UnificationEntry(cableGtSingle, Copper), - 'P', new UnificationEntry(plate, BatteryAlloy)); + 'C', new MaterialEntry(cableGtSingle, Copper), + 'P', new MaterialEntry(plate, BatteryAlloy)); ASSEMBLER_RECIPES.recipeBuilder("battery_hull_mv_copper") .inputItems(cableGtSingle, Copper, 2) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CircuitRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CircuitRecipes.java index afed402d3b..23837c3414 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CircuitRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CircuitRecipes.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.misc; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterials.Color; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; import com.gregtechceu.gtceu.config.ConfigHolder; import com.gregtechceu.gtceu.data.recipe.CustomTags; @@ -306,9 +306,9 @@ private static void componentRecipes(Consumer provider) { // Vacuum Tube VanillaRecipeHelper.addShapedRecipe(provider, "vacuum_tube", VACUUM_TUBE.asStack(), "PTP", "WWW", - 'P', new UnificationEntry(bolt, Steel), + 'P', new MaterialEntry(bolt, Steel), 'T', GLASS_TUBE.asStack(), - 'W', new UnificationEntry(wireGtSingle, Copper)); + 'W', new MaterialEntry(wireGtSingle, Copper)); ASSEMBLER_RECIPES.recipeBuilder("vacuum_tube_plain") .inputItems(GLASS_TUBE) @@ -357,43 +357,43 @@ private static void componentRecipes(Consumer provider) { "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireGtSingle, Copper), - 'C', new UnificationEntry(dust, Coal)); + 'W', new MaterialEntry(wireGtSingle, Copper), + 'C', new MaterialEntry(dust, Coal)); VanillaRecipeHelper.addShapedRecipe(provider, "resistor_wire_fine", RESISTOR.asStack(2), "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireFine, Copper), - 'C', new UnificationEntry(dust, Coal)); + 'W', new MaterialEntry(wireFine, Copper), + 'C', new MaterialEntry(dust, Coal)); VanillaRecipeHelper.addShapedRecipe(provider, "resistor_wire_charcoal", RESISTOR.asStack(2), "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireGtSingle, Copper), - 'C', new UnificationEntry(dust, Charcoal)); + 'W', new MaterialEntry(wireGtSingle, Copper), + 'C', new MaterialEntry(dust, Charcoal)); VanillaRecipeHelper.addShapedRecipe(provider, "resistor_wire_fine_charcoal", RESISTOR.asStack(2), "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireFine, Copper), - 'C', new UnificationEntry(dust, Charcoal)); + 'W', new MaterialEntry(wireFine, Copper), + 'C', new MaterialEntry(dust, Charcoal)); VanillaRecipeHelper.addShapedRecipe(provider, "resistor_wire_carbon", RESISTOR.asStack(2), "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireGtSingle, Copper), - 'C', new UnificationEntry(dust, Carbon)); + 'W', new MaterialEntry(wireGtSingle, Copper), + 'C', new MaterialEntry(dust, Carbon)); VanillaRecipeHelper.addShapedRecipe(provider, "resistor_wire_fine_carbon", RESISTOR.asStack(2), "SPS", "WCW", " P ", 'P', new ItemStack(Items.PAPER), 'S', STICKY_RESIN.asStack(), - 'W', new UnificationEntry(wireFine, Copper), - 'C', new UnificationEntry(dust, Carbon)); + 'W', new MaterialEntry(wireFine, Copper), + 'C', new MaterialEntry(dust, Carbon)); ASSEMBLER_RECIPES.recipeBuilder("resistor_coal") .inputItems(dust, Coal) @@ -768,16 +768,16 @@ private static void boardRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "coated_board", COATED_BOARD.asStack(3), "RRR", "PPP", "RRR", 'R', STICKY_RESIN.asStack(), - 'P', new UnificationEntry(plate, Wood)); + 'P', new MaterialEntry(plate, Wood)); VanillaRecipeHelper.addShapelessRecipe(provider, "coated_board_1x", COATED_BOARD.asStack(), - new UnificationEntry(plate, Wood), + new MaterialEntry(plate, Wood), STICKY_RESIN.asStack(), STICKY_RESIN.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, "basic_circuit_board", BASIC_CIRCUIT_BOARD.asStack(), "WWW", "WBW", "WWW", - 'W', new UnificationEntry(wireGtSingle, Copper), + 'W', new MaterialEntry(wireGtSingle, Copper), 'B', COATED_BOARD.asStack()); // Basic Circuit Board @@ -799,7 +799,7 @@ private static void boardRecipes(Consumer provider) { // Good Circuit Board VanillaRecipeHelper.addShapedRecipe(provider, "good_circuit_board", GOOD_CIRCUIT_BOARD.asStack(), "WWW", "WBW", "WWW", - 'W', new UnificationEntry(wireGtSingle, Silver), + 'W', new MaterialEntry(wireGtSingle, Silver), 'B', PHENOLIC_BOARD.asStack()); CHEMICAL_RECIPES.recipeBuilder("good_circuit_board_persulfate").EUt(VA[LV]).duration(300) @@ -1005,10 +1005,10 @@ private static void circuitRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "electronic_circuit_lv", ELECTRONIC_CIRCUIT_LV.asStack(), "RPR", "VBV", "CCC", 'R', RESISTOR.asStack(), - 'P', new UnificationEntry(plate, Steel), + 'P', new MaterialEntry(plate, Steel), 'V', VACUUM_TUBE.asStack(), 'B', BASIC_CIRCUIT_BOARD.asStack(), - 'C', new UnificationEntry(cableGtSingle, RedAlloy)); + 'C', new MaterialEntry(cableGtSingle, RedAlloy)); CIRCUIT_ASSEMBLER_RECIPES.recipeBuilder("electronic_circuit_lv").EUt(16).duration(200) .inputItems(BASIC_CIRCUIT_BOARD) @@ -1021,8 +1021,8 @@ private static void circuitRecipes(Consumer provider) { // MV VanillaRecipeHelper.addShapedRecipe(provider, "electronic_circuit_mv", ELECTRONIC_CIRCUIT_MV.asStack(), "DPD", "CBC", "WCW", - 'W', new UnificationEntry(wireGtSingle, Copper), - 'P', new UnificationEntry(plate, Steel), + 'W', new MaterialEntry(wireGtSingle, Copper), + 'P', new MaterialEntry(plate, Steel), 'C', ELECTRONIC_CIRCUIT_LV.asStack(), 'B', GOOD_CIRCUIT_BOARD.asStack(), 'D', DIODE.asStack()); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java index 20e0117827..8d0f56a4b9 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.misc; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; @@ -26,29 +26,29 @@ public static void init(Consumer provider) { // Motors // Start-------------------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, "electric_motor_lv_steel", ELECTRIC_MOTOR_LV.asStack(), "CWR", - "WMW", "RWC", 'C', new UnificationEntry(cableGtSingle, Tin), 'W', - new UnificationEntry(wireGtSingle, Copper), 'R', new UnificationEntry(rod, Steel), 'M', - new UnificationEntry(rod, SteelMagnetic)); + "WMW", "RWC", 'C', new MaterialEntry(cableGtSingle, Tin), 'W', + new MaterialEntry(wireGtSingle, Copper), 'R', new MaterialEntry(rod, Steel), 'M', + new MaterialEntry(rod, SteelMagnetic)); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_motor_lv_iron", ELECTRIC_MOTOR_LV.asStack(), - "CWR", "WMW", "RWC", 'C', new UnificationEntry(cableGtSingle, Tin), 'W', - new UnificationEntry(wireGtSingle, Copper), 'R', new UnificationEntry(rod, Iron), 'M', - new UnificationEntry(rod, IronMagnetic)); + "CWR", "WMW", "RWC", 'C', new MaterialEntry(cableGtSingle, Tin), 'W', + new MaterialEntry(wireGtSingle, Copper), 'R', new MaterialEntry(rod, Iron), 'M', + new MaterialEntry(rod, IronMagnetic)); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_motor_mv", ELECTRIC_MOTOR_MV.asStack(), "CWR", - "WMW", "RWC", 'C', new UnificationEntry(cableGtSingle, Copper), 'W', - new UnificationEntry(wireGtDouble, Cupronickel), 'R', new UnificationEntry(rod, Aluminium), 'M', - new UnificationEntry(rod, SteelMagnetic)); + "WMW", "RWC", 'C', new MaterialEntry(cableGtSingle, Copper), 'W', + new MaterialEntry(wireGtDouble, Cupronickel), 'R', new MaterialEntry(rod, Aluminium), 'M', + new MaterialEntry(rod, SteelMagnetic)); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_motor_hv", ELECTRIC_MOTOR_HV.asStack(), "CWR", - "WMW", "RWC", 'C', new UnificationEntry(cableGtDouble, Silver), 'W', - new UnificationEntry(wireGtDouble, Electrum), 'R', new UnificationEntry(rod, StainlessSteel), 'M', - new UnificationEntry(rod, SteelMagnetic)); + "WMW", "RWC", 'C', new MaterialEntry(cableGtDouble, Silver), 'W', + new MaterialEntry(wireGtDouble, Electrum), 'R', new MaterialEntry(rod, StainlessSteel), 'M', + new MaterialEntry(rod, SteelMagnetic)); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_motor_ev", ELECTRIC_MOTOR_EV.asStack(), "CWR", - "WMW", "RWC", 'C', new UnificationEntry(cableGtDouble, Aluminium), 'W', - new UnificationEntry(wireGtDouble, Kanthal), 'R', new UnificationEntry(rod, Titanium), 'M', - new UnificationEntry(rod, NeodymiumMagnetic)); + "WMW", "RWC", 'C', new MaterialEntry(cableGtDouble, Aluminium), 'W', + new MaterialEntry(wireGtDouble, Kanthal), 'R', new MaterialEntry(rod, Titanium), 'M', + new MaterialEntry(rod, NeodymiumMagnetic)); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_motor_iv", ELECTRIC_MOTOR_IV.asStack(), "CWR", - "WMW", "RWC", 'C', new UnificationEntry(cableGtDouble, Tungsten), 'W', - new UnificationEntry(wireGtDouble, Graphene), 'R', new UnificationEntry(rod, TungstenSteel), 'M', - new UnificationEntry(rod, NeodymiumMagnetic)); + "WMW", "RWC", 'C', new MaterialEntry(cableGtDouble, Tungsten), 'W', + new MaterialEntry(wireGtDouble, Graphene), 'R', new MaterialEntry(rod, TungstenSteel), 'M', + new MaterialEntry(rod, NeodymiumMagnetic)); ASSEMBLER_RECIPES.recipeBuilder("electric_motor_lv_iron") .inputItems(cableGtSingle, Tin, 2) @@ -162,25 +162,25 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("conveyor_module_lv_%s", name), CONVEYOR_MODULE_LV.asStack(), "RRR", "MCM", "RRR", - 'R', new UnificationEntry(plate, material), 'C', new UnificationEntry(cableGtSingle, Tin), 'M', + 'R', new MaterialEntry(plate, material), 'C', new MaterialEntry(cableGtSingle, Tin), 'M', ELECTRIC_MOTOR_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("conveyor_module_mv_%s", name), CONVEYOR_MODULE_MV.asStack(), "RRR", "MCM", "RRR", - 'R', new UnificationEntry(plate, material), 'C', new UnificationEntry(cableGtSingle, Copper), 'M', + 'R', new MaterialEntry(plate, material), 'C', new MaterialEntry(cableGtSingle, Copper), 'M', ELECTRIC_MOTOR_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("conveyor_module_hv_%s", name), CONVEYOR_MODULE_HV.asStack(), "RRR", "MCM", "RRR", - 'R', new UnificationEntry(plate, material), 'C', new UnificationEntry(cableGtSingle, Gold), 'M', + 'R', new MaterialEntry(plate, material), 'C', new MaterialEntry(cableGtSingle, Gold), 'M', ELECTRIC_MOTOR_HV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("conveyor_module_ev_%s", name), CONVEYOR_MODULE_EV.asStack(), "RRR", "MCM", "RRR", - 'R', new UnificationEntry(plate, material), 'C', new UnificationEntry(cableGtSingle, Aluminium), + 'R', new MaterialEntry(plate, material), 'C', new MaterialEntry(cableGtSingle, Aluminium), 'M', ELECTRIC_MOTOR_EV.asStack()); if (!materialEntry.getValue().equals(Rubber)) VanillaRecipeHelper.addShapedRecipe(provider, material.equals(SiliconeRubber), String.format("conveyor_module_iv_%s", materialEntry.getKey()), CONVEYOR_MODULE_IV.asStack(), - "RRR", "MCM", "RRR", 'R', new UnificationEntry(plate, material), 'C', - new UnificationEntry(cableGtSingle, Tungsten), 'M', ELECTRIC_MOTOR_IV.asStack()); + "RRR", "MCM", "RRR", 'R', new MaterialEntry(plate, material), 'C', + new MaterialEntry(cableGtSingle, Tungsten), 'M', ELECTRIC_MOTOR_IV.asStack()); ASSEMBLER_RECIPES.recipeBuilder("conveyor_module_lv_" + name) .inputItems(cableGtSingle, Tin) @@ -227,31 +227,31 @@ public static void init(Consumer provider) { // Start--------------------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("electric_pump_lv_%s", name), ELECTRIC_PUMP_LV.asStack(), "SXR", "dPw", "RMC", 'S', - new UnificationEntry(screw, Tin), 'X', new UnificationEntry(rotor, Tin), 'P', - new UnificationEntry(pipeNormalFluid, Bronze), 'R', new UnificationEntry(ring, material), 'C', - new UnificationEntry(cableGtSingle, Tin), 'M', ELECTRIC_MOTOR_LV.asStack()); + new MaterialEntry(screw, Tin), 'X', new MaterialEntry(rotor, Tin), 'P', + new MaterialEntry(pipeNormalFluid, Bronze), 'R', new MaterialEntry(ring, material), 'C', + new MaterialEntry(cableGtSingle, Tin), 'M', ELECTRIC_MOTOR_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("electric_pump_mv_%s", name), ELECTRIC_PUMP_MV.asStack(), "SXR", "dPw", "RMC", 'S', - new UnificationEntry(screw, Bronze), 'X', new UnificationEntry(rotor, Bronze), 'P', - new UnificationEntry(pipeNormalFluid, Steel), 'R', new UnificationEntry(ring, material), 'C', - new UnificationEntry(cableGtSingle, Copper), 'M', ELECTRIC_MOTOR_MV.asStack()); + new MaterialEntry(screw, Bronze), 'X', new MaterialEntry(rotor, Bronze), 'P', + new MaterialEntry(pipeNormalFluid, Steel), 'R', new MaterialEntry(ring, material), 'C', + new MaterialEntry(cableGtSingle, Copper), 'M', ELECTRIC_MOTOR_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("electric_pump_hv_%s", name), ELECTRIC_PUMP_HV.asStack(), "SXR", "dPw", "RMC", 'S', - new UnificationEntry(screw, Steel), 'X', new UnificationEntry(rotor, Steel), 'P', - new UnificationEntry(pipeNormalFluid, StainlessSteel), 'R', new UnificationEntry(ring, material), - 'C', new UnificationEntry(cableGtSingle, Gold), 'M', ELECTRIC_MOTOR_HV.asStack()); + new MaterialEntry(screw, Steel), 'X', new MaterialEntry(rotor, Steel), 'P', + new MaterialEntry(pipeNormalFluid, StainlessSteel), 'R', new MaterialEntry(ring, material), + 'C', new MaterialEntry(cableGtSingle, Gold), 'M', ELECTRIC_MOTOR_HV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, material.equals(Rubber), String.format("electric_pump_ev_%s", name), ELECTRIC_PUMP_EV.asStack(), "SXR", "dPw", "RMC", 'S', - new UnificationEntry(screw, StainlessSteel), 'X', new UnificationEntry(rotor, StainlessSteel), 'P', - new UnificationEntry(pipeNormalFluid, Titanium), 'R', new UnificationEntry(ring, material), 'C', - new UnificationEntry(cableGtSingle, Aluminium), 'M', ELECTRIC_MOTOR_EV.asStack()); + new MaterialEntry(screw, StainlessSteel), 'X', new MaterialEntry(rotor, StainlessSteel), 'P', + new MaterialEntry(pipeNormalFluid, Titanium), 'R', new MaterialEntry(ring, material), 'C', + new MaterialEntry(cableGtSingle, Aluminium), 'M', ELECTRIC_MOTOR_EV.asStack()); if (!material.equals(Rubber)) VanillaRecipeHelper.addShapedRecipe(provider, material.equals(SiliconeRubber), String.format("electric_pump_iv_%s", name), ELECTRIC_PUMP_IV.asStack(), "SXR", "dPw", "RMC", - 'S', new UnificationEntry(screw, TungstenSteel), 'X', - new UnificationEntry(rotor, TungstenSteel), 'P', - new UnificationEntry(pipeNormalFluid, TungstenSteel), 'R', new UnificationEntry(ring, material), - 'C', new UnificationEntry(cableGtSingle, Tungsten), 'M', ELECTRIC_MOTOR_IV.asStack()); + 'S', new MaterialEntry(screw, TungstenSteel), 'X', + new MaterialEntry(rotor, TungstenSteel), 'P', + new MaterialEntry(pipeNormalFluid, TungstenSteel), 'R', new MaterialEntry(ring, material), + 'C', new MaterialEntry(cableGtSingle, Tungsten), 'M', ELECTRIC_MOTOR_IV.asStack()); ASSEMBLER_RECIPES.recipeBuilder("electric_pump_lv_" + name) .inputItems(cableGtSingle, Tin) @@ -487,8 +487,8 @@ public static void init(Consumer provider) { // Voiding Covers Start----------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, true, "cover_item_voiding", COVER_ITEM_VOIDING.asStack(), "SDS", - "dPw", " E ", 'S', new UnificationEntry(screw, Steel), 'D', COVER_ITEM_DETECTOR.asStack(), 'P', - new UnificationEntry(pipeNormalItem, Brass), 'E', Items.ENDER_PEARL); + "dPw", " E ", 'S', new MaterialEntry(screw, Steel), 'D', COVER_ITEM_DETECTOR.asStack(), 'P', + new MaterialEntry(pipeNormalItem, Brass), 'E', Items.ENDER_PEARL); ASSEMBLER_RECIPES.recipeBuilder("cover_item_voiding") .inputItems(screw, Steel, 2) @@ -505,8 +505,8 @@ public static void init(Consumer provider) { .duration(100).EUt(VA[LV]).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, true, "cover_fluid_voiding", COVER_FLUID_VOIDING.asStack(), "SDS", - "dPw", " E ", 'S', new UnificationEntry(screw, Steel), 'D', COVER_FLUID_DETECTOR.asStack(), 'P', - new UnificationEntry(pipeNormalFluid, Bronze), 'E', Items.ENDER_PEARL); + "dPw", " E ", 'S', new MaterialEntry(screw, Steel), 'D', COVER_FLUID_DETECTOR.asStack(), 'P', + new MaterialEntry(pipeNormalFluid, Bronze), 'E', Items.ENDER_PEARL); ASSEMBLER_RECIPES.recipeBuilder("cover_fluid_voiding") .inputItems(screw, Steel, 2) @@ -525,25 +525,25 @@ public static void init(Consumer provider) { // Pistons // Start------------------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_piston_lv", ELECTRIC_PISTON_LV.asStack(), "PPP", - "CRR", "CMG", 'P', new UnificationEntry(plate, Steel), 'C', new UnificationEntry(cableGtSingle, Tin), - 'R', new UnificationEntry(rod, Steel), 'G', new UnificationEntry(gearSmall, Steel), 'M', + "CRR", "CMG", 'P', new MaterialEntry(plate, Steel), 'C', new MaterialEntry(cableGtSingle, Tin), + 'R', new MaterialEntry(rod, Steel), 'G', new MaterialEntry(gearSmall, Steel), 'M', ELECTRIC_MOTOR_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_piston_mv", ELECTRIC_PISTON_MV.asStack(), "PPP", - "CRR", "CMG", 'P', new UnificationEntry(plate, Aluminium), 'C', - new UnificationEntry(cableGtSingle, Copper), 'R', new UnificationEntry(rod, Aluminium), 'G', - new UnificationEntry(gearSmall, Aluminium), 'M', ELECTRIC_MOTOR_MV.asStack()); + "CRR", "CMG", 'P', new MaterialEntry(plate, Aluminium), 'C', + new MaterialEntry(cableGtSingle, Copper), 'R', new MaterialEntry(rod, Aluminium), 'G', + new MaterialEntry(gearSmall, Aluminium), 'M', ELECTRIC_MOTOR_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_piston_hv", ELECTRIC_PISTON_HV.asStack(), "PPP", - "CRR", "CMG", 'P', new UnificationEntry(plate, StainlessSteel), 'C', - new UnificationEntry(cableGtSingle, Gold), 'R', new UnificationEntry(rod, StainlessSteel), 'G', - new UnificationEntry(gearSmall, StainlessSteel), 'M', ELECTRIC_MOTOR_HV.asStack()); + "CRR", "CMG", 'P', new MaterialEntry(plate, StainlessSteel), 'C', + new MaterialEntry(cableGtSingle, Gold), 'R', new MaterialEntry(rod, StainlessSteel), 'G', + new MaterialEntry(gearSmall, StainlessSteel), 'M', ELECTRIC_MOTOR_HV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_piston_ev", ELECTRIC_PISTON_EV.asStack(), "PPP", - "CRR", "CMG", 'P', new UnificationEntry(plate, Titanium), 'C', - new UnificationEntry(cableGtSingle, Aluminium), 'R', new UnificationEntry(rod, Titanium), 'G', - new UnificationEntry(gearSmall, Titanium), 'M', ELECTRIC_MOTOR_EV.asStack()); + "CRR", "CMG", 'P', new MaterialEntry(plate, Titanium), 'C', + new MaterialEntry(cableGtSingle, Aluminium), 'R', new MaterialEntry(rod, Titanium), 'G', + new MaterialEntry(gearSmall, Titanium), 'M', ELECTRIC_MOTOR_EV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_piston_iv", ELECTRIC_PISTON_IV.asStack(), "PPP", - "CRR", "CMG", 'P', new UnificationEntry(plate, TungstenSteel), 'C', - new UnificationEntry(cableGtSingle, Tungsten), 'R', new UnificationEntry(rod, TungstenSteel), 'G', - new UnificationEntry(gearSmall, TungstenSteel), 'M', ELECTRIC_MOTOR_IV.asStack()); + "CRR", "CMG", 'P', new MaterialEntry(plate, TungstenSteel), 'C', + new MaterialEntry(cableGtSingle, Tungsten), 'R', new MaterialEntry(rod, TungstenSteel), 'G', + new MaterialEntry(gearSmall, TungstenSteel), 'M', ELECTRIC_MOTOR_IV.asStack()); ASSEMBLER_RECIPES.recipeBuilder("electric_piston_lv") .inputItems(rod, Steel, 2) @@ -648,19 +648,19 @@ public static void init(Consumer provider) { // Robot Arms Start // --------------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, true, "robot_arm_lv", ROBOT_ARM_LV.asStack(), "CCC", "MRM", "PXR", - 'C', new UnificationEntry(cableGtSingle, Tin), 'R', new UnificationEntry(rod, Steel), 'M', + 'C', new MaterialEntry(cableGtSingle, Tin), 'R', new MaterialEntry(rod, Steel), 'M', ELECTRIC_MOTOR_LV.asStack(), 'P', ELECTRIC_PISTON_LV.asStack(), 'X', CustomTags.LV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "robot_arm_mv", ROBOT_ARM_MV.asStack(), "CCC", "MRM", "PXR", - 'C', new UnificationEntry(cableGtSingle, Copper), 'R', new UnificationEntry(rod, Aluminium), 'M', + 'C', new MaterialEntry(cableGtSingle, Copper), 'R', new MaterialEntry(rod, Aluminium), 'M', ELECTRIC_MOTOR_MV.asStack(), 'P', ELECTRIC_PISTON_MV.asStack(), 'X', CustomTags.MV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "robot_arm_hv", ROBOT_ARM_HV.asStack(), "CCC", "MRM", "PXR", - 'C', new UnificationEntry(cableGtSingle, Gold), 'R', new UnificationEntry(rod, StainlessSteel), 'M', + 'C', new MaterialEntry(cableGtSingle, Gold), 'R', new MaterialEntry(rod, StainlessSteel), 'M', ELECTRIC_MOTOR_HV.asStack(), 'P', ELECTRIC_PISTON_HV.asStack(), 'X', CustomTags.HV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "robot_arm_ev", ROBOT_ARM_EV.asStack(), "CCC", "MRM", "PXR", - 'C', new UnificationEntry(cableGtSingle, Aluminium), 'R', new UnificationEntry(rod, Titanium), 'M', + 'C', new MaterialEntry(cableGtSingle, Aluminium), 'R', new MaterialEntry(rod, Titanium), 'M', ELECTRIC_MOTOR_EV.asStack(), 'P', ELECTRIC_PISTON_EV.asStack(), 'X', CustomTags.EV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "robot_arm_iv", ROBOT_ARM_IV.asStack(), "CCC", "MRM", "PXR", - 'C', new UnificationEntry(cableGtSingle, Tungsten), 'R', new UnificationEntry(rod, TungstenSteel), 'M', + 'C', new MaterialEntry(cableGtSingle, Tungsten), 'R', new MaterialEntry(rod, TungstenSteel), 'M', ELECTRIC_MOTOR_IV.asStack(), 'P', ELECTRIC_PISTON_IV.asStack(), 'X', CustomTags.IV_CIRCUITS); ASSEMBLER_RECIPES.recipeBuilder("robot_arm_lv") @@ -769,23 +769,23 @@ public static void init(Consumer provider) { // Field Generators Start // --------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, true, "field_generator_lv", FIELD_GENERATOR_LV.asStack(), "WPW", - "XGX", "WPW", 'W', new UnificationEntry(wireGtQuadruple, ManganesePhosphide), 'P', - new UnificationEntry(plate, Steel), 'G', new UnificationEntry(gem, EnderPearl), 'X', + "XGX", "WPW", 'W', new MaterialEntry(wireGtQuadruple, ManganesePhosphide), 'P', + new MaterialEntry(plate, Steel), 'G', new MaterialEntry(gem, EnderPearl), 'X', CustomTags.LV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "field_generator_mv", FIELD_GENERATOR_MV.asStack(), "WPW", - "XGX", "WPW", 'W', new UnificationEntry(wireGtQuadruple, MagnesiumDiboride), 'P', - new UnificationEntry(plate, Aluminium), 'G', new UnificationEntry(gem, EnderEye), 'X', + "XGX", "WPW", 'W', new MaterialEntry(wireGtQuadruple, MagnesiumDiboride), 'P', + new MaterialEntry(plate, Aluminium), 'G', new MaterialEntry(gem, EnderEye), 'X', CustomTags.MV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "field_generator_hv", FIELD_GENERATOR_HV.asStack(), "WPW", - "XGX", "WPW", 'W', new UnificationEntry(wireGtQuadruple, MercuryBariumCalciumCuprate), 'P', - new UnificationEntry(plate, StainlessSteel), 'G', QUANTUM_EYE.asStack(), 'X', CustomTags.HV_CIRCUITS); + "XGX", "WPW", 'W', new MaterialEntry(wireGtQuadruple, MercuryBariumCalciumCuprate), 'P', + new MaterialEntry(plate, StainlessSteel), 'G', QUANTUM_EYE.asStack(), 'X', CustomTags.HV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "field_generator_ev", FIELD_GENERATOR_EV.asStack(), "WPW", - "XGX", "WPW", 'W', new UnificationEntry(wireGtQuadruple, UraniumTriplatinum), 'P', - new UnificationEntry(plateDouble, Titanium), 'G', new UnificationEntry(gem, NetherStar), 'X', + "XGX", "WPW", 'W', new MaterialEntry(wireGtQuadruple, UraniumTriplatinum), 'P', + new MaterialEntry(plateDouble, Titanium), 'G', new MaterialEntry(gem, NetherStar), 'X', CustomTags.EV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "field_generator_iv", FIELD_GENERATOR_IV.asStack(), "WPW", - "XGX", "WPW", 'W', new UnificationEntry(wireGtQuadruple, SamariumIronArsenicOxide), 'P', - new UnificationEntry(plateDouble, TungstenSteel), 'G', QUANTUM_STAR.asStack(), 'X', + "XGX", "WPW", 'W', new MaterialEntry(wireGtQuadruple, SamariumIronArsenicOxide), 'P', + new MaterialEntry(plateDouble, TungstenSteel), 'G', QUANTUM_STAR.asStack(), 'X', CustomTags.IV_CIRCUITS); ASSEMBLER_RECIPES.recipeBuilder("field_generator_lv") @@ -882,19 +882,19 @@ public static void init(Consumer provider) { // Sensors // Start------------------------------------------------------------------------------------------------- VanillaRecipeHelper.addShapedRecipe(provider, true, "sensor_lv", SENSOR_LV.asStack(), "P G", "PR ", "XPP", 'P', - new UnificationEntry(plate, Steel), 'R', new UnificationEntry(rod, Brass), 'G', - new UnificationEntry(gem, Quartzite), 'X', CustomTags.LV_CIRCUITS); + new MaterialEntry(plate, Steel), 'R', new MaterialEntry(rod, Brass), 'G', + new MaterialEntry(gem, Quartzite), 'X', CustomTags.LV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "sensor_mv", SENSOR_MV.asStack(), "P G", "PR ", "XPP", 'P', - new UnificationEntry(plate, Aluminium), 'R', new UnificationEntry(rod, Electrum), 'G', - new UnificationEntry(gemFlawless, Emerald), 'X', CustomTags.MV_CIRCUITS); + new MaterialEntry(plate, Aluminium), 'R', new MaterialEntry(rod, Electrum), 'G', + new MaterialEntry(gemFlawless, Emerald), 'X', CustomTags.MV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "sensor_hv", SENSOR_HV.asStack(), "P G", "PR ", "XPP", 'P', - new UnificationEntry(plate, StainlessSteel), 'R', new UnificationEntry(rod, Chromium), 'G', - new UnificationEntry(gem, EnderEye), 'X', CustomTags.HV_CIRCUITS); + new MaterialEntry(plate, StainlessSteel), 'R', new MaterialEntry(rod, Chromium), 'G', + new MaterialEntry(gem, EnderEye), 'X', CustomTags.HV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "sensor_ev", SENSOR_EV.asStack(), "P G", "PR ", "XPP", 'P', - new UnificationEntry(plate, Titanium), 'R', new UnificationEntry(rod, Platinum), 'G', + new MaterialEntry(plate, Titanium), 'R', new MaterialEntry(rod, Platinum), 'G', QUANTUM_EYE.asStack(), 'X', CustomTags.EV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "sensor_iv", SENSOR_IV.asStack(), "P G", "PR ", "XPP", 'P', - new UnificationEntry(plate, TungstenSteel), 'R', new UnificationEntry(rod, Iridium), 'G', + new MaterialEntry(plate, TungstenSteel), 'R', new MaterialEntry(rod, Iridium), 'G', QUANTUM_STAR.asStack(), 'X', CustomTags.IV_CIRCUITS); ASSEMBLER_RECIPES.recipeBuilder("sensor_lv") @@ -991,19 +991,19 @@ public static void init(Consumer provider) { // Emitters // Start------------------------------------------------------------------------------------------------ VanillaRecipeHelper.addShapedRecipe(provider, true, "emitter_lv", EMITTER_LV.asStack(), "CRX", "RGR", "XRC", - 'R', new UnificationEntry(rod, Brass), 'C', new UnificationEntry(cableGtSingle, Tin), 'G', - new UnificationEntry(gem, Quartzite), 'X', CustomTags.LV_CIRCUITS); + 'R', new MaterialEntry(rod, Brass), 'C', new MaterialEntry(cableGtSingle, Tin), 'G', + new MaterialEntry(gem, Quartzite), 'X', CustomTags.LV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "emitter_mv", EMITTER_MV.asStack(), "CRX", "RGR", "XRC", - 'R', new UnificationEntry(rod, Electrum), 'C', new UnificationEntry(cableGtSingle, Copper), 'G', - new UnificationEntry(gemFlawless, Emerald), 'X', CustomTags.MV_CIRCUITS); + 'R', new MaterialEntry(rod, Electrum), 'C', new MaterialEntry(cableGtSingle, Copper), 'G', + new MaterialEntry(gemFlawless, Emerald), 'X', CustomTags.MV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "emitter_hv", EMITTER_HV.asStack(), "CRX", "RGR", "XRC", - 'R', new UnificationEntry(rod, Chromium), 'C', new UnificationEntry(cableGtSingle, Gold), 'G', - new UnificationEntry(gem, EnderEye), 'X', CustomTags.HV_CIRCUITS); + 'R', new MaterialEntry(rod, Chromium), 'C', new MaterialEntry(cableGtSingle, Gold), 'G', + new MaterialEntry(gem, EnderEye), 'X', CustomTags.HV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "emitter_ev", EMITTER_EV.asStack(), "CRX", "RGR", "XRC", - 'R', new UnificationEntry(rod, Platinum), 'C', new UnificationEntry(cableGtSingle, Aluminium), 'G', + 'R', new MaterialEntry(rod, Platinum), 'C', new MaterialEntry(cableGtSingle, Aluminium), 'G', QUANTUM_EYE.asStack(), 'X', CustomTags.EV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, true, "emitter_iv", EMITTER_IV.asStack(), "CRX", "RGR", "XRC", - 'R', new UnificationEntry(rod, Iridium), 'C', new UnificationEntry(cableGtSingle, Tungsten), 'G', + 'R', new MaterialEntry(rod, Iridium), 'C', new MaterialEntry(cableGtSingle, Tungsten), 'G', QUANTUM_STAR.asStack(), 'X', CustomTags.IV_CIRCUITS); ASSEMBLER_RECIPES.recipeBuilder("emitter_lv") diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CraftingRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CraftingRecipeLoader.java index 72fdb6ba40..ef8fe36b3e 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CraftingRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/CraftingRecipeLoader.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.misc; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.recipe.FacadeCoverRecipe; import com.gregtechceu.gtceu.api.recipe.ingredient.FluidContainerIngredient; import com.gregtechceu.gtceu.common.data.GTBlocks; @@ -49,24 +49,24 @@ public static void init(Consumer provider) { CustomTags.LV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, "item_filter", ITEM_FILTER.asStack(), "XXX", "XYX", "XXX", 'X', - new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Steel)); + new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Steel)); VanillaRecipeHelper.addShapedRecipe(provider, "fluid_filter_lapis", FLUID_FILTER.asStack(), "XXX", "XYX", "XXX", - 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Lapis)); + 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Lapis)); VanillaRecipeHelper.addShapedRecipe(provider, "fluid_filter_lazurite", FLUID_FILTER.asStack(), "XXX", "XYX", - "XXX", 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Lazurite)); + "XXX", 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Lazurite)); VanillaRecipeHelper.addShapedRecipe(provider, "fluid_filter_sodalite", FLUID_FILTER.asStack(), "XXX", "XYX", - "XXX", 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Sodalite)); + "XXX", 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Sodalite)); VanillaRecipeHelper.addShapedRecipe(provider, "tag_filter_olivine", TAG_FILTER.asStack(), - "XXX", "XYX", "XXX", 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Olivine)); + "XXX", "XYX", "XXX", 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Olivine)); VanillaRecipeHelper.addShapedRecipe(provider, "tag_filter_emerald", TAG_FILTER.asStack(), - "XXX", "XYX", "XXX", 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Emerald)); + "XXX", "XYX", "XXX", 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Emerald)); VanillaRecipeHelper.addShapedRecipe(provider, "fluid_tag_filter", TAG_FLUID_FILTER.asStack(), - "XXX", "XYX", "XXX", 'X', new UnificationEntry(foil, Zinc), 'Y', new UnificationEntry(plate, Amethyst)); + "XXX", "XYX", "XXX", 'X', new MaterialEntry(foil, Zinc), 'Y', new MaterialEntry(plate, Amethyst)); VanillaRecipeHelper.addShapedRecipe(provider, "item_smart_filter_olivine", SMART_ITEM_FILTER.asStack(), "XEX", - "XCX", "XEX", 'X', new UnificationEntry(foil, Zinc), 'C', CustomTags.LV_CIRCUITS, 'E', - new UnificationEntry(plate, Ruby)); + "XCX", "XEX", 'X', new MaterialEntry(foil, Zinc), 'C', CustomTags.LV_CIRCUITS, 'E', + new MaterialEntry(plate, Ruby)); VanillaRecipeHelper.addShapedRecipe(provider, "plank_to_wooden_shape", WOODEN_FORM_EMPTY.asStack(), " ", " X ", "s ", 'X', ItemTags.PLANKS); @@ -77,7 +77,7 @@ public static void init(Consumer provider) { "SYS", "SSS", 'Y', WOODEN_FORM_BRICK.asStack(), 'X', new ItemStack(Items.CLAY_BALL), 'S', ItemTags.SAND); VanillaRecipeHelper.addShapelessRecipe(provider, "fireclay_dust", ChemicalHelper.get(dust, Fireclay, 2), - new UnificationEntry(dust, Brick), new UnificationEntry(dust, Clay)); + new MaterialEntry(dust, Brick), new MaterialEntry(dust, Clay)); VanillaRecipeHelper.addSmeltingRecipe(provider, "coke_oven_brick", COMPRESSED_COKE_CLAY.asStack(), COKE_OVEN_BRICK.asStack(), 0.3f); VanillaRecipeHelper.addSmeltingRecipe(provider, "fireclay_brick", COMPRESSED_FIRECLAY.asStack(), @@ -99,7 +99,7 @@ public static void init(Consumer provider) { new FluidContainerIngredient(Creosote.getFluidTag(), 1000)); VanillaRecipeHelper.addShapedRecipe(provider, "rubber_ring", ChemicalHelper.get(ring, Rubber), "k", "X", 'X', - new UnificationEntry(plate, Rubber)); + new MaterialEntry(plate, Rubber)); VanillaRecipeHelper.addShapedRecipe(provider, "silicone_rubber_ring", ChemicalHelper.get(ring, SiliconeRubber), "k", "P", 'P', ChemicalHelper.get(plate, SiliconeRubber)); VanillaRecipeHelper.addShapedRecipe(provider, "styrene_rubber_ring", @@ -107,24 +107,24 @@ public static void init(Consumer provider) { ChemicalHelper.get(plate, StyreneButadieneRubber)); VanillaRecipeHelper.addShapelessRecipe(provider, "iron_magnetic_stick", ChemicalHelper.get(rod, IronMagnetic), - new UnificationEntry(rod, Iron), new UnificationEntry(dust, Redstone), - new UnificationEntry(dust, Redstone), new UnificationEntry(dust, Redstone), - new UnificationEntry(dust, Redstone)); + new MaterialEntry(rod, Iron), new MaterialEntry(dust, Redstone), + new MaterialEntry(dust, Redstone), new MaterialEntry(dust, Redstone), + new MaterialEntry(dust, Redstone)); VanillaRecipeHelper.addShapedRecipe(provider, "component_grinder_diamond", COMPONENT_GRINDER_DIAMOND.asStack(), - "XSX", "SDS", "XSX", 'X', new UnificationEntry(dust, Diamond), 'S', - new UnificationEntry(plateDouble, Steel), 'D', new UnificationEntry(gem, Diamond)); + "XSX", "SDS", "XSX", 'X', new MaterialEntry(dust, Diamond), 'S', + new MaterialEntry(plateDouble, Steel), 'D', new MaterialEntry(gem, Diamond)); VanillaRecipeHelper.addShapedRecipe(provider, "component_grinder_tungsten", - COMPONENT_GRINDER_TUNGSTEN.asStack(), "WSW", "SDS", "WSW", 'W', new UnificationEntry(plate, Tungsten), - 'S', new UnificationEntry(plateDouble, VanadiumSteel), 'D', new UnificationEntry(gem, Diamond)); + COMPONENT_GRINDER_TUNGSTEN.asStack(), "WSW", "SDS", "WSW", 'W', new MaterialEntry(plate, Tungsten), + 'S', new MaterialEntry(plateDouble, VanadiumSteel), 'D', new MaterialEntry(gem, Diamond)); VanillaRecipeHelper.addShapedRecipe(provider, "minecart_wheels_iron", IRON_MINECART_WHEELS.asStack(), " h ", - "RSR", " w ", 'R', new UnificationEntry(ring, Iron), 'S', new UnificationEntry(rod, Iron)); + "RSR", " w ", 'R', new MaterialEntry(ring, Iron), 'S', new MaterialEntry(rod, Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "minecart_wheels_steel", STEEL_MINECART_WHEELS.asStack(), " h ", - "RSR", " w ", 'R', new UnificationEntry(ring, Steel), 'S', new UnificationEntry(rod, Steel)); + "RSR", " w ", 'R', new MaterialEntry(ring, Steel), 'S', new MaterialEntry(rod, Steel)); VanillaRecipeHelper.addShapedRecipe(provider, "nano_saber", NANO_SABER.asStack(), "PIC", "PIC", - "XEX", 'P', new UnificationEntry(plate, Platinum), 'I', new UnificationEntry(plate, Ruridit), 'C', + "XEX", 'P', new MaterialEntry(plate, Platinum), 'I', new MaterialEntry(plate, Ruridit), 'C', CARBON_FIBER_PLATE.asStack(), 'X', CustomTags.EV_CIRCUITS, 'E', ENERGIUM_CRYSTAL.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, "solar_panel_basic", COVER_SOLAR_PANEL.asStack(), "WGW", "CPC", @@ -144,25 +144,25 @@ public static void init(Consumer provider) { 'C', FLUID_CELL_UNIVERSAL); VanillaRecipeHelper.addShapedRecipe(provider, "blacklight", BLACKLIGHT.asStack(), "SPS", "GRG", "CPK", 'S', - new UnificationEntry(screw, TungstenCarbide), 'P', new UnificationEntry(plate, TungstenCarbide), 'G', - GTBlocks.CASING_LAMINATED_GLASS.asStack(), 'R', new UnificationEntry(spring, Europium), 'C', - CustomTags.IV_CIRCUITS, 'K', new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(screw, TungstenCarbide), 'P', new MaterialEntry(plate, TungstenCarbide), 'G', + GTBlocks.CASING_LAMINATED_GLASS.asStack(), 'R', new MaterialEntry(spring, Europium), 'C', + CustomTags.IV_CIRCUITS, 'K', new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "filter_casing", GTBlocks.FILTER_CASING.asStack(), "BBB", "III", "MFR", 'B', new ItemStack(Blocks.IRON_BARS), 'I', ITEM_FILTER.asStack(), 'M', - ELECTRIC_MOTOR_MV.asStack(), 'F', new UnificationEntry(frameGt, Steel), 'R', - new UnificationEntry(rotor, Steel)); + ELECTRIC_MOTOR_MV.asStack(), 'F', new MaterialEntry(frameGt, Steel), 'R', + new MaterialEntry(rotor, Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "filter_casing_sterile", GTBlocks.FILTER_CASING_STERILE.asStack(), "BEB", "ISI", "MFR", 'B', - new UnificationEntry(pipeLargeFluid, Polybenzimidazole), 'E', EMITTER_ZPM.asStack(), 'I', + new MaterialEntry(pipeLargeFluid, Polybenzimidazole), 'E', EMITTER_ZPM.asStack(), 'I', ITEM_FILTER.asStack(), 'S', BLACKLIGHT.asStack(), 'M', ELECTRIC_MOTOR_ZPM.asStack(), 'F', - new UnificationEntry(frameGt, Tritanium), 'R', new UnificationEntry(rotor, NaquadahAlloy)); + new MaterialEntry(frameGt, Tritanium), 'R', new MaterialEntry(rotor, NaquadahAlloy)); /////////////////////////////////////////////////// // Shapes and Molds // /////////////////////////////////////////////////// VanillaRecipeHelper.addShapedRecipe(provider, "shape_empty", SHAPE_EMPTY.asStack(), "hf", "PP", "PP", 'P', - new UnificationEntry(plate, Steel)); + new MaterialEntry(plate, Steel)); VanillaRecipeHelper.addStrictShapedRecipe(provider, "shape_extruder_bottle", SHAPE_EXTRUDER_BOTTLE.asStack(), " x", " S ", " ", 'S', SHAPE_EXTRUDER_RING.asStack()); @@ -237,8 +237,8 @@ public static void init(Consumer provider) { /////////////////////////////////////////////////// // TODO shapeless fluid container recipes VanillaRecipeHelper.addShapelessRecipe(provider, "coin_chocolate", COIN_CHOCOLATE.asStack(), - new UnificationEntry(dust, Cocoa), new UnificationEntry(foil, Gold), new ItemStack(Items.MILK_BUCKET), - new UnificationEntry(dust, Sugar)); + new MaterialEntry(dust, Cocoa), new MaterialEntry(foil, Gold), new ItemStack(Items.MILK_BUCKET), + new MaterialEntry(dust, Sugar)); VanillaRecipeHelper.addShapelessRecipe(provider, "credit_copper", CREDIT_COPPER.asStack(8), CREDIT_CUPRONICKEL.asStack()); @@ -282,20 +282,20 @@ public static void init(Consumer provider) { // Armors // /////////////////////////////////////////////////// VanillaRecipeHelper.addShapedRecipe(provider, "nightvision_goggles", GTItems.NIGHTVISION_GOGGLES.asStack(), - "CSC", "RBR", "LdL", 'C', CustomTags.ULV_CIRCUITS, 'S', new UnificationEntry(screw, Steel), 'R', - new UnificationEntry(ring, Rubber), 'B', GTItems.BATTERY_LV_SODIUM, 'L', - new UnificationEntry(lens, Glass)); + "CSC", "RBR", "LdL", 'C', CustomTags.ULV_CIRCUITS, 'S', new MaterialEntry(screw, Steel), 'R', + new MaterialEntry(ring, Rubber), 'B', GTItems.BATTERY_LV_SODIUM, 'L', + new MaterialEntry(lens, Glass)); VanillaRecipeHelper.addShapedRecipe(provider, "fluid_jetpack", GTItems.LIQUID_FUEL_JETPACK.asStack(), "xCw", "SUS", "RIR", 'C', CustomTags.LV_CIRCUITS, 'S', GTItems.FLUID_CELL_LARGE_STEEL.asStack(), 'U', - GTItems.ELECTRIC_PUMP_LV.asStack(), 'R', new UnificationEntry(rotor, Lead), 'I', - new UnificationEntry(pipeSmallFluid, Potin)); + GTItems.ELECTRIC_PUMP_LV.asStack(), 'R', new MaterialEntry(rotor, Lead), 'I', + new MaterialEntry(pipeSmallFluid, Potin)); VanillaRecipeHelper.addShapedRecipe(provider, "electric_jetpack", GTItems.ELECTRIC_JETPACK.asStack(), "xCd", "TBT", "I I", 'C', CustomTags.MV_CIRCUITS, 'T', GTItems.POWER_THRUSTER.asStack(), 'B', - GTItems.BATTERY_MV_LITHIUM.asStack(), 'I', new UnificationEntry(wireGtDouble, AnnealedCopper)); + GTItems.BATTERY_MV_LITHIUM.asStack(), 'I', new MaterialEntry(wireGtDouble, AnnealedCopper)); VanillaRecipeHelper.addShapedRecipe(provider, "electric_jetpack_advanced", GTItems.ELECTRIC_JETPACK_ADVANCED.asStack(), "xJd", "TBT", "WCW", 'J', GTItems.ELECTRIC_JETPACK.asStack(), 'T', GTItems.POWER_THRUSTER_ADVANCED.asStack(), 'B', - ENERGIUM_CRYSTAL.asStack(), 'W', new UnificationEntry(wireGtQuadruple, Gold), 'C', + ENERGIUM_CRYSTAL.asStack(), 'W', new MaterialEntry(wireGtQuadruple, Gold), 'C', CustomTags.HV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, "nano_helmet", GTItems.NANO_HELMET.asStack(), "PPP", "PNP", "xEd", 'P', GTItems.CARBON_FIBER_PLATE.asStack(), 'N', GTItems.NIGHTVISION_GOGGLES.asStack(), 'E', @@ -309,22 +309,22 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "nano_chestplate_advanced", GTItems.NANO_CHESTPLATE_ADVANCED.asStack(), "xJd", "PNP", "WCW", 'J', GTItems.ELECTRIC_JETPACK_ADVANCED.asStack(), 'P', GTItems.LOW_POWER_INTEGRATED_CIRCUIT.asStack(), 'N', - GTItems.NANO_CHESTPLATE.asStack(), 'W', new UnificationEntry(wireGtQuadruple, Platinum), 'C', + GTItems.NANO_CHESTPLATE.asStack(), 'W', new MaterialEntry(wireGtQuadruple, Platinum), 'C', CustomTags.IV_CIRCUITS); VanillaRecipeHelper.addShapedRecipe(provider, "gravitation_engine", GTItems.GRAVITATION_ENGINE.asStack(), "ESE", - "POP", "ESE", 'E', GTItems.EMITTER_LuV.asStack(), 'S', new UnificationEntry(wireGtQuadruple, Osmium), - 'P', new UnificationEntry(plateDouble, Iridium), 'O', GTItems.ENERGY_LAPOTRONIC_ORB.asStack()); + "POP", "ESE", 'E', GTItems.EMITTER_LuV.asStack(), 'S', new MaterialEntry(wireGtQuadruple, Osmium), + 'P', new MaterialEntry(plateDouble, Iridium), 'O', GTItems.ENERGY_LAPOTRONIC_ORB.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, "face_mask", FACE_MASK.asStack(), "S S", "PPP", 'S', Items.STRING, 'P', Items.PAPER); VanillaRecipeHelper.addShapedRecipe(provider, "rubber_gloves", RUBBER_GLOVES.asStack(), "P P", 'P', - new UnificationEntry(plate, Rubber)); + new MaterialEntry(plate, Rubber)); VanillaRecipeHelper.addShapedRecipe(provider, "powderbarrel", new ItemStack(GTBlocks.POWDERBARREL), "PSP", "GGG", "PGP", - 'P', new UnificationEntry(plate, Wood), + 'P', new MaterialEntry(plate, Wood), 'S', new ItemStack(Items.STRING), - 'G', new UnificationEntry(dust, Gunpowder)); + 'G', new MaterialEntry(dust, Gunpowder)); /////////////////////////////////////////////////// // Special // diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java index 725fd98328..a407afa69f 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java @@ -5,7 +5,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.AlloyBlastProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.*; import com.gregtechceu.gtceu.config.ConfigHolder; @@ -56,127 +56,127 @@ private static void registerManualRecipes(Consumer provider) { private static void registerMultiblockControllerRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "large_macerator", LARGE_MACERATION_TOWER.asStack(), "PCP", - "BXB", "MKM", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plate, TungstenCarbide), 'B', + "BXB", "MKM", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plate, TungstenCarbide), 'B', ELECTRIC_PISTON_IV.asStack(), 'M', ELECTRIC_MOTOR_IV.asStack(), 'X', MACERATOR[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_arc_smelter", LARGE_ARC_SMELTER.asStack(), "KDK", - "CXC", "PPP", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plate, TantalumCarbide), 'X', - GTMachines.ARC_FURNACE[IV].asStack(), 'D', new UnificationEntry(dust, Graphite), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + "CXC", "PPP", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plate, TantalumCarbide), 'X', + GTMachines.ARC_FURNACE[IV].asStack(), 'D', new MaterialEntry(dust, Graphite), 'K', + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_ore_washer", LARGE_CHEMICAL_BATH.asStack(), "PGP", "CXC", "MKM", 'C', CustomTags.IV_CIRCUITS, 'G', CASING_TEMPERED_GLASS.asStack(), 'P', ELECTRIC_PUMP_IV.asStack(), 'M', CONVEYOR_MODULE_IV.asStack(), 'X', ORE_WASHER[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_sifter", LARGE_SIFTING_FUNNEL.asStack(), "PCP", - "EXE", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plate, HSLASteel), 'E', + "EXE", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plate, HSLASteel), 'E', ELECTRIC_PISTON_IV.asStack(), 'X', SIFTER[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_engraver", LARGE_ENGRAVING_LASER.asStack(), "ICI", - "EXE", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plateDouble, TantalumCarbide), 'I', + "EXE", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plateDouble, TantalumCarbide), 'I', EMITTER_IV.asStack(), 'E', ELECTRIC_PISTON_IV.asStack(), 'X', LASER_ENGRAVER[IV].asStack(), 'K', - new UnificationEntry(TagPrefix.cableGtSingle, Platinum)); + new MaterialEntry(TagPrefix.cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_packer", LARGE_PACKER.asStack(), "RCR", "PXP", "KPK", - 'C', CustomTags.EV_CIRCUITS, 'P', new UnificationEntry(plate, HSLASteel), 'R', ROBOT_ARM_HV.asStack(), + 'C', CustomTags.EV_CIRCUITS, 'P', new MaterialEntry(plate, HSLASteel), 'R', ROBOT_ARM_HV.asStack(), 'K', CONVEYOR_MODULE_HV.asStack(), 'X', PACKER[HV].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_mixer", LARGE_MIXER.asStack(), "FCF", "RXR", "MKM", 'C', CustomTags.IV_CIRCUITS, 'F', ChemicalHelper.get(pipeNormalFluid, Polybenzimidazole), 'R', ChemicalHelper.get(rotor, Osmiridium), 'M', ELECTRIC_MOTOR_IV.asStack(), 'X', MIXER[IV].asStack(), 'K', - new UnificationEntry(TagPrefix.cableGtSingle, Platinum)); + new MaterialEntry(TagPrefix.cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_centrifuge", LARGE_CENTRIFUGE.asStack(), "SFS", "CXC", "MKM", 'C', CustomTags.IV_CIRCUITS, 'F', ChemicalHelper.get(pipeHugeFluid, StainlessSteel), 'S', ChemicalHelper.get(spring, MolybdenumDisilicide), 'M', ELECTRIC_MOTOR_IV.asStack(), 'X', - CENTRIFUGE[IV].asStack(), 'K', new UnificationEntry(TagPrefix.cableGtSingle, Platinum)); + CENTRIFUGE[IV].asStack(), 'K', new MaterialEntry(TagPrefix.cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_assembler", LARGE_ASSEMBLER.asStack(), "RKR", "CXC", "MKM", 'C', CustomTags.IV_CIRCUITS, 'R', ROBOT_ARM_IV.asStack(), 'M', CONVEYOR_MODULE_IV.asStack(), 'X', - ASSEMBLER[IV].asStack(), 'K', new UnificationEntry(cableGtSingle, Platinum)); + ASSEMBLER[IV].asStack(), 'K', new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_circuit_assembler", LARGE_CIRCUIT_ASSEMBLER.asStack(), "RKR", "CXC", "MKM", 'C', CustomTags.IV_CIRCUITS, 'R', ROBOT_ARM_IV.asStack(), 'M', CONVEYOR_MODULE_IV.asStack(), 'X', CIRCUIT_ASSEMBLER[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_electrolyzer", LARGE_ELECTROLYZER.asStack(), "PCP", - "WXW", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plate, BlackSteel), 'W', - new UnificationEntry(cableGtSingle, Platinum), 'X', ELECTROLYZER[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + "WXW", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plate, BlackSteel), 'W', + new MaterialEntry(cableGtSingle, Platinum), 'X', ELECTROLYZER[IV].asStack(), 'K', + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_electromagnet", LARGE_ELECTROMAGNET.asStack(), "PWP", - "CXC", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new UnificationEntry(plate, BlueSteel), 'W', - new UnificationEntry(wireGtQuadruple, Osmium), 'X', ELECTROMAGNETIC_SEPARATOR[IV].asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + "CXC", "PKP", 'C', CustomTags.IV_CIRCUITS, 'P', new MaterialEntry(plate, BlueSteel), 'W', + new MaterialEntry(wireGtQuadruple, Osmium), 'X', ELECTROMAGNETIC_SEPARATOR[IV].asStack(), 'K', + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "blast_alloy_smelter", BLAST_ALLOY_SMELTER.asStack(), "TCT", - "WXW", "TCT", 'C', CustomTags.EV_CIRCUITS, 'T', new UnificationEntry(plate, TantalumCarbide), 'W', - new UnificationEntry(cableGtSingle, Aluminium), 'X', ALLOY_SMELTER[EV].asStack()); + "WXW", "TCT", 'C', CustomTags.EV_CIRCUITS, 'T', new MaterialEntry(plate, TantalumCarbide), 'W', + new MaterialEntry(cableGtSingle, Aluminium), 'X', ALLOY_SMELTER[EV].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "mega_blast_furnace", MEGA_BLAST_FURNACE.asStack(), "PCP", "FSF", "DWD", 'C', ZPM_CIRCUITS, 'S', ELECTRIC_BLAST_FURNACE.asStack(), 'F', - FIELD_GENERATOR_ZPM.asStack(), 'P', new UnificationEntry(spring, Naquadah), 'D', - new UnificationEntry(plateDense, NaquadahAlloy), 'W', - new UnificationEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); + FIELD_GENERATOR_ZPM.asStack(), 'P', new MaterialEntry(spring, Naquadah), 'D', + new MaterialEntry(plateDense, NaquadahAlloy), 'W', + new MaterialEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); VanillaRecipeHelper.addShapedRecipe(provider, true, "mega_vacuum_freezer", MEGA_VACUUM_FREEZER.asStack(), "PCP", "FSF", "DWD", 'C', ZPM_CIRCUITS, 'S', VACUUM_FREEZER.asStack(), 'F', FIELD_GENERATOR_ZPM.asStack(), 'P', - new UnificationEntry(pipeNormalFluid, NiobiumTitanium), 'D', - new UnificationEntry(plateDense, RhodiumPlatedPalladium), 'W', - new UnificationEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); + new MaterialEntry(pipeNormalFluid, NiobiumTitanium), 'D', + new MaterialEntry(plateDense, RhodiumPlatedPalladium), 'W', + new MaterialEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_autoclave", LARGE_AUTOCLAVE.asStack(), "PCP", "PAP", "BKB", 'C', CustomTags.IV_CIRCUITS, 'A', AUTOCLAVE[IV].asStack(), 'P', - new UnificationEntry(plateDouble, HSLASteel), 'B', ELECTRIC_PUMP_IV.asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(plateDouble, HSLASteel), 'B', ELECTRIC_PUMP_IV.asStack(), 'K', + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_material_press", LARGE_MATERIAL_PRESS.asStack(), "PKP", "BZG", "FKH", 'Z', CustomTags.IV_CIRCUITS, 'B', BENDER[IV].asStack(), 'P', ELECTRIC_PISTON_IV.asStack(), 'G', COMPRESSOR[IV].asStack(), 'F', FORMING_PRESS[IV].asStack(), 'H', - FORGE_HAMMER[IV].asStack(), 'K', new UnificationEntry(cableGtSingle, Platinum)); + FORGE_HAMMER[IV].asStack(), 'K', new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_brewer", LARGE_BREWER.asStack(), "SZS", "FBH", "EKE", - 'Z', CustomTags.IV_CIRCUITS, 'S', new UnificationEntry(spring, MolybdenumDisilicide), 'F', + 'Z', CustomTags.IV_CIRCUITS, 'S', new MaterialEntry(spring, MolybdenumDisilicide), 'F', FERMENTER[IV].asStack(), 'E', ELECTRIC_PUMP_IV.asStack(), 'B', BREWERY[IV].asStack(), 'H', - FLUID_HEATER[IV].asStack(), 'K', new UnificationEntry(cableGtSingle, Platinum)); + FLUID_HEATER[IV].asStack(), 'K', new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_cutter", LARGE_CUTTER.asStack(), "SMS", "CZL", "EKE", 'Z', CustomTags.IV_CIRCUITS, 'L', LATHE[IV].asStack(), 'E', ELECTRIC_MOTOR_IV.asStack(), 'C', CUTTER[IV].asStack(), 'M', CONVEYOR_MODULE_IV.asStack(), 'S', - new UnificationEntry(toolHeadBuzzSaw, TungstenCarbide), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(toolHeadBuzzSaw, TungstenCarbide), 'K', + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_distillery", LARGE_DISTILLERY.asStack(), "PZP", "EDE", "PZP", 'Z', CustomTags.IV_CIRCUITS, 'D', DISTILLATION_TOWER.asStack(), 'E', ELECTRIC_PUMP_IV.asStack(), 'P', ChemicalHelper.get(pipeLargeFluid, Iridium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_extractor", LARGE_EXTRACTOR.asStack(), "PTP", "EZC", "BKB", 'Z', CustomTags.IV_CIRCUITS, 'B', ELECTRIC_PISTON_IV.asStack(), 'P', ELECTRIC_PUMP_IV.asStack(), 'E', EXTRACTOR[IV].asStack(), 'C', CANNER[IV].asStack(), 'T', CASING_TEMPERED_GLASS.asStack(), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_extruder", LARGE_EXTRUDER.asStack(), "PZP", "SES", "PKP", 'Z', CustomTags.IV_CIRCUITS, 'E', EXTRUDER[IV].asStack(), 'P', ELECTRIC_PISTON_IV.asStack(), 'S', - new UnificationEntry(spring, MolybdenumDisilicide), 'K', new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(spring, MolybdenumDisilicide), 'K', new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_solidifier", LARGE_SOLIDIFIER.asStack(), "PZP", "ESE", "PKP", 'Z', CustomTags.IV_CIRCUITS, 'S', FLUID_SOLIDIFIER[IV].asStack(), 'E', ELECTRIC_PUMP_IV.asStack(), 'P', ChemicalHelper.get(pipeNormalFluid, Polyethylene), 'K', - new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(cableGtSingle, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_wiremill", LARGE_WIREMILL.asStack(), "PZP", "SWS", "MKM", 'Z', CustomTags.IV_CIRCUITS, 'W', WIREMILL[IV].asStack(), 'P', - new UnificationEntry(plate, HSLASteel), 'S', new UnificationEntry(spring, HSLASteel), 'M', - ELECTRIC_MOTOR_IV.asStack(), 'K', new UnificationEntry(cableGtSingle, Platinum)); + new MaterialEntry(plate, HSLASteel), 'S', new MaterialEntry(spring, HSLASteel), 'M', + ELECTRIC_MOTOR_IV.asStack(), 'K', new MaterialEntry(cableGtSingle, Platinum)); } private static void registerPartsRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "crushing_wheels", CRUSHING_WHEELS.asStack(2), "TTT", "UCU", - "UMU", 'T', new UnificationEntry(gearSmall, TungstenCarbide), 'U', ChemicalHelper.get(gear, Ultimet), + "UMU", 'T', new MaterialEntry(gearSmall, TungstenCarbide), 'U', ChemicalHelper.get(gear, Ultimet), 'C', CASING_SECURE_MACERATION.asStack(), 'M', ELECTRIC_MOTOR_IV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, "slicing_blades", SLICING_BLADES.asStack(2), "PPP", "UCU", "UMU", - 'P', new UnificationEntry(plate, TungstenCarbide), 'U', ChemicalHelper.get(gear, Ultimet), 'C', + 'P', new MaterialEntry(plate, TungstenCarbide), 'U', ChemicalHelper.get(gear, Ultimet), 'C', CASING_SHOCK_PROOF.asStack(), 'M', ELECTRIC_MOTOR_IV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, "electrolytic_cell", ELECTROLYTIC_CELL.asStack(2), "WWW", "WCW", - "ZKZ", 'W', new UnificationEntry(wireGtDouble, Platinum), 'Z', CustomTags.IV_CIRCUITS, 'C', + "ZKZ", 'W', new MaterialEntry(wireGtDouble, Platinum), 'Z', CustomTags.IV_CIRCUITS, 'C', CASING_NONCONDUCTING.asStack(), 'K', ChemicalHelper.get(cableGtSingle, Tungsten)); VanillaRecipeHelper.addShapedRecipe(provider, "heat_vent", HEAT_VENT.asStack(2), "PDP", "RLR", "PDP", 'P', - new UnificationEntry(plate, TantalumCarbide), 'D', + new MaterialEntry(plate, TantalumCarbide), 'D', ChemicalHelper.get(plateDouble, MolybdenumDisilicide), 'R', ChemicalHelper.get(rotor, Titanium), 'L', ChemicalHelper.get(rodLong, MolybdenumDisilicide)); VanillaRecipeHelper.addShapedRecipe(provider, "parallel_hatch_mk1", PARALLEL_HATCH[IV].asStack(1), "SZE", "ZHZ", "CZC", 'S', SENSOR_IV.asStack(), 'E', EMITTER_IV.asStack(), 'Z', LuV_CIRCUITS, 'H', HULL[IV].asStack(), - 'C', new UnificationEntry(cableGtDouble, Platinum)); + 'C', new MaterialEntry(cableGtDouble, Platinum)); VanillaRecipeHelper.addShapedRecipe(provider, "parallel_hatch_mk2", PARALLEL_HATCH[LuV].asStack(1), "SZE", "ZHZ", "CZC", 'S', SENSOR_LuV.asStack(), 'E', EMITTER_LuV.asStack(), 'Z', ZPM_CIRCUITS, 'H', - HULL[LuV].asStack(), 'C', new UnificationEntry(cableGtDouble, NiobiumTitanium)); + HULL[LuV].asStack(), 'C', new MaterialEntry(cableGtDouble, NiobiumTitanium)); VanillaRecipeHelper.addShapedRecipe(provider, "parallel_hatch_mk3", PARALLEL_HATCH[ZPM].asStack(1), "SZE", "ZHZ", "CZC", 'S', SENSOR_ZPM.asStack(), 'E', EMITTER_ZPM.asStack(), 'Z', UV_CIRCUITS, 'H', - HULL[ZPM].asStack(), 'C', new UnificationEntry(cableGtDouble, VanadiumGallium)); + HULL[ZPM].asStack(), 'C', new MaterialEntry(cableGtDouble, VanadiumGallium)); VanillaRecipeHelper.addShapedRecipe(provider, "parallel_hatch_mk4", PARALLEL_HATCH[UV].asStack(1), "SZE", "ZHZ", "CZC", 'S', SENSOR_UV.asStack(), 'E', EMITTER_UV.asStack(), 'Z', UHV_CIRCUITS, 'H', HULL[UV].asStack(), - 'C', new UnificationEntry(cableGtDouble, YttriumBariumCuprate)); + 'C', new MaterialEntry(cableGtDouble, YttriumBariumCuprate)); } private static void registerMachineRecipes(Consumer provider) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index e4017afe43..c37fd5ed34 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -8,7 +8,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.machine.MachineDefinition; import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; import com.gregtechceu.gtceu.common.block.LampBlock; @@ -886,7 +886,7 @@ private static void registerAssemblerRecipes(Consumer provider) .save(provider); VanillaRecipeHelper.addShapedRecipe(provider, "basic_tape", BASIC_TAPE.asStack(), - " P ", "PSP", " P ", 'P', new UnificationEntry(plate, Paper), 'S', STICKY_RESIN.asItem()); + " P ", "PSP", " P ", 'P', new MaterialEntry(plate, Paper), 'S', STICKY_RESIN.asItem()); ASSEMBLER_RECIPES.recipeBuilder("basic_tape").EUt(VA[ULV]).inputItems(plate, Paper, 2).inputItems(STICKY_RESIN) .outputItems(BASIC_TAPE, 2) .duration(100).save(provider); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index e07e53f6c0..f688795a7d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java @@ -3,7 +3,7 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.machine.MachineDefinition; import com.gregtechceu.gtceu.common.data.*; @@ -35,25 +35,25 @@ public class MetaTileEntityLoader { public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_ulv", GTBlocks.MACHINE_CASING_ULV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_lv", GTBlocks.MACHINE_CASING_LV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_mv", GTBlocks.MACHINE_CASING_MV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_hv", GTBlocks.MACHINE_CASING_HV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_ev", GTBlocks.MACHINE_CASING_EV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_iv", GTBlocks.MACHINE_CASING_IV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_luv", GTBlocks.MACHINE_CASING_LuV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_zpm", GTBlocks.MACHINE_CASING_ZPM.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_uv", GTBlocks.MACHINE_CASING_UV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Darmstadtium)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Darmstadtium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_uhv", GTBlocks.MACHINE_CASING_UHV.asStack(), "PPP", - "PwP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium)); + "PwP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium)); // If these recipes are changed, change the values in MaterialInfoLoader.java registerMachineRecipe(provider, false, GTMachines.HULL, "PLP", "CHC", 'P', HULL_PLATE, 'L', PLATE, 'C', CABLE, @@ -63,137 +63,137 @@ public static void init(Consumer provider) { "XX", "XX", 'X', GTItems.COKE_OVEN_BRICK); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_bronze_bricks", GTBlocks.CASING_BRONZE_BRICKS.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PBP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', new ItemStack(Blocks.BRICKS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_steel_solid", GTBlocks.CASING_STEEL_SOLID.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", "PwP", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel)); + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_titanium_stable", GTBlocks.CASING_TITANIUM_STABLE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Titanium)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_invar_heatproof", GTBlocks.CASING_INVAR_HEATPROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Invar), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Invar)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Invar), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Invar)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_aluminium_frostproof", GTBlocks.CASING_ALUMINIUM_FROSTPROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "PFP", "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Aluminium)); + "PFP", "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_stainless_clean", GTBlocks.CASING_STAINLESS_CLEAN.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_tungstensteel_robust", GTBlocks.CASING_TUNGSTENSTEEL_ROBUST.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "PFP", "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel)); + "PFP", "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_hsse_sturdy", GTBlocks.CASING_HSSE_STURDY.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", "PwP", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.HSSE), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Europium)); + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.HSSE), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Europium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_steel_turbine_casing", GTBlocks.CASING_STEEL_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Magnalium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.BlueSteel)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Magnalium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.BlueSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_stainless_turbine_casing", GTBlocks.CASING_STAINLESS_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', GTBlocks.CASING_STEEL_TURBINE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_titanium_turbine_casing", GTBlocks.CASING_TITANIUM_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "PFP", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', GTBlocks.CASING_STEEL_TURBINE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_tungstensteel_turbine_casing", GTBlocks.CASING_TUNGSTENSTEEL_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "PFP", "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + "PFP", "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', GTBlocks.CASING_STEEL_TURBINE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_bronze_pipe", GTBlocks.CASING_BRONZE_PIPE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PIP", "IFI", "PIP", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'I', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze)); + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'I', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_steel_pipe", GTBlocks.CASING_STEEL_PIPE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PIP", "IFI", "PIP", - 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel), 'I', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel)); + 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel), 'I', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_titanium_pipe", GTBlocks.CASING_TITANIUM_PIPE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PIP", "IFI", - "PIP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'I', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium)); + "PIP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'I', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_tungstensteel_pipe", GTBlocks.CASING_TUNGSTENSTEEL_PIPE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PIP", "IFI", - "PIP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'I', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); + "PIP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'I', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_ptfe_pipe", GTBlocks.CASING_POLYTETRAFLUOROETHYLENE_PIPE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), - "PIP", "IFI", "PIP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene), - 'F', new UnificationEntry(TagPrefix.frameGt, GTMaterials.Polytetrafluoroethylene), 'I', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polytetrafluoroethylene)); + "PIP", "IFI", "PIP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Polytetrafluoroethylene), + 'F', new MaterialEntry(TagPrefix.frameGt, GTMaterials.Polytetrafluoroethylene), 'I', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polytetrafluoroethylene)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_bronze_firebox", GTBlocks.FIREBOX_BRONZE.asStack(2), - "PSP", "SFS", "PSP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'S', - new UnificationEntry(TagPrefix.rod, GTMaterials.Bronze)); + "PSP", "SFS", "PSP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'S', + new MaterialEntry(TagPrefix.rod, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_steel_firebox", GTBlocks.FIREBOX_STEEL.asStack(2), - "PSP", "SFS", "PSP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel), 'S', - new UnificationEntry(TagPrefix.rod, GTMaterials.Steel)); + "PSP", "SFS", "PSP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel), 'S', + new MaterialEntry(TagPrefix.rod, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_titanium_firebox", GTBlocks.FIREBOX_TITANIUM.asStack(2), "PSP", "SFS", "PSP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'S', - new UnificationEntry(TagPrefix.rod, GTMaterials.Titanium)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'S', + new MaterialEntry(TagPrefix.rod, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_tungstensteel_firebox", GTBlocks.FIREBOX_TUNGSTENSTEEL.asStack(2), "PSP", "SFS", "PSP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'S', - new UnificationEntry(TagPrefix.rod, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'S', + new MaterialEntry(TagPrefix.rod, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_bronze_gearbox", GTBlocks.CASING_BRONZE_GEARBOX.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "GFG", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Bronze)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Bronze), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_steel_gearbox", GTBlocks.CASING_STEEL_GEARBOX.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "GFG", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Steel)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_stainless_steel_gearbox", GTBlocks.CASING_STAINLESS_STEEL_GEARBOX.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "GFG", "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.StainlessSteel)); + "GFG", "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.StainlessSteel), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_titanium_gearbox", GTBlocks.CASING_TITANIUM_GEARBOX.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "GFG", - "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Titanium)); + "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.Titanium), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_tungstensteel_gearbox", GTBlocks.CASING_TUNGSTENSTEEL_GEARBOX.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "GFG", "PwP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', - new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.TungstenSteel)); + "GFG", "PwP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_grate_casing", GTBlocks.CASING_GRATE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PVP", "PFP", "PMP", 'P', - new ItemStack(Blocks.IRON_BARS, 1), 'F', new UnificationEntry(TagPrefix.frameGt, GTMaterials.Steel), - 'M', GTItems.ELECTRIC_MOTOR_MV, 'V', new UnificationEntry(TagPrefix.rotor, GTMaterials.Steel)); + new ItemStack(Blocks.IRON_BARS, 1), 'F', new MaterialEntry(TagPrefix.frameGt, GTMaterials.Steel), + 'M', GTItems.ELECTRIC_MOTOR_MV, 'V', new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_assembly_control", GTBlocks.CASING_ASSEMBLY_CONTROL.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "CPC", "SFE", "CMC", 'C', CustomTags.EV_CIRCUITS, 'P', GTItems.HIGH_POWER_INTEGRATED_CIRCUIT, 'S', - GTItems.SENSOR_IV.asStack(), 'F', new UnificationEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), + GTItems.SENSOR_IV.asStack(), 'F', new MaterialEntry(TagPrefix.frameGt, GTMaterials.TungstenSteel), 'E', GTItems.EMITTER_IV.asStack(), 'M', GTItems.ELECTRIC_MOTOR_IV); VanillaRecipeHelper.addShapedRecipe(provider, true, "casing_assembly_line", GTBlocks.CASING_ASSEMBLY_LINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PGP", "AFA", - "PGP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Ruridit), 'A', GTItems.ROBOT_ARM_IV.asStack(), 'F', + "PGP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Ruridit), 'A', GTItems.ROBOT_ARM_IV.asStack(), 'F', ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "warning_sign_yellow_stripes", @@ -343,48 +343,48 @@ public static void init(Consumer provider) { provider, true, "fluid_import_hatch_4x_" + tierName, importHatch4x.asStack(), "P", "M", 'M', importHatch.asStack(), - 'P', new UnificationEntry(TagPrefix.pipeQuadrupleFluid, material)); + 'P', new MaterialEntry(TagPrefix.pipeQuadrupleFluid, material)); VanillaRecipeHelper.addShapedRecipe( provider, true, "fluid_export_hatch_4x_" + tierName, exportHatch4x.asStack(), "M", "P", 'M', exportHatch.asStack(), - 'P', new UnificationEntry(TagPrefix.pipeQuadrupleFluid, material)); + 'P', new MaterialEntry(TagPrefix.pipeQuadrupleFluid, material)); VanillaRecipeHelper.addShapedRecipe( provider, true, "fluid_import_hatch_9x_" + tierName, importHatch9x.asStack(), "P", "M", 'M', importHatch.asStack(), - 'P', new UnificationEntry(TagPrefix.pipeNonupleFluid, material)); + 'P', new MaterialEntry(TagPrefix.pipeNonupleFluid, material)); VanillaRecipeHelper.addShapedRecipe( provider, true, "fluid_export_hatch_9x_" + tierName, exportHatch9x.asStack(), "M", "P", 'M', exportHatch.asStack(), - 'P', new UnificationEntry(TagPrefix.pipeNonupleFluid, material)); + 'P', new MaterialEntry(TagPrefix.pipeNonupleFluid, material)); } VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_hv", GTMachines.ROTOR_HOLDER[HV].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[HV].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.BlackSteel), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.gear, GTMaterials.BlackSteel), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_ev", GTMachines.ROTOR_HOLDER[EV].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[GTValues.EV].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Ultimet), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Titanium)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Ultimet), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_iv", GTMachines.ROTOR_HOLDER[IV].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[GTValues.IV].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.HSSG), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.gear, GTMaterials.HSSG), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_luv", GTMachines.ROTOR_HOLDER[LuV].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[GTValues.LuV].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Ruthenium), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.RhodiumPlatedPalladium)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Ruthenium), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.RhodiumPlatedPalladium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_zpm", GTMachines.ROTOR_HOLDER[ZPM].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[GTValues.ZPM].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Trinium), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.NaquadahAlloy)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Trinium), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.NaquadahAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "rotor_holder_uv", GTMachines.ROTOR_HOLDER[UV].asStack(), "SGS", "GHG", "SGS", 'H', GTMachines.HULL[GTValues.UV].asStack(), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Tritanium), 'S', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Darmstadtium)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Tritanium), 'S', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Darmstadtium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "maintenance_hatch", GTMachines.MAINTENANCE_HATCH.asStack(), "dwx", "hHc", "fsr", 'H', GTMachines.HULL[GTValues.LV].asStack()); @@ -400,7 +400,7 @@ public static void init(Consumer provider) { GTMachines.CLEANING_MAINTENANCE_HATCH.asStack(), "CMC", "RHR", "WCW", 'C', CIRCUIT.getIngredient(GTValues.UV), 'M', GTMachines.AUTO_MAINTENANCE_HATCH.asStack(), 'R', ROBOT_ARM.getIngredient(GTValues.UV), 'H', GTMachines.HULL[GTValues.UV].asStack(), 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.YttriumBariumCuprate)); // TODO Access Interface // VanillaRecipeHelper.addShapedRecipe(provider, true, "machine_access_interface", @@ -409,143 +409,143 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "passthrough_hatch_item", GTMachines.ITEM_PASSTHROUGH_HATCH[HV].asStack(), " C ", "GHG", " S ", 'C', - GTItems.CONVEYOR_MODULE_HV.asStack(), 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Steel), + GTItems.CONVEYOR_MODULE_HV.asStack(), 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Steel), 'H', GTMachines.HULL[HV].asStack(), 'S', Tags.Items.CHESTS_WOODEN); VanillaRecipeHelper.addShapedRecipe(provider, true, "passthrough_hatch_fluid", GTMachines.FLUID_PASSTHROUGH_HATCH[HV].asStack(), " C ", "GHG", " S ", 'C', GTItems.ELECTRIC_PUMP_HV.asStack(), 'G', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Steel), 'H', GTMachines.HULL[HV].asStack(), + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Steel), 'H', GTMachines.HULL[HV].asStack(), 'S', GTBlocks.CASING_TEMPERED_GLASS); // STEAM MACHINES VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_hull", GTBlocks.BRONZE_HULL.asStack(), "PPP", "PhP", - "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze)); + "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_bricks_hull", GTBlocks.BRONZE_BRICKS_HULL.asStack(), - "PPP", "PhP", "BBB", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', + "PPP", "PhP", "BBB", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', new ItemStack(Blocks.BRICKS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_hull", GTBlocks.STEEL_HULL.asStack(), "PPP", "PhP", - "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel)); + "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_bricks_hull", GTBlocks.STEEL_BRICKS_HULL.asStack(), - "PPP", "PhP", "BBB", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'B', + "PPP", "PhP", "BBB", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'B', new ItemStack(Blocks.BRICKS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_coal_bronze", GTMachines.STEAM_SOLID_BOILER.left().asStack(), "PPP", "PwP", "BFB", 'F', Blocks.FURNACE, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', new ItemStack(Blocks.BRICKS)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'B', new ItemStack(Blocks.BRICKS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_coal_steel", GTMachines.STEAM_SOLID_BOILER.right().asStack(), "PPP", "PwP", "BFB", 'F', Blocks.FURNACE, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'B', new ItemStack(Blocks.BRICKS)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'B', new ItemStack(Blocks.BRICKS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_lava_bronze", GTMachines.STEAM_LIQUID_BOILER.left().asStack(), "PPP", "PGP", "PMP", 'M', - GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), + GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'G', new ItemStack(Blocks.GLASS, 1)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_lava_steel", GTMachines.STEAM_LIQUID_BOILER.right().asStack(), "PPP", "PGP", "PMP", 'M', - GTBlocks.STEEL_BRICKS_HULL.asStack(), 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), + GTBlocks.STEEL_BRICKS_HULL.asStack(), 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'G', new ItemStack(Blocks.GLASS, 1)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_solar_bronze", GTMachines.STEAM_SOLAR_BOILER.left().asStack(), "GGG", "SSS", "PMP", 'M', GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Silver), 'G', new ItemStack(Blocks.GLASS)); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'S', + new MaterialEntry(TagPrefix.plate, GTMaterials.Silver), 'G', new ItemStack(Blocks.GLASS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_boiler_solar_steel", GTMachines.STEAM_SOLAR_BOILER.right().asStack(), "GGG", "SSS", "PMP", 'M', GTBlocks.STEEL_BRICKS_HULL.asStack(), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Steel), 'S', - new UnificationEntry(TagPrefix.plateDouble, GTMaterials.Silver), 'G', new ItemStack(Blocks.GLASS)); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Steel), 'S', + new MaterialEntry(TagPrefix.plateDouble, GTMaterials.Silver), 'G', new ItemStack(Blocks.GLASS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_furnace_bronze", GTMachines.STEAM_FURNACE.left().asStack(), "XXX", "XMX", "XFX", 'M', GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'X', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'F', Blocks.FURNACE); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'F', Blocks.FURNACE); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_furnace_steel", GTMachines.STEAM_FURNACE.right().asStack(), "XSX", "PMP", "XXX", 'M', GTMachines.STEAM_FURNACE.left().asStack(), 'X', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron)); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy), 'S', + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'P', + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_macerator_bronze", GTMachines.STEAM_MACERATOR.left().asStack(), "DXD", "XMX", "PXP", 'M', GTBlocks.BRONZE_HULL.asStack(), - 'X', new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, - 'D', new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond)); + 'X', new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, + 'D', new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_macerator_steel", GTMachines.STEAM_MACERATOR.right().asStack(), "WSW", "PMP", "WWW", 'M', GTMachines.STEAM_MACERATOR.left().asStack(), 'W', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'S', + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'P', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_extractor_bronze", GTMachines.STEAM_EXTRACTOR.left().asStack(), "XXX", "PMG", "XXX", 'M', GTBlocks.BRONZE_HULL.asStack(), - 'X', new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, + 'X', new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, 'G', new ItemStack(Blocks.GLASS)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_extractor_steel", GTMachines.STEAM_EXTRACTOR.right().asStack(), "PSP", "WMW", "PPP", 'M', GTMachines.STEAM_EXTRACTOR.left().asStack(), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'W', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron)); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy), 'S', + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'W', + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hammer_bronze", GTMachines.STEAM_HAMMER.left().asStack(), "XPX", "XMX", "XAX", 'M', GTBlocks.BRONZE_HULL.asStack(), 'X', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, 'A', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS, 'A', Blocks.ANVIL); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hammer_steel", GTMachines.STEAM_HAMMER.right().asStack(), "WSW", "PMP", "WWW", 'M', - GTMachines.STEAM_HAMMER.left().asStack(), 'S', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), - 'W', new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); + GTMachines.STEAM_HAMMER.left().asStack(), 'S', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), + 'W', new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_compressor_bronze", GTMachines.STEAM_COMPRESSOR.left().asStack(), "XXX", "PMP", "XXX", 'M', GTBlocks.BRONZE_HULL.asStack(), - 'X', new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS); + 'X', new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'P', CustomTags.PISTONS); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_compressor_steel", GTMachines.STEAM_COMPRESSOR.right().asStack(), "PSP", "WMW", "PPP", 'M', GTMachines.STEAM_COMPRESSOR.left().asStack(), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'W', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'W', + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_alloy_smelter_bronze", GTMachines.STEAM_ALLOY_SMELTER.left().asStack(), "XXX", "FMF", "XXX", 'M', GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'X', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'F', Blocks.FURNACE); + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), 'F', Blocks.FURNACE); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_alloy_smelter_steel", GTMachines.STEAM_ALLOY_SMELTER.right().asStack(), "WSW", "WMW", "WPW", 'M', GTMachines.STEAM_ALLOY_SMELTER.left().asStack(), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'W', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'W', + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'P', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_rock_breaker_bronze", GTMachines.STEAM_ROCK_CRUSHER.left().asStack(), "PXP", "XMX", "DXD", 'M', - GTBlocks.BRONZE_HULL.asStack(), 'X', new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), - 'P', CustomTags.PISTONS, 'D', new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond)); + GTBlocks.BRONZE_HULL.asStack(), 'X', new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.Bronze), + 'P', CustomTags.PISTONS, 'D', new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_rock_breaker_steel", GTMachines.STEAM_ROCK_CRUSHER.right().asStack(), "WSW", "PMP", "WWW", 'M', GTMachines.STEAM_ROCK_CRUSHER.left().asStack(), 'W', - new UnificationEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'S', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'P', - new UnificationEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); + new MaterialEntry(TagPrefix.plate, GTMaterials.WroughtIron), 'S', + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'P', + new MaterialEntry(TagPrefix.pipeSmallFluid, GTMaterials.TinAlloy)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_miner", GTMachines.STEAM_MINER.asStack(), "DSD", "SMS", "GSG", 'M', GTBlocks.BRONZE_BRICKS_HULL.asStack(), 'S', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze), 'D', - new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond), 'G', - new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Bronze)); + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze), 'D', + new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond), 'G', + new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Bronze)); // MULTI BLOCK CONTROLLERS VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_primitive_blast_furnace", GTMachines.PRIMITIVE_BLAST_FURNACE.asStack(), "hRS", "PBR", "dRS", 'R', - new UnificationEntry(TagPrefix.rod, GTMaterials.Iron), 'S', - new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Iron), 'B', + new MaterialEntry(TagPrefix.rod, GTMaterials.Iron), 'S', + new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'P', + new MaterialEntry(TagPrefix.plate, GTMaterials.Iron), 'B', GTBlocks.CASING_PRIMITIVE_BRICKS.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "coke_oven", GTMachines.COKE_OVEN.asStack(), "PIP", "IwI", "PIP", 'P', GTBlocks.CASING_COKE_BRICKS.asStack(), 'I', - new UnificationEntry(TagPrefix.plate, GTMaterials.Iron)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "coke_oven_hatch", GTMachines.COKE_OVEN_HATCH.asStack(), "CBD", 'C', Tags.Items.CHESTS_WOODEN, 'B', GTBlocks.CASING_COKE_BRICKS.asStack(), 'D', GTMachines.WOODEN_DRUM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "charcoal_pile_igniter", GTMachines.CHARCOAL_PILE_IGNITER.asStack(), "ERE", "EHE", "FFF", - 'E', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), - 'R', new UnificationEntry(TagPrefix.rotor, GTMaterials.Iron), + 'E', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), + 'R', new MaterialEntry(TagPrefix.rotor, GTMaterials.Iron), 'H', GTBlocks.BRONZE_BRICKS_HULL, 'F', Items.FLINT_AND_STEEL); if (!ConfigHolder.INSTANCE.recipes.hardMultiRecipes) { @@ -553,28 +553,28 @@ public static void init(Consumer provider) { GTMachines.ELECTRIC_BLAST_FURNACE.asStack(), "FFF", "CMC", "WCW", 'M', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'F', Blocks.FURNACE.asItem(), 'C', CustomTags.LV_CIRCUITS, - 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); + 'W', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); } else { VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_blast_furnace", GTMachines.ELECTRIC_BLAST_FURNACE.asStack(), "FFF", "CMC", "WCW", 'M', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'F', GTMachines.ELECTRIC_FURNACE[LV].asStack(), 'C', CustomTags.LV_CIRCUITS, - 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); + 'W', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); } VanillaRecipeHelper.addShapedRecipe(provider, true, "vacuum_freezer", GTMachines.VACUUM_FREEZER.asStack(), "PPP", "CMC", "WCW", 'M', GTBlocks.CASING_ALUMINIUM_FROSTPROOF.asStack(), 'P', GTItems.ELECTRIC_PUMP_HV, - 'C', CustomTags.EV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); + 'C', CustomTags.EV_CIRCUITS, 'W', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, true, "implosion_compressor", GTMachines.IMPLOSION_COMPRESSOR.asStack(), "OOO", "CMC", "WCW", 'M', - GTBlocks.CASING_STEEL_SOLID.asStack(), 'O', new UnificationEntry(TagPrefix.rock, GTMaterials.Obsidian), - 'C', CustomTags.HV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); + GTBlocks.CASING_STEEL_SOLID.asStack(), 'O', new MaterialEntry(TagPrefix.rock, GTMaterials.Obsidian), + 'C', CustomTags.HV_CIRCUITS, 'W', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, true, "distillation_tower", GTMachines.DISTILLATION_TOWER.asStack(), "CBC", "FMF", "CBC", 'M', GTMachines.HULL[HV].asStack(), 'B', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel), 'C', CustomTags.EV_CIRCUITS, + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel), 'C', CustomTags.EV_CIRCUITS, 'F', GTItems.ELECTRIC_PUMP_HV); VanillaRecipeHelper.addShapedRecipe(provider, true, "evaporation_plant", GTMachines.EVAPORATION_PLANT.asStack(), "CBC", "FMF", "CBC", 'M', GTMachines.HULL[HV].asStack(), - 'B', new UnificationEntry(TagPrefix.wireGtDouble, GTMaterials.Kanthal), 'C', CustomTags.HV_CIRCUITS, + 'B', new MaterialEntry(TagPrefix.wireGtDouble, GTMaterials.Kanthal), 'C', CustomTags.HV_CIRCUITS, 'F', GTItems.ELECTRIC_PUMP_HV); VanillaRecipeHelper.addShapedRecipe(provider, true, "cracking_unit", GTMachines.CRACKER.asStack(), "CEC", "PHP", "CEC", 'C', GTBlocks.COIL_CUPRONICKEL.asStack(), 'E', GTItems.ELECTRIC_PUMP_HV.asStack(), 'P', @@ -582,64 +582,64 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "pyrolyse_oven", GTMachines.PYROLYSE_OVEN.asStack(), "WEP", "EME", "WCP", 'M', GTMachines.HULL[GTValues.MV].asStack(), 'W', GTItems.ELECTRIC_PISTON_MV.asStack(), - 'P', new UnificationEntry(TagPrefix.wireGtQuadruple, GTMaterials.Cupronickel), 'E', + 'P', new MaterialEntry(TagPrefix.wireGtQuadruple, GTMaterials.Cupronickel), 'E', CustomTags.MV_CIRCUITS, 'C', GTItems.ELECTRIC_PUMP_MV); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_combustion_engine", GTMachines.LARGE_COMBUSTION_ENGINE.asStack(), "PCP", "EME", "GWG", 'M', GTMachines.HULL[GTValues.EV].asStack(), 'P', GTItems.ELECTRIC_PISTON_EV.asStack(), 'E', GTItems.ELECTRIC_MOTOR_EV.asStack(), 'C', CustomTags.IV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Titanium)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "extreme_combustion_engine", GTMachines.EXTREME_COMBUSTION_ENGINE.asStack(), "PCP", "EME", "GWG", 'M', GTMachines.HULL[GTValues.IV].asStack(), 'P', GTItems.ELECTRIC_PISTON_IV.asStack(), 'E', GTItems.ELECTRIC_MOTOR_IV.asStack(), 'C', CustomTags.LuV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.HSSG), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.HSSG), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "engine_intake_casing", GTBlocks.CASING_ENGINE_INTAKE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", "RFR", - "PwP", 'R', new UnificationEntry(TagPrefix.rotor, GTMaterials.Titanium), 'F', + "PwP", 'R', new MaterialEntry(TagPrefix.rotor, GTMaterials.Titanium), 'F', GTBlocks.CASING_TITANIUM_STABLE.asStack(), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium)); + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "extreme_engine_intake_casing", GTBlocks.CASING_EXTREME_ENGINE_INTAKE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "PhP", - "RFR", "PwP", 'R', new UnificationEntry(TagPrefix.rotor, GTMaterials.TungstenSteel), 'F', + "RFR", "PwP", 'R', new MaterialEntry(TagPrefix.rotor, GTMaterials.TungstenSteel), 'F', GTBlocks.CASING_TUNGSTENSTEEL_ROBUST.asStack(), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "multi_furnace", GTMachines.MULTI_SMELTER.asStack(), "PPP", "ASA", "CAC", 'P', Blocks.FURNACE, 'A', CustomTags.HV_CIRCUITS, 'S', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'C', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_steam_turbine", GTMachines.LARGE_STEAM_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', - new UnificationEntry(TagPrefix.gear, GTMaterials.Steel), 'P', CustomTags.HV_CIRCUITS, 'A', - GTMachines.HULL[HV].asStack(), 'C', new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel)); + new MaterialEntry(TagPrefix.gear, GTMaterials.Steel), 'P', CustomTags.HV_CIRCUITS, 'A', + GTMachines.HULL[HV].asStack(), 'C', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_gas_turbine", GTMachines.LARGE_GAS_TURBINE.asStack(), - "PSP", "SAS", "CSC", 'S', new UnificationEntry(TagPrefix.gear, GTMaterials.StainlessSteel), 'P', + "PSP", "SAS", "CSC", 'S', new MaterialEntry(TagPrefix.gear, GTMaterials.StainlessSteel), 'P', CustomTags.EV_CIRCUITS, 'A', GTMachines.HULL[GTValues.EV].asStack(), 'C', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_plasma_turbine", GTMachines.LARGE_PLASMA_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', - new UnificationEntry(TagPrefix.gear, GTMaterials.TungstenSteel), 'P', CustomTags.LuV_CIRCUITS, 'A', + new MaterialEntry(TagPrefix.gear, GTMaterials.TungstenSteel), 'P', CustomTags.LuV_CIRCUITS, 'A', GTMachines.HULL[GTValues.LuV].asStack(), 'C', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_bronze_boiler", GTMachines.LARGE_BOILER_BRONZE.asStack(), "PSP", "SAS", "PSP", 'P', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'S', CustomTags.LV_CIRCUITS, 'A', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'S', CustomTags.LV_CIRCUITS, 'A', GTBlocks.FIREBOX_BRONZE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_steel_boiler", GTMachines.LARGE_BOILER_STEEL.asStack(), "PSP", "SAS", "PSP", 'P', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'S', CustomTags.HV_CIRCUITS, 'A', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'S', CustomTags.HV_CIRCUITS, 'A', GTBlocks.FIREBOX_STEEL.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_titanium_boiler", GTMachines.LARGE_BOILER_TITANIUM.asStack(), "PSP", "SAS", "PSP", 'P', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'S', CustomTags.EV_CIRCUITS, 'A', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'S', CustomTags.EV_CIRCUITS, 'A', GTBlocks.FIREBOX_TITANIUM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "large_tungstensteel_boiler", GTMachines.LARGE_BOILER_TUNGSTENSTEEL.asStack(), "PSP", "SAS", "PSP", 'P', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium), 'S', CustomTags.IV_CIRCUITS, 'A', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Aluminium), 'S', CustomTags.IV_CIRCUITS, 'A', GTBlocks.FIREBOX_TUNGSTENSTEEL.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "assembly_line", GTMachines.ASSEMBLY_LINE.asStack(), "CRC", @@ -660,47 +660,47 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "diesel_generator_lv", GTMachines.COMBUSTION[LV].asStack(), "PCP", "EME", "GWG", 'M', GTMachines.HULL[GTValues.LV].asStack(), 'P', GTItems.ELECTRIC_PISTON_LV, 'E', GTItems.ELECTRIC_MOTOR_LV, 'C', CustomTags.LV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Steel)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "diesel_generator_mv", GTMachines.COMBUSTION[MV].asStack(), "PCP", "EME", "GWG", 'M', GTMachines.HULL[GTValues.MV].asStack(), 'P', GTItems.ELECTRIC_PISTON_MV, 'E', GTItems.ELECTRIC_MOTOR_MV, 'C', CustomTags.MV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.Aluminium)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "diesel_generator_hv", GTMachines.COMBUSTION[HV].asStack(), "PCP", "EME", "GWG", 'M', GTMachines.HULL[HV].asStack(), 'P', GTItems.ELECTRIC_PISTON_HV, 'E', GTItems.ELECTRIC_MOTOR_HV, 'C', CustomTags.HV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'G', - new UnificationEntry(TagPrefix.gear, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'G', + new MaterialEntry(TagPrefix.gear, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "gas_turbine_lv", GTMachines.GAS_TURBINE[LV].asStack(), "CRC", "RMR", "EWE", 'M', GTMachines.HULL[GTValues.LV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_LV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Tin), 'C', CustomTags.LV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Tin), 'C', CustomTags.LV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); VanillaRecipeHelper.addShapedRecipe(provider, true, "gas_turbine_mv", GTMachines.GAS_TURBINE[MV].asStack(), "CRC", "RMR", "EWE", 'M', GTMachines.HULL[GTValues.MV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_MV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Bronze), 'C', CustomTags.MV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Bronze), 'C', CustomTags.MV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); VanillaRecipeHelper.addShapedRecipe(provider, true, "gas_turbine_hv", GTMachines.GAS_TURBINE[HV].asStack(), "CRC", "RMR", "EWE", 'M', GTMachines.HULL[HV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_HV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Steel), 'C', CustomTags.HV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel), 'C', CustomTags.HV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_turbine_lv", GTMachines.STEAM_TURBINE[LV].asStack(), "PCP", "RMR", "EWE", 'M', GTMachines.HULL[GTValues.LV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_LV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Tin), 'C', CustomTags.LV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Tin), 'C', CustomTags.LV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Tin), 'P', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_turbine_mv", GTMachines.STEAM_TURBINE[MV].asStack(), "PCP", "RMR", "EWE", 'M', GTMachines.HULL[GTValues.MV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_MV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Bronze), 'C', CustomTags.MV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Bronze), 'C', CustomTags.MV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper), 'P', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_turbine_hv", GTMachines.STEAM_TURBINE[HV].asStack(), "PCP", "RMR", "EWE", 'M', GTMachines.HULL[HV].asStack(), 'E', GTItems.ELECTRIC_MOTOR_HV, 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Steel), 'C', CustomTags.HV_CIRCUITS, 'W', - new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'P', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel), 'C', CustomTags.HV_CIRCUITS, 'W', + new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold), 'P', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.StainlessSteel)); // TODO Crafting station // VanillaRecipeHelper.addShapedRecipe(provider, true, "workbench_bronze", GTMachines.WORKBENCH.getStackForm(), @@ -708,37 +708,37 @@ public static void init(Consumer provider) { // OreDictUnifier.get("slabWood"), 'P', new UnificationEntry(TagPrefix.plank, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, true, "primitive_pump", GTMachines.PRIMITIVE_PUMP.asStack(), - "RGS", "OWd", "CLC", 'R', new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), 'G', - new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Wood), 'S', - new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), 'O', - new UnificationEntry(TagPrefix.rotor, GTMaterials.Iron), 'W', GTBlocks.TREATED_WOOD_PLANK.asStack(), + "RGS", "OWd", "CLC", 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), 'G', + new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Wood), 'S', + new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'O', + new MaterialEntry(TagPrefix.rotor, GTMaterials.Iron), 'W', GTBlocks.TREATED_WOOD_PLANK.asStack(), 'C', new ItemStack(Items.COBBLESTONE_SLAB), 'L', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Wood)); + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, true, "pump_deck", GTBlocks.CASING_PUMP_DECK.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft), "SWS", "dCh", 'S', - new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), 'W', GTBlocks.TREATED_WOOD_PLANK.asStack(), + new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'W', GTBlocks.TREATED_WOOD_PLANK.asStack(), 'C', new ItemStack(Items.COBBLESTONE_SLAB)); VanillaRecipeHelper.addShapedRecipe(provider, true, "pump_hatch", GTMachines.PUMP_HATCH.asStack(), "SRd", "PLP", - "CRC", 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), 'R', - new UnificationEntry(TagPrefix.ring, GTMaterials.Iron), 'P', GTBlocks.TREATED_WOOD_PLANK.asStack(), 'L', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Wood), 'C', + "CRC", 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'R', + new MaterialEntry(TagPrefix.ring, GTMaterials.Iron), 'P', GTBlocks.TREATED_WOOD_PLANK.asStack(), 'L', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Wood), 'C', new ItemStack(Items.COBBLESTONE_SLAB)); VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_multiblock_tank", GTMachines.WOODEN_MULTIBLOCK_TANK.asStack(), " R ", "rCs", " R ", 'R', - new UnificationEntry(TagPrefix.ring, GTMaterials.Copper), 'C', GTBlocks.CASING_WOOD_WALL.asStack()); + new MaterialEntry(TagPrefix.ring, GTMaterials.Copper), 'C', GTBlocks.CASING_WOOD_WALL.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_multiblock_tank", GTMachines.STEEL_MULTIBLOCK_TANK.asStack(), " R ", "hCw", " R ", 'R', - new UnificationEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); + new MaterialEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_tank_valve", GTMachines.WOODEN_TANK_VALVE.asStack(), - " R ", "rCs", " O ", 'O', new UnificationEntry(TagPrefix.rotor, GTMaterials.Copper), 'R', - new UnificationEntry(TagPrefix.ring, GTMaterials.Copper), 'C', GTBlocks.CASING_WOOD_WALL.asStack()); + " R ", "rCs", " O ", 'O', new MaterialEntry(TagPrefix.rotor, GTMaterials.Copper), 'R', + new MaterialEntry(TagPrefix.ring, GTMaterials.Copper), 'C', GTBlocks.CASING_WOOD_WALL.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_tank_valve", GTMachines.STEEL_TANK_VALVE.asStack(), - " R ", "hCw", " O ", 'O', new UnificationEntry(TagPrefix.rotor, GTMaterials.Steel), 'R', - new UnificationEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); + " R ", "hCw", " O ", 'O', new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel), 'R', + new MaterialEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_wall", GTBlocks.CASING_WOOD_WALL.asStack(), "W W", "sPh", "W W", 'W', GTBlocks.TREATED_WOOD_PLANK.asStack(), 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Copper)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Copper)); // MACHINES registerMachineRecipe(provider, GTMachines.ALLOY_SMELTER, "ECE", "CMC", "WCW", 'M', HULL, 'E', CIRCUIT, 'W', @@ -806,7 +806,7 @@ public static void init(Consumer provider) { registerMachineRecipe(provider, GTMachines.SIFTER, "WFW", "PMP", "CFC", 'M', HULL, 'P', PISTON, 'F', GTItems.ITEM_FILTER, 'C', CIRCUIT, 'W', CABLE); registerMachineRecipe(provider, GTMachines.ARC_FURNACE, "WGW", "CMC", "PPP", 'M', HULL, 'P', PLATE, 'C', - CIRCUIT, 'W', CABLE_QUAD, 'G', new UnificationEntry(TagPrefix.dust, GTMaterials.Graphite)); + CIRCUIT, 'W', CABLE_QUAD, 'G', new MaterialEntry(TagPrefix.dust, GTMaterials.Graphite)); registerMachineRecipe(provider, GTMachines.CIRCUIT_ASSEMBLER, "RIE", "CHC", "WIW", 'R', ROBOT_ARM, 'I', BETTER_CIRCUIT, 'E', EMITTER, 'C', CONVEYOR, 'H', HULL, 'W', CABLE); @@ -1001,160 +1001,160 @@ public static void init(Consumer provider) { } VanillaRecipeHelper.addShapedRecipe(provider, true, "wooden_crate", GTMachines.WOODEN_CRATE.asStack(), "RPR", - "PsP", "RPR", 'P', ItemTags.PLANKS, 'R', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron)); + "PsP", "RPR", 'P', ItemTags.PLANKS, 'R', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_crate", GTMachines.BRONZE_CRATE.asStack(), "RPR", - "PhP", "RPR", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Bronze)); + "PhP", "RPR", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_crate", GTMachines.STEEL_CRATE.asStack(), "RPR", - "PhP", "RPR", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Steel)); + "PhP", "RPR", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "aluminium_crate", GTMachines.ALUMINIUM_CRATE.asStack(), - "RPR", "PhP", "RPR", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Aluminium)); + "RPR", "PhP", "RPR", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "stainless_steel_crate", GTMachines.STAINLESS_STEEL_CRATE.asStack(), "RPR", "PhP", "RPR", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "titanium_crate", GTMachines.TITANIUM_CRATE.asStack(), - "RPR", "PhP", "RPR", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Titanium)); + "RPR", "PhP", "RPR", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "tungstensteel_crate", GTMachines.TUNGSTENSTEEL_CRATE.asStack(), "RPR", "PhP", "RPR", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "wooden_barrel", GTMachines.WOODEN_DRUM.asStack(), "rSs", "PRP", "PRP", 'S', GTItems.STICKY_RESIN.asStack(), 'P', ItemTags.PLANKS, 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Iron)); + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Iron)); VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_drum", GTMachines.BRONZE_DRUM.asStack(), " h ", - "PRP", "PRP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Bronze), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Bronze)); + "PRP", "PRP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Bronze), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_drum", GTMachines.STEEL_DRUM.asStack(), " h ", "PRP", - "PRP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Steel)); + "PRP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Steel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "aluminium_drum", GTMachines.ALUMINIUM_DRUM.asStack(), - " h ", "PRP", "PRP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Aluminium)); + " h ", "PRP", "PRP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Aluminium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "stainless_steel_drum", GTMachines.STAINLESS_STEEL_DRUM.asStack(), " h ", "PRP", "PRP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.StainlessSteel)); + new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "gold_drum", GTMachines.GOLD_DRUM.asStack(), " h ", "PRP", - "PRP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Gold), 'R', - new UnificationEntry(TagPrefix.rodLong, GTMaterials.Gold)); + "PRP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Gold), 'R', + new MaterialEntry(TagPrefix.rodLong, GTMaterials.Gold)); // Hermetic Casings VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_lv", GTBlocks.HERMETIC_CASING_LV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polyethylene)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polyethylene)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_mv", GTBlocks.HERMETIC_CASING_MV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', - new UnificationEntry(TagPrefix.pipeLargeItem, GTMaterials.PolyvinylChloride)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', + new MaterialEntry(TagPrefix.pipeLargeItem, GTMaterials.PolyvinylChloride)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_hv", GTBlocks.HERMETIC_CASING_HV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polytetrafluoroethylene)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polytetrafluoroethylene)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_ev", GTBlocks.HERMETIC_CASING_EV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_iv", GTBlocks.HERMETIC_CASING_IV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Titanium)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Titanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_luv", GTBlocks.HERMETIC_CASING_LuV.asStack(), "PPP", "PFP", "PPP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel)); + new MaterialEntry(TagPrefix.plate, GTMaterials.RhodiumPlatedPalladium), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.TungstenSteel)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_zpm", GTBlocks.HERMETIC_CASING_ZPM.asStack(), "PPP", "PFP", "PPP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.NiobiumTitanium)); + new MaterialEntry(TagPrefix.plate, GTMaterials.NaquadahAlloy), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.NiobiumTitanium)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_uv", GTBlocks.HERMETIC_CASING_UV.asStack(), - "PPP", "PFP", "PPP", 'P', new UnificationEntry(TagPrefix.plate, GTMaterials.Darmstadtium), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Naquadah)); + "PPP", "PFP", "PPP", 'P', new MaterialEntry(TagPrefix.plate, GTMaterials.Darmstadtium), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Naquadah)); VanillaRecipeHelper.addShapedRecipe(provider, true, "hermetic_casing_max", GTBlocks.HERMETIC_CASING_UHV.asStack(), "PPP", "PFP", "PPP", 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium), 'F', - new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Duranium)); + new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium), 'F', + new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Duranium)); // Super / Quantum Chests VanillaRecipeHelper.addShapedRecipe(provider, true, "super_chest_lv", GTMachines.SUPER_CHEST[LV].asStack(), "CPC", "PFP", "CPC", 'C', CustomTags.LV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', GTMachines.STEEL_CRATE.asStack()); + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', GTMachines.STEEL_CRATE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_chest_mv", GTMachines.SUPER_CHEST[MV].asStack(), "CPC", "PFP", "CPC", 'C', CustomTags.MV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', + new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', GTMachines.ALUMINIUM_CRATE.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_chest_hv", GTMachines.SUPER_CHEST[HV].asStack(), "CPC", "PFP", "CGC", 'C', CustomTags.HV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', GTMachines.STAINLESS_STEEL_CRATE.asStack(), 'G', GTItems.FIELD_GENERATOR_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_chest_ev", GTMachines.SUPER_CHEST[EV].asStack(), "CPC", "PFP", "CGC", 'C', CustomTags.EV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', GTMachines.TITANIUM_CRATE.asStack(), + new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', GTMachines.TITANIUM_CRATE.asStack(), 'G', GTItems.FIELD_GENERATOR_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_chest_iv", GTMachines.QUANTUM_CHEST[IV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.IV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.TungstenSteel), 'F', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.TungstenSteel), 'F', GTItems.FIELD_GENERATOR_HV.asStack(), 'H', GTMachines.HULL[5].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_chest_luv", GTMachines.QUANTUM_CHEST[LuV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.LuV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.RhodiumPlatedPalladium), 'F', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.RhodiumPlatedPalladium), 'F', GTItems.FIELD_GENERATOR_EV.asStack(), 'H', GTMachines.HULL[6].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_chest_zpm", GTMachines.QUANTUM_CHEST[ZPM].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.ZPM_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.NaquadahAlloy), 'F', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.NaquadahAlloy), 'F', GTItems.FIELD_GENERATOR_IV.asStack(), 'H', GTMachines.HULL[7].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_chest_uv", GTMachines.QUANTUM_CHEST[UV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.UV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.Darmstadtium), 'F', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.Darmstadtium), 'F', GTItems.FIELD_GENERATOR_LuV.asStack(), 'H', GTMachines.HULL[8].asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_chest_uhv", GTMachines.QUANTUM_CHEST[UHV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.UHV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium), 'F', + new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium), 'F', GTItems.FIELD_GENERATOR_ZPM.asStack(), 'H', GTMachines.HULL[9].asStack()); // Super / Quantum Tanks VanillaRecipeHelper.addShapedRecipe(provider, true, "super_tank_lv", GTMachines.SUPER_TANK[LV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.LV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Steel), 'F', GTItems.ELECTRIC_PUMP_LV.asStack(), 'H', + new MaterialEntry(TagPrefix.plate, GTMaterials.Steel), 'F', GTItems.ELECTRIC_PUMP_LV.asStack(), 'H', GTBlocks.HERMETIC_CASING_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_tank_mv", GTMachines.SUPER_TANK[MV].asStack(), "CPC", "PHP", "CFC", 'C', CustomTags.MV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', GTItems.ELECTRIC_PUMP_MV.asStack(), + new MaterialEntry(TagPrefix.plate, GTMaterials.Aluminium), 'F', GTItems.ELECTRIC_PUMP_MV.asStack(), 'H', GTBlocks.HERMETIC_CASING_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_tank_hv", GTMachines.SUPER_TANK[HV].asStack(), "CGC", "PHP", "CFC", 'C', CustomTags.HV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', + new MaterialEntry(TagPrefix.plate, GTMaterials.StainlessSteel), 'F', GTItems.ELECTRIC_PUMP_HV.asStack(), 'H', GTBlocks.HERMETIC_CASING_HV.asStack(), 'G', GTItems.FIELD_GENERATOR_LV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "super_tank_ev", GTMachines.SUPER_TANK[EV].asStack(), "CGC", "PHP", "CFC", 'C', CustomTags.EV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', GTItems.ELECTRIC_PUMP_EV.asStack(), + new MaterialEntry(TagPrefix.plate, GTMaterials.Titanium), 'F', GTItems.ELECTRIC_PUMP_EV.asStack(), 'H', GTBlocks.HERMETIC_CASING_EV.asStack(), 'G', GTItems.FIELD_GENERATOR_MV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_tank_iv", GTMachines.QUANTUM_TANK[IV].asStack(), "CGC", "PHP", "CUC", 'C', CustomTags.IV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.TungstenSteel), 'U', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.TungstenSteel), 'U', GTItems.ELECTRIC_PUMP_IV.asStack(), 'G', GTItems.FIELD_GENERATOR_HV.asStack(), 'H', GTBlocks.HERMETIC_CASING_IV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_tank_luv", GTMachines.QUANTUM_TANK[LuV].asStack(), "CGC", "PHP", "CUC", 'C', CustomTags.LuV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.RhodiumPlatedPalladium), 'U', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.RhodiumPlatedPalladium), 'U', GTItems.ELECTRIC_PUMP_LuV.asStack(), 'G', GTItems.FIELD_GENERATOR_EV.asStack(), 'H', GTBlocks.HERMETIC_CASING_LuV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_tank_zpm", GTMachines.QUANTUM_TANK[ZPM].asStack(), "CGC", "PHP", "CUC", 'C', CustomTags.ZPM_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.NaquadahAlloy), 'U', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.NaquadahAlloy), 'U', GTItems.ELECTRIC_PUMP_ZPM.asStack(), 'G', GTItems.FIELD_GENERATOR_IV.asStack(), 'H', GTBlocks.HERMETIC_CASING_ZPM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_tank_uv", GTMachines.QUANTUM_TANK[UV].asStack(), "CGC", "PHP", "CUC", 'C', CustomTags.UV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plateDense, GTMaterials.Darmstadtium), 'U', + new MaterialEntry(TagPrefix.plateDense, GTMaterials.Darmstadtium), 'U', GTItems.ELECTRIC_PUMP_UV.asStack(), 'G', GTItems.FIELD_GENERATOR_LuV.asStack(), 'H', GTBlocks.HERMETIC_CASING_UV.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "quantum_tank_uhv", GTMachines.QUANTUM_TANK[UHV].asStack(), "CGC", "PHP", "CUC", 'C', CustomTags.UHV_CIRCUITS, 'P', - new UnificationEntry(TagPrefix.plate, GTMaterials.Neutronium), 'U', GTItems.ELECTRIC_PUMP_UV.asStack(), + new MaterialEntry(TagPrefix.plate, GTMaterials.Neutronium), 'U', GTItems.ELECTRIC_PUMP_UV.asStack(), 'G', GTItems.FIELD_GENERATOR_ZPM.asStack(), 'H', GTBlocks.HERMETIC_CASING_UHV.asStack()); registerMachineRecipe(provider, true, GTMachines.BUFFER, "HP", "CV", @@ -1162,19 +1162,19 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "cleanroom", GTMachines.CLEANROOM.asStack(), "FFF", "RHR", "MCM", 'F', GTItems.ITEM_FILTER.asStack(), 'R', - new UnificationEntry(TagPrefix.rotor, GTMaterials.StainlessSteel), 'H', HULL.getIngredient(HV), 'M', + new MaterialEntry(TagPrefix.rotor, GTMaterials.StainlessSteel), 'H', HULL.getIngredient(HV), 'M', GTItems.ELECTRIC_MOTOR_HV.asStack(), 'C', CustomTags.HV_CIRCUITS); if (ConfigHolder.INSTANCE.compat.energy.enableFEConverters) { registerMachineRecipe(provider, true, GTMachines.ENERGY_CONVERTER_1A, " WW", "RMC", " WW", 'C', CIRCUIT, - 'M', HULL, 'W', CABLE, 'R', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.RedAlloy)); + 'M', HULL, 'W', CABLE, 'R', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.RedAlloy)); registerMachineRecipe(provider, true, GTMachines.ENERGY_CONVERTER_4A, " WW", "RMC", " WW", 'C', CIRCUIT, 'M', HULL, 'W', CABLE_QUAD, 'R', - new UnificationEntry(TagPrefix.cableGtQuadruple, GTMaterials.RedAlloy)); + new MaterialEntry(TagPrefix.cableGtQuadruple, GTMaterials.RedAlloy)); registerMachineRecipe(provider, true, GTMachines.ENERGY_CONVERTER_8A, " WW", "RMC", " WW", 'C', CIRCUIT, - 'M', HULL, 'W', CABLE_OCT, 'R', new UnificationEntry(TagPrefix.cableGtOctal, GTMaterials.RedAlloy)); + 'M', HULL, 'W', CABLE_OCT, 'R', new MaterialEntry(TagPrefix.cableGtOctal, GTMaterials.RedAlloy)); registerMachineRecipe(provider, true, GTMachines.ENERGY_CONVERTER_16A, " WW", "RMC", " WW", 'C', CIRCUIT, - 'M', HULL, 'W', CABLE_HEX, 'R', new UnificationEntry(TagPrefix.cableGtHex, GTMaterials.RedAlloy)); + 'M', HULL, 'W', CABLE_HEX, 'R', new MaterialEntry(TagPrefix.cableGtHex, GTMaterials.RedAlloy)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java index 41181a450a..88fde2cacd 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java @@ -4,7 +4,7 @@ import com.gregtechceu.gtceu.api.GTCEuAPI; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.machine.MachineDefinition; import com.gregtechceu.gtceu.common.data.machines.GTAEMachines; import com.gregtechceu.gtceu.data.recipe.CraftingComponent; @@ -50,7 +50,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "dynamo_hatch_ulv", ENERGY_OUTPUT_HATCH[ULV].asStack(), " V ", "SHS", " ", - 'S', new UnificationEntry(spring, Lead), + 'S', new MaterialEntry(spring, Lead), 'V', VOLTAGE_COIL_ULV.asStack(), 'H', HULL[ULV].asStack()); @@ -63,7 +63,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "dynamo_hatch_lv", ENERGY_OUTPUT_HATCH[LV].asStack(), " V ", "SHS", " ", - 'S', new UnificationEntry(spring, Tin), + 'S', new MaterialEntry(spring, Tin), 'V', VOLTAGE_COIL_LV.asStack(), 'H', HULL[LV].asStack()); @@ -77,7 +77,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "dynamo_hatch_mv", ENERGY_OUTPUT_HATCH[MV].asStack(), " V ", "SHS", " P ", 'P', ULTRA_LOW_POWER_INTEGRATED_CIRCUIT.asStack(), - 'S', new UnificationEntry(spring, Copper), + 'S', new MaterialEntry(spring, Copper), 'V', VOLTAGE_COIL_MV.asStack(), 'H', HULL[MV].asStack()); @@ -175,7 +175,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "energy_hatch_ulv", ENERGY_INPUT_HATCH[ULV].asStack(), " V ", "CHC", " ", - 'C', new UnificationEntry(cableGtSingle, RedAlloy), + 'C', new MaterialEntry(cableGtSingle, RedAlloy), 'V', VOLTAGE_COIL_ULV.asStack(), 'H', HULL[ULV].asStack()); @@ -188,7 +188,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "energy_hatch_lv", ENERGY_INPUT_HATCH[LV].asStack(), " V ", "CHC", " ", - 'C', new UnificationEntry(cableGtSingle, Tin), + 'C', new MaterialEntry(cableGtSingle, Tin), 'V', VOLTAGE_COIL_LV.asStack(), 'H', HULL[LV].asStack()); @@ -201,7 +201,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "energy_hatch_mv", ENERGY_INPUT_HATCH[MV].asStack(), " V ", "CHC", " P ", - 'C', new UnificationEntry(cableGtSingle, Copper), + 'C', new MaterialEntry(cableGtSingle, Copper), 'P', ULTRA_LOW_POWER_INTEGRATED_CIRCUIT.asStack(), 'V', VOLTAGE_COIL_MV.asStack(), 'H', HULL[MV].asStack()); @@ -304,8 +304,8 @@ public static void init(Consumer provider) { var hatch = POWER_TRANSFORMER[tier]; if (hatch == null) continue; // Assume they actually are nonnull for now. - var materialPrime = ChemicalHelper.getMaterial(CraftingComponent.CABLE_HEX.getIngredient(tier)).material(); - var materialSecond = ChemicalHelper.getMaterial(CraftingComponent.CABLE_TIER_UP_OCT.getIngredient(tier)) + var materialPrime = ChemicalHelper.getMaterialStack(CraftingComponent.CABLE_HEX.getIngredient(tier)).material(); + var materialSecond = ChemicalHelper.getMaterialStack(CraftingComponent.CABLE_TIER_UP_OCT.getIngredient(tier)) .material(); ASSEMBLER_RECIPES.recipeBuilder(GTValues.VN[tier].toLowerCase() + "_power_transformer") diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java index b21dc2d9b0..725a9d5738 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java @@ -2,7 +2,7 @@ import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterials.Color; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; import com.gregtechceu.gtceu.config.ConfigHolder; @@ -32,25 +32,25 @@ public class MiscRecipeLoader { public static void init(Consumer provider) { // Basic Terminal Recipe VanillaRecipeHelper.addShapedRecipe(provider, true, "basic_terminal", TERMINAL.asStack(), - "SGS", "PBP", "PWP", 'S', new UnificationEntry(screw, WroughtIron), 'G', Tags.Items.GLASS_PANES, 'B', + "SGS", "PBP", "PWP", 'S', new MaterialEntry(screw, WroughtIron), 'G', Tags.Items.GLASS_PANES, 'B', new ItemStack(Items.BOOK), - 'P', new UnificationEntry(plate, WroughtIron), 'W', new UnificationEntry(wireGtSingle, RedAlloy)); + 'P', new MaterialEntry(plate, WroughtIron), 'W', new MaterialEntry(wireGtSingle, RedAlloy)); // Machine Memory Card Recipe VanillaRecipeHelper.addShapedRecipe(provider, true, "machine_memory_card", MACHINE_MEMORY_CARD.asStack(), - "PWP", "SLS", "PPP", 'P', new UnificationEntry(plate, Steel), 'W', - new UnificationEntry(wireGtSingle, Copper), 'S', new UnificationEntry(screw, RedAlloy), 'L', + "PWP", "SLS", "PPP", 'P', new MaterialEntry(plate, Steel), 'W', + new MaterialEntry(wireGtSingle, Copper), 'S', new MaterialEntry(screw, RedAlloy), 'L', CustomTags.LV_CIRCUITS); // Potin Recipe VanillaRecipeHelper.addShapelessRecipe(provider, "potin_dust", ChemicalHelper.get(dust, Potin, 8), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Tin), - new UnificationEntry(dust, Tin), - new UnificationEntry(dust, Lead)); + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Tin), + new MaterialEntry(dust, Tin), + new MaterialEntry(dust, Lead)); MIXER_RECIPES.recipeBuilder("fermented_spider_eye_brown").duration(100).EUt(VA[ULV]) .inputItems(dust, Sugar) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java index 8a3634bae6..a10a8c9e1d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java @@ -8,7 +8,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; @@ -112,7 +112,7 @@ private static void registerMaceratorRecycling(Consumer provider GTRecipeTypes.MACERATOR_RECIPES.getMaxOutputs(ItemRecipeCapability.CAP), ChemicalHelper::getDust); - UnificationEntry entry = ChemicalHelper.getUnificationEntry(input.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; if (entry != null) { inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); @@ -149,7 +149,7 @@ private static void registerMaceratorRecycling(Consumer provider private static void registerExtractorRecycling(Consumer provider, ItemStack input, List materials, int multiplier, @Nullable TagPrefix prefix) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(input.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; if (entry != null) { inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); @@ -157,7 +157,7 @@ private static void registerExtractorRecycling(Consumer provider // Handle simple materials separately if (prefix != null && prefix.secondaryMaterials().isEmpty()) { - MaterialStack ms = ChemicalHelper.getMaterial(input); + MaterialStack ms = ChemicalHelper.getMaterialStack(input); if (ms == null || ms.material() == null) { return; } @@ -238,14 +238,14 @@ private static void registerExtractorRecycling(Consumer provider private static void registerArcRecycling(Consumer provider, ItemStack input, List materials, @Nullable TagPrefix prefix) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(input.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; if (entry != null) { inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); } // Block dusts from being arc'd instead of EBF'd - MaterialStack ms = ChemicalHelper.getMaterial(input); + MaterialStack ms = ChemicalHelper.getMaterialStack(input); if (prefix == TagPrefix.dust && ms != null && ms.material().hasProperty(PropertyKey.BLAST)) { return; } else if (prefix == TagPrefix.block) { @@ -313,7 +313,7 @@ private static boolean needsRecyclingCategory(@Nullable TagPrefix prefix, @Nulla @NotNull List outputs) { if (prefix == TagPrefix.nugget || prefix == TagPrefix.ingot || prefix == TagPrefix.block) { if (outputs.size() == 1) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(outputs.get(0).getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(outputs.get(0).getItem()); if (entry != null && inputStack != null) { Material mat = inputStack.material(); if (!mat.hasFlag(IS_MAGNETIC) && mat.hasProperty(PropertyKey.INGOT)) { @@ -424,7 +424,7 @@ private static int calculateVoltageMultiplier(List materials) { private static int calculateDuration(List materials) { long duration = 0; for (ItemStack is : materials) { - MaterialStack ms = ChemicalHelper.getMaterial(is); + MaterialStack ms = ChemicalHelper.getMaterialStack(is); if (ms != null) duration += ms.amount() * ms.material().getMass() * is.getCount(); } return (int) Math.max(1L, duration / M); @@ -456,7 +456,7 @@ private static List finalizeOutputs(List materials, in ItemStack stack = toItemStackMapper.apply(ms); if (stack == ItemStack.EMPTY) continue; if (stack.getCount() > 64) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(stack.getItem()); + MaterialEntry entry = ChemicalHelper.getMaterialEntry(stack.getItem()); if (entry != null) { // should always be true TagPrefix prefix = entry.tagPrefix; @@ -525,7 +525,7 @@ private static List finalizeOutputs(List materials, in } private static void splitStacks(List> list, ItemStack originalStack, - UnificationEntry entry) { + MaterialEntry entry) { int amount = originalStack.getCount(); while (amount > 64) { list.add(new Tuple<>(GTUtil.copyAmount(64, originalStack), @@ -542,7 +542,7 @@ private static void splitStacks(List> list, Item TagPrefix.nugget); private static void shrinkStacks(List> list, ItemStack originalStack, - UnificationEntry entry) { + MaterialEntry entry) { Material material = entry.material; long materialAmount = originalStack.getCount() * entry.tagPrefix.getMaterialAmount(material); @@ -569,7 +569,7 @@ private static void shrinkStacks(List> list, Ite splitStacks(list, ChemicalHelper.get(chosenList.get(0), ms.material(), (int) (ms.amount() / prefix.getMaterialAmount(material))), - new UnificationEntry(prefix, material)); + new MaterialEntry(prefix, material)); } TagPrefix mediumPrefix = chosenList.get(1); // dustSmall or ingot diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java index 3a802f0fb2..ebe3e673bf 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.misc; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.recipe.ingredient.FluidContainerIngredient; import com.gregtechceu.gtceu.common.data.GTMaterials; @@ -170,19 +170,19 @@ private static void glassRecipes(Consumer provider) { .duration(30).EUt(2).save(provider); VanillaRecipeHelper.addShapelessRecipe(provider, "glass_dust_flint", ChemicalHelper.get(dust, Glass), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dustTiny, Flint)); + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dustTiny, Flint)); VanillaRecipeHelper.addShapelessRecipe(provider, "glass_full_dust_flint", ChemicalHelper.get(dust, Glass, 8), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, QuartzSand), - new UnificationEntry(dust, Flint)); + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, QuartzSand), + new MaterialEntry(dust, Flint)); MIXER_RECIPES.recipeBuilder("glass_from_quartzite").duration(160).EUt(VA[ULV]) .inputItems(dustSmall, Flint) @@ -496,17 +496,17 @@ private static void woodRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "sticky_resin_torch", new ItemStack(Blocks.TORCH, 3), "X", "Y", 'X', STICKY_RESIN, 'Y', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_sulfur", new ItemStack(Blocks.TORCH, 2), "C", "S", 'C', - new UnificationEntry(dust, Sulfur), 'S', new ItemStack(Items.STICK)); + new MaterialEntry(dust, Sulfur), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_phosphorus", new ItemStack(Blocks.TORCH, 6), "C", "S", 'C', - new UnificationEntry(dust, Phosphorus), 'S', new ItemStack(Items.STICK)); + new MaterialEntry(dust, Phosphorus), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_coal_dust", new ItemStack(Blocks.TORCH, 4), "C", "S", 'C', - new UnificationEntry(dust, Coal), 'S', new ItemStack(Items.STICK)); + new MaterialEntry(dust, Coal), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_charcoal_dust", new ItemStack(Blocks.TORCH, 4), "C", "S", - 'C', new UnificationEntry(dust, Charcoal), 'S', new ItemStack(Items.STICK)); + 'C', new MaterialEntry(dust, Charcoal), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_coke", new ItemStack(Blocks.TORCH, 8), "C", "S", 'C', - new UnificationEntry(gem, Coke), 'S', new ItemStack(Items.STICK)); + new MaterialEntry(gem, Coke), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_coke_dust", new ItemStack(Blocks.TORCH, 8), "C", "S", 'C', - new UnificationEntry(dust, Coke), 'S', new ItemStack(Items.STICK)); + new MaterialEntry(dust, Coke), 'S', new ItemStack(Items.STICK)); VanillaRecipeHelper.addShapedRecipe(provider, "torch_creosote", new ItemStack(Blocks.TORCH, 16), "WB", "S ", 'W', ItemTags.WOOL, 'S', new ItemStack(Items.STICK), 'B', new FluidContainerIngredient(Creosote.getFluidTag(), 1000)); @@ -816,31 +816,31 @@ private static void metalRecipes(Consumer provider) { 'P', new ItemStack(Items.LEATHER), 'C', new ItemStack(Items.LEATHER_CHESTPLATE), 'L', new ItemStack(Items.LEATHER_LEGGINGS), - 'S', new UnificationEntry(screw, Iron)); + 'S', new MaterialEntry(screw, Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "iron_horse_armor", new ItemStack(Items.IRON_HORSE_ARMOR), "hdH", "PCP", "LSL", 'H', new ItemStack(Items.IRON_HELMET), - 'P', new UnificationEntry(plate, Iron), + 'P', new MaterialEntry(plate, Iron), 'C', new ItemStack(Items.IRON_CHESTPLATE), 'L', new ItemStack(Items.IRON_LEGGINGS), - 'S', new UnificationEntry(screw, Iron)); + 'S', new MaterialEntry(screw, Iron)); VanillaRecipeHelper.addShapedRecipe(provider, "golden_horse_armor", new ItemStack(Items.GOLDEN_HORSE_ARMOR), "hdH", "PCP", "LSL", 'H', new ItemStack(Items.GOLDEN_HELMET), - 'P', new UnificationEntry(plate, Gold), + 'P', new MaterialEntry(plate, Gold), 'C', new ItemStack(Items.GOLDEN_CHESTPLATE), 'L', new ItemStack(Items.GOLDEN_LEGGINGS), - 'S', new UnificationEntry(screw, Gold)); + 'S', new MaterialEntry(screw, Gold)); VanillaRecipeHelper.addShapedRecipe(provider, "diamond_horse_armor", new ItemStack(Items.DIAMOND_HORSE_ARMOR), "hdH", "PCP", "LSL", 'H', new ItemStack(Items.DIAMOND_HELMET), - 'P', new UnificationEntry(plate, Diamond), + 'P', new MaterialEntry(plate, Diamond), 'C', new ItemStack(Items.DIAMOND_CHESTPLATE), 'L', new ItemStack(Items.DIAMOND_LEGGINGS), - 'S', new UnificationEntry(bolt, Diamond)); + 'S', new MaterialEntry(bolt, Diamond)); VanillaRecipeHelper.addShapedRecipe(provider, "chainmail_helmet", new ItemStack(Items.CHAINMAIL_HELMET), "PPP", "PhP", @@ -1083,7 +1083,7 @@ private static void miscRecipes(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, "saddle", new ItemStack(Items.SADDLE), "LLL", "LCL", "RSR", 'L', new ItemStack(Items.LEATHER), 'C', ItemTags.WOOL_CARPETS, - 'R', new UnificationEntry(ring, Iron), + 'R', new MaterialEntry(ring, Iron), 'S', new ItemStack(Items.STRING)); AUTOCLAVE_RECIPES.recipeBuilder("clay_from_dust") diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java index ceed565ac0..4d45e5d4d8 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java @@ -3,9 +3,10 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.data.GTItems; @@ -339,24 +340,24 @@ private static void registerWoodRecipes(Consumer provider) { public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { for (var log_ : entry.getLogs()) { if (log_ != null && entry.addLogOreDict) { - ChemicalHelper.registerUnificationItems(log, entry.material, log_); + ItemMaterialData.registerMaterialInfoItems(log, entry.material, log_); } } if (entry.addPlanksOreDict) { - ChemicalHelper.registerUnificationItems(planks, entry.material, entry.planks); + ItemMaterialData.registerMaterialInfoItems(planks, entry.material, entry.planks); } if (entry.addPlanksUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.planks, + ItemMaterialData.registerMaterialInfo(entry.planks, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } if (entry.door != null) { if (entry.addDoorsOreDict) { - ChemicalHelper.registerUnificationItems(door, entry.material, entry.door); + ItemMaterialData.registerMaterialInfoItems(door, entry.material, entry.door); } if (entry.addDoorsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.door, ConfigHolder.INSTANCE.recipes.hardWoodRecipes ? + ItemMaterialData.registerMaterialInfo(entry.door, ConfigHolder.INSTANCE.recipes.hardWoodRecipes ? new ItemMaterialInfo(new MaterialStack(entry.material, M * 2), new MaterialStack(GTMaterials.Iron, M / 9)) : // screw new ItemMaterialInfo(new MaterialStack(entry.material, M * 2))); @@ -365,61 +366,61 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.slab != null) { if (entry.addSlabsOreDict) { - ChemicalHelper.registerUnificationItems(slab, entry.material, entry.slab); + ItemMaterialData.registerMaterialInfoItems(slab, entry.material, entry.slab); } if (entry.addSlabsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.slab, + ItemMaterialData.registerMaterialInfo(entry.slab, new ItemMaterialInfo(new MaterialStack(entry.material, M / 2))); } } if (entry.fence != null) { if (entry.addFencesOreDict) { - ChemicalHelper.registerUnificationItems(fence, entry.material, entry.fence); + ItemMaterialData.registerMaterialInfoItems(fence, entry.material, entry.fence); } if (entry.addFencesUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.fence, + ItemMaterialData.registerMaterialInfo(entry.fence, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } } if (entry.fenceGate != null) { if (entry.addFenceGatesOreDict) { - ChemicalHelper.registerUnificationItems(fenceGate, entry.material, entry.fenceGate); + ItemMaterialData.registerMaterialInfoItems(fenceGate, entry.material, entry.fenceGate); } if (entry.addFenceGatesUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.fenceGate, + ItemMaterialData.registerMaterialInfo(entry.fenceGate, new ItemMaterialInfo(new MaterialStack(entry.material, M * 3))); } } if (entry.stairs != null) { if (entry.addStairsOreDict) { - ChemicalHelper.registerUnificationItems(stairs, entry.material, entry.stairs); + ItemMaterialData.registerMaterialInfoItems(stairs, entry.material, entry.stairs); } if (entry.addStairsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.stairs, + ItemMaterialData.registerMaterialInfo(entry.stairs, new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 2))); } } if (entry.boat != null && entry.addBoatsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.boat, + ItemMaterialData.registerMaterialInfo(entry.boat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 5))); } if (entry.chestBoat != null && entry.addChestBoatsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.chestBoat, + ItemMaterialData.registerMaterialInfo(entry.chestBoat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 13))); } if (entry.button != null && entry.addButtonsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.button, + ItemMaterialData.registerMaterialInfo(entry.button, new ItemMaterialInfo(new MaterialStack(entry.material, M / 6))); } if (entry.pressurePlate != null && entry.addPressurePlatesUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.pressurePlate, + ItemMaterialData.registerMaterialInfo(entry.pressurePlate, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } } @@ -474,8 +475,8 @@ public static void registerWoodTypeRecipe(Consumer provider, @No "PTd", "PRS", "PPs", 'P', entry.planks, 'T', entry.trapdoor, - 'R', new UnificationEntry(ring, Iron), - 'S', new UnificationEntry(screw, Iron)); + 'R', new MaterialEntry(ring, Iron), + 'S', new MaterialEntry(screw, Iron)); // plank -> door assembling ASSEMBLER_RECIPES.recipeBuilder(name + "_door") @@ -489,8 +490,8 @@ public static void registerWoodTypeRecipe(Consumer provider, @No "PTd", "PRS", "PPs", 'P', entry.planks, 'T', ItemTags.WOODEN_TRAPDOORS, - 'R', new UnificationEntry(ring, Iron), - 'S', new UnificationEntry(screw, Iron)); + 'R', new MaterialEntry(ring, Iron), + 'S', new MaterialEntry(screw, Iron)); // plank -> door assembling ASSEMBLER_RECIPES.recipeBuilder(name + "_door") @@ -524,7 +525,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_iron", new ItemStack(entry.sign), "LLL", "RPR", "sSd", 'P', entry.planks, - 'R', new UnificationEntry(screw, Iron), + 'R', new MaterialEntry(screw, Iron), 'L', entry.slab, 'S', entry.getStick()); @@ -540,7 +541,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_steel", new ItemStack(entry.sign, 2), "LLL", "RPR", "sSd", 'P', entry.planks, - 'R', new UnificationEntry(screw, Steel), + 'R', new MaterialEntry(screw, Steel), 'L', entry.slab, 'S', entry.getStick()); @@ -577,7 +578,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No VanillaRecipeHelper.addShapedRecipe(provider, recipeNameHanging, new ItemStack(entry.hangingSign), "LLL", "C C", "RSR", 'C', Items.CHAIN, - 'R', new UnificationEntry(ring, Iron), + 'R', new MaterialEntry(ring, Iron), 'S', new ItemStack(entry.sign), 'L', new ItemStack(entry.slab)); @@ -585,7 +586,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No new ItemStack(entry.hangingSign, 2), "LLL", "C C", "RSR", 'C', Items.CHAIN, - 'R', new UnificationEntry(ring, Steel), + 'R', new MaterialEntry(ring, Steel), 'S', new ItemStack(entry.sign), 'L', new ItemStack(entry.slab)); @@ -623,7 +624,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_iron", new ItemStack(entry.trapdoor), "BPS", "PdP", "SPB", 'P', entry.planks, - 'B', new UnificationEntry(bolt, Iron), + 'B', new MaterialEntry(bolt, Iron), 'S', entry.getStick()); // plank -> trapdoor assembling @@ -637,7 +638,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No VanillaRecipeHelper.addShapedRecipe(provider, recipeName + "_steel", new ItemStack(entry.trapdoor, 2), "BPS", "PdP", "SPB", 'P', entry.planks, - 'B', new UnificationEntry(bolt, Steel), + 'B', new MaterialEntry(bolt, Steel), 'S', entry.getStick()); // plank -> trapdoor assembling @@ -746,7 +747,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No "IdI", "SPS", "SPS", 'P', entry.planks, 'S', entry.getStick(), - 'I', new UnificationEntry(screw, Iron)); + 'I', new MaterialEntry(screw, Iron)); } else { if (!hasFenceGateRecipe) { VanillaRecipeHelper.addShapedRecipe(provider, name + "_fence_gate", new ItemStack(entry.fenceGate), @@ -801,7 +802,7 @@ public static void registerWoodTypeRecipe(Consumer provider, @No new ItemStack(entry.chestBoat), " B ", "SCS", " w ", 'B', entry.boat, - 'S', new UnificationEntry(bolt, Wood), + 'S', new MaterialEntry(bolt, Wood), 'C', Tags.Items.CHESTS_WOODEN); } else { VanillaRecipeHelper.addShapelessRecipe(provider, recipeName, @@ -845,9 +846,9 @@ public static void registerWoodTypeRecipe(Consumer provider, @No if (ConfigHolder.INSTANCE.recipes.hardWoodRecipes) { VanillaRecipeHelper.addShapedRecipe(provider, name + "_pressure_plate", new ItemStack(entry.pressurePlate, 2), "SrS", "LCL", "SdS", - 'S', new UnificationEntry(bolt, GTMaterials.Wood), + 'S', new MaterialEntry(bolt, GTMaterials.Wood), 'L', entry.slab.asItem(), - 'C', new UnificationEntry(spring, GTMaterials.Iron)); + 'C', new MaterialEntry(spring, GTMaterials.Iron)); ASSEMBLER_RECIPES.recipeBuilder(name + "_pressure_plate") .inputItems(new ItemStack(entry.slab, 2)) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java index c8cf542275..2f79eeccc4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java @@ -1,7 +1,7 @@ package com.gregtechceu.gtceu.data.recipe.serialized.chemistry; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; import net.minecraft.data.recipes.FinishedRecipe; @@ -129,16 +129,16 @@ public static void init(Consumer provider) { // Alloys VanillaRecipeHelper.addShapelessRecipe(provider, "dust_brass", ChemicalHelper.get(dust, Brass, 3), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Zinc)); + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Zinc)); VanillaRecipeHelper.addShapelessRecipe(provider, "dust_bronze", ChemicalHelper.get(dust, Bronze, 3), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Copper), - new UnificationEntry(dust, Tin)); + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Copper), + new MaterialEntry(dust, Tin)); MIXER_RECIPES.recipeBuilder("red_alloy").duration(100).EUt(VA[ULV]) .inputItems(dust, Copper) diff --git a/src/main/java/com/gregtechceu/gtceu/data/tags/TagsHandler.java b/src/main/java/com/gregtechceu/gtceu/data/tags/TagsHandler.java index f32e8442aa..40306260af 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/tags/TagsHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/tags/TagsHandler.java @@ -10,7 +10,7 @@ import com.tterrag.registrate.providers.RegistrateTagsProvider; -import static com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper.registerUnificationItems; +import static com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData.registerMaterialInfoItems; import static com.gregtechceu.gtceu.api.data.tag.TagPrefix.*; import static com.gregtechceu.gtceu.common.data.GTMaterials.*; @@ -38,23 +38,23 @@ public static void initEntity(RegistrateTagsProvider> provider) { } public static void initExtraUnificationEntries() { - registerUnificationItems(ingot, Clay, Items.CLAY_BALL); - - registerUnificationItems(dye, Color.Black, Items.BLACK_DYE); - registerUnificationItems(dye, Color.Red, Items.RED_DYE); - registerUnificationItems(dye, Color.Green, Items.GREEN_DYE); - registerUnificationItems(dye, Color.Brown, Items.BROWN_DYE); - registerUnificationItems(dye, Color.Blue, Items.BLUE_DYE); - registerUnificationItems(dye, Color.Purple, Items.PURPLE_DYE); - registerUnificationItems(dye, Color.Cyan, Items.CYAN_DYE); - registerUnificationItems(dye, Color.LightGray, Items.LIGHT_GRAY_DYE); - registerUnificationItems(dye, Color.Gray, Items.GRAY_DYE); - registerUnificationItems(dye, Color.Pink, Items.PINK_DYE); - registerUnificationItems(dye, Color.Lime, Items.LIME_DYE); - registerUnificationItems(dye, Color.Yellow, Items.YELLOW_DYE); - registerUnificationItems(dye, Color.LightBlue, Items.LIGHT_BLUE_DYE); - registerUnificationItems(dye, Color.Magenta, Items.MAGENTA_DYE); - registerUnificationItems(dye, Color.Orange, Items.ORANGE_DYE); - registerUnificationItems(dye, Color.White, Items.WHITE_DYE); + registerMaterialInfoItems(ingot, Clay, Items.CLAY_BALL); + + registerMaterialInfoItems(dye, Color.Black, Items.BLACK_DYE); + registerMaterialInfoItems(dye, Color.Red, Items.RED_DYE); + registerMaterialInfoItems(dye, Color.Green, Items.GREEN_DYE); + registerMaterialInfoItems(dye, Color.Brown, Items.BROWN_DYE); + registerMaterialInfoItems(dye, Color.Blue, Items.BLUE_DYE); + registerMaterialInfoItems(dye, Color.Purple, Items.PURPLE_DYE); + registerMaterialInfoItems(dye, Color.Cyan, Items.CYAN_DYE); + registerMaterialInfoItems(dye, Color.LightGray, Items.LIGHT_GRAY_DYE); + registerMaterialInfoItems(dye, Color.Gray, Items.GRAY_DYE); + registerMaterialInfoItems(dye, Color.Pink, Items.PINK_DYE); + registerMaterialInfoItems(dye, Color.Lime, Items.LIME_DYE); + registerMaterialInfoItems(dye, Color.Yellow, Items.YELLOW_DYE); + registerMaterialInfoItems(dye, Color.LightBlue, Items.LIGHT_BLUE_DYE); + registerMaterialInfoItems(dye, Color.Magenta, Items.MAGENTA_DYE); + registerMaterialInfoItems(dye, Color.Orange, Items.ORANGE_DYE); + registerMaterialInfoItems(dye, Color.White, Items.WHITE_DYE); } } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index 23b913e91e..b3d6019412 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -16,7 +16,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.medicalcondition.Symptom; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; @@ -208,7 +208,7 @@ public void registerBindings(BindingsEvent event) { event.add("GTMedicalConditions", GTMedicalConditions.class); event.add("TagPrefix", TagPrefix.class); event.add("ItemGenerationCondition", TagPrefix.Conditions.class); - event.add("UnificationEntry", UnificationEntry.class); + event.add("UnificationEntry", MaterialEntry.class); event.add("RecipeCapability", RecipeCapability.class); event.add("ChanceLogic", ChanceLogic.class); event.add("GTFluidAttributes", FluidAttributes.class); @@ -292,15 +292,15 @@ public void registerTypeWrappers(ScriptType type, TypeWrappers typeWrappers) { if (o instanceof CharSequence chars) return TagPrefix.get(chars.toString()); return null; }); - typeWrappers.registerSimple(UnificationEntry.class, o -> { - if (o instanceof UnificationEntry entry) return entry; + typeWrappers.registerSimple(MaterialEntry.class, o -> { + if (o instanceof MaterialEntry entry) return entry; if (o instanceof CharSequence chars) { var values = chars.toString().split(":"); if (values.length == 1) { - return new UnificationEntry(TagPrefix.get(values[0])); + return new MaterialEntry(TagPrefix.get(values[0])); } if (values.length >= 2) { - return new UnificationEntry(TagPrefix.get(values[0]), GTMaterials.get(values[1])); + return new MaterialEntry(TagPrefix.get(values[0]), GTMaterials.get(values[1])); } } return null; diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java index 582555b2e9..eccf316430 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java @@ -1,6 +1,6 @@ package com.gregtechceu.gtceu.integration.kjs.events; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.data.recipe.CraftingComponent; import net.minecraft.core.registries.Registries; @@ -54,11 +54,11 @@ public void modifyTag(CraftingComponent.Component component, Map map) { + public void modifyUnificationEntry(CraftingComponent.Component component, Map map) { Map newMap = map.entrySet() .stream() .map(entry -> Map.entry(entry.getKey().intValue(), entry.getValue())) @@ -90,7 +90,7 @@ public CraftingComponent.Component createTag(Map map) return new CraftingComponent.Component(newMap); } - public CraftingComponent.Component createUnificationEntry(Map map) { + public CraftingComponent.Component createUnificationEntry(Map map) { Map newMap = map.entrySet() .stream() .map(entry -> Map.entry(entry.getKey().intValue(), entry.getValue())) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index 2624c94489..534a8aac34 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -4,7 +4,7 @@ import com.gregtechceu.gtceu.api.capability.recipe.*; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.component.IDataItem; @@ -217,11 +217,11 @@ public GTRecipeJS itemInputs(InputItem... inputs) { return inputItems(inputs); } - public GTRecipeJS itemInput(UnificationEntry input) { + public GTRecipeJS itemInput(MaterialEntry input) { return inputItems(input); } - public GTRecipeJS itemInput(UnificationEntry input, int count) { + public GTRecipeJS itemInput(MaterialEntry input, int count) { return inputItems(input, count); } @@ -267,11 +267,11 @@ public GTRecipeJS inputItems(TagPrefix orePrefix, Material material) { return inputItems(orePrefix, material, 1); } - public GTRecipeJS inputItems(UnificationEntry input) { + public GTRecipeJS inputItems(MaterialEntry input) { return inputItems(input.tagPrefix, input.material, 1); } - public GTRecipeJS inputItems(UnificationEntry input, int count) { + public GTRecipeJS inputItems(MaterialEntry input, int count) { return inputItems(input.tagPrefix, input.material, count); } @@ -291,12 +291,12 @@ public GTRecipeJS itemOutputs(ExtendedOutputItem... outputs) { return outputItems(outputs); } - public GTRecipeJS itemOutput(UnificationEntry unificationEntry) { - return outputItems(unificationEntry.tagPrefix, unificationEntry.material); + public GTRecipeJS itemOutput(MaterialEntry materialEntry) { + return outputItems(materialEntry.tagPrefix, materialEntry.material); } - public GTRecipeJS itemOutput(UnificationEntry unificationEntry, int count) { - return outputItems(unificationEntry.tagPrefix, unificationEntry.material, count); + public GTRecipeJS itemOutput(MaterialEntry materialEntry, int count) { + return outputItems(materialEntry.tagPrefix, materialEntry.material, count); } public GTRecipeJS outputItems(ExtendedOutputItem... outputs) { diff --git a/src/main/java/com/gregtechceu/gtceu/integration/map/cache/server/ServerCache.java b/src/main/java/com/gregtechceu/gtceu/integration/map/cache/server/ServerCache.java index a64ff50af8..dac15ff0ea 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/map/cache/server/ServerCache.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/map/cache/server/ServerCache.java @@ -72,7 +72,7 @@ public void prospectBySurfaceRockMaterial(ResourceKey dim, final Material if (nearbyVein.definition().indicatorGenerators().stream() .anyMatch(generator -> generator.block() != null && Objects.requireNonNull(generator.block()) .map(state -> { - MaterialStack mat = ChemicalHelper.getMaterial(state.getBlock().asItem()); + MaterialStack mat = ChemicalHelper.getMaterialStack(state.getBlock().asItem()); if (mat == null) return false; return mat.material() == material; }, diff --git a/src/main/java/com/gregtechceu/gtceu/integration/map/journeymap/JourneymapRenderer.java b/src/main/java/com/gregtechceu/gtceu/integration/map/journeymap/JourneymapRenderer.java index 02ff3a7e38..2ce8d4c341 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/map/journeymap/JourneymapRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/map/journeymap/JourneymapRenderer.java @@ -151,7 +151,7 @@ private static NativeImage createOreImage(GeneratedVeinMetadata vein) { var blockOrMaterial = vein.definition().indicatorGenerators().get(0).block(); firstMaterial = blockOrMaterial == null ? null : blockOrMaterial.map( state -> { - var matStack = ChemicalHelper.getMaterial(state.getBlock()); + var matStack = ChemicalHelper.getMaterialStack(state.getBlock()); return matStack == null ? null : matStack.material(); }, Function.identity()); diff --git a/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java b/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java index ef6b2b8a2c..fef29e9c3d 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java @@ -1,5 +1,7 @@ package com.gregtechceu.gtceu.utils; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import net.minecraft.world.level.block.Block; import java.util.function.Supplier; @@ -60,7 +62,7 @@ public String toString() { /** * A variant of the memoized supplier that stores a block explicitly. * Use this to save blocks to - * {@link com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper#registerUnificationItems(com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry, Supplier[])} + * {@link ItemMaterialData#registerMaterialInfoItems(MaterialEntry, Supplier[])} */ public static class MemoizedBlockSupplier extends MemoizedSupplier { diff --git a/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json b/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json index f3e2aec258..b72c2a18c8 100644 --- a/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json +++ b/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json @@ -1,5 +1,5 @@ { - "parent": "gtceu:block/cube_2_layer/tinted_both/all_translucent", + "parent": "gtceu:block/cube_2_layer/tinted_both/all", "textures": { "bot_all": "gtceu:block/material_sets/dull/block", "top_all": "gtceu:block/material_sets/dull/block_secondary" diff --git a/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json b/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json index f0ea327360..81993fb655 100644 --- a/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json +++ b/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json @@ -1,5 +1,5 @@ { - "parent": "gtceu:block/cube_2_layer/tinted_both/all_translucent", + "parent": "gtceu:block/cube_2_layer/tinted_both/all", "textures": { "bot_all": "gtceu:block/material_sets/fine/block", "top_all": "gtceu:block/material_sets/fine/block_secondary" From 8b7fd5562bbde138809f9bc0bc2a957e82b3c33f Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Thu, 19 Dec 2024 02:12:31 -0700 Subject: [PATCH 02/21] get machine based recipe material info mapping working --- .../api/data/chemical/ChemicalHelper.java | 3 + .../chemical/material/ItemMaterialData.java | 173 ++++++++++++++++++ .../material/properties/HazardProperty.java | 6 +- .../material/stack/ItemMaterialInfo.java | 9 +- .../gtceu/api/gui/misc/ProspectorMode.java | 4 +- .../gregtechceu/gtceu/api/item/IGTTool.java | 18 +- .../gtceu/api/recipe/GTRecipeType.java | 2 +- .../api/recipe/ToolHeadReplaceRecipe.java | 6 +- .../gtceu/client/TooltipsHandler.java | 8 +- .../gtceu/common/data/GTRecipes.java | 3 + .../gregtechceu/gtceu/core/MixinHelpers.java | 4 +- .../data/recipe/VanillaRecipeHelper.java | 18 +- .../gtceu/data/recipe/WoodTypeEntry.java | 98 +++++----- .../data/recipe/builder/GTRecipeBuilder.java | 156 +++++++++++++--- .../generated/MaterialRecipeHandler.java | 2 +- .../recipe/misc/AssemblerRecipeLoader.java | 1 + .../data/recipe/misc/ComponentRecipes.java | 1 + .../data/recipe/misc/MachineRecipeLoader.java | 2 + .../data/recipe/misc/RecyclingRecipes.java | 30 +-- .../data/recipe/misc/WoodMachineRecipes.java | 20 +- .../kjs/recipe/GTRecipeSchema.java | 8 +- 21 files changed, 433 insertions(+), 139 deletions(-) create mode 100644 src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 77fe8fff1e..009a1c97ab 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -13,6 +13,7 @@ import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; +import com.gregtechceu.gtceu.api.recipe.ingredient.SizedIngredient; import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; @@ -51,6 +52,8 @@ public static MaterialStack getMaterialStack(Object object) { return getMaterialStack(itemStack); } else if (object instanceof ItemLike item) { return getMaterialStack(item); + } else if (object instanceof SizedIngredient sized) { + return getMaterialStack(sized.getItems()[0]); } return null; } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java new file mode 100644 index 0000000000..eea2ddefd7 --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -0,0 +1,173 @@ +package com.gregtechceu.gtceu.api.data.chemical.material; + +import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; +import com.gregtechceu.gtceu.api.data.tag.TagPrefix; +import com.gregtechceu.gtceu.common.data.GTItems; +import com.gregtechceu.gtceu.data.recipe.misc.RecyclingRecipes; +import com.gregtechceu.gtceu.data.recipe.misc.WoodMachineRecipes; +import com.gregtechceu.gtceu.data.tags.TagsHandler; +import com.gregtechceu.gtceu.utils.ItemStackHashStrategy; +import com.gregtechceu.gtceu.utils.SupplierMemoizer; +import com.mojang.datafixers.util.Pair; +import com.tterrag.registrate.util.entry.BlockEntry; +import com.tterrag.registrate.util.entry.ItemEntry; +import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenCustomHashMap; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.registries.RegistryObject; +import org.jetbrains.annotations.Nullable; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; +import java.util.function.Supplier; + +public class ItemMaterialData { + + + /** Used for custom material data for items that do not fall into the normal "prefix, material" pair */ + public static final Map ITEM_MATERIAL_INFO = new ConcurrentHashMap<>(); + /** Mapping of an item to a "prefix, material" pair */ + public static final Set, MaterialEntry>> ITEM_MATERIAL_ENTRY = ConcurrentHashMap + .newKeySet(); + public static final Map ITEM_MATERIAL_ENTRY_COLLECTED = new ConcurrentHashMap<>(); + /** Mapping of a tag to a "prefix, material" pair */ + public static final Map, MaterialEntry> TAG_MATERIAL_ENTRY = new Object2ObjectLinkedOpenHashMap<>(); + /** Mapping of a fluid to a material */ + public static final Map FLUID_MATERIAL = new ConcurrentHashMap<>(); + /** Mapping of all items that represent a "prefix, material" pair */ + public static final Map>> MATERIAL_ENTRY_ITEM_MAP = new ConcurrentHashMap<>(); + public static final Map>> MATERIAL_ENTRY_BLOCK_MAP = new ConcurrentHashMap<>(); + /** Mapping of stone type blockState to "prefix, material" */ + public static final Map, TagPrefix> ORES_INVERSE = new ConcurrentHashMap<>(); + + public static final Map> UNRESOLVED_ITEM_MATERIAL_INFO = new Object2ReferenceOpenCustomHashMap<>(ItemStackHashStrategy.comparingAllButCount()); + + public static void registerMaterialInfo(ItemLike item, ItemMaterialInfo materialInfo) { + ITEM_MATERIAL_INFO.put(item, materialInfo); + } + + public static ItemMaterialInfo getMaterialInfo(Object item) { + if(item instanceof ItemLike itemLike) { + return getMaterialInfo(itemLike); + } else if(item instanceof ItemStack stack) { + return getMaterialInfo(stack.getItem()); + } + return null; + } + + public static ItemMaterialInfo getMaterialInfo(ItemLike item) { + if (item instanceof Block block) { + return ITEM_MATERIAL_INFO.get(block); + } else if (item instanceof BlockItem blockItem) { + var info = ITEM_MATERIAL_INFO.get(blockItem.getBlock()); + if (info != null) return info; + return ITEM_MATERIAL_INFO.get(item); + } else if (item instanceof ItemEntry entry) { + return ITEM_MATERIAL_INFO.get(entry.asItem()); + } + return ITEM_MATERIAL_INFO.get(item); + } + + @SafeVarargs + public static void registerMaterialInfoItems(MaterialEntry materialEntry, + Supplier... items) { + MATERIAL_ENTRY_ITEM_MAP.computeIfAbsent(materialEntry, entry -> new ArrayList<>()) + .addAll(Arrays.asList(items)); + for (Supplier item : items) { + ITEM_MATERIAL_ENTRY.add(Map.entry(item, materialEntry)); + if (item instanceof Block block) { + MATERIAL_ENTRY_BLOCK_MAP.computeIfAbsent(materialEntry, entry -> new ArrayList<>()) + .add(() -> block); + } else if (item instanceof BlockEntry blockEntry) { + MATERIAL_ENTRY_BLOCK_MAP.computeIfAbsent(materialEntry, entry -> new ArrayList<>()) + .add(blockEntry); + } else if (item instanceof RegistryObject registryObject) { + if (registryObject.getKey().isFor(Registries.BLOCK)) { + MATERIAL_ENTRY_BLOCK_MAP.computeIfAbsent(materialEntry, entry -> new ArrayList<>()) + .add((RegistryObject) registryObject); + } + } else if (item instanceof SupplierMemoizer.MemoizedBlockSupplier supplier) { + MATERIAL_ENTRY_BLOCK_MAP.computeIfAbsent(materialEntry, entry -> new ArrayList<>()) + .add(supplier); + } + } + if (TagPrefix.ORES.containsKey(materialEntry.tagPrefix()) && + !ORES_INVERSE.containsValue(materialEntry.tagPrefix())) { + ORES_INVERSE.put(TagPrefix.ORES.get(materialEntry.tagPrefix()).stoneType(), materialEntry.tagPrefix()); + } + for (TagKey tag : materialEntry.tagPrefix().getAllItemTags(materialEntry.material())) { + TAG_MATERIAL_ENTRY.putIfAbsent(tag, materialEntry); + } + } + + @SafeVarargs + public static void registerMaterialInfoItems(TagPrefix tagPrefix, @Nullable Material material, + Supplier... items) { + registerMaterialInfoItems(new MaterialEntry(tagPrefix, material), items); + } + + public static void registerMaterialInfoItems(TagPrefix tagPrefix, @Nullable Material material, ItemLike... items) { + registerMaterialInfoItems(new MaterialEntry(tagPrefix, material), + Arrays.stream(items).map(item -> (Supplier) () -> item).toArray(Supplier[]::new)); + for (ItemLike item : items) { + ITEM_MATERIAL_ENTRY_COLLECTED.put(item, new MaterialEntry(tagPrefix, material)); + } + } + + public static void reinitializeMaterialData() { + // Clear old data + MATERIAL_ENTRY_ITEM_MAP.clear(); + MATERIAL_ENTRY_BLOCK_MAP.clear(); + ITEM_MATERIAL_ENTRY.clear(); + FLUID_MATERIAL.clear(); + + // Load new data + TagsHandler.initExtraUnificationEntries(); + for (TagPrefix prefix : TagPrefix.values()) { + prefix.getIgnored().forEach((mat, items) -> { + if (items.length > 0) { + registerMaterialInfoItems(prefix, mat, items); + } + }); + } + GTItems.toUnify.forEach(ItemMaterialData::registerMaterialInfoItems); + WoodMachineRecipes.registerUnificationInfo(); + } + + public static void resolveItemMaterialInfos(Consumer provider) { + for(var entry : UNRESOLVED_ITEM_MATERIAL_INFO.entrySet()) { + List stacks = new ArrayList<>(); + for(var input : entry.getValue()) { + var matStack = getMaterialInfo(input.getItem()); + if(matStack != null) { + matStack.getMaterials().forEach(ms -> stacks.add(ms.copy(ms.amount() / entry.getKey().getCount())) ); + } + } + if(stacks.isEmpty()) + continue; + var matInfo = ITEM_MATERIAL_INFO.get(entry.getKey().getItem()); + if(matInfo == null) { + ITEM_MATERIAL_INFO.put(entry.getKey().getItem(), new ItemMaterialInfo(stacks)); + } else { + matInfo.addMaterialStacks(stacks); + } + RecyclingRecipes.registerRecyclingRecipes(provider, entry.getKey(), + ITEM_MATERIAL_INFO.get(entry.getKey().getItem()).getMaterials(), false, null); + } + UNRESOLVED_ITEM_MATERIAL_INFO.clear(); + } +} diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java index 85363f029b..3e3f56ece4 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java @@ -192,9 +192,9 @@ public static Material getValidHazardMaterial(ItemStack item) { } } else if (ConfigHolder.INSTANCE.gameplay.universalHazards) { MaterialEntry entry = ChemicalHelper.getMaterialEntry(item.getItem()); - if (entry != null && entry.material != null) { - material = entry.material; - prefix = entry.tagPrefix; + if (entry != null && entry.material() != null) { + material = entry.material(); + prefix = entry.tagPrefix(); } } if (material == null) { diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java index 6305f3dc82..aa5fa3ab3f 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java @@ -4,11 +4,12 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; public class ItemMaterialInfo { - private final List materials = new ArrayList<>(); + private List materials = new ArrayList<>(); public ItemMaterialInfo(MaterialStack... materials) { this.materials.addAll(Arrays.asList(materials)); @@ -32,6 +33,12 @@ public ImmutableList getMaterials() { return ImmutableList.copyOf(materials); } + public void addMaterialStacks(List stacks) { + if(stacks.isEmpty()) return; + materials.addAll(stacks); + materials.sort(Comparator.comparingLong(MaterialStack::amount)); + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java index 7f8d5a9232..022947fb55 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java +++ b/src/main/java/com/gregtechceu/gtceu/api/gui/misc/ProspectorMode.java @@ -71,8 +71,8 @@ public void scan(String[][][] storage, LevelChunk chunk) { var itemName = BLOCK_CACHE.computeIfAbsent(state, blockState -> { var name = BuiltInRegistries.BLOCK.getKey(blockState.getBlock()).toString(); var entry = ChemicalHelper.getMaterialEntry(blockState.getBlock()); - if (entry != null && entry.material != null) { - name = "material_" + entry.material.toString(); + if (entry != null && entry.material() != null) { + name = "material_" + entry.material().toString(); } return name; }); diff --git a/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java b/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java index e970de7f1b..a926292946 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java +++ b/src/main/java/com/gregtechceu/gtceu/api/item/IGTTool.java @@ -428,21 +428,21 @@ default int getTotalHarvestLevel(ItemStack stack) { return getToolMaterial(toRepair) == gtTool.getToolMaterial(repair); } MaterialEntry entry = ChemicalHelper.getMaterialEntry(repair.getItem()); - if (entry == null || entry.material == null) return false; - if (entry.material == getToolMaterial(toRepair)) { + if (entry == null || entry.material() == null) return false; + if (entry.material() == getToolMaterial(toRepair)) { // special case wood to allow Wood Planks - if (VanillaRecipeHelper.isMaterialWood(entry.material)) { - return entry.tagPrefix == TagPrefix.planks; + if (VanillaRecipeHelper.isMaterialWood(entry.material())) { + return entry.tagPrefix() == TagPrefix.planks; } // Gems can use gem and plate, Ingots can use ingot and plate - if (entry.tagPrefix == TagPrefix.plate) { + if (entry.tagPrefix() == TagPrefix.plate) { return true; } - if (entry.material.hasProperty(PropertyKey.INGOT)) { - return entry.tagPrefix == TagPrefix.ingot; + if (entry.material().hasProperty(PropertyKey.INGOT)) { + return entry.tagPrefix() == TagPrefix.ingot; } - if (entry.material.hasProperty(PropertyKey.GEM)) { - return entry.tagPrefix == TagPrefix.gem; + if (entry.material().hasProperty(PropertyKey.GEM)) { + return entry.tagPrefix() == TagPrefix.gem; } } return false; diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java index 3def4ea415..337584ec91 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java @@ -276,7 +276,7 @@ public GTRecipeBuilder recipeBuilder(String id, Object... append) { } public GTRecipeBuilder recipeBuilder(MaterialEntry entry, Object... append) { - return recipeBuilder(GTCEu.id(entry.tagPrefix + (entry.material == null ? "" : "_" + entry.material.getName())), + return recipeBuilder(GTCEu.id(entry.tagPrefix() + (entry.material() == null ? "" : "_" + entry.material().getName())), append); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java index 295bb83a9d..d29b438969 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ToolHeadReplaceRecipe.java @@ -109,9 +109,9 @@ public boolean matches(CraftingContainer inv, @NotNull Level level) { } else return ItemStack.EMPTY; if (!tool.isElectric()) return ItemStack.EMPTY; IElectricItem powerUnit = GTCapabilityHelper.getElectricItem(realTool); - if (toolHead == null) return ItemStack.EMPTY; - GTToolType[] toolArray = TOOL_HEAD_TO_TOOL_MAP.get(toolHead.tagPrefix); - ItemStack newTool = GTItems.TOOL_ITEMS.get(toolHead.material, toolArray[tool.getElectricTier()]) + if (toolHead == null || powerUnit == null) return ItemStack.EMPTY; + GTToolType[] toolArray = TOOL_HEAD_TO_TOOL_MAP.get(toolHead.tagPrefix()); + ItemStack newTool = GTItems.TOOL_ITEMS.get(toolHead.material(), toolArray[tool.getElectricTier()]) .get().get(powerUnit.getCharge(), powerUnit.getMaxCharge()); if (newTool == null) return ItemStack.EMPTY; diff --git a/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java index 432c75d12a..ef72a2b6b2 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java @@ -45,10 +45,10 @@ public class TooltipsHandler { public static void appendTooltips(ItemStack stack, TooltipFlag flag, List tooltips) { // Formula var unificationEntry = ChemicalHelper.getMaterialEntry(stack.getItem()); - if (unificationEntry != null && unificationEntry.material != null) { - if (unificationEntry.material.getChemicalFormula() != null && - !unificationEntry.material.getChemicalFormula().isEmpty()) - tooltips.add(1, Component.literal(unificationEntry.material.getChemicalFormula()) + if (unificationEntry != null && unificationEntry.material() != null) { + if (unificationEntry.material().getChemicalFormula() != null && + !unificationEntry.material().getChemicalFormula().isEmpty()) + tooltips.add(1, Component.literal(unificationEntry.material().getChemicalFormula()) .withStyle(ChatFormatting.YELLOW)); } if (stack.getItem() instanceof BucketItem bucket) { diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index 681e7373b5..ee9c248580 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -1,6 +1,7 @@ package com.gregtechceu.gtceu.common.data; import com.gregtechceu.gtceu.api.addon.AddonFinder; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.data.recipe.MaterialInfoLoader; import com.gregtechceu.gtceu.data.recipe.configurable.RecipeAddition; import com.gregtechceu.gtceu.data.recipe.configurable.RecipeRemoval; @@ -78,8 +79,10 @@ public static void recipeAddition(Consumer originalConsumer) { // Config-dependent recipes RecipeAddition.init(consumer); + // Must run recycling recipes very last RecyclingRecipes.init(consumer); + ItemMaterialData.resolveItemMaterialInfos(consumer); AddonFinder.getAddons().forEach(addon -> addon.addRecipes(consumer)); } diff --git a/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java b/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java index 704533c7c2..dd7780ee24 100644 --- a/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java +++ b/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java @@ -63,9 +63,9 @@ public static void generateGTDynamicTags(Map { if (itemLikes.isEmpty()) return; - var material = entry.material; + var material = entry.material(); if (material != null) { - var materialTags = entry.tagPrefix.getAllItemTags(material); + var materialTags = entry.tagPrefix().getAllItemTags(material); for (TagKey materialTag : materialTags) { List tags = new ArrayList<>(); itemLikes.forEach(item -> tags.add(new TagLoader.EntryWithSource( diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java index cfabd27158..e3234c95f4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java @@ -270,10 +270,10 @@ public static void addShapedRecipe(Consumer provider, boolean wi } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); } else if (content instanceof MaterialEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + TagKey tag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); if (tag != null) { builder.define(sign, tag); - } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix, entry.material)); + } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix(), entry.material())); } else if (content instanceof ItemProviderEntry entry) { builder.define(sign, entry.asStack()); } @@ -351,10 +351,10 @@ public static void addShapedEnergyTransferRecipe(Consumer provid } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); } else if (content instanceof MaterialEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + TagKey tag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); if (tag != null) { builder.define(sign, tag); - } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix, entry.material)); + } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix(), entry.material())); } else if (content instanceof ItemProviderEntry entry) { builder.define(sign, entry.asStack()); } @@ -421,10 +421,10 @@ public static void addShapedFluidContainerRecipe(Consumer provid } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); } else if (content instanceof MaterialEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + TagKey tag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); if (tag != null) { builder.define(sign, tag); - } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix, entry.material)); + } else builder.define(sign, ChemicalHelper.get(entry.tagPrefix(), entry.material())); } else if (content instanceof ItemProviderEntry entry) { builder.define(sign, entry.asStack()); } @@ -491,10 +491,10 @@ public static void addShapelessRecipe(Consumer provider, @NotNul } else if (content instanceof ItemLike itemLike) { builder.requires(itemLike); } else if (content instanceof MaterialEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + TagKey tag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); if (tag != null) { builder.requires(tag); - } else builder.requires(ChemicalHelper.get(entry.tagPrefix, entry.material)); + } else builder.requires(ChemicalHelper.get(entry.tagPrefix(), entry.material())); } else if (content instanceof ItemProviderEntry entry) { builder.requires(entry.asStack()); } else if (content instanceof Character c) { @@ -555,7 +555,7 @@ public static ItemMaterialInfo getRecyclingIngredients(int outputCount, @NotNull } else if (ingredient instanceof ItemLike) { itemLike = (ItemLike) ingredient; } else if (ingredient instanceof MaterialEntry entry) { - ItemStack stack = ChemicalHelper.get(entry.tagPrefix, entry.material); + ItemStack stack = ChemicalHelper.get(entry.tagPrefix(), entry.material()); if (stack == ItemStack.EMPTY) continue; itemLike = stack.getItem(); } else if (ingredient instanceof ItemProviderEntry entry) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java index 27419b9b56..2966960a95 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/WoodTypeEntry.java @@ -110,16 +110,16 @@ public final class WoodTypeEntry { public final boolean addButtonsOreDict; public final boolean addPressurePlatesOreDict; - public final boolean addPlanksUnificationInfo; - public final boolean addDoorsUnificationInfo; - public final boolean addSlabsUnificationInfo; - public final boolean addFencesUnificationInfo; - public final boolean addFenceGatesUnificationInfo; - public final boolean addStairsUnificationInfo; - public final boolean addBoatsUnificationInfo; - public final boolean addChestBoatsUnificationInfo; - public final boolean addButtonsUnificationInfo; - public final boolean addPressurePlatesUnificationInfo; + public final boolean addPlanksMaterialInfo; + public final boolean addDoorsMaterialInfo; + public final boolean addSlabsMaterialInfo; + public final boolean addFencesMaterialInfo; + public final boolean addFenceGatesMaterialInfo; + public final boolean addStairsMaterialInfo; + public final boolean addBoatsMaterialInfo; + public final boolean addChestBoatsMaterialInfo; + public final boolean addButtonsMaterialInfo; + public final boolean addPressurePlatesMaterialInfo; public final boolean generateLogToPlankRecipe; /** @@ -148,11 +148,11 @@ private WoodTypeEntry(@NotNull String modid, @NotNull String woodName, @NotNull boolean addFencesOreDict, boolean addFenceGatesOreDict, boolean addStairsOreDict, boolean addBoatsOreDict, boolean addChestBoatsOreDict, boolean addButtonsOreDict, boolean addPressurePlatesOreDict, - boolean addPlanksUnificationInfo, boolean addDoorsUnificationInfo, - boolean addSlabsUnificationInfo, boolean addFencesUnificationInfo, - boolean addFenceGatesUnificationInfo, boolean addStairsUnificationInfo, - boolean addBoatsUnificationInfo, boolean addChestBoatsUnificationInfo, - boolean addPressurePlatesUnificationInfo, boolean addButtonsUnificationInfo, + boolean addPlanksMaterialInfo, boolean addDoorsMaterialInfo, + boolean addSlabsMaterialInfo, boolean addFencesMaterialInfo, + boolean addFenceGatesMaterialInfo, boolean addStairsMaterialInfo, + boolean addBoatsMaterialInfo, boolean addChestBoatsMaterialInfo, + boolean addPressurePlatesMaterialInfo, boolean addButtonsMaterialInfo, boolean generateLogToPlankRecipe) { this.modid = modid; this.woodName = woodName; @@ -204,16 +204,16 @@ private WoodTypeEntry(@NotNull String modid, @NotNull String woodName, @NotNull this.addChestBoatsOreDict = addChestBoatsOreDict; this.addButtonsOreDict = addButtonsOreDict; this.addPressurePlatesOreDict = addPressurePlatesOreDict; - this.addPlanksUnificationInfo = addPlanksUnificationInfo; - this.addDoorsUnificationInfo = addDoorsUnificationInfo; - this.addSlabsUnificationInfo = addSlabsUnificationInfo; - this.addFencesUnificationInfo = addFencesUnificationInfo; - this.addFenceGatesUnificationInfo = addFenceGatesUnificationInfo; - this.addStairsUnificationInfo = addStairsUnificationInfo; - this.addBoatsUnificationInfo = addBoatsUnificationInfo; - this.addChestBoatsUnificationInfo = addChestBoatsUnificationInfo; - this.addButtonsUnificationInfo = addButtonsUnificationInfo; - this.addPressurePlatesUnificationInfo = addPressurePlatesUnificationInfo; + this.addPlanksMaterialInfo = addPlanksMaterialInfo; + this.addDoorsMaterialInfo = addDoorsMaterialInfo; + this.addSlabsMaterialInfo = addSlabsMaterialInfo; + this.addFencesMaterialInfo = addFencesMaterialInfo; + this.addFenceGatesMaterialInfo = addFenceGatesMaterialInfo; + this.addStairsMaterialInfo = addStairsMaterialInfo; + this.addBoatsMaterialInfo = addBoatsMaterialInfo; + this.addChestBoatsMaterialInfo = addChestBoatsMaterialInfo; + this.addButtonsMaterialInfo = addButtonsMaterialInfo; + this.addPressurePlatesMaterialInfo = addPressurePlatesMaterialInfo; this.generateLogToPlankRecipe = generateLogToPlankRecipe; } @@ -286,16 +286,16 @@ public static class Builder { private boolean addButtonOreDict; private boolean addPressurePlateOreDict; - private boolean addPlanksUnificationInfo; - private boolean addDoorsUnificationInfo; - private boolean addSlabsUnificationInfo; - private boolean addFencesUnificationInfo; - private boolean addFenceGatesUnificationInfo; - private boolean addStairsUnificationInfo; - private boolean addBoatsUnificationInfo; - private boolean addChestBoatsUnificationInfo; - private boolean addButtonUnificationInfo; - private boolean addPressurePlateUnificationInfo; + private boolean addPlanksMaterialInfo; + private boolean addDoorsMaterialInfo; + private boolean addSlabsMaterialInfo; + private boolean addFencesMaterialInfo; + private boolean addFenceGatesMaterialInfo; + private boolean addStairsMaterialInfo; + private boolean addBoatsMaterialInfo; + private boolean addChestBoatsMaterialInfo; + private boolean addButtonMaterialInfo; + private boolean addPressurePlateMaterialInfo; private boolean generateLogToPlankRecipe = true; /** @@ -652,16 +652,16 @@ public Builder registerTag(boolean log, boolean planks, boolean door, boolean sl public Builder registerUnificationInfo(boolean planks, boolean door, boolean slab, boolean fence, boolean fenceGate, boolean stairs, boolean boat, boolean chestBoat, boolean button, boolean pressurePlate) { - this.addPlanksUnificationInfo = planks; - this.addDoorsUnificationInfo = door; - this.addSlabsUnificationInfo = slab; - this.addFencesUnificationInfo = fence; - this.addFenceGatesUnificationInfo = fenceGate; - this.addStairsUnificationInfo = stairs; - this.addBoatsUnificationInfo = boat; - this.addChestBoatsUnificationInfo = chestBoat; - this.addButtonUnificationInfo = button; - this.addPressurePlateUnificationInfo = pressurePlate; + this.addPlanksMaterialInfo = planks; + this.addDoorsMaterialInfo = door; + this.addSlabsMaterialInfo = slab; + this.addFencesMaterialInfo = fence; + this.addFenceGatesMaterialInfo = fenceGate; + this.addStairsMaterialInfo = stairs; + this.addBoatsMaterialInfo = boat; + this.addChestBoatsMaterialInfo = chestBoat; + this.addButtonMaterialInfo = button; + this.addPressurePlateMaterialInfo = pressurePlate; return this; } @@ -703,10 +703,10 @@ public WoodTypeEntry build() { addLogOreDict, addPlanksOreDict, addDoorsOreDict, addSlabsOreDict, addFencesOreDict, addFenceGatesOreDict, addStairsOreDict, addBoatsOreDict, addChestBoatsOreDict, addButtonOreDict, addPressurePlateOreDict, - addPlanksUnificationInfo, addDoorsUnificationInfo, addSlabsUnificationInfo, - addFencesUnificationInfo, - addFenceGatesUnificationInfo, addStairsUnificationInfo, addBoatsUnificationInfo, - addChestBoatsUnificationInfo, addButtonUnificationInfo, addPressurePlateUnificationInfo, + addPlanksMaterialInfo, addDoorsMaterialInfo, addSlabsMaterialInfo, + addFencesMaterialInfo, + addFenceGatesMaterialInfo, addStairsMaterialInfo, addBoatsMaterialInfo, + addChestBoatsMaterialInfo, addButtonMaterialInfo, addPressurePlateMaterialInfo, generateLogToPlankRecipe); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index c3473aa30e..0ea5ad632a 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -1,10 +1,14 @@ package com.gregtechceu.gtceu.data.recipe.builder; import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.recipe.*; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; @@ -28,6 +32,10 @@ import com.lowdragmc.lowdraglib.utils.NBTToJsonConverter; +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.objects.Reference2IntMap; +import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.FinishedRecipe; @@ -100,6 +108,13 @@ public class GTRecipeBuilder { public int tierChanceBoost = 0; @Setter public boolean isFuel = false; + @Setter + private boolean addMaterialInfo = false; + @Setter + private boolean addMaterialFluidInfo = false; + private List tempItemStacks = new ArrayList<>(); + private List tempItemMaterialStacks = new ArrayList<>(); + private List tempFluidStacks = new ArrayList<>(); public GTRecipeCategory recipeCategory; @Setter public BiConsumer> onSave; @@ -381,6 +396,13 @@ public GTRecipeBuilder inputItems(Ingredient... inputs) { public GTRecipeBuilder inputItems(ItemStack input) { if (input.isEmpty()) { GTCEu.LOGGER.error("Input items is empty, id: {}", id); + } else { + var matStack = ItemMaterialData.getMaterialInfo(input.getItem()); + if(matStack != null) { + tempItemMaterialStacks.addAll(matStack.getMaterials()); + } + else + tempItemStacks.add(input); } return input(ItemRecipeCapability.CAP, SizedIngredient.create(input)); } @@ -389,6 +411,13 @@ public GTRecipeBuilder inputItems(ItemStack... inputs) { for (ItemStack itemStack : inputs) { if (itemStack.isEmpty()) { GTCEu.LOGGER.error("Input item is empty, id: {}", id); + } else { + var matStack = ItemMaterialData.getMaterialInfo(itemStack.getItem()); + if(matStack != null) { + tempItemMaterialStacks.addAll(matStack.getMaterials()); + } + else + tempItemStacks.add(itemStack); } } return input(ItemRecipeCapability.CAP, @@ -427,20 +456,30 @@ public GTRecipeBuilder inputItems(TagPrefix orePrefix, Material material) { } public GTRecipeBuilder inputItems(MaterialEntry input) { - if (input.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); + if (input.material() == null) { + GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix()); + } else { + tempItemMaterialStacks.add(new MaterialStack(input.material(), input.tagPrefix().getMaterialAmount(input.material()))); } - return inputItems(input.tagPrefix, input.material, 1); + return inputItems(input.tagPrefix(), input.material(), 1); } public GTRecipeBuilder inputItems(MaterialEntry input, int count) { - if (input.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); + if (input.material() == null) { + GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix()); } - return inputItems(input.tagPrefix, input.material, count); + return inputItems(input.tagPrefix(), input.material(), count); } - public GTRecipeBuilder inputItems(TagPrefix orePrefix, Material material, int count) { + public GTRecipeBuilder inputItems(TagPrefix orePrefix, @Nullable Material material, int count) { + if(material == null) { + GTCEu.LOGGER.error( + "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", + id, orePrefix, "null", count); + return inputItems(ItemStack.EMPTY); + } else { + tempItemMaterialStacks.add(new MaterialStack(material, orePrefix.getMaterialAmount(material) * count)); + } TagKey tag = ChemicalHelper.getTag(orePrefix, material); if (tag == null) { var item = ChemicalHelper.get(orePrefix, material, count); @@ -449,7 +488,7 @@ public GTRecipeBuilder inputItems(TagPrefix orePrefix, Material material, int co "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, orePrefix, material, count); } - return inputItems(item); + return input(ItemRecipeCapability.CAP, SizedIngredient.create(item)); } return inputItems(tag, count); } @@ -541,27 +580,32 @@ public GTRecipeBuilder outputItems(TagPrefix orePrefix, Material material) { return outputItems(orePrefix, material, 1); } - public GTRecipeBuilder outputItems(TagPrefix orePrefix, Material material, int count) { + public GTRecipeBuilder outputItems(TagPrefix orePrefix, @Nullable Material material, int count) { + if(material == null) { + GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", + id, orePrefix, "null", count); + return outputItems(ItemStack.EMPTY); + } var item = ChemicalHelper.get(orePrefix, material, count); if (item.isEmpty()) { - GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, TagPrefix: {}, Material: {}", - orePrefix, material); + GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", + id, orePrefix, "null", count); } return outputItems(item); } public GTRecipeBuilder outputItems(MaterialEntry entry) { - if (entry.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); + if (entry.material() == null) { + GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix()); } - return outputItems(entry.tagPrefix, entry.material); + return outputItems(entry.tagPrefix(), entry.material()); } public GTRecipeBuilder outputItems(MaterialEntry entry, int count) { - if (entry.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); + if (entry.material() == null) { + GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix()); } - return outputItems(entry.tagPrefix, entry.material, count); + return outputItems(entry.tagPrefix(), entry.material(), count); } public GTRecipeBuilder outputItems(MachineDefinition machine) { @@ -903,12 +947,22 @@ public GTRecipeBuilder chancedTickInputLogic(RecipeCapability cap, ChanceLogi } public GTRecipeBuilder inputFluids(FluidStack input) { + var matStack = ChemicalHelper.getMaterial(input.getFluid()); + if(matStack != null) { + tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); + } return input(FluidRecipeCapability.CAP, FluidIngredient.of( TagUtil.createFluidTag(BuiltInRegistries.FLUID.getKey(input.getFluid()).getPath()), input.getAmount(), input.getTag())); } public GTRecipeBuilder inputFluids(FluidStack... inputs) { + for(var input : inputs) { + var matStack = ChemicalHelper.getMaterial(input.getFluid()); + if(matStack != null) { + tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); + } + } return input(FluidRecipeCapability.CAP, Arrays.stream(inputs).map(fluid -> FluidIngredient.of( TagUtil.createFluidTag(BuiltInRegistries.FLUID.getKey(fluid.getFluid()).getPath()), fluid.getAmount(), fluid.getTag())).toArray(FluidIngredient[]::new)); @@ -1248,9 +1302,66 @@ public void save(Consumer consumer) { } } + if(addMaterialInfo) { + addOutputMaterialInfo(); + } + tempItemStacks = null; + tempItemMaterialStacks = null; + tempFluidStacks = null; + consumer.accept(build()); } + public void addOutputMaterialInfo() { + var itemOutputs = output.get(ItemRecipeCapability.CAP); + var itemInputs = input.get(ItemRecipeCapability.CAP); + if(itemOutputs.size() == 1 && (!itemInputs.isEmpty() || !tempFluidStacks.isEmpty())) { + var currOutput = itemOutputs.get(0).content; + ItemLike out = null; + int outputCount = 0; + + if(currOutput instanceof Item i) { + out = i; + outputCount = 1; + } + else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { + out = i; + outputCount = 1; + } + else if (currOutput instanceof ItemStack stack) { + out = stack.getItem(); + outputCount = stack.getCount(); + } + else if (currOutput instanceof SizedIngredient sized) { + out = sized.getItems()[0].getItem(); + outputCount = sized.getItems()[0].getCount(); + } + + Reference2LongOpenHashMap matStacks = new Reference2LongOpenHashMap<>(); + for(var input : tempItemMaterialStacks) { + long am = input.amount() / outputCount; + matStacks.merge(input.material(), am, Long::sum); + } + + if(addMaterialFluidInfo) { + for(var input : tempFluidStacks) { + long am = input.amount() / outputCount; + matStacks.merge(input.material(), am, Long::sum); + } + } + + var matList = matStacks.reference2LongEntrySet().stream().map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); + + if(out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) + ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); + + var existingItemInfo = ItemMaterialData.getMaterialInfo(out); + if((existingItemInfo == null || existingItemInfo.getMaterials().isEmpty()) && !matStacks.isEmpty()) { + ItemMaterialData.registerMaterialInfo(out, new ItemMaterialInfo(matList)); + } + } + } + public GTRecipe buildRawRecipe() { var recipe = new GTRecipe(recipeType, id.withPrefix(recipeType.registryName.getPath() + "/"), input, output, tickInput, tickOutput, @@ -1285,13 +1396,6 @@ public int getSolderMultiplier() { * @param EUt the EUt of the recipe * @param CWUt how much computation per tick this recipe needs if in Research Station */ - public record ResearchRecipeEntry( - @NotNull String researchId, - @NotNull ItemStack researchStack, - @NotNull ItemStack dataStack, - int duration, - int EUt, - int CWUt) { - - } + public record ResearchRecipeEntry(@NotNull String researchId, @NotNull ItemStack researchStack, + @NotNull ItemStack dataStack, int duration, int EUt, int CWUt) {} } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java index 9494ced9f1..eca56b797a 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/MaterialRecipeHandler.java @@ -583,7 +583,7 @@ public static void processBlock(TagPrefix blockPrefix, Material material, DustPr VanillaRecipeHelper.addShapelessRecipe(provider, String.format("block_decompress_%s", material.getName()), - GTUtil.copyAmount(size, ChemicalHelper.get(blockEntry.tagPrefix, blockEntry.material)), + GTUtil.copyAmount(size, ChemicalHelper.get(blockEntry.tagPrefix(), blockEntry.material())), new MaterialEntry(blockPrefix, material)); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java index 4c65459c18..eb8d474737 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java @@ -237,6 +237,7 @@ public static void init(Consumer provider) { .inputItems(plateDouble, TungstenCarbide, 2) .inputFluids(TinAlloy.getFluid(L * 32)) .outputItems(NEUTRON_REFLECTOR) + .addMaterialInfo(true) .save(provider); // hazmat pieces diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java index 8d0f56a4b9..d80e890833 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java @@ -125,6 +125,7 @@ public static void init(Consumer provider) { .inputFluids(SolderingAlloy.getFluid(L * 2)) .inputFluids(Lubricant.getFluid(500)) .outputItems(ELECTRIC_MOTOR_ZPM) + .addMaterialInfo(true) .scannerResearch(b -> b .researchStack(ELECTRIC_MOTOR_LuV.asStack()) .duration(1200) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index c37fd5ed34..3efb915e20 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -728,6 +728,7 @@ private static void registerAssemblerRecipes(Consumer provider) ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_luv").EUt(VA[LuV]) .inputItems(wireGtDouble, IndiumTinBariumTitaniumCuprate, 32).inputItems(foil, NiobiumTitanium, 32) .inputFluids(Trinium.getFluid(GTValues.L * 24)).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) + .addMaterialInfo(true) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_zpm").EUt(VA[ZPM]) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 16).inputItems(foil, NiobiumTitanium, 16) @@ -753,6 +754,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(ELECTRIC_PUMP_LuV).inputItems(plate, TungstenSteel, 6) .inputFluids(Polybenzimidazole.getFluid(GTValues.L)) .outputItems(GTBlocks.FUSION_CASING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) + .addMaterialInfo(true) .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing_mk2").EUt(VA[ZPM]) .inputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()).inputItems(GTBlocks.FUSION_COIL.asStack()) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java index a10a8c9e1d..ecc182300e 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java @@ -114,12 +114,12 @@ private static void registerMaceratorRecycling(Consumer provider MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; - if (entry != null) { - inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + if (entry != null && entry.material() != null) { + inputTag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); } // Exit if no valid Materials exist for this recycling Recipe. - if (outputs.size() == 0) return; + if (outputs.isEmpty()) return; // Build the final Recipe. ResourceLocation itemPath = BuiltInRegistries.ITEM.getKey(input.getItem()); @@ -135,7 +135,7 @@ private static void registerMaceratorRecycling(Consumer provider } boolean recycle = true; - if (entry != null && entry.tagPrefix == TagPrefix.ingot) { + if (entry != null && entry.tagPrefix() == TagPrefix.ingot) { recycle = false; } @@ -151,8 +151,8 @@ private static void registerExtractorRecycling(Consumer provider @Nullable TagPrefix prefix) { MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; - if (entry != null) { - inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + if (entry != null && entry.material() != null) { + inputTag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); } // Handle simple materials separately @@ -240,8 +240,8 @@ private static void registerArcRecycling(Consumer provider, Item List materials, @Nullable TagPrefix prefix) { MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; - if (entry != null) { - inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + if (entry != null && entry.material() != null) { + inputTag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); } // Block dusts from being arc'd instead of EBF'd @@ -288,7 +288,7 @@ private static void registerArcRecycling(Consumer provider, Item RecyclingRecipes::getArcIngotOrDust); // Exit if no valid outputs exist for this recycling Recipe. - if (outputs.size() == 0) return; + if (outputs.isEmpty()) return; // Build the final Recipe. ResourceLocation itemPath = BuiltInRegistries.ITEM.getKey(input.getItem()); @@ -317,7 +317,7 @@ private static boolean needsRecyclingCategory(@Nullable TagPrefix prefix, @Nulla if (entry != null && inputStack != null) { Material mat = inputStack.material(); if (!mat.hasFlag(IS_MAGNETIC) && mat.hasProperty(PropertyKey.INGOT)) { - return mat.getProperty(PropertyKey.INGOT).getArcSmeltingInto() != entry.material; + return mat.getProperty(PropertyKey.INGOT).getArcSmeltingInto() != entry.material(); } } } @@ -458,7 +458,7 @@ private static List finalizeOutputs(List materials, in if (stack.getCount() > 64) { MaterialEntry entry = ChemicalHelper.getMaterialEntry(stack.getItem()); if (entry != null) { // should always be true - TagPrefix prefix = entry.tagPrefix; + TagPrefix prefix = entry.tagPrefix(); // These are the highest forms that a Material can have (for Ingot and Dust, respectively), // so simply split the stacks and continue. @@ -529,11 +529,11 @@ private static void splitStacks(List> list, Item int amount = originalStack.getCount(); while (amount > 64) { list.add(new Tuple<>(GTUtil.copyAmount(64, originalStack), - new MaterialStack(entry.material, entry.tagPrefix.getMaterialAmount(entry.material) * 64))); + new MaterialStack(entry.material(), entry.tagPrefix().getMaterialAmount(entry.material()) * 64))); amount -= 64; } list.add(new Tuple<>(GTUtil.copyAmount(amount, originalStack), - new MaterialStack(entry.material, entry.tagPrefix.getMaterialAmount(entry.material) * amount))); + new MaterialStack(entry.material(), entry.tagPrefix().getMaterialAmount(entry.material()) * amount))); } private static final List DUST_ORDER = ImmutableList.of(TagPrefix.dust, TagPrefix.dustSmall, @@ -543,8 +543,8 @@ private static void splitStacks(List> list, Item private static void shrinkStacks(List> list, ItemStack originalStack, MaterialEntry entry) { - Material material = entry.material; - long materialAmount = originalStack.getCount() * entry.tagPrefix.getMaterialAmount(material); + Material material = entry.material(); + long materialAmount = originalStack.getCount() * entry.tagPrefix().getMaterialAmount(material); // noinspection ConstantConditions final List chosenList = material.hasProperty(PropertyKey.INGOT) ? INGOT_ORDER : DUST_ORDER; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java index 4d45e5d4d8..ba5a045e9d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java @@ -347,7 +347,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addPlanksOreDict) { ItemMaterialData.registerMaterialInfoItems(planks, entry.material, entry.planks); } - if (entry.addPlanksUnificationInfo) { + if (entry.addPlanksMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.planks, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } @@ -356,7 +356,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addDoorsOreDict) { ItemMaterialData.registerMaterialInfoItems(door, entry.material, entry.door); } - if (entry.addDoorsUnificationInfo) { + if (entry.addDoorsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.door, ConfigHolder.INSTANCE.recipes.hardWoodRecipes ? new ItemMaterialInfo(new MaterialStack(entry.material, M * 2), new MaterialStack(GTMaterials.Iron, M / 9)) : // screw @@ -368,7 +368,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addSlabsOreDict) { ItemMaterialData.registerMaterialInfoItems(slab, entry.material, entry.slab); } - if (entry.addSlabsUnificationInfo) { + if (entry.addSlabsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.slab, new ItemMaterialInfo(new MaterialStack(entry.material, M / 2))); } @@ -378,7 +378,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addFencesOreDict) { ItemMaterialData.registerMaterialInfoItems(fence, entry.material, entry.fence); } - if (entry.addFencesUnificationInfo) { + if (entry.addFencesMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.fence, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } @@ -388,7 +388,7 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addFenceGatesOreDict) { ItemMaterialData.registerMaterialInfoItems(fenceGate, entry.material, entry.fenceGate); } - if (entry.addFenceGatesUnificationInfo) { + if (entry.addFenceGatesMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.fenceGate, new ItemMaterialInfo(new MaterialStack(entry.material, M * 3))); } @@ -398,28 +398,28 @@ public static void registerWoodUnificationInfo(@NotNull WoodTypeEntry entry) { if (entry.addStairsOreDict) { ItemMaterialData.registerMaterialInfoItems(stairs, entry.material, entry.stairs); } - if (entry.addStairsUnificationInfo) { + if (entry.addStairsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.stairs, new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 2))); } } - if (entry.boat != null && entry.addBoatsUnificationInfo) { + if (entry.boat != null && entry.addBoatsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.boat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 5))); } - if (entry.chestBoat != null && entry.addChestBoatsUnificationInfo) { + if (entry.chestBoat != null && entry.addChestBoatsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.chestBoat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 13))); } - if (entry.button != null && entry.addButtonsUnificationInfo) { + if (entry.button != null && entry.addButtonsMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.button, new ItemMaterialInfo(new MaterialStack(entry.material, M / 6))); } - if (entry.pressurePlate != null && entry.addPressurePlatesUnificationInfo) { + if (entry.pressurePlate != null && entry.addPressurePlatesMaterialInfo) { ItemMaterialData.registerMaterialInfo(entry.pressurePlate, new ItemMaterialInfo(new MaterialStack(entry.material, M))); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index 534a8aac34..ae62eca95c 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -268,11 +268,11 @@ public GTRecipeJS inputItems(TagPrefix orePrefix, Material material) { } public GTRecipeJS inputItems(MaterialEntry input) { - return inputItems(input.tagPrefix, input.material, 1); + return inputItems(input.tagPrefix(), input.material(), 1); } public GTRecipeJS inputItems(MaterialEntry input, int count) { - return inputItems(input.tagPrefix, input.material, count); + return inputItems(input.tagPrefix(), input.material(), count); } public GTRecipeJS inputItems(TagPrefix orePrefix, Material material, int count) { @@ -292,11 +292,11 @@ public GTRecipeJS itemOutputs(ExtendedOutputItem... outputs) { } public GTRecipeJS itemOutput(MaterialEntry materialEntry) { - return outputItems(materialEntry.tagPrefix, materialEntry.material); + return outputItems(materialEntry.tagPrefix(), materialEntry.material()); } public GTRecipeJS itemOutput(MaterialEntry materialEntry, int count) { - return outputItems(materialEntry.tagPrefix, materialEntry.material, count); + return outputItems(materialEntry.tagPrefix(), materialEntry.material(), count); } public GTRecipeJS outputItems(ExtendedOutputItem... outputs) { From bf5259c3f3809dc98f7f24ec8daaa2389578b3c0 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Thu, 19 Dec 2024 02:55:06 -0700 Subject: [PATCH 03/21] tinker with more recipes --- .../gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 3efb915e20..55f104055b 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -524,6 +524,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(solder) .outputItems(COVER_ENERGY_DETECTOR) .EUt(16).duration(100) + .addMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_energy_detector") From d74c3bd4207d699deb71f5ea974f7e7ccf5b0626 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Thu, 19 Dec 2024 10:35:30 -0700 Subject: [PATCH 04/21] better material stack application --- .../chemical/material/ItemMaterialData.java | 19 ++++++++++++ .../data/recipe/builder/GTRecipeBuilder.java | 29 ++++++++++++++++--- .../data/recipe/misc/MachineRecipeLoader.java | 1 + 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java index eea2ddefd7..af85901161 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -82,6 +82,25 @@ public static ItemMaterialInfo getMaterialInfo(ItemLike item) { return ITEM_MATERIAL_INFO.get(item); } + public static void clearMaterialInfo(ItemLike item) { + if (item instanceof Block block) { + ITEM_MATERIAL_INFO.remove(block); + return; + } else if (item instanceof BlockItem blockItem) { + var info = ITEM_MATERIAL_INFO.get(blockItem.getBlock()); + if (info != null) { + ITEM_MATERIAL_INFO.remove(blockItem.getBlock()); + return; + } + ITEM_MATERIAL_INFO.remove(item); + return; + } else if (item instanceof ItemEntry entry) { + ITEM_MATERIAL_INFO.remove(entry.asItem()); + return; + } + ITEM_MATERIAL_INFO.remove(item); + } + @SafeVarargs public static void registerMaterialInfoItems(MaterialEntry materialEntry, Supplier... items) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 0ea5ad632a..748d69ec0e 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -50,6 +50,7 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; import com.google.gson.JsonArray; @@ -1344,9 +1345,26 @@ else if (currOutput instanceof SizedIngredient sized) { } if(addMaterialFluidInfo) { - for(var input : tempFluidStacks) { - long am = input.amount() / outputCount; - matStacks.merge(input.material(), am, Long::sum); + var fluidInputs = input.get(FluidRecipeCapability.CAP); + for(int i = 0; i < fluidInputs.size(); i++) { + if(fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { + MaterialStack matStack = null; + for(var value : fluidIngredient.values) { + var fluid = value.getFluids().toArray(new Fluid[0]); + if(fluid.length != 0 && fluid[0] != null) + matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); + + if(matStack != null && matStack.material() != null) { + matStacks.merge(matStack.material(), matStack.amount(), Long::sum); + break; + } + } + } else if(fluidInputs.get(i).content instanceof FluidStack fluidStack) { + MaterialStack matStack = new MaterialStack(ChemicalHelper.getMaterial(fluidStack.getFluid()), tempFluidStacks.get(i).amount()); + if(matStack.material() != null) { + matStacks.merge(matStack.material(), matStack.amount(), Long::sum); + } + } } } @@ -1356,7 +1374,10 @@ else if (currOutput instanceof SizedIngredient sized) { ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); var existingItemInfo = ItemMaterialData.getMaterialInfo(out); - if((existingItemInfo == null || existingItemInfo.getMaterials().isEmpty()) && !matStacks.isEmpty()) { + if(!matStacks.isEmpty()) { + if(existingItemInfo != null) { + ItemMaterialData.clearMaterialInfo(out); + } ItemMaterialData.registerMaterialInfo(out, new ItemMaterialInfo(matList)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 55f104055b..1d56c36c5d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -730,6 +730,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(wireGtDouble, IndiumTinBariumTitaniumCuprate, 32).inputItems(foil, NiobiumTitanium, 32) .inputFluids(Trinium.getFluid(GTValues.L * 24)).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .addMaterialInfo(true) + .addMaterialFluidInfo(true) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_zpm").EUt(VA[ZPM]) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 16).inputItems(foil, NiobiumTitanium, 16) From f446a3e7a5518fe76db33e9a84c5838771fb23e2 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:08:16 -0700 Subject: [PATCH 05/21] i hate fluid tags --- .../gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 748d69ec0e..d6d0a8120c 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -1350,6 +1350,9 @@ else if (currOutput instanceof SizedIngredient sized) { if(fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { MaterialStack matStack = null; for(var value : fluidIngredient.values) { + if(value instanceof FluidIngredient.TagValue) { + + } var fluid = value.getFluids().toArray(new Fluid[0]); if(fluid.length != 0 && fluid[0] != null) matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); From 5f5e5adadf8421a427d401d288e846756244c7e3 Mon Sep 17 00:00:00 2001 From: screret <68943070+screret@users.noreply.github.com> Date: Sat, 21 Dec 2024 11:19:50 +0200 Subject: [PATCH 06/21] remake MaterialEntry toString --- .../data/chemical/material/stack/MaterialEntry.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java index 027a13fb4d..dab0a38aea 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java @@ -33,7 +33,18 @@ public int hashCode() { @Override public String toString() { - return (tagPrefix != null ? tagPrefix.name : "") + (material != null ? material.toCamelCaseString() : ""); + if (tagPrefix == null && material == null) { + return "Empty MaterialEntry"; + } else if (tagPrefix == null) { + return material.getResourceLocation().toString(); + } else if (material == null) { + return tagPrefix.name; + } + var tags = tagPrefix.getItemTags(material); + if (tags.length == 0) { + return tagPrefix.name + "/" + material.getName(); + } + return tags[0].location().toString(); } public static final MaterialEntry NullEntry = new MaterialEntry(null, null); From 067547e053a0406e412aa1bec14b624892357979 Mon Sep 17 00:00:00 2001 From: screret <68943070+screret@users.noreply.github.com> Date: Sat, 21 Dec 2024 11:24:24 +0200 Subject: [PATCH 07/21] it would work if tags were loaded, TODO figure out a working entry point for that --- .../api/data/chemical/ChemicalHelper.java | 4 +- .../chemical/material/ItemMaterialData.java | 59 +++++++++--- .../recipe/ingredient/FluidIngredient.java | 12 ++- .../recipe/ingredient/SizedIngredient.java | 44 ++++++++- .../gregtechceu/gtceu/common/CommonProxy.java | 9 -- .../gtceu/common/data/GTMaterialItems.java | 4 +- .../gtceu/common/data/GTRecipes.java | 3 + .../data/recipe/builder/GTRecipeBuilder.java | 94 +++++++++---------- .../recipe/misc/MetaTileEntityLoader.java | 4 +- .../data/recipe/misc/StoneMachineRecipes.java | 43 ++++----- .../gtceu/forge/ForgeCommonEventListener.java | 18 ++++ .../integration/kjs/GregTechKubeJSPlugin.java | 7 +- 12 files changed, 194 insertions(+), 107 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 009a1c97ab..46a1acc189 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -17,6 +17,7 @@ import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -26,6 +27,7 @@ import net.minecraft.world.level.material.Fluid; import com.mojang.datafixers.util.Pair; +import net.minecraftforge.common.crafting.conditions.ICondition; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -102,7 +104,7 @@ public static Material getMaterial(Fluid fluid) { if (material.hasProperty(PropertyKey.FLUID)) { FluidProperty property = material.getProperty(PropertyKey.FLUID); FluidStorageKey.allKeys().stream() - .map(key -> property.get(key)) + .map(property::get) .filter(Objects::nonNull) .map(f -> Pair.of(f, TagUtil.createFluidTag(BuiltInRegistries.FLUID.getKey(f).getPath()))) .filter(pair -> allFluidTags.contains(pair.getSecond())) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java index af85901161..99ac9a6238 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -1,11 +1,14 @@ package com.gregtechceu.gtceu.api.data.chemical.material; -import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.GTCEuAPI; +import com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty; +import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; -import com.gregtechceu.gtceu.common.data.GTItems; +import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; +import com.gregtechceu.gtceu.common.data.GTMaterialItems; import com.gregtechceu.gtceu.data.recipe.misc.RecyclingRecipes; import com.gregtechceu.gtceu.data.recipe.misc.WoodMachineRecipes; import com.gregtechceu.gtceu.data.tags.TagsHandler; @@ -15,10 +18,11 @@ import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.entry.ItemEntry; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenCustomHashMap; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -27,7 +31,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.registries.RegistryObject; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.util.*; @@ -61,9 +67,9 @@ public static void registerMaterialInfo(ItemLike item, ItemMaterialInfo material } public static ItemMaterialInfo getMaterialInfo(Object item) { - if(item instanceof ItemLike itemLike) { + if (item instanceof ItemLike itemLike) { return getMaterialInfo(itemLike); - } else if(item instanceof ItemStack stack) { + } else if (item instanceof ItemStack stack) { return getMaterialInfo(stack.getItem()); } return null; @@ -147,7 +153,8 @@ public static void registerMaterialInfoItems(TagPrefix tagPrefix, @Nullable Mate } } - public static void reinitializeMaterialData() { + @ApiStatus.Internal + public static void reinitializeMaterialData(ICondition.IContext context) { // Clear old data MATERIAL_ENTRY_ITEM_MAP.clear(); MATERIAL_ENTRY_BLOCK_MAP.clear(); @@ -163,23 +170,25 @@ public static void reinitializeMaterialData() { } }); } - GTItems.toUnify.forEach(ItemMaterialData::registerMaterialInfoItems); + GTMaterialItems.toUnify.forEach(ItemMaterialData::registerMaterialInfoItems); WoodMachineRecipes.registerUnificationInfo(); + resolveFluidMaterialInfos(context); } + @ApiStatus.Internal public static void resolveItemMaterialInfos(Consumer provider) { - for(var entry : UNRESOLVED_ITEM_MATERIAL_INFO.entrySet()) { + for (var entry : UNRESOLVED_ITEM_MATERIAL_INFO.entrySet()) { List stacks = new ArrayList<>(); - for(var input : entry.getValue()) { + for (var input : entry.getValue()) { var matStack = getMaterialInfo(input.getItem()); - if(matStack != null) { - matStack.getMaterials().forEach(ms -> stacks.add(ms.copy(ms.amount() / entry.getKey().getCount())) ); + if (matStack != null) { + matStack.getMaterials().forEach(ms -> stacks.add(ms.copy(ms.amount() / entry.getKey().getCount()))); } } - if(stacks.isEmpty()) + if (stacks.isEmpty()) continue; var matInfo = ITEM_MATERIAL_INFO.get(entry.getKey().getItem()); - if(matInfo == null) { + if (matInfo == null) { ITEM_MATERIAL_INFO.put(entry.getKey().getItem(), new ItemMaterialInfo(stacks)); } else { matInfo.addMaterialStacks(stacks); @@ -189,4 +198,28 @@ public static void resolveItemMaterialInfos(Consumer provider) { } UNRESOLVED_ITEM_MATERIAL_INFO.clear(); } + + @ApiStatus.Internal + public static void resolveFluidMaterialInfos(ICondition.IContext context) { + if (context == null) { + return; + } + + var allFluidTags = context.getAllTags(Registries.FLUID); + for (final Material material : GTCEuAPI.materialManager.getRegisteredMaterials()) { + if (material.hasProperty(PropertyKey.FLUID)) { + FluidProperty property = material.getProperty(PropertyKey.FLUID); + FluidStorageKey.allKeys().stream() + .map(property::get) + .filter(Objects::nonNull) + .map(f -> Pair.of(f, new ResourceLocation("forge", BuiltInRegistries.FLUID.getKey(f).getPath()))) + .filter(pair -> allFluidTags.containsKey(pair.getSecond())) + .forEach(pair -> { + allFluidTags.remove(pair.getSecond()); + ItemMaterialData.FLUID_MATERIAL.put(pair.getFirst(), material); + }); + } + } + } + } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java index 569fac4a45..b14fc0b782 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java @@ -1,5 +1,6 @@ package com.gregtechceu.gtceu.api.recipe.ingredient; +import com.gregtechceu.gtceu.common.data.GTRecipes; import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; @@ -283,9 +284,14 @@ public TagValue(TagKey tag) { @Override public Collection getFluids() { ArrayList list = Lists.newArrayList(); - for (Holder holder : BuiltInRegistries.FLUID.getTagOrEmpty(this.tag)) { - - list.add(holder.value()); + if (GTRecipes.RECIPE_CONTEXT != null) { + for (Holder holder : GTRecipes.RECIPE_CONTEXT.getTag(this.tag)) { + list.add(holder.value()); + } + } else { + for (Holder holder : BuiltInRegistries.FLUID.getTagOrEmpty(this.tag)) { + list.add(holder.value()); + } } return list; } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java index 1a032c1bda..9fe04482f2 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java @@ -1,13 +1,21 @@ package com.gregtechceu.gtceu.api.recipe.ingredient; +import com.google.common.collect.Lists; import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.common.data.GTRecipes; +import com.gregtechceu.gtceu.core.mixins.IngredientAccessor; +import com.gregtechceu.gtceu.core.mixins.TagValueAccessor; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.crafting.IIngredientSerializer; import com.google.gson.JsonElement; @@ -18,6 +26,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Arrays; +import java.util.List; import java.util.stream.Stream; public class SizedIngredient extends Ingredient { @@ -120,11 +129,16 @@ public boolean test(@Nullable ItemStack stack) { return intProviderIngredient.getItems(); } if (changed || itemStacks == null) { - itemStacks = Arrays.stream(inner.getItems()).map(i -> { - ItemStack ic = i.copy(); - ic.setCount(amount); - return ic; - }).toArray(ItemStack[]::new); + Ingredient.Value[] values = ((IngredientAccessor) inner).getValues(); + if (values.length > 0 && values[0] instanceof Ingredient.TagValue tagValue) { + itemStacks = getTagValueItems(tagValue); + } else { + itemStacks = Arrays.stream(inner.getItems()).map(i -> { + ItemStack ic = i.copy(); + ic.setCount(amount); + return ic; + }).toArray(ItemStack[]::new); + } changed = false; } return itemStacks; @@ -152,6 +166,26 @@ public int hashCode() { return result; } + public ItemStack[] getTagValueItems(Ingredient.TagValue tagValue) { + TagKey tag = ((TagValueAccessor) tagValue).getTag(); + List list = Lists.newArrayList(); + + if (GTRecipes.RECIPE_CONTEXT != null) { + for(Holder holder : GTRecipes.RECIPE_CONTEXT.getTag(tag)) { + list.add(new ItemStack(holder)); + } + } else { + for(Holder holder : BuiltInRegistries.ITEM.getTagOrEmpty(tag)) { + list.add(new ItemStack(holder)); + } + } + + if (list.isEmpty()) { + list.add(new ItemStack(Blocks.BARRIER).setHoverName(Component.literal("Empty Tag: " + tag.location()))); + } + return list.toArray(ItemStack[]::new); + } + public static final IIngredientSerializer SERIALIZER = new IIngredientSerializer<>() { @Override diff --git a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java index 5551449a24..443cb33c27 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java +++ b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java @@ -269,15 +269,6 @@ public void registerPackFinders(AddPackFindersEvent event) { // Clear old data GTDynamicDataPack.clearServer(); - // Register recipes & unification data again - long startTime = System.currentTimeMillis(); - ItemMaterialData.reinitializeMaterialData(); - GTRecipes.recipeRemoval(); - GTRecipes.recipeAddition(GTDynamicDataPack::addRecipe); - // Initialize dungeon loot additions - DungeonLootLoader.init(); - GTCEu.LOGGER.info("GregTech Data loading took {}ms", System.currentTimeMillis() - startTime); - event.addRepositorySource(new GTPackSource("gtceu:dynamic_data", event.getPackType(), Pack.Position.BOTTOM, diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterialItems.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterialItems.java index 3a8eac17cd..cf60fbcc78 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterialItems.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterialItems.java @@ -4,7 +4,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.registry.MaterialRegistry; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.IGTTool; import com.gregtechceu.gtceu.api.item.TagPrefixItem; @@ -37,7 +37,7 @@ public class GTMaterialItems { .builder(); // Reference Maps - public static final Map> toUnify = new HashMap<>(); + public static final Map> toUnify = new HashMap<>(); public static final Map purifyMap = new HashMap<>(); static { purifyMap.put(TagPrefix.crushed, TagPrefix.crushedPurified); diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index f8566e1774..7e52e48016 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -14,12 +14,15 @@ import net.minecraft.world.level.block.ComposterBlock; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import net.minecraftforge.common.crafting.conditions.ICondition; import java.util.Set; import java.util.function.Consumer; public class GTRecipes { + public static ICondition.IContext RECIPE_CONTEXT = null; + public static final Set RECIPE_FILTERS = new ObjectOpenHashSet<>(); /* diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index d6d0a8120c..5c4c8f3469 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -32,9 +32,6 @@ import com.lowdragmc.lowdraglib.utils.NBTToJsonConverter; -import com.mojang.datafixers.util.Pair; -import it.unimi.dsi.fastutil.objects.Reference2IntMap; -import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.registries.BuiltInRegistries; @@ -113,16 +110,18 @@ public class GTRecipeBuilder { private boolean addMaterialInfo = false; @Setter private boolean addMaterialFluidInfo = false; - private List tempItemStacks = new ArrayList<>(); - private List tempItemMaterialStacks = new ArrayList<>(); - private List tempFluidStacks = new ArrayList<>(); public GTRecipeCategory recipeCategory; @Setter public BiConsumer> onSave; + @Getter private final Collection researchRecipeEntries = new ArrayList<>(); private boolean generatingRecipes = true; + private List tempItemStacks = new ArrayList<>(); + private List tempItemMaterialStacks = new ArrayList<>(); + private List tempFluidStacks = new ArrayList<>(); + public GTRecipeBuilder(ResourceLocation id, GTRecipeType recipeType) { this.id = id; this.recipeType = recipeType; @@ -399,11 +398,11 @@ public GTRecipeBuilder inputItems(ItemStack input) { GTCEu.LOGGER.error("Input items is empty, id: {}", id); } else { var matStack = ItemMaterialData.getMaterialInfo(input.getItem()); - if(matStack != null) { + if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else + } else { tempItemStacks.add(input); + } } return input(ItemRecipeCapability.CAP, SizedIngredient.create(input)); } @@ -414,11 +413,11 @@ public GTRecipeBuilder inputItems(ItemStack... inputs) { GTCEu.LOGGER.error("Input item is empty, id: {}", id); } else { var matStack = ItemMaterialData.getMaterialInfo(itemStack.getItem()); - if(matStack != null) { + if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else + } else { tempItemStacks.add(itemStack); + } } } return input(ItemRecipeCapability.CAP, @@ -473,7 +472,7 @@ public GTRecipeBuilder inputItems(MaterialEntry input, int count) { } public GTRecipeBuilder inputItems(TagPrefix orePrefix, @Nullable Material material, int count) { - if(material == null) { + if (material == null) { GTCEu.LOGGER.error( "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, orePrefix, "null", count); @@ -582,7 +581,7 @@ public GTRecipeBuilder outputItems(TagPrefix orePrefix, Material material) { } public GTRecipeBuilder outputItems(TagPrefix orePrefix, @Nullable Material material, int count) { - if(material == null) { + if (material == null) { GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, orePrefix, "null", count); return outputItems(ItemStack.EMPTY); @@ -949,7 +948,7 @@ public GTRecipeBuilder chancedTickInputLogic(RecipeCapability cap, ChanceLogi public GTRecipeBuilder inputFluids(FluidStack input) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); - if(matStack != null) { + if (matStack != null) { tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); } return input(FluidRecipeCapability.CAP, FluidIngredient.of( @@ -958,9 +957,9 @@ public GTRecipeBuilder inputFluids(FluidStack input) { } public GTRecipeBuilder inputFluids(FluidStack... inputs) { - for(var input : inputs) { + for (var input : inputs) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); - if(matStack != null) { + if (matStack != null) { tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); } } @@ -988,7 +987,8 @@ public GTRecipeBuilder outputFluids(FluidIngredient... outputs) { ////////////////////////////////////// // ********** DATA ***********// - ////////////////////////////////////// + + /// /////////////////////////////////// public GTRecipeBuilder addData(String key, Tag data) { this.data.put(key, data); return this; @@ -1057,7 +1057,8 @@ public GTRecipeBuilder hideDuration(boolean hideDuration) { ////////////////////////////////////// // ******* CONDITIONS ********// - ////////////////////////////////////// + + /// /////////////////////////////////// public GTRecipeBuilder cleanroom(CleanroomType cleanroomType) { return addCondition(new CleanroomCondition(cleanroomType)); @@ -1303,7 +1304,7 @@ public void save(Consumer consumer) { } } - if(addMaterialInfo) { + if (addMaterialInfo) { addOutputMaterialInfo(); } tempItemStacks = null; @@ -1316,55 +1317,50 @@ public void save(Consumer consumer) { public void addOutputMaterialInfo() { var itemOutputs = output.get(ItemRecipeCapability.CAP); var itemInputs = input.get(ItemRecipeCapability.CAP); - if(itemOutputs.size() == 1 && (!itemInputs.isEmpty() || !tempFluidStacks.isEmpty())) { + if (itemOutputs.size() == 1 && (!itemInputs.isEmpty() || !tempFluidStacks.isEmpty())) { var currOutput = itemOutputs.get(0).content; ItemLike out = null; int outputCount = 0; - if(currOutput instanceof Item i) { + if (currOutput instanceof Item i) { out = i; outputCount = 1; - } - else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { + } else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { out = i; outputCount = 1; - } - else if (currOutput instanceof ItemStack stack) { + } else if (currOutput instanceof ItemStack stack) { out = stack.getItem(); outputCount = stack.getCount(); - } - else if (currOutput instanceof SizedIngredient sized) { + } else if (currOutput instanceof SizedIngredient sized) { out = sized.getItems()[0].getItem(); - outputCount = sized.getItems()[0].getCount(); + outputCount = sized.getAmount(); } Reference2LongOpenHashMap matStacks = new Reference2LongOpenHashMap<>(); - for(var input : tempItemMaterialStacks) { + for (var input : tempItemMaterialStacks) { long am = input.amount() / outputCount; matStacks.merge(input.material(), am, Long::sum); } - if(addMaterialFluidInfo) { + if (addMaterialFluidInfo) { var fluidInputs = input.get(FluidRecipeCapability.CAP); - for(int i = 0; i < fluidInputs.size(); i++) { - if(fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { + for (int i = 0; i < fluidInputs.size(); i++) { + if (fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { MaterialStack matStack = null; - for(var value : fluidIngredient.values) { - if(value instanceof FluidIngredient.TagValue) { - - } - var fluid = value.getFluids().toArray(new Fluid[0]); - if(fluid.length != 0 && fluid[0] != null) + for (var value : fluidIngredient.values) { + var fluid = value.getFluids().toArray(Fluid[]::new); + if (fluid.length != 0 && fluid[0] != null) { matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); + } - if(matStack != null && matStack.material() != null) { + if (matStack != null && matStack.material() != null) { matStacks.merge(matStack.material(), matStack.amount(), Long::sum); break; } } - } else if(fluidInputs.get(i).content instanceof FluidStack fluidStack) { + } else if (fluidInputs.get(i).content instanceof FluidStack fluidStack) { MaterialStack matStack = new MaterialStack(ChemicalHelper.getMaterial(fluidStack.getFluid()), tempFluidStacks.get(i).amount()); - if(matStack.material() != null) { + if (matStack.material() != null) { matStacks.merge(matStack.material(), matStack.amount(), Long::sum); } } @@ -1373,12 +1369,12 @@ else if (currOutput instanceof SizedIngredient sized) { var matList = matStacks.reference2LongEntrySet().stream().map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); - if(out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) + if (out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); var existingItemInfo = ItemMaterialData.getMaterialInfo(out); - if(!matStacks.isEmpty()) { - if(existingItemInfo != null) { + if (!matStacks.isEmpty()) { + if (existingItemInfo != null) { ItemMaterialData.clearMaterialInfo(out); } ItemMaterialData.registerMaterialInfo(out, new ItemMaterialInfo(matList)); @@ -1396,7 +1392,8 @@ public GTRecipe buildRawRecipe() { ////////////////////////////////////// // ******* Quick Query *******// - ////////////////////////////////////// + + /// /////////////////////////////////// public long EUt() { if (!tickInput.containsKey(EURecipeCapability.CAP)) return 0; if (tickInput.get(EURecipeCapability.CAP).isEmpty()) return 0; @@ -1421,5 +1418,8 @@ public int getSolderMultiplier() { * @param CWUt how much computation per tick this recipe needs if in Research Station */ public record ResearchRecipeEntry(@NotNull String researchId, @NotNull ItemStack researchStack, - @NotNull ItemStack dataStack, int duration, int EUt, int CWUt) {} + @NotNull ItemStack dataStack, int duration, int EUt, int CWUt) { + + } + } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index 0c90a165bc..0a044262cd 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java @@ -611,7 +611,7 @@ public static void init(Consumer provider) { "RFR", "PwP", 'R', new MaterialEntry(TagPrefix.rotor, GTMaterials.TungstenSteel), 'F', GTBlocks.CASING_TUNGSTENSTEEL_ROBUST.asStack(), 'P', new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "multi_furnace", GTMachines.MULTI_SMELTER.asStack(), "PPP", + VanillaRecipeHelper.addShapedRecipe(provider, true, "multi_furnace", GTMultiMachines.MULTI_SMELTER.asStack(), "PPP", "ASA", "CAC", 'P', Blocks.FURNACE, 'A', CustomTags.HV_CIRCUITS, 'S', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'C', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); @@ -620,7 +620,7 @@ public static void init(Consumer provider) { GTMultiMachines.LARGE_STEAM_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', new MaterialEntry(TagPrefix.gear, GTMaterials.Steel), 'P', CustomTags.HV_CIRCUITS, 'A', GTMachines.HULL[HV].asStack(), 'C', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "large_gas_turbine", GTMachines.LARGE_GAS_TURBINE.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "large_gas_turbine", GTMultiMachines.LARGE_GAS_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', new MaterialEntry(TagPrefix.gear, GTMaterials.StainlessSteel), 'P', CustomTags.EV_CIRCUITS, 'A', GTMachines.HULL[GTValues.EV].asStack(), 'C', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java index 5c3ba0a04d..dddac24709 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java @@ -3,9 +3,10 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTItems; import com.gregtechceu.gtceu.common.data.GTMaterials; @@ -428,91 +429,91 @@ public static void registerUnificationInfo() { public static void registerStoneUnificationInfo(@NotNull StoneTypeEntry entry) { if (entry.material != null && entry.stone != null) { if (entry.addStoneOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.stone); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.block, entry.material, entry.stone); } if (entry.addStoneUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.stone, + ItemMaterialData.registerMaterialInfo(entry.stone, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.polishedStone != null) { if (entry.addStoneOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.polishedStone); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.block, entry.material, entry.polishedStone); } if (entry.addPolishedStoneUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.polishedStone, + ItemMaterialData.registerMaterialInfo(entry.polishedStone, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.smeltStone != null) { if (entry.addStoneOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.smeltStone); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.block, entry.material, entry.smeltStone); } if (entry.addSmeltStoneUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.smeltStone, + ItemMaterialData.registerMaterialInfo(entry.smeltStone, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.chiselStone != null) { if (entry.addStoneOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.chiselStone); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.block, entry.material, entry.chiselStone); } if (entry.addChiselStoneUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.chiselStone, + ItemMaterialData.registerMaterialInfo(entry.chiselStone, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.crackedStone != null) { if (entry.addStoneOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.block, entry.material, entry.crackedStone); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.block, entry.material, entry.crackedStone); } if (entry.addCrackedStoneUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.crackedStone, + ItemMaterialData.registerMaterialInfo(entry.crackedStone, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.slab != null) { if (entry.addSlabOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.slab, entry.material, entry.slab); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.slab, entry.material, entry.slab); } if (entry.addSlabUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.slab, + ItemMaterialData.registerMaterialInfo(entry.slab, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 2))); } } if (entry.material != null && entry.stair != null) { if (entry.addStairOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.stairs, entry.material, entry.stair); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.stairs, entry.material, entry.stair); } if (entry.addStairUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.stair, + ItemMaterialData.registerMaterialInfo(entry.stair, new ItemMaterialInfo(new MaterialStack(entry.material, (3 * entry.materialAmount) / 4))); } } if (entry.material != null && entry.wall != null) { if (entry.addWallOreDict) { - ChemicalHelper.registerUnificationItems(TagPrefix.fence, entry.material, entry.wall); + ItemMaterialData.registerMaterialInfoItems(TagPrefix.fence, entry.material, entry.wall); } if (entry.addWallUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.wall, + ItemMaterialData.registerMaterialInfo(entry.wall, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount))); } } if (entry.material != null && entry.pressurePlate != null && entry.addPressurePlateUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.pressurePlate, + ItemMaterialData.registerMaterialInfo(entry.pressurePlate, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 4))); } if (entry.material != null && entry.button != null && entry.addButtonUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.button, + ItemMaterialData.registerMaterialInfo(entry.button, new ItemMaterialInfo(new MaterialStack(entry.material, entry.materialAmount / 6))); } } @@ -624,9 +625,9 @@ public static void registerStoneTypeRecipes(Consumer provider, @ if (ConfigHolder.INSTANCE.recipes.hardRedstoneRecipes && entry.slab != null) { VanillaRecipeHelper.addShapedRecipe(provider, entry.stoneName + "_pressure_plate", new ItemStack(entry.pressurePlate, 2), "ShS", "LCL", "SdS", - 'S', new UnificationEntry(TagPrefix.screw, GTMaterials.Iron), + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), 'L', entry.slab, - 'C', new UnificationEntry(TagPrefix.spring, GTMaterials.Iron)); + 'C', new MaterialEntry(TagPrefix.spring, GTMaterials.Iron)); ASSEMBLER_RECIPES.recipeBuilder(entry.stoneName + "_pressure_plate") .inputItems(TagPrefix.spring, GTMaterials.Iron) diff --git a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java index 2edfabfc9e..6cdb54ab10 100644 --- a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java +++ b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java @@ -9,6 +9,7 @@ import com.gregtechceu.gtceu.api.capability.IMedicalConditionTracker; import com.gregtechceu.gtceu.api.capability.compat.EUToFEProvider; import com.gregtechceu.gtceu.api.capability.forge.GTCapability; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.HazardProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; @@ -45,6 +46,8 @@ import com.gregtechceu.gtceu.data.loader.BedrockFluidLoader; import com.gregtechceu.gtceu.data.loader.BedrockOreLoader; import com.gregtechceu.gtceu.data.loader.GTOreLoader; +import com.gregtechceu.gtceu.data.loot.DungeonLootLoader; +import com.gregtechceu.gtceu.data.pack.GTDynamicDataPack; import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.gregtechceu.gtceu.integration.map.ClientCacheManager; import com.gregtechceu.gtceu.integration.map.WaypointManager; @@ -73,6 +76,7 @@ import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.common.capabilities.ICapabilitySerializable; +import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.living.LivingDeathEvent; @@ -281,6 +285,20 @@ public static void registerCommand(RegisterCommandsEvent event) { @SubscribeEvent public static void registerReloadListeners(AddReloadListenerEvent event) { + // moved here so that we can get tag info for decomp recipes + { + GTRecipes.RECIPE_CONTEXT = event.getConditionContext(); + // Register recipes & unification data again + long startTime = System.currentTimeMillis(); + ItemMaterialData.reinitializeMaterialData(GTRecipes.RECIPE_CONTEXT); + GTRecipes.recipeRemoval(); + GTRecipes.recipeAddition(GTDynamicDataPack::addRecipe); + // Initialize dungeon loot additions + DungeonLootLoader.init(); + GTRecipes.RECIPE_CONTEXT = null; + GTCEu.LOGGER.info("GregTech Data loading took {}ms", System.currentTimeMillis() - startTime); + } + event.addListener(new GTOreLoader()); event.addListener(new BedrockFluidLoader()); event.addListener(new BedrockOreLoader()); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index cec84ff764..8df95e4bd6 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -237,8 +237,10 @@ public void registerBindings(BindingsEvent event) { event.add("GTElements", GTElements.class); event.add("GTMaterials", GTMaterials.class); event.add("GTMaterialRegistry", MaterialRegistryManager.getInstance()); + event.add("TagPrefix", TagPrefix.class); event.add("ItemGenerationCondition", TagPrefix.Conditions.class); - event.add("UnificationEntry", UnificationEntry.class); + event.add("UnificationEntry", MaterialEntry.class); + event.add("MaterialEntry", MaterialEntry.class); event.add("GTMaterialFlags", MaterialFlags.class); event.add("GTFluidAttributes", FluidAttributes.class); event.add("GTFluidBuilder", FluidBuilder.class); @@ -260,9 +262,6 @@ public void registerBindings(BindingsEvent event) { event.add("GCYMMachines", GCYMMachines.class); event.add("GTItems", GTItems.class); event.add("GTMaterialItems", GTMaterialItems.class); - event.add("TagPrefix", TagPrefix.class); - event.add("ItemGenerationCondition", TagPrefix.Conditions.class); - event.add("UnificationEntry", MaterialEntry.class); // Recipe related event.add("GTRecipeTypes", GTRecipeTypes.class); event.add("GTRecipeCategories", GTRecipeCategories.class); From a7d041576522e49f09bbdb4c64bff743c3ee8e8a Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 21 Dec 2024 23:04:26 -0700 Subject: [PATCH 08/21] Loads of decomp recipes, also get fluid handling working in a capacity --- .../chemical/material/ItemMaterialData.java | 2 +- .../material/stack/ItemMaterialInfo.java | 44 ++- .../gtceu/common/data/GTMachines.java | 2 +- .../gtceu/common/data/GTRecipeTypes.java | 2 +- .../gtceu/data/recipe/MaterialInfoLoader.java | 12 +- .../data/recipe/VanillaRecipeHelper.java | 16 +- .../data/recipe/builder/GTRecipeBuilder.java | 66 +++- .../recipe/generated/WireRecipeHandler.java | 8 +- .../recipe/misc/AssemblerRecipeLoader.java | 1 + .../data/recipe/misc/ComponentRecipes.java | 189 +++++----- .../data/recipe/misc/ComputerRecipes.java | 126 ++++--- .../data/recipe/misc/DecorationRecipes.java | 6 +- .../gtceu/data/recipe/misc/GCYMRecipes.java | 32 +- .../data/recipe/misc/MachineRecipeLoader.java | 335 +++++++++++------- .../MetaTileEntityMachineRecipeLoader.java | 181 ++++++---- .../data/recipe/misc/MiscRecipeLoader.java | 16 +- .../data/recipe/misc/RecyclingRecipes.java | 2 +- 17 files changed, 649 insertions(+), 391 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java index af85901161..17f463e345 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -184,7 +184,7 @@ public static void resolveItemMaterialInfos(Consumer provider) { } else { matInfo.addMaterialStacks(stacks); } - RecyclingRecipes.registerRecyclingRecipes(provider, entry.getKey(), + RecyclingRecipes.registerRecyclingRecipes(provider, entry.getKey().copyWithCount(1), ITEM_MATERIAL_INFO.get(entry.getKey().getItem()).getMaterials(), false, null); } UNRESOLVED_ITEM_MATERIAL_INFO.clear(); diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java index aa5fa3ab3f..af880e6459 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java @@ -1,6 +1,8 @@ package com.gregtechceu.gtceu.api.data.chemical.material.stack; import com.google.common.collect.ImmutableList; +import com.gregtechceu.gtceu.api.data.chemical.material.Material; +import it.unimi.dsi.fastutil.objects.Reference2LongLinkedOpenHashMap; import java.util.ArrayList; import java.util.Arrays; @@ -9,34 +11,50 @@ public class ItemMaterialInfo { - private List materials = new ArrayList<>(); + private Reference2LongLinkedOpenHashMap materials = new Reference2LongLinkedOpenHashMap<>(); + private List sortedMaterials = new ArrayList<>(); - public ItemMaterialInfo(MaterialStack... materials) { - this.materials.addAll(Arrays.asList(materials)); + public ItemMaterialInfo(MaterialStack... materialStacks) { + for(var mat : materialStacks) { + materials.merge(mat.material(), mat.amount(), Long::sum); + } + setSortedMaterials(); } - public ItemMaterialInfo(List materials) { - this.materials.addAll(materials); + public ItemMaterialInfo(List materialStacks) { + for(var mat : materialStacks) { + materials.merge(mat.material(), mat.amount(), Long::sum); + } + setSortedMaterials(); } /** * Returns the first MaterialStack in the "materials" list */ public MaterialStack getMaterial() { - return materials.isEmpty() ? null : materials.get(0); + return sortedMaterials.isEmpty() ? null : sortedMaterials.get(0); } /** * Returns all MaterialStacks associated with this Object. */ public ImmutableList getMaterials() { - return ImmutableList.copyOf(materials); + return ImmutableList.copyOf(sortedMaterials); } public void addMaterialStacks(List stacks) { - if(stacks.isEmpty()) return; - materials.addAll(stacks); - materials.sort(Comparator.comparingLong(MaterialStack::amount)); + for(var mat : stacks) { + materials.merge(mat.material(), mat.amount(), Long::sum); + } + setSortedMaterials(); + } + + private void setSortedMaterials() { + sortedMaterials.clear(); + for(var m : materials.keySet()) { + sortedMaterials.add(new MaterialStack(m, materials.getLong(m))); + } + sortedMaterials.sort(Comparator.comparingLong(MaterialStack::amount)); } @Override @@ -45,16 +63,16 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ItemMaterialInfo that = (ItemMaterialInfo) o; - return materials.equals(that.materials); + return sortedMaterials.equals(that.sortedMaterials); } @Override public int hashCode() { - return materials.hashCode(); + return sortedMaterials.hashCode(); } @Override public String toString() { - return materials.isEmpty() ? "" : materials.get(0).material().toCamelCaseString(); + return sortedMaterials.isEmpty() ? "" : sortedMaterials.get(0).material().toCamelCaseString(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java index 0958aa70f4..febd8a2956 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java @@ -312,7 +312,7 @@ public class GTMachines { .addOutputLimit(ItemRecipeCapability.CAP, switch (tier) { case 1, 2 -> 1; case 3 -> 3; - default -> 4; + default -> 12; }) .recipeModifier(GTRecipeModifiers.OC_NON_PERFECT) .workableTieredHullRenderer(GTCEu.id("block/machines/macerator")) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java index ecaa31c236..b67fb27fbf 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java @@ -143,7 +143,7 @@ public class GTRecipeTypes { .addCustomRecipeLogic(new BreweryLogic()) .setSound(GTSoundEntries.CHEMICAL); - public final static GTRecipeType MACERATOR_RECIPES = register("macerator", ELECTRIC).setMaxIOSize(1, 4, 0, 0) + public final static GTRecipeType MACERATOR_RECIPES = register("macerator", ELECTRIC).setMaxIOSize(1, 12, 0, 0) .setEUIO(IO.IN) .prepareBuilder(recipeBuilder -> recipeBuilder.duration(150).EUt(2)) .setSlotOverlay(false, false, GuiTextures.CRUSHED_ORE_OVERLAY) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java index 858e1be5b4..80ad739673 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java @@ -16,7 +16,7 @@ public class MaterialInfoLoader { public static void init() { - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), + /*ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), new ItemMaterialInfo(new MaterialStack(GTMaterials.Cupronickel, M * 8), // double wire new MaterialStack(GTMaterials.Bronze, M * 2), // foil new MaterialStack(GTMaterials.TinAlloy, M)) // ingot @@ -55,9 +55,9 @@ public static void init() { new ItemMaterialInfo(new MaterialStack(GTMaterials.Tritanium, M * 8), // double wire new MaterialStack(GTMaterials.Naquadria, M * 2), // foil new MaterialStack(GTMaterials.Trinium, M)) // ingot - ); + );*/ - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( + /*ItemMaterialData.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.WroughtIron, M * 8), // plate new MaterialStack(GTMaterials.RedAlloy, M), // single cable new MaterialStack(GTMaterials.Rubber, M * 2))); // plate @@ -105,9 +105,9 @@ public static void init() { ItemMaterialData.registerMaterialInfo(GTMachines.HULL[9].getBlock(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Neutronium, M * 8), // plate new MaterialStack(GTMaterials.Europium, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + new MaterialStack(GTMaterials.Rubber, M * 2))); // plate*/ - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( + /*ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate new MaterialStack(GTMaterials.Gold, M * 2), // single cable new MaterialStack(GTMaterials.Rubber, M * 4), // plate @@ -153,7 +153,7 @@ public static void init() { new MaterialStack(GTMaterials.Rubber, M * 2), // plate new MaterialStack(GTMaterials.Iridium, M * 2), // fine wire new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod - )); + ));*/ ItemMaterialData.registerMaterialInfo(GTBlocks.PLASTCRETE.get(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Steel, M), // frame / 2 diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java index e3234c95f4..5ba8a4046f 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java @@ -228,7 +228,7 @@ public static void addStrictShapedRecipe(Consumer provider, @Not * @param result the output for the recipe * @param recipe the contents of the recipe */ - public static void addShapedRecipe(Consumer provider, boolean withUnificationData, boolean isStrict, + public static void addShapedRecipe(Consumer provider, boolean setMaterialInfoData, boolean isStrict, @NotNull ResourceLocation regName, @NotNull ItemStack result, @NotNull Object... recipe) { var builder = new ShapedRecipeBuilder(regName).output(result); @@ -284,26 +284,26 @@ public static void addShapedRecipe(Consumer provider, boolean wi } builder.save(provider); - if (withUnificationData) { + if (setMaterialInfoData) { ItemMaterialData.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); } } - public static void addShapedRecipe(Consumer provider, boolean withUnificationData, + public static void addShapedRecipe(Consumer provider, boolean setMaterialInfoData, @NotNull String regName, @NotNull ItemStack result, @NotNull Object... recipe) { - addShapedRecipe(provider, withUnificationData, GTCEu.id(regName), result, recipe); + addShapedRecipe(provider, setMaterialInfoData, GTCEu.id(regName), result, recipe); } - public static void addShapedRecipe(Consumer provider, boolean withUnificationData, + public static void addShapedRecipe(Consumer provider, boolean setMaterialInfoData, @NotNull ResourceLocation regName, @NotNull ItemStack result, @NotNull Object... recipe) { - addShapedRecipe(provider, withUnificationData, false, regName, result, recipe); + addShapedRecipe(provider, setMaterialInfoData, false, regName, result, recipe); } - public static void addStrictShapedRecipe(Consumer provider, boolean withUnificationData, + public static void addStrictShapedRecipe(Consumer provider, boolean setMaterialInfoData, @NotNull ResourceLocation regName, @NotNull ItemStack result, @NotNull Object... recipe) { - addShapedRecipe(provider, withUnificationData, true, regName, result, recipe); + addShapedRecipe(provider, setMaterialInfoData, true, regName, result, recipe); } public static void addShapelessRecipe(Consumer provider, @NotNull String regName, diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index d6d0a8120c..799483c245 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -402,8 +402,11 @@ public GTRecipeBuilder inputItems(ItemStack input) { if(matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); } - else - tempItemStacks.add(input); + else { + if(chance == maxChance) { + tempItemStacks.add(input); + } + } } return input(ItemRecipeCapability.CAP, SizedIngredient.create(input)); } @@ -417,8 +420,11 @@ public GTRecipeBuilder inputItems(ItemStack... inputs) { if(matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); } - else - tempItemStacks.add(itemStack); + else { + if (chance == maxChance) { + tempItemStacks.add(itemStack); + } + } } } return input(ItemRecipeCapability.CAP, @@ -441,10 +447,28 @@ public GTRecipeBuilder inputItems(Item input, int amount) { } public GTRecipeBuilder inputItems(Item input) { + var matStack = ItemMaterialData.getMaterialInfo(input); + if(matStack != null) { + tempItemMaterialStacks.addAll(matStack.getMaterials()); + } + else { + if(chance == maxChance) { + tempItemStacks.add(new ItemStack(input)); + } + } return inputItems(SizedIngredient.create(new ItemStack(input))); } public GTRecipeBuilder inputItems(Supplier input) { + var matStack = ItemMaterialData.getMaterialInfo(input); + if(matStack != null) { + tempItemMaterialStacks.addAll(matStack.getMaterials()); + } + else { + if(chance == maxChance) { + tempItemStacks.add(new ItemStack(input.get())); + } + } return inputItems(input.get()); } @@ -461,6 +485,7 @@ public GTRecipeBuilder inputItems(MaterialEntry input) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix()); } else { tempItemMaterialStacks.add(new MaterialStack(input.material(), input.tagPrefix().getMaterialAmount(input.material()))); + tempItemMaterialStacks.addAll(input.tagPrefix().secondaryMaterials()); } return inputItems(input.tagPrefix(), input.material(), 1); } @@ -472,22 +497,23 @@ public GTRecipeBuilder inputItems(MaterialEntry input, int count) { return inputItems(input.tagPrefix(), input.material(), count); } - public GTRecipeBuilder inputItems(TagPrefix orePrefix, @Nullable Material material, int count) { + public GTRecipeBuilder inputItems(TagPrefix tagPrefix, @Nullable Material material, int count) { if(material == null) { GTCEu.LOGGER.error( "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", - id, orePrefix, "null", count); + id, tagPrefix, "null", count); return inputItems(ItemStack.EMPTY); } else { - tempItemMaterialStacks.add(new MaterialStack(material, orePrefix.getMaterialAmount(material) * count)); + tempItemMaterialStacks.add(new MaterialStack(material, tagPrefix.getMaterialAmount(material) * count)); + tagPrefix.secondaryMaterials().forEach(mat -> tempItemMaterialStacks.add(new MaterialStack(mat.material(), mat.amount() * count))); } - TagKey tag = ChemicalHelper.getTag(orePrefix, material); + TagKey tag = ChemicalHelper.getTag(tagPrefix, material); if (tag == null) { - var item = ChemicalHelper.get(orePrefix, material, count); + var item = ChemicalHelper.get(tagPrefix, material, count); if (item.isEmpty()) { GTCEu.LOGGER.error( "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", - id, orePrefix, material, count); + id, tagPrefix, material, count); } return input(ItemRecipeCapability.CAP, SizedIngredient.create(item)); } @@ -947,6 +973,13 @@ public GTRecipeBuilder chancedTickInputLogic(RecipeCapability cap, ChanceLogi return this; } + public GTRecipeBuilder inputFluids(@NotNull Material material, int amount) { + if(chance == maxChance) { + tempFluidStacks.add(new MaterialStack(material, amount * GTValues.M / GTValues.L)); + } + return inputFluids(material.getFluid(amount)); + } + public GTRecipeBuilder inputFluids(FluidStack input) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); if(matStack != null) { @@ -961,7 +994,9 @@ public GTRecipeBuilder inputFluids(FluidStack... inputs) { for(var input : inputs) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); if(matStack != null) { - tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); + if(chance == maxChance) { + tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); + } } } return input(FluidRecipeCapability.CAP, Arrays.stream(inputs).map(fluid -> FluidIngredient.of( @@ -1346,7 +1381,12 @@ else if (currOutput instanceof SizedIngredient sized) { if(addMaterialFluidInfo) { var fluidInputs = input.get(FluidRecipeCapability.CAP); - for(int i = 0; i < fluidInputs.size(); i++) { + + for (var input : tempFluidStacks) { + long am = input.amount() / outputCount; + matStacks.merge(input.material(), am, Long::sum); + } + /*for(int i = 0; i < fluidInputs.size(); i++) { if(fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { MaterialStack matStack = null; for(var value : fluidIngredient.values) { @@ -1368,7 +1408,7 @@ else if (currOutput instanceof SizedIngredient sized) { matStacks.merge(matStack.material(), matStack.amount(), Long::sum); } } - } + }*/ } var matList = matStacks.reference2LongEntrySet().stream().map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java index 2eae74a9b6..3c4b068786 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java @@ -2,10 +2,13 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.WireProperties; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTItems; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; @@ -15,7 +18,10 @@ import net.minecraft.data.recipes.FinishedRecipe; import com.google.common.collect.ImmutableMap; +import net.minecraft.world.item.ItemStack; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -142,7 +148,7 @@ public static void generateCableCovering(TagPrefix wirePrefix, Material material .EUt(VA[ULV]).duration(100) .inputItems(wirePrefix, material) .outputItems(cablePrefix, material) - .inputFluids(Rubber.getFluid(L * insulationAmount)); + .inputFluids(Rubber, L * insulationAmount); if (voltageTier == EV) { builder.inputItems(foil, PolyvinylChloride, insulationAmount); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java index eb8d474737..7c19fc75c6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java @@ -186,6 +186,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Aluminium, 16) .circuitMeta(1) .outputItems(VOLTAGE_COIL_MV) + .addMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("voltage_coil_hv").duration(200).EUt(VA[HV]) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java index d80e890833..4ee0571bc4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java @@ -105,14 +105,15 @@ public static void init(Consumer provider) { .inputItems(round, HSSS, 4) .inputItems(wireFine, Ruridit, 64) .inputItems(cableGtSingle, NiobiumTitanium, 2) - .inputFluids(SolderingAlloy.getFluid(L)) - .inputFluids(Lubricant.getFluid(250)) + .inputFluids(SolderingAlloy, L) + .inputFluids(Lubricant, 250) .outputItems(ELECTRIC_MOTOR_LuV) .scannerResearch(b -> b .researchStack(ELECTRIC_MOTOR_IV.asStack()) .duration(900) .EUt(VA[EV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_motor_zpm") .inputItems(rodLong, SamariumMagnetic) @@ -122,15 +123,15 @@ public static void init(Consumer provider) { .inputItems(wireFine, Europium, 64) .inputItems(wireFine, Europium, 32) .inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(SolderingAlloy.getFluid(L * 2)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy,L * 2) + .inputFluids(Lubricant, 500) .outputItems(ELECTRIC_MOTOR_ZPM) - .addMaterialInfo(true) .scannerResearch(b -> b .researchStack(ELECTRIC_MOTOR_LuV.asStack()) .duration(1200) .EUt(VA[IV])) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_motor_uv") .inputItems(rodLong, SamariumMagnetic) @@ -140,15 +141,16 @@ public static void init(Consumer provider) { .inputItems(wireFine, Americium, 64) .inputItems(wireFine, Americium, 64) .inputItems(cableGtSingle, YttriumBariumCuprate, 2) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(1000)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 1000) + .inputFluids(Naquadria, L * 4) .outputItems(ELECTRIC_MOTOR_UV) .stationResearch(b -> b .researchStack(ELECTRIC_MOTOR_ZPM.asStack()) .CWUt(32) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Conveyors // Start----------------------------------------------------------------------------------------------- @@ -313,15 +315,16 @@ public static void init(Consumer provider) { .inputItems(round, HSSS, 16) .inputItems(screw, HSSS, 4) .inputItems(cableGtSingle, NiobiumTitanium, 2) - .inputFluids(SolderingAlloy.getFluid(L)) - .inputFluids(Lubricant.getFluid(250)) - .inputFluids(StyreneButadieneRubber.getFluid(L * 8)) + .inputFluids(SolderingAlloy, L) + .inputFluids(Lubricant, 250) + .inputFluids(StyreneButadieneRubber, L * 8) .outputItems(CONVEYOR_MODULE_LuV) .scannerResearch(b -> b .researchStack(CONVEYOR_MODULE_IV.asStack()) .duration(900) .EUt(VA[EV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("conveyor_module_zpm") .inputItems(ELECTRIC_MOTOR_ZPM, 2) @@ -330,15 +333,16 @@ public static void init(Consumer provider) { .inputItems(round, Osmiridium, 16) .inputItems(screw, Osmiridium, 4) .inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(SolderingAlloy.getFluid(L * 2)) - .inputFluids(Lubricant.getFluid(500)) - .inputFluids(StyreneButadieneRubber.getFluid(L * 16)) + .inputFluids(SolderingAlloy, L * 2) + .inputFluids(Lubricant, 500) + .inputFluids(StyreneButadieneRubber, L * 16) .outputItems(CONVEYOR_MODULE_ZPM) .scannerResearch(b -> b .researchStack(CONVEYOR_MODULE_LuV.asStack()) .duration(1200) .EUt(VA[IV])) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("conveyor_module_uv") .inputItems(ELECTRIC_MOTOR_UV, 2) @@ -347,16 +351,17 @@ public static void init(Consumer provider) { .inputItems(round, Tritanium, 16) .inputItems(screw, Tritanium, 4) .inputItems(cableGtSingle, YttriumBariumCuprate, 2) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(1000)) - .inputFluids(StyreneButadieneRubber.getFluid(L * 24)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 1000) + .inputFluids(StyreneButadieneRubber, L * 24) + .inputFluids(Naquadria, L * 4) .outputItems(CONVEYOR_MODULE_UV) .stationResearch(b -> b .researchStack(CONVEYOR_MODULE_ZPM.asStack()) .CWUt(32) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_pump_luv") .inputItems(ELECTRIC_MOTOR_LuV) @@ -366,14 +371,15 @@ public static void init(Consumer provider) { .inputItems(ring, SiliconeRubber, 4) .inputItems(rotor, HSSS) .inputItems(cableGtSingle, NiobiumTitanium, 2) - .inputFluids(SolderingAlloy.getFluid(L)) - .inputFluids(Lubricant.getFluid(250)) + .inputFluids(SolderingAlloy, L) + .inputFluids(Lubricant, 250) .outputItems(ELECTRIC_PUMP_LuV) .scannerResearch(b -> b .researchStack(ELECTRIC_PUMP_IV.asStack()) .duration(900) .EUt(VA[EV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_pump_zpm") .inputItems(ELECTRIC_MOTOR_ZPM) @@ -383,14 +389,15 @@ public static void init(Consumer provider) { .inputItems(ring, SiliconeRubber, 8) .inputItems(rotor, Osmiridium) .inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(SolderingAlloy.getFluid(L * 2)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 2) + .inputFluids(Lubricant, 500) .outputItems(ELECTRIC_PUMP_ZPM) .scannerResearch(b -> b .researchStack(ELECTRIC_PUMP_LuV.asStack()) .duration(1200) .EUt(VA[IV])) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_pump_uv") .inputItems(ELECTRIC_MOTOR_UV) @@ -400,15 +407,16 @@ public static void init(Consumer provider) { .inputItems(ring, SiliconeRubber, 16) .inputItems(rotor, NaquadahAlloy) .inputItems(cableGtSingle, YttriumBariumCuprate, 2) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(1000)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 1000) + .inputFluids(Naquadria, L * 4) .outputItems(ELECTRIC_PUMP_UV) .stationResearch(b -> b .researchStack(ELECTRIC_PUMP_ZPM.asStack()) .CWUt(32) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Fluid // Regulators---------------------------------------------------------------------------------------------- @@ -487,7 +495,7 @@ public static void init(Consumer provider) { // Voiding Covers Start----------------------------------------------------------------------------------------- - VanillaRecipeHelper.addShapedRecipe(provider, true, "cover_item_voiding", COVER_ITEM_VOIDING.asStack(), "SDS", + VanillaRecipeHelper.addShapedRecipe(provider, false, "cover_item_voiding", COVER_ITEM_VOIDING.asStack(), "SDS", "dPw", " E ", 'S', new MaterialEntry(screw, Steel), 'D', COVER_ITEM_DETECTOR.asStack(), 'P', new MaterialEntry(pipeNormalItem, Brass), 'E', Items.ENDER_PEARL); @@ -497,15 +505,17 @@ public static void init(Consumer provider) { .inputItems(pipeNormalItem, Brass) .inputItems(Items.ENDER_PEARL) .outputItems(COVER_ITEM_VOIDING) - .duration(100).EUt(VA[LV]).save(provider); + .duration(100).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_item_voiding_advanced") .inputItems(COVER_ITEM_VOIDING) .inputItems(CustomTags.MV_CIRCUITS, 1) .outputItems(COVER_ITEM_VOIDING_ADVANCED) - .duration(100).EUt(VA[LV]).save(provider); + .duration(100).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); - VanillaRecipeHelper.addShapedRecipe(provider, true, "cover_fluid_voiding", COVER_FLUID_VOIDING.asStack(), "SDS", + VanillaRecipeHelper.addShapedRecipe(provider, false, "cover_fluid_voiding", COVER_FLUID_VOIDING.asStack(), "SDS", "dPw", " E ", 'S', new MaterialEntry(screw, Steel), 'D', COVER_FLUID_DETECTOR.asStack(), 'P', new MaterialEntry(pipeNormalFluid, Bronze), 'E', Items.ENDER_PEARL); @@ -515,13 +525,15 @@ public static void init(Consumer provider) { .inputItems(pipeNormalFluid, Bronze) .inputItems(Items.ENDER_PEARL) .outputItems(COVER_FLUID_VOIDING) - .duration(100).EUt(VA[LV]).save(provider); + .duration(100).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_fluid_voiding_advanced") .inputItems(COVER_FLUID_VOIDING) .inputItems(CustomTags.MV_CIRCUITS, 1) .outputItems(COVER_FLUID_VOIDING_ADVANCED) - .duration(100).EUt(VA[LV]).save(provider); + .duration(100).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); // Pistons // Start------------------------------------------------------------------------------------------------- @@ -600,14 +612,15 @@ public static void init(Consumer provider) { .inputItems(gear, HSSS) .inputItems(gearSmall, HSSS, 2) .inputItems(cableGtSingle, NiobiumTitanium, 2) - .inputFluids(SolderingAlloy.getFluid(L)) - .inputFluids(Lubricant.getFluid(250)) + .inputFluids(SolderingAlloy, L) + .inputFluids(Lubricant, 250) .outputItems(ELECTRIC_PISTON_LuV) .scannerResearch(b -> b .researchStack(ELECTRIC_PISTON_IV.asStack()) .duration(900) .EUt(VA[EV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_piston_zpm") .inputItems(ELECTRIC_MOTOR_ZPM) @@ -618,14 +631,15 @@ public static void init(Consumer provider) { .inputItems(gear, Osmiridium) .inputItems(gearSmall, Osmiridium, 2) .inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(SolderingAlloy.getFluid(L * 2)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 2) + .inputFluids(Lubricant, 500) .outputItems(ELECTRIC_PISTON_ZPM) .scannerResearch(b -> b .researchStack(ELECTRIC_PISTON_LuV.asStack()) .duration(1200) .EUt(VA[IV])) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("electric_piston_uv") .inputItems(ELECTRIC_MOTOR_UV) @@ -636,15 +650,16 @@ public static void init(Consumer provider) { .inputItems(gear, NaquadahAlloy) .inputItems(gearSmall, NaquadahAlloy, 2) .inputItems(cableGtSingle, YttriumBariumCuprate, 2) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(1000)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 1000) + .inputFluids(Naquadria, L * 4) .outputItems(ELECTRIC_PISTON_UV) .stationResearch(b -> b .researchStack(ELECTRIC_PISTON_ZPM.asStack()) .CWUt(32) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Robot Arms Start // --------------------------------------------------------------------------------------------- @@ -719,14 +734,15 @@ public static void init(Consumer provider) { .inputItems(CustomTags.IV_CIRCUITS, 2) .inputItems(CustomTags.EV_CIRCUITS, 4) .inputItems(cableGtSingle, NiobiumTitanium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(250)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 250) .outputItems(ROBOT_ARM_LuV) .scannerResearch(b -> b .researchStack(ROBOT_ARM_IV.asStack()) .duration(900) .EUt(VA[EV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("robot_arm_zpm") .inputItems(rodLong, Osmiridium, 4) @@ -738,14 +754,15 @@ public static void init(Consumer provider) { .inputItems(CustomTags.LuV_CIRCUITS, 2) .inputItems(CustomTags.IV_CIRCUITS, 4) .inputItems(cableGtSingle, VanadiumGallium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 8)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 8) + .inputFluids(Lubricant, 500) .outputItems(ROBOT_ARM_ZPM) .scannerResearch(b -> b .researchStack(ROBOT_ARM_LuV.asStack()) .duration(1200) .EUt(VA[IV])) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("robot_arm_uv") .inputItems(rodLong, Tritanium, 4) @@ -757,15 +774,16 @@ public static void init(Consumer provider) { .inputItems(CustomTags.ZPM_CIRCUITS, 2) .inputItems(CustomTags.LuV_CIRCUITS, 4) .inputItems(cableGtSingle, YttriumBariumCuprate, 4) - .inputFluids(SolderingAlloy.getFluid(L * 12)) - .inputFluids(Lubricant.getFluid(1000)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 12) + .inputFluids(Lubricant, 1000) + .inputFluids(Naquadria, L * 4) .outputItems(ROBOT_ARM_UV) .stationResearch(b -> b .researchStack(ROBOT_ARM_ZPM.asStack()) .CWUt(32) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Field Generators Start // --------------------------------------------------------------------------------------- @@ -838,13 +856,14 @@ public static void init(Consumer provider) { .inputItems(wireFine, IndiumTinBariumTitaniumCuprate, 64) .inputItems(wireFine, IndiumTinBariumTitaniumCuprate, 64) .inputItems(cableGtSingle, NiobiumTitanium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) .outputItems(FIELD_GENERATOR_LuV) .scannerResearch(b -> b .researchStack(FIELD_GENERATOR_IV.asStack()) .duration(2400) .EUt(VA[IV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("field_generator_zpm") .inputItems(frameGt, NaquadahAlloy) @@ -855,12 +874,13 @@ public static void init(Consumer provider) { .inputItems(wireFine, UraniumRhodiumDinaquadide, 64) .inputItems(wireFine, UraniumRhodiumDinaquadide, 64) .inputItems(cableGtSingle, VanadiumGallium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 8)) + .inputFluids(SolderingAlloy, L * 8) .outputItems(FIELD_GENERATOR_ZPM) .stationResearch(b -> b .researchStack(FIELD_GENERATOR_LuV.asStack()) .CWUt(4)) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("field_generator_uv") .inputItems(frameGt, Tritanium) @@ -871,14 +891,15 @@ public static void init(Consumer provider) { .inputItems(wireFine, EnrichedNaquadahTriniumEuropiumDuranide, 64) .inputItems(wireFine, EnrichedNaquadahTriniumEuropiumDuranide, 64) .inputItems(cableGtSingle, YttriumBariumCuprate, 4) - .inputFluids(SolderingAlloy.getFluid(L * 12)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 12) + .inputFluids(Naquadria, L * 4) .outputItems(FIELD_GENERATOR_UV) .stationResearch(b -> b .researchStack(FIELD_GENERATOR_ZPM.asStack()) .CWUt(48) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Sensors // Start------------------------------------------------------------------------------------------------- @@ -947,13 +968,14 @@ public static void init(Consumer provider) { .inputItems(foil, Palladium, 64) .inputItems(foil, Palladium, 32) .inputItems(cableGtSingle, NiobiumTitanium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 2)) + .inputFluids(SolderingAlloy, L * 2) .outputItems(SENSOR_LuV) .scannerResearch(b -> b .researchStack(SENSOR_IV.asStack()) .duration(2400) .EUt(VA[IV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("sensor_zpm") .inputItems(frameGt, NaquadahAlloy) @@ -964,12 +986,13 @@ public static void init(Consumer provider) { .inputItems(foil, Trinium, 64) .inputItems(foil, Trinium, 32) .inputItems(cableGtSingle, VanadiumGallium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) .outputItems(SENSOR_ZPM) .stationResearch(b -> b .researchStack(SENSOR_LuV.asStack()) .CWUt(4)) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("sensor_uv") .inputItems(frameGt, Tritanium) @@ -980,14 +1003,15 @@ public static void init(Consumer provider) { .inputItems(foil, Naquadria, 64) .inputItems(foil, Naquadria, 32) .inputItems(cableGtSingle, YttriumBariumCuprate, 4) - .inputFluids(SolderingAlloy.getFluid(L * 8)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 8) + .inputFluids(Naquadria, L * 4) .outputItems(SENSOR_UV) .stationResearch(b -> b .researchStack(SENSOR_ZPM.asStack()) .CWUt(48) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); // Emitters // Start------------------------------------------------------------------------------------------------ @@ -1061,13 +1085,14 @@ public static void init(Consumer provider) { .inputItems(foil, Palladium, 64) .inputItems(foil, Palladium, 32) .inputItems(cableGtSingle, NiobiumTitanium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 2)) + .inputFluids(SolderingAlloy, L * 2) .outputItems(EMITTER_LuV) .scannerResearch(b -> b .researchStack(EMITTER_IV.asStack()) .duration(2400) .EUt(VA[IV])) - .duration(600).EUt(6000).save(provider); + .duration(600).EUt(6000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("emitter_zpm") .inputItems(frameGt, NaquadahAlloy) @@ -1078,12 +1103,13 @@ public static void init(Consumer provider) { .inputItems(foil, Trinium, 64) .inputItems(foil, Trinium, 32) .inputItems(cableGtSingle, VanadiumGallium, 4) - .inputFluids(SolderingAlloy.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) .outputItems(EMITTER_ZPM) .stationResearch(b -> b .researchStack(EMITTER_LuV.asStack()) .CWUt(8)) - .duration(600).EUt(24000).save(provider); + .duration(600).EUt(24000) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("emitter_uv") .inputItems(frameGt, Tritanium) @@ -1094,13 +1120,14 @@ public static void init(Consumer provider) { .inputItems(foil, Naquadria, 64) .inputItems(foil, Naquadria, 32) .inputItems(cableGtSingle, YttriumBariumCuprate, 4) - .inputFluids(SolderingAlloy.getFluid(L * 8)) - .inputFluids(Naquadria.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 8) + .inputFluids(Naquadria, L * 4) .outputItems(EMITTER_UV) .stationResearch(b -> b .researchStack(EMITTER_ZPM.asStack()) .CWUt(48) .EUt(VA[ZPM])) - .duration(600).EUt(100000).save(provider); + .duration(600).EUt(100000) + .addMaterialInfo(true).save(provider); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java index bbef2f22a2..cd2c5feaa8 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java @@ -26,19 +26,21 @@ public static void init(Consumer provider) { .inputItems(TOOL_DATA_STICK, 4) .inputItems(CustomTags.EV_CIRCUITS, 4) .outputItems(DATA_ACCESS_HATCH) - .inputFluids(Polytetrafluoroethylene.getFluid(L * 2)) + .inputFluids(Polytetrafluoroethylene, L * 2) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[EV]).save(provider); + .duration(200).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("advanced_data_access_hatch") .inputItems(ITEM_IMPORT_BUS[LuV]) .inputItems(TOOL_DATA_ORB, 4) .inputItems(CustomTags.ZPM_CIRCUITS, 4) .outputItems(ADVANCED_DATA_ACCESS_HATCH) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Polybenzimidazole.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Polybenzimidazole, L * 4) .stationResearch(b -> b.researchStack(DATA_BANK.asStack()).CWUt(4)) - .duration(400).EUt(6000).save(provider); + .duration(400).EUt(6000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("high_power_casing") .inputItems(frameGt, Iridium) @@ -49,7 +51,8 @@ public static void init(Consumer provider) { .inputItems(wireGtSingle, NiobiumTitanium, 2) .outputItems(HIGH_POWER_CASING, ConfigHolder.INSTANCE.recipes.casingsPerCraft) - .duration(100).EUt(VA[IV]).save(provider); + .duration(100).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computer_casing") .inputItems(frameGt, Iridium) @@ -60,7 +63,8 @@ public static void init(Consumer provider) { .inputItems(wireGtSingle, VanadiumGallium, 2) .outputItems(COMPUTER_CASING, ConfigHolder.INSTANCE.recipes.casingsPerCraft) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("advanced_computer_casing") .inputItems(COMPUTER_CASING.asStack()) @@ -69,7 +73,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Electrum, 64) .inputItems(wireGtSingle, IndiumTinBariumTitaniumCuprate, 4) .outputItems(ADVANCED_COMPUTER_CASING) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computer_heat_vent") .inputItems(frameGt, StainlessSteel) @@ -80,15 +85,17 @@ public static void init(Consumer provider) { .inputItems(wireGtSingle, SamariumIronArsenicOxide) .outputItems(COMPUTER_HEAT_VENT, ConfigHolder.INSTANCE.recipes.casingsPerCraft) - .duration(100).EUt(VA[EV]).save(provider); + .duration(100).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("optical_pipe") .inputItems(wireFine, BorosilicateGlass, 8) .inputItems(foil, Silver, 8) - .inputFluids(Polytetrafluoroethylene.getFluid(L)) + .inputFluids(Polytetrafluoroethylene, L) .cleanroom(CleanroomType.CLEANROOM) .outputItems(OPTICAL_PIPES[0]) - .duration(100).EUt(VA[IV]).save(provider); + .duration(100).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("data_bank") .inputItems(COMPUTER_CASING.asStack()) @@ -98,14 +105,15 @@ public static void init(Consumer provider) { .inputItems(wireFine, Copper, 64) .inputItems(OPTICAL_PIPES[0].asStack(4)) .inputItems(wireGtDouble, IndiumTinBariumTitaniumCuprate, 16) - .inputFluids(SolderingAlloy.getFluid(L * 2)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 2) + .inputFluids(Lubricant, 500) .outputItems(DATA_BANK) .scannerResearch(b -> b .researchStack(DATA_ACCESS_HATCH.asStack()) .duration(2400) .EUt(VA[EV])) - .duration(1200).EUt(6000).save(provider); + .duration(1200).EUt(6000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("research_station") .inputItems(DATA_BANK) @@ -116,14 +124,15 @@ public static void init(Consumer provider) { .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 32) .inputItems(foil, Trinium, 32) .inputItems(OPTICAL_PIPES[0].asStack(16)) - .inputFluids(SolderingAlloy.getFluid(L * 8)) - .inputFluids(VanadiumGallium.getFluid(L * 8)) + .inputFluids(SolderingAlloy, L * 8) + .inputFluids(VanadiumGallium, L * 8) .outputItems(RESEARCH_STATION) .scannerResearch(b -> b .researchStack(SCANNER[LuV].asStack()) .duration(2400) .EUt(VA[IV])) - .duration(1200).EUt(100000).save(provider); + .duration(1200).EUt(100000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("object_holder") .inputItems(ITEM_IMPORT_BUS[ZPM]) @@ -133,14 +142,15 @@ public static void init(Consumer provider) { .inputItems(ELECTRIC_MOTOR_ZPM, 2) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 16) .inputItems(OPTICAL_PIPES[0].asStack(2)) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Polybenzimidazole.getFluid(L * 2)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Polybenzimidazole, L * 2) .outputItems(OBJECT_HOLDER) .scannerResearch(b -> b .researchStack(ITEM_IMPORT_BUS[ZPM].asStack()) .duration(2400) .EUt(VA[IV])) - .duration(1200).EUt(100000).save(provider); + .duration(1200).EUt(100000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("network_switch") .inputItems(COMPUTER_CASING.asStack()) @@ -151,14 +161,15 @@ public static void init(Consumer provider) { .inputItems(foil, Tritanium, 64) .inputItems(foil, Tritanium, 64) .inputItems(OPTICAL_PIPES[0].asStack(8)) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Polybenzimidazole.getFluid(L * 4)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Polybenzimidazole, L * 4) .outputItems(NETWORK_SWITCH) .stationResearch(b -> b .researchStack(new ItemStack(OPTICAL_PIPES[0])) .CWUt(32) .EUt(VA[ZPM])) - .duration(1200).EUt(100000).save(provider); + .duration(1200).EUt(100000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("high_performance_computing_array") .inputItems(DATA_BANK) @@ -168,33 +179,36 @@ public static void init(Consumer provider) { .inputItems(COVER_SCREEN) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 64) .inputItems(OPTICAL_PIPES[0].asStack(16)) - .inputFluids(SolderingAlloy.getFluid(L * 8)) - .inputFluids(VanadiumGallium.getFluid(L * 8)) - .inputFluids(PCBCoolant.getFluid(4000)) + .inputFluids(SolderingAlloy, L * 8) + .inputFluids(VanadiumGallium, L * 8) + .inputFluids(PCBCoolant, 4000) .outputItems(HIGH_PERFORMANCE_COMPUTING_ARRAY) .scannerResearch(b -> b .researchStack(COVER_SCREEN.asStack()) .duration(2400) .EUt(VA[IV])) - .duration(1200).EUt(100000).save(provider); + .duration(1200).EUt(100000) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_empty_component") .inputItems(COMPUTER_CASING.asStack()) .inputItems(CustomTags.IV_CIRCUITS) .inputItems(TOOL_DATA_STICK) .outputItems(HPCA_EMPTY_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[IV]).save(provider); + .duration(200).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_heat_sink_component") .inputItems(HPCA_EMPTY_COMPONENT) .inputItems(plate, Aluminium, 32) .inputItems(screw, StainlessSteel, 8) .outputItems(HPCA_HEAT_SINK_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[IV]).save(provider); + .duration(200).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_active_cooler_component") .inputItems(ADVANCED_COMPUTER_CASING.asStack()) @@ -202,9 +216,10 @@ public static void init(Consumer provider) { .inputItems(pipeTinyFluid, StainlessSteel, 16) .inputItems(screw, StainlessSteel, 8) .outputItems(HPCA_ACTIVE_COOLER_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[IV]).save(provider); + .duration(200).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_bridge_component") .inputItems(ADVANCED_COMPUTER_CASING.asStack()) @@ -212,27 +227,30 @@ public static void init(Consumer provider) { .inputItems(EMITTER_ZPM) .inputItems(OPTICAL_PIPES[0].asStack(2)) .outputItems(HPCA_BRIDGE_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_computation_component") .inputItems(HPCA_EMPTY_COMPONENT) .inputItems(CustomTags.ZPM_CIRCUITS, 4) .inputItems(FIELD_GENERATOR_LuV) .outputItems(HPCA_COMPUTATION_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_advanced_computation_component") .inputItems(HPCA_COMPUTATION_COMPONENT) .inputItems(CustomTags.UV_CIRCUITS, 4) .inputItems(FIELD_GENERATOR_ZPM) .outputItems(HPCA_ADVANCED_COMPUTATION_COMPONENT) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[ZPM]).save(provider); + .duration(200).EUt(VA[ZPM]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("data_receiver_hatch") .inputItems(COMPUTER_CASING.asStack()) @@ -240,10 +258,11 @@ public static void init(Consumer provider) { .inputItems(CustomTags.LuV_CIRCUITS) .inputItems(SENSOR_IV) .inputItems(OPTICAL_PIPES[0].asStack(2)) - .inputFluids(Polybenzimidazole.getFluid(L * 2)) + .inputFluids(Polybenzimidazole, L * 2) .outputItems(DATA_HATCH_RECEIVER) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("data_transmitter_hatch") .inputItems(COMPUTER_CASING.asStack()) @@ -251,44 +270,49 @@ public static void init(Consumer provider) { .inputItems(CustomTags.LuV_CIRCUITS) .inputItems(EMITTER_IV) .inputItems(OPTICAL_PIPES[0].asStack(2)) - .inputFluids(Polybenzimidazole.getFluid(L * 2)) + .inputFluids(Polybenzimidazole, L * 2) .outputItems(DATA_HATCH_TRANSMITTER) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computation_receiver_hatch") .inputItems(DATA_HATCH_RECEIVER) .inputItems(CustomTags.ZPM_CIRCUITS) .inputItems(SENSOR_LuV) - .inputFluids(Polybenzimidazole.getFluid(L * 2)) + .inputFluids(Polybenzimidazole, L * 2) .outputItems(COMPUTATION_HATCH_RECEIVER) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computation_transmitter_hatch") .inputItems(DATA_HATCH_TRANSMITTER) .inputItems(CustomTags.ZPM_CIRCUITS) .inputItems(EMITTER_LuV) - .inputFluids(Polybenzimidazole.getFluid(L * 2)) + .inputFluids(Polybenzimidazole, L * 2) .outputItems(COMPUTATION_HATCH_TRANSMITTER) .cleanroom(CleanroomType.CLEANROOM) - .duration(200).EUt(VA[LuV]).save(provider); + .duration(200).EUt(VA[LuV]) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("active_transformer") .inputItems(POWER_TRANSFORMER[LuV]) .inputItems(CustomTags.LuV_CIRCUITS, 2) .inputItems(wireGtSingle, IndiumTinBariumTitaniumCuprate, 8) .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) - .inputFluids(PCBCoolant.getFluid(1000)) + .inputFluids(PCBCoolant, 1000) .outputItems(ACTIVE_TRANSFORMER) - .duration(300).EUt(VA[LuV]).save(provider); + .duration(300).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("laser_cable") .inputItems(CASING_LAMINATED_GLASS.asStack(1)) .inputItems(foil, Osmiridium, 2) - .inputFluids(Polytetrafluoroethylene.getFluid(L)) + .inputFluids(Polytetrafluoroethylene, L) .outputItems(LASER_PIPES[0]) .cleanroom(CleanroomType.CLEANROOM) - .duration(100).EUt(VA[IV]).save(provider); + .duration(100).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/DecorationRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/DecorationRecipes.java index 2b2bc2705d..91e9edc676 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/DecorationRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/DecorationRecipes.java @@ -35,7 +35,7 @@ private static void assemblerRecipes(Consumer provider) { .circuitMeta(8) .outputItems(METAL_SHEETS.get(DyeColor.WHITE), 32) .EUt(4).duration(20) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("large_metal_sheet_white") .inputItems(block, Concrete, 5) @@ -43,7 +43,7 @@ private static void assemblerRecipes(Consumer provider) { .circuitMeta(9) .outputItems(LARGE_METAL_SHEETS.get(DyeColor.WHITE), 32) .EUt(4).duration(20) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("studs_black") .inputItems(block, Concrete, 3) @@ -51,7 +51,7 @@ private static void assemblerRecipes(Consumer provider) { .circuitMeta(8) .outputItems(STUDS.get(DyeColor.BLACK), 32) .EUt(4).duration(20) - .save(provider); + .addMaterialInfo(true).save(provider); } private static void dyeRecipes(Consumer provider) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java index a407afa69f..474fde52ef 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java @@ -193,7 +193,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(ELECTRIC_MOTOR_IV.asStack()) .outputItems(CRUSHING_WHEELS.asStack(2)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("slicing_blades") .inputItems(ChemicalHelper.get(plate, TungstenCarbide, 2)) @@ -202,7 +202,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(ELECTRIC_MOTOR_IV.asStack()) .outputItems(SLICING_BLADES.asStack(2)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("electrolytic_cell") .inputItems(ChemicalHelper.get(wireGtDouble, Platinum, 4)) @@ -211,7 +211,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(CustomTags.IV_CIRCUITS) .outputItems(ELECTROLYTIC_CELL.asStack(2)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("mds_coil_block") .inputItems(ChemicalHelper.get(ring, MolybdenumDisilicide, 32)) @@ -219,7 +219,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(HSLASteel.getFluid(L)) .outputItems(MOLYBDENUM_DISILICIDE_COIL_BLOCK.asStack(1)) .duration(500).EUt(1920) - .save(provider); + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("heat_vent") .inputItems(ChemicalHelper.get(plate, TantalumCarbide, 3)) @@ -228,75 +228,75 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(ChemicalHelper.get(rodLong, MolybdenumDisilicide, 1)) .outputItems(HEAT_VENT.asStack(2)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_hsla_nonconducting") .inputItems(plate, HSLASteel, 6).inputItems(frameGt, HSLASteel).circuitMeta(6) .outputItems(CASING_NONCONDUCTING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_incoloy_vibration_safe") .inputItems(plate, IncoloyMA956, 6).inputItems(frameGt, IncoloyMA956).circuitMeta(6) .outputItems(CASING_VIBRATION_SAFE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .EUt(16).duration(50) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_watertight") .inputItems(plate, WatertightSteel, 6).inputItems(frameGt, WatertightSteel).circuitMeta(6) .outputItems(CASING_WATERTIGHT.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_secure_maceration") .inputItems(plate, Zeron100, 6).inputItems(frameGt, Titanium).circuitMeta(6) .outputItems(CASING_SECURE_MACERATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .EUt(16).duration(50) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_high_temperature_smelting") .inputItems(plate, TitaniumCarbide, 4).inputItems(plate, HSLASteel, 2) .inputItems(frameGt, TungstenCarbide).circuitMeta(6) .outputItems(CASING_HIGH_TEMPERATURE_SMELTING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_reaction_safe_mixing") .inputItems(TagPrefix.plate, GTMaterials.HastelloyX, 6) .inputItems(TagPrefix.frameGt, GTMaterials.MaragingSteel300).circuitMeta(6) .outputItems(CASING_REACTION_SAFE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_laser_safe_engraving") .inputItems(plate, TitaniumTungstenCarbide, 6).inputItems(frameGt, Titanium).circuitMeta(6) .outputItems(CASING_LASER_SAFE_ENGRAVING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_large_scale_assembling") .inputItems(plate, Stellite100, 6).inputItems(frameGt, Tungsten).circuitMeta(6) .outputItems(CASING_LARGE_SCALE_ASSEMBLING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_shock_proof") .inputItems(plate, HastelloyC276, 6).inputItems(frameGt, HastelloyC276).circuitMeta(6) .outputItems(CASING_SHOCK_PROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_corrosion_proof") .inputItems(plate, CobaltBrass, 6).inputItems(frameGt, HSLASteel).circuitMeta(6) .outputItems(CASING_CORROSION_PROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_stress_proof") .inputItems(plate, MaragingSteel300, 6).inputItems(frameGt, StainlessSteel).circuitMeta(6) .outputItems(CASING_STRESS_PROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(50).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); } private static void registerMixerRecipes(Consumer provider) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 1d56c36c5d..a744f50fa0 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -80,6 +80,7 @@ private static void registerBendingCompressingRecipes(Consumer p .notConsumable(SHAPE_MOLD_CREDIT) .inputItems(plate, Cupronickel, 1) .outputItems(CREDIT_CUPRONICKEL, 4) + .addMaterialInfo(true) .save(provider); FORMING_PRESS_RECIPES.recipeBuilder("doge_coin") @@ -87,6 +88,7 @@ private static void registerBendingCompressingRecipes(Consumer p .notConsumable(SHAPE_MOLD_CREDIT) .inputItems(plate, Brass, 1) .outputItems(COIN_DOGE, 4) + .addMaterialInfo(true) .save(provider); for (ItemEntry shapeMold : SHAPE_MOLDS) { @@ -113,6 +115,7 @@ private static void registerBendingCompressingRecipes(Consumer p .inputItems(plate, Steel, 4) .outputItems(SHAPE_EMPTY) .duration(180).EUt(12) + .addMaterialInfo(true) .save(provider); BENDER_RECIPES.recipeBuilder("fluid_cell_tin") @@ -446,6 +449,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(CHEMICAL_DYES[i].getFluid(L * 4)) .outputItems(SPRAY_CAN_DYES[i]) .EUt(VA[ULV]).duration(200) + .addMaterialInfo(true) .save(provider); DyeColor color = DyeColor.byId(i); @@ -458,6 +462,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(GTMaterials.CHEMICAL_DYES[i].getFluid(GTValues.L)) .outputItems(lamp.getStackFromIndex(lampMeta)) .circuitMeta(lampMeta + 1).EUt(VA[ULV]).duration(40) + .addMaterialInfo(true) .save(provider); } lamp = GTBlocks.BORDERLESS_LAMPS.get(color).get(); @@ -468,6 +473,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(GTMaterials.CHEMICAL_DYES[i].getFluid(GTValues.L)) .outputItems(lamp.getStackFromIndex(lampMeta)) .circuitMeta(lampMeta + 9).EUt(VA[ULV]).duration(40) + .addMaterialInfo(true) .save(provider); } @@ -478,12 +484,14 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(Acetone.getFluid(1000)) .outputItems(SPRAY_SOLVENT) .EUt(VA[ULV]).duration(200) + .addMaterialInfo(true) .save(provider); CANNER_RECIPES.recipeBuilder("mask_filter") .inputItems(plate, Polyethylene, 4) .inputItems(dust, ActivatedCarbon, 2) .outputItems(MASK_FILTER) + .addMaterialInfo(true) .duration(100).EUt(2).save(provider); CANNER_RECIPES.recipeBuilder("pack_paracetamol") @@ -498,98 +506,115 @@ private static void registerAssemblerRecipes(Consumer provider) .outputItems(GTItems.RAD_AWAY_PILL.asStack(16)) .duration(60).EUt(VA[LV]).save(provider); - Material material = Iron; - ASSEMBLER_RECIPES.recipeBuilder("cover_shutter") .inputItems(new ItemStack(Items.IRON_DOOR)) - .inputItems(plate, material, 2) + .inputItems(plate, Iron, 2) .outputItems(COVER_SHUTTER, 2) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); - FluidStack solder = SolderingAlloy.getFluid(L / 2); - ASSEMBLER_RECIPES.recipeBuilder("cover_machine_controller") .inputItems(new ItemStack(Blocks.LEVER)) - .inputItems(plate, material) - .inputFluids(solder) + .inputItems(plate, Iron) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_MACHINE_CONTROLLER) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_energy_detector") .inputItems(cableGtSingle, Copper, 4) .inputItems(CustomTags.LV_CIRCUITS) - .inputItems(plate, material) - .inputFluids(solder) + .inputItems(plate, Iron) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ENERGY_DETECTOR) .EUt(16).duration(100) .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_energy_detector") .inputItems(COVER_ENERGY_DETECTOR) .inputItems(SENSOR_HV) - .inputFluids(solder) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ENERGY_DETECTOR_ADVANCED) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_activity_detector") .inputItems(new ItemStack(Blocks.REDSTONE_TORCH)) - .inputItems(plate, material) - .inputFluids(solder) + .inputItems(plate, Iron) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ACTIVITY_DETECTOR) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_activity_cover") .inputItems(wireFine, Gold, 4) .inputItems(CustomTags.HV_CIRCUITS) .inputItems(plate, Aluminium) - .inputFluids(solder) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ACTIVITY_DETECTOR_ADVANCED) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_fluid_detector") .inputItems(new ItemStack(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE)) - .inputItems(plate, material) - .inputFluids(solder) + .inputItems(plate, Iron) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_FLUID_DETECTOR) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_item_detector") .inputItems(new ItemStack(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE)) - .inputItems(plate, material) - .inputFluids(solder) + .inputItems(plate, Iron) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ITEM_DETECTOR) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_fluid_detector") .inputItems(COVER_FLUID_DETECTOR) .inputItems(SENSOR_HV) - .inputFluids(solder) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_FLUID_DETECTOR_ADVANCED) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_item_detector") .inputItems(COVER_ITEM_DETECTOR) .inputItems(SENSOR_HV) - .inputFluids(solder) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ITEM_DETECTOR_ADVANCED) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_maintenance_detector") .inputItems(EMITTER_LV) .inputItems(plate, Steel) - .inputFluids(solder) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_MAINTENANCE_DETECTOR) .EUt(16).duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_screen") @@ -599,6 +624,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(wireFine, Copper, 4) .outputItems(COVER_SCREEN) .EUt(16).duration(50) + .addMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_infinite_water") @@ -607,6 +633,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(CustomTags.HV_CIRCUITS) .outputItems(COVER_INFINITE_WATER) .EUt(VA[HV]).duration(100) + .addMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_ender_fluid_link") @@ -615,266 +642,325 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(SENSOR_HV) .inputItems(EMITTER_HV) .inputItems(ELECTRIC_PUMP_HV) - .inputFluids(Polyethylene.getFluid(L * 2)) + .inputFluids(Polyethylene,L * 2) .outputItems(COVER_ENDER_FLUID_LINK) .EUt(VA[HV]).duration(320) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_storage") .inputItems(Tags.Blocks.CHESTS_WOODEN) .inputItems(ELECTRIC_PISTON_LV) .inputItems(plate, Iron) - .inputFluids(SolderingAlloy.getFluid(72)) + .inputFluids(SolderingAlloy,L / 2) .outputItems(COVER_STORAGE) .EUt(16) .duration(100) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ulv").EUt(16).inputItems(plate, WroughtIron, 8) - .outputItems(GTBlocks.MACHINE_CASING_ULV.asStack()).circuitMeta(8).duration(25).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_ULV.asStack()) + .circuitMeta(8).duration(25) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_lv").EUt(16).inputItems(plate, Steel, 8) - .outputItems(GTBlocks.MACHINE_CASING_LV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_LV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_mv").EUt(16).inputItems(plate, Aluminium, 8) - .outputItems(GTBlocks.MACHINE_CASING_MV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_MV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_hv").EUt(16).inputItems(plate, StainlessSteel, 8) - .outputItems(GTBlocks.MACHINE_CASING_HV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_HV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ev").EUt(16).inputItems(plate, Titanium, 8) - .outputItems(GTBlocks.MACHINE_CASING_EV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_EV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_iv").EUt(16).inputItems(plate, TungstenSteel, 8) - .outputItems(GTBlocks.MACHINE_CASING_IV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_IV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_luv").EUt(16).inputItems(plate, RhodiumPlatedPalladium, 8) - .outputItems(GTBlocks.MACHINE_CASING_LuV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_LuV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_zpm").EUt(16).inputItems(plate, NaquadahAlloy, 8) - .outputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_uv").EUt(16).inputItems(plate, Darmstadtium, 8) - .outputItems(GTBlocks.MACHINE_CASING_UV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_UV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_uhv").EUt(16).inputItems(plate, Neutronium, 8) - .outputItems(GTBlocks.MACHINE_CASING_UHV.asStack()).circuitMeta(8).duration(50).save(provider); + .outputItems(GTBlocks.MACHINE_CASING_UHV.asStack()) + .circuitMeta(8).duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_cupronickel").EUt(VA[LV]).inputItems(wireGtDouble, Cupronickel, 8) - .inputItems(foil, Bronze, 8).inputFluids(TinAlloy.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_CUPRONICKEL.asStack()).duration(200).save(provider); + .inputItems(foil, Bronze, 8).inputFluids(TinAlloy, GTValues.L) + .outputItems(GTBlocks.COIL_CUPRONICKEL.asStack()).duration(200) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_kanthal").EUt(VA[MV]).inputItems(wireGtDouble, Kanthal, 8) - .inputItems(foil, Aluminium, 8).inputFluids(Copper.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_KANTHAL.asStack()).duration(300).save(provider); + .inputItems(foil, Aluminium, 8).inputFluids(Copper, GTValues.L) + .outputItems(GTBlocks.COIL_KANTHAL.asStack()).duration(300) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_nichrome").EUt(VA[HV]).inputItems(wireGtDouble, Nichrome, 8) - .inputItems(foil, StainlessSteel, 8).inputFluids(Aluminium.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_NICHROME.asStack()).duration(400).save(provider); + .inputItems(foil, StainlessSteel, 8).inputFluids(Aluminium, GTValues.L) + .outputItems(GTBlocks.COIL_NICHROME.asStack()).duration(400) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_rtm_alloy").EUt(VA[EV]).inputItems(wireGtDouble, RTMAlloy, 8) - .inputItems(foil, VanadiumSteel, 8).inputFluids(Nichrome.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_RTMALLOY.asStack()).duration(500).save(provider); + .inputItems(foil, VanadiumSteel, 8).inputFluids(Nichrome, GTValues.L) + .outputItems(GTBlocks.COIL_RTMALLOY.asStack()).duration(500) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_hssg").EUt(VA[IV]).inputItems(wireGtDouble, HSSG, 8) - .inputItems(foil, TungstenCarbide, 8).inputFluids(Tungsten.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_HSSG.asStack()).duration(600).save(provider); + .inputItems(foil, TungstenCarbide, 8).inputFluids(Tungsten, GTValues.L) + .outputItems(GTBlocks.COIL_HSSG.asStack()).duration(600) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_naquadah").EUt(VA[LuV]).inputItems(wireGtDouble, Naquadah, 8) - .inputItems(foil, Osmium, 8).inputFluids(TungstenSteel.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_NAQUADAH.asStack()).duration(700).save(provider); + .inputItems(foil, Osmium, 8).inputFluids(TungstenSteel, GTValues.L) + .outputItems(GTBlocks.COIL_NAQUADAH.asStack()).duration(700) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_trinium").EUt(VA[ZPM]).inputItems(wireGtDouble, Trinium, 8) - .inputItems(foil, NaquadahEnriched, 8).inputFluids(Naquadah.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_TRINIUM.asStack()).duration(800).save(provider); + .inputItems(foil, NaquadahEnriched, 8).inputFluids(Naquadah, GTValues.L) + .outputItems(GTBlocks.COIL_TRINIUM.asStack()).duration(800) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_tritanium").EUt(VA[UV]).inputItems(wireGtDouble, Tritanium, 8) - .inputItems(foil, Naquadria, 8).inputFluids(Trinium.getFluid(GTValues.L)) - .outputItems(GTBlocks.COIL_TRITANIUM.asStack()).duration(900).save(provider); + .inputItems(foil, Naquadria, 8).inputFluids(Trinium, GTValues.L) + .outputItems(GTBlocks.COIL_TRITANIUM.asStack()).duration(900) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_bronze_bricks").EUt(16).inputItems(plate, Bronze, 6) .inputItems(new ItemStack(Blocks.BRICKS)).circuitMeta(6) .outputItems(GTBlocks.CASING_BRONZE_BRICKS.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_invar_heatproof").EUt(16).inputItems(plate, Invar, 6) .inputItems(frameGt, Invar).circuitMeta(6) .outputItems(GTBlocks.CASING_INVAR_HEATPROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_steel_solid").EUt(16).inputItems(plate, Steel, 6) .inputItems(frameGt, Steel).circuitMeta(6) .outputItems(GTBlocks.CASING_STEEL_SOLID.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_aluminium_frostproof").EUt(16).inputItems(plate, Aluminium, 6) .inputItems(frameGt, Aluminium).circuitMeta(6) .outputItems( GTBlocks.CASING_ALUMINIUM_FROSTPROOF.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_tungsteensteel_robust").EUt(16).inputItems(plate, TungstenSteel, 6) .inputItems(frameGt, TungstenSteel).circuitMeta(6) .outputItems( GTBlocks.CASING_TUNGSTENSTEEL_ROBUST.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_stainless_clean").EUt(16).inputItems(plate, StainlessSteel, 6) .inputItems(frameGt, StainlessSteel).circuitMeta(6) .outputItems(GTBlocks.CASING_STAINLESS_CLEAN.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_titanium_stable").EUt(16).inputItems(plate, Titanium, 6) .inputItems(frameGt, Titanium).circuitMeta(6) .outputItems(GTBlocks.CASING_TITANIUM_STABLE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_hsse_sturdy").EUt(16).inputItems(plate, HSSE, 6) .inputItems(frameGt, Europium).circuitMeta(6) .outputItems(GTBlocks.CASING_HSSE_STURDY.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_palladium_substation").EUt(16).inputItems(plate, Palladium, 6) .inputItems(frameGt, Iridium).circuitMeta(6) .outputItems( GTBlocks.CASING_PALLADIUM_SUBSTATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50).addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_stainless_evaporation") .inputItems(GTBlocks.CASING_STAINLESS_CLEAN.asStack(1)) .inputItems(wireGtDouble, AnnealedCopper, 4) - .inputFluids(PolyvinylChloride.getFluid(L * 2)) - .outputItems(GTBlocks.CASING_STAINLESS_EVAPORATION.asStack(1)) - .duration(30).EUt(VA[HV]).save(provider); + .inputFluids(PolyvinylChloride,L * 2) + .outputItems(GTBlocks.CASING_STAINLESS_EVAPORATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) + .duration(30).EUt(VA[HV]).addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ptfe_inert").EUt(16).inputItems(GTBlocks.CASING_STEEL_SOLID.asStack()) .inputFluids(Polytetrafluoroethylene.getFluid(216)).circuitMeta(6) - .outputItems(GTBlocks.CASING_PTFE_INERT.asStack()).duration(50).save(provider); + .outputItems(GTBlocks.CASING_PTFE_INERT.asStack()).duration(50) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_luv").EUt(VA[LuV]) .inputItems(wireGtDouble, IndiumTinBariumTitaniumCuprate, 32).inputItems(foil, NiobiumTitanium, 32) - .inputFluids(Trinium.getFluid(GTValues.L * 24)).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .inputFluids(Trinium, GTValues.L * 24).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_zpm").EUt(VA[ZPM]) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 16).inputItems(foil, NiobiumTitanium, 16) - .inputFluids(Trinium.getFluid(GTValues.L * 16)).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) + .inputFluids(Trinium,GTValues.L * 16).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_uv").EUt(VA[UV]) .inputItems(wireGtDouble, EnrichedNaquadahTriniumEuropiumDuranide, 8) - .inputItems(foil, NiobiumTitanium, 8).inputFluids(Trinium.getFluid(GTValues.L * 8)) + .inputItems(foil, NiobiumTitanium, 8).inputFluids(Trinium,GTValues.L * 8) .outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()).duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_coil").EUt(VA[ZPM]).inputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .inputItems(FIELD_GENERATOR_IV.asStack(2)).inputItems(ELECTRIC_PUMP_IV) .inputItems(NEUTRON_REFLECTOR.asStack(2)).inputItems(CustomTags.LuV_CIRCUITS, 4) .inputItems(pipeSmallFluid, Naquadah, 4).inputItems(plate, Europium, 4) - .inputFluids(VanadiumGallium.getFluid(GTValues.L * 4)).outputItems(GTBlocks.FUSION_COIL.asStack()) - .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); + .inputFluids(VanadiumGallium, GTValues.L * 4).outputItems(GTBlocks.FUSION_COIL.asStack()) + .duration(100).cleanroom(CleanroomType.CLEANROOM).addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_glass").EUt(VA[LuV]) .inputItems(GTBlocks.CASING_LAMINATED_GLASS.asStack()).inputItems(plate, Naquadah, 4) .inputItems(NEUTRON_REFLECTOR.asStack(4)).outputItems(GTBlocks.FUSION_GLASS.asStack(2)) - .inputFluids(Polybenzimidazole.getFluid(GTValues.L)).duration(50).cleanroom(CleanroomType.CLEANROOM) - .save(provider); + .inputFluids(Polybenzimidazole, GTValues.L).duration(50).cleanroom(CleanroomType.CLEANROOM) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing").EUt(VA[LuV]).inputItems(GTBlocks.MACHINE_CASING_LuV.asStack()) .inputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()).inputItems(NEUTRON_REFLECTOR) .inputItems(ELECTRIC_PUMP_LuV).inputItems(plate, TungstenSteel, 6) - .inputFluids(Polybenzimidazole.getFluid(GTValues.L)) + .inputFluids(Polybenzimidazole, GTValues.L) .outputItems(GTBlocks.FUSION_CASING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .addMaterialInfo(true) + .addMaterialInfo(true).addMaterialFluidInfo(true) .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing_mk2").EUt(VA[ZPM]) .inputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()).inputItems(GTBlocks.FUSION_COIL.asStack()) .inputItems(VOLTAGE_COIL_ZPM.asStack(2)).inputItems(FIELD_GENERATOR_LuV).inputItems(plate, Europium, 6) - .inputFluids(Polybenzimidazole.getFluid(GTValues.L * 2)) + .inputFluids(Polybenzimidazole, GTValues.L * 2) .outputItems(GTBlocks.FUSION_CASING_MK2.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); + .duration(100).cleanroom(CleanroomType.CLEANROOM) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing_mk3").EUt(VA[UV]) .inputItems(GTBlocks.MACHINE_CASING_UV.asStack()).inputItems(GTBlocks.FUSION_COIL.asStack()) .inputItems(VOLTAGE_COIL_UV.asStack(2)).inputItems(FIELD_GENERATOR_ZPM).inputItems(plate, Americium, 6) - .inputFluids(Polybenzimidazole.getFluid(GTValues.L * 4)) + .inputFluids(Polybenzimidazole, GTValues.L * 4) .outputItems(GTBlocks.FUSION_CASING_MK3.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); + .duration(100).cleanroom(CleanroomType.CLEANROOM) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_steel_turbine").EUt(16).inputItems(plate, Magnalium, 6) .inputItems(frameGt, BlueSteel, 1).circuitMeta(6) .outputItems(GTBlocks.CASING_STEEL_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_stainless_steel_turbine").EUt(16) .inputItems(GTBlocks.CASING_STEEL_TURBINE.asStack()).inputItems(plate, StainlessSteel, 6).circuitMeta(6) .outputItems(GTBlocks.CASING_STAINLESS_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_titanium_turbine").EUt(16) .inputItems(GTBlocks.CASING_STEEL_TURBINE.asStack()).inputItems(plate, Titanium, 6).circuitMeta(6) .outputItems(GTBlocks.CASING_TITANIUM_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_tungstensteel_turbine").EUt(16) .inputItems(GTBlocks.CASING_STEEL_TURBINE.asStack()).inputItems(plate, TungstenSteel, 6).circuitMeta(6) .outputItems( GTBlocks.CASING_TUNGSTENSTEEL_TURBINE.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(50).save(provider); + .duration(50) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("plascrete").EUt(48).inputItems(frameGt, Steel) - .inputItems(plate, Polyethylene, 6).inputFluids(Concrete.getFluid(L)) - .outputItems(GTBlocks.PLASTCRETE.asStack(2)).duration(200).save(provider); + .inputItems(plate, Polyethylene, 6).inputFluids(Concrete, L) + .outputItems(GTBlocks.PLASTCRETE.asStack(2)).duration(200) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("cleanroom_glass").EUt(48).inputItems(frameGt, Steel) - .inputItems(plate, Polyethylene, 6).inputFluids(Glass.getFluid(L)) - .outputItems(GTBlocks.CLEANROOM_GLASS.asStack(2)).duration(200).save(provider); + .inputItems(plate, Polyethylene, 6).inputFluids(Glass, L) + .outputItems(GTBlocks.CLEANROOM_GLASS.asStack(2)).duration(200) + .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); // If these recipes are changed, change the values in MaterialInfoLoader.java ASSEMBLER_RECIPES.recipeBuilder("hull_ulv").duration(25).EUt(16) .inputItems(GTBlocks.MACHINE_CASING_ULV.asStack()).inputItems(cableGtSingle, RedAlloy, 2) - .inputFluids(Polyethylene.getFluid(L * 2)).outputItems(GTMachines.HULL[0]).save(provider); + .inputFluids(Polyethylene, L * 2).outputItems(GTMachines.HULL[ULV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_lv").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_LV.asStack()) - .inputItems(cableGtSingle, Tin, 2).inputFluids(Polyethylene.getFluid(L * 2)) - .outputItems(GTMachines.HULL[1]).save(provider); + .inputItems(cableGtSingle, Tin, 2).inputFluids(Polyethylene, L * 2) + .outputItems(GTMachines.HULL[LV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_mv").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_MV.asStack()) - .inputItems(cableGtSingle, Copper, 2).inputFluids(Polyethylene.getFluid(L * 2)) - .outputItems(GTMachines.HULL[2]).save(provider); + .inputItems(cableGtSingle, Copper, 2).inputFluids(Polyethylene, L * 2) + .outputItems(GTMachines.HULL[MV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_mv_annealed").duration(50).EUt(16) .inputItems(GTBlocks.MACHINE_CASING_MV.asStack()).inputItems(cableGtSingle, AnnealedCopper, 2) - .inputFluids(Polyethylene.getFluid(L * 2)).outputItems(GTMachines.HULL[2]).save(provider); + .inputFluids(Polyethylene, L * 2).outputItems(GTMachines.HULL[MV]).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_hv").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_HV.asStack()) - .inputItems(cableGtSingle, Gold, 2).inputFluids(Polyethylene.getFluid(L * 2)) - .outputItems(GTMachines.HULL[3]).save(provider); + .inputItems(cableGtSingle, Gold, 2).inputFluids(Polyethylene, L * 2) + .outputItems(GTMachines.HULL[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_ev").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_EV.asStack()) - .inputItems(cableGtSingle, Aluminium, 2).inputFluids(Polyethylene.getFluid(L * 2)) - .outputItems(GTMachines.HULL[4]).save(provider); + .inputItems(cableGtSingle, Aluminium, 2).inputFluids(Polyethylene, L * 2) + .outputItems(GTMachines.HULL[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_iv").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_IV.asStack()) - .inputItems(cableGtSingle, Platinum, 2).inputFluids(Polytetrafluoroethylene.getFluid(L * 2)) - .outputItems(GTMachines.HULL[5]).save(provider); + .inputItems(cableGtSingle, Platinum, 2).inputFluids(Polytetrafluoroethylene, L * 2) + .outputItems(GTMachines.HULL[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_luv").duration(50).EUt(16) .inputItems(GTBlocks.MACHINE_CASING_LuV.asStack()).inputItems(cableGtSingle, NiobiumTitanium, 2) - .inputFluids(Polytetrafluoroethylene.getFluid(L * 2)).outputItems(GTMachines.HULL[6]).save(provider); + .inputFluids(Polytetrafluoroethylene, L * 2).outputItems(GTMachines.HULL[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_zpm").duration(50).EUt(16) .inputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()).inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(Polybenzimidazole.getFluid(L * 2)).outputItems(GTMachines.HULL[7]).save(provider); + .inputFluids(Polybenzimidazole, L * 2).outputItems(GTMachines.HULL[ZPM]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_uv").duration(50).EUt(16).inputItems(GTBlocks.MACHINE_CASING_UV.asStack()) - .inputItems(cableGtSingle, YttriumBariumCuprate, 2).inputFluids(Polybenzimidazole.getFluid(L * 2)) - .outputItems(GTMachines.HULL[8]).save(provider); + .inputItems(cableGtSingle, YttriumBariumCuprate, 2).inputFluids(Polybenzimidazole, L * 2) + .outputItems(GTMachines.HULL[UV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hull_uhv").duration(50).EUt(16) .inputItems(GTBlocks.MACHINE_CASING_UHV.asStack()).inputItems(cableGtSingle, Europium, 2) - .inputFluids(Polybenzimidazole.getFluid(L * 2)).outputItems(GTMachines.HULL[9]).save(provider); + .inputFluids(Polybenzimidazole, L * 2).outputItems(GTMachines.HULL[UHV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hopper_iron").EUt(2).inputItems(Tags.Items.CHESTS_WOODEN) - .inputItems(plate, Iron, 5).outputItems(new ItemStack(Blocks.HOPPER)).duration(800).save(provider); + .inputItems(plate, Iron, 5).outputItems(new ItemStack(Blocks.HOPPER)).duration(800) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hopper_wrought_iron").EUt(2).inputItems(Tags.Items.CHESTS_WOODEN) .inputItems(plate, WroughtIron, 5).outputItems(new ItemStack(Blocks.HOPPER)).duration(800) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("wooden_crate").EUt(16).inputItems(ItemTags.PLANKS, 4) - .inputItems(screw, Iron, 4).outputItems(WOODEN_CRATE).duration(100).circuitMeta(5).save(provider); + .inputItems(screw, Iron, 4).outputItems(WOODEN_CRATE).duration(100).circuitMeta(5) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("bronze_crate").EUt(16).inputItems(rodLong, Bronze, 4) - .inputItems(plate, Bronze, 4).outputItems(BRONZE_CRATE).duration(200).circuitMeta(1).save(provider); + .inputItems(plate, Bronze, 4).outputItems(BRONZE_CRATE).duration(200).circuitMeta(1) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("steel_crate").EUt(16).inputItems(rodLong, Steel, 4).inputItems(plate, Steel, 4) - .outputItems(STEEL_CRATE).duration(200).circuitMeta(1).save(provider); + .outputItems(STEEL_CRATE).duration(200).circuitMeta(1) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("aluminium_crate").EUt(16).inputItems(rodLong, Aluminium, 4) .inputItems(plate, Aluminium, 4).outputItems(ALUMINIUM_CRATE).duration(200).circuitMeta(1) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("stainless_steel_crate").EUt(16).inputItems(rodLong, StainlessSteel, 4) .inputItems(plate, StainlessSteel, 4).outputItems(STAINLESS_STEEL_CRATE).circuitMeta(1).duration(200) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("titanium_crate").EUt(16).inputItems(rodLong, Titanium, 4) - .inputItems(plate, Titanium, 4).outputItems(TITANIUM_CRATE).duration(200).circuitMeta(1).save(provider); + .inputItems(plate, Titanium, 4).outputItems(TITANIUM_CRATE).duration(200).circuitMeta(1) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("tungstensteel_crate").EUt(16).inputItems(rodLong, TungstenSteel, 4) .inputItems(plate, TungstenSteel, 4).outputItems(TUNGSTENSTEEL_CRATE).duration(200).circuitMeta(1) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("wood_barrel").EUt(16).inputItems(ItemTags.PLANKS, 4) - .inputItems(rodLong, Iron, 2).outputItems(WOODEN_DRUM).duration(200).circuitMeta(2).save(provider); + .inputItems(rodLong, Iron, 2).outputItems(WOODEN_DRUM).duration(200).circuitMeta(2) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("bronze_drum").EUt(16).inputItems(rodLong, Bronze, 2) - .inputItems(plate, Bronze, 4).outputItems(BRONZE_DRUM).duration(200).circuitMeta(2).save(provider); + .inputItems(plate, Bronze, 4).outputItems(BRONZE_DRUM).duration(200).circuitMeta(2) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("steel_drum").EUt(16).inputItems(rodLong, Steel, 2).inputItems(plate, Steel, 4) - .outputItems(STEEL_DRUM).duration(200).circuitMeta(2).save(provider); + .outputItems(STEEL_DRUM).duration(200).circuitMeta(2) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("aluminium_drum").EUt(16).inputItems(rodLong, Aluminium, 2) .inputItems(plate, Aluminium, 4).outputItems(ALUMINIUM_DRUM).duration(200).circuitMeta(2) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("stainless_steel_drum").EUt(16).inputItems(rodLong, StainlessSteel, 2) .inputItems(plate, StainlessSteel, 4).outputItems(STAINLESS_STEEL_DRUM).duration(200).circuitMeta(2) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("gold_drum").EUt(16).inputItems(rodLong, Gold, 2).inputItems(plate, Gold, 4) - .outputItems(GOLD_DRUM).duration(200).circuitMeta(2).save(provider); + .outputItems(GOLD_DRUM).duration(200).circuitMeta(2) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("titanium_drum").EUt(16).inputItems(rodLong, Titanium, 2) - .inputItems(plate, Titanium, 4).outputItems(TITANIUM_DRUM).duration(200).circuitMeta(2).save(provider); + .inputItems(plate, Titanium, 4).outputItems(TITANIUM_DRUM).duration(200).circuitMeta(2) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("tungstensteel_drum").EUt(16).inputItems(rodLong, TungstenSteel, 2) .inputItems(plate, TungstenSteel, 4).outputItems(TUNGSTENSTEEL_DRUM).duration(200).circuitMeta(2) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("duct_tape_polyethylene").EUt(VA[LV]).inputItems(foil, Polyethylene, 4) .inputItems(CARBON_MESH).inputFluids(Polyethylene.getFluid(288)).outputItems(DUCT_TAPE).duration(100) @@ -899,31 +985,36 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(plateDouble, Steel, 2) .inputItems(ring, Bronze, 2) .outputItems(FLUID_CELL_LARGE_STEEL) - .duration(200).EUt(VA[LV]).save(provider); + .duration(200).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fluid_cell_large_aluminium") .inputItems(plateDouble, Aluminium, 2) .inputItems(ring, Silver, 2) .outputItems(FLUID_CELL_LARGE_ALUMINIUM) - .duration(200).EUt(64).save(provider); + .duration(200).EUt(64) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fluid_cell_large_stainless_steel") .inputItems(plateDouble, StainlessSteel, 3) .inputItems(ring, Electrum, 3) .outputItems(FLUID_CELL_LARGE_STAINLESS_STEEL) - .duration(200).EUt(VA[MV]).save(provider); + .duration(200).EUt(VA[MV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fluid_cell_large_titanium") .inputItems(plateDouble, Titanium, 3) .inputItems(ring, RoseGold, 3) .outputItems(FLUID_CELL_LARGE_TITANIUM) - .duration(200).EUt(256).save(provider); + .duration(200).EUt(256) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fluid_cell_large_tungstensteel") .inputItems(plateDouble, TungstenSteel, 4) .inputItems(ring, Platinum, 4) .outputItems(FLUID_CELL_LARGE_TUNGSTEN_STEEL) - .duration(200).EUt(VA[HV]).save(provider); + .duration(200).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); } private static void registerBlastFurnaceRecipes(Consumer provider) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java index 88fde2cacd..c9c85a7fc8 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java @@ -42,7 +42,8 @@ public static void init(Consumer provider) { .inputItems(FLUID_IMPORT_HATCH[EV]) .inputItems(ELECTRIC_PUMP_EV) .outputItems(RESERVOIR_HATCH) - .duration(300).EUt(VA[EV]).save(provider); + .duration(300).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); registerLaserRecipes(provider); @@ -59,7 +60,8 @@ public static void init(Consumer provider) { .inputItems(spring, Lead, 2) .inputItems(VOLTAGE_COIL_ULV) .outputItems(ENERGY_OUTPUT_HATCH[ULV]) - .duration(200).EUt(VA[ULV]).save(provider); + .duration(200).EUt(VA[ULV]) + .addMaterialInfo(true).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, true, "dynamo_hatch_lv", ENERGY_OUTPUT_HATCH[LV].asStack(), " V ", "SHS", " ", @@ -72,7 +74,8 @@ public static void init(Consumer provider) { .inputItems(spring, Tin, 2) .inputItems(VOLTAGE_COIL_LV) .outputItems(ENERGY_OUTPUT_HATCH[LV]) - .duration(200).EUt(VA[LV]).save(provider); + .duration(200).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, true, "dynamo_hatch_mv", ENERGY_OUTPUT_HATCH[MV].asStack(), " V ", "SHS", " P ", @@ -87,34 +90,38 @@ public static void init(Consumer provider) { .inputItems(ULTRA_LOW_POWER_INTEGRATED_CIRCUIT) .inputItems(VOLTAGE_COIL_MV) .outputItems(ENERGY_OUTPUT_HATCH[MV]) - .duration(200).EUt(VA[MV]).save(provider); + .duration(200).EUt(VA[MV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("dynamo_hatch_hv") .inputItems(HULL[HV]) .inputItems(spring, Gold, 2) .inputItems(LOW_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_HV) - .inputFluids(SodiumPotassium.getFluid(1000)) + .inputFluids(SodiumPotassium, 1000) .outputItems(ENERGY_OUTPUT_HATCH[HV]) - .duration(200).EUt(VA[HV]).save(provider); + .duration(200).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("dynamo_hatch_ev") .inputItems(HULL[EV]) .inputItems(spring, Aluminium, 2) .inputItems(POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_EV) - .inputFluids(SodiumPotassium.getFluid(2000)) + .inputFluids(SodiumPotassium, 2000) .outputItems(ENERGY_OUTPUT_HATCH[EV]) - .duration(200).EUt(VA[EV]).save(provider); + .duration(200).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("dynamo_hatch_iv") .inputItems(HULL[IV]) .inputItems(spring, Tungsten, 2) .inputItems(HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_IV) - .inputFluids(SodiumPotassium.getFluid(3000)) + .inputFluids(SodiumPotassium, 3000) .outputItems(ENERGY_OUTPUT_HATCH[IV]) - .duration(200).EUt(VA[IV]).save(provider); + .duration(200).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("dynamo_hatch_luv") .inputItems(HULL[LuV]) @@ -122,10 +129,11 @@ public static void init(Consumer provider) { .inputItems(HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.LuV_CIRCUITS) .inputItems(VOLTAGE_COIL_LuV, 2) - .inputFluids(SodiumPotassium.getFluid(6000)) - .inputFluids(SolderingAlloy.getFluid(720)) + .inputFluids(SodiumPotassium, 6000) + .inputFluids(SolderingAlloy, 5 * L) .outputItems(ENERGY_OUTPUT_HATCH[LuV]) - .duration(400).EUt(VA[LuV]).save(provider); + .duration(400).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("dynamo_hatch_zpm") .inputItems(HULL[ZPM]) @@ -133,8 +141,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.ZPM_CIRCUITS) .inputItems(VOLTAGE_COIL_ZPM, 2) - .inputFluids(SodiumPotassium.getFluid(8000)) - .inputFluids(SolderingAlloy.getFluid(1440)) + .inputFluids(SodiumPotassium, 8000) + .inputFluids(SolderingAlloy, 10 * L) .outputItems(ENERGY_OUTPUT_HATCH[ZPM]) .stationResearch(b -> b .researchStack(ENERGY_OUTPUT_HATCH[LuV].asStack()) @@ -147,8 +155,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.UV_CIRCUITS) .inputItems(VOLTAGE_COIL_UV, 2) - .inputFluids(SodiumPotassium.getFluid(10000)) - .inputFluids(SolderingAlloy.getFluid(2880)) + .inputFluids(SodiumPotassium, 10000) + .inputFluids(SolderingAlloy, 20 * L) .outputItems(ENERGY_OUTPUT_HATCH[UV]) .stationResearch(b -> b .researchStack(ENERGY_OUTPUT_HATCH[ZPM].asStack()) @@ -162,8 +170,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.UHV_CIRCUITS) .inputItems(wireGtDouble, RutheniumTriniumAmericiumNeutronate, 2) - .inputFluids(SodiumPotassium.getFluid(12000)) - .inputFluids(SolderingAlloy.getFluid(5760)) + .inputFluids(SodiumPotassium, 12000) + .inputFluids(SolderingAlloy, 40 * L) .outputItems(ENERGY_OUTPUT_HATCH[UHV]) .stationResearch(b -> b .researchStack(ENERGY_OUTPUT_HATCH[UV].asStack()) @@ -184,7 +192,8 @@ public static void init(Consumer provider) { .inputItems(cableGtSingle, RedAlloy, 2) .inputItems(VOLTAGE_COIL_ULV) .outputItems(ENERGY_INPUT_HATCH[ULV]) - .duration(200).EUt(VA[ULV]).save(provider); + .duration(200).EUt(VA[ULV]) + .addMaterialInfo(true).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, true, "energy_hatch_lv", ENERGY_INPUT_HATCH[LV].asStack(), " V ", "CHC", " ", @@ -197,7 +206,8 @@ public static void init(Consumer provider) { .inputItems(cableGtSingle, Tin, 2) .inputItems(VOLTAGE_COIL_LV) .outputItems(ENERGY_INPUT_HATCH[LV]) - .duration(200).EUt(VA[LV]).save(provider); + .duration(200).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); VanillaRecipeHelper.addShapedRecipe(provider, true, "energy_hatch_mv", ENERGY_INPUT_HATCH[MV].asStack(), " V ", "CHC", " P ", @@ -212,34 +222,38 @@ public static void init(Consumer provider) { .inputItems(ULTRA_LOW_POWER_INTEGRATED_CIRCUIT) .inputItems(VOLTAGE_COIL_MV) .outputItems(ENERGY_INPUT_HATCH[MV]) - .duration(200).EUt(VA[MV]).save(provider); + .duration(200).EUt(VA[MV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("energy_hatch_hv") .inputItems(HULL[HV]) .inputItems(cableGtSingle, Gold, 2) .inputItems(LOW_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_HV) - .inputFluids(SodiumPotassium.getFluid(1000)) + .inputFluids(SodiumPotassium, 1000) .outputItems(ENERGY_INPUT_HATCH[HV]) - .duration(200).EUt(VA[HV]).save(provider); + .duration(200).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("energy_hatch_ev") .inputItems(HULL[EV]) .inputItems(cableGtSingle, Aluminium, 2) .inputItems(POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_EV) - .inputFluids(SodiumPotassium.getFluid(2000)) + .inputFluids(SodiumPotassium, 2000) .outputItems(ENERGY_INPUT_HATCH[EV]) - .duration(200).EUt(VA[EV]).save(provider); + .duration(200).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("energy_hatch_iv") .inputItems(HULL[IV]) .inputItems(cableGtSingle, Tungsten, 2) .inputItems(HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(VOLTAGE_COIL_IV) - .inputFluids(SodiumPotassium.getFluid(3000)) + .inputFluids(SodiumPotassium, 3000) .outputItems(ENERGY_INPUT_HATCH[IV]) - .duration(200).EUt(VA[IV]).save(provider); + .duration(200).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("energy_hatch_luv") .inputItems(HULL[LuV]) @@ -247,8 +261,8 @@ public static void init(Consumer provider) { .inputItems(HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.LuV_CIRCUITS) .inputItems(VOLTAGE_COIL_LuV, 2) - .inputFluids(SodiumPotassium.getFluid(6000)) - .inputFluids(SolderingAlloy.getFluid(720)) + .inputFluids(SodiumPotassium, 6000) + .inputFluids(SolderingAlloy, 5 * L) .outputItems(ENERGY_INPUT_HATCH[LuV]) .scannerResearch(b -> b .researchStack(ENERGY_INPUT_HATCH[IV].asStack()) @@ -261,8 +275,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.ZPM_CIRCUITS) .inputItems(VOLTAGE_COIL_ZPM, 2) - .inputFluids(SodiumPotassium.getFluid(8000)) - .inputFluids(SolderingAlloy.getFluid(1440)) + .inputFluids(SodiumPotassium, 8000) + .inputFluids(SolderingAlloy, 10 * L) .outputItems(ENERGY_INPUT_HATCH[ZPM]) .stationResearch(b -> b .researchStack(ENERGY_INPUT_HATCH[LuV].asStack()) @@ -275,8 +289,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.UV_CIRCUITS) .inputItems(VOLTAGE_COIL_UV, 2) - .inputFluids(SodiumPotassium.getFluid(10000)) - .inputFluids(SolderingAlloy.getFluid(2880)) + .inputFluids(SodiumPotassium, 10000) + .inputFluids(SolderingAlloy, 20 * L) .outputItems(ENERGY_INPUT_HATCH[UV]) .stationResearch(b -> b .researchStack(ENERGY_INPUT_HATCH[ZPM].asStack()) @@ -290,8 +304,8 @@ public static void init(Consumer provider) { .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) .inputItems(CustomTags.UHV_CIRCUITS) .inputItems(wireGtDouble, RutheniumTriniumAmericiumNeutronate, 2) - .inputFluids(SodiumPotassium.getFluid(12000)) - .inputFluids(SolderingAlloy.getFluid(5760)) + .inputFluids(SodiumPotassium, 12000) + .inputFluids(SolderingAlloy, 40 * L) .outputItems(ENERGY_INPUT_HATCH[UHV]) .stationResearch(b -> b .researchStack(ENERGY_INPUT_HATCH[UV].asStack()) @@ -315,9 +329,10 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.CABLE_HEX.getIngredient(tier)) .inputItems(springSmall, materialPrime) .inputItems(spring, materialSecond) - .inputFluids(Lubricant.getFluid(2000)) + .inputFluids(Lubricant, 2000) .outputItems(hatch) - .duration(100).EUt(VA[tier]).save(provider); + .duration(100).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 4A Energy Hatches @@ -330,7 +345,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_QUAD.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 2) .outputItems(hatch) - .duration(100).EUt(VA[tier]).save(provider); + .duration(100).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 16A Energy Hatches @@ -351,7 +367,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_OCT.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 4) .outputItems(hatch) - .duration(200).EUt(VA[tier]).save(provider); + .duration(200).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 64A Substation Energy Hatches @@ -372,7 +389,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_HEX.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 6) .outputItems(hatch) - .duration(400).EUt(VA[tier]).save(provider); + .duration(400).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 4A Dynamo Hatches @@ -385,7 +403,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_QUAD.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 2) .outputItems(hatch) - .duration(100).EUt(VA[tier - 1]).save(provider); + .duration(100).EUt(VA[tier - 1]) + .addMaterialInfo(true).save(provider); } // 16A Dynamo Hatches @@ -406,7 +425,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_OCT.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 4) .outputItems(hatch) - .duration(200).EUt(VA[tier]).save(provider); + .duration(200).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 64A Substation Dynamo Hatches @@ -428,7 +448,8 @@ public static void init(Consumer provider) { .inputItems(CraftingComponent.WIRE_HEX.getIngredient(tier), 2) .inputItems(CraftingComponent.PLATE.getIngredient(tier), 6) .outputItems(hatch) - .duration(400).EUt(VA[tier]).save(provider); + .duration(400).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // Maintenance Hatch @@ -437,7 +458,8 @@ public static void init(Consumer provider) { .inputItems(HULL[LV]) .circuitMeta(8) .outputItems(MAINTENANCE_HATCH) - .duration(100).EUt(VA[LV]).save(provider); + .duration(100).EUt(VA[LV]) + .addMaterialInfo(true).save(provider); // Multiblock Miners @@ -488,7 +510,8 @@ public static void init(Consumer provider) { .inputItems(gear, VanadiumSteel, 4) .circuitMeta(2) .outputItems(FLUID_DRILLING_RIG[MV]) - .duration(400).EUt(VA[MV]).save(provider); + .duration(400).EUt(VA[MV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hv_fluid_drilling_rig") .inputItems(HULL[EV]) @@ -499,7 +522,8 @@ public static void init(Consumer provider) { .inputItems(gear, TungstenCarbide, 4) .circuitMeta(2) .outputItems(FLUID_DRILLING_RIG[HV]) - .duration(400).EUt(VA[EV]).save(provider); + .duration(400).EUt(VA[EV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("ev_fluid_drilling_rig") .inputItems(HULL[LuV]) @@ -510,7 +534,8 @@ public static void init(Consumer provider) { .inputItems(gear, Osmiridium, 4) .circuitMeta(2) .outputItems(FLUID_DRILLING_RIG[EV]) - .duration(400).EUt(VA[LuV]).save(provider); + .duration(400).EUt(VA[LuV]) + .addMaterialInfo(true).save(provider); // Long Distance Pipes ASSEMBLER_RECIPES.recipeBuilder("long_distance_item_endpoint") @@ -518,38 +543,38 @@ public static void init(Consumer provider) { .inputItems(plate, Steel, 8) .inputItems(gear, Steel, 2) .circuitMeta(1) - .inputFluids(SolderingAlloy.getFluid(L / 2)) + .inputFluids(SolderingAlloy, L / 2) .outputItems(LONG_DIST_ITEM_ENDPOINT, 2) .duration(400).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("long_distance_fluid_endpoint") .inputItems(pipeLargeFluid, Bronze, 2) .inputItems(plate, Steel, 8) .inputItems(gear, Steel, 2) .circuitMeta(1) - .inputFluids(SolderingAlloy.getFluid(L / 2)) + .inputFluids(SolderingAlloy, L / 2) .outputItems(LONG_DIST_FLUID_ENDPOINT, 2) .duration(400).EUt(16) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("long_distance_item_pipe") .inputItems(pipeLargeItem, Tin, 2) .inputItems(plate, Steel, 8) .circuitMeta(2) - .inputFluids(SolderingAlloy.getFluid(L / 2)) + .inputFluids(SolderingAlloy, L / 2) .outputItems(LD_ITEM_PIPE, 64) .duration(600).EUt(24) - .save(provider); + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("long_distance_fluid_pipe") .inputItems(pipeLargeFluid, Bronze, 2) .inputItems(plate, Steel, 8) .circuitMeta(2) - .inputFluids(SolderingAlloy.getFluid(L / 2)) + .inputFluids(SolderingAlloy, L / 2) .outputItems(LD_FLUID_PIPE, 64) .duration(600).EUt(24) - .save(provider); + .addMaterialInfo(true).save(provider); // ME Parts @@ -563,28 +588,32 @@ public static void init(Consumer provider) { .inputItems(meInterface.copy()) .inputItems(accelerationCard.copy()) .outputItems(GTAEMachines.FLUID_EXPORT_HATCH_ME) - .duration(300).EUt(VA[HV]).save(provider); + .duration(300).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("me_import_hatch") .inputItems(FLUID_IMPORT_HATCH[EV]) .inputItems(meInterface.copy()) .inputItems(accelerationCard.copy()) .outputItems(GTAEMachines.FLUID_IMPORT_HATCH_ME) - .duration(300).EUt(VA[HV]).save(provider); + .duration(300).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("me_export_bus") .inputItems(ITEM_EXPORT_BUS[EV]) .inputItems(meInterface.copy()) .inputItems(accelerationCard.copy()) .outputItems(GTAEMachines.ITEM_EXPORT_BUS_ME) - .duration(300).EUt(VA[HV]).save(provider); + .duration(300).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("me_import_bus") .inputItems(ITEM_IMPORT_BUS[EV]) .inputItems(meInterface.copy()) .inputItems(accelerationCard.copy()) .outputItems(GTAEMachines.ITEM_IMPORT_BUS_ME) - .duration(300).EUt(VA[HV]).save(provider); + .duration(300).EUt(VA[HV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("me_stocking_import_bus") .inputItems(ITEM_IMPORT_BUS[IV]) @@ -593,7 +622,8 @@ public static void init(Consumer provider) { .inputItems(SENSOR_IV) .inputItems(accelerationCard.copyWithCount(4)) .outputItems(GTAEMachines.STOCKING_IMPORT_BUS_ME) - .duration(300).EUt(VA[IV]).save(provider); + .duration(300).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("me_stocking_import_hatch") .inputItems(FLUID_IMPORT_HATCH[IV]) @@ -602,7 +632,8 @@ public static void init(Consumer provider) { .inputItems(SENSOR_IV) .inputItems(accelerationCard.copyWithCount(4)) .outputItems(GTAEMachines.STOCKING_IMPORT_HATCH_ME) - .duration(300).EUt(VA[IV]).save(provider); + .duration(300).EUt(VA[IV]) + .addMaterialInfo(true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("me_pattern_buffer") .inputItems(DUAL_IMPORT_HATCH[LuV], 1) @@ -615,8 +646,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Europium, 32) .inputItems(wireFine, Europium, 32) .inputItems(wireFine, Europium, 32) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 500) .outputItems(GTAEMachines.ME_PATTERN_BUFFER) .scannerResearch(b -> b.researchStack(DUAL_IMPORT_HATCH[LuV].asStack()) .duration(1200) @@ -630,8 +661,8 @@ public static void init(Consumer provider) { .inputItems(AEBlocks.QUANTUM_RING.asItem(), 2) .inputItems(wireFine, Europium, 32) .inputItems(wireFine, Europium, 32) - .inputFluids(SolderingAlloy.getFluid(L * 4)) - .inputFluids(Lubricant.getFluid(500)) + .inputFluids(SolderingAlloy, L * 4) + .inputFluids(Lubricant, 500) .outputItems(GTAEMachines.ME_PATTERN_BUFFER_PROXY) .stationResearch(b -> b.researchStack(GTAEMachines.ME_PATTERN_BUFFER.asStack()) .CWUt(32)) @@ -653,7 +684,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE.getIngredient(tier), 4) .circuitMeta(1) .outputItems(hatch) - .duration(300).EUt(VA[tier]).save(provider); + .duration(300).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 256A Laser Source Hatches @@ -669,7 +701,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE.getIngredient(tier), 4) .circuitMeta(1) .outputItems(hatch) - .duration(300).EUt(VA[tier]).save(provider); + .duration(300).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 1024A Laser Target Hatches @@ -685,7 +718,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE_DOUBLE.getIngredient(tier), 4) .circuitMeta(2) .outputItems(hatch) - .duration(600).EUt(VA[tier]).save(provider); + .duration(600).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 1024A Laser Source Hatches @@ -701,7 +735,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE_DOUBLE.getIngredient(tier), 4) .circuitMeta(2) .outputItems(hatch) - .duration(600).EUt(VA[tier]).save(provider); + .duration(600).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 4096A Laser Target Hatches @@ -717,7 +752,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE_QUAD.getIngredient(tier), 4) .circuitMeta(3) .outputItems(hatch) - .duration(1200).EUt(VA[tier]).save(provider); + .duration(1200).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } // 4096A Laser Source Hatches @@ -733,7 +769,8 @@ private static void registerLaserRecipes(Consumer provider) { .inputItems(CraftingComponent.CABLE_QUAD.getIngredient(tier), 4) .circuitMeta(3) .outputItems(hatch) - .duration(1200).EUt(VA[tier]).save(provider); + .duration(1200).EUt(VA[tier]) + .addMaterialInfo(true).save(provider); } } } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java index 725a9d5738..e2f536af40 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java @@ -200,6 +200,7 @@ public static void init(Consumer provider) { .inputItems(rotor, Steel) .inputItems(cableGtSingle, Copper, 2) .outputItems(POWER_THRUSTER) + .addMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("power_thruster_advanced").duration(200).EUt(30) @@ -209,6 +210,7 @@ public static void init(Consumer provider) { .inputItems(rotor, Chromium) .inputItems(cableGtSingle, Gold, 2) .outputItems(POWER_THRUSTER_ADVANCED) + .addMaterialInfo(true) .save(provider); // QuarkTech Suite @@ -224,6 +226,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 32) .inputFluids(Titanium.getFluid(L * 10)) .outputItems(QUANTUM_HELMET) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_chestplate").duration(1500).EUt(VA[IV]) @@ -238,6 +242,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 48) .inputFluids(Titanium.getFluid(L * 16)) .outputItems(QUANTUM_CHESTPLATE) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_leggings").duration(1500).EUt(VA[IV]) @@ -252,6 +258,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 40) .inputFluids(Titanium.getFluid(L * 14)) .outputItems(QUANTUM_LEGGINGS) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_boots").duration(1500).EUt(VA[IV]) @@ -266,6 +274,8 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 16) .inputFluids(Titanium.getFluid(L * 8)) .outputItems(QUANTUM_BOOTS) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("quantum_chestplate_advanced").duration(1000).EUt(VA[LuV]) @@ -282,6 +292,8 @@ public static void init(Consumer provider) { .inputItems(ELECTRIC_MOTOR_LuV, 2) .inputItems(screw, HSSS, 8) .outputItems(QUANTUM_CHESTPLATE_ADVANCED) + .addMaterialInfo(true) + .addMaterialFluidInfo(true) .save(provider); // TODO Central monitor @@ -426,6 +438,7 @@ public static void init(Consumer provider) { .inputItems(block, Neutronium, 64) .inputItems(block, Neutronium, 64) .outputItems(NAN_CERTIFICATE) + .addMaterialInfo(true) .duration(Integer.MAX_VALUE).EUt(VA[ULV]).save(provider); // Fertilizer @@ -609,7 +622,8 @@ public static void init(Consumer provider) { .inputItems(rod, Iron) .inputItems(ring, Iron, 2) .outputItems(IRON_MINECART_WHEELS) - .duration(100).EUt(20).save(provider); + .duration(100).EUt(20) + .addMaterialInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("steel_minecart_wheels") .inputItems(rod, Steel) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java index ecc182300e..f769393e40 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java @@ -509,7 +509,7 @@ private static List finalizeOutputs(List materials, in .filter(e -> isAshMaterial(e.getKey())) .sorted(Comparator.comparingLong(e -> -e.getKey().amount())) .map(Entry::getValue) - .collect(Collectors.toList()); + .toList(); List returnValues = temp.entrySet().stream() .sorted(Comparator.comparingLong(e -> -e.getKey().amount())) From a26e00b484e39ba6812de3ff731329662d0428ed Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 21 Dec 2024 23:45:11 -0700 Subject: [PATCH 09/21] merge screrets stuff and fix fluid tags dying --- .../gtceu/api/data/chemical/material/ItemMaterialData.java | 2 +- .../gtceu/data/recipe/generated/PipeRecipeHandler.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java index 813613e9c8..3b984c91bb 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -172,7 +172,7 @@ public static void reinitializeMaterialData(ICondition.IContext context) { } GTMaterialItems.toUnify.forEach(ItemMaterialData::registerMaterialInfoItems); WoodMachineRecipes.registerUnificationInfo(); - resolveFluidMaterialInfos(context); + //resolveFluidMaterialInfos(context); } @ApiStatus.Internal diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java index 7cdf3a4b9b..bd68829447 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/PipeRecipeHandler.java @@ -72,7 +72,7 @@ private static void processRestrictivePipe(TagPrefix pipePrefix, Material materi .save(provider); VanillaRecipeHelper.addShapedRecipe(provider, - FormattingUtil.toLowerCaseUnder(pipePrefix.toString() + "_" + material.getName()), + FormattingUtil.toLowerCaseUnder(pipePrefix + "_" + material.getName()), ChemicalHelper.get(pipePrefix, material), "PR", "Rh", 'P', new MaterialEntry(unrestrictive, material), 'R', ChemicalHelper.get(ring, Iron)); } From 44ea568c44d2293504a01f0f118696db94fc0745 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 21 Dec 2024 23:46:43 -0700 Subject: [PATCH 10/21] spotless --- .../gtceu/api/block/MaterialBlock.java | 1 - .../api/data/chemical/ChemicalHelper.java | 7 +- .../chemical/material/ItemMaterialData.java | 22 +- .../material/stack/ItemMaterialInfo.java | 12 +- .../worldgen/generator/VeinGenerator.java | 6 +- .../gtceu/api/recipe/GTRecipeType.java | 3 +- .../recipe/ingredient/FluidIngredient.java | 1 + .../recipe/ingredient/SizedIngredient.java | 8 +- .../renderer/BlockHighlightRenderer.java | 11 +- .../gregtechceu/gtceu/common/CommonProxy.java | 2 - .../gtceu/common/data/GTBlocks.java | 1 - .../gtceu/common/data/GTItems.java | 2 +- .../gtceu/common/data/GTRecipes.java | 2 +- .../gtceu/data/recipe/MaterialInfoLoader.java | 289 +++++++++--------- .../data/recipe/VanillaRecipeHelper.java | 2 +- .../data/recipe/builder/GTRecipeBuilder.java | 119 ++++---- .../recipe/configurable/RecipeAddition.java | 6 +- .../recipe/generated/OreRecipeHandler.java | 2 +- .../recipe/generated/WireRecipeHandler.java | 6 - .../data/recipe/misc/ComponentRecipes.java | 5 +- .../gtceu/data/recipe/misc/GCYMRecipes.java | 3 +- .../data/recipe/misc/MachineRecipeLoader.java | 19 +- .../recipe/misc/MetaTileEntityLoader.java | 15 +- .../MetaTileEntityMachineRecipeLoader.java | 6 +- .../data/recipe/misc/RecyclingRecipes.java | 2 +- .../data/recipe/misc/StoneMachineRecipes.java | 1 - .../data/recipe/misc/WoodMachineRecipes.java | 2 +- .../gtceu/forge/ForgeCommonEventListener.java | 1 - .../integration/kjs/GregTechKubeJSPlugin.java | 2 +- .../gtceu/utils/SupplierMemoizer.java | 1 + 30 files changed, 284 insertions(+), 275 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java index 06c65f235e..ec684acbcb 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java +++ b/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java @@ -39,7 +39,6 @@ import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FallingBlock; -import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 46a1acc189..2741025563 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -7,17 +7,16 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; - import com.gregtechceu.gtceu.api.recipe.ingredient.SizedIngredient; + import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -27,7 +26,6 @@ import net.minecraft.world.level.material.Fluid; import com.mojang.datafixers.util.Pair; -import net.minecraftforge.common.crafting.conditions.ICondition; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -314,5 +312,4 @@ public static Optional getOrePrefix(BlockState state) { return ItemMaterialData.ORES_INVERSE.entrySet().stream().filter(entry -> entry.getKey().get().equals(state)) .map(Map.Entry::getValue).findFirst(); } - } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java index 3b984c91bb..7726cf425d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -14,11 +14,7 @@ import com.gregtechceu.gtceu.data.tags.TagsHandler; import com.gregtechceu.gtceu.utils.ItemStackHashStrategy; import com.gregtechceu.gtceu.utils.SupplierMemoizer; -import com.mojang.datafixers.util.Pair; -import com.tterrag.registrate.util.entry.BlockEntry; -import com.tterrag.registrate.util.entry.ItemEntry; -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenCustomHashMap; + import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.data.recipes.FinishedRecipe; @@ -33,6 +29,12 @@ import net.minecraft.world.level.material.Fluid; import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.registries.RegistryObject; + +import com.mojang.datafixers.util.Pair; +import com.tterrag.registrate.util.entry.BlockEntry; +import com.tterrag.registrate.util.entry.ItemEntry; +import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenCustomHashMap; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -43,7 +45,6 @@ public class ItemMaterialData { - /** Used for custom material data for items that do not fall into the normal "prefix, material" pair */ public static final Map ITEM_MATERIAL_INFO = new ConcurrentHashMap<>(); /** Mapping of an item to a "prefix, material" pair */ @@ -60,7 +61,8 @@ public class ItemMaterialData { /** Mapping of stone type blockState to "prefix, material" */ public static final Map, TagPrefix> ORES_INVERSE = new ConcurrentHashMap<>(); - public static final Map> UNRESOLVED_ITEM_MATERIAL_INFO = new Object2ReferenceOpenCustomHashMap<>(ItemStackHashStrategy.comparingAllButCount()); + public static final Map> UNRESOLVED_ITEM_MATERIAL_INFO = new Object2ReferenceOpenCustomHashMap<>( + ItemStackHashStrategy.comparingAllButCount()); public static void registerMaterialInfo(ItemLike item, ItemMaterialInfo materialInfo) { ITEM_MATERIAL_INFO.put(item, materialInfo); @@ -172,7 +174,7 @@ public static void reinitializeMaterialData(ICondition.IContext context) { } GTMaterialItems.toUnify.forEach(ItemMaterialData::registerMaterialInfoItems); WoodMachineRecipes.registerUnificationInfo(); - //resolveFluidMaterialInfos(context); + // resolveFluidMaterialInfos(context); } @ApiStatus.Internal @@ -212,7 +214,8 @@ public static void resolveFluidMaterialInfos(ICondition.IContext context) { FluidStorageKey.allKeys().stream() .map(property::get) .filter(Objects::nonNull) - .map(f -> Pair.of(f, new ResourceLocation("forge", BuiltInRegistries.FLUID.getKey(f).getPath()))) + .map(f -> Pair.of(f, + new ResourceLocation("forge", BuiltInRegistries.FLUID.getKey(f).getPath()))) .filter(pair -> allFluidTags.containsKey(pair.getSecond())) .forEach(pair -> { allFluidTags.remove(pair.getSecond()); @@ -221,5 +224,4 @@ public static void resolveFluidMaterialInfos(ICondition.IContext context) { } } } - } diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java index af880e6459..e6102b75ec 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/ItemMaterialInfo.java @@ -1,11 +1,11 @@ package com.gregtechceu.gtceu.api.data.chemical.material.stack; -import com.google.common.collect.ImmutableList; import com.gregtechceu.gtceu.api.data.chemical.material.Material; + +import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.objects.Reference2LongLinkedOpenHashMap; import java.util.ArrayList; -import java.util.Arrays; import java.util.Comparator; import java.util.List; @@ -15,14 +15,14 @@ public class ItemMaterialInfo { private List sortedMaterials = new ArrayList<>(); public ItemMaterialInfo(MaterialStack... materialStacks) { - for(var mat : materialStacks) { + for (var mat : materialStacks) { materials.merge(mat.material(), mat.amount(), Long::sum); } setSortedMaterials(); } public ItemMaterialInfo(List materialStacks) { - for(var mat : materialStacks) { + for (var mat : materialStacks) { materials.merge(mat.material(), mat.amount(), Long::sum); } setSortedMaterials(); @@ -43,7 +43,7 @@ public ImmutableList getMaterials() { } public void addMaterialStacks(List stacks) { - for(var mat : stacks) { + for (var mat : stacks) { materials.merge(mat.material(), mat.amount(), Long::sum); } setSortedMaterials(); @@ -51,7 +51,7 @@ public void addMaterialStacks(List stacks) { private void setSortedMaterials() { sortedMaterials.clear(); - for(var m : materials.keySet()) { + for (var m : materials.keySet()) { sortedMaterials.add(new MaterialStack(m, materials.getLong(m))); } sortedMaterials.sort(Comparator.comparingLong(MaterialStack::amount)); diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java b/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java index 3b2b22ff28..c9d6f8a31f 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/worldgen/generator/VeinGenerator.java @@ -72,11 +72,13 @@ public List> getValidMaterialsChances() { return getAllEntries().stream() .filter(entry -> entry.getKey() .map(state -> ChemicalHelper.getMaterialStack(state.getBlock()) != null ? - ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, Function.identity()) != + ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, + Function.identity()) != null) .map(entry -> Map.entry(entry.getValue(), entry.getKey() .map(state -> ChemicalHelper.getMaterialStack(state.getBlock()) != null ? - ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, Function.identity()))) + ChemicalHelper.getMaterialStack(state.getBlock()).material() : null, + Function.identity()))) .collect(Collectors.toList()); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java index 337584ec91..1beba8f242 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipeType.java @@ -276,7 +276,8 @@ public GTRecipeBuilder recipeBuilder(String id, Object... append) { } public GTRecipeBuilder recipeBuilder(MaterialEntry entry, Object... append) { - return recipeBuilder(GTCEu.id(entry.tagPrefix() + (entry.material() == null ? "" : "_" + entry.material().getName())), + return recipeBuilder( + GTCEu.id(entry.tagPrefix() + (entry.material() == null ? "" : "_" + entry.material().getName())), append); } diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java index b14fc0b782..247a329efa 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java @@ -1,6 +1,7 @@ package com.gregtechceu.gtceu.api.recipe.ingredient; import com.gregtechceu.gtceu.common.data.GTRecipes; + import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java index 9fe04482f2..07eb281314 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/SizedIngredient.java @@ -1,11 +1,10 @@ package com.gregtechceu.gtceu.api.recipe.ingredient; -import com.google.common.collect.Lists; import com.gregtechceu.gtceu.GTCEu; - import com.gregtechceu.gtceu.common.data.GTRecipes; import com.gregtechceu.gtceu.core.mixins.IngredientAccessor; import com.gregtechceu.gtceu.core.mixins.TagValueAccessor; + import net.minecraft.core.Holder; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.FriendlyByteBuf; @@ -18,6 +17,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.crafting.IIngredientSerializer; +import com.google.common.collect.Lists; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import it.unimi.dsi.fastutil.ints.IntList; @@ -171,11 +171,11 @@ public ItemStack[] getTagValueItems(Ingredient.TagValue tagValue) { List list = Lists.newArrayList(); if (GTRecipes.RECIPE_CONTEXT != null) { - for(Holder holder : GTRecipes.RECIPE_CONTEXT.getTag(tag)) { + for (Holder holder : GTRecipes.RECIPE_CONTEXT.getTag(tag)) { list.add(new ItemStack(holder)); } } else { - for(Holder holder : BuiltInRegistries.ITEM.getTagOrEmpty(tag)) { + for (Holder holder : BuiltInRegistries.ITEM.getTagOrEmpty(tag)) { list.add(new ItemStack(holder)); } } diff --git a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java index 41408b5a5b..a5cdff8f1e 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java @@ -10,7 +10,6 @@ import com.gregtechceu.gtceu.api.item.tool.IToolGridHighlight; import com.gregtechceu.gtceu.api.item.tool.ToolHelper; import com.gregtechceu.gtceu.api.pipenet.IPipeType; -import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.item.CoverPlaceBehavior; import com.gregtechceu.gtceu.common.item.tool.rotation.CustomBlockRotations; import com.gregtechceu.gtceu.core.mixins.GuiGraphicsAccessor; @@ -41,7 +40,6 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import org.joml.Matrix4f; import org.joml.Quaternionf; -import org.joml.Vector3d; import org.joml.Vector3f; import java.util.Set; @@ -69,7 +67,7 @@ public static void renderBlockHighlight(PoseStack poseStack, Camera camera, Bloc var block = level.getBlockState(blockPos); - if(block.getBlock() instanceof MaterialBlock) { + if (block.getBlock() instanceof MaterialBlock) { rColour = gColour = 0; bColour = 0; alpha = 0.55f; @@ -82,8 +80,8 @@ public static void renderBlockHighlight(PoseStack poseStack, Camera camera, Bloc RenderSystem.enableBlend(); var mat = poseStack.last().pose(); var box = new AABB(blockPos); - float minX = (float)box.minX, minY = (float)box.minY, minZ = (float)box.minZ, - maxX = (float)box.maxX, maxY = (float)box.maxY, maxZ = (float)box.maxZ; + float minX = (float) box.minX, minY = (float) box.minY, minZ = (float) box.minZ, + maxX = (float) box.maxX, maxY = (float) box.maxY, maxZ = (float) box.maxZ; drawLine(mat, buffer, new Vector3f(minX, minY, minZ), new Vector3f(maxX, minY, minZ)); // bottom face drawLine(mat, buffer, new Vector3f(maxX, minY, minZ), new Vector3f(maxX, minY, maxZ)); drawLine(mat, buffer, new Vector3f(maxX, minY, maxZ), new Vector3f(minX, minY, maxZ)); @@ -408,7 +406,8 @@ private static void drawLine(Matrix4f mat, VertexConsumer buffer, Vector3f from, buffer.vertex(mat, from.x, from.y, from.z).color(rColour, gColour, bColour, alpha) .normal(normal.x, normal.y, normal.z).endVertex(); - buffer.vertex(mat, to.x, to.y, to.z).color(rColour, gColour, bColour, alpha).normal(normal.x, normal.y, normal.z) + buffer.vertex(mat, to.x, to.y, to.z).color(rColour, gColour, bColour, alpha) + .normal(normal.x, normal.y, normal.z) .endVertex(); } } diff --git a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java index 443cb33c27..9ac86f03bc 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java +++ b/src/main/java/com/gregtechceu/gtceu/common/CommonProxy.java @@ -6,7 +6,6 @@ import com.gregtechceu.gtceu.api.addon.AddonFinder; import com.gregtechceu.gtceu.api.addon.IGTAddon; import com.gregtechceu.gtceu.api.capability.forge.GTCapability; -import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialEvent; import com.gregtechceu.gtceu.api.data.chemical.material.event.MaterialRegistryEvent; import com.gregtechceu.gtceu.api.data.chemical.material.event.PostMaterialEvent; @@ -38,7 +37,6 @@ import com.gregtechceu.gtceu.data.GregTechDatagen; import com.gregtechceu.gtceu.data.lang.MaterialLangGenerator; import com.gregtechceu.gtceu.data.loot.ChestGenHooks; -import com.gregtechceu.gtceu.data.loot.DungeonLootLoader; import com.gregtechceu.gtceu.data.pack.GTDynamicDataPack; import com.gregtechceu.gtceu.data.pack.GTDynamicResourcePack; import com.gregtechceu.gtceu.data.pack.GTPackSource; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java index b8b22a5822..078272a2be 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java @@ -9,7 +9,6 @@ import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; -import com.gregtechceu.gtceu.api.data.chemical.material.registry.MaterialRegistry; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java index 0ae2f390db..c856b27151 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java @@ -11,8 +11,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.gui.misc.ProspectorMode; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index 7e52e48016..631a4ae265 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -12,9 +12,9 @@ import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.ComposterBlock; +import net.minecraftforge.common.crafting.conditions.ICondition; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; -import net.minecraftforge.common.crafting.conditions.ICondition; import java.util.Set; import java.util.function.Consumer; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java index 80ad739673..6866b102ca 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java @@ -4,7 +4,6 @@ import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.common.data.GTBlocks; -import com.gregtechceu.gtceu.common.data.GTMachines; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.config.ConfigHolder; @@ -16,144 +15,150 @@ public class MaterialInfoLoader { public static void init() { - /*ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Cupronickel, M * 8), // double wire - new MaterialStack(GTMaterials.Bronze, M * 2), // foil - new MaterialStack(GTMaterials.TinAlloy, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_KANTHAL.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Kanthal, M * 8), // double wire - new MaterialStack(GTMaterials.Aluminium, M * 2), // foil - new MaterialStack(GTMaterials.Copper, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NICHROME.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Nichrome, M * 8), // double wire - new MaterialStack(GTMaterials.StainlessSteel, M * 2), // foil - new MaterialStack(GTMaterials.Aluminium, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_RTMALLOY.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.RTMAlloy, M * 8), // double wire - new MaterialStack(GTMaterials.VanadiumSteel, M * 2), // foil - new MaterialStack(GTMaterials.Nichrome, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_HSSG.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.HSSG, M * 8), // double wire - new MaterialStack(GTMaterials.TungstenCarbide, M * 2), // foil - new MaterialStack(GTMaterials.Tungsten, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NAQUADAH.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Naquadah, M * 8), // double wire - new MaterialStack(GTMaterials.Osmium, M * 2), // foil - new MaterialStack(GTMaterials.TungstenSteel, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRINIUM.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Trinium, M * 8), // double wire - new MaterialStack(GTMaterials.NaquadahEnriched, M * 2), // foil - new MaterialStack(GTMaterials.Naquadah, M)) // ingot - ); - ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRITANIUM.get(), - new ItemMaterialInfo(new MaterialStack(GTMaterials.Tritanium, M * 8), // double wire - new MaterialStack(GTMaterials.Naquadria, M * 2), // foil - new MaterialStack(GTMaterials.Trinium, M)) // ingot - );*/ - - /*ItemMaterialData.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.WroughtIron, M * 8), // plate - new MaterialStack(GTMaterials.RedAlloy, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[1].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Steel, M * 8), // plate - new MaterialStack(GTMaterials.Tin, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[2].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Aluminium, M * 8), // plate - new MaterialStack(GTMaterials.Copper, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[3].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate - new MaterialStack(GTMaterials.Gold, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[4].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Titanium, M * 8), // plate - new MaterialStack(GTMaterials.Aluminium, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[5].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate - new MaterialStack(GTMaterials.Platinum, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[6].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.RhodiumPlatedPalladium, M * 8), // plate - new MaterialStack(GTMaterials.NiobiumTitanium, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[7].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.NaquadahAlloy, M * 8), // plate - new MaterialStack(GTMaterials.VanadiumGallium, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[8].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Darmstadtium, M * 8), // plate - new MaterialStack(GTMaterials.YttriumBariumCuprate, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate - - ItemMaterialData.registerMaterialInfo(GTMachines.HULL[9].getBlock(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Neutronium, M * 8), // plate - new MaterialStack(GTMaterials.Europium, M), // single cable - new MaterialStack(GTMaterials.Rubber, M * 2))); // plate*/ - - /*ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate - new MaterialStack(GTMaterials.Gold, M * 2), // single cable - new MaterialStack(GTMaterials.Rubber, M * 4), // plate - new MaterialStack(GTMaterials.BlackSteel, M * 2), // fine wire - new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod - )); - - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[4].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Titanium, M * 8), // plate - new MaterialStack(GTMaterials.Aluminium, M * 2), // single cable - new MaterialStack(GTMaterials.Rubber, M * 4), // plate - new MaterialStack(GTMaterials.TungstenSteel, M * 2), // fine wire - new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod - )); - - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[5].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate - new MaterialStack(GTMaterials.Tungsten, M * 2), // single cable - new MaterialStack(GTMaterials.Rubber, M * 4), // plate - new MaterialStack(GTMaterials.Iridium, M * 2), // fine wire - new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod - )); - - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[3].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate - new MaterialStack(GTMaterials.Gold, 3 * M), // single cable + spring - new MaterialStack(GTMaterials.Rubber, M * 2), // plate - new MaterialStack(GTMaterials.BlackSteel, M * 2), // fine wire - new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod - )); - - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[4].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.Titanium, M * 8), // plate - new MaterialStack(GTMaterials.Aluminium, 3 * M), // single cable + spring - new MaterialStack(GTMaterials.Rubber, M * 2), // plate - new MaterialStack(GTMaterials.TungstenSteel, M * 2), // fine wire - new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod - )); - - ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[5].getItem(), new ItemMaterialInfo( - new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate - new MaterialStack(GTMaterials.Tungsten, 3 * M), // single cable + spring - new MaterialStack(GTMaterials.Rubber, M * 2), // plate - new MaterialStack(GTMaterials.Iridium, M * 2), // fine wire - new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod - ));*/ + /* + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_CUPRONICKEL.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Cupronickel, M * 8), // double wire + * new MaterialStack(GTMaterials.Bronze, M * 2), // foil + * new MaterialStack(GTMaterials.TinAlloy, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_KANTHAL.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Kanthal, M * 8), // double wire + * new MaterialStack(GTMaterials.Aluminium, M * 2), // foil + * new MaterialStack(GTMaterials.Copper, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NICHROME.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Nichrome, M * 8), // double wire + * new MaterialStack(GTMaterials.StainlessSteel, M * 2), // foil + * new MaterialStack(GTMaterials.Aluminium, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_RTMALLOY.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.RTMAlloy, M * 8), // double wire + * new MaterialStack(GTMaterials.VanadiumSteel, M * 2), // foil + * new MaterialStack(GTMaterials.Nichrome, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_HSSG.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.HSSG, M * 8), // double wire + * new MaterialStack(GTMaterials.TungstenCarbide, M * 2), // foil + * new MaterialStack(GTMaterials.Tungsten, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_NAQUADAH.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Naquadah, M * 8), // double wire + * new MaterialStack(GTMaterials.Osmium, M * 2), // foil + * new MaterialStack(GTMaterials.TungstenSteel, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRINIUM.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Trinium, M * 8), // double wire + * new MaterialStack(GTMaterials.NaquadahEnriched, M * 2), // foil + * new MaterialStack(GTMaterials.Naquadah, M)) // ingot + * ); + * ItemMaterialData.registerMaterialInfo(GTBlocks.COIL_TRITANIUM.get(), + * new ItemMaterialInfo(new MaterialStack(GTMaterials.Tritanium, M * 8), // double wire + * new MaterialStack(GTMaterials.Naquadria, M * 2), // foil + * new MaterialStack(GTMaterials.Trinium, M)) // ingot + * ); + */ + + /* + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[0].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.WroughtIron, M * 8), // plate + * new MaterialStack(GTMaterials.RedAlloy, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[1].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Steel, M * 8), // plate + * new MaterialStack(GTMaterials.Tin, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[2].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Aluminium, M * 8), // plate + * new MaterialStack(GTMaterials.Copper, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[3].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Gold, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[4].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Titanium, M * 8), // plate + * new MaterialStack(GTMaterials.Aluminium, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[5].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Platinum, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[6].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.RhodiumPlatedPalladium, M * 8), // plate + * new MaterialStack(GTMaterials.NiobiumTitanium, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[7].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.NaquadahAlloy, M * 8), // plate + * new MaterialStack(GTMaterials.VanadiumGallium, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[8].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Darmstadtium, M * 8), // plate + * new MaterialStack(GTMaterials.YttriumBariumCuprate, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + * + * ItemMaterialData.registerMaterialInfo(GTMachines.HULL[9].getBlock(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Neutronium, M * 8), // plate + * new MaterialStack(GTMaterials.Europium, M), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 2))); // plate + */ + + /* + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[3].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Gold, M * 2), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 4), // plate + * new MaterialStack(GTMaterials.BlackSteel, M * 2), // fine wire + * new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod + * )); + * + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[4].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Titanium, M * 8), // plate + * new MaterialStack(GTMaterials.Aluminium, M * 2), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 4), // plate + * new MaterialStack(GTMaterials.TungstenSteel, M * 2), // fine wire + * new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod + * )); + * + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_INPUT_HATCH[5].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Tungsten, M * 2), // single cable + * new MaterialStack(GTMaterials.Rubber, M * 4), // plate + * new MaterialStack(GTMaterials.Iridium, M * 2), // fine wire + * new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod + * )); + * + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[3].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.StainlessSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Gold, 3 * M), // single cable + spring + * new MaterialStack(GTMaterials.Rubber, M * 2), // plate + * new MaterialStack(GTMaterials.BlackSteel, M * 2), // fine wire + * new MaterialStack(GTMaterials.SteelMagnetic, M / 2) // rod + * )); + * + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[4].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.Titanium, M * 8), // plate + * new MaterialStack(GTMaterials.Aluminium, 3 * M), // single cable + spring + * new MaterialStack(GTMaterials.Rubber, M * 2), // plate + * new MaterialStack(GTMaterials.TungstenSteel, M * 2), // fine wire + * new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod + * )); + * + * ItemMaterialData.registerMaterialInfo(GTMachines.ENERGY_OUTPUT_HATCH[5].getItem(), new ItemMaterialInfo( + * new MaterialStack(GTMaterials.TungstenSteel, M * 8), // plate + * new MaterialStack(GTMaterials.Tungsten, 3 * M), // single cable + spring + * new MaterialStack(GTMaterials.Rubber, M * 2), // plate + * new MaterialStack(GTMaterials.Iridium, M * 2), // fine wire + * new MaterialStack(GTMaterials.NeodymiumMagnetic, M / 2) // rod + * )); + */ ItemMaterialData.registerMaterialInfo(GTBlocks.PLASTCRETE.get(), new ItemMaterialInfo( new MaterialStack(GTMaterials.Steel, M), // frame / 2 @@ -530,13 +535,15 @@ public static void init() { new ItemMaterialInfo(new MaterialStack(GTMaterials.Iron, M * 2))); } - ItemMaterialData.registerMaterialInfo(Items.WHEAT, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M))); + ItemMaterialData.registerMaterialInfo(Items.WHEAT, + new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M))); ItemMaterialData.registerMaterialInfo(Blocks.HAY_BLOCK, new ItemMaterialInfo(new MaterialStack(GTMaterials.Wheat, M * 9))); ItemMaterialData.registerMaterialInfo(Items.SNOWBALL, new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M / 4))); - ItemMaterialData.registerMaterialInfo(Blocks.SNOW, new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M))); + ItemMaterialData.registerMaterialInfo(Blocks.SNOW, + new ItemMaterialInfo(new MaterialStack(GTMaterials.Water, M))); ItemMaterialData.registerMaterialInfo(Blocks.ICE, new ItemMaterialInfo(new MaterialStack(GTMaterials.Ice, M))); ItemMaterialData.registerMaterialInfo(Blocks.PACKED_ICE, diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java index 43233d1148..13f6ea8a45 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper.java @@ -7,8 +7,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.tool.ToolHelper; import com.gregtechceu.gtceu.data.recipe.builder.*; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 89987076f9..e385f380b2 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -32,7 +32,6 @@ import com.lowdragmc.lowdraglib.utils.NBTToJsonConverter; -import it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.FinishedRecipe; @@ -47,11 +46,11 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -400,9 +399,8 @@ public GTRecipeBuilder inputItems(ItemStack input) { var matStack = ItemMaterialData.getMaterialInfo(input.getItem()); if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else { - if(chance == maxChance) { + } else { + if (chance == maxChance) { tempItemStacks.add(input); } } @@ -418,8 +416,7 @@ public GTRecipeBuilder inputItems(ItemStack... inputs) { var matStack = ItemMaterialData.getMaterialInfo(itemStack.getItem()); if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else { + } else { if (chance == maxChance) { tempItemStacks.add(itemStack); } @@ -447,11 +444,10 @@ public GTRecipeBuilder inputItems(Item input, int amount) { public GTRecipeBuilder inputItems(Item input) { var matStack = ItemMaterialData.getMaterialInfo(input); - if(matStack != null) { + if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else { - if(chance == maxChance) { + } else { + if (chance == maxChance) { tempItemStacks.add(new ItemStack(input)); } } @@ -460,11 +456,10 @@ public GTRecipeBuilder inputItems(Item input) { public GTRecipeBuilder inputItems(Supplier input) { var matStack = ItemMaterialData.getMaterialInfo(input); - if(matStack != null) { + if (matStack != null) { tempItemMaterialStacks.addAll(matStack.getMaterials()); - } - else { - if(chance == maxChance) { + } else { + if (chance == maxChance) { tempItemStacks.add(new ItemStack(input.get())); } } @@ -483,7 +478,8 @@ public GTRecipeBuilder inputItems(MaterialEntry input) { if (input.material() == null) { GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix()); } else { - tempItemMaterialStacks.add(new MaterialStack(input.material(), input.tagPrefix().getMaterialAmount(input.material()))); + tempItemMaterialStacks + .add(new MaterialStack(input.material(), input.tagPrefix().getMaterialAmount(input.material()))); tempItemMaterialStacks.addAll(input.tagPrefix().secondaryMaterials()); } return inputItems(input.tagPrefix(), input.material(), 1); @@ -497,14 +493,15 @@ public GTRecipeBuilder inputItems(MaterialEntry input, int count) { } public GTRecipeBuilder inputItems(TagPrefix tagPrefix, @Nullable Material material, int count) { - if(material == null) { + if (material == null) { GTCEu.LOGGER.error( "Tried to set input item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, tagPrefix, "null", count); return inputItems(ItemStack.EMPTY); } else { tempItemMaterialStacks.add(new MaterialStack(material, tagPrefix.getMaterialAmount(material) * count)); - tagPrefix.secondaryMaterials().forEach(mat -> tempItemMaterialStacks.add(new MaterialStack(mat.material(), mat.amount() * count))); + tagPrefix.secondaryMaterials().forEach( + mat -> tempItemMaterialStacks.add(new MaterialStack(mat.material(), mat.amount() * count))); } TagKey tag = ChemicalHelper.getTag(tagPrefix, material); if (tag == null) { @@ -607,14 +604,16 @@ public GTRecipeBuilder outputItems(TagPrefix orePrefix, Material material) { } public GTRecipeBuilder outputItems(TagPrefix orePrefix, @Nullable Material material, int count) { - if(material == null) { - GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", + if (material == null) { + GTCEu.LOGGER.error( + "Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, orePrefix, "null", count); return outputItems(ItemStack.EMPTY); } var item = ChemicalHelper.get(orePrefix, material, count); if (item.isEmpty()) { - GTCEu.LOGGER.error("Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", + GTCEu.LOGGER.error( + "Tried to set output item stack that doesn't exist, id: {}, TagPrefix: {}, Material: {}, Count: {}", id, orePrefix, "null", count); } return outputItems(item); @@ -973,7 +972,7 @@ public GTRecipeBuilder chancedTickInputLogic(RecipeCapability cap, ChanceLogi } public GTRecipeBuilder inputFluids(@NotNull Material material, int amount) { - if(chance == maxChance) { + if (chance == maxChance) { tempFluidStacks.add(new MaterialStack(material, amount * GTValues.M / GTValues.L)); } return inputFluids(material.getFluid(amount)); @@ -981,7 +980,7 @@ public GTRecipeBuilder inputFluids(@NotNull Material material, int amount) { public GTRecipeBuilder inputFluids(FluidStack input) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); - if(matStack != null) { + if (matStack != null) { tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); } return input(FluidRecipeCapability.CAP, FluidIngredient.of( @@ -990,10 +989,10 @@ public GTRecipeBuilder inputFluids(FluidStack input) { } public GTRecipeBuilder inputFluids(FluidStack... inputs) { - for(var input : inputs) { + for (var input : inputs) { var matStack = ChemicalHelper.getMaterial(input.getFluid()); - if(matStack != null) { - if(chance == maxChance) { + if (matStack != null) { + if (chance == maxChance) { tempFluidStacks.add(new MaterialStack(matStack, input.getAmount() * GTValues.M / GTValues.L)); } } @@ -1337,7 +1336,7 @@ public void save(Consumer consumer) { } } - if(addMaterialInfo) { + if (addMaterialInfo) { addOutputMaterialInfo(); } tempItemStacks = null; @@ -1350,64 +1349,65 @@ public void save(Consumer consumer) { public void addOutputMaterialInfo() { var itemOutputs = output.get(ItemRecipeCapability.CAP); var itemInputs = input.get(ItemRecipeCapability.CAP); - if(itemOutputs.size() == 1 && (!itemInputs.isEmpty() || !tempFluidStacks.isEmpty())) { + if (itemOutputs.size() == 1 && (!itemInputs.isEmpty() || !tempFluidStacks.isEmpty())) { var currOutput = itemOutputs.get(0).content; ItemLike out = null; int outputCount = 0; - if(currOutput instanceof Item i) { + if (currOutput instanceof Item i) { out = i; outputCount = 1; - } - else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { + } else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { out = i; outputCount = 1; - } - else if (currOutput instanceof ItemStack stack) { + } else if (currOutput instanceof ItemStack stack) { out = stack.getItem(); outputCount = stack.getCount(); - } - else if (currOutput instanceof SizedIngredient sized) { + } else if (currOutput instanceof SizedIngredient sized) { out = sized.getItems()[0].getItem(); outputCount = sized.getItems()[0].getCount(); } Reference2LongOpenHashMap matStacks = new Reference2LongOpenHashMap<>(); - for(var input : tempItemMaterialStacks) { + for (var input : tempItemMaterialStacks) { long am = input.amount() / outputCount; matStacks.merge(input.material(), am, Long::sum); } - if(addMaterialFluidInfo) { + if (addMaterialFluidInfo) { var fluidInputs = input.get(FluidRecipeCapability.CAP); for (var input : tempFluidStacks) { long am = input.amount() / outputCount; matStacks.merge(input.material(), am, Long::sum); } - /*for (int i = 0; i < fluidInputs.size(); i++) { - if (fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { - MaterialStack matStack = null; - for (var value : fluidIngredient.values) { - var fluid = value.getFluids().toArray(Fluid[]::new); - if (fluid.length != 0 && fluid[0] != null) { - matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); - } - - if (matStack != null && matStack.material() != null) { - matStacks.merge(matStack.material(), matStack.amount(), Long::sum); - break; - } - } - } else if (fluidInputs.get(i).content instanceof FluidStack fluidStack) { - MaterialStack matStack = new MaterialStack(ChemicalHelper.getMaterial(fluidStack.getFluid()), tempFluidStacks.get(i).amount()); - if (matStack.material() != null) { - matStacks.merge(matStack.material(), matStack.amount(), Long::sum); - } - } - }*/ + /* + * for (int i = 0; i < fluidInputs.size(); i++) { + * if (fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { + * MaterialStack matStack = null; + * for (var value : fluidIngredient.values) { + * var fluid = value.getFluids().toArray(Fluid[]::new); + * if (fluid.length != 0 && fluid[0] != null) { + * matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); + * } + * + * if (matStack != null && matStack.material() != null) { + * matStacks.merge(matStack.material(), matStack.amount(), Long::sum); + * break; + * } + * } + * } else if (fluidInputs.get(i).content instanceof FluidStack fluidStack) { + * MaterialStack matStack = new MaterialStack(ChemicalHelper.getMaterial(fluidStack.getFluid()), + * tempFluidStacks.get(i).amount()); + * if (matStack.material() != null) { + * matStacks.merge(matStack.material(), matStack.amount(), Long::sum); + * } + * } + * } + */ } - var matList = matStacks.reference2LongEntrySet().stream().map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); + var matList = matStacks.reference2LongEntrySet().stream() + .map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); if (out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); @@ -1460,5 +1460,4 @@ public record ResearchRecipeEntry(@NotNull String researchId, @NotNull ItemStack @NotNull ItemStack dataStack, int duration, int EUt, int CWUt) { } - } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java index ed91c61607..aa185d729f 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java @@ -55,7 +55,8 @@ private static void steelSteamMultiblocks(Consumer provider) { "FMF", "CGC", 'F', GTBlocks.FIREBOX_STEEL.asStack(), 'C', GTBlocks.CASING_STEEL_SOLID.asStack(), 'M', GTMachines.STEAM_FURNACE.right().asStack(), 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Invar)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", GTMultiMachines.STEAM_GRINDER.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", + GTMultiMachines.STEAM_GRINDER.asStack(), "CGC", "CFC", "CGC", 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Potin), 'F', GTMachines.STEAM_MACERATOR.right().asStack(), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hatch", GTMachines.STEAM_HATCH.asStack(), "BPB", @@ -74,7 +75,8 @@ private static void steelSteamMultiblocks(Consumer provider) { "FMF", "CGC", 'F', GTBlocks.FIREBOX_BRONZE.asStack(), 'C', GTBlocks.CASING_BRONZE_BRICKS.asStack(), 'M', GTMachines.STEAM_FURNACE.left().asStack(), 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Invar)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", GTMultiMachines.STEAM_GRINDER.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_grinder", + GTMultiMachines.STEAM_GRINDER.asStack(), "CGC", "CFC", "CGC", 'G', new MaterialEntry(TagPrefix.gear, GTMaterials.Potin), 'F', GTMachines.STEAM_MACERATOR.left().asStack(), 'C', GTBlocks.CASING_BRONZE_BRICKS.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_hatch", GTMachines.STEAM_HATCH.asStack(), "BPB", diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java index 57c63d279e..7bbb11bfe0 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/OreRecipeHandler.java @@ -5,8 +5,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags; import com.gregtechceu.gtceu.api.data.chemical.material.properties.OreProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java index 3c4b068786..18e3370833 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/generated/WireRecipeHandler.java @@ -2,13 +2,10 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; -import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.WireProperties; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTItems; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; @@ -18,10 +15,7 @@ import net.minecraft.data.recipes.FinishedRecipe; import com.google.common.collect.ImmutableMap; -import net.minecraft.world.item.ItemStack; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.function.Consumer; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java index 4ee0571bc4..cb621c6b6a 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComponentRecipes.java @@ -123,7 +123,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Europium, 64) .inputItems(wireFine, Europium, 32) .inputItems(cableGtSingle, VanadiumGallium, 2) - .inputFluids(SolderingAlloy,L * 2) + .inputFluids(SolderingAlloy, L * 2) .inputFluids(Lubricant, 500) .outputItems(ELECTRIC_MOTOR_ZPM) .scannerResearch(b -> b @@ -515,7 +515,8 @@ public static void init(Consumer provider) { .duration(100).EUt(VA[LV]) .addMaterialInfo(true).save(provider); - VanillaRecipeHelper.addShapedRecipe(provider, false, "cover_fluid_voiding", COVER_FLUID_VOIDING.asStack(), "SDS", + VanillaRecipeHelper.addShapedRecipe(provider, false, "cover_fluid_voiding", COVER_FLUID_VOIDING.asStack(), + "SDS", "dPw", " E ", 'S', new MaterialEntry(screw, Steel), 'D', COVER_FLUID_DETECTOR.asStack(), 'P', new MaterialEntry(pipeNormalFluid, Bronze), 'E', Items.ENDER_PEARL); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java index f6127c50a3..8f0b0c8b93 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java @@ -111,7 +111,8 @@ private static void registerMultiblockControllerRecipes(Consumer new MaterialEntry(plateDense, NaquadahAlloy), 'W', new MaterialEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); VanillaRecipeHelper.addShapedRecipe(provider, true, "mega_vacuum_freezer", MEGA_VACUUM_FREEZER.asStack(), "PCP", - "FSF", "DWD", 'C', ZPM_CIRCUITS, 'S', GTMultiMachines.VACUUM_FREEZER.asStack(), 'F', FIELD_GENERATOR_ZPM.asStack(), 'P', + "FSF", "DWD", 'C', ZPM_CIRCUITS, 'S', GTMultiMachines.VACUUM_FREEZER.asStack(), 'F', + FIELD_GENERATOR_ZPM.asStack(), 'P', new MaterialEntry(pipeNormalFluid, NiobiumTitanium), 'D', new MaterialEntry(plateDense, RhodiumPlatedPalladium), 'W', new MaterialEntry(wireGtQuadruple, RutheniumTriniumAmericiumNeutronate)); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 0a408ce67a..9aa2042e0c 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -7,8 +7,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.MarkerMaterials; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.machine.MachineDefinition; import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; import com.gregtechceu.gtceu.common.block.LampBlock; @@ -33,7 +33,6 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.Tags; -import net.minecraftforge.fluids.FluidStack; import com.tterrag.registrate.util.entry.ItemEntry; @@ -643,7 +642,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(SENSOR_HV) .inputItems(EMITTER_HV) .inputItems(ELECTRIC_PUMP_HV) - .inputFluids(Polyethylene,L * 2) + .inputFluids(Polyethylene, L * 2) .outputItems(COVER_ENDER_FLUID_LINK) .EUt(VA[HV]).duration(320) .addMaterialInfo(true) @@ -654,7 +653,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(Tags.Blocks.CHESTS_WOODEN) .inputItems(ELECTRIC_PISTON_LV) .inputItems(plate, Iron) - .inputFluids(SolderingAlloy,L / 2) + .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_STORAGE) .EUt(16) .duration(100) @@ -778,8 +777,9 @@ private static void registerAssemblerRecipes(Consumer provider) ASSEMBLER_RECIPES.recipeBuilder("casing_stainless_evaporation") .inputItems(GTBlocks.CASING_STAINLESS_CLEAN.asStack(1)) .inputItems(wireGtDouble, AnnealedCopper, 4) - .inputFluids(PolyvinylChloride,L * 2) - .outputItems(GTBlocks.CASING_STAINLESS_EVAPORATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) + .inputFluids(PolyvinylChloride, L * 2) + .outputItems( + GTBlocks.CASING_STAINLESS_EVAPORATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(30).EUt(VA[HV]).addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ptfe_inert").EUt(16).inputItems(GTBlocks.CASING_STEEL_SOLID.asStack()) @@ -793,18 +793,19 @@ private static void registerAssemblerRecipes(Consumer provider) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_zpm").EUt(VA[ZPM]) .inputItems(wireGtDouble, UraniumRhodiumDinaquadide, 16).inputItems(foil, NiobiumTitanium, 16) - .inputFluids(Trinium,GTValues.L * 16).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) + .inputFluids(Trinium, GTValues.L * 16).outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_uv").EUt(VA[UV]) .inputItems(wireGtDouble, EnrichedNaquadahTriniumEuropiumDuranide, 8) - .inputItems(foil, NiobiumTitanium, 8).inputFluids(Trinium,GTValues.L * 8) + .inputItems(foil, NiobiumTitanium, 8).inputFluids(Trinium, GTValues.L * 8) .outputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()).duration(100).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_coil").EUt(VA[ZPM]).inputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()) .inputItems(FIELD_GENERATOR_IV.asStack(2)).inputItems(ELECTRIC_PUMP_IV) .inputItems(NEUTRON_REFLECTOR.asStack(2)).inputItems(CustomTags.LuV_CIRCUITS, 4) .inputItems(pipeSmallFluid, Naquadah, 4).inputItems(plate, Europium, 4) .inputFluids(VanadiumGallium, GTValues.L * 4).outputItems(GTBlocks.FUSION_COIL.asStack()) - .duration(100).cleanroom(CleanroomType.CLEANROOM).addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .duration(100).cleanroom(CleanroomType.CLEANROOM).addMaterialInfo(true).addMaterialFluidInfo(true) + .save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_glass").EUt(VA[LuV]) .inputItems(GTBlocks.CASING_LAMINATED_GLASS.asStack()).inputItems(plate, Naquadah, 4) .inputItems(NEUTRON_REFLECTOR.asStack(4)).outputItems(GTBlocks.FUSION_GLASS.asStack(2)) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index 0a044262cd..a7fc47074a 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java @@ -572,7 +572,8 @@ public static void init(Consumer provider) { GTBlocks.CASING_STEEL_SOLID.asStack(), 'O', new MaterialEntry(TagPrefix.rock, GTMaterials.Obsidian), 'C', CustomTags.HV_CIRCUITS, 'W', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, true, "distillation_tower", - GTMultiMachines.DISTILLATION_TOWER.asStack(), "CBC", "FMF", "CBC", 'M', GTMachines.HULL[HV].asStack(), 'B', + GTMultiMachines.DISTILLATION_TOWER.asStack(), "CBC", "FMF", "CBC", 'M', GTMachines.HULL[HV].asStack(), + 'B', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel), 'C', CustomTags.EV_CIRCUITS, 'F', GTItems.ELECTRIC_PUMP_HV); VanillaRecipeHelper.addShapedRecipe(provider, true, "evaporation_plant", @@ -611,7 +612,8 @@ public static void init(Consumer provider) { "RFR", "PwP", 'R', new MaterialEntry(TagPrefix.rotor, GTMaterials.TungstenSteel), 'F', GTBlocks.CASING_TUNGSTENSTEEL_ROBUST.asStack(), 'P', new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TungstenSteel)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "multi_furnace", GTMultiMachines.MULTI_SMELTER.asStack(), "PPP", + VanillaRecipeHelper.addShapedRecipe(provider, true, "multi_furnace", GTMultiMachines.MULTI_SMELTER.asStack(), + "PPP", "ASA", "CAC", 'P', Blocks.FURNACE, 'A', CustomTags.HV_CIRCUITS, 'S', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'C', new MaterialEntry(TagPrefix.cableGtSingle, GTMaterials.Copper)); @@ -620,7 +622,8 @@ public static void init(Consumer provider) { GTMultiMachines.LARGE_STEAM_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', new MaterialEntry(TagPrefix.gear, GTMaterials.Steel), 'P', CustomTags.HV_CIRCUITS, 'A', GTMachines.HULL[HV].asStack(), 'C', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.Steel)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "large_gas_turbine", GTMultiMachines.LARGE_GAS_TURBINE.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "large_gas_turbine", + GTMultiMachines.LARGE_GAS_TURBINE.asStack(), "PSP", "SAS", "CSC", 'S', new MaterialEntry(TagPrefix.gear, GTMaterials.StainlessSteel), 'P', CustomTags.EV_CIRCUITS, 'A', GTMachines.HULL[GTValues.EV].asStack(), 'C', new MaterialEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel)); @@ -737,10 +740,12 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_multiblock_tank", GTMultiMachines.STEEL_MULTIBLOCK_TANK.asStack(), " R ", "hCw", " R ", 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); - VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_tank_valve", GTMultiMachines.WOODEN_TANK_VALVE.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_tank_valve", + GTMultiMachines.WOODEN_TANK_VALVE.asStack(), " R ", "rCs", " O ", 'O', new MaterialEntry(TagPrefix.rotor, GTMaterials.Copper), 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Copper), 'C', GTBlocks.CASING_WOOD_WALL.asStack()); - VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_tank_valve", GTMultiMachines.STEEL_TANK_VALVE.asStack(), + VanillaRecipeHelper.addShapedRecipe(provider, true, "steel_tank_valve", + GTMultiMachines.STEEL_TANK_VALVE.asStack(), " R ", "hCw", " O ", 'O', new MaterialEntry(TagPrefix.rotor, GTMaterials.Steel), 'R', new MaterialEntry(TagPrefix.ring, GTMaterials.Steel), 'C', GTBlocks.CASING_STEEL_SOLID.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "wood_wall", GTBlocks.CASING_WOOD_WALL.asStack(), "W W", diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java index 94fa324e91..f96d0c9860 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java @@ -319,8 +319,10 @@ public static void init(Consumer provider) { var hatch = POWER_TRANSFORMER[tier]; if (hatch == null) continue; // Assume they actually are nonnull for now. - var materialPrime = ChemicalHelper.getMaterialStack(CraftingComponent.CABLE_HEX.getIngredient(tier)).material(); - var materialSecond = ChemicalHelper.getMaterialStack(CraftingComponent.CABLE_TIER_UP_OCT.getIngredient(tier)) + var materialPrime = ChemicalHelper.getMaterialStack(CraftingComponent.CABLE_HEX.getIngredient(tier)) + .material(); + var materialSecond = ChemicalHelper + .getMaterialStack(CraftingComponent.CABLE_TIER_UP_OCT.getIngredient(tier)) .material(); ASSEMBLER_RECIPES.recipeBuilder(GTValues.VN[tier].toLowerCase() + "_power_transformer") diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java index f769393e40..2850c0ef1d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java @@ -7,8 +7,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java index dddac24709..d795b39af2 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java @@ -2,7 +2,6 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.GTValues; -import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java index ba5a045e9d..f2646b4141 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/WoodMachineRecipes.java @@ -5,8 +5,8 @@ import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.ItemMaterialInfo; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.common.data.GTItems; diff --git a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java index 6cdb54ab10..307010b839 100644 --- a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java +++ b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java @@ -76,7 +76,6 @@ import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.common.capabilities.ICapabilitySerializable; -import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.living.LivingDeathEvent; diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index 8df95e4bd6..dfbb3bdeee 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -15,8 +15,8 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.HazardProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty; -import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.medicalcondition.Symptom; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; diff --git a/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java b/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java index fef29e9c3d..05844ab05e 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java @@ -2,6 +2,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; + import net.minecraft.world.level.block.Block; import java.util.function.Supplier; From 21cf5b2ddec6077ba9d7fe3febfd64e6bc3708ae Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sun, 22 Dec 2024 03:39:27 -0700 Subject: [PATCH 11/21] oops --- src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java | 2 +- .../java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java index fd284fd82c..2970d1a2fa 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java @@ -232,7 +232,7 @@ public class GTMachines { .addOutputLimit(ItemRecipeCapability.CAP, switch (tier) { case 1, 2 -> 1; case 3 -> 3; - default -> 12; + default -> 4; }) .recipeModifier(GTRecipeModifiers.OC_NON_PERFECT) .workableTieredHullRenderer(GTCEu.id("block/machines/macerator")) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java index 5a0c2b66cc..390c30953e 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java @@ -143,7 +143,7 @@ public class GTRecipeTypes { .addCustomRecipeLogic(new BreweryLogic()) .setSound(GTSoundEntries.CHEMICAL); - public final static GTRecipeType MACERATOR_RECIPES = register("macerator", ELECTRIC).setMaxIOSize(1, 12, 0, 0) + public final static GTRecipeType MACERATOR_RECIPES = register("macerator", ELECTRIC).setMaxIOSize(1, 4, 0, 0) .setEUIO(IO.IN) .prepareBuilder(recipeBuilder -> recipeBuilder.duration(150).EUt(2)) .setSlotOverlay(false, false, GuiTextures.CRUSHED_ORE_OVERLAY) From d122cdacd730cedaab8526c3b86e811426b4af73 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sun, 22 Dec 2024 03:49:20 -0700 Subject: [PATCH 12/21] oops --- .../machine/trait/MEPatternBufferProxyRecipeHandler.java | 2 +- .../ae2/machine/trait/MEPatternBufferRecipeHandler.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferProxyRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferProxyRecipeHandler.java index 2ec56d8a66..20ebed0b0b 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferProxyRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferProxyRecipeHandler.java @@ -60,7 +60,7 @@ public int getSize() { @Override public double getTotalContentAmount() { - long amount = 0; + double amount = 0.; for (NotifiableRecipeHandlerTrait handlerTrait : handlers) { amount += handlerTrait.getTotalContentAmount(); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java index 7230bf63ea..c02c127cf0 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java @@ -67,15 +67,15 @@ public List handleItemInner( } this.lockedRecipeId = recipe.id; - List contents = left; for (int i = 0; i < internalInv.length; i++) { + List contents = left; if (internalInv[i].isItemEmpty()) continue; contents = internalInv[i].handleItemInternal(contents, simulate); if (contents == null) { this.lockedSlot = i; - return contents; + return null; } - contents = copyIngredients(left); + //contents = copyIngredients(left); } this.lockedSlot = -1; return left; From 01dbe7cbf2c468da507455f0a4a91f32485bef87 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Fri, 27 Dec 2024 02:51:33 -0700 Subject: [PATCH 13/21] more unificationentry changes --- .../gtceu/data/recipe/builder/GTRecipeBuilder.java | 8 ++++---- .../gtceu/data/recipe/misc/MetaTileEntityLoader.java | 2 +- .../ae2/machine/trait/MEPatternBufferRecipeHandler.java | 6 +++--- .../gtceu/integration/kjs/GregTechKubeJSPlugin.java | 1 - .../integration/kjs/events/CraftingComponentsEventJS.java | 6 +++--- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index e385f380b2..1c93c91796 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -355,7 +355,7 @@ public GTRecipeBuilder inputItems(Object input) { return inputItems(machine); } else { GTCEu.LOGGER.error( - "Input item is not one of: Item, Supplier, ItemStack, Ingredient, UnificationEntry, TagKey, MachineDefinition, id: {}", + "Input item is not one of: Item, Supplier, ItemStack, Ingredient, MaterialEntry, TagKey, MachineDefinition, id: {}", id); return this; } @@ -378,7 +378,7 @@ public GTRecipeBuilder inputItems(Object input, int count) { return inputItems(machine, count); } else { GTCEu.LOGGER.error( - "Input item is not one of: Item, Supplier, ItemStack, Ingredient, UnificationEntry, TagKey, MachineDefinition, id: {}", + "Input item is not one of: Item, Supplier, ItemStack, Ingredient, MaterialEntry, TagKey, MachineDefinition, id: {}", id); return this; } @@ -537,7 +537,7 @@ public GTRecipeBuilder outputItems(Object input) { return outputItems(machine); } else { GTCEu.LOGGER.error( - "Output item is not one of: Item, Supplier, ItemStack, Ingredient, UnificationEntry, TagKey, MachineDefinition, id: {}", + "Output item is not one of: Item, Supplier, ItemStack, Ingredient, MaterialEntry, TagKey, MachineDefinition, id: {}", id); return this; } @@ -556,7 +556,7 @@ public GTRecipeBuilder outputItems(Object input, int count) { return outputItems(machine, count); } else { GTCEu.LOGGER.error( - "Output item is not one of: Item, Supplier, ItemStack, Ingredient, UnificationEntry, TagKey, MachineDefinition, id: {}", + "Output item is not one of: Item, Supplier, ItemStack, Ingredient, MaterialEntry, TagKey, MachineDefinition, id: {}", id); return this; } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index 406f31296a..51011833bf 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java @@ -1204,7 +1204,7 @@ public static void init(Consumer provider) { // - Block // - ItemEntry (like GTItems) // - CraftingComponent.Component - // - UnificationEntry + // - MaterialEntry // - TagKey public static void registerMachineRecipe(Consumer provider, boolean withUnificationData, MachineDefinition[] machines, Object... recipe) { diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java index c02c127cf0..7230bf63ea 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/trait/MEPatternBufferRecipeHandler.java @@ -67,15 +67,15 @@ public List handleItemInner( } this.lockedRecipeId = recipe.id; + List contents = left; for (int i = 0; i < internalInv.length; i++) { - List contents = left; if (internalInv[i].isItemEmpty()) continue; contents = internalInv[i].handleItemInternal(contents, simulate); if (contents == null) { this.lockedSlot = i; - return null; + return contents; } - //contents = copyIngredients(left); + contents = copyIngredients(left); } this.lockedSlot = -1; return left; diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index dfbb3bdeee..f1665953e6 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -239,7 +239,6 @@ public void registerBindings(BindingsEvent event) { event.add("GTMaterialRegistry", MaterialRegistryManager.getInstance()); event.add("TagPrefix", TagPrefix.class); event.add("ItemGenerationCondition", TagPrefix.Conditions.class); - event.add("UnificationEntry", MaterialEntry.class); event.add("MaterialEntry", MaterialEntry.class); event.add("GTMaterialFlags", MaterialFlags.class); event.add("GTFluidAttributes", FluidAttributes.class); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java index eccf316430..17793240d1 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java @@ -54,11 +54,11 @@ public void modifyTag(CraftingComponent.Component component, Map map) { + public void modifyMaterialEntry(CraftingComponent.Component component, Map map) { Map newMap = map.entrySet() .stream() .map(entry -> Map.entry(entry.getKey().intValue(), entry.getValue())) @@ -90,7 +90,7 @@ public CraftingComponent.Component createTag(Map map) return new CraftingComponent.Component(newMap); } - public CraftingComponent.Component createUnificationEntry(Map map) { + public CraftingComponent.Component createMaterialEntry(Map map) { Map newMap = map.entrySet() .stream() .map(entry -> Map.entry(entry.getKey().intValue(), entry.getValue())) From 49064f469afd33eb20072441c4111e96d7ff2434 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Fri, 27 Dec 2024 03:08:06 -0700 Subject: [PATCH 14/21] change the material decomp fields to private --- .../data/recipe/builder/GTRecipeBuilder.java | 45 ++++-------- .../data/recipe/misc/ComputerRecipes.java | 20 ++--- .../gtceu/data/recipe/misc/GCYMRecipes.java | 2 +- .../data/recipe/misc/MachineRecipeLoader.java | 73 ++++++++----------- .../data/recipe/misc/MiscRecipeLoader.java | 10 +-- 5 files changed, 61 insertions(+), 89 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 1c93c91796..7e9baad0e6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -105,10 +105,8 @@ public class GTRecipeBuilder { public int tierChanceBoost = 0; @Setter public boolean isFuel = false; - @Setter - private boolean addMaterialInfo = false; - @Setter - private boolean addMaterialFluidInfo = false; + private boolean itemMaterialInfo = false; + private boolean fluidMaterialInfo = false; public GTRecipeCategory recipeCategory; @Setter public BiConsumer> onSave; @@ -1229,6 +1227,17 @@ public GTRecipeBuilder category(@NotNull GTRecipeCategory category) { return this; } + public GTRecipeBuilder addMaterialInfo(boolean item) { + this.itemMaterialInfo = item; + return this; + } + + public GTRecipeBuilder addMaterialInfo(boolean item, boolean fluid) { + this.itemMaterialInfo = item; + this.fluidMaterialInfo = fluid; + return this; + } + public void toJson(JsonObject json) { json.addProperty("type", recipeType.registryName.toString()); json.addProperty("duration", Math.abs(duration)); @@ -1336,7 +1345,7 @@ public void save(Consumer consumer) { } } - if (addMaterialInfo) { + if (itemMaterialInfo) { addOutputMaterialInfo(); } tempItemStacks = null; @@ -1374,36 +1383,12 @@ public void addOutputMaterialInfo() { matStacks.merge(input.material(), am, Long::sum); } - if (addMaterialFluidInfo) { + if (fluidMaterialInfo) { var fluidInputs = input.get(FluidRecipeCapability.CAP); for (var input : tempFluidStacks) { long am = input.amount() / outputCount; matStacks.merge(input.material(), am, Long::sum); } - /* - * for (int i = 0; i < fluidInputs.size(); i++) { - * if (fluidInputs.get(i).content instanceof FluidIngredient fluidIngredient) { - * MaterialStack matStack = null; - * for (var value : fluidIngredient.values) { - * var fluid = value.getFluids().toArray(Fluid[]::new); - * if (fluid.length != 0 && fluid[0] != null) { - * matStack = new MaterialStack(ChemicalHelper.getMaterial(fluid[0]), tempFluidStacks.get(i).amount()); - * } - * - * if (matStack != null && matStack.material() != null) { - * matStacks.merge(matStack.material(), matStack.amount(), Long::sum); - * break; - * } - * } - * } else if (fluidInputs.get(i).content instanceof FluidStack fluidStack) { - * MaterialStack matStack = new MaterialStack(ChemicalHelper.getMaterial(fluidStack.getFluid()), - * tempFluidStacks.get(i).amount()); - * if (matStack.material() != null) { - * matStacks.merge(matStack.material(), matStack.amount(), Long::sum); - * } - * } - * } - */ } var matList = matStacks.reference2LongEntrySet().stream() diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java index 5273cdc1c4..33a2018868 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java @@ -41,7 +41,7 @@ public static void init(Consumer provider) { .inputFluids(Polybenzimidazole, L * 4) .stationResearch(b -> b.researchStack(DATA_BANK.asStack()).CWUt(4)) .duration(400).EUt(6000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("high_power_casing") .inputItems(frameGt, Iridium) @@ -114,7 +114,7 @@ public static void init(Consumer provider) { .duration(2400) .EUt(VA[EV])) .duration(1200).EUt(6000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("research_station") .inputItems(DATA_BANK) @@ -133,7 +133,7 @@ public static void init(Consumer provider) { .duration(2400) .EUt(VA[IV])) .duration(1200).EUt(100000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("object_holder") .inputItems(ITEM_IMPORT_BUS[ZPM]) @@ -151,7 +151,7 @@ public static void init(Consumer provider) { .duration(2400) .EUt(VA[IV])) .duration(1200).EUt(100000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("network_switch") .inputItems(COMPUTER_CASING.asStack()) @@ -170,7 +170,7 @@ public static void init(Consumer provider) { .CWUt(32) .EUt(VA[ZPM])) .duration(1200).EUt(100000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("high_performance_computing_array") .inputItems(DATA_BANK) @@ -189,7 +189,7 @@ public static void init(Consumer provider) { .duration(2400) .EUt(VA[IV])) .duration(1200).EUt(100000) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("hpca_empty_component") .inputItems(COMPUTER_CASING.asStack()) @@ -263,7 +263,7 @@ public static void init(Consumer provider) { .outputItems(DATA_HATCH_RECEIVER) .cleanroom(CleanroomType.CLEANROOM) .duration(200).EUt(VA[LuV]) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("data_transmitter_hatch") .inputItems(COMPUTER_CASING.asStack()) @@ -275,7 +275,7 @@ public static void init(Consumer provider) { .outputItems(DATA_HATCH_TRANSMITTER) .cleanroom(CleanroomType.CLEANROOM) .duration(200).EUt(VA[LuV]) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computation_receiver_hatch") .inputItems(DATA_HATCH_RECEIVER) @@ -285,7 +285,7 @@ public static void init(Consumer provider) { .outputItems(COMPUTATION_HATCH_RECEIVER) .cleanroom(CleanroomType.CLEANROOM) .duration(200).EUt(VA[LuV]) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("computation_transmitter_hatch") .inputItems(DATA_HATCH_TRANSMITTER) @@ -295,7 +295,7 @@ public static void init(Consumer provider) { .outputItems(COMPUTATION_HATCH_TRANSMITTER) .cleanroom(CleanroomType.CLEANROOM) .duration(200).EUt(VA[LuV]) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("active_transformer") .inputItems(POWER_TRANSFORMER[LuV]) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java index 8f0b0c8b93..6d9d5bce1b 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/GCYMRecipes.java @@ -221,7 +221,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(HSLASteel.getFluid(L)) .outputItems(MOLYBDENUM_DISILICIDE_COIL_BLOCK.asStack(1)) .duration(500).EUt(1920) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("heat_vent") .inputItems(ChemicalHelper.get(plate, TantalumCarbide, 3)) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 9aa2042e0c..5dad84fca6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -511,8 +511,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(plate, Iron, 2) .outputItems(COVER_SHUTTER, 2) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_machine_controller") @@ -521,8 +520,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_MACHINE_CONTROLLER) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_energy_detector") @@ -532,8 +530,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ENERGY_DETECTOR) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_energy_detector") @@ -542,8 +539,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ENERGY_DETECTOR_ADVANCED) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_activity_detector") @@ -552,8 +548,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ACTIVITY_DETECTOR) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_activity_cover") @@ -563,8 +558,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ACTIVITY_DETECTOR_ADVANCED) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_fluid_detector") @@ -573,8 +567,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_FLUID_DETECTOR) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_item_detector") @@ -583,8 +576,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ITEM_DETECTOR) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_fluid_detector") @@ -593,8 +585,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_FLUID_DETECTOR_ADVANCED) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_advanced_item_detector") @@ -603,8 +594,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_ITEM_DETECTOR_ADVANCED) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_maintenance_detector") @@ -613,8 +603,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(SolderingAlloy, L / 2) .outputItems(COVER_MAINTENANCE_DETECTOR) .EUt(16).duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_screen") @@ -645,8 +634,7 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(Polyethylene, L * 2) .outputItems(COVER_ENDER_FLUID_LINK) .EUt(VA[HV]).duration(320) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_storage") @@ -657,8 +645,7 @@ private static void registerAssemblerRecipes(Consumer provider) .outputItems(COVER_STORAGE) .EUt(16) .duration(100) - .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ulv").EUt(16).inputItems(plate, WroughtIron, 8) @@ -705,35 +692,35 @@ private static void registerAssemblerRecipes(Consumer provider) ASSEMBLER_RECIPES.recipeBuilder("coil_cupronickel").EUt(VA[LV]).inputItems(wireGtDouble, Cupronickel, 8) .inputItems(foil, Bronze, 8).inputFluids(TinAlloy, GTValues.L) .outputItems(GTBlocks.COIL_CUPRONICKEL.asStack()).duration(200) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_kanthal").EUt(VA[MV]).inputItems(wireGtDouble, Kanthal, 8) .inputItems(foil, Aluminium, 8).inputFluids(Copper, GTValues.L) .outputItems(GTBlocks.COIL_KANTHAL.asStack()).duration(300) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_nichrome").EUt(VA[HV]).inputItems(wireGtDouble, Nichrome, 8) .inputItems(foil, StainlessSteel, 8).inputFluids(Aluminium, GTValues.L) .outputItems(GTBlocks.COIL_NICHROME.asStack()).duration(400) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_rtm_alloy").EUt(VA[EV]).inputItems(wireGtDouble, RTMAlloy, 8) .inputItems(foil, VanadiumSteel, 8).inputFluids(Nichrome, GTValues.L) .outputItems(GTBlocks.COIL_RTMALLOY.asStack()).duration(500) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_hssg").EUt(VA[IV]).inputItems(wireGtDouble, HSSG, 8) .inputItems(foil, TungstenCarbide, 8).inputFluids(Tungsten, GTValues.L) .outputItems(GTBlocks.COIL_HSSG.asStack()).duration(600) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_naquadah").EUt(VA[LuV]).inputItems(wireGtDouble, Naquadah, 8) .inputItems(foil, Osmium, 8).inputFluids(TungstenSteel, GTValues.L) .outputItems(GTBlocks.COIL_NAQUADAH.asStack()).duration(700) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_trinium").EUt(VA[ZPM]).inputItems(wireGtDouble, Trinium, 8) .inputItems(foil, NaquadahEnriched, 8).inputFluids(Naquadah, GTValues.L) .outputItems(GTBlocks.COIL_TRINIUM.asStack()).duration(800) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("coil_tritanium").EUt(VA[UV]).inputItems(wireGtDouble, Tritanium, 8) .inputItems(foil, Naquadria, 8).inputFluids(Trinium, GTValues.L) .outputItems(GTBlocks.COIL_TRITANIUM.asStack()).duration(900) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_bronze_bricks").EUt(16).inputItems(plate, Bronze, 6) .inputItems(new ItemStack(Blocks.BRICKS)).circuitMeta(6) @@ -780,12 +767,12 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(PolyvinylChloride, L * 2) .outputItems( GTBlocks.CASING_STAINLESS_EVAPORATION.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .duration(30).EUt(VA[HV]).addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .duration(30).EUt(VA[HV]).addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_ptfe_inert").EUt(16).inputItems(GTBlocks.CASING_STEEL_SOLID.asStack()) .inputFluids(Polytetrafluoroethylene.getFluid(216)).circuitMeta(6) .outputItems(GTBlocks.CASING_PTFE_INERT.asStack()).duration(50) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("superconducting_coil_luv").EUt(VA[LuV]) .inputItems(wireGtDouble, IndiumTinBariumTitaniumCuprate, 32).inputItems(foil, NiobiumTitanium, 32) @@ -804,19 +791,19 @@ private static void registerAssemblerRecipes(Consumer provider) .inputItems(NEUTRON_REFLECTOR.asStack(2)).inputItems(CustomTags.LuV_CIRCUITS, 4) .inputItems(pipeSmallFluid, Naquadah, 4).inputItems(plate, Europium, 4) .inputFluids(VanadiumGallium, GTValues.L * 4).outputItems(GTBlocks.FUSION_COIL.asStack()) - .duration(100).cleanroom(CleanroomType.CLEANROOM).addMaterialInfo(true).addMaterialFluidInfo(true) + .duration(100).cleanroom(CleanroomType.CLEANROOM).addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_glass").EUt(VA[LuV]) .inputItems(GTBlocks.CASING_LAMINATED_GLASS.asStack()).inputItems(plate, Naquadah, 4) .inputItems(NEUTRON_REFLECTOR.asStack(4)).outputItems(GTBlocks.FUSION_GLASS.asStack(2)) .inputFluids(Polybenzimidazole, GTValues.L).duration(50).cleanroom(CleanroomType.CLEANROOM) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing").EUt(VA[LuV]).inputItems(GTBlocks.MACHINE_CASING_LuV.asStack()) .inputItems(GTBlocks.SUPERCONDUCTING_COIL.asStack()).inputItems(NEUTRON_REFLECTOR) .inputItems(ELECTRIC_PUMP_LuV).inputItems(plate, TungstenSteel, 6) .inputFluids(Polybenzimidazole, GTValues.L) .outputItems(GTBlocks.FUSION_CASING.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) - .addMaterialInfo(true).addMaterialFluidInfo(true) + .addMaterialInfo(true, true) .duration(100).cleanroom(CleanroomType.CLEANROOM).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing_mk2").EUt(VA[ZPM]) .inputItems(GTBlocks.MACHINE_CASING_ZPM.asStack()).inputItems(GTBlocks.FUSION_COIL.asStack()) @@ -824,14 +811,14 @@ private static void registerAssemblerRecipes(Consumer provider) .inputFluids(Polybenzimidazole, GTValues.L * 2) .outputItems(GTBlocks.FUSION_CASING_MK2.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(100).cleanroom(CleanroomType.CLEANROOM) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("fusion_casing_mk3").EUt(VA[UV]) .inputItems(GTBlocks.MACHINE_CASING_UV.asStack()).inputItems(GTBlocks.FUSION_COIL.asStack()) .inputItems(VOLTAGE_COIL_UV.asStack(2)).inputItems(FIELD_GENERATOR_ZPM).inputItems(plate, Americium, 6) .inputFluids(Polybenzimidazole, GTValues.L * 4) .outputItems(GTBlocks.FUSION_CASING_MK3.asStack(ConfigHolder.INSTANCE.recipes.casingsPerCraft)) .duration(100).cleanroom(CleanroomType.CLEANROOM) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("casing_steel_turbine").EUt(16).inputItems(plate, Magnalium, 6) .inputItems(frameGt, BlueSteel, 1).circuitMeta(6) @@ -858,11 +845,11 @@ private static void registerAssemblerRecipes(Consumer provider) ASSEMBLER_RECIPES.recipeBuilder("plascrete").EUt(48).inputItems(frameGt, Steel) .inputItems(plate, Polyethylene, 6).inputFluids(Concrete, L) .outputItems(GTBlocks.PLASTCRETE.asStack(2)).duration(200) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("cleanroom_glass").EUt(48).inputItems(frameGt, Steel) .inputItems(plate, Polyethylene, 6).inputFluids(Glass, L) .outputItems(GTBlocks.CLEANROOM_GLASS.asStack(2)).duration(200) - .addMaterialInfo(true).addMaterialFluidInfo(true).save(provider); + .addMaterialInfo(true, true).save(provider); // If these recipes are changed, change the values in MaterialInfoLoader.java diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java index e2f536af40..d9b2b3e75c 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java @@ -227,7 +227,7 @@ public static void init(Consumer provider) { .inputFluids(Titanium.getFluid(L * 10)) .outputItems(QUANTUM_HELMET) .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .fluidMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_chestplate").duration(1500).EUt(VA[IV]) @@ -243,7 +243,7 @@ public static void init(Consumer provider) { .inputFluids(Titanium.getFluid(L * 16)) .outputItems(QUANTUM_CHESTPLATE) .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .fluidMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_leggings").duration(1500).EUt(VA[IV]) @@ -259,7 +259,7 @@ public static void init(Consumer provider) { .inputFluids(Titanium.getFluid(L * 14)) .outputItems(QUANTUM_LEGGINGS) .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .fluidMaterialInfo(true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_boots").duration(1500).EUt(VA[IV]) @@ -275,7 +275,7 @@ public static void init(Consumer provider) { .inputFluids(Titanium.getFluid(L * 8)) .outputItems(QUANTUM_BOOTS) .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .fluidMaterialInfo(true) .save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("quantum_chestplate_advanced").duration(1000).EUt(VA[LuV]) @@ -293,7 +293,7 @@ public static void init(Consumer provider) { .inputItems(screw, HSSS, 8) .outputItems(QUANTUM_CHESTPLATE_ADVANCED) .addMaterialInfo(true) - .addMaterialFluidInfo(true) + .fluidMaterialInfo(true) .save(provider); // TODO Central monitor From 3b5e8873ad1eb4c4cda8014c665e964177f1d4fa Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Fri, 27 Dec 2024 03:29:43 -0700 Subject: [PATCH 15/21] stuff --- .../gtceu/data/recipe/misc/MiscRecipeLoader.java | 15 +++++---------- .../integration/kjs/GregTechKubeJSPlugin.java | 1 + .../integration/kjs/recipe/GTRecipeSchema.java | 13 +++++++++++++ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java index d9b2b3e75c..896f27b8cf 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java @@ -226,8 +226,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 32) .inputFluids(Titanium.getFluid(L * 10)) .outputItems(QUANTUM_HELMET) - .addMaterialInfo(true) - .fluidMaterialInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_chestplate").duration(1500).EUt(VA[IV]) @@ -242,8 +241,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 48) .inputFluids(Titanium.getFluid(L * 16)) .outputItems(QUANTUM_CHESTPLATE) - .addMaterialInfo(true) - .fluidMaterialInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_leggings").duration(1500).EUt(VA[IV]) @@ -258,8 +256,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 40) .inputFluids(Titanium.getFluid(L * 14)) .outputItems(QUANTUM_LEGGINGS) - .addMaterialInfo(true) - .fluidMaterialInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_boots").duration(1500).EUt(VA[IV]) @@ -274,8 +271,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 16) .inputFluids(Titanium.getFluid(L * 8)) .outputItems(QUANTUM_BOOTS) - .addMaterialInfo(true) - .fluidMaterialInfo(true) + .addMaterialInfo(true, true) .save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("quantum_chestplate_advanced").duration(1000).EUt(VA[LuV]) @@ -292,8 +288,7 @@ public static void init(Consumer provider) { .inputItems(ELECTRIC_MOTOR_LuV, 2) .inputItems(screw, HSSS, 8) .outputItems(QUANTUM_CHESTPLATE_ADVANCED) - .addMaterialInfo(true) - .fluidMaterialInfo(true) + .addMaterialInfo(true, true) .save(provider); // TODO Central monitor diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index f1665953e6..c613d0856e 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -515,6 +515,7 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, if (gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS) != null) { builder.tickOutputChanceLogic.putAll(gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS)); } + builder.addMaterialInfo(gtRecipe.itemMaterialInfo, gtRecipe.fluidMaterialInfo); builder.save(builtRecipe -> recipesByName.put(builtRecipe.getId(), GTRecipeSerializer.SERIALIZER.fromJson(builtRecipe.getId(), builtRecipe.serializeRecipe()))); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index 56691e4214..a1d3c0fe48 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -87,6 +87,8 @@ class GTRecipeJS extends RecipeJS { @Getter private final Collection researchRecipeEntries = new ArrayList<>(); private boolean generatingRecipes = true; + public boolean itemMaterialInfo = false; + public boolean fluidMaterialInfo = false; @HideFromJS @Override @@ -872,6 +874,17 @@ public GTRecipeJS stationResearch(UnaryOperator Date: Fri, 27 Dec 2024 23:34:22 -0700 Subject: [PATCH 16/21] attach material stacks from kube to the recipe builder --- .../api/data/chemical/ChemicalHelper.java | 6 +++++ .../data/recipe/builder/GTRecipeBuilder.java | 10 +++++++ .../integration/kjs/GregTechKubeJSPlugin.java | 5 ++++ .../kjs/recipe/GTRecipeSchema.java | 26 +++++++++++++++++++ .../recipe/components/GTRecipeComponents.java | 3 ++- 5 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index 2741025563..b6b58df471 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -20,6 +20,7 @@ import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; @@ -54,6 +55,11 @@ public static MaterialStack getMaterialStack(Object object) { return getMaterialStack(item); } else if (object instanceof SizedIngredient sized) { return getMaterialStack(sized.getItems()[0]); + } else if (object instanceof Ingredient ing) { + for(var stack : ing.getItems()) { + var ms = getMaterialStack(stack); + if(ms != null) return ms; + } } return null; } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 7e9baad0e6..16763ab2aa 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -1238,6 +1238,16 @@ public GTRecipeBuilder addMaterialInfo(boolean item, boolean fluid) { return this; } + public GTRecipeBuilder setTempItemMaterialStacks(List stacks) { + tempItemMaterialStacks = stacks; + return this; + } + + public GTRecipeBuilder setTempFluidMaterialStacks(List stacks) { + tempFluidStacks = stacks; + return this; + } + public void toJson(JsonObject json) { json.addProperty("type", recipeType.registryName.toString()); json.addProperty("duration", Math.abs(duration)); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index c613d0856e..206ff44fb1 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -8,6 +8,7 @@ import com.gregtechceu.gtceu.api.data.RotationState; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.Element; +import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconSet; @@ -515,6 +516,10 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, if (gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS) != null) { builder.tickOutputChanceLogic.putAll(gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS)); } + builder.setTempItemMaterialStacks(gtRecipe.itemMaterialStacks); + builder.setTempFluidMaterialStacks(gtRecipe.fluidMaterialStacks); + gtRecipe.itemMaterialStacks = null; + gtRecipe.fluidMaterialStacks = null; builder.addMaterialInfo(gtRecipe.itemMaterialInfo, gtRecipe.fluidMaterialInfo); builder.save(builtRecipe -> recipesByName.put(builtRecipe.getId(), diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index a1d3c0fe48..9e9debab09 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -1,10 +1,12 @@ package com.gregtechceu.gtceu.integration.kjs.recipe; import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.recipe.*; import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialEntry; +import com.gregtechceu.gtceu.api.data.chemical.material.stack.MaterialStack; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.item.component.IDataItem; @@ -54,6 +56,7 @@ import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; @@ -87,6 +90,9 @@ class GTRecipeJS extends RecipeJS { @Getter private final Collection researchRecipeEntries = new ArrayList<>(); private boolean generatingRecipes = true; + + public List itemMaterialStacks = new ArrayList<>(); + public List fluidMaterialStacks = new ArrayList<>(); public boolean itemMaterialInfo = false; public boolean fluidMaterialInfo = false; @@ -229,11 +235,21 @@ public GTRecipeJS itemInput(MaterialEntry input, int count) { } public GTRecipeJS inputItems(InputItem... inputs) { + for(var stack : inputs) { + var matStack = ChemicalHelper.getMaterialStack(stack.ingredient); + if(matStack != null) { + itemMaterialStacks.add(matStack.copy(matStack.amount() * stack.count)); + } + } return input(ItemRecipeCapability.CAP, (Object[]) inputs); } public GTRecipeJS inputItems(ItemStack... inputs) { for (ItemStack itemStack : inputs) { + var matStack = ChemicalHelper.getMaterialStack(itemStack); + if(matStack != null) { + itemMaterialStacks.add(matStack.copy(matStack.amount() * itemStack.getCount())); + } if (itemStack.isEmpty()) { GTCEu.LOGGER.error("Input items is empty, id: %s", id); } @@ -279,6 +295,7 @@ public GTRecipeJS inputItems(MaterialEntry input, int count) { } public GTRecipeJS inputItems(TagPrefix orePrefix, Material material, int count) { + itemMaterialStacks.add(new MaterialStack(material, orePrefix.getMaterialAmount(material) * count)); return inputItems(ChemicalHelper.getTag(orePrefix, material), count); } @@ -637,6 +654,15 @@ public GTRecipeJS chancedTickInputLogic(RecipeCapability cap, ChanceLogic log } public GTRecipeJS inputFluids(GTRecipeComponents.FluidIngredientJS... inputs) { + for(var fluidIng : inputs) { + for(var stack : fluidIng.getIngredient().getStacks()) { + var matStack = ChemicalHelper.getMaterial(stack.getFluid()); + if(matStack != null) { + fluidMaterialStacks.add(new MaterialStack(matStack, + ((long) stack.getAmount() * GTValues.M) / GTValues.L)); + } + } + } return input(FluidRecipeCapability.CAP, (Object[]) inputs); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java index 3647d78f51..38a692030e 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java @@ -10,6 +10,7 @@ import com.gregtechceu.gtceu.api.registry.GTRegistries; import com.gregtechceu.gtceu.common.data.GTRecipeCapabilities; +import lombok.Getter; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceLocation; @@ -388,7 +389,7 @@ public String toString() { } public static class FluidIngredientJS implements InputFluid, OutputFluid { - + @Getter private final FluidIngredient ingredient; public FluidIngredientJS(FluidIngredient ingredient) { From 74f78f292c662a647ecb4b721e960924352c8a24 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 28 Dec 2024 17:51:18 -0700 Subject: [PATCH 17/21] get kube to work with material info removals and overriding --- .../gtceu/common/data/GTRecipes.java | 8 ++- .../data/recipe/builder/GTRecipeBuilder.java | 66 ++++++++++++++----- .../integration/kjs/GregTechKubeJSPlugin.java | 11 ++++ .../kjs/recipe/GTRecipeSchema.java | 6 ++ 4 files changed, 72 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index 631a4ae265..2b30661ac1 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -1,5 +1,6 @@ package com.gregtechceu.gtceu.common.data; +import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.addon.AddonFinder; import com.gregtechceu.gtceu.api.data.chemical.material.ItemMaterialData; import com.gregtechceu.gtceu.data.recipe.MaterialInfoLoader; @@ -85,9 +86,10 @@ public static void recipeAddition(Consumer originalConsumer) { RecipeAddition.init(consumer); // Must run recycling recipes very last - RecyclingRecipes.init(consumer); - ItemMaterialData.resolveItemMaterialInfos(consumer); - + if(!GTCEu.isKubeJSLoaded()) { + RecyclingRecipes.init(consumer); + ItemMaterialData.resolveItemMaterialInfos(consumer); + } AddonFinder.getAddons().forEach(addon -> addon.addRecipes(consumer)); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 16763ab2aa..66fc515e11 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -107,6 +107,7 @@ public class GTRecipeBuilder { public boolean isFuel = false; private boolean itemMaterialInfo = false; private boolean fluidMaterialInfo = false; + private boolean removePreviousMatInfo = false; public GTRecipeCategory recipeCategory; @Setter public BiConsumer> onSave; @@ -1238,6 +1239,11 @@ public GTRecipeBuilder addMaterialInfo(boolean item, boolean fluid) { return this; } + public GTRecipeBuilder removeMaterialInfo() { + removePreviousMatInfo = true; + return this; + } + public GTRecipeBuilder setTempItemMaterialStacks(List stacks) { tempItemMaterialStacks = stacks; return this; @@ -1355,9 +1361,14 @@ public void save(Consumer consumer) { } } - if (itemMaterialInfo) { + if (itemMaterialInfo || fluidMaterialInfo) { addOutputMaterialInfo(); } + + if(removePreviousMatInfo) { + removeExistingMaterialInfo(); + } + tempItemStacks = null; tempItemMaterialStacks = null; tempFluidStacks = null; @@ -1393,36 +1404,59 @@ public void addOutputMaterialInfo() { matStacks.merge(input.material(), am, Long::sum); } - if (fluidMaterialInfo) { - var fluidInputs = input.get(FluidRecipeCapability.CAP); - for (var input : tempFluidStacks) { - long am = input.amount() / outputCount; - matStacks.merge(input.material(), am, Long::sum); - } + for (var input : tempFluidStacks) { + long am = input.amount() / outputCount; + matStacks.merge(input.material(), am, Long::sum); } - var matList = matStacks.reference2LongEntrySet().stream() - .map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); - if (out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); - var existingItemInfo = ItemMaterialData.getMaterialInfo(out); if (!matStacks.isEmpty()) { - if (existingItemInfo != null) { - ItemMaterialData.clearMaterialInfo(out); - } + var matList = matStacks.reference2LongEntrySet().stream() + .map(mat -> new MaterialStack(mat.getKey(), mat.getLongValue())).toList(); + ItemMaterialData.registerMaterialInfo(out, new ItemMaterialInfo(matList)); } } } + private void removeExistingMaterialInfo() { + var itemOutputs = output.get(ItemRecipeCapability.CAP); + if (itemOutputs.size() == 1) { + var currOutput = itemOutputs.get(0).content; + ItemLike out = null; + int outputCount = 0; + + if (currOutput instanceof Item i) { + out = i; + outputCount = 1; + } else if (currOutput instanceof Supplier supplier && supplier.get() instanceof ItemLike i) { + out = i; + outputCount = 1; + } else if (currOutput instanceof ItemStack stack) { + out = stack.getItem(); + outputCount = stack.getCount(); + } else if (currOutput instanceof SizedIngredient sized) { + out = sized.getItems()[0].getItem(); + outputCount = sized.getItems()[0].getCount(); + } + + if (out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0) + ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.remove(new ItemStack(out, outputCount)); + + var existingItemInfo = ItemMaterialData.getMaterialInfo(out); + if (existingItemInfo != null) { + ItemMaterialData.clearMaterialInfo(out); + } + } + } + public GTRecipe buildRawRecipe() { - var recipe = new GTRecipe(recipeType, id.withPrefix(recipeType.registryName.getPath() + "/"), + return new GTRecipe(recipeType, id.withPrefix(recipeType.registryName.getPath() + "/"), input, output, tickInput, tickOutput, inputChanceLogic, outputChanceLogic, tickInputChanceLogic, tickOutputChanceLogic, conditions, List.of(), data, duration, isFuel, recipeCategory); - return recipe; } ////////////////////////////////////// diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index 206ff44fb1..37604834b9 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -58,6 +58,7 @@ import com.gregtechceu.gtceu.common.unification.material.MaterialRegistryManager; import com.gregtechceu.gtceu.data.recipe.CraftingComponent; import com.gregtechceu.gtceu.data.recipe.builder.GTRecipeBuilder; +import com.gregtechceu.gtceu.data.recipe.misc.RecyclingRecipes; import com.gregtechceu.gtceu.integration.kjs.builders.*; import com.gregtechceu.gtceu.integration.kjs.builders.block.CoilBlockBuilder; import com.gregtechceu.gtceu.integration.kjs.builders.machine.*; @@ -516,11 +517,15 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, if (gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS) != null) { builder.tickOutputChanceLogic.putAll(gtRecipe.getValue(GTRecipeSchema.TICK_OUTPUT_CHANCE_LOGICS)); } + builder.setTempItemMaterialStacks(gtRecipe.itemMaterialStacks); builder.setTempFluidMaterialStacks(gtRecipe.fluidMaterialStacks); gtRecipe.itemMaterialStacks = null; gtRecipe.fluidMaterialStacks = null; + builder.addMaterialInfo(gtRecipe.itemMaterialInfo, gtRecipe.fluidMaterialInfo); + if(gtRecipe.removeMaterialInfo) + builder.removeMaterialInfo(); builder.save(builtRecipe -> recipesByName.put(builtRecipe.getId(), GTRecipeSerializer.SERIALIZER.fromJson(builtRecipe.getId(), builtRecipe.serializeRecipe()))); @@ -528,6 +533,12 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, }))); PowerlessJetpack.FUELS.clear(); + // Must run recycling recipes very last + RecyclingRecipes.init(builtRecipe -> recipesByName.put(builtRecipe.getId(), + GTRecipeSerializer.SERIALIZER.fromJson(builtRecipe.getId(), builtRecipe.serializeRecipe()))); + ItemMaterialData.resolveItemMaterialInfos(builtRecipe -> recipesByName.put(builtRecipe.getId(), + GTRecipeSerializer.SERIALIZER.fromJson(builtRecipe.getId(), builtRecipe.serializeRecipe()))); + // clone vanilla recipes for stuff like electric furnaces, etc for (RecipeType recipeType : BuiltInRegistries.RECIPE_TYPE) { if (recipeType instanceof GTRecipeType gtRecipeType) { diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index 9e9debab09..34c4d88a13 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -95,6 +95,7 @@ class GTRecipeJS extends RecipeJS { public List fluidMaterialStacks = new ArrayList<>(); public boolean itemMaterialInfo = false; public boolean fluidMaterialInfo = false; + public boolean removeMaterialInfo = false; @HideFromJS @Override @@ -911,6 +912,11 @@ public GTRecipeJS addMaterialInfo(boolean item, boolean fluid) { return this; } + public GTRecipeJS removeMaterialInfo() { + this.removeMaterialInfo = true; + return this; + } + /* * KubeJS overrides */ From 5e11db37707e760f7cdb47baab9dfdd6a69bf7c7 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 28 Dec 2024 17:52:01 -0700 Subject: [PATCH 18/21] spotless --- .../gtceu/api/data/chemical/ChemicalHelper.java | 4 ++-- .../gregtechceu/gtceu/common/data/GTRecipes.java | 2 +- .../gtceu/data/recipe/builder/GTRecipeBuilder.java | 2 +- .../gtceu/integration/kjs/GregTechKubeJSPlugin.java | 2 +- .../integration/kjs/recipe/GTRecipeSchema.java | 13 ++++++------- .../kjs/recipe/components/GTRecipeComponents.java | 3 ++- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java index b6b58df471..9ceea18046 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/ChemicalHelper.java @@ -56,9 +56,9 @@ public static MaterialStack getMaterialStack(Object object) { } else if (object instanceof SizedIngredient sized) { return getMaterialStack(sized.getItems()[0]); } else if (object instanceof Ingredient ing) { - for(var stack : ing.getItems()) { + for (var stack : ing.getItems()) { var ms = getMaterialStack(stack); - if(ms != null) return ms; + if (ms != null) return ms; } } return null; diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java index 2b30661ac1..4457e2385c 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipes.java @@ -86,7 +86,7 @@ public static void recipeAddition(Consumer originalConsumer) { RecipeAddition.init(consumer); // Must run recycling recipes very last - if(!GTCEu.isKubeJSLoaded()) { + if (!GTCEu.isKubeJSLoaded()) { RecyclingRecipes.init(consumer); ItemMaterialData.resolveItemMaterialInfos(consumer); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index 66fc515e11..f700d82d46 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -1365,7 +1365,7 @@ public void save(Consumer consumer) { addOutputMaterialInfo(); } - if(removePreviousMatInfo) { + if (removePreviousMatInfo) { removeExistingMaterialInfo(); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index 37604834b9..6b81c8646b 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -524,7 +524,7 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, gtRecipe.fluidMaterialStacks = null; builder.addMaterialInfo(gtRecipe.itemMaterialInfo, gtRecipe.fluidMaterialInfo); - if(gtRecipe.removeMaterialInfo) + if (gtRecipe.removeMaterialInfo) builder.removeMaterialInfo(); builder.save(builtRecipe -> recipesByName.put(builtRecipe.getId(), diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java index 34c4d88a13..dd924f924c 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java @@ -56,7 +56,6 @@ import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; -import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; @@ -236,9 +235,9 @@ public GTRecipeJS itemInput(MaterialEntry input, int count) { } public GTRecipeJS inputItems(InputItem... inputs) { - for(var stack : inputs) { + for (var stack : inputs) { var matStack = ChemicalHelper.getMaterialStack(stack.ingredient); - if(matStack != null) { + if (matStack != null) { itemMaterialStacks.add(matStack.copy(matStack.amount() * stack.count)); } } @@ -248,7 +247,7 @@ public GTRecipeJS inputItems(InputItem... inputs) { public GTRecipeJS inputItems(ItemStack... inputs) { for (ItemStack itemStack : inputs) { var matStack = ChemicalHelper.getMaterialStack(itemStack); - if(matStack != null) { + if (matStack != null) { itemMaterialStacks.add(matStack.copy(matStack.amount() * itemStack.getCount())); } if (itemStack.isEmpty()) { @@ -655,10 +654,10 @@ public GTRecipeJS chancedTickInputLogic(RecipeCapability cap, ChanceLogic log } public GTRecipeJS inputFluids(GTRecipeComponents.FluidIngredientJS... inputs) { - for(var fluidIng : inputs) { - for(var stack : fluidIng.getIngredient().getStacks()) { + for (var fluidIng : inputs) { + for (var stack : fluidIng.getIngredient().getStacks()) { var matStack = ChemicalHelper.getMaterial(stack.getFluid()); - if(matStack != null) { + if (matStack != null) { fluidMaterialStacks.add(new MaterialStack(matStack, ((long) stack.getAmount() * GTValues.M) / GTValues.L)); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java index 38a692030e..99767540aa 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java @@ -10,7 +10,6 @@ import com.gregtechceu.gtceu.api.registry.GTRegistries; import com.gregtechceu.gtceu.common.data.GTRecipeCapabilities; -import lombok.Getter; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceLocation; @@ -33,6 +32,7 @@ import dev.latvian.mods.kubejs.typings.desc.TypeDescJS; import dev.latvian.mods.kubejs.util.ListJS; import dev.latvian.mods.rhino.mod.util.NBTUtils; +import lombok.Getter; import java.util.*; @@ -389,6 +389,7 @@ public String toString() { } public static class FluidIngredientJS implements InputFluid, OutputFluid { + @Getter private final FluidIngredient ingredient; From 7272430030360d686410a68cda6aaad81df73cb8 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 28 Dec 2024 17:55:01 -0700 Subject: [PATCH 19/21] merge --- .../gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java index d8d7d11abb..fe9d4ae0c6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/RecyclingRecipes.java @@ -114,7 +114,7 @@ private static void registerMaceratorRecycling(Consumer provider MaterialEntry entry = ChemicalHelper.getMaterialEntry(input.getItem()); TagKey inputTag = null; - if (entry != null && entry.material() != null && entry.tagPrefix.unificationEnabled()) { + if (entry != null && entry.material() != null && entry.tagPrefix().unificationEnabled()) { inputTag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); } From 95b21f5e1cfccc7c8eb103c1d74df7f268be1594 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 30 Dec 2024 02:36:24 -0700 Subject: [PATCH 20/21] fix errant code --- .../renderer/BlockHighlightRenderer.java | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java index a5cdff8f1e..f954134c0b 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java @@ -65,44 +65,6 @@ public static void renderBlockHighlight(PoseStack poseStack, Camera camera, Bloc Set toolType = ToolHelper.getToolTypes(held); BlockEntity blockEntity = level.getBlockEntity(blockPos); - var block = level.getBlockState(blockPos); - - if (block.getBlock() instanceof MaterialBlock) { - rColour = gColour = 0; - bColour = 0; - alpha = 0.55f; - Vec3 pos = camera.getPosition(); - poseStack.pushPose(); - poseStack.translate(-pos.x, -pos.y, -pos.z); - var buffer = multiBufferSource.getBuffer(RenderType.lines()); - RenderSystem.lineWidth(3); - RenderSystem.disableDepthTest(); - RenderSystem.enableBlend(); - var mat = poseStack.last().pose(); - var box = new AABB(blockPos); - float minX = (float) box.minX, minY = (float) box.minY, minZ = (float) box.minZ, - maxX = (float) box.maxX, maxY = (float) box.maxY, maxZ = (float) box.maxZ; - drawLine(mat, buffer, new Vector3f(minX, minY, minZ), new Vector3f(maxX, minY, minZ)); // bottom face - drawLine(mat, buffer, new Vector3f(maxX, minY, minZ), new Vector3f(maxX, minY, maxZ)); - drawLine(mat, buffer, new Vector3f(maxX, minY, maxZ), new Vector3f(minX, minY, maxZ)); - drawLine(mat, buffer, new Vector3f(minX, minY, maxZ), new Vector3f(minX, minY, minZ)); - - drawLine(mat, buffer, new Vector3f(minX, minY, minZ), new Vector3f(minX, maxY, minZ)); // posts - drawLine(mat, buffer, new Vector3f(maxX, minY, minZ), new Vector3f(maxX, maxY, minZ)); - drawLine(mat, buffer, new Vector3f(maxX, minY, maxZ), new Vector3f(maxX, maxY, maxZ)); - drawLine(mat, buffer, new Vector3f(minX, minY, maxZ), new Vector3f(minX, maxY, maxZ)); - - drawLine(mat, buffer, new Vector3f(minX, maxY, minZ), new Vector3f(maxX, maxY, minZ)); // posts - drawLine(mat, buffer, new Vector3f(maxX, maxY, minZ), new Vector3f(maxX, maxY, maxZ)); - drawLine(mat, buffer, new Vector3f(maxX, maxY, maxZ), new Vector3f(minX, maxY, maxZ)); - drawLine(mat, buffer, new Vector3f(minX, maxY, maxZ), new Vector3f(minX, maxY, minZ)); - - RenderSystem.disableBlend(); - RenderSystem.enableDepthTest(); - poseStack.popPose(); - return; - } - // draw tool grid highlight if ((!toolType.isEmpty()) || (held.isEmpty() && player.isShiftKeyDown())) { IToolGridHighlight gridHighlight = null; From 7a263fea07e1923ec58b1902bc97149040af1e3e Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 30 Dec 2024 04:35:54 -0700 Subject: [PATCH 21/21] fix errant code --- .../gtceu/client/renderer/BlockHighlightRenderer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java index f954134c0b..97cb6a6529 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java @@ -1,6 +1,5 @@ package com.gregtechceu.gtceu.client.renderer; -import com.gregtechceu.gtceu.api.block.MaterialBlock; import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; import com.gregtechceu.gtceu.api.capability.ICoverable;