diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2021-12-16 02:42:09 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-15 19:42:09 +0100 |
commit | 7d3a518057f922b567bba5207a5a88d61034fa83 (patch) | |
tree | 8d977c285f868fb3290f166a6f0a7dbb9c09e214 /src/main/java | |
parent | 55ce331b786b4c932a802b71988d3b069d0c7f42 (diff) | |
download | GT5-Unofficial-7d3a518057f922b567bba5207a5a88d61034fa83.tar.gz GT5-Unofficial-7d3a518057f922b567bba5207a5a88d61034fa83.tar.bz2 GT5-Unofficial-7d3a518057f922b567bba5207a5a88d61034fa83.zip |
Fix assline recipe rejection (#810)
Also slightly improved the data stick updating
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java | 26 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java | 3 |
2 files changed, 24 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java b/src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java index 07353882ec..4f9036f2c7 100644 --- a/src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java +++ b/src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java @@ -73,7 +73,7 @@ public class GT_AssemblyLineUtils { */ @Nonnull public static LookupResult findAssemblyLineRecipeFromDataStick(ItemStack aDataStick, boolean aReturnBuiltRecipe) { - if (!isItemDataStick(aDataStick) || doesDataStickHaveOutput(aDataStick)) { + if (!isItemDataStick(aDataStick) || !doesDataStickHaveOutput(aDataStick)) { return LookupResultType.INVALID_STICK.getResult(); } List<ItemStack> aInputs = new ArrayList<>(15); @@ -298,7 +298,7 @@ public class GT_AssemblyLineUtils { public static boolean doesDataStickHaveRecipeHash(ItemStack aDataStick) { if (isItemDataStick(aDataStick) && aDataStick.hasTagCompound()) { NBTTagCompound aNBT = aDataStick.getTagCompound(); - if (aNBT.hasKey("Data.Recipe.Hash") && aNBT.getString("Data.Recipe.Hash").equals("Hash.0")) { + if (aNBT.hasKey("Data.Recipe.Hash") && !aNBT.getString("Data.Recipe.Hash").equals("Hash.0")) { return true; } } @@ -374,9 +374,24 @@ public class GT_AssemblyLineUtils { GT_FML_LOGGER.info("Updating data stick: "+aDataStick.getDisplayName()+" | Old Recipe Hash: "+generateRecipeHash(aOldRecipe)+", New Recipe Hash: "+aHash); } + String author = "Assembling Line Recipe Generator"; + String displayName = null; + if (aDataStick.hasTagCompound()) { + NBTTagCompound tag = aDataStick.getTagCompound(); + if (tag.hasKey("author", NBT.TAG_STRING)) { + author = tag.getString("author"); + } + if (tag.hasKey("display", NBT.TAG_COMPOUND)) { + NBTTagCompound displayTag = tag.getCompoundTag("display"); + if (displayTag.hasKey("Name", NBT.TAG_STRING)) + displayName = displayTag.getString("Name"); + } + } //remove possible old NBTTagCompound aDataStick.setTagCompound(new NBTTagCompound()); + if (displayName != null) + aDataStick.setStackDisplayName(displayName); if (GT_Values.D1) { GT_Utility.ItemNBT.setBookTitle(aDataStick, s + " Construction Data ("+aHash+")"); } @@ -406,7 +421,7 @@ public class GT_AssemblyLineUtils { for (int i = 0; i < aNewRecipe.mFluidInputs.length; i++) { tNBT.setTag("f" + i, aNewRecipe.mFluidInputs[i].writeToNBT(new NBTTagCompound())); } - tNBT.setString("author", "Assembling Line Recipe Generator"); + tNBT.setString("author", author); NBTTagList tNBTList = new NBTTagList(); s = aNewRecipe.mOutput.getDisplayName(); if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { @@ -455,8 +470,9 @@ public class GT_AssemblyLineUtils { tNBTList.appendTag(new NBTTagString("Input Hatch " + (i + 1) + ": " + aNewRecipe.mFluidInputs[i].amount + "L " + s)); } } - tNBT.setTag("pages", tNBTList); - aDataStick.setTagCompound(tNBT); + tNBT.setTag("pages", tNBTList); + tNBT.setLong("lastUpdate", System.currentTimeMillis()); + aDataStick.setTagCompound(tNBT); // Set recipe hash setRecipeHashOnDataStick(aDataStick, aHash); return true; diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java index e7792aa94b..bf1c4a2be0 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java @@ -48,6 +48,9 @@ public class Behaviour_DataStick extends Behaviour_None { } } } + long lastUpdate = GT_Utility.ItemNBT.getNBT(aStack).getLong("lastUpdate"); + if (lastUpdate != 0) + aList.add(String.format("Last update at: %tc", lastUpdate)); return aList; } |