Skip to content

Commit

Permalink
Add KubeJS support
Browse files Browse the repository at this point in the history
  • Loading branch information
Electrolyte220 committed Sep 3, 2023
1 parent 70915ce commit 10afd9c
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 1 deletion.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ dependencies {
implementation fg.deobf("dev.architectury:architectury-forge:${architectury_version}")
implementation fg.deobf("dev.latvian.mods:rhino-forge:${rhino_version}")
implementation fg.deobf("dev.latvian.mods:kubejs-forge:${kubejs_version}")
implementation fg.deobf("dev.latvian.mods:kubejs-create-forge:${kubejs_create_version}")
implementation fg.deobf("curse.maven:ldlib-626676:4676440")
implementation fg.deobf("curse.maven:configuration-444699:4519560")
implementation fg.deobf("curse.maven:gregtechceu-modern-890405:4711834")
Expand Down
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ flywheel_version=0.6.9-18
registrate_version=MC1.19-1.1.5
jei_version=11.6.0.1016
curios_version=5.1.4.1
kubejs_version=1902.6.1-build.354
kubejs_version=1902.6.2-build.3
kubejs_create_version=1902.2.4-build.29
rhino_version=1902.2.2-build.269
architectury_version=6.5.85
cloth_version=8.3.103
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package electrolyte.greate.compat.kubejs;

import dev.latvian.mods.kubejs.KubeJSPlugin;
import dev.latvian.mods.kubejs.recipe.schema.RecipeSchema;
import dev.latvian.mods.kubejs.recipe.schema.RegisterRecipeSchemasEvent;
import electrolyte.greate.content.processing.recipe.TieredProcessingRecipeSerializer;
import electrolyte.greate.registry.ModRecipeTypes;

import java.util.Map;

public class GreateKubeJSPlugin extends KubeJSPlugin {

private static final Map<ModRecipeTypes, RecipeSchema> RECIPE_SCHEMAS = Map.of(
ModRecipeTypes.MILLING, TieredProcessingRecipeSchema.PROCESSING_WITH_TIME,
ModRecipeTypes.CRUSHING, TieredProcessingRecipeSchema.PROCESSING_WITH_TIME
);

@Override
public void registerRecipeSchemas(RegisterRecipeSchemasEvent event) {
for(ModRecipeTypes recipeType : ModRecipeTypes.values()) {
if(recipeType.getSerializer() instanceof TieredProcessingRecipeSerializer<?>) {
RecipeSchema schema = RECIPE_SCHEMAS.getOrDefault(recipeType, TieredProcessingRecipeSchema.PROCESSING_DEFAULT);
event.register(recipeType.getId(), schema);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package electrolyte.greate.compat.kubejs;

import dev.latvian.mods.kubejs.create.ProcessingRecipeSchema;
import dev.latvian.mods.kubejs.recipe.RecipeJS;
import dev.latvian.mods.kubejs.recipe.RecipeKey;
import dev.latvian.mods.kubejs.recipe.component.StringComponent;
import dev.latvian.mods.kubejs.recipe.schema.RecipeSchema;
import electrolyte.greate.GreateEnums.TIER;

import java.util.Locale;

public interface TieredProcessingRecipeSchema extends ProcessingRecipeSchema {

RecipeKey<String> RECIPE_TIER = new StringComponent("Invalid Recipe Tier!", s -> {
for(TIER tier : TIER.values()) {
if(tier.name().equalsIgnoreCase(s)) return true;
}
return false;
}).key("recipeTier").optional("ulv");

class TieredProcessingRecipeJS extends ProcessingRecipeJS {
public RecipeJS recipeTier(Object from) {
return setValue(RECIPE_TIER, ((String) from).toLowerCase(Locale.ROOT));
}
}

RecipeSchema PROCESSING_DEFAULT = new RecipeSchema(TieredProcessingRecipeJS.class, TieredProcessingRecipeJS::new, RESULTS, INGREDIENTS, PROCESSING_TIME, HEAT_REQUIREMENT, RECIPE_TIER);
RecipeSchema PROCESSING_WITH_TIME = new RecipeSchema(TieredProcessingRecipeJS.class, TieredProcessingRecipeJS::new, RESULTS, INGREDIENTS, PROCESSING_TIME_REQUIRED, HEAT_REQUIREMENT, RECIPE_TIER);
RecipeSchema PROCESSING_UNWRAPPED = new RecipeSchema(TieredProcessingRecipeJS.class, TieredProcessingRecipeJS::new, RESULTS, INGREDIENTS_UNWRAPPED, PROCESSING_TIME, HEAT_REQUIREMENT, RECIPE_TIER);
}
7 changes: 7 additions & 0 deletions src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@ authors="Electrolyte"

description="Create Gregified"

[[dependencies.greate]]
modId="kubejs_create"
mandatory=true
versionRange="[1902.2.4-build.29,)"
ordering="NONE"
side="BOTH"

[[dependencies.greate]]
modId="create"
mandatory=true
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/kubejs.plugins.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
electrolyte.greate.compat.kubejs.GreateKubeJSPlugin

0 comments on commit 10afd9c

Please sign in to comment.