From 25ab0916a7f239f6775409b33ed314eec6c2e862 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Sat, 7 Oct 2023 10:59:40 +0800 Subject: [PATCH] add fluid pattern blame (#161) --- .../gui/container/base/FCContainerEncodeTerminal.java | 8 +++++++- .../com/glodblock/github/util/FluidPatternDetails.java | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java index 95153be8..f4a29123 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java @@ -257,13 +257,18 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor return hasFluid && search; // search=false -> outputs were empty } + protected ItemStack stampAuthor(ItemStack patternStack) { + patternStack.stackTagCompound.setString("author", getPlayerInv().player.getCommandSenderName()); + return patternStack; + } + protected void encodeFluidPattern() { ItemStack patternStack = new ItemStack(ItemAndBlockHolder.PATTERN); FluidPatternDetails pattern = new FluidPatternDetails(patternStack); pattern.setInputs(collectInventory(this.craftingSlots)); pattern.setOutputs(collectInventory(this.outputSlots)); pattern.setCanBeSubstitute(this.beSubstitute ? 1 : 0); - patternSlotOUT.putStack(pattern.writeToStack()); + patternSlotOUT.putStack(stampAuthor(pattern.writeToStack())); } protected static IAEItemStack[] collectInventory(Slot[] slots) { @@ -440,6 +445,7 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor encodedValue.setBoolean("beSubstitute", this.beSubstitute); encodedValue.setBoolean("prioritize", this.prioritize); output.setTagCompound(encodedValue); + stampAuthor(output); this.patternSlotOUT.putStack(output); } diff --git a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java index b2aa3852..e3be4f7e 100644 --- a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java +++ b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java @@ -28,7 +28,13 @@ public class FluidPatternDetails implements ICraftingPatternDetails, Comparable< public FluidPatternDetails(ItemStack stack) { this.patternStack = stack; - this.patternStackAe = Objects.requireNonNull(AEItemStack.create(stack)); // s2g + if (stack.stackTagCompound.hasKey("author")) { + final ItemStack forComparison = this.patternStack.copy(); + forComparison.stackTagCompound.removeTag("author"); + this.patternStackAe = Objects.requireNonNull(AEItemStack.create(forComparison)); // s2g + } else { + this.patternStackAe = Objects.requireNonNull(AEItemStack.create(stack)); // s2g + } } public boolean canBeSubstitute() {