Skip to content

Commit 893ae92

Browse files
committed
Works
1 parent 8af3f08 commit 893ae92

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ mod_version=2101.3.1
1616
neoforge_version=21.1.199
1717
neoForge.parchment.minecraftVersion=1.21.1
1818
neoForge.parchment.mappingsVersion=2024.11.17
19-
kubejs_version=2101.7.2-build.254
19+
kubejs_version=2101.7.2-build.259
2020

2121
jei_version=19.22.1.316
2222
flywheel_version=1.0.2

src/main/java/dev/latvian/mods/kubejs/create/KubeJSCreatePlugin.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@
1515
import dev.latvian.mods.kubejs.create.recipe.ProcessingOutputRecipeComponent;
1616
import dev.latvian.mods.kubejs.event.EventGroupRegistry;
1717
import dev.latvian.mods.kubejs.plugin.KubeJSPlugin;
18+
import dev.latvian.mods.kubejs.plugin.builtin.wrapper.ItemWrapper;
1819
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentTypeRegistry;
1920
import dev.latvian.mods.kubejs.recipe.schema.RecipeSchemaRegistry;
2021
import dev.latvian.mods.kubejs.registry.BuilderTypeRegistry;
2122
import dev.latvian.mods.kubejs.script.BindingRegistry;
2223
import dev.latvian.mods.kubejs.script.ScriptType;
2324
import dev.latvian.mods.kubejs.script.TypeWrapperRegistry;
25+
import dev.latvian.mods.rhino.Context;
2426
import net.minecraft.core.registries.Registries;
27+
import org.jetbrains.annotations.Nullable;
2528

2629
public class KubeJSCreatePlugin implements KubeJSPlugin {
2730
@Override
@@ -52,6 +55,16 @@ public void registerBindings(BindingRegistry bindings) {
5255
@Override
5356
public void registerTypeWrappers(TypeWrapperRegistry registry) {
5457
registry.register(FluidIngredient.class, FluidIngredientHelper::wrap);
58+
registry.register(ProcessingOutput.class, KubeJSCreatePlugin::wrapProcessingOutput);
59+
}
60+
61+
private static ProcessingOutput wrapProcessingOutput(Context cx, @Nullable Object from) {
62+
if (from instanceof ProcessingOutput p) {
63+
return p;
64+
}
65+
66+
var stack = ItemWrapper.wrap(cx, from);
67+
return stack.isEmpty() ? ProcessingOutput.EMPTY : new ProcessingOutput(stack, 1F);
5568
}
5669

5770
@Override

src/main/java/dev/latvian/mods/kubejs/create/recipe/CreateFluidIngredientRecipeComponent.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44
import com.simibubi.create.Create;
55
import com.simibubi.create.foundation.fluid.FluidIngredient;
66
import dev.latvian.mods.kubejs.create.platform.FluidIngredientHelper;
7-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
87
import dev.latvian.mods.kubejs.recipe.component.RecipeComponent;
98
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
109
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
10+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
1111
import dev.latvian.mods.kubejs.recipe.match.FluidMatch;
1212
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
1313
import dev.latvian.mods.kubejs.util.OpsContainer;
14-
import dev.latvian.mods.rhino.Context;
1514
import dev.latvian.mods.rhino.type.TypeInfo;
1615
import net.minecraft.world.level.material.Fluid;
1716
import net.neoforged.neoforge.fluids.FluidStack;
@@ -37,18 +36,18 @@ public TypeInfo typeInfo() {
3736
}
3837

3938
@Override
40-
public boolean hasPriority(Context cx, KubeRecipe recipe, Object from) {
39+
public boolean hasPriority(RecipeMatchContext cx, Object from) {
4140
return from instanceof SizedFluidIngredient || from instanceof FluidIngredient || from instanceof FluidStack || from instanceof Fluid;
4241
}
4342

4443
@Override
45-
public boolean matches(Context cx, KubeRecipe recipe, FluidIngredient value, ReplacementMatchInfo match) {
44+
public boolean matches(RecipeMatchContext cx, FluidIngredient value, ReplacementMatchInfo match) {
4645
return match.match() instanceof FluidMatch m && m.matches(cx, FluidIngredientHelper.convert(value), match.exact());
4746
}
4847

4948
@Override
5049
public boolean isEmpty(FluidIngredient value) {
51-
return value == FluidIngredient.EMPTY;
50+
return value.getRequiredAmount() <= 0;
5251
}
5352

5453
@Override

src/main/java/dev/latvian/mods/kubejs/create/recipe/ProcessingOutputRecipeComponent.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
import com.simibubi.create.Create;
44
import com.simibubi.create.content.processing.recipe.ProcessingOutput;
55
import dev.latvian.mods.kubejs.plugin.builtin.wrapper.ItemWrapper;
6-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
76
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
87
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
98
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
9+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
1010
import dev.latvian.mods.kubejs.recipe.match.ItemMatch;
1111
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
12-
import dev.latvian.mods.rhino.Context;
1312
import dev.latvian.mods.rhino.type.TypeInfo;
14-
import net.minecraft.world.item.ItemStack;
1513

1614
public class ProcessingOutputRecipeComponent extends SimpleRecipeComponent<ProcessingOutput> {
1715
public static final TypeInfo TYPE_INFO = TypeInfo.of(ProcessingOutput.class);
@@ -22,25 +20,15 @@ public ProcessingOutputRecipeComponent(RecipeComponentType<?> type) {
2220
}
2321

2422
@Override
25-
public boolean hasPriority(Context cx, KubeRecipe recipe, Object from) {
23+
public boolean hasPriority(RecipeMatchContext cx, Object from) {
2624
return from instanceof ProcessingOutput || ItemWrapper.isItemStackLike(from);
2725
}
2826

2927
@Override
30-
public boolean matches(Context cx, KubeRecipe recipe, ProcessingOutput value, ReplacementMatchInfo match) {
28+
public boolean matches(RecipeMatchContext cx, ProcessingOutput value, ReplacementMatchInfo match) {
3129
return match.match() instanceof ItemMatch m && m.matches(cx, value.getStack(), match.exact());
3230
}
3331

34-
@Override
35-
public ProcessingOutput wrap(Context cx, KubeRecipe recipe, Object from) {
36-
if (from instanceof ProcessingOutput p) {
37-
return p;
38-
}
39-
40-
var stack = (ItemStack) cx.jsToJava(from, ItemWrapper.TYPE_INFO);
41-
return stack == null || stack.isEmpty() ? ProcessingOutput.EMPTY : new ProcessingOutput(stack, 1F);
42-
}
43-
4432
@Override
4533
public boolean isEmpty(ProcessingOutput value) {
4634
return value == ProcessingOutput.EMPTY || value.getStack().isEmpty();

0 commit comments

Comments
 (0)