aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2018-11-25 11:16:25 +0100
committerTec <daniel112092@gmail.com>2018-11-25 11:16:25 +0100
commit553743ce4c30e7f27cc2ed6f6894943a3a45d7e1 (patch)
tree4b7c22d12199b09a93eec95f62d70c7a0a512112 /src
parentad33fe767bf00f9aa804ec5d26f8a07598d1571b (diff)
downloadGT5-Unofficial-553743ce4c30e7f27cc2ed6f6894943a3a45d7e1.tar.gz
GT5-Unofficial-553743ce4c30e7f27cc2ed6f6894943a3a45d7e1.tar.bz2
GT5-Unofficial-553743ce4c30e7f27cc2ed6f6894943a3a45d7e1.zip
Fix assline recipe gen?
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java213
1 files changed, 152 insertions, 61 deletions
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 91d2bca9a2..745c3709d7 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.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import static com.github.technus.tectech.CommonValues.V;
import static com.github.technus.tectech.CommonValues.VN;
@@ -201,18 +202,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
if (GT_Utility.areStacksEqual(assRecipe.mResearchItem, holdItem, true)) {
tRecipe = assRecipe;
//if found
- for (GT_Recipe ttRecipe : TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.mRecipeList) {
- if (GT_Utility.areStacksEqual(ttRecipe.mInputs[0], holdItem, true)) {
- computationRequired = computationRemaining = ttRecipe.mDuration * 20L;
- mMaxProgresstime = 20;
- mEfficiencyIncrease = 10000;
- eRequiredData = (short) (ttRecipe.mSpecialValue >>> 16);
- eAmpereFlow = (short) (ttRecipe.mSpecialValue & 0xFFFF);
- mEUt = ttRecipe.mEUt;
- eHolders.get(0).getBaseMetaTileEntity().setActive(true);
- return true;
- }
- }
+ if (iterateRecipes()) return true;
}
}
}else if(ItemList.Tool_DataOrb.isStackEqual(itemStack, false, true)){
@@ -221,18 +211,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
aRecipe = assRecipeTT;
machineType=machine;
//if found
- for (GT_Recipe ttRecipe : TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.mRecipeList) {
- if (GT_Utility.areStacksEqual(ttRecipe.mInputs[0], holdItem, true)) {
- computationRequired = computationRemaining = ttRecipe.mDuration * 20L;
- mMaxProgresstime = 20;
- mEfficiencyIncrease = 10000;
- eRequiredData = (short) (ttRecipe.mSpecialValue >>> 16);
- eAmpereFlow = (short) (ttRecipe.mSpecialValue & 0xFFFF);
- mEUt = ttRecipe.mEUt;
- eHolders.get(0).getBaseMetaTileEntity().setActive(true);
- return true;
- }
- }
+ if (iterateRecipes()) return true;
}
}
for (TT_recipe.TT_assLineRecipe assRecipeTT:TT_recipe.TT_Recipe_Map.sCrafterRecipes.recipeList()){
@@ -240,18 +219,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
aRecipe = assRecipeTT;
machineType=crafter;
//if found
- for (GT_Recipe ttRecipe : TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.mRecipeList) {
- if (GT_Utility.areStacksEqual(ttRecipe.mInputs[0], holdItem, true)) {
- computationRequired = computationRemaining = ttRecipe.mDuration * 20L;
- mMaxProgresstime = 20;
- mEfficiencyIncrease = 10000;
- eRequiredData = (short) (ttRecipe.mSpecialValue >>> 16);
- eAmpereFlow = (short) (ttRecipe.mSpecialValue & 0xFFFF);
- mEUt = ttRecipe.mEUt;
- eHolders.get(0).getBaseMetaTileEntity().setActive(true);
- return true;
- }
- }
+ if (iterateRecipes()) return true;
}
}
}
@@ -264,6 +232,22 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
return false;
}
+ private boolean iterateRecipes() {
+ for (GT_Recipe ttRecipe : TT_recipe.GT_Recipe_MapTT.sResearchableFakeRecipes.mRecipeList) {
+ if (GT_Utility.areStacksEqual(ttRecipe.mInputs[0], holdItem, true)) {
+ computationRequired = computationRemaining = ttRecipe.mDuration * 20L;
+ mMaxProgresstime = 20;
+ mEfficiencyIncrease = 10000;
+ eRequiredData = (short) (ttRecipe.mSpecialValue >>> 16);
+ eAmpereFlow = (short) (ttRecipe.mSpecialValue & 0xFFFF);
+ mEUt = ttRecipe.mEUt;
+ eHolders.get(0).getBaseMetaTileEntity().setActive(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
public boolean onRunningTick(ItemStack aStack) {
if(computationRemaining<=0) {
@@ -277,39 +261,146 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
}
}
- @Override
- public void outputAfterRecipe_EM() {
- if(!eHolders.isEmpty()) {
- if (tRecipe != null && ItemList.Tool_DataStick.isStackEqual(mInventory[1], false, true)){
- eHolders.get(0).getBaseMetaTileEntity().setActive(false);
- eHolders.get(0).mInventory[0] = null;
+ private void makeStick(){
+ mInventory[1].setTagCompound(new NBTTagCompound());
+ mInventory[1].setStackDisplayName(GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName()) + " Construction Data");
+ GT_Utility.ItemNBT.setBookTitle(mInventory[1], GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName()) + " Construction Data");
+ NBTTagCompound tNBT = mInventory[1].getTagCompound();//code above makes it not null
+
+ tNBT.setTag("output", tRecipe.mOutput.writeToNBT(new NBTTagCompound()));
+ tNBT.setInteger("time", tRecipe.mDuration);
+ tNBT.setInteger("eu", tRecipe.mEUt);
+ for (int i = 0; i < tRecipe.mInputs.length; i++) {
+ tNBT.setTag(String.valueOf(i), tRecipe.mInputs[i].writeToNBT(new NBTTagCompound()));
+ }
+ for (int i = 0; i < tRecipe.mFluidInputs.length; i++) {
+ tNBT.setTag("f" + i, tRecipe.mFluidInputs[i].writeToNBT(new NBTTagCompound()));
+ }
+ tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + " Assembling Line Recipe Generator");
+ NBTTagList tNBTList = new NBTTagList();
+ tNBTList.appendTag(new NBTTagString("Construction plan for " + tRecipe.mOutput.stackSize + ' ' + GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName()) + ". Needed EU/t: " + tRecipe.mEUt + " Production time: " + tRecipe.mDuration / 20));
+ for (int i = 0; i < tRecipe.mInputs.length; i++) {
+ if (tRecipe.mInputs[i] != null) {
+ tNBTList.appendTag(new NBTTagString("Input Bus " + (i + 1) + ": " + tRecipe.mInputs[i].stackSize + ' ' + GT_LanguageManager.getTranslation(tRecipe.mInputs[i].getDisplayName())));
+ }
+ }
+ for (int i = 0; i < tRecipe.mFluidInputs.length; i++) {
+ if (tRecipe.mFluidInputs[i] != null) {
+ tNBTList.appendTag(new NBTTagString("Input Hatch " + (i + 1) + ": " + tRecipe.mFluidInputs[i].amount + "L " + GT_LanguageManager.getTranslation(tRecipe.mFluidInputs[i].getLocalizedName())));
+ }
+ }
+ tNBT.setTag("pages", tNBTList);
+ }
- mInventory[1].setStackDisplayName(GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName()) + " Construction Data");
- NBTTagCompound tNBT = mInventory[1].getTagCompound();//code above makes it not null
+ private static LinkedHashMap<String, String> lServerNames;
+ static {
+ try {
+ Class GT_Assemblyline_Server = Class.forName("gregtech.api.util.GT_Assemblyline_Server");
+ lServerNames=(LinkedHashMap<String, String>)GT_Assemblyline_Server.getField("lServerNames").get(null);
+ }catch (ClassNotFoundException|NoSuchFieldException|IllegalAccessException e){
+ lServerNames=null;
+ }
+ }
- tNBT.setTag("output", tRecipe.mOutput.writeToNBT(new NBTTagCompound()));
- tNBT.setInteger("time", tRecipe.mDuration);
- tNBT.setInteger("eu", tRecipe.mEUt);
- for (int i = 0; i < tRecipe.mInputs.length; i++) {
- tNBT.setTag(String.valueOf(i), tRecipe.mInputs[i].writeToNBT(new NBTTagCompound()));
+ private void makeStick2(){
+ String s = tRecipe.mOutput.getDisplayName();
+ if (getBaseMetaTileEntity().isServerSide()) {
+ s = lServerNames.get(tRecipe.mOutput.getDisplayName());
+ if (s==null) {
+ s = tRecipe.mOutput.getDisplayName();
+ }
+ }
+ mInventory[1].setTagCompound(new NBTTagCompound());
+ mInventory[1].setStackDisplayName(s+" Construction Data");
+ GT_Utility.ItemNBT.setBookTitle(mInventory[1], s+" Construction Data");
+
+ NBTTagCompound tNBT = mInventory[1].getTagCompound();
+
+ tNBT.setTag("output", tRecipe.mOutput.writeToNBT(new NBTTagCompound()));
+ tNBT.setInteger("time", tRecipe.mDuration);
+ tNBT.setInteger("eu", tRecipe.mEUt);
+ for(int i = 0 ; i < tRecipe.mInputs.length ; i++){
+ tNBT.setTag(""+i, tRecipe.mInputs[i].writeToNBT(new NBTTagCompound()));
+ }
+ for(int i = 0 ; i < tRecipe.mOreDictAlt.length ; i++){
+ if (tRecipe.mOreDictAlt[i] != null && tRecipe.mOreDictAlt[i].length > 0) {
+ tNBT.setInteger("a" + i, tRecipe.mOreDictAlt[i].length);
+ for (int j = 0; j < tRecipe.mOreDictAlt[i].length; j++) {
+ tNBT.setTag("a" + i + ":" + j, tRecipe.mOreDictAlt[i][j].writeToNBT(new NBTTagCompound()));
}
- for (int i = 0; i < tRecipe.mFluidInputs.length; i++) {
- tNBT.setTag("f" + i, tRecipe.mFluidInputs[i].writeToNBT(new NBTTagCompound()));
+ }
+ }
+ for(int i = 0 ; i < tRecipe.mFluidInputs.length ; i++){
+ tNBT.setTag("f"+i, tRecipe.mFluidInputs[i].writeToNBT(new NBTTagCompound()));
+ }
+ tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + ' ' + machineType+ " Recipe Generator");
+ NBTTagList tNBTList = new NBTTagList();
+ s=tRecipe.mOutput.getDisplayName();
+ if (getBaseMetaTileEntity().isServerSide()) {
+ s = lServerNames.get(tRecipe.mOutput.getDisplayName());
+ if (s==null) {
+ s = tRecipe.mOutput.getDisplayName();
+ }
+ }
+ tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+s+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20)));
+ for(int i=0;i<tRecipe.mInputs.length;i++){
+ if (tRecipe.mOreDictAlt[i] != null) {
+ int count = 0;
+ StringBuilder tBuilder = new StringBuilder("Input Bus "+(i+1)+": ");
+ for (ItemStack tStack : tRecipe.mOreDictAlt[i]) {
+ if (tStack != null) {
+ s=tStack.getDisplayName();
+ if (getBaseMetaTileEntity().isServerSide()) {
+ s=lServerNames.get(tStack.getDisplayName());
+ if (s==null)
+ s=tStack.getDisplayName();
+ }
+
+
+ tBuilder.append(count == 0 ? "" : "\nOr ").append(tStack.stackSize).append(" ").append(s);
+ count++;
+ }
}
- tNBT.setString("author", EnumChatFormatting.BLUE + "Tec" + EnumChatFormatting.DARK_BLUE + "Tech" + EnumChatFormatting.WHITE + " Assembling Line Recipe Generator");
- NBTTagList tNBTList = new NBTTagList();
- tNBTList.appendTag(new NBTTagString("Construction plan for " + tRecipe.mOutput.stackSize + ' ' + GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName()) + ". Needed EU/t: " + tRecipe.mEUt + " Production time: " + tRecipe.mDuration / 20));
- for (int i = 0; i < tRecipe.mInputs.length; i++) {
- if (tRecipe.mInputs[i] != null) {
- tNBTList.appendTag(new NBTTagString("Input Bus " + (i + 1) + ": " + tRecipe.mInputs[i].stackSize + ' ' + GT_LanguageManager.getTranslation(tRecipe.mInputs[i].getDisplayName())));
+ if (count > 0) tNBTList.appendTag(new NBTTagString(tBuilder.toString()));
+ } else if(tRecipe.mInputs[i]!=null){
+ s=tRecipe.mInputs[i].getDisplayName();
+ if (getBaseMetaTileEntity().isServerSide()) {
+ s = lServerNames.get(tRecipe.mInputs[i].getDisplayName());
+ if (s==null) {
+ s = tRecipe.mInputs[i].getDisplayName();
}
}
- for (int i = 0; i < tRecipe.mFluidInputs.length; i++) {
- if (tRecipe.mFluidInputs[i] != null) {
- tNBTList.appendTag(new NBTTagString("Input Hatch " + (i + 1) + ": " + tRecipe.mFluidInputs[i].amount + "L " + GT_LanguageManager.getTranslation(tRecipe.mFluidInputs[i].getLocalizedName())));
+ tNBTList.appendTag(new NBTTagString("Input Bus "+(i+1)+": "+tRecipe.mInputs[i].stackSize+" "+s));
+ }
+ }
+ for(int i=0;i<tRecipe.mFluidInputs.length;i++){
+ if(tRecipe.mFluidInputs[i]!=null){
+ s=tRecipe.mFluidInputs[i].getLocalizedName();
+ if (getBaseMetaTileEntity().isServerSide()) {
+ s = lServerNames.get(tRecipe.mFluidInputs[i].getLocalizedName());
+ if (s==null) {
+ s = tRecipe.mFluidInputs[i].getLocalizedName();
}
}
- tNBT.setTag("pages", tNBTList);
+ tNBTList.appendTag(new NBTTagString("Input Hatch "+(i+1)+": "+tRecipe.mFluidInputs[i].amount+"L "+s));
+ }
+ }
+ tNBT.setTag("pages", tNBTList);
+
+ mInventory[1].setTagCompound(tNBT);
+ }
+
+ @Override
+ public void outputAfterRecipe_EM() {
+ if(!eHolders.isEmpty()) {
+ if (tRecipe != null && ItemList.Tool_DataStick.isStackEqual(mInventory[1], false, true)){
+ eHolders.get(0).getBaseMetaTileEntity().setActive(false);
+ eHolders.get(0).mInventory[0] = null;
+ if (lServerNames == null) {
+ makeStick();
+ } else {
+ makeStick2();
+ }
}else if (aRecipe != null && ItemList.Tool_DataOrb.isStackEqual(mInventory[1], false, true)) {
eHolders.get(0).getBaseMetaTileEntity().setActive(false);
eHolders.get(0).mInventory[0] = null;