Allow updating obsolete patterns

https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/8208
This commit is contained in:
repo_alt committed 2021-07-15 18:47:50 +03:00
1 parent 4cc676a803
commit 251c35d5cb
2 files changed
+27 -2

No files matched your search

+1 -1
View File
@@ -28,7 +28,7 @@ apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
version = "1.1.3.11-GTNH"
version = "1.1.3.12-GTNH"
group= "thaumicenergistics" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "thaumicenergistics"
@@ -1,6 +1,6 @@
package thaumicenergistics.common.inventory;
import java.util.ArrayList;
import appeng.api.storage.data.IAEItemStack;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@@ -8,6 +8,8 @@ import net.minecraftforge.common.util.Constants;
import thaumicenergistics.common.integration.tc.ArcaneCraftingPattern;
import thaumicenergistics.common.items.ItemKnowledgeCore;
import java.util.ArrayList;
/**
* Handles an {@link ItemKnowledgeCore}
*
@@ -167,6 +169,8 @@ public class HandlerKnowledgeCore
if( existingPattern == null )
{
// remove the existing pattern, e.g. if the result changed
removePatternSameInputs(pattern);
// Add the pattern
this.patterns.add( pattern );
@@ -175,6 +179,27 @@ public class HandlerKnowledgeCore
}
}
private void removePatternSameInputs(final ArcaneCraftingPattern pattern) {
IAEItemStack[] newInputs = pattern.getInputs();
// Loop over all stored patterns
for (ArcaneCraftingPattern p : this.patterns) {
IAEItemStack[] oldInputs = p.getInputs();
if (newInputs.length != oldInputs.length)
continue;
boolean match = true;
for (int i = 0; i < newInputs.length; ++i) {
if (!ItemStack.areItemStacksEqual(oldInputs[i].getItemStack(), newInputs[i].getItemStack())) {
match = false;
break;
}
}
if (match) {
// can't be more than one duplicate
this.patterns.remove(p);
return;
}
}
}
/**
* Instructs the handler to close.