diff options
author | Technus <daniel112092@gmail.com> | 2017-08-18 17:35:35 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-08-19 11:05:54 +0200 |
commit | e82c2ee9a9fbdcb2a10f68ce465954aece03a2a6 (patch) | |
tree | 1c50b3d941dfe4c0d23904b0701764f343b4c89e /src/main/java | |
parent | 71734b781e9108b44feedd76c6121b37c94b520a (diff) | |
download | GT5-Unofficial-e82c2ee9a9fbdcb2a10f68ce465954aece03a2a6.tar.gz GT5-Unofficial-e82c2ee9a9fbdcb2a10f68ce465954aece03a2a6.tar.bz2 GT5-Unofficial-e82c2ee9a9fbdcb2a10f68ce465954aece03a2a6.zip |
em recipe Map api "done"
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/github/technus/tectech/recipe/TT_recipe.java | 53 | ||||
-rw-r--r-- | src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java | 3 |
2 files changed, 48 insertions, 8 deletions
diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java index 0d0635db19..4f8fa30452 100644 --- a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java +++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java @@ -1,7 +1,9 @@ package com.github.technus.tectech.recipe; +import com.github.technus.tectech.TecTech; +import com.github.technus.tectech.auxiliary.TecTechConfig; +import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack; import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap; -import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack; import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.util.GT_Recipe; @@ -13,6 +15,7 @@ import java.util.HashMap; import java.util.HashSet; public class TT_recipe extends GT_Recipe { + public static final String E_RECIPE_ID = "eRecipeID"; public final cElementalDefinitionStackMap input[],output[], eCatalyst[]; public final AdditionalCheck additionalCheck; @@ -118,8 +121,9 @@ public class TT_recipe extends GT_Recipe { public static TT_Recipe_Map<TT_assLineRecipe> sCrafterRecipes = new TT_Recipe_Map<>(); public static TT_Recipe_Map<TT_assLineRecipe> sMachineRecipes = new TT_Recipe_Map<>(); - public final HashMap<String,T> mRecipeMap; - + private final HashMap<String,T> mRecipeMap; + + public TT_Recipe_Map(){ mRecipeMap =new HashMap<>(16); } @@ -130,7 +134,7 @@ public class TT_recipe extends GT_Recipe { public T findRecipe(ItemStack dataHandler){ if(dataHandler==null || dataHandler.stackTagCompound==null) return null; - return mRecipeMap.get(dataHandler.stackTagCompound.getString("mapID")); + return mRecipeMap.get(dataHandler.stackTagCompound.getString(E_RECIPE_ID)); } public void add(T recipe){ @@ -171,9 +175,9 @@ public class TT_recipe extends GT_Recipe { } public static class TT_EMRecipe extends TT_recipe{ - public final cElementalInstanceStack mResearchEM; + public final cElementalDefinitionStack mResearchEM; - public TT_EMRecipe(boolean aOptimize, cElementalInstanceStack researchEM, + public TT_EMRecipe(boolean aOptimize, cElementalDefinitionStack researchEM, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue, cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) { @@ -181,11 +185,46 @@ public class TT_recipe extends GT_Recipe { mResearchEM=researchEM; } - public TT_EMRecipe(boolean aOptimize, cElementalInstanceStack researchEM, + public TT_EMRecipe(boolean aOptimize, cElementalDefinitionStack researchEM, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue, cElementalDefinitionStackMap[] in) { this(aOptimize, researchEM, aInputs, aOutputs, aSpecialItems, aFluidInputs, aDuration, aEUt, aSpecialValue, in, null, null,null); } } + + public static class TT_Recipe_Map_EM<T extends TT_EMRecipe> { + public static TT_Recipe_Map_EM<TT_EMRecipe> sCrafterRecipesEM = new TT_Recipe_Map_EM<>(); + public static TT_Recipe_Map_EM<TT_EMRecipe> sMachineRecipesEM = new TT_Recipe_Map_EM<>(); + + private final HashMap<cElementalDefinitionStack,T> mRecipeMap; + + public TT_Recipe_Map_EM(){ + mRecipeMap =new HashMap<>(16); + } + + public T findRecipe(cElementalDefinitionStack stack){ + return mRecipeMap.get(stack); + } + + public T findRecipe(ItemStack dataHandler){ + if(dataHandler==null || dataHandler.stackTagCompound==null) return null; + try { + return mRecipeMap.get(cElementalDefinitionStack.fromNBT(dataHandler.stackTagCompound.getCompoundTag(E_RECIPE_ID))); + }catch (Exception e){ + if (TecTechConfig.DEBUG_MODE) + TecTech.Logger.debug("EM INSTANTIATION FAULT"); + TecTech.Logger.debug(e.getMessage()); + return null; + } + } + + public void add(T recipe){ + mRecipeMap.put(recipe.mResearchEM,recipe); + } + + public Collection<T> recipeList(){ + return mRecipeMap.values(); + } + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index 2f39489adf..90042f351f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -30,6 +30,7 @@ import net.minecraft.util.EnumChatFormatting; import java.util.ArrayList; import static com.github.technus.tectech.Util.*; +import static com.github.technus.tectech.recipe.TT_recipe.E_RECIPE_ID; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texturePage; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT; @@ -295,7 +296,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB tNBT.setString("eMachineType", machineType); GameRegistry.UniqueIdentifier uid=GameRegistry.findUniqueIdentifierFor(aRecipe.mOutputs[0].getItem()); - tNBT.setString("eRecipeID", uid+":"+aRecipe.mOutputs[0].getItemDamage()); + tNBT.setString(E_RECIPE_ID, uid+":"+aRecipe.mOutputs[0].getItemDamage()); tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + ' ' + machineType+ " Recipe Generator"); } } |