aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-08-18 17:35:35 +0200
committerTechnus <daniel112092@gmail.com>2017-08-19 11:05:54 +0200
commite82c2ee9a9fbdcb2a10f68ce465954aece03a2a6 (patch)
tree1c50b3d941dfe4c0d23904b0701764f343b4c89e /src/main/java
parent71734b781e9108b44feedd76c6121b37c94b520a (diff)
downloadGT5-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.java53
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java3
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");
}
}