diff --git a/src/main/java/com/possible_triangle/sliceanddice/mixins/ProcessingRecipeSerializerMixin.java b/src/main/java/com/possible_triangle/sliceanddice/mixins/ProcessingRecipeSerializerMixin.java new file mode 100644 index 0000000..bd0ed56 --- /dev/null +++ b/src/main/java/com/possible_triangle/sliceanddice/mixins/ProcessingRecipeSerializerMixin.java @@ -0,0 +1,32 @@ +package com.possible_triangle.sliceanddice.mixins; + +import com.simibubi.create.content.processing.recipe.ProcessingRecipe; +import com.simibubi.create.content.processing.recipe.ProcessingRecipeSerializer; +import com.simibubi.create.foundation.fluid.FluidIngredient; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.crafting.Ingredient; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value = ProcessingRecipeSerializer.class, remap = false) +public class ProcessingRecipeSerializerMixin { + + @Redirect( + method = "writeToBuffer", + at = @At(value = "FIELD", target = "Lcom/simibubi/create/content/processing/recipe/ProcessingRecipe;ingredients:Lnet/minecraft/core/NonNullList;", opcode = Opcodes.GETFIELD) + ) + private NonNullList useIngredientsGetter(ProcessingRecipe instance) { + return instance.getIngredients(); + } + + @Redirect( + method = "writeToBuffer", + at = @At(value = "FIELD", target = "Lcom/simibubi/create/content/processing/recipe/ProcessingRecipe;fluidIngredients:Lnet/minecraft/core/NonNullList;", opcode = Opcodes.GETFIELD) + ) + private NonNullList useFluidIngredientsGetter(ProcessingRecipe instance) { + return instance.getFluidIngredients(); + } + +} \ No newline at end of file diff --git a/src/main/kotlin/com/possible_triangle/sliceanddice/compat/LazyMixingRecipe.kt b/src/main/kotlin/com/possible_triangle/sliceanddice/compat/LazyMixingRecipe.kt index ac31f16..1b3fe3e 100644 --- a/src/main/kotlin/com/possible_triangle/sliceanddice/compat/LazyMixingRecipe.kt +++ b/src/main/kotlin/com/possible_triangle/sliceanddice/compat/LazyMixingRecipe.kt @@ -48,6 +48,7 @@ class LazyMixingRecipe(params: ProcessingRecipeParams) : MixingRecipe(params) { resolvedIngredients = super.ingredients.filterNot { replaceable.containsKey(it) }.toNonnullList() resolvedFluidIngredients = (super.fluidIngredients + replaceable.values).toNonnullList() resolved = true + emptyingRecipes = emptyList() } override fun getIngredients(): NonNullList { diff --git a/src/main/resources/sliceanddice.mixins.json b/src/main/resources/sliceanddice.mixins.json index f4c8c42..57849e9 100644 --- a/src/main/resources/sliceanddice.mixins.json +++ b/src/main/resources/sliceanddice.mixins.json @@ -5,8 +5,8 @@ "minVersion": "0.8", "refmap": "${mod_id}.refmap.json", "mixins": [ - "EntityMixin", "HarvesterMovementBehaviourMixin", "LevelMixin", "PressingBehaviourMixin", "RecipeEventJSMixin", - "RecipeManagerAccessor", "RecipeManagerMixin" + "EntityMixin", "HarvesterMovementBehaviourMixin", "LevelMixin", "PressingBehaviourMixin", + "ProcessingRecipeSerializerMixin", "RecipeEventJSMixin", "RecipeManagerAccessor", "RecipeManagerMixin" ], "injectors": { "defaultRequire": 1