diff options
author | Technus <daniel112092@gmail.com> | 2017-08-17 07:47:47 +0200 |
---|---|---|
committer | Technus <daniel112092@gmail.com> | 2017-08-17 07:47:47 +0200 |
commit | dc545e3925b1cde2f40e0fd22e1437df7f93fc4c (patch) | |
tree | 05f664186114573adaf7482bbc07bc78b1804fb7 | |
parent | 4e4371b86d5f23be78499bc59acbbc18a2f4c012 (diff) | |
download | GT5-Unofficial-dc545e3925b1cde2f40e0fd22e1437df7f93fc4c.tar.gz GT5-Unofficial-dc545e3925b1cde2f40e0fd22e1437df7f93fc4c.tar.bz2 GT5-Unofficial-dc545e3925b1cde2f40e0fd22e1437df7f93fc4c.zip |
Change recipe api a bit
5 files changed, 52 insertions, 27 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 a3f6f9ea17..0d0635db19 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,6 +1,7 @@ package com.github.technus.tectech.recipe; 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; @@ -114,8 +115,8 @@ public class TT_recipe extends GT_Recipe { } public static class TT_Recipe_Map<T extends TT_recipe> { - public static TT_Recipe_Map<TT_assLineRecipe> sEMcrafterRecipes = new TT_Recipe_Map(); - public static TT_Recipe_Map<TT_assLineRecipe> sEMmachineRecipes = new TT_Recipe_Map(); + 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; @@ -132,9 +133,9 @@ public class TT_recipe extends GT_Recipe { return mRecipeMap.get(dataHandler.stackTagCompound.getString("mapID")); } - public void add(String identifier, T recipe){ - if(identifier.length()==0) return; - mRecipeMap.put(identifier,recipe); + public void add(T recipe){ + GameRegistry.UniqueIdentifier uid=GameRegistry.findUniqueIdentifierFor(recipe.mOutputs[0].getItem()); + mRecipeMap.put(uid+":"+recipe.mOutputs[0].getItemDamage(),recipe); } public Collection<T> recipeList(){ @@ -152,7 +153,6 @@ public class TT_recipe extends GT_Recipe { public static class TT_assLineRecipe extends TT_recipe{ public final ItemStack mResearchItem; - public final String id; public TT_assLineRecipe(boolean aOptimize, ItemStack researchItem, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, @@ -160,8 +160,6 @@ public class TT_recipe extends GT_Recipe { cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) { super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check); mResearchItem=researchItem; - GameRegistry.UniqueIdentifier id=GameRegistry.findUniqueIdentifierFor(aOutputs[0].getItem()); - this.id=id.modId+":"+id.name+":"+aOutputs[0].getItemDamage(); } public TT_assLineRecipe(boolean aOptimize, ItemStack researchItem, @@ -171,4 +169,23 @@ public class TT_recipe extends GT_Recipe { this(aOptimize, researchItem, aInputs, aOutputs, aSpecialItems, aFluidInputs, aDuration, aEUt, aSpecialValue, in, null, null,null); } } + + public static class TT_EMRecipe extends TT_recipe{ + public final cElementalInstanceStack mResearchEM; + + public TT_EMRecipe(boolean aOptimize, cElementalInstanceStack researchEM, + ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, + FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue, + cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) { + super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check); + mResearchEM=researchEM; + } + + public TT_EMRecipe(boolean aOptimize, cElementalInstanceStack 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); + } + } } diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java index ffeeb9ec0f..5ba42d7f39 100644 --- a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java +++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java @@ -3,7 +3,6 @@ package com.github.technus.tectech.recipe; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_research; -import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.ItemList; import gregtech.api.util.GT_Recipe; import gregtech.common.GT_RecipeAdder; @@ -61,8 +60,7 @@ public class TT_recipeAdder extends GT_RecipeAdder { if(computationRequiredPerSec<=0) computationRequiredPerSec=1; else if(computationRequiredPerSec > Short.MAX_VALUE) computationRequiredPerSec=Short.MAX_VALUE; TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.addFakeRecipe(false, new ItemStack[]{aResearchItem}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Writes Research result for "+ GT_MetaTileEntity_EM_research.machine)}, null, null, totalComputationRequired, researchEUt, researchAmperage|(computationRequiredPerSec<<16)); - TT_recipe.TT_Recipe_Map.sEMmachineRecipes.add(GameRegistry.findUniqueIdentifierFor(aOutput.getItem()).modId+":"+aOutput.getUnlocalizedName()+":"+aOutput.getItemDamage(), - new TT_recipe.TT_assLineRecipe(false,aResearchItem,aInputs,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")}, + TT_recipe.TT_Recipe_Map.sMachineRecipes.add(new TT_recipe.TT_assLineRecipe(false,aResearchItem,aInputs,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")}, aFluidInputs,machineDuration,machineEUt,machineAmperage,eInputs)); return true; } @@ -79,9 +77,7 @@ public class TT_recipeAdder extends GT_RecipeAdder { if(computationRequiredPerSec<=0) computationRequiredPerSec=1; else if(computationRequiredPerSec > Short.MAX_VALUE) computationRequiredPerSec=Short.MAX_VALUE; TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.addFakeRecipe(false, new ItemStack[]{aResearchItem}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Writes Research result for "+GT_MetaTileEntity_EM_research.crafter)}, null, null, totalComputationRequired, researchEUt, researchAmperage|(computationRequiredPerSec<<16)); - GameRegistry.UniqueIdentifier id=GameRegistry.findUniqueIdentifierFor(aOutput.getItem()); - TT_recipe.TT_Recipe_Map.sEMcrafterRecipes.add(id.modId+":"+id.name+":"+aOutput.getItemDamage(), - new TT_recipe.TT_assLineRecipe(false,aResearchItem,null,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")}, + TT_recipe.TT_Recipe_Map.sCrafterRecipes.add(new TT_recipe.TT_assLineRecipe(false,aResearchItem,null,new ItemStack[]{aOutput},new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Reads Research result")}, null,crafterDuration,crafterEUt,crafterAmperage,eInputs,null,catalyst,check)); return true; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java index 1fa36038b2..8f235b1af6 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafter.java @@ -17,6 +17,7 @@ import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBloc * Created by danie_000 on 17.12.2016. */ public class GT_MetaTileEntity_EM_crafter extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { + public final static String crafter="EM Crafting"; //region structure private static final String[][] shape = new String[][]{ {"A000","0 0","0 . 0","0 0","A000",}, diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java index bddf4ee03f..0436bd303e 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_machine.java @@ -11,6 +11,8 @@ import net.minecraft.util.EnumChatFormatting; * Created by danie_000 on 17.12.2016. */ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBase_EM { + public final static String machine="EM Machinery"; + private static final String[][] shape = new String[][]{ {"",//left to right top "", 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 8f5ff2c603..2f39489adf 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 @@ -6,6 +6,7 @@ import com.github.technus.tectech.recipe.TT_recipe; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Holder; +import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -32,6 +33,8 @@ import static com.github.technus.tectech.Util.*; 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; +import static com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_crafter.crafter; +import static com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_machine.machine; import static gregtech.api.enums.GT_Values.E; /** @@ -43,7 +46,6 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB private TT_recipe.TT_assLineRecipe aRecipe; private String machineType; private long computationRemaining,computationRequired; - public final static String crafter="EM Crafting",machine="EM Machinery"; //region structure private static final String[][] shape = new String[][]{ @@ -122,28 +124,34 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB @Override protected void EM_onFirstTick() { + if(getBaseMetaTileEntity().isClientSide()) return; if(computationRemaining>0) { aRecipe=null; tRecipe=null; if (!eHolders.isEmpty() && eHolders.get(0).mInventory[0] != null) { ItemStack researchItem = eHolders.get(0).mInventory[0]; - if(ItemList.Tool_DataStick.isStackEqual(mInventory[1], false, true)) { + if (ItemList.Tool_DataStick.isStackEqual(mInventory[1], false, true)) { for (GT_Recipe.GT_Recipe_AssemblyLine tRecipe : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes) { if (GT_Utility.areStacksEqual(tRecipe.mResearchItem, researchItem, true)) { this.tRecipe = tRecipe; + break; } } - }else if(ItemList.Tool_DataOrb.isStackEqual(mInventory[1], false, true)) { - for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sEMmachineRecipes.recipeList()){ + } else if (ItemList.Tool_DataOrb.isStackEqual(mInventory[1], false, true)) { + for (TT_recipe.TT_assLineRecipe assRecipeTT : TT_recipe.TT_Recipe_Map.sMachineRecipes.recipeList()) { if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, researchItem, true)) { this.aRecipe = assRecipeTT; - machineType=machine; + machineType = machine; + break; } } - for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sEMcrafterRecipes.recipeList()){ - if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, researchItem, true)) { - this.aRecipe = assRecipeTT; - machineType=crafter; + if (aRecipe == null) { + for (TT_recipe.TT_assLineRecipe assRecipeTT : TT_recipe.TT_Recipe_Map.sCrafterRecipes.recipeList()) { + if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, researchItem, true)) { + this.aRecipe = assRecipeTT; + machineType = crafter; + break; + } } } } @@ -184,7 +192,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB } } }else if(ItemList.Tool_DataOrb.isStackEqual(itemStack, false, true)){ - for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sEMmachineRecipes.recipeList()){ + for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sMachineRecipes.recipeList()){ if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, researchItem, true)) { this.aRecipe = assRecipeTT; machineType=machine; @@ -203,7 +211,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB } } } - for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sEMcrafterRecipes.recipeList()){ + for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sCrafterRecipes.recipeList()){ if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, researchItem, true)) { this.aRecipe = assRecipeTT; machineType=crafter; @@ -286,8 +294,9 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB NBTTagCompound tNBT = mInventory[1].getTagCompound();//code above makes it not null tNBT.setString("eMachineType", machineType); - tNBT.setString("eRecipeID", aRecipe.id); - //tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + ' ' + machineType+ " Recipe Generator"); + GameRegistry.UniqueIdentifier uid=GameRegistry.findUniqueIdentifierFor(aRecipe.mOutputs[0].getItem()); + tNBT.setString("eRecipeID", uid+":"+aRecipe.mOutputs[0].getItemDamage()); + tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + ' ' + machineType+ " Recipe Generator"); } } computationRequired=computationRemaining=0; |