shMonifactory/kubejs/startup_scripts/excrafting_schema.js
2025-09-14 21:22:24 +03:00

71 lines
3.4 KiB
JavaScript

/**
* KubeJS recipe schema for use in defining custom ExtendedCrafting recipes.
* Applications of these can be seen in server_scripts/extendedcrafting.js
*/
const $RecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.RecipeSchema");
const $ShapedRecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.minecraft.ShapedRecipeSchema");
const $ShapelessRecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.minecraft.ShapelessRecipeSchema");
const $ItemComponents = Java.loadClass("dev.latvian.mods.kubejs.recipe.component.ItemComponents");
const $NumberComponent = Java.loadClass("dev.latvian.mods.kubejs.recipe.component.NumberComponent");
StartupEvents.recipeSchemaRegistry(event => {
// Extended Crafting
event.register("extendedcrafting:shaped_ender_crafter", new $RecipeSchema(
$ShapedRecipeSchema.RESULT,
$ShapedRecipeSchema.PATTERN,
$ShapedRecipeSchema.KEY,
$NumberComponent.INT.key("craftingTime").defaultOptional().preferred("craftingTime")
)
);
event.register("extendedcrafting:shapeless_ender_crafter", new $RecipeSchema(
$ShapelessRecipeSchema.RESULT,
$ShapelessRecipeSchema.INGREDIENTS,
$NumberComponent.INT.key("craftingTime").defaultOptional().preferred("craftingTime")
)
);
event.register("extendedcrafting:combination", new $RecipeSchema(
$ItemComponents.OUTPUT.key("result"),
$ItemComponents.INPUT.key("input"),
$ItemComponents.UNWRAPPED_INPUT_ARRAY.key("ingredients"),
$NumberComponent.INT.key("powerCost").optional(500000).preferred("powerCost"),
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
)
);
event.register("extendedcrafting:compressor", new $RecipeSchema(
$ItemComponents.OUTPUT.key("result"),
$ItemComponents.INPUT.key("catalyst"),
$ItemComponents.INPUT.key("ingredient"),
$NumberComponent.INT.key("inputCount"),
$NumberComponent.INT.key("powerCost").optional(5000000).preferred("powerCost"),
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
)
);
event.register("extendedcrafting:shaped_flux_crafter", new $RecipeSchema(
$ShapedRecipeSchema.RESULT,
$ShapedRecipeSchema.PATTERN,
$ShapedRecipeSchema.KEY,
$NumberComponent.INT.key("powerRequired").optional(100000).preferred("powerRequired"),
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
)
);
event.register("extendedcrafting:shapeless_flux_crafter", new $RecipeSchema(
$ShapelessRecipeSchema.RESULT,
$ShapelessRecipeSchema.INGREDIENTS,
$NumberComponent.INT.key("powerRequired").optional(100000).preferred("powerRequired"),
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
)
);
event.register("extendedcrafting:shaped_table", new $RecipeSchema(
$ShapedRecipeSchema.RESULT,
$ShapedRecipeSchema.PATTERN,
$ShapedRecipeSchema.KEY,
$NumberComponent.INT.key("tier").defaultOptional().preferred("tier")
)
);
event.register("extendedcrafting:shapeless_table", new $RecipeSchema(
$ShapelessRecipeSchema.RESULT,
$ShapelessRecipeSchema.INGREDIENTS,
$NumberComponent.INT.key("tier").defaultOptional().preferred("tier")
)
);
});