Skip to content

Commit 2feca77

Browse files
Update to kubejs 7.2 (#1192)
1 parent fad18c5 commit 2feca77

File tree

10 files changed

+87
-89
lines changed

10 files changed

+87
-89
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ var generateModMetadata = tasks.register("generateModMetadata", ProcessResources
237237
guideme_version_range: guideme_version_range,
238238
ae2_version_range: ae2_version_range,
239239
jei_version_range: jei_version_range,
240+
kubejs_version_range: kubejs_version_range,
240241
]
241242
inputs.properties replaceProperties
242243

gradle.properties

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@ argonauts_version=2.0.0-alpha.4
3939
athena_minecraft_version=1.21
4040
athena_version=4.0.0
4141
au_version=1.2.5
42-
emi_minecraft_version=1.21
43-
emi_version=1.1.10
42+
emi_minecraft_version=1.21.1
43+
emi_version=1.1.22
4444
ftb_quests_version=2100.1.3
4545
ftb_teams_version=2100.1.0
4646
jade_file_id=5493270
4747
# JEI Versions https://github.com/mezz/JustEnoughItems#1211
4848
jei_minecraft_version=1.21.1
49-
jei_version=19.20.0.241
49+
jei_version=19.25.0.322
5050
jei_version_range=[19.19.0,]
51-
kubejs_version=2101.7.1-build.181
51+
kubejs_version=2101.7.2-build.290
52+
kubejs_version_range=[2101.7.2-build.290,]
5253
rei_version=16.0.729
5354
rei_annotations_version=12.0.93

src/main/java/aztech/modern_industrialization/compat/kubejs/MIKubeJSPlugin.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,7 @@
2727
import aztech.modern_industrialization.MIRegistries;
2828
import aztech.modern_industrialization.compat.kubejs.machine.MIMachineKubeJSEvents;
2929
import aztech.modern_industrialization.compat.kubejs.material.MIMaterialKubeJSEvents;
30-
import aztech.modern_industrialization.compat.kubejs.recipe.FluidInputComponent;
31-
import aztech.modern_industrialization.compat.kubejs.recipe.FluidOutputComponent;
32-
import aztech.modern_industrialization.compat.kubejs.recipe.ItemInputComponent;
33-
import aztech.modern_industrialization.compat.kubejs.recipe.ItemOutputComponent;
34-
import aztech.modern_industrialization.compat.kubejs.recipe.MIRecipeKubeJSEvents;
35-
import aztech.modern_industrialization.compat.kubejs.recipe.MachineKubeRecipe;
36-
import aztech.modern_industrialization.compat.kubejs.recipe.MachineProcessConditionComponent;
37-
import aztech.modern_industrialization.compat.kubejs.recipe.MachineRecipeSchema;
30+
import aztech.modern_industrialization.compat.kubejs.recipe.*;
3831
import aztech.modern_industrialization.compat.kubejs.registration.MIRegistrationKubeJSEvents;
3932
import aztech.modern_industrialization.machines.init.MIMachineRecipeTypes;
4033
import aztech.modern_industrialization.machines.recipe.condition.CustomProcessCondition;
@@ -43,7 +36,7 @@
4336
import dev.latvian.mods.kubejs.event.EventGroupRegistry;
4437
import dev.latvian.mods.kubejs.plugin.KubeJSPlugin;
4538
import dev.latvian.mods.kubejs.recipe.RecipesKubeEvent;
46-
import dev.latvian.mods.kubejs.recipe.schema.RecipeComponentFactoryRegistry;
39+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentTypeRegistry;
4740
import dev.latvian.mods.kubejs.recipe.schema.RecipeFactoryRegistry;
4841
import dev.latvian.mods.kubejs.recipe.schema.RecipeSchemaRegistry;
4942
import java.util.Map;
@@ -81,12 +74,12 @@ public void registerRecipeFactories(RecipeFactoryRegistry registry) {
8174
}
8275

8376
@Override
84-
public void registerRecipeComponents(RecipeComponentFactoryRegistry registry) {
85-
registry.register(ItemOutputComponent.ITEM_OUTPUT);
86-
registry.register(FluidOutputComponent.FLUID_OUTPUT);
87-
registry.register(ItemInputComponent.ITEM_INPUT);
88-
registry.register(FluidInputComponent.FLUID_INPUT);
89-
registry.register(MachineProcessConditionComponent.MACHINE_PROCESS_CONDITION);
77+
public void registerRecipeComponents(RecipeComponentTypeRegistry registry) {
78+
registry.register(ItemOutputComponent.TYPE);
79+
registry.register(FluidOutputComponent.TYPE);
80+
registry.register(ItemInputComponent.TYPE);
81+
registry.register(FluidInputComponent.TYPE);
82+
registry.register(MachineProcessConditionComponent.TYPE);
9083
}
9184

9285
@Override

src/main/java/aztech/modern_industrialization/compat/kubejs/recipe/FluidInputComponent.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,37 @@
2828
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
2929
import dev.latvian.mods.kubejs.core.RegistryObjectKJS;
3030
import dev.latvian.mods.kubejs.fluid.FluidWrapper;
31-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
31+
import dev.latvian.mods.kubejs.recipe.RecipeScriptContext;
32+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
3233
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
3334
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
35+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
3436
import dev.latvian.mods.kubejs.recipe.match.FluidMatch;
3537
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
36-
import dev.latvian.mods.kubejs.util.RegistryAccessContainer;
37-
import dev.latvian.mods.rhino.Context;
3838

3939
public class FluidInputComponent extends SimpleRecipeComponent<MachineRecipe.FluidInput> {
40-
public static final FluidInputComponent FLUID_INPUT = new FluidInputComponent();
40+
public static final RecipeComponentType<MachineRecipe.FluidInput> TYPE = RecipeComponentType.unit(MI.id("fluid_input"), FluidInputComponent::new);
4141

42-
public FluidInputComponent() {
43-
super(MI.ID + ":fluid_input", MachineRecipe.FluidInput.CODEC, FluidWrapper.SIZED_INGREDIENT_TYPE_INFO);
42+
public FluidInputComponent(RecipeComponentType<?> type) {
43+
super(type, MachineRecipe.FluidInput.CODEC, FluidWrapper.SIZED_INGREDIENT_TYPE_INFO);
4444
}
4545

4646
@Override
47-
public MachineRecipe.FluidInput wrap(Context cx, KubeRecipe recipe, Object from) {
48-
var fs = FluidWrapper.wrapSizedIngredient(RegistryAccessContainer.of(cx), from);
47+
public MachineRecipe.FluidInput wrap(RecipeScriptContext cx, Object from) {
48+
var fs = FluidWrapper.wrapSizedIngredient(cx.cx(), from);
4949
return new MachineRecipe.FluidInput(fs.ingredient(), fs.amount(), 1);
5050
}
5151

5252
@Override
53-
public boolean matches(Context cx, KubeRecipe recipe, MachineRecipe.FluidInput value, ReplacementMatchInfo match) {
53+
public boolean matches(RecipeMatchContext cx, MachineRecipe.FluidInput value, ReplacementMatchInfo match) {
5454
return match.match() instanceof FluidMatch m && m.matches(cx, value.fluid(), match.exact());
5555
}
5656

5757
@Override
58-
public MachineRecipe.FluidInput replace(Context cx, KubeRecipe recipe, MachineRecipe.FluidInput original, ReplacementMatchInfo match,
58+
public MachineRecipe.FluidInput replace(RecipeScriptContext cx, MachineRecipe.FluidInput original, ReplacementMatchInfo match,
5959
Object with) {
60-
if (matches(cx, recipe, original, match)) {
61-
var fi = FluidWrapper.wrapIngredient(RegistryAccessContainer.of(cx), with);
60+
if (matches(cx, original, match)) {
61+
var fi = FluidWrapper.wrapIngredient(cx.cx(), with);
6262
return new MachineRecipe.FluidInput(fi, original.amount(), original.probability());
6363
} else {
6464
return original;

src/main/java/aztech/modern_industrialization/compat/kubejs/recipe/FluidOutputComponent.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,40 @@
2727
import aztech.modern_industrialization.MI;
2828
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
2929
import dev.latvian.mods.kubejs.fluid.FluidWrapper;
30-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
30+
import dev.latvian.mods.kubejs.recipe.RecipeScriptContext;
31+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
3132
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
3233
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
34+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
3335
import dev.latvian.mods.kubejs.recipe.match.FluidMatch;
3436
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
35-
import dev.latvian.mods.kubejs.util.RegistryAccessContainer;
36-
import dev.latvian.mods.rhino.Context;
3737
import net.minecraft.world.level.material.Fluids;
3838
import net.neoforged.neoforge.fluids.FluidStack;
3939

4040
public class FluidOutputComponent extends SimpleRecipeComponent<MachineRecipe.FluidOutput> {
41-
public static final FluidOutputComponent FLUID_OUTPUT = new FluidOutputComponent();
41+
public static final RecipeComponentType<MachineRecipe.FluidOutput> TYPE = RecipeComponentType.unit(MI.id("fluid_output"),
42+
FluidOutputComponent::new);
4243

43-
public FluidOutputComponent() {
44-
super(MI.ID + ":fluid_output", MachineRecipe.FluidOutput.CODEC, FluidWrapper.TYPE_INFO);
44+
public FluidOutputComponent(RecipeComponentType<?> type) {
45+
super(type, MachineRecipe.FluidOutput.CODEC, FluidWrapper.TYPE_INFO);
4546
}
4647

4748
@Override
48-
public MachineRecipe.FluidOutput wrap(Context cx, KubeRecipe recipe, Object from) {
49-
var fs = FluidWrapper.wrap(RegistryAccessContainer.of(cx), from);
49+
public MachineRecipe.FluidOutput wrap(RecipeScriptContext cx, Object from) {
50+
var fs = FluidWrapper.wrap(cx.cx(), from);
5051
return new MachineRecipe.FluidOutput(fs.getFluid(), fs.getAmount(), 1);
5152
}
5253

5354
@Override
54-
public boolean matches(Context cx, KubeRecipe recipe, MachineRecipe.FluidOutput value, ReplacementMatchInfo match) {
55+
public boolean matches(RecipeMatchContext cx, MachineRecipe.FluidOutput value, ReplacementMatchInfo match) {
5556
return match.match() instanceof FluidMatch m && m.matches(cx, new FluidStack(value.fluid(), 1), match.exact());
5657
}
5758

5859
@Override
59-
public MachineRecipe.FluidOutput replace(Context cx, KubeRecipe recipe, MachineRecipe.FluidOutput original, ReplacementMatchInfo match,
60+
public MachineRecipe.FluidOutput replace(RecipeScriptContext cx, MachineRecipe.FluidOutput original, ReplacementMatchInfo match,
6061
Object with) {
61-
if (matches(cx, recipe, original, match)) {
62-
var fs = FluidWrapper.wrap(RegistryAccessContainer.of(cx), with);
62+
if (matches(cx, original, match)) {
63+
var fs = FluidWrapper.wrap(cx.cx(), with);
6364
return new MachineRecipe.FluidOutput(fs.getFluid(), original.amount(), original.probability());
6465
} else {
6566
return original;

src/main/java/aztech/modern_industrialization/compat/kubejs/recipe/ItemInputComponent.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,43 +26,41 @@
2626

2727
import aztech.modern_industrialization.MI;
2828
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
29-
import dev.latvian.mods.kubejs.bindings.IngredientWrapper;
30-
import dev.latvian.mods.kubejs.bindings.SizedIngredientWrapper;
3129
import dev.latvian.mods.kubejs.core.IngredientKJS;
3230
import dev.latvian.mods.kubejs.core.RegistryObjectKJS;
33-
import dev.latvian.mods.kubejs.item.ingredient.IngredientJS;
34-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
31+
import dev.latvian.mods.kubejs.plugin.builtin.wrapper.IngredientWrapper;
32+
import dev.latvian.mods.kubejs.plugin.builtin.wrapper.SizedIngredientWrapper;
33+
import dev.latvian.mods.kubejs.recipe.RecipeScriptContext;
34+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
3535
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
3636
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
37+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
3738
import dev.latvian.mods.kubejs.recipe.match.ItemMatch;
3839
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
39-
import dev.latvian.mods.rhino.Context;
40-
import net.minecraft.world.item.crafting.Ingredient;
41-
import net.neoforged.neoforge.common.crafting.SizedIngredient;
4240

4341
public class ItemInputComponent extends SimpleRecipeComponent<MachineRecipe.ItemInput> {
44-
public static final ItemInputComponent ITEM_INPUT = new ItemInputComponent();
42+
public static final RecipeComponentType<MachineRecipe.ItemInput> TYPE = RecipeComponentType.unit(MI.id("item_input"), ItemInputComponent::new);
4543

46-
public ItemInputComponent() {
47-
super(MI.ID + ":item_input", MachineRecipe.ItemInput.CODEC, SizedIngredientWrapper.TYPE_INFO);
44+
public ItemInputComponent(RecipeComponentType<?> type) {
45+
super(type, MachineRecipe.ItemInput.CODEC, SizedIngredientWrapper.TYPE_INFO);
4846
}
4947

5048
@Override
51-
public MachineRecipe.ItemInput wrap(Context cx, KubeRecipe recipe, Object from) {
52-
var sizedIngredient = (SizedIngredient) cx.jsToJava(from, typeInfo());
49+
public MachineRecipe.ItemInput wrap(RecipeScriptContext cx, Object from) {
50+
var sizedIngredient = SizedIngredientWrapper.wrap(cx.cx(), from);
5351
return new MachineRecipe.ItemInput(sizedIngredient.ingredient(), sizedIngredient.count(), 1);
5452
}
5553

5654
@Override
57-
public boolean matches(Context cx, KubeRecipe recipe, MachineRecipe.ItemInput value, ReplacementMatchInfo match) {
55+
public boolean matches(RecipeMatchContext cx, MachineRecipe.ItemInput value, ReplacementMatchInfo match) {
5856
return match.match() instanceof ItemMatch m && m.matches(cx, value.ingredient(), match.exact());
5957
}
6058

6159
@Override
62-
public MachineRecipe.ItemInput replace(Context cx, KubeRecipe recipe, MachineRecipe.ItemInput original, ReplacementMatchInfo match,
60+
public MachineRecipe.ItemInput replace(RecipeScriptContext cx, MachineRecipe.ItemInput original, ReplacementMatchInfo match,
6361
Object with) {
64-
if (matches(cx, recipe, original, match)) {
65-
var withJava = (Ingredient) cx.jsToJava(with, IngredientJS.TYPE_INFO);
62+
if (matches(cx, original, match)) {
63+
var withJava = IngredientWrapper.wrap(cx.cx(), with);
6664
return new MachineRecipe.ItemInput(withJava, original.amount(), original.probability());
6765
} else {
6866
return original;

src/main/java/aztech/modern_industrialization/compat/kubejs/recipe/ItemOutputComponent.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,40 +28,40 @@
2828
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
2929
import aztech.modern_industrialization.thirdparty.fabrictransfer.api.item.ItemVariant;
3030
import dev.latvian.mods.kubejs.core.ItemStackKJS;
31-
import dev.latvian.mods.kubejs.item.ItemStackJS;
32-
import dev.latvian.mods.kubejs.recipe.KubeRecipe;
31+
import dev.latvian.mods.kubejs.plugin.builtin.wrapper.ItemWrapper;
32+
import dev.latvian.mods.kubejs.recipe.RecipeScriptContext;
33+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
3334
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
3435
import dev.latvian.mods.kubejs.recipe.component.UniqueIdBuilder;
36+
import dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext;
3537
import dev.latvian.mods.kubejs.recipe.match.ItemMatch;
3638
import dev.latvian.mods.kubejs.recipe.match.ReplacementMatchInfo;
37-
import dev.latvian.mods.rhino.Context;
38-
import net.minecraft.world.item.ItemStack;
3939

4040
public class ItemOutputComponent extends SimpleRecipeComponent<MachineRecipe.ItemOutput> {
41-
public static final ItemOutputComponent ITEM_OUTPUT = new ItemOutputComponent();
41+
public static final RecipeComponentType<MachineRecipe.ItemOutput> TYPE = RecipeComponentType.unit(MI.id("item_output"), ItemOutputComponent::new);
4242

43-
public ItemOutputComponent() {
44-
super(MI.ID + ":item_input", MachineRecipe.ItemOutput.CODEC, ItemStackJS.TYPE_INFO);
43+
public ItemOutputComponent(RecipeComponentType<?> type) {
44+
super(type, MachineRecipe.ItemOutput.CODEC, ItemWrapper.TYPE_INFO);
4545
}
4646

4747
@Override
48-
public MachineRecipe.ItemOutput wrap(Context cx, KubeRecipe recipe, Object from) {
49-
var itemStack = (ItemStack) cx.jsToJava(from, typeInfo());
48+
public MachineRecipe.ItemOutput wrap(RecipeScriptContext cx, Object from) {
49+
var itemStack = ItemWrapper.wrap(cx.cx(), from);
5050
return new MachineRecipe.ItemOutput(ItemVariant.of(itemStack), itemStack.getCount(), 1);
5151
}
5252

5353
@Override
54-
public boolean matches(Context cx, KubeRecipe recipe, MachineRecipe.ItemOutput value, ReplacementMatchInfo match) {
54+
public boolean matches(RecipeMatchContext cx, MachineRecipe.ItemOutput value, ReplacementMatchInfo match) {
5555
return match.match() instanceof ItemMatch m && !value.variant().isBlank() && value.amount() > 0
5656
&& m.matches(cx, value.getStack(), match.exact());
5757
}
5858

5959
@Override
60-
public MachineRecipe.ItemOutput replace(Context cx, KubeRecipe recipe, MachineRecipe.ItemOutput original, ReplacementMatchInfo match,
60+
public MachineRecipe.ItemOutput replace(RecipeScriptContext cx, MachineRecipe.ItemOutput original, ReplacementMatchInfo match,
6161
Object with) {
62-
if (matches(cx, recipe, original, match)) {
63-
var withJava = (ItemStack) cx.jsToJava(with, typeInfo());
64-
return new MachineRecipe.ItemOutput(ItemVariant.of(withJava), original.amount(), original.probability());
62+
if (matches(cx, original, match)) {
63+
var stack = ItemWrapper.wrap(cx.cx(), with);
64+
return new MachineRecipe.ItemOutput(ItemVariant.of(stack), original.amount(), original.probability());
6565
} else {
6666
return original;
6767
}

src/main/java/aztech/modern_industrialization/compat/kubejs/recipe/MachineProcessConditionComponent.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@
2626

2727
import aztech.modern_industrialization.MI;
2828
import aztech.modern_industrialization.machines.recipe.condition.MachineProcessCondition;
29+
import dev.latvian.mods.kubejs.recipe.component.RecipeComponentType;
2930
import dev.latvian.mods.kubejs.recipe.component.SimpleRecipeComponent;
3031
import dev.latvian.mods.rhino.type.TypeInfo;
3132

3233
public class MachineProcessConditionComponent extends SimpleRecipeComponent<MachineProcessCondition> {
33-
public static final MachineProcessConditionComponent MACHINE_PROCESS_CONDITION = new MachineProcessConditionComponent();
34+
public static final RecipeComponentType<MachineProcessCondition> TYPE = RecipeComponentType.unit(MI.id("machine_process_condition"),
35+
MachineProcessConditionComponent::new);
3436

35-
public MachineProcessConditionComponent() {
36-
super(MI.ID + ":machine_process_condition", MachineProcessCondition.CODEC, TypeInfo.of(MachineProcessCondition.class));
37+
public MachineProcessConditionComponent(RecipeComponentType<?> type) {
38+
super(type, MachineProcessCondition.CODEC, TypeInfo.of(MachineProcessCondition.class));
3739
}
3840
}

0 commit comments

Comments
 (0)