diff --git a/gradle.properties b/gradle.properties index 5bd64041105..18cff3603b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,8 +17,8 @@ forge_range=[40.1.21,) parchment_version=2022.03.13 # Build Dependencies -mantle_version=1.9.25 -mantle_range=1.9.25,) +mantle_version=1.9.29 +mantle_range=1.9.29,) # Optional compat jei_version=9.7.1.255 diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 4716b3ed3dd..dea60c552d8 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -106,9 +106,9 @@ "tconstruct:scorched_drain", "tconstruct:scorched_chute", "tconstruct:foundry_controller", + "tconstruct:modifier_worktable", "tconstruct:cast_chest", "tconstruct:tinkers_anvil", - "tconstruct:scorched_anvil", - "tconstruct:modifier_worktable" + "tconstruct:scorched_anvil" ] } \ No newline at end of file diff --git a/src/main/java/slimeknights/tconstruct/library/data/recipe/ICommonRecipeHelper.java b/src/main/java/slimeknights/tconstruct/library/data/recipe/ICommonRecipeHelper.java index a5f4bafdc31..06eb8f979b6 100644 --- a/src/main/java/slimeknights/tconstruct/library/data/recipe/ICommonRecipeHelper.java +++ b/src/main/java/slimeknights/tconstruct/library/data/recipe/ICommonRecipeHelper.java @@ -1,257 +1,5 @@ package slimeknights.tconstruct.library.data.recipe; -import net.minecraft.advancements.critereon.InventoryChangeTrigger.TriggerInstance; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.data.recipes.ShapedRecipeBuilder; -import net.minecraft.data.recipes.ShapelessRecipeBuilder; -import net.minecraft.data.recipes.SingleItemRecipeBuilder; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.level.ItemLike; -import net.minecraftforge.common.Tags; -import slimeknights.mantle.registration.object.BuildingBlockObject; -import slimeknights.mantle.registration.object.MetalItemObject; -import slimeknights.mantle.registration.object.WallBuildingBlockObject; -import slimeknights.mantle.registration.object.WoodBlockObject; - -import java.util.Objects; -import java.util.function.Consumer; - -public interface ICommonRecipeHelper extends IRecipeHelper { - /* Metals */ - - /** - * Registers a recipe packing a small item into a large one - * @param consumer Recipe consumer - * @param large Large item - * @param small Small item - * @param largeName Large name - * @param smallName Small name - * @param folder Recipe folder - */ - default void packingRecipe(Consumer consumer, String largeName, ItemLike large, String smallName, ItemLike small, String folder) { - // ingot to block - ShapedRecipeBuilder.shaped(large) - .define('#', small) - .pattern("###") - .pattern("###") - .pattern("###") - .unlockedBy("has_item", RecipeProvider.has(small)) - .group(Objects.requireNonNull(large.asItem().getRegistryName()).toString()) - .save(consumer, wrap(large.asItem(), folder, String.format("_from_%ss", smallName))); - // block to ingot - ShapelessRecipeBuilder.shapeless(small, 9) - .requires(large) - .unlockedBy("has_item", RecipeProvider.has(large)) - .group(Objects.requireNonNull(small.asItem().getRegistryName()).toString()) - .save(consumer, wrap(small.asItem(), folder, String.format("_from_%s", largeName))); - } - - /** - * Registers a recipe packing a small item into a large one - * @param consumer Recipe consumer - * @param largeItem Large item - * @param smallItem Small item - * @param smallTag Tag for small item - * @param largeName Large name - * @param smallName Small name - * @param folder Recipe folder - */ - default void packingRecipe(Consumer consumer, String largeName, ItemLike largeItem, String smallName, ItemLike smallItem, TagKey smallTag, String folder) { - // ingot to block - // note our item is in the center, any mod allowed around the edges - ShapedRecipeBuilder.shaped(largeItem) - .define('#', smallTag) - .define('*', smallItem) - .pattern("###") - .pattern("#*#") - .pattern("###") - .unlockedBy("has_item", RecipeProvider.has(smallItem)) - .group(Objects.requireNonNull(largeItem.asItem().getRegistryName()).toString()) - .save(consumer, wrap(largeItem.asItem(), folder, String.format("_from_%ss", smallName))); - // block to ingot - ShapelessRecipeBuilder.shapeless(smallItem, 9) - .requires(largeItem) - .unlockedBy("has_item", RecipeProvider.has(largeItem)) - .group(Objects.requireNonNull(smallItem.asItem().getRegistryName()).toString()) - .save(consumer, wrap(smallItem.asItem(), folder, String.format("_from_%s", largeName))); - } - - /** - * Adds recipes to convert a block to ingot, ingot to block, and for nuggets - * @param consumer Recipe consumer - * @param metal Metal object - * @param folder Folder for recipes - */ - default void metalCrafting(Consumer consumer, MetalItemObject metal, String folder) { - ItemLike ingot = metal.getIngot(); - packingRecipe(consumer, "block", metal.get(), "ingot", ingot, metal.getIngotTag(), folder); - packingRecipe(consumer, "ingot", ingot, "nugget", metal.getNugget(), metal.getNuggetTag(), folder); - } - - - /* Building blocks */ - - /** - * Registers generic saveing block recipes for slabs and stairs - * @param consumer Recipe consumer - * @param saveing Building object instance - */ - default void slabStairsCrafting(Consumer consumer, BuildingBlockObject saveing, String folder, boolean addStonecutter) { - Item item = saveing.asItem(); - TriggerInstance hasBlock = RecipeProvider.has(item); - // slab - ItemLike slab = saveing.getSlab(); - ShapedRecipeBuilder.shaped(slab, 6) - .define('B', item) - .pattern("BBB") - .unlockedBy("has_item", hasBlock) - .group(Objects.requireNonNull(slab.asItem().getRegistryName()).toString()) - .save(consumer, wrap(item, folder, "_slab")); - // stairs - ItemLike stairs = saveing.getStairs(); - ShapedRecipeBuilder.shaped(stairs, 4) - .define('B', item) - .pattern("B ") - .pattern("BB ") - .pattern("BBB") - .unlockedBy("has_item", hasBlock) - .group(Objects.requireNonNull(stairs.asItem().getRegistryName()).toString()) - .save(consumer, wrap(item, folder, "_stairs")); - - // only add stonecutter if relevant - if (addStonecutter) { - Ingredient ingredient = Ingredient.of(item); - SingleItemRecipeBuilder.stonecutting(ingredient, slab, 2) - .unlockedBy("has_item", hasBlock) - .save(consumer, wrap(item, folder, "_slab_stonecutter")); - SingleItemRecipeBuilder.stonecutting(ingredient, stairs) - .unlockedBy("has_item", hasBlock) - .save(consumer, wrap(item, folder, "_stairs_stonecutter")); - } - } - - /** - * Registers generic saveing block recipes for slabs, stairs, and walls - * @param consumer Recipe consumer - * @param saveing Building object instance - */ - default void stairSlabWallCrafting(Consumer consumer, WallBuildingBlockObject saveing, String folder, boolean addStonecutter) { - slabStairsCrafting(consumer, saveing, folder, addStonecutter); - // wall - Item item = saveing.asItem(); - TriggerInstance hasBlock = RecipeProvider.has(item); - ItemLike wall = saveing.getWall(); - ShapedRecipeBuilder.shaped(wall, 6) - .define('B', item) - .pattern("BBB") - .pattern("BBB") - .unlockedBy("has_item", hasBlock) - .group(Objects.requireNonNull(wall.asItem().getRegistryName()).toString()) - .save(consumer, wrap(item, folder, "_wall")); - // only add stonecutter if relevant - if (addStonecutter) { - Ingredient ingredient = Ingredient.of(item); - SingleItemRecipeBuilder.stonecutting(ingredient, wall) - .unlockedBy("has_item", hasBlock) - .save(consumer, wrap(item, folder, "_wall_stonecutter")); - } - } - - /** - * Registers recipes relevant to wood - * @param consumer Recipe consumer - * @param wood Wood types - * @param folder Wood folder - */ - default void woodCrafting(Consumer consumer, WoodBlockObject wood, String folder) { - TriggerInstance hasPlanks = RecipeProvider.has(wood); - - // planks - ShapelessRecipeBuilder.shapeless(wood, 4).requires(wood.getLogItemTag()) - .group("planks") - .unlockedBy("has_log", RecipeProvider.inventoryTrigger(ItemPredicate.Builder.item().of(wood.getLogItemTag()).build())) - .save(consumer, modResource(folder + "planks")); - // slab - ItemLike slab = wood.getSlab(); - ShapedRecipeBuilder.shaped(slab, 6) - .define('#', wood) - .pattern("###") - .unlockedBy("has_planks", hasPlanks) - .group("wooden_slab") - .save(consumer, modResource(folder + "slab")); - // stairs - ItemLike stairs = wood.getStairs(); - ShapedRecipeBuilder.shaped(stairs, 4) - .define('#', wood) - .pattern("# ") - .pattern("## ") - .pattern("###") - .unlockedBy("has_planks", hasPlanks) - .group("wooden_stairs") - .save(consumer, modResource(folder + "stairs")); - - // log to stripped - ShapedRecipeBuilder.shaped(wood.getWood(), 3) - .define('#', wood.getLog()) - .pattern("##").pattern("##") - .group("bark") - .unlockedBy("has_log", RecipeProvider.has(wood.getLog())) - .save(consumer, modResource(folder + "log_to_wood")); - ShapedRecipeBuilder.shaped(wood.getStrippedWood(), 3) - .define('#', wood.getStrippedLog()) - .pattern("##").pattern("##") - .group("bark") - .unlockedBy("has_log", RecipeProvider.has(wood.getStrippedLog())) - .save(consumer, modResource(folder + "stripped_log_to_wood")); - // doors - ShapedRecipeBuilder.shaped(wood.getFence(), 3) - .define('#', Tags.Items.RODS_WOODEN).define('W', wood) - .pattern("W#W").pattern("W#W") - .group("wooden_fence") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "fence")); - ShapedRecipeBuilder.shaped(wood.getFenceGate()) - .define('#', Items.STICK).define('W', wood) - .pattern("#W#").pattern("#W#") - .group("wooden_fence_gate") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "fence_gate")); - ShapedRecipeBuilder.shaped(wood.getDoor(), 3) - .define('#', wood) - .pattern("##").pattern("##").pattern("##") - .group("wooden_door") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "door")); - ShapedRecipeBuilder.shaped(wood.getTrapdoor(), 2) - .define('#', wood) - .pattern("###").pattern("###") - .group("wooden_trapdoor") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "trapdoor")); - // buttons - ShapelessRecipeBuilder.shapeless(wood.getButton()) - .requires(wood) - .group("wooden_button") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "button")); - ShapedRecipeBuilder.shaped(wood.getPressurePlate()) - .define('#', wood) - .pattern("##") - .group("wooden_pressure_plate") - .unlockedBy("has_planks", hasPlanks) - .save(consumer, modResource(folder + "pressure_plate")); - // signs - ShapedRecipeBuilder.shaped(wood.getSign(), 3) - .group("sign") - .define('#', wood).define('X', Tags.Items.RODS_WOODEN) - .pattern("###").pattern("###").pattern(" X ") - .unlockedBy("has_planks", RecipeProvider.has(wood)) - .save(consumer, modResource(folder + "sign")); - - } -} +/** @deprecated use {@link slimeknights.mantle.recipe.data.ICommonRecipeHelper} */ +@Deprecated +public interface ICommonRecipeHelper extends IRecipeHelper, slimeknights.mantle.recipe.data.ICommonRecipeHelper {} diff --git a/src/main/java/slimeknights/tconstruct/library/data/recipe/IRecipeHelper.java b/src/main/java/slimeknights/tconstruct/library/data/recipe/IRecipeHelper.java index cc5e5480199..af0e6a1675a 100644 --- a/src/main/java/slimeknights/tconstruct/library/data/recipe/IRecipeHelper.java +++ b/src/main/java/slimeknights/tconstruct/library/data/recipe/IRecipeHelper.java @@ -1,151 +1,8 @@ package slimeknights.tconstruct.library.data.recipe; -import net.minecraft.core.Registry; -import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.common.crafting.conditions.ICondition; -import net.minecraftforge.common.crafting.conditions.NotCondition; -import net.minecraftforge.common.crafting.conditions.TagEmptyCondition; -import net.minecraftforge.registries.IForgeRegistryEntry; -import slimeknights.mantle.recipe.data.ConsumerWrapperBuilder; - -import java.util.Objects; -import java.util.function.Consumer; -import java.util.function.Supplier; - /** * Interface for common resource location and condition methods + * @deprecated use {@link slimeknights.mantle.recipe.data.IRecipeHelper} */ -public interface IRecipeHelper { - /* Location helpers */ - - /** Gets the ID of the mod adding recipes */ - String getModId(); - - /** - * Gets a resource location for the mod - * @param name Location path - * @return Location for the mod - */ - default ResourceLocation modResource(String name) { - return new ResourceLocation(getModId(), name); - } - - /** - * Gets a resource location string for Tinkers - * @param id Location path - * @return Location for Tinkers - */ - default String modPrefix(String id) { - return getModId() + ":" + id; - } - - /** - * Prefixes the resource location path with the given value - * @param loc Name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation wrap(ResourceLocation loc, String prefix, String suffix) { - return modResource(prefix + loc.getPath() + suffix); - } - - /** - * Prefixes the resource location path with the given value - * @param entry Item registry name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation wrap(IForgeRegistryEntry entry, String prefix, String suffix) { - return wrap(Objects.requireNonNull(entry.getRegistryName()), prefix, suffix); - } - - /** - * Prefixes the resource location path with the given value - * @param entry Item registry name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation wrap(Supplier> entry, String prefix, String suffix) { - return wrap(entry.get(), prefix, suffix); - } - - /** - * Prefixes the resource location path with the given value - * @param location Entry registry name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation prefix(ResourceLocation location, String prefix) { - return modResource(prefix + location.getPath()); - } - - /** - * Prefixes the resource location path with the given value - * @param entry Entry registry name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation prefix(IForgeRegistryEntry entry, String prefix) { - return prefix(Objects.requireNonNull(entry.getRegistryName()), prefix); - } - - /** - * Prefixes the resource location path with the given value - * @param entry Entry registry name to use - * @param prefix Prefix value - * @return Resource location path - */ - default ResourceLocation prefix(Supplier> entry, String prefix) { - return prefix(entry.get(), prefix); - } - - - /* Tags and conditions */ - - /** - * Gets a tag by name - * @param modId Mod ID for tag - * @param name Tag name - * @return Tag instance - */ - default TagKey getItemTag(String modId, String name) { - return TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(modId, name)); - } - - /** - * Gets a tag by name - * @param modId Mod ID for tag - * @param name Tag name - * @return Tag instance - */ - default TagKey getFluidTag(String modId, String name) { - return TagKey.create(Registry.FLUID_REGISTRY, new ResourceLocation(modId, name)); - } - - /** - * Creates a condition for a tag existing - * @param name Forge tag name - * @return Condition for tag existing - */ - default ICondition tagCondition(String name) { - return new NotCondition(new TagEmptyCondition("forge", name)); - } - - /** - * Creates a consumer instance with the added conditions - * @param consumer Base consumer - * @param conditions Extra conditions - * @return Wrapped consumer - */ - default Consumer withCondition(Consumer consumer, ICondition... conditions) { - ConsumerWrapperBuilder builder = ConsumerWrapperBuilder.wrap(); - for (ICondition condition : conditions) { - builder.addCondition(condition); - } - return builder.build(consumer); - } -} +@Deprecated +public interface IRecipeHelper extends slimeknights.mantle.recipe.data.IRecipeHelper {} diff --git a/src/main/java/slimeknights/tconstruct/library/json/ConditionSerializer.java b/src/main/java/slimeknights/tconstruct/library/json/ConditionSerializer.java index 5ea7db7be61..4e21df5733e 100644 --- a/src/main/java/slimeknights/tconstruct/library/json/ConditionSerializer.java +++ b/src/main/java/slimeknights/tconstruct/library/json/ConditionSerializer.java @@ -12,7 +12,11 @@ import java.lang.reflect.Type; -/** Serializer for a forge condition */ +/** + * Serializer for a forge condition + * @deprecated use {@link slimeknights.tconstruct.common.json.BlockOrEntityCondition.ConditionSerializer} + */ +@Deprecated public class ConditionSerializer implements JsonDeserializer, JsonSerializer { public static final ConditionSerializer INSTANCE = new ConditionSerializer(); diff --git a/src/main/java/slimeknights/tconstruct/library/json/predicate/IJsonPredicate.java b/src/main/java/slimeknights/tconstruct/library/json/predicate/IJsonPredicate.java index e7ac5c79eed..4c91c5c6a94 100644 --- a/src/main/java/slimeknights/tconstruct/library/json/predicate/IJsonPredicate.java +++ b/src/main/java/slimeknights/tconstruct/library/json/predicate/IJsonPredicate.java @@ -2,7 +2,10 @@ import slimeknights.mantle.data.GenericLoaderRegistry.IHaveLoader; -/** Generic interface for predicate based JSON loaders */ +/** + * Generic interface for predicate based JSON loaders + * TODO 1.19: replace with Mantle version (generics prevent doing so in 1.18) + */ public interface IJsonPredicate extends IHaveLoader> { /** Returns true if this json predicate matches the given input */ boolean matches(I input); diff --git a/src/main/java/slimeknights/tconstruct/library/json/serializer/GenericIntSerializer.java b/src/main/java/slimeknights/tconstruct/library/json/serializer/GenericIntSerializer.java index a2960af3388..5ed520af31e 100644 --- a/src/main/java/slimeknights/tconstruct/library/json/serializer/GenericIntSerializer.java +++ b/src/main/java/slimeknights/tconstruct/library/json/serializer/GenericIntSerializer.java @@ -1,39 +1,17 @@ package slimeknights.tconstruct.library.json.serializer; -import com.google.gson.JsonObject; -import lombok.RequiredArgsConstructor; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.GsonHelper; -import slimeknights.mantle.data.GenericLoaderRegistry.IGenericLoader; import slimeknights.mantle.data.GenericLoaderRegistry.IHaveLoader; import java.util.function.IntFunction; import java.util.function.ToIntFunction; -/** Generic serializer for classes that just have a single int value */ -@RequiredArgsConstructor -public class GenericIntSerializer> implements IGenericLoader { - private final String key; - private final IntFunction constructor; - private final ToIntFunction getter; - - @Override - public void serialize(T object, JsonObject json) { - json.addProperty(key, getter.applyAsInt(object)); - } - - @Override - public T deserialize(JsonObject json) { - return constructor.apply(GsonHelper.getAsInt(json, key)); - } - - @Override - public void toNetwork(T object, FriendlyByteBuf buffer) { - buffer.writeVarInt(getter.applyAsInt(object)); - } - - @Override - public T fromNetwork(FriendlyByteBuf buffer) { - return constructor.apply(buffer.readVarInt()); +/** + * Generic serializer for classes that just have a single int value + * @deprecated use {@link slimeknights.mantle.data.GenericIntSerializer} + */ +@Deprecated +public class GenericIntSerializer> extends slimeknights.mantle.data.GenericIntSerializer { + public GenericIntSerializer(String key, IntFunction constructor, ToIntFunction getter) { + super(key, constructor, getter); } } diff --git a/src/main/java/slimeknights/tconstruct/library/materials/definition/MaterialManager.java b/src/main/java/slimeknights/tconstruct/library/materials/definition/MaterialManager.java index 82de79946f2..3edf3e19056 100644 --- a/src/main/java/slimeknights/tconstruct/library/materials/definition/MaterialManager.java +++ b/src/main/java/slimeknights/tconstruct/library/materials/definition/MaterialManager.java @@ -18,9 +18,9 @@ import net.minecraft.util.profiling.ProfilerFiller; import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.common.crafting.conditions.ICondition.IContext; +import slimeknights.mantle.data.ConditionSerializer; import slimeknights.tconstruct.TConstruct; import slimeknights.tconstruct.library.exception.TinkerJSONException; -import slimeknights.tconstruct.library.json.ConditionSerializer; import slimeknights.tconstruct.library.json.JsonRedirect; import slimeknights.tconstruct.library.materials.json.MaterialJson; import slimeknights.tconstruct.library.modifiers.Modifier; diff --git a/src/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java b/src/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java index 4854950d3ee..6d9878e8b75 100644 --- a/src/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java +++ b/src/main/java/slimeknights/tconstruct/library/modifiers/dynamic/InventoryMenuModifier.java @@ -4,8 +4,8 @@ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import slimeknights.mantle.client.TooltipKey; +import slimeknights.mantle.data.GenericIntSerializer; import slimeknights.mantle.data.GenericLoaderRegistry.IGenericLoader; -import slimeknights.tconstruct.library.json.serializer.GenericIntSerializer; import slimeknights.tconstruct.library.modifiers.Modifier; import slimeknights.tconstruct.library.modifiers.hooks.IArmorInteractModifier; import slimeknights.tconstruct.library.modifiers.impl.InventoryModifier; diff --git a/src/main/java/slimeknights/tconstruct/library/modifiers/spilling/SpillingFluidManager.java b/src/main/java/slimeknights/tconstruct/library/modifiers/spilling/SpillingFluidManager.java index 7cb6849542d..7b2a4132bb0 100644 --- a/src/main/java/slimeknights/tconstruct/library/modifiers/spilling/SpillingFluidManager.java +++ b/src/main/java/slimeknights/tconstruct/library/modifiers/spilling/SpillingFluidManager.java @@ -19,9 +19,9 @@ import net.minecraftforge.event.AddReloadListenerEvent; import net.minecraftforge.event.OnDatapackSyncEvent; import net.minecraftforge.eventbus.api.EventPriority; +import slimeknights.mantle.data.ConditionSerializer; import slimeknights.mantle.recipe.ingredient.FluidIngredient; import slimeknights.mantle.util.JsonHelper; -import slimeknights.tconstruct.library.json.ConditionSerializer; import slimeknights.tconstruct.library.utils.JsonUtils; import javax.annotation.Nullable; diff --git a/src/main/java/slimeknights/tconstruct/shared/data/CommonRecipeProvider.java b/src/main/java/slimeknights/tconstruct/shared/data/CommonRecipeProvider.java index af0dc650912..1674719cc1e 100644 --- a/src/main/java/slimeknights/tconstruct/shared/data/CommonRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/shared/data/CommonRecipeProvider.java @@ -14,11 +14,11 @@ import net.minecraft.world.level.block.WeatheringCopper.WeatherState; import net.minecraftforge.common.Tags; import slimeknights.mantle.recipe.data.ConsumerWrapperBuilder; +import slimeknights.mantle.recipe.data.ICommonRecipeHelper; import slimeknights.tconstruct.common.TinkerTags; import slimeknights.tconstruct.common.data.BaseRecipeProvider; import slimeknights.tconstruct.common.json.ConfigEnabledCondition; import slimeknights.tconstruct.fluids.TinkerFluids; -import slimeknights.tconstruct.library.data.recipe.ICommonRecipeHelper; import slimeknights.tconstruct.library.recipe.FluidValues; import slimeknights.tconstruct.library.recipe.casting.ItemCastingRecipeBuilder; import slimeknights.tconstruct.shared.TinkerCommons; diff --git a/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java b/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java index e772384ddf5..f8077362cef 100644 --- a/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java @@ -35,6 +35,7 @@ import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import slimeknights.mantle.recipe.data.ConsumerWrapperBuilder; +import slimeknights.mantle.recipe.data.ICommonRecipeHelper; import slimeknights.mantle.recipe.data.ItemNameIngredient; import slimeknights.mantle.recipe.data.ItemNameOutput; import slimeknights.mantle.recipe.data.NBTNameIngredient; @@ -50,7 +51,6 @@ import slimeknights.tconstruct.common.registration.GeodeItemObject.BudSize; import slimeknights.tconstruct.fluids.TinkerFluids; import slimeknights.tconstruct.gadgets.TinkerGadgets; -import slimeknights.tconstruct.library.data.recipe.ICommonRecipeHelper; import slimeknights.tconstruct.library.data.recipe.ISmelteryRecipeHelper; import slimeknights.tconstruct.library.recipe.FluidValues; import slimeknights.tconstruct.library.recipe.alloying.AlloyRecipeBuilder; diff --git a/src/main/java/slimeknights/tconstruct/world/data/WorldRecipeProvider.java b/src/main/java/slimeknights/tconstruct/world/data/WorldRecipeProvider.java index 1ece38ef752..4f0079ecb9d 100644 --- a/src/main/java/slimeknights/tconstruct/world/data/WorldRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/world/data/WorldRecipeProvider.java @@ -10,10 +10,10 @@ import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.Tags; +import slimeknights.mantle.recipe.data.ICommonRecipeHelper; import slimeknights.tconstruct.common.data.BaseRecipeProvider; import slimeknights.tconstruct.common.json.ConfigEnabledCondition; import slimeknights.tconstruct.common.registration.GeodeItemObject; -import slimeknights.tconstruct.library.data.recipe.ICommonRecipeHelper; import slimeknights.tconstruct.shared.TinkerCommons; import slimeknights.tconstruct.shared.block.SlimeType; import slimeknights.tconstruct.world.TinkerWorld;