aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2021-12-16 02:42:09 +0800
committerGitHub <noreply@github.com>2021-12-15 19:42:09 +0100
commit7d3a518057f922b567bba5207a5a88d61034fa83 (patch)
tree8d977c285f868fb3290f166a6f0a7dbb9c09e214 /src/main/java/gregtech
parent55ce331b786b4c932a802b71988d3b069d0c7f42 (diff)
downloadGT5-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/gregtech')
-rw-r--r--src/main/java/gregtech/api/util/GT_AssemblyLineUtils.java26
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java3
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;
}