mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-26 08:48:34 +01:00
Added Atomic Reconstructor NEI Handler
This commit is contained in:
parent
2902f5d8a5
commit
4163643299
7 changed files with 151 additions and 10 deletions
|
@ -35,9 +35,9 @@ import ellpeck.actuallyadditions.misc.*;
|
|||
import ellpeck.actuallyadditions.network.PacketHandler;
|
||||
import ellpeck.actuallyadditions.ore.InitOreDict;
|
||||
import ellpeck.actuallyadditions.proxy.IProxy;
|
||||
import ellpeck.actuallyadditions.recipe.AtomicReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.recipe.FuelHandler;
|
||||
import ellpeck.actuallyadditions.recipe.HairyBallHandler;
|
||||
import ellpeck.actuallyadditions.recipe.ReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.recipe.TreasureChestHandler;
|
||||
import ellpeck.actuallyadditions.tile.TileEntityBase;
|
||||
import ellpeck.actuallyadditions.update.UpdateChecker;
|
||||
|
@ -100,7 +100,7 @@ public class ActuallyAdditions{
|
|||
ItemCrafting.initMashedFoodRecipes();
|
||||
HairyBallHandler.init();
|
||||
TreasureChestHandler.init();
|
||||
AtomicReconstructorRecipeHandler.init();
|
||||
ReconstructorRecipeHandler.init();
|
||||
InitForeignPaxels.init();
|
||||
proxy.postInit(event);
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ import ellpeck.actuallyadditions.booklet.page.BookletPage;
|
|||
import ellpeck.actuallyadditions.booklet.page.PageCrafting;
|
||||
import ellpeck.actuallyadditions.booklet.page.PageReconstructor;
|
||||
import ellpeck.actuallyadditions.crafting.MiscCrafting;
|
||||
import ellpeck.actuallyadditions.recipe.AtomicReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.recipe.ReconstructorRecipeHandler;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -45,7 +45,7 @@ public class BookletChapterReconstructor extends BookletChapter{
|
|||
}
|
||||
}.setNoText());
|
||||
|
||||
for(AtomicReconstructorRecipeHandler.Recipe recipe : AtomicReconstructorRecipeHandler.recipes){
|
||||
for(ReconstructorRecipeHandler.Recipe recipe : ReconstructorRecipeHandler.recipes){
|
||||
BookletPage page = new PageReconstructor(allPages.size()+1, recipe.getFirstOutput()).setNoText();
|
||||
allPages.add(page);
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ package ellpeck.actuallyadditions.booklet.page;
|
|||
import ellpeck.actuallyadditions.blocks.InitBlocks;
|
||||
import ellpeck.actuallyadditions.booklet.GuiBooklet;
|
||||
import ellpeck.actuallyadditions.proxy.ClientProxy;
|
||||
import ellpeck.actuallyadditions.recipe.AtomicReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.recipe.ReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.util.ModUtil;
|
||||
import ellpeck.actuallyadditions.util.StringUtil;
|
||||
import ellpeck.actuallyadditions.util.Util;
|
||||
|
@ -95,7 +95,7 @@ public class PageReconstructor extends BookletPage{
|
|||
}
|
||||
|
||||
private ItemStack getInputForOutput(ItemStack output){
|
||||
for(AtomicReconstructorRecipeHandler.Recipe recipe : AtomicReconstructorRecipeHandler.recipes){
|
||||
for(ReconstructorRecipeHandler.Recipe recipe : ReconstructorRecipeHandler.recipes){
|
||||
ArrayList<ItemStack> stacks = OreDictionary.getOres(recipe.output);
|
||||
for(ItemStack stack : stacks){
|
||||
if(output.isItemEqual(stack)){
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* This file ("AtomicReconstructorRecipeHandler.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://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md
|
||||
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||
*
|
||||
* © 2015 Ellpeck
|
||||
*/
|
||||
|
||||
package ellpeck.actuallyadditions.nei;
|
||||
|
||||
import codechicken.lib.gui.GuiDraw;
|
||||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.recipe.RecipeInfo;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||
import ellpeck.actuallyadditions.blocks.InitBlocks;
|
||||
import ellpeck.actuallyadditions.recipe.ReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.util.ItemUtil;
|
||||
import ellpeck.actuallyadditions.util.ModUtil;
|
||||
import ellpeck.actuallyadditions.util.StringUtil;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
public class AtomicReconstructorRecipeHandler extends TemplateRecipeHandler implements INeiRecipeHandler{
|
||||
|
||||
public static final String NAME = "actuallyadditions.reconstructor";
|
||||
|
||||
public AtomicReconstructorRecipeHandler(){
|
||||
super();
|
||||
RecipeInfo.setGuiOffset(this.getGuiClass(), 0, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackForInfo(int page){
|
||||
return new ItemStack(InitBlocks.blockAtomicReconstructor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRecipeName(){
|
||||
return StringUtil.localize("container.nei."+NAME+".name");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadTransferRects(){
|
||||
transferRects.add(new RecipeTransferRect(new Rectangle(31+32, 18, 22, 16), NAME));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCraftingRecipes(String outputId, Object... results){
|
||||
if(outputId.equals(NAME) && getClass() == AtomicReconstructorRecipeHandler.class){
|
||||
ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes;
|
||||
for(ReconstructorRecipeHandler.Recipe recipe : recipes){
|
||||
arecipes.add(new CachedReconstructorRecipe(recipe.input, recipe.output));
|
||||
}
|
||||
}
|
||||
else{
|
||||
super.loadCraftingRecipes(outputId, results);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCraftingRecipes(ItemStack result){
|
||||
ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes;
|
||||
for(ReconstructorRecipeHandler.Recipe recipe : recipes){
|
||||
if(ItemUtil.contains(OreDictionary.getOres(recipe.output), result, true)){
|
||||
arecipes.add(new CachedReconstructorRecipe(recipe.input, recipe.output));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadUsageRecipes(ItemStack ingredient){
|
||||
ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes;
|
||||
for(ReconstructorRecipeHandler.Recipe recipe : recipes){
|
||||
if(ItemUtil.contains(OreDictionary.getOres(recipe.input), ingredient, true)){
|
||||
CachedReconstructorRecipe theRecipe = new CachedReconstructorRecipe(recipe.input, recipe.output);
|
||||
theRecipe.setIngredientPermutation(Collections.singletonList(theRecipe.input), ingredient);
|
||||
arecipes.add(theRecipe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGuiTexture(){
|
||||
return ModUtil.MOD_ID_LOWER+":textures/gui/guiNEISimple.png";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getOverlayIdentifier(){
|
||||
return NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends GuiContainer> getGuiClass(){
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawBackground(int recipeIndex){
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
GuiDraw.changeTexture(getGuiTexture());
|
||||
GuiDraw.drawTexturedModalRect(32, 0, 0, 0, 96, 60);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int recipiesPerPage(){
|
||||
return 2;
|
||||
}
|
||||
|
||||
public class CachedReconstructorRecipe extends CachedRecipe{
|
||||
|
||||
public PositionedStack result;
|
||||
public PositionedStack input;
|
||||
|
||||
public CachedReconstructorRecipe(String input, String result){
|
||||
this.result = new PositionedStack(OreDictionary.getOres(result), 67+32, 19);
|
||||
this.input = new PositionedStack(OreDictionary.getOres(input), 5+32, 19);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PositionedStack getResult(){
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PositionedStack getIngredient(){
|
||||
return input;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -56,6 +56,10 @@ public class NEIActuallyAdditionsConfig implements IConfigureNEI{
|
|||
API.registerRecipeHandler(coffeeMachineRecipeHandler);
|
||||
API.registerUsageHandler(coffeeMachineRecipeHandler);
|
||||
|
||||
AtomicReconstructorRecipeHandler atomicReconstructorRecipeHandler = new AtomicReconstructorRecipeHandler();
|
||||
API.registerRecipeHandler(atomicReconstructorRecipeHandler);
|
||||
API.registerUsageHandler(atomicReconstructorRecipeHandler);
|
||||
|
||||
BookletInfoRecipeHandler bookletInfoRecipeHandler = new BookletInfoRecipeHandler();
|
||||
API.registerRecipeHandler(bookletInfoRecipeHandler);
|
||||
API.registerUsageHandler(bookletInfoRecipeHandler);
|
||||
|
|
|
@ -16,7 +16,7 @@ import net.minecraftforge.oredict.OreDictionary;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
public class AtomicReconstructorRecipeHandler{
|
||||
public class ReconstructorRecipeHandler{
|
||||
|
||||
public static ArrayList<Recipe> recipes = new ArrayList<Recipe>();
|
||||
|
|
@ -17,7 +17,7 @@ import ellpeck.actuallyadditions.config.values.ConfigIntValues;
|
|||
import ellpeck.actuallyadditions.misc.DamageSources;
|
||||
import ellpeck.actuallyadditions.network.PacketAtomicReconstructor;
|
||||
import ellpeck.actuallyadditions.network.PacketHandler;
|
||||
import ellpeck.actuallyadditions.recipe.AtomicReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.recipe.ReconstructorRecipeHandler;
|
||||
import ellpeck.actuallyadditions.util.WorldPos;
|
||||
import ellpeck.actuallyadditions.util.WorldUtil;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -67,7 +67,7 @@ public class TileEntityAtomicReconstructor extends TileEntityBase implements IEn
|
|||
for(int reachY = -range; reachY < range+1; reachY++){
|
||||
if(this.storage.getEnergyStored() >= usePerBlock){
|
||||
WorldPos pos = new WorldPos(worldObj, coordsBlock.getX()+reachX, coordsBlock.getY()+reachY, coordsBlock.getZ()+reachZ);
|
||||
AtomicReconstructorRecipeHandler.Recipe recipe = AtomicReconstructorRecipeHandler.getRecipe(new ItemStack(pos.getBlock(), pos.getMetadata()));
|
||||
ReconstructorRecipeHandler.Recipe recipe = ReconstructorRecipeHandler.getRecipe(new ItemStack(pos.getBlock(), pos.getMetadata()));
|
||||
if(recipe != null){
|
||||
ItemStack output = recipe.getFirstOutput();
|
||||
if(output != null){
|
||||
|
@ -93,7 +93,7 @@ public class TileEntityAtomicReconstructor extends TileEntityBase implements IEn
|
|||
if(this.storage.getEnergyStored() >= usePerBlock){
|
||||
ItemStack stack = item.getEntityItem();
|
||||
if(stack != null){
|
||||
AtomicReconstructorRecipeHandler.Recipe recipe = AtomicReconstructorRecipeHandler.getRecipe(stack);
|
||||
ReconstructorRecipeHandler.Recipe recipe = ReconstructorRecipeHandler.getRecipe(stack);
|
||||
if(recipe != null){
|
||||
ItemStack output = recipe.getFirstOutput();
|
||||
if(output != null){
|
||||
|
|
Loading…
Reference in a new issue