diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/JEIActuallyAdditionsPlugin.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/JEIActuallyAdditionsPlugin.java index a89d9f1b7..042ca5965 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/JEIActuallyAdditionsPlugin.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/JEIActuallyAdditionsPlugin.java @@ -17,6 +17,8 @@ import de.ellpeck.actuallyadditions.mod.jei.coffee.CoffeeMachineRecipeCategory; import de.ellpeck.actuallyadditions.mod.jei.coffee.CoffeeMachineRecipeHandler; import de.ellpeck.actuallyadditions.mod.jei.crusher.CrusherRecipeCategory; import de.ellpeck.actuallyadditions.mod.jei.crusher.CrusherRecipeHandler; +import de.ellpeck.actuallyadditions.mod.jei.reconstructor.ReconstructorRecipeCategory; +import de.ellpeck.actuallyadditions.mod.jei.reconstructor.ReconstructorRecipeHandler; import mezz.jei.api.*; @JEIPlugin @@ -39,18 +41,21 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin{ registry.addRecipeCategories( new BookletRecipeCategory(this.helpers.getGuiHelper()), new CoffeeMachineRecipeCategory(this.helpers.getGuiHelper()), - new CrusherRecipeCategory(this.helpers.getGuiHelper()) + new CrusherRecipeCategory(this.helpers.getGuiHelper()), + new ReconstructorRecipeCategory(this.helpers.getGuiHelper()) ); registry.addRecipeHandlers( new BookletRecipeHandler(), new CoffeeMachineRecipeHandler(), - new CrusherRecipeHandler() + new CrusherRecipeHandler(), + new ReconstructorRecipeHandler() ); registry.addRecipes(ActuallyAdditionsAPI.bookletPagesWithItemStackData); registry.addRecipes(ActuallyAdditionsAPI.coffeeMachineIngredients); registry.addRecipes(ActuallyAdditionsAPI.crusherRecipes); + registry.addRecipes(ActuallyAdditionsAPI.reconstructorLensNoneRecipes); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeCategory.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeCategory.java new file mode 100644 index 000000000..04279d3c2 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeCategory.java @@ -0,0 +1,77 @@ +/* + * This file ("ReconstructorRecipeCategory.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense/ + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.jei.reconstructor; + +import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; +import de.ellpeck.actuallyadditions.mod.nei.NEIReconstructorRecipe; +import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.StringUtil; +import mezz.jei.api.IGuiHelper; +import mezz.jei.api.gui.IDrawable; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.recipe.IRecipeCategory; +import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +import javax.annotation.Nonnull; + +public class ReconstructorRecipeCategory implements IRecipeCategory{ + + private IDrawable background; + private static final ItemStack RECONSTRUCTOR = new ItemStack(InitBlocks.blockAtomicReconstructor); + + public ReconstructorRecipeCategory(IGuiHelper helper){ + this.background = helper.createDrawable(AssetUtil.getGuiLocation("guiNEIAtomicReconstructor"), 0, 0, 96, 60); + } + + @Nonnull + @Override + public String getUid(){ + return NEIReconstructorRecipe.NAME; + } + + @Nonnull + @Override + public String getTitle(){ + return StringUtil.localize("container.nei."+NEIReconstructorRecipe.NAME+".name"); + } + + @Nonnull + @Override + public IDrawable getBackground(){ + return this.background; + } + + @Override + public void drawExtras(Minecraft minecraft){ + AssetUtil.renderStackToGui(RECONSTRUCTOR, 34, 19, 1.0F); + } + + @Override + public void drawAnimations(Minecraft minecraft){ + + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper){ + if(recipeWrapper instanceof ReconstructorRecipeWrapper){ + ReconstructorRecipeWrapper wrapper = (ReconstructorRecipeWrapper)recipeWrapper; + + recipeLayout.getItemStacks().init(0, true, 4, 18); + recipeLayout.getItemStacks().set(0, wrapper.theRecipe.getInputs()); + + recipeLayout.getItemStacks().init(1, true, 66, 18); + recipeLayout.getItemStacks().set(1, wrapper.theRecipe.getOutputs()); + + } + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeHandler.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeHandler.java new file mode 100644 index 000000000..1d22fec60 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeHandler.java @@ -0,0 +1,44 @@ +/* + * This file ("ReconstructorRecipeHandler.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense/ + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.jei.reconstructor; + +import de.ellpeck.actuallyadditions.api.recipe.LensNoneRecipe; +import de.ellpeck.actuallyadditions.mod.nei.NEIReconstructorRecipe; +import mezz.jei.api.recipe.IRecipeHandler; +import mezz.jei.api.recipe.IRecipeWrapper; + +import javax.annotation.Nonnull; + +public class ReconstructorRecipeHandler implements IRecipeHandler{ + + @Nonnull + @Override + public Class getRecipeClass(){ + return LensNoneRecipe.class; + } + + @Nonnull + @Override + public String getRecipeCategoryUid(){ + return NEIReconstructorRecipe.NAME; + } + + @Nonnull + @Override + public IRecipeWrapper getRecipeWrapper(@Nonnull LensNoneRecipe recipe){ + return new ReconstructorRecipeWrapper(recipe); + } + + @Override + public boolean isRecipeValid(@Nonnull LensNoneRecipe recipe){ + return true; + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeWrapper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeWrapper.java new file mode 100644 index 000000000..33f4b7eaf --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/reconstructor/ReconstructorRecipeWrapper.java @@ -0,0 +1,96 @@ +/* + * This file ("ReconstructorRecipeWrapper.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense/ + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.jei.reconstructor; + +import com.google.common.collect.ImmutableList; +import de.ellpeck.actuallyadditions.api.booklet.BookletPage; +import de.ellpeck.actuallyadditions.api.recipe.LensNoneRecipe; +import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; +import de.ellpeck.actuallyadditions.mod.booklet.BookletUtils; +import de.ellpeck.actuallyadditions.mod.jei.RecipeWrapperWithButton; +import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +public class ReconstructorRecipeWrapper extends RecipeWrapperWithButton implements IRecipeWrapper{ + + public LensNoneRecipe theRecipe; + + public ReconstructorRecipeWrapper(LensNoneRecipe recipe){ + this.theRecipe = recipe; + } + + @Override + public List getInputs(){ + return this.theRecipe.getInputs(); + } + + @Override + public List getOutputs(){ + return this.theRecipe.getOutputs(); + } + + @Override + public List getFluidInputs(){ + return ImmutableList.of(); + } + + @Override + public List getFluidOutputs(){ + return ImmutableList.of(); + } + + @Override + public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight){ + + } + + @Override + public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY){ + this.updateButton(minecraft, mouseX, mouseY); + } + + @Override + public void drawAnimations(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight){ + + } + + @Nullable + @Override + public List getTooltipStrings(int mouseX, int mouseY){ + return null; + } + + @Override + public boolean handleClick(@Nonnull Minecraft minecraft, int mouseX, int mouseY, int mouseButton){ + return this.handleClick(minecraft, mouseX, mouseY); + } + + @Override + public BookletPage getPage(){ + return BookletUtils.getFirstPageForStack(new ItemStack(InitBlocks.blockAtomicReconstructor)); + } + + @Override + public int getButtonX(){ + return 3; + } + + @Override + public int getButtonY(){ + return 40; + } +}