jei comapt
This commit is contained in:
11
build.gradle
11
build.gradle
@@ -153,6 +153,11 @@ repositories {
|
||||
// flatDir {
|
||||
// dir 'libs'
|
||||
// }
|
||||
maven {
|
||||
// location of the maven that hosts JEI files since January 2023
|
||||
name = "Jared's maven"
|
||||
url = "https://maven.blamejared.com/"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -169,6 +174,12 @@ dependencies {
|
||||
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}")
|
||||
// runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}")
|
||||
|
||||
// compile against the JEI API but do not include it at runtime
|
||||
compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}"))
|
||||
compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}"))
|
||||
// at runtime, use the full JEI jar for Forge
|
||||
runtimeOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}"))
|
||||
|
||||
// Example mod dependency using a mod jar from ./libs with a flat dir repository
|
||||
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
|
||||
// The group id is ignored when searching -- in this case, it is "blank"
|
||||
|
||||
@@ -38,6 +38,10 @@ mapping_channel=parchment
|
||||
mapping_version=2023.06.26-1.20.1
|
||||
|
||||
|
||||
## Dependency Properties
|
||||
jei_version=15.2.0.27
|
||||
|
||||
|
||||
## Mod Properties
|
||||
|
||||
# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package net.kaupenjoe.tutorialmod.compat;
|
||||
|
||||
import mezz.jei.api.constants.VanillaTypes;
|
||||
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
|
||||
import mezz.jei.api.gui.drawable.IDrawable;
|
||||
import mezz.jei.api.helpers.IGuiHelper;
|
||||
import mezz.jei.api.recipe.IFocusGroup;
|
||||
import mezz.jei.api.recipe.RecipeIngredientRole;
|
||||
import mezz.jei.api.recipe.RecipeType;
|
||||
import mezz.jei.api.recipe.category.IRecipeCategory;
|
||||
import net.kaupenjoe.tutorialmod.TutorialMod;
|
||||
import net.kaupenjoe.tutorialmod.block.ModBlocks;
|
||||
import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public class GemPolishingCategory implements IRecipeCategory<GemPolishingRecipe> {
|
||||
public static final ResourceLocation UID = new ResourceLocation(TutorialMod.MOD_ID, "gem_polishing");
|
||||
public static final ResourceLocation TEXTURE = new ResourceLocation(TutorialMod.MOD_ID,
|
||||
"textures/gui/gem_polishing_station_gui.png");
|
||||
|
||||
public static final RecipeType<GemPolishingRecipe> GEM_POLISHING_TYPE =
|
||||
new RecipeType<>(UID, GemPolishingRecipe.class);
|
||||
|
||||
private final IDrawable background;
|
||||
private final IDrawable icon;
|
||||
|
||||
public GemPolishingCategory(IGuiHelper helper) {
|
||||
this.background = helper.createDrawable(TEXTURE, 0, 0, 176, 85);
|
||||
this.icon = helper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(ModBlocks.GEM_POLISHING_STATION.get()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecipeType<GemPolishingRecipe> getRecipeType() {
|
||||
return GEM_POLISHING_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getTitle() {
|
||||
return Component.translatable("block.tutorialmod.gem_polishing_station");
|
||||
}
|
||||
|
||||
@Override
|
||||
public IDrawable getBackground() {
|
||||
return this.background;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IDrawable getIcon() {
|
||||
return this.icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRecipe(IRecipeLayoutBuilder builder, GemPolishingRecipe recipe, IFocusGroup focuses) {
|
||||
builder.addSlot(RecipeIngredientRole.INPUT, 80, 11).addIngredients(recipe.getIngredients().get(0));
|
||||
|
||||
builder.addSlot(RecipeIngredientRole.OUTPUT, 80, 59).addItemStack(recipe.getResultItem(null));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package net.kaupenjoe.tutorialmod.compat;
|
||||
|
||||
import mezz.jei.api.IModPlugin;
|
||||
import mezz.jei.api.JeiPlugin;
|
||||
import mezz.jei.api.registration.IGuiHandlerRegistration;
|
||||
import mezz.jei.api.registration.IRecipeCategoryRegistration;
|
||||
import mezz.jei.api.registration.IRecipeRegistration;
|
||||
import net.kaupenjoe.tutorialmod.TutorialMod;
|
||||
import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe;
|
||||
import net.kaupenjoe.tutorialmod.screen.GemPolishingStationScreen;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.crafting.RecipeManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@JeiPlugin
|
||||
public class JEITutorialModPlugin implements IModPlugin {
|
||||
@Override
|
||||
public ResourceLocation getPluginUid() {
|
||||
return new ResourceLocation(TutorialMod.MOD_ID, "jei_plugin");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCategories(IRecipeCategoryRegistration registration) {
|
||||
registration.addRecipeCategories(new GemPolishingCategory(registration.getJeiHelpers().getGuiHelper()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerRecipes(IRecipeRegistration registration) {
|
||||
RecipeManager recipeManager = Minecraft.getInstance().level.getRecipeManager();
|
||||
|
||||
List<GemPolishingRecipe> polishingRecipes = recipeManager.getAllRecipesFor(GemPolishingRecipe.Type.INSTANCE);
|
||||
registration.addRecipes(GemPolishingCategory.GEM_POLISHING_TYPE, polishingRecipes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
|
||||
registration.addRecipeClickArea(GemPolishingStationScreen.class, 60, 30, 20, 30,
|
||||
GemPolishingCategory.GEM_POLISHING_TYPE);
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,11 @@ public class GemPolishingRecipe implements Recipe<SimpleContainer> {
|
||||
return inputItems.get(0).test(pContainer.getItem(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public NonNullList<Ingredient> getIngredients() {
|
||||
return inputItems;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack assemble(SimpleContainer pContainer, RegistryAccess pRegistryAccess) {
|
||||
return output.copy();
|
||||
|
||||
Reference in New Issue
Block a user