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 cef573070b..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 @@ -2,43 +2,35 @@ 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.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.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKey; -import com.gregtechceu.gtceu.common.data.GTMaterialItems; -import com.gregtechceu.gtceu.data.recipe.misc.StoneMachineRecipes; -import com.gregtechceu.gtceu.data.recipe.misc.WoodMachineRecipes; -import com.gregtechceu.gtceu.data.tags.TagsHandler; -import com.gregtechceu.gtceu.utils.SupplierMemoizer; +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.tags.TagKey; -import net.minecraft.world.item.BlockItem; 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; 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; @@ -51,124 +43,54 @@ */ 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); + } 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; } @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) { @@ -180,31 +102,31 @@ 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)) { 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())) .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; } @@ -260,37 +182,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()); @@ -301,32 +223,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); @@ -334,17 +256,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); @@ -354,14 +276,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 @@ -387,34 +309,13 @@ 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); - } - }); - } - GTMaterialItems.toUnify.forEach(ChemicalHelper::registerUnificationItems); - WoodMachineRecipes.registerUnificationInfo(); - StoneMachineRecipes.registerUnificationInfo(); - } } 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..7726cf425d --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/ItemMaterialData.java @@ -0,0 +1,227 @@ +package com.gregtechceu.gtceu.api.data.chemical.material; + +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.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; +import com.gregtechceu.gtceu.utils.ItemStackHashStrategy; +import com.gregtechceu.gtceu.utils.SupplierMemoizer; + +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; +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.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; + +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); + } + + 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) { + 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)); + } + } + + @ApiStatus.Internal + public static void reinitializeMaterialData(ICondition.IContext context) { + // 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); + } + }); + } + 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()) { + 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().copyWithCount(1), + ITEM_MATERIAL_INFO.get(entry.getKey().getItem()).getMaterials(), false, null); + } + 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/data/chemical/material/properties/HazardProperty.java b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/properties/HazardProperty.java index f63a34822f..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 @@ -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,10 +191,10 @@ public static Material getValidHazardMaterial(ItemStack item) { isFluid = true; } } else if (ConfigHolder.INSTANCE.gameplay.universalHazards) { - UnificationEntry entry = ChemicalHelper.getUnificationEntry(item.getItem()); - if (entry != null && entry.material != null) { - material = entry.material; - prefix = entry.tagPrefix; + MaterialEntry entry = ChemicalHelper.getMaterialEntry(item.getItem()); + 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 d388f25739..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,35 +1,60 @@ package com.gregtechceu.gtceu.api.data.chemical.material.stack; +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; public class ItemMaterialInfo { - private final 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.size() == 0 ? 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) { + 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 @@ -38,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.size() == 0 ? "" : materials.get(0).material().toCamelCaseString(); + return sortedMaterials.isEmpty() ? "" : sortedMaterials.get(0).material().toCamelCaseString(); } } 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 new file mode 100644 index 0000000000..dab0a38aea --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/MaterialEntry.java @@ -0,0 +1,51 @@ +package com.gregtechceu.gtceu.api.data.chemical.material.stack; + +import com.gregtechceu.gtceu.api.data.chemical.material.Material; +import com.gregtechceu.gtceu.api.data.tag.TagPrefix; + +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; + +public record MaterialEntry(TagPrefix tagPrefix, @Nullable Material material) { + + public MaterialEntry(TagPrefix tagPrefix) { + this(tagPrefix, null); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + MaterialEntry that = (MaterialEntry) o; + + if (tagPrefix != that.tagPrefix) return false; + return Objects.equals(material, that.material); + } + + @Override + public int hashCode() { + int result = (tagPrefix != null ? tagPrefix.hashCode() : 0); + result = 31 * result + (material != null ? material.hashCode() : 0); + return result; + } + + @Override + public String toString() { + 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); +} 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/UnificationEntry.java deleted file mode 100644 index 4aadc9675b..0000000000 --- a/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/stack/UnificationEntry.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gregtechceu.gtceu.api.data.chemical.material.stack; - -import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.api.data.tag.TagPrefix; - -import org.jetbrains.annotations.Nullable; - -import java.util.Objects; - -public class UnificationEntry { - - 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; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - UnificationEntry that = (UnificationEntry) o; - - if (tagPrefix != that.tagPrefix) return false; - return Objects.equals(material, that.material); - } - - @Override - public int hashCode() { - int result = (tagPrefix != null ? tagPrefix.hashCode() : 0); - result = 31 * result + (material != null ? material.hashCode() : 0); - return result; - } - - @Override - 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"; - } - }; -} 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 e21b9e58fe..d06a3f2d2f 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; @@ -81,6 +82,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( @@ -1137,7 +1140,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..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 @@ -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,14 @@ 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..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 @@ -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,9 +70,9 @@ 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()); - if (entry != null && entry.material != null) { - name = "material_" + entry.material.toString(); + var entry = ChemicalHelper.getMaterialEntry(blockState.getBlock()); + if (entry != null && entry.material() != null) { + name = "material_" + entry.material().toString(); } return name; }); @@ -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..a926292946 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,22 +427,22 @@ default int getTotalHarvestLevel(ItemStack stack) { if (repair.getItem() instanceof IGTTool gtTool) { return getToolMaterial(toRepair) == gtTool.getToolMaterial(repair); } - UnificationEntry entry = ChemicalHelper.getUnificationEntry(repair.getItem()); - if (entry == null || entry.material == null) return false; - if (entry.material == getToolMaterial(toRepair)) { + 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 - 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 a07a2a6983..1beba8f242 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,8 +275,9 @@ public GTRecipeBuilder recipeBuilder(String id, Object... append) { return recipeBuilder(GTCEu.id(id), append); } - public GTRecipeBuilder recipeBuilder(UnificationEntry entry, Object... append) { - return recipeBuilder(GTCEu.id(entry.tagPrefix + (entry.material == null ? "" : "_" + entry.material.getName())), + 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 ee88f08784..88ba7cd181 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,22 +96,22 @@ 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; IElectricItem powerUnit = GTCapabilityHelper.getElectricItem(realTool); - if (toolHead == null) return ItemStack.EMPTY; - GTToolType[] toolArray = TOOL_HEAD_TO_TOOL_MAP.get(toolHead.tagPrefix); - ItemStack newTool = GTMaterialItems.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 = GTMaterialItems.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/api/recipe/ingredient/FluidIngredient.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/ingredient/FluidIngredient.java index 569fac4a45..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,5 +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; @@ -283,9 +285,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..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,15 +1,23 @@ package com.gregtechceu.gtceu.api.recipe.ingredient; 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.common.collect.Lists; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import it.unimi.dsi.fastutil.ints.IntList; @@ -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/client/TooltipsHandler.java b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java index 3fe75aeafa..ef72a2b6b2 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/client/TooltipsHandler.java @@ -44,11 +44,11 @@ public class TooltipsHandler { public static void appendTooltips(ItemStack stack, TooltipFlag flag, List tooltips) { // Formula - var unificationEntry = ChemicalHelper.getUnificationEntry(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()) + 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()) .withStyle(ChatFormatting.YELLOW)); } if (stack.getItem() instanceof BucketItem bucket) { 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..97cb6a6529 100644 --- a/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java +++ b/src/main/java/com/gregtechceu/gtceu/client/renderer/BlockHighlightRenderer.java @@ -165,11 +165,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 +365,10 @@ 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 985142e0de..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.ChemicalHelper; 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; @@ -269,15 +267,6 @@ public void registerPackFinders(AddPackFindersEvent event) { // Clear old data GTDynamicDataPack.clearServer(); - // Register recipes & unification data again - long startTime = System.currentTimeMillis(); - ChemicalHelper.reinitializeUnification(); - 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/GTBlocks.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java index b51a9b26cf..078272a2be 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java @@ -6,10 +6,10 @@ 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.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.*; @@ -1377,9 +1377,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); GTMaterialItems.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 3d6a960319..c856b27151 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java @@ -5,13 +5,14 @@ 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; 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.chemical.material.stack.UnificationEntry; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.data.tag.TagUtil; import com.gregtechceu.gtceu.api.gui.misc.ProspectorMode; @@ -2590,7 +2591,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); GTMaterialItems.toUnify.put(entry, supplier); - ChemicalHelper.registerUnificationItems(entry, supplier); + ItemMaterialData.registerMaterialInfoItems(entry, supplier); }); return builder; }; 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 f914450666..4457e2385c 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,8 @@ 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; import com.gregtechceu.gtceu.data.recipe.configurable.RecipeAddition; import com.gregtechceu.gtceu.data.recipe.configurable.RecipeRemoval; @@ -11,6 +13,7 @@ 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; @@ -19,6 +22,8 @@ public class GTRecipes { + public static ICondition.IContext RECIPE_CONTEXT = null; + public static final Set RECIPE_FILTERS = new ObjectOpenHashSet<>(); /* @@ -79,9 +84,12 @@ public static void recipeAddition(Consumer originalConsumer) { // Config-dependent recipes RecipeAddition.init(consumer); - // Must run recycling recipes very last - RecyclingRecipes.init(consumer); + // Must run recycling recipes very last + 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/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 871c95c47b..bb51f1c5d7 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; @@ -61,11 +62,11 @@ 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; + 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( @@ -125,7 +126,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..6866b102ca 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/MaterialInfoLoader.java @@ -1,10 +1,9 @@ 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; -import com.gregtechceu.gtceu.common.data.GTMachines; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.gregtechceu.gtceu.config.ConfigHolder; @@ -16,794 +15,802 @@ public class MaterialInfoLoader { public static void init() { - ChemicalHelper.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(), - 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(), - 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(), - 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(), - 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(), - 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(), - 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(), - 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( - 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( - 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( - 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( - 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( - 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( - 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( - 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( - 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( - 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( - 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( - 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 - )); - - ChemicalHelper.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 - )); - - ChemicalHelper.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 - )); - - ChemicalHelper.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 - )); - - ChemicalHelper.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 - )); - - ChemicalHelper.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 - )); - - ChemicalHelper.registerMaterialInfo(GTBlocks.PLASTCRETE.get(), new ItemMaterialInfo( + /* + * 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 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 74a6996fa2..13f6ea8a45 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.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.api.item.tool.ToolHelper; import com.gregtechceu.gtceu.data.recipe.builder.*; @@ -218,7 +219,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: *

    @@ -238,7 +239,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); @@ -279,11 +280,11 @@ public static void addShapedRecipe(Consumer provider, boolean wi } } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); - } else if (content instanceof UnificationEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + } else if (content instanceof MaterialEntry entry) { + 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()); } @@ -294,26 +295,26 @@ public static void addShapedRecipe(Consumer provider, boolean wi } builder.save(provider); - if (withUnificationData) { - ChemicalHelper.registerMaterialInfo(result.getItem(), getRecyclingIngredients(result.getCount(), recipe)); + 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, @@ -360,11 +361,11 @@ 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) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + } else if (content instanceof MaterialEntry entry) { + 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()); } @@ -376,7 +377,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)); } } @@ -430,11 +431,11 @@ public static void addShapedFluidContainerRecipe(Consumer provid } } else if (content instanceof ItemLike itemLike) { builder.define(sign, itemLike); - } else if (content instanceof UnificationEntry entry) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + } else if (content instanceof MaterialEntry entry) { + 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()); } @@ -447,7 +448,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)); } } @@ -500,11 +501,11 @@ 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) { - TagKey tag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + } else if (content instanceof MaterialEntry entry) { + 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) { @@ -564,8 +565,8 @@ 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) { - ItemStack stack = ChemicalHelper.get(entry.tagPrefix, entry.material); + } else if (ingredient instanceof MaterialEntry entry) { + ItemStack stack = ChemicalHelper.get(entry.tagPrefix(), entry.material()); if (stack == ItemStack.EMPTY) continue; itemLike = stack.getItem(); } else if (ingredient instanceof ItemProviderEntry entry) { @@ -573,7 +574,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)) { @@ -584,7 +585,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/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 526f89ce03..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 @@ -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.UnificationEntry; +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; @@ -46,6 +50,7 @@ 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; @@ -100,13 +105,21 @@ public class GTRecipeBuilder { public int tierChanceBoost = 0; @Setter public boolean isFuel = false; + private boolean itemMaterialInfo = false; + private boolean fluidMaterialInfo = false; + private boolean removePreviousMatInfo = false; 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; @@ -333,7 +346,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); @@ -341,7 +354,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; } @@ -356,7 +369,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); @@ -364,7 +377,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; } @@ -381,6 +394,15 @@ 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 { + if (chance == maxChance) { + tempItemStacks.add(input); + } + } } return input(ItemRecipeCapability.CAP, SizedIngredient.create(input)); } @@ -389,6 +411,15 @@ 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 { + if (chance == maxChance) { + tempItemStacks.add(itemStack); + } + } } } return input(ItemRecipeCapability.CAP, @@ -411,10 +442,26 @@ 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()); } @@ -426,30 +473,44 @@ public GTRecipeBuilder inputItems(TagPrefix orePrefix, Material material) { return inputItems(orePrefix, material, 1); } - public GTRecipeBuilder inputItems(UnificationEntry input) { - if (input.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); + 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.addAll(input.tagPrefix().secondaryMaterials()); } - return inputItems(input.tagPrefix, input.material, 1); + return inputItems(input.tagPrefix(), input.material(), 1); } - public GTRecipeBuilder inputItems(UnificationEntry input, int count) { - if (input.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, input.tagPrefix); + public GTRecipeBuilder inputItems(MaterialEntry input, int count) { + 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) { - TagKey tag = ChemicalHelper.getTag(orePrefix, material); + 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, 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))); + } + 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 inputItems(item); + return input(ItemRecipeCapability.CAP, SizedIngredient.create(item)); } return inputItems(tag, count); } @@ -469,13 +530,13 @@ 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); } 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; } @@ -488,13 +549,13 @@ 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); } 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; } @@ -541,27 +602,34 @@ 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(UnificationEntry entry) { - if (entry.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); + 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); + return outputItems(entry.tagPrefix(), entry.material()); } - public GTRecipeBuilder outputItems(UnificationEntry entry, int count) { - if (entry.material == null) { - GTCEu.LOGGER.error("Unification Entry material is null, id: {}, TagPrefix: {}", id, entry.tagPrefix); + public GTRecipeBuilder outputItems(MaterialEntry entry, int count) { + 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) { @@ -902,13 +970,32 @@ 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) { + 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) { + 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( TagUtil.createFluidTag(BuiltInRegistries.FLUID.getKey(fluid.getFluid()).getPath()), fluid.getAmount(), fluid.getTag())).toArray(FluidIngredient[]::new)); @@ -1141,6 +1228,32 @@ 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 GTRecipeBuilder removeMaterialInfo() { + removePreviousMatInfo = true; + 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)); @@ -1248,15 +1361,102 @@ public void save(Consumer consumer) { } } + if (itemMaterialInfo || fluidMaterialInfo) { + addOutputMaterialInfo(); + } + + if (removePreviousMatInfo) { + removeExistingMaterialInfo(); + } + + 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); + } + + for (var input : tempFluidStacks) { + long am = input.amount() / outputCount; + matStacks.merge(input.material(), am, Long::sum); + } + + if (out != null && out != ItemStack.EMPTY.getItem() && outputCount != 0 && !tempItemStacks.isEmpty()) + ItemMaterialData.UNRESOLVED_ITEM_MATERIAL_INFO.put(new ItemStack(out, outputCount), tempItemStacks); + + if (!matStacks.isEmpty()) { + 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; } ////////////////////////////////////// @@ -1285,13 +1485,8 @@ 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/configurable/RecipeAddition.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeAddition.java index 79ffd00a28..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 @@ -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.*; @@ -54,14 +54,14 @@ private static void steelSteamMultiblocks(Consumer provider) { "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", GTMultiMachines.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', @@ -74,14 +74,14 @@ private static void steelSteamMultiblocks(Consumer provider) { "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", GTMultiMachines.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', @@ -109,18 +109,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(), @@ -137,8 +137,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); @@ -156,23 +156,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) @@ -182,7 +182,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) @@ -192,7 +192,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) @@ -206,11 +206,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) @@ -231,8 +231,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") @@ -280,17 +280,29 @@ private static void hardRedstoneRecipes(Consumer provider) { .outputItems(new ItemStack(Blocks.PISTON, 16)) .duration(800).EUt(VA[LV]).save(provider); + VanillaRecipeHelper.addShapedRecipe(provider, "stone_pressure_plate", + new ItemStack(Blocks.STONE_PRESSURE_PLATE, 2), "ShS", "LCL", "SdS", + 'S', new MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'L', new ItemStack(Blocks.STONE_SLAB), + '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 MaterialEntry(TagPrefix.screw, GTMaterials.Iron), + 'L', new ItemStack(Blocks.POLISHED_BLACKSTONE_SLAB), + '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("light_weighted_pressure_plate") .inputItems(TagPrefix.spring, GTMaterials.Steel) @@ -316,28 +328,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) @@ -367,104 +379,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") @@ -482,29 +494,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", @@ -540,25 +552,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) @@ -607,12 +619,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) @@ -625,16 +637,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) @@ -646,28 +658,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) @@ -723,9 +735,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 ", @@ -740,25 +752,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) @@ -771,10 +783,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) @@ -813,15 +825,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", @@ -838,9 +850,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()) @@ -852,7 +864,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") @@ -865,7 +877,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)) @@ -876,7 +888,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)) @@ -887,8 +899,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) @@ -900,8 +912,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") @@ -914,8 +926,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") @@ -926,8 +938,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") @@ -940,9 +952,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)) @@ -954,8 +966,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") @@ -968,8 +980,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") @@ -981,8 +993,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") @@ -994,7 +1006,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) @@ -1035,7 +1047,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)) @@ -1046,8 +1058,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) @@ -1058,8 +1070,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) @@ -1076,7 +1088,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") @@ -1088,8 +1100,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") @@ -1102,10 +1114,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) @@ -1125,7 +1137,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)) @@ -1267,16 +1279,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) @@ -1286,96 +1298,96 @@ 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 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 156c68fdc0..b04260ec22 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; @@ -247,9 +247,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) @@ -272,9 +272,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) @@ -293,7 +293,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) ? @@ -303,7 +303,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) @@ -378,7 +378,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)); } } @@ -415,7 +415,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); @@ -425,7 +425,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) + @@ -460,12 +460,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)); } } @@ -498,12 +498,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)); } } } @@ -516,7 +516,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) @@ -553,13 +553,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 @@ -580,8 +580,8 @@ 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)); + GTUtil.copyAmount(size, ChemicalHelper.get(blockEntry.tagPrefix(), blockEntry.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..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.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.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..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 @@ -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; @@ -72,9 +72,9 @@ 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 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 a6ea9db984..8fdc1d0b48 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; @@ -133,9 +133,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); } } @@ -145,8 +145,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)) { @@ -224,7 +224,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, @@ -236,7 +236,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 @@ -268,9 +268,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)) { @@ -310,7 +310,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 @@ -326,7 +326,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 @@ -365,7 +365,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"); @@ -388,7 +388,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); } } @@ -416,7 +416,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, @@ -441,7 +441,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, @@ -488,7 +488,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)); } @@ -511,13 +511,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); } } @@ -530,9 +530,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()); @@ -540,9 +540,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()); } @@ -552,7 +552,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, @@ -565,7 +565,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, @@ -575,9 +575,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()); } @@ -587,7 +587,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..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 @@ -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)); } } @@ -142,7 +142,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); @@ -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/AssemblerRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/AssemblerRecipeLoader.java index 4c65459c18..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]) @@ -237,6 +238,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/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..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 @@ -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) @@ -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,14 +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) .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) @@ -139,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----------------------------------------------------------------------------------------------- @@ -162,25 +165,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 +230,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) @@ -312,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) @@ -329,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) @@ -346,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) @@ -365,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) @@ -382,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) @@ -399,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---------------------------------------------------------------------------------------------- @@ -486,9 +495,9 @@ 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); + 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); ASSEMBLER_RECIPES.recipeBuilder("cover_item_voiding") .inputItems(screw, Steel, 2) @@ -496,17 +505,20 @@ 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", - "dPw", " E ", 'S', new UnificationEntry(screw, Steel), 'D', COVER_FLUID_DETECTOR.asStack(), 'P', - new UnificationEntry(pipeNormalFluid, Bronze), 'E', Items.ENDER_PEARL); + 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); ASSEMBLER_RECIPES.recipeBuilder("cover_fluid_voiding") .inputItems(screw, Steel, 2) @@ -514,36 +526,38 @@ 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------------------------------------------------------------------------------------------------- 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) @@ -599,14 +613,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) @@ -617,14 +632,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) @@ -635,32 +651,33 @@ 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 // --------------------------------------------------------------------------------------------- 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") @@ -718,14 +735,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) @@ -737,14 +755,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) @@ -756,36 +775,37 @@ 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 // --------------------------------------------------------------------------------------- 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") @@ -837,13 +857,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) @@ -854,12 +875,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) @@ -870,31 +892,32 @@ 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------------------------------------------------------------------------------------------------- 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") @@ -946,13 +969,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) @@ -963,12 +987,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) @@ -979,31 +1004,32 @@ 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------------------------------------------------------------------------------------------------ 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") @@ -1060,13 +1086,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) @@ -1077,12 +1104,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) @@ -1093,13 +1121,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 347d0806aa..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 @@ -27,19 +27,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, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("high_power_casing") .inputItems(frameGt, Iridium) @@ -50,7 +52,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) @@ -61,7 +64,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()) @@ -70,7 +74,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) @@ -81,15 +86,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()) @@ -99,14 +106,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, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("research_station") .inputItems(DATA_BANK) @@ -117,14 +125,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, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("object_holder") .inputItems(ITEM_IMPORT_BUS[ZPM]) @@ -134,14 +143,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, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("network_switch") .inputItems(COMPUTER_CASING.asStack()) @@ -152,14 +162,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, true).save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("high_performance_computing_array") .inputItems(DATA_BANK) @@ -169,33 +180,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, 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()) @@ -203,9 +217,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()) @@ -213,27 +228,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()) @@ -241,10 +259,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, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("data_transmitter_hatch") .inputItems(COMPUTER_CASING.asStack()) @@ -252,44 +271,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, 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, 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, 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(GTMultiMachines.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/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/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 3e945fb0fd..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 @@ -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.common.data.machines.GTMultiMachines; @@ -57,128 +57,128 @@ 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', GTMultiMachines.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', GTMultiMachines.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', GTMultiMachines.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) { @@ -195,7 +195,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)) @@ -204,7 +204,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)) @@ -213,7 +213,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)) @@ -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) - .save(provider); + .addMaterialInfo(true, true).save(provider); ASSEMBLER_RECIPES.recipeBuilder("heat_vent") .inputItems(ChemicalHelper.get(plate, TantalumCarbide, 3)) @@ -230,75 +230,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 9da21d0b69..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 @@ -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.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.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; @@ -81,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") @@ -88,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) { @@ -114,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") @@ -447,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); @@ -459,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(); @@ -469,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); } @@ -479,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") @@ -499,97 +506,104 @@ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("cover_screen") @@ -599,6 +613,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 +622,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,263 +631,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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()) + .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, 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, 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, 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, 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, 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, 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, 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) @@ -887,7 +965,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); @@ -896,31 +974,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/MetaTileEntityLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index dab0320afd..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 @@ -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.*; @@ -37,25 +37,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, @@ -65,137 +65,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", @@ -345,48 +345,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()); @@ -402,7 +402,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", @@ -411,151 +411,151 @@ 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_bronze", GTMachines.STEAM_MINER.first().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)); + 'S', new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.Bronze), + 'D', new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Bronze)); VanillaRecipeHelper.addShapedRecipe(provider, true, "steam_miner_steel", GTMachines.STEAM_MINER.second().asStack(), "DSD", "SMS", "GSG", 'M', GTMachines.STEAM_MINER.first().asStack(), - 'S', new UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.TinAlloy), - 'D', new UnificationEntry(TagPrefix.gem, GTMaterials.Diamond), - 'G', new UnificationEntry(TagPrefix.gearSmall, GTMaterials.Steel)); + 'S', new MaterialEntry(TagPrefix.pipeNormalFluid, GTMaterials.TinAlloy), + 'D', new MaterialEntry(TagPrefix.gem, GTMaterials.Diamond), + 'G', new MaterialEntry(TagPrefix.gearSmall, GTMaterials.Steel)); // MULTI BLOCK CONTROLLERS VanillaRecipeHelper.addShapedRecipe(provider, true, "bronze_primitive_blast_furnace", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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) { @@ -563,29 +563,29 @@ public static void init(Consumer provider) { GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.CRACKER.asStack(), "CEC", "PHP", @@ -595,66 +595,66 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "pyrolyse_oven", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.ASSEMBLY_LINE.asStack(), @@ -677,47 +677,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(), @@ -725,39 +725,39 @@ public static void init(Consumer provider) { // OreDictUnifier.get("slabWood"), 'P', new UnificationEntry(TagPrefix.plank, GTMaterials.Wood)); VanillaRecipeHelper.addShapedRecipe(provider, true, "primitive_pump", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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", GTMultiMachines.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', @@ -825,7 +825,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); @@ -1020,160 +1020,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", @@ -1182,19 +1182,19 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "cleanroom", GTMultiMachines.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)); } } @@ -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/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java index 46e9f13356..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 @@ -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.common.data.machines.GTMultiMachines; @@ -43,7 +43,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); @@ -51,7 +52,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()); @@ -60,11 +61,12 @@ 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", " ", - 'S', new UnificationEntry(spring, Tin), + 'S', new MaterialEntry(spring, Tin), 'V', VOLTAGE_COIL_LV.asStack(), 'H', HULL[LV].asStack()); @@ -73,12 +75,13 @@ 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 ", '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()); @@ -88,34 +91,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]) @@ -123,10 +130,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]) @@ -134,8 +142,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()) @@ -148,8 +156,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()) @@ -163,8 +171,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()) @@ -176,7 +184,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()); @@ -185,11 +193,12 @@ 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", " ", - 'C', new UnificationEntry(cableGtSingle, Tin), + 'C', new MaterialEntry(cableGtSingle, Tin), 'V', VOLTAGE_COIL_LV.asStack(), 'H', HULL[LV].asStack()); @@ -198,11 +207,12 @@ 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 ", - '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()); @@ -213,34 +223,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]) @@ -248,8 +262,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()) @@ -262,8 +276,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()) @@ -276,8 +290,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()) @@ -291,8 +305,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()) @@ -305,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.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") @@ -316,9 +332,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 @@ -331,7 +348,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 @@ -352,7 +370,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 @@ -373,7 +392,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 @@ -386,7 +406,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 @@ -407,7 +428,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 @@ -429,7 +451,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 @@ -438,7 +461,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 @@ -489,7 +513,8 @@ public static void init(Consumer provider) { .inputItems(gear, VanadiumSteel, 4) .circuitMeta(2) .outputItems(GTMultiMachines.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]) @@ -500,7 +525,8 @@ public static void init(Consumer provider) { .inputItems(gear, TungstenCarbide, 4) .circuitMeta(2) .outputItems(GTMultiMachines.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]) @@ -511,7 +537,8 @@ public static void init(Consumer provider) { .inputItems(gear, Osmiridium, 4) .circuitMeta(2) .outputItems(GTMultiMachines.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") @@ -519,38 +546,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 @@ -564,28 +591,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]) @@ -594,7 +625,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]) @@ -603,7 +635,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) @@ -616,8 +649,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) @@ -631,8 +664,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)) @@ -654,7 +687,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 @@ -670,7 +704,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 @@ -686,7 +721,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 @@ -702,7 +738,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 @@ -718,7 +755,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 @@ -734,7 +772,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 b21dc2d9b0..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 @@ -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) @@ -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,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 32) .inputFluids(Titanium.getFluid(L * 10)) .outputItems(QUANTUM_HELMET) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_chestplate").duration(1500).EUt(VA[IV]) @@ -238,6 +241,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 48) .inputFluids(Titanium.getFluid(L * 16)) .outputItems(QUANTUM_CHESTPLATE) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_leggings").duration(1500).EUt(VA[IV]) @@ -252,6 +256,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 40) .inputFluids(Titanium.getFluid(L * 14)) .outputItems(QUANTUM_LEGGINGS) + .addMaterialInfo(true, true) .save(provider); ASSEMBLER_RECIPES.recipeBuilder("quantum_boots").duration(1500).EUt(VA[IV]) @@ -266,6 +271,7 @@ public static void init(Consumer provider) { .inputItems(wireFine, Rhodium, 16) .inputFluids(Titanium.getFluid(L * 8)) .outputItems(QUANTUM_BOOTS) + .addMaterialInfo(true, true) .save(provider); ASSEMBLY_LINE_RECIPES.recipeBuilder("quantum_chestplate_advanced").duration(1000).EUt(VA[LuV]) @@ -282,6 +288,7 @@ public static void init(Consumer provider) { .inputItems(ELECTRIC_MOTOR_LuV, 2) .inputItems(screw, HSSS, 8) .outputItems(QUANTUM_CHESTPLATE_ADVANCED) + .addMaterialInfo(true, true) .save(provider); // TODO Central monitor @@ -426,6 +433,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 +617,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 03bebb55d2..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 @@ -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.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.GTMaterials; import com.gregtechceu.gtceu.common.data.GTRecipeCategories; @@ -112,14 +112,14 @@ 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 && entry.tagPrefix.unificationEnabled()) { - inputTag = ChemicalHelper.getTag(entry.tagPrefix, entry.material); + if (entry != null && entry.material() != null && entry.tagPrefix().unificationEnabled()) { + 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; } @@ -149,15 +149,15 @@ 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); + if (entry != null && entry.material() != null) { + inputTag = ChemicalHelper.getTag(entry.tagPrefix(), entry.material()); } // 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); + if (entry != null && entry.material() != 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) { @@ -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()); @@ -313,11 +313,11 @@ 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)) { - return mat.getProperty(PropertyKey.INGOT).getArcSmeltingInto() != entry.material; + return mat.getProperty(PropertyKey.INGOT).getArcSmeltingInto() != entry.material(); } } } @@ -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,9 +456,9 @@ 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; + 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. @@ -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())) @@ -525,15 +525,15 @@ 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), - 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, @@ -542,9 +542,9 @@ private static void splitStacks(List> list, Item TagPrefix.nugget); private static void shrinkStacks(List> list, ItemStack originalStack, - UnificationEntry entry) { - Material material = entry.material; - long materialAmount = originalStack.getCount() * entry.tagPrefix.getMaterialAmount(material); + MaterialEntry entry) { + 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; @@ -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/StoneMachineRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/StoneMachineRecipes.java index 5c3ba0a04d..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,10 +2,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 +428,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 +624,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/data/recipe/misc/VanillaStandardRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/VanillaStandardRecipes.java index 5b36c217a4..30ff6b787a 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; @@ -169,19 +169,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) @@ -473,17 +473,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)); @@ -793,31 +793,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", @@ -1064,7 +1064,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 31bb3e2dab..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 @@ -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.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, + if (entry.addPlanksMaterialInfo) { + 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 ? + 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 new ItemMaterialInfo(new MaterialStack(entry.material, M * 2))); @@ -365,62 +366,62 @@ 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, + if (entry.addSlabsMaterialInfo) { + 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, + if (entry.addFencesMaterialInfo) { + 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, - new ItemMaterialInfo(new MaterialStack(entry.material, M * 2))); + if (entry.addFenceGatesMaterialInfo) { + 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, - new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 4))); + if (entry.addStairsMaterialInfo) { + ItemMaterialData.registerMaterialInfo(entry.stairs, + new ItemMaterialInfo(new MaterialStack(entry.material, (3 * M) / 2))); } } - if (entry.boat != null && entry.addBoatsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.boat, + if (entry.boat != null && entry.addBoatsMaterialInfo) { + ItemMaterialData.registerMaterialInfo(entry.boat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 5))); } - if (entry.chestBoat != null && entry.addChestBoatsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.chestBoat, + if (entry.chestBoat != null && entry.addChestBoatsMaterialInfo) { + ItemMaterialData.registerMaterialInfo(entry.chestBoat, new ItemMaterialInfo(new MaterialStack(entry.material, M * 13))); } - if (entry.button != null && entry.addButtonsUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.button, + if (entry.button != null && entry.addButtonsMaterialInfo) { + ItemMaterialData.registerMaterialInfo(entry.button, new ItemMaterialInfo(new MaterialStack(entry.material, M / 6))); } - if (entry.pressurePlate != null && entry.addPressurePlatesUnificationInfo) { - ChemicalHelper.registerMaterialInfo(entry.pressurePlate, - new ItemMaterialInfo(new MaterialStack(entry.material, M / 4))); + if (entry.pressurePlate != null && entry.addPressurePlatesMaterialInfo) { + 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/forge/ForgeCommonEventListener.java b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java index 9fa56ceb83..ee205a1c81 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; @@ -281,6 +284,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/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/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index b3ddb3c532..df62d0e96a 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; @@ -15,8 +16,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.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.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.data.medicalcondition.Symptom; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; @@ -57,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.*; @@ -237,8 +239,9 @@ 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("MaterialEntry", MaterialEntry.class); event.add("GTMaterialFlags", MaterialFlags.class); event.add("GTFluidAttributes", FluidAttributes.class); event.add("GTFluidBuilder", FluidBuilder.class); @@ -260,7 +263,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); // Recipe related event.add("GTRecipeTypes", GTRecipeTypes.class); event.add("GTRecipeCategories", GTRecipeCategories.class); @@ -339,15 +341,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; @@ -513,12 +515,27 @@ public void injectRuntimeRecipes(RecipesEventJS event, RecipeManager manager, 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()))); } }))); 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/events/CraftingComponentsEventJS.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/events/CraftingComponentsEventJS.java index 582555b2e9..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 @@ -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 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())) 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 ee8ba12f19..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 @@ -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.UnificationEntry; +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; @@ -88,6 +90,12 @@ class GTRecipeJS extends RecipeJS { 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; + public boolean removeMaterialInfo = false; + @HideFromJS @Override public GTRecipeJS id(ResourceLocation _id) { @@ -218,20 +226,30 @@ 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); } 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); } @@ -268,15 +286,16 @@ public GTRecipeJS inputItems(TagPrefix orePrefix, Material material) { return inputItems(orePrefix, material, 1); } - public GTRecipeJS inputItems(UnificationEntry input) { - return inputItems(input.tagPrefix, input.material, 1); + public GTRecipeJS inputItems(MaterialEntry input) { + return inputItems(input.tagPrefix(), input.material(), 1); } - public GTRecipeJS inputItems(UnificationEntry input, int count) { - return inputItems(input.tagPrefix, input.material, count); + public GTRecipeJS inputItems(MaterialEntry input, int count) { + return inputItems(input.tagPrefix(), input.material(), 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); } @@ -292,12 +311,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) { @@ -635,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); } @@ -872,6 +900,22 @@ public GTRecipeJS stationResearch(UnaryOperator 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..05844ab05e 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/SupplierMemoizer.java @@ -1,5 +1,8 @@ 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 +63,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"