From b51bff6772a0bbd547b73a732ff37bfe05dcc4bf Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Fri, 12 Aug 2022 23:29:20 +0200 Subject: [PATCH 01/12] Test Test --- .../gui/GuiBaseFluidPatternTerminalEx.java | 42 +++++++++++++++++++ .../github/client/gui/GuiFCPriority.java | 5 +++ .../gui/container/FCBasePartContainerEx.java | 9 ++++ .../gui/container/FluidPrioritization.java | 12 ++++++ .../parts/PartFluidPatternTerminalEx.java | 8 +++- .../github/nei/recipes/FluidRecipe.java | 22 ++++++++++ 6 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index b4cb444a..67ef6169 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -10,12 +10,15 @@ import appeng.client.gui.widgets.GuiScrollbar; import appeng.container.slot.AppEngSlot; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.FCBasePartContainerEx; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.StatCollector; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -24,11 +27,15 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { private static final String SUBSITUTION_DISABLE = "0"; private static final String SUBSITUTION_ENABLE = "1"; + private static final String PRIORITY_DISABLE = "0"; + private static final String PRIORITY_ENABLE = "1"; public FCBasePartContainerEx container; private GuiImgButton substitutionsEnabledBtn; private GuiImgButton substitutionsDisabledBtn; + private GuiImgButton fluidPrioritizedEnabledBtn; + private GuiImgButton fluidPrioritizedDisabledBtn; private GuiImgButton encodeBtn; private GuiImgButton invertBtn; private GuiImgButton clearBtn; @@ -63,6 +70,10 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE ) ); } + else if( this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn ) + { + FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", this.fluidPrioritizedEnabledBtn == btn ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); + } else if( this.invertBtn == btn ) { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Invert", container.inverted ? "0" : "1" ) ); @@ -87,6 +98,16 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { this.substitutionsDisabledBtn.setHalfSize( true ); this.buttonList.add( this.substitutionsDisabledBtn ); + this.fluidPrioritizedEnabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.ENABLED ); + this.fluidPrioritizedEnabledBtn.setHalfSize( true ); + this.buttonList.add( this.fluidPrioritizedEnabledBtn ); + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED IMMER")); + + this.fluidPrioritizedDisabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.DISABLED ); + this.fluidPrioritizedDisabledBtn.setHalfSize( true ); + this.buttonList.add( this.fluidPrioritizedDisabledBtn ); + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED IMMER")); + invertBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 153, Settings.ACTIONS, container.inverted ? PatternSlotConfig.C_4_16 : PatternSlotConfig.C_16_4); invertBtn.setHalfSize( true ); this.buttonList.add( this.invertBtn ); @@ -123,6 +144,18 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { this.substitutionsEnabledBtn.visible = false; this.substitutionsDisabledBtn.visible = true; } + if( this.container.prioritize ) + { + this.fluidPrioritizedEnabledBtn.visible = true; + this.fluidPrioritizedDisabledBtn.visible = false; + // MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED")); + } + else + { + this.fluidPrioritizedEnabledBtn.visible = false; + this.fluidPrioritizedDisabledBtn.visible = true; + //MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED")); + } super.drawFG( offsetX, offsetY, mouseX, mouseY ); this.fontRendererObj.drawString( StatCollector.translateToLocal(NameConst.GUI_FLUID_PATTERN_TERMINAL_EX), 8, this.ySize - 96 + 2 - Ae2ReflectClient.getReservedSpace(this), 4210752 ); @@ -159,11 +192,20 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { substitutionsEnabledBtn.visible = false; substitutionsDisabledBtn.visible = true; } + if (container.prioritize) { + fluidPrioritizedEnabledBtn.visible = true; + fluidPrioritizedDisabledBtn.visible = false; + } else { + fluidPrioritizedEnabledBtn.visible = false; + fluidPrioritizedDisabledBtn.visible = true; + } final int offset = container.inverted? 18 * -3: 0; substitutionsEnabledBtn.xPosition = this.guiLeft + 97 + offset; substitutionsDisabledBtn.xPosition = this.guiLeft + 97 + offset; + fluidPrioritizedEnabledBtn.xPosition = this.guiLeft + 87 + offset; + fluidPrioritizedDisabledBtn.xPosition = this.guiLeft + 87 + offset; doubleBtn.xPosition = this.guiLeft + 97 + offset; clearBtn.xPosition = this.guiLeft + 87 + offset; invertBtn.xPosition = this.guiLeft + 87 + offset; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 92468d59..e3e2597d 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -34,6 +34,7 @@ public class GuiFCPriority extends AEBaseGui private GuiButton plus10; private GuiButton plus100; private GuiButton plus1000; + private GuiButton plus10000; private GuiButton minus1; private GuiButton minus10; private GuiButton minus100; @@ -56,16 +57,20 @@ public class GuiFCPriority extends AEBaseGui final int b = AEConfig.instance.priorityByStacksAmounts( 1 ); final int c = AEConfig.instance.priorityByStacksAmounts( 2 ); final int d = AEConfig.instance.priorityByStacksAmounts( 3 ); + final int e = AEConfig.instance.priorityByStacksAmounts( 4 ); this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 32, 22, 20, "+" + a ) ); this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 32, 28, 20, "+" + b ) ); this.buttonList.add( this.plus100 = new GuiButton( 0, this.guiLeft + 82, this.guiTop + 32, 32, 20, "+" + c ) ); this.buttonList.add( this.plus1000 = new GuiButton( 0, this.guiLeft + 120, this.guiTop + 32, 38, 20, "+" + d ) ); + this.buttonList.add( this.plus10000 = new GuiButton( 0, this.guiLeft + 140, this.guiTop + 32, 42, 20, "+" + e ) ); + this.buttonList.add( this.minus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 69, 22, 20, "-" + a ) ); this.buttonList.add( this.minus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 69, 28, 20, "-" + b ) ); this.buttonList.add( this.minus100 = new GuiButton( 0, this.guiLeft + 82, this.guiTop + 69, 32, 20, "-" + c ) ); this.buttonList.add( this.minus1000 = new GuiButton( 0, this.guiLeft + 120, this.guiTop + 69, 38, 20, "-" + d ) ); + this.buttonList.add( this.plus10000 = new GuiButton( 0, this.guiLeft + 140, this.guiTop + 32, 42, 20, "+" + e ) ); ItemStack myIcon = null; final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index bed2ce96..87071843 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -66,6 +66,8 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp public boolean inverted; @GuiSync( 96 + (17-9) + 17 ) public int activePage = 0; + @GuiSync( 96 + (17-9) + 13 ) + public boolean prioritize = false; public FCBasePartContainerEx(final InventoryPlayer ip, final ITerminalHost monitorable ) { @@ -205,6 +207,11 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp encodedValue.setTag( "out", tagOut ); encodedValue.setBoolean( "substitute", this.isSubstitute() ); + encodedValue.setTag( "in", tagIn ); + encodedValue.setTag( "out", tagOut ); + encodedValue.setBoolean( "piroritize", this.isPrioritize() ); + + output.setTagCompound( encodedValue ); } @@ -383,6 +390,8 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp return this.substitute; } + private boolean isPrioritize() { return this.prioritize; } + static boolean canDoubleStacks(SlotFake[] slots) { List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); diff --git a/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java b/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java new file mode 100644 index 00000000..985f1671 --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java @@ -0,0 +1,12 @@ +package com.glodblock.github.client.gui.container; + + +import akka.actor.Status; + +import java.lang.reflect.Type; + +public enum FluidPrioritization { + ENABLED, + DISABLED; + +} diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index 31e79fad..b6ef4b02 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -38,6 +38,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 ); private boolean substitute = false; + private boolean priorization = false; private boolean inverted = false; private int activePage = 0; @@ -84,6 +85,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { this.crafting.readFromNBT( data, "craftingGrid" ); this.setSubstitution( data.getBoolean( "substitute" ) ); + this.setPrioritization( data.getBoolean( "priorization") ); this.setInverted( data.getBoolean( "inverted" ) ); this.setActivePage( data.getInteger( "activePage" ) ); } @@ -95,7 +97,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { this.pattern.writeToNBT( data, "pattern" ); this.output.writeToNBT( data, "outputList" ); this.crafting.writeToNBT( data, "craftingGrid" ); - + data.setBoolean("priorization", this.priorization); data.setBoolean( "substitute", this.substitute ); data.setBoolean( "inverted", this.inverted ); data.setInteger( "activePage", this.activePage ); @@ -208,6 +210,10 @@ public class PartFluidPatternTerminalEx extends FCBasePart { { this.substitute = canSubstitute; } + public void setPrioritization( boolean canPrioritize ) + { + this.priorization = canPrioritize; + } public void onChangeCrafting(IAEItemStack[] newCrafting, IAEItemStack[] newOutput) { IInventory crafting = this.getInventoryByName("crafting"); diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index b33a3b0f..2c3556c1 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -3,14 +3,22 @@ package com.glodblock.github.nei.recipes; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; +import ibxm.Player; +import net.minecraft.client.gui.Gui; +import net.minecraft.network.play.client.C01PacketChatMessage; +import net.minecraft.server.MinecraftServer; +import net.minecraftforge.server.command.ForgeCommand; +import tv.twitch.chat.Chat; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import net.minecraft.util.ChatComponentText; public final class FluidRecipe { @@ -31,6 +39,20 @@ public final class FluidRecipe { IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); + FluidPrioritization fluid = FluidPrioritization.ENABLED; + switch(fluid) { + case ENABLED: + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("hi")); + + for (int i = 0; i < tmp.size(); i++) { + if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); + PositionedStack Stack = tmp.get(i); + tmp.remove(Stack); + tmp.add(0, Stack); + } + } + } return extractor.getInputIngredients(tmp, recipe, index); } From 4ec705dd748b9fe2b9dee92d01fdee133bb565eb Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Fri, 12 Aug 2022 18:41:48 -0400 Subject: [PATCH 02/12] Button works! --- .../client/gui/GuiBaseFluidPatternTerminalEx.java | 10 +++++----- .../client/gui/container/FCBasePartContainerEx.java | 1 + .../common/parts/PartFluidPatternTerminalEx.java | 11 ++++++++--- .../FluidPatternTerminalRecipeTransferHandler.java | 8 +++++++- .../com/glodblock/github/nei/recipes/FluidRecipe.java | 8 ++------ .../github/network/CPacketFluidPatternTermBtns.java | 3 +++ 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index 67ef6169..593cf0ce 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -72,7 +72,7 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { } else if( this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn ) { - FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", this.fluidPrioritizedEnabledBtn == btn ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); + FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); } else if( this.invertBtn == btn ) { @@ -146,14 +146,14 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { } if( this.container.prioritize ) { - this.fluidPrioritizedEnabledBtn.visible = true; - this.fluidPrioritizedDisabledBtn.visible = false; + this.fluidPrioritizedEnabledBtn.visible = false; + this.fluidPrioritizedDisabledBtn.visible = true; // MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED")); } else { - this.fluidPrioritizedEnabledBtn.visible = false; - this.fluidPrioritizedDisabledBtn.visible = true; + this.fluidPrioritizedEnabledBtn.visible = true; + this.fluidPrioritizedDisabledBtn.visible = false; //MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED")); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index 87071843..f395263b 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -310,6 +310,7 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp if( Platform.isServer() ) { this.substitute = this.patternTerminal.isSubstitution(); + this.prioritize = this.patternTerminal.isPrioritize(); if (inverted != patternTerminal.isInverted() || activePage != patternTerminal.getActivePage()) { inverted = patternTerminal.isInverted(); activePage = patternTerminal.getActivePage(); diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index b6ef4b02..fdff9119 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -38,7 +38,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 ); private boolean substitute = false; - private boolean priorization = false; + private boolean prioritize = false; private boolean inverted = false; private int activePage = 0; @@ -97,7 +97,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { this.pattern.writeToNBT( data, "pattern" ); this.output.writeToNBT( data, "outputList" ); this.crafting.writeToNBT( data, "craftingGrid" ); - data.setBoolean("priorization", this.priorization); + data.setBoolean("priorization", this.prioritize); data.setBoolean( "substitute", this.substitute ); data.setBoolean( "inverted", this.inverted ); data.setInteger( "activePage", this.activePage ); @@ -206,13 +206,18 @@ public class PartFluidPatternTerminalEx extends FCBasePart { return this.substitute; } + public boolean isPrioritize() + { + return this.prioritize; + } + public void setSubstitution( boolean canSubstitute ) { this.substitute = canSubstitute; } public void setPrioritization( boolean canPrioritize ) { - this.priorization = canPrioritize; + this.prioritize = canPrioritize; } public void onChangeCrafting(IAEItemStack[] newCrafting, IAEItemStack[] newOutput) { diff --git a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java index 2464d90f..b337ff11 100644 --- a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java +++ b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java @@ -4,8 +4,10 @@ import codechicken.nei.api.IOverlayHandler; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.GuiBaseFluidPatternTerminalEx; import com.glodblock.github.client.gui.GuiFluidPatternTerminal; import com.glodblock.github.client.gui.GuiFluidPatternTerminalEx; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.OrderStack; import com.glodblock.github.nei.recipes.FluidRecipe; import com.glodblock.github.network.CPacketTransferRecipe; @@ -30,7 +32,11 @@ public class FluidPatternTerminalRecipeTransferHandler implements IOverlayHandle @Override public void overlayRecipe(GuiContainer firstGui, IRecipeHandler recipe, int recipeIndex, boolean shift) { if (isCorrectGui(firstGui)) { - List> in = FluidRecipe.getPackageInputs(recipe, recipeIndex); + boolean priority = false; + if (firstGui instanceof GuiBaseFluidPatternTerminalEx) { + priority = ((GuiBaseFluidPatternTerminalEx)firstGui).container.prioritize; + } + List> in = FluidRecipe.getPackageInputs(recipe, recipeIndex, priority); List> out = FluidRecipe.getPackageOutputs(recipe, recipeIndex, !notUseOther(recipe)); boolean craft = shouldCraft(recipe); FluidCraft.proxy.netHandler.sendToServer(new CPacketTransferRecipe(in, out, craft)); diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 2c3556c1..27f59232 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -32,18 +32,14 @@ public final class FluidRecipe { } } - public static List> getPackageInputs(IRecipeHandler recipe, int index) { + public static List> getPackageInputs(IRecipeHandler recipe, int index, boolean priority) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; if (tRecipe == null || !IdentifierMap.containsKey(tRecipe.getOverlayIdentifier())) return new ArrayList<>(); if (tRecipe.getOverlayIdentifier() == null) return getPackageInputsLegacy(recipe, index); IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); - FluidPrioritization fluid = FluidPrioritization.ENABLED; - switch(fluid) { - case ENABLED: - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("hi")); - + if (priority) { for (int i = 0; i < tmp.size(); i++) { if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java index f30ae254..f7953e67 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java @@ -106,6 +106,9 @@ public class CPacketFluidPatternTermBtns implements IMessage { case "PatternTerminalEx.ActivePage": cpt.getPatternTerminal().setActivePage(Integer.parseInt(Value)); break; + case "PatternTerminalEx.Prioritize": + cpt.getPatternTerminal().setPrioritization(Value.equals("1")); + break; } } else if(Name.equals( "Terminal.Cpu" ) && c instanceof ContainerFluidCraftConfirm) { final ContainerFluidCraftConfirm qk = (ContainerFluidCraftConfirm) c; From ae7de51dbf4a360849608bb50c4fa3a3ebad6c32 Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 11:56:51 +0200 Subject: [PATCH 03/12] Changed way to see if item is a fluid display --- .../java/com/glodblock/github/nei/recipes/FluidRecipe.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 27f59232..9b8f6a11 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -7,10 +7,12 @@ import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; +import gregtech.common.items.GT_FluidDisplayItem; import ibxm.Player; import net.minecraft.client.gui.Gui; import net.minecraft.network.play.client.C01PacketChatMessage; import net.minecraft.server.MinecraftServer; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.server.command.ForgeCommand; import tv.twitch.chat.Chat; @@ -41,7 +43,7 @@ public final class FluidRecipe { List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); if (priority) { for (int i = 0; i < tmp.size(); i++) { - if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { + if(tmp.get(i).item.getItem() instanceof GT_FluidDisplayItem) { MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); PositionedStack Stack = tmp.get(i); tmp.remove(Stack); From 6aa1a877e5af470dea64f9228d32b42cfc6cff2a Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Fri, 12 Aug 2022 23:29:20 +0200 Subject: [PATCH 04/12] Test Test --- .../gui/GuiBaseFluidPatternTerminalEx.java | 42 +++++++++++++++++++ .../github/client/gui/GuiFCPriority.java | 5 +++ .../gui/container/FCBasePartContainerEx.java | 9 ++++ .../gui/container/FluidPrioritization.java | 12 ++++++ .../parts/PartFluidPatternTerminalEx.java | 11 ++++- .../github/nei/recipes/FluidRecipe.java | 22 ++++++++++ 6 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index c20cbf85..9bd1fcd3 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -10,12 +10,15 @@ import appeng.client.gui.widgets.GuiScrollbar; import appeng.container.slot.AppEngSlot; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.FCBasePartContainerEx; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.StatCollector; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -24,11 +27,15 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { private static final String SUBSITUTION_DISABLE = "0"; private static final String SUBSITUTION_ENABLE = "1"; + private static final String PRIORITY_DISABLE = "0"; + private static final String PRIORITY_ENABLE = "1"; public FCBasePartContainerEx container; private GuiImgButton substitutionsEnabledBtn; private GuiImgButton substitutionsDisabledBtn; + private GuiImgButton fluidPrioritizedEnabledBtn; + private GuiImgButton fluidPrioritizedDisabledBtn; private GuiImgButton encodeBtn; private GuiImgButton invertBtn; private GuiImgButton clearBtn; @@ -65,6 +72,10 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE ) ); } + else if( this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn ) + { + FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", this.fluidPrioritizedEnabledBtn == btn ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); + } else if( this.invertBtn == btn ) { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Invert", container.inverted ? "0" : "1" ) ); @@ -93,6 +104,16 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { this.substitutionsDisabledBtn.setHalfSize( true ); this.buttonList.add( this.substitutionsDisabledBtn ); + this.fluidPrioritizedEnabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.ENABLED ); + this.fluidPrioritizedEnabledBtn.setHalfSize( true ); + this.buttonList.add( this.fluidPrioritizedEnabledBtn ); + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED IMMER")); + + this.fluidPrioritizedDisabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.DISABLED ); + this.fluidPrioritizedDisabledBtn.setHalfSize( true ); + this.buttonList.add( this.fluidPrioritizedDisabledBtn ); + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED IMMER")); + invertBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 153, Settings.ACTIONS, container.inverted ? PatternSlotConfig.C_4_16 : PatternSlotConfig.C_16_4); invertBtn.setHalfSize( true ); this.buttonList.add( this.invertBtn ); @@ -137,6 +158,18 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { this.substitutionsEnabledBtn.visible = false; this.substitutionsDisabledBtn.visible = true; } + if( this.container.prioritize ) + { + this.fluidPrioritizedEnabledBtn.visible = true; + this.fluidPrioritizedDisabledBtn.visible = false; + // MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED")); + } + else + { + this.fluidPrioritizedEnabledBtn.visible = false; + this.fluidPrioritizedDisabledBtn.visible = true; + //MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED")); + } if ( this.container.combine ) { @@ -184,11 +217,20 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { substitutionsEnabledBtn.visible = false; substitutionsDisabledBtn.visible = true; } + if (container.prioritize) { + fluidPrioritizedEnabledBtn.visible = true; + fluidPrioritizedDisabledBtn.visible = false; + } else { + fluidPrioritizedEnabledBtn.visible = false; + fluidPrioritizedDisabledBtn.visible = true; + } final int offset = container.inverted? 18 * -3: 0; substitutionsEnabledBtn.xPosition = this.guiLeft + 97 + offset; substitutionsDisabledBtn.xPosition = this.guiLeft + 97 + offset; + fluidPrioritizedEnabledBtn.xPosition = this.guiLeft + 87 + offset; + fluidPrioritizedDisabledBtn.xPosition = this.guiLeft + 87 + offset; doubleBtn.xPosition = this.guiLeft + 97 + offset; clearBtn.xPosition = this.guiLeft + 87 + offset; invertBtn.xPosition = this.guiLeft + 87 + offset; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 92468d59..e3e2597d 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -34,6 +34,7 @@ public class GuiFCPriority extends AEBaseGui private GuiButton plus10; private GuiButton plus100; private GuiButton plus1000; + private GuiButton plus10000; private GuiButton minus1; private GuiButton minus10; private GuiButton minus100; @@ -56,16 +57,20 @@ public class GuiFCPriority extends AEBaseGui final int b = AEConfig.instance.priorityByStacksAmounts( 1 ); final int c = AEConfig.instance.priorityByStacksAmounts( 2 ); final int d = AEConfig.instance.priorityByStacksAmounts( 3 ); + final int e = AEConfig.instance.priorityByStacksAmounts( 4 ); this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 32, 22, 20, "+" + a ) ); this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 32, 28, 20, "+" + b ) ); this.buttonList.add( this.plus100 = new GuiButton( 0, this.guiLeft + 82, this.guiTop + 32, 32, 20, "+" + c ) ); this.buttonList.add( this.plus1000 = new GuiButton( 0, this.guiLeft + 120, this.guiTop + 32, 38, 20, "+" + d ) ); + this.buttonList.add( this.plus10000 = new GuiButton( 0, this.guiLeft + 140, this.guiTop + 32, 42, 20, "+" + e ) ); + this.buttonList.add( this.minus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 69, 22, 20, "-" + a ) ); this.buttonList.add( this.minus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 69, 28, 20, "-" + b ) ); this.buttonList.add( this.minus100 = new GuiButton( 0, this.guiLeft + 82, this.guiTop + 69, 32, 20, "-" + c ) ); this.buttonList.add( this.minus1000 = new GuiButton( 0, this.guiLeft + 120, this.guiTop + 69, 38, 20, "-" + d ) ); + this.buttonList.add( this.plus10000 = new GuiButton( 0, this.guiLeft + 140, this.guiTop + 32, 42, 20, "+" + e ) ); ItemStack myIcon = null; final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index c521d3e8..5090fa08 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -68,6 +68,8 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp public boolean inverted; @GuiSync( 96 + (17-9) + 17 ) public int activePage = 0; + @GuiSync( 96 + (17-9) + 13 ) + public boolean prioritize = false; public FCBasePartContainerEx(final InventoryPlayer ip, final ITerminalHost monitorable ) { @@ -207,6 +209,11 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp encodedValue.setTag( "out", tagOut ); encodedValue.setBoolean( "substitute", this.isSubstitute() ); + encodedValue.setTag( "in", tagIn ); + encodedValue.setTag( "out", tagOut ); + encodedValue.setBoolean( "piroritize", this.isPrioritize() ); + + output.setTagCompound( encodedValue ); } @@ -386,6 +393,8 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp return this.substitute; } + private boolean isPrioritize() { return this.prioritize; } + static boolean canDoubleStacks(SlotFake[] slots) { List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); diff --git a/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java b/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java new file mode 100644 index 00000000..985f1671 --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/container/FluidPrioritization.java @@ -0,0 +1,12 @@ +package com.glodblock.github.client.gui.container; + + +import akka.actor.Status; + +import java.lang.reflect.Type; + +public enum FluidPrioritization { + ENABLED, + DISABLED; + +} diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index daabb293..d229745b 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -38,7 +38,11 @@ public class PartFluidPatternTerminalEx extends FCBasePart { private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 ); private boolean substitute = false; +<<<<<<< HEAD private boolean combine = false; +======= + private boolean priorization = false; +>>>>>>> b51bff6 (Test) private boolean inverted = false; private int activePage = 0; @@ -88,6 +92,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { this.crafting.readFromNBT( data, "craftingGrid" ); this.setSubstitution( data.getBoolean( "substitute" ) ); + this.setPrioritization( data.getBoolean( "priorization") ); this.setInverted( data.getBoolean( "inverted" ) ); this.setActivePage( data.getInteger( "activePage" ) ); } @@ -102,7 +107,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { this.pattern.writeToNBT( data, "pattern" ); this.output.writeToNBT( data, "outputList" ); this.crafting.writeToNBT( data, "craftingGrid" ); - + data.setBoolean("priorization", this.priorization); data.setBoolean( "substitute", this.substitute ); data.setBoolean( "inverted", this.inverted ); data.setInteger( "activePage", this.activePage ); @@ -225,6 +230,10 @@ public class PartFluidPatternTerminalEx extends FCBasePart { { this.substitute = canSubstitute; } + public void setPrioritization( boolean canPrioritize ) + { + this.priorization = canPrioritize; + } public void onChangeCrafting(IAEItemStack[] newCrafting, IAEItemStack[] newOutput) { IInventory crafting = this.getInventoryByName("crafting"); diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index b33a3b0f..2c3556c1 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -3,14 +3,22 @@ package com.glodblock.github.nei.recipes; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; +import ibxm.Player; +import net.minecraft.client.gui.Gui; +import net.minecraft.network.play.client.C01PacketChatMessage; +import net.minecraft.server.MinecraftServer; +import net.minecraftforge.server.command.ForgeCommand; +import tv.twitch.chat.Chat; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import net.minecraft.util.ChatComponentText; public final class FluidRecipe { @@ -31,6 +39,20 @@ public final class FluidRecipe { IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); + FluidPrioritization fluid = FluidPrioritization.ENABLED; + switch(fluid) { + case ENABLED: + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("hi")); + + for (int i = 0; i < tmp.size(); i++) { + if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { + MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); + PositionedStack Stack = tmp.get(i); + tmp.remove(Stack); + tmp.add(0, Stack); + } + } + } return extractor.getInputIngredients(tmp, recipe, index); } From 9834066b4b16fc546ee4091964aea0082d388be9 Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Fri, 12 Aug 2022 18:41:48 -0400 Subject: [PATCH 05/12] Button works! --- .../gui/GuiBaseFluidPatternTerminalEx.java | 10 +++++----- .../gui/container/FCBasePartContainerEx.java | 3 ++- .../parts/PartFluidPatternTerminalEx.java | 17 ++++++++++------- ...uidPatternTerminalRecipeTransferHandler.java | 8 +++++++- .../github/nei/recipes/FluidRecipe.java | 8 ++------ .../network/CPacketFluidPatternTermBtns.java | 3 +++ 6 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index 9bd1fcd3..97268d3e 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -74,7 +74,7 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { } else if( this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn ) { - FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", this.fluidPrioritizedEnabledBtn == btn ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); + FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns( "PatternTerminalEx.Prioritize", container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE ) ); } else if( this.invertBtn == btn ) { @@ -160,14 +160,14 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { } if( this.container.prioritize ) { - this.fluidPrioritizedEnabledBtn.visible = true; - this.fluidPrioritizedDisabledBtn.visible = false; + this.fluidPrioritizedEnabledBtn.visible = false; + this.fluidPrioritizedDisabledBtn.visible = true; // MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED")); } else { - this.fluidPrioritizedEnabledBtn.visible = false; - this.fluidPrioritizedDisabledBtn.visible = true; + this.fluidPrioritizedEnabledBtn.visible = true; + this.fluidPrioritizedDisabledBtn.visible = false; //MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED")); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index 5090fa08..18c52463 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -312,7 +312,8 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp if( Platform.isServer() ) { this.substitute = this.patternTerminal.isSubstitution(); - this.combine = this.patternTerminal.shouldCombine(); + this.combine = this.patternTerminal.shouldCombine(); //Check out + this.prioritize = this.patternTerminal.isPrioritize(); if (inverted != patternTerminal.isInverted() || activePage != patternTerminal.getActivePage()) { inverted = patternTerminal.isInverted(); activePage = patternTerminal.getActivePage(); diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index d229745b..d47f27e0 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -38,11 +38,9 @@ public class PartFluidPatternTerminalEx extends FCBasePart { private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 ); private boolean substitute = false; -<<<<<<< HEAD private boolean combine = false; -======= private boolean priorization = false; ->>>>>>> b51bff6 (Test) + private boolean prioritize = false; private boolean inverted = false; private int activePage = 0; @@ -84,7 +82,7 @@ public class PartFluidPatternTerminalEx extends FCBasePart { public void readFromNBT( final NBTTagCompound data ) { super.readFromNBT( data ); - + this.setSubstitution( data.getBoolean( "substitute" ) ); this.setCombineMode( data.getBoolean("combine") ); this.pattern.readFromNBT( data, "pattern" ); @@ -101,13 +99,13 @@ public class PartFluidPatternTerminalEx extends FCBasePart { public void writeToNBT( final NBTTagCompound data ) { super.writeToNBT( data ); - + data.setBoolean( "substitute", this.substitute ); data.setBoolean( "combine", this.combine ); this.pattern.writeToNBT( data, "pattern" ); this.output.writeToNBT( data, "outputList" ); this.crafting.writeToNBT( data, "craftingGrid" ); - data.setBoolean("priorization", this.priorization); + data.setBoolean("priorization", this.prioritize); data.setBoolean( "substitute", this.substitute ); data.setBoolean( "inverted", this.inverted ); data.setInteger( "activePage", this.activePage ); @@ -226,13 +224,18 @@ public class PartFluidPatternTerminalEx extends FCBasePart { return this.substitute; } + public boolean isPrioritize() + { + return this.prioritize; + } + public void setSubstitution( boolean canSubstitute ) { this.substitute = canSubstitute; } public void setPrioritization( boolean canPrioritize ) { - this.priorization = canPrioritize; + this.prioritize = canPrioritize; } public void onChangeCrafting(IAEItemStack[] newCrafting, IAEItemStack[] newOutput) { diff --git a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java index 2464d90f..b337ff11 100644 --- a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java +++ b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java @@ -4,8 +4,10 @@ import codechicken.nei.api.IOverlayHandler; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.GuiBaseFluidPatternTerminalEx; import com.glodblock.github.client.gui.GuiFluidPatternTerminal; import com.glodblock.github.client.gui.GuiFluidPatternTerminalEx; +import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.OrderStack; import com.glodblock.github.nei.recipes.FluidRecipe; import com.glodblock.github.network.CPacketTransferRecipe; @@ -30,7 +32,11 @@ public class FluidPatternTerminalRecipeTransferHandler implements IOverlayHandle @Override public void overlayRecipe(GuiContainer firstGui, IRecipeHandler recipe, int recipeIndex, boolean shift) { if (isCorrectGui(firstGui)) { - List> in = FluidRecipe.getPackageInputs(recipe, recipeIndex); + boolean priority = false; + if (firstGui instanceof GuiBaseFluidPatternTerminalEx) { + priority = ((GuiBaseFluidPatternTerminalEx)firstGui).container.prioritize; + } + List> in = FluidRecipe.getPackageInputs(recipe, recipeIndex, priority); List> out = FluidRecipe.getPackageOutputs(recipe, recipeIndex, !notUseOther(recipe)); boolean craft = shouldCraft(recipe); FluidCraft.proxy.netHandler.sendToServer(new CPacketTransferRecipe(in, out, craft)); diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 2c3556c1..27f59232 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -32,18 +32,14 @@ public final class FluidRecipe { } } - public static List> getPackageInputs(IRecipeHandler recipe, int index) { + public static List> getPackageInputs(IRecipeHandler recipe, int index, boolean priority) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; if (tRecipe == null || !IdentifierMap.containsKey(tRecipe.getOverlayIdentifier())) return new ArrayList<>(); if (tRecipe.getOverlayIdentifier() == null) return getPackageInputsLegacy(recipe, index); IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); - FluidPrioritization fluid = FluidPrioritization.ENABLED; - switch(fluid) { - case ENABLED: - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("hi")); - + if (priority) { for (int i = 0; i < tmp.size(); i++) { if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java index 0605204f..1028332e 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java @@ -112,6 +112,9 @@ public class CPacketFluidPatternTermBtns implements IMessage { case "PatternTerminalEx.ActivePage": cpt.getPatternTerminal().setActivePage(Integer.parseInt(Value)); break; + case "PatternTerminalEx.Prioritize": + cpt.getPatternTerminal().setPrioritization(Value.equals("1")); + break; } } else if(Name.equals( "Terminal.Cpu" ) && c instanceof ContainerFluidCraftConfirm) { final ContainerFluidCraftConfirm qk = (ContainerFluidCraftConfirm) c; From 2fc407ce61ee82831cc0d225c524b379a36cfeb1 Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 11:56:51 +0200 Subject: [PATCH 06/12] Changed way to see if item is a fluid display --- .../java/com/glodblock/github/nei/recipes/FluidRecipe.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 27f59232..9b8f6a11 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -7,10 +7,12 @@ import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; +import gregtech.common.items.GT_FluidDisplayItem; import ibxm.Player; import net.minecraft.client.gui.Gui; import net.minecraft.network.play.client.C01PacketChatMessage; import net.minecraft.server.MinecraftServer; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.server.command.ForgeCommand; import tv.twitch.chat.Chat; @@ -41,7 +43,7 @@ public final class FluidRecipe { List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); if (priority) { for (int i = 0; i < tmp.size(); i++) { - if(tmp.get(i).toString().contains("GregTech_FluidDisplay")) { + if(tmp.get(i).item.getItem() instanceof GT_FluidDisplayItem) { MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); PositionedStack Stack = tmp.get(i); tmp.remove(Stack); From b3f3ecfe2e5e416954d62130a0d049c75e9fd7c7 Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 15:41:55 +0200 Subject: [PATCH 07/12] Made button functional added icon + proper functionality --- .../gui/GuiBaseFluidPatternTerminalEx.java | 16 ++++++---------- .../github/client/gui/GuiFCImgButton.java | 2 ++ .../github/nei/recipes/FluidRecipe.java | 12 +++++++++--- .../resources/assets/ae2fc/lang/en_US.lang | 5 +++++ .../assets/ae2fc/textures/gui/states.png | Bin 734 -> 1122 bytes 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index 97268d3e..2d0a5256 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -34,8 +34,8 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { private GuiImgButton substitutionsEnabledBtn; private GuiImgButton substitutionsDisabledBtn; - private GuiImgButton fluidPrioritizedEnabledBtn; - private GuiImgButton fluidPrioritizedDisabledBtn; + private GuiFCImgButton fluidPrioritizedEnabledBtn; + private GuiFCImgButton fluidPrioritizedDisabledBtn; private GuiImgButton encodeBtn; private GuiImgButton invertBtn; private GuiImgButton clearBtn; @@ -104,15 +104,13 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { this.substitutionsDisabledBtn.setHalfSize( true ); this.buttonList.add( this.substitutionsDisabledBtn ); - this.fluidPrioritizedEnabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.ENABLED ); + this.fluidPrioritizedEnabledBtn = new GuiFCImgButton( this.guiLeft + 97, this.guiTop + this.ySize - 143, "FORCE_PRIO", "DO_PRIO" ); this.fluidPrioritizedEnabledBtn.setHalfSize( true ); this.buttonList.add( this.fluidPrioritizedEnabledBtn ); - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED IMMER")); - this.fluidPrioritizedDisabledBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 143, Settings.ACTIONS, FluidPrioritization.DISABLED ); + this.fluidPrioritizedDisabledBtn = new GuiFCImgButton( this.guiLeft + 97, this.guiTop + this.ySize - 143, "NOT_PRIO", "DONT_PRIO" ); this.fluidPrioritizedDisabledBtn.setHalfSize( true ); this.buttonList.add( this.fluidPrioritizedDisabledBtn ); - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED IMMER")); invertBtn = new GuiImgButton( this.guiLeft + 87, this.guiTop + this.ySize - 153, Settings.ACTIONS, container.inverted ? PatternSlotConfig.C_4_16 : PatternSlotConfig.C_16_4); invertBtn.setHalfSize( true ); @@ -162,13 +160,11 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { { this.fluidPrioritizedEnabledBtn.visible = false; this.fluidPrioritizedDisabledBtn.visible = true; - // MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("ENABLED")); } else { this.fluidPrioritizedEnabledBtn.visible = true; this.fluidPrioritizedDisabledBtn.visible = false; - //MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("DISABLED")); } if ( this.container.combine ) @@ -229,8 +225,8 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { substitutionsEnabledBtn.xPosition = this.guiLeft + 97 + offset; substitutionsDisabledBtn.xPosition = this.guiLeft + 97 + offset; - fluidPrioritizedEnabledBtn.xPosition = this.guiLeft + 87 + offset; - fluidPrioritizedDisabledBtn.xPosition = this.guiLeft + 87 + offset; + fluidPrioritizedEnabledBtn.xPosition = this.guiLeft + 97 + offset; + fluidPrioritizedDisabledBtn.xPosition = this.guiLeft + 97 + offset; doubleBtn.xPosition = this.guiLeft + 97 + offset; clearBtn.xPosition = this.guiLeft + 87 + offset; invertBtn.xPosition = this.guiLeft + 87 + offset; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java index 3b5b0c2e..e405c881 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java @@ -37,6 +37,8 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { appearances = new HashMap<>(); this.registerApp( 0, "NOT_COMBINE", "DONT_COMBINE", "not_combine" ); this.registerApp( 1, "FORCE_COMBINE", "DO_COMBINE", "combine" ); + this.registerApp( 2, "FORCE_PRIO", "DO_PRIO", "prio" ); + this.registerApp( 3, "NOT_PRIO", "DONT_PRIO", "not_prio" ); } } diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 9b8f6a11..c8c3e7b6 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -41,16 +41,22 @@ public final class FluidRecipe { IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); + List fluidClone = new ArrayList<>(); if (priority) { for (int i = 0; i < tmp.size(); i++) { if(tmp.get(i).item.getItem() instanceof GT_FluidDisplayItem) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(String.valueOf(tmp.size()))); PositionedStack Stack = tmp.get(i); - tmp.remove(Stack); - tmp.add(0, Stack); + fluidClone.add(Stack); } } + for (int i = 0; i < fluidClone.size(); i++) { + tmp.remove(fluidClone.get(i)); } + Collections.reverse(fluidClone); + for (int i = 0; i < fluidClone.size(); i++) { + tmp.add(0, fluidClone.get(i)); + } + } return extractor.getInputIngredients(tmp, recipe, index); } diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index c750f6b4..89076d29 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -40,6 +40,11 @@ ae2fc.tooltip.not_combine.hint=Disabled ae2fc.tooltip.combine=Merge the same items ae2fc.tooltip.combine.hint=Enabled +ae2fc.tooltip.not_prio=Allow fluids to be placed first +ae2fc.tooltip.not_prio.hint=Enabled +ae2fc.tooltip.prio=Allow fluids to be placed first +ae2fc.tooltip.prio.hint=Disabled + ae2fc.gui.part_fluid_pattern_terminal=Fluid Pattern Terminal ae2fc.gui.part_fluid_pattern_terminal_ex=Fluid Processing Pattern Terminal ae2fc.gui.fluid_pattern_encoder=Fluid Pattern Encoder diff --git a/src/main/resources/assets/ae2fc/textures/gui/states.png b/src/main/resources/assets/ae2fc/textures/gui/states.png index ce994c2e4ca9f9e28577d4f399f7f46cc3aa087b..7e7bb6dcf0e9638e3c7ed8bd5011d0c3ff6c82f5 100644 GIT binary patch delta 1102 zcmV-U1hMy*hBYyw^b5ch_0Itp)=>Px(97#k$RA_710Ws?aW zG{?=7OqK|e%N)YOuo=ogjuDLHIAFjTyyhNq-DL0}C`53{K^Hyb7$%Afdh7@ik~JC^ zj3hzblQ?5m?VieErrYl6KeqNn+wWpkSzo{J)qAh%4McDn+@k>$i$x|TCdlXWp+@`q z`aA;K!4DEY_5)6>&|!sfU4qdTy$ zut0x*Ke=4a*Ql=R{C@W?4|JVEp+KorvgbmGbNNoumV@PT***X-eo*E=s>#ouecLSJ z#{?CzB7~6R2#VXd}mb3*ot~baK*LV)x~@m&m&;{FMn;&NoQxcm!u{Jt_Xb4d*4n6RaHSs%zC{s zc3}0FKiZndao}D8%=0G9(wD#cE%kyUTrxx?qh zuh`ky;jh&vyrC+{R0oP;UW?EmxEwG|6a9siE+^c7^oqT`J$ucR2LB$PT(!nfxExRw zcz^WH*?fP0pIWWvSX21%*Y;do?SflPN~OE20|4{Y5$g6+-b=yB>y4Vd)uBg z44!NBt{;CCQNFKkrY_+IG7x6{gX3;5^n zhnMEg%*-@v;2QgROGp?D!$8x#9YCd0NoEZghT%K*L*g9pJ8f(3=S*TcGfP~Uc)v7C zR0RA4g7@T|^Tasd6mJ-YM|4mcCB^{@t*PWp9ltb7oC6S^_nM};qL7#(w%`;PR7cQG zBq9P~Iq$bOktyU974ff3hx*8&?Bm&`y8z_)jX8%BA`L0kRri Uhj@?Gvj6}907*qoM6N<$g5@DB%m4rY delta 711 zcmV;&0yzER2;K#dBYy&=Nklck$WhdB1i? z%lCbdLAhKeUvyp9k|G2U%D0~641^#hBZ{ck>+G6r64LxxOn>(!K>|V1YPAZR%?9{u zQAw!suLT()ktl)}=CN9>U^pDIaZuvp2q|>HvTfV1R4UMHHre$s;cmD4Dqb#^kWQyT zg}?AVtB(+h_xpV)l}eGK`F#Guz%BSHU^{@~v)PP%Mu{S}+wEmB6!~#M5}+;5WHKyb zQUFzu4)l6Ga+`L$4ZGb=D9TJfKeJET0U16&N@)J$w}1EW{nH=t!BOe}Nq|-kXL!9{ zLpGZY73R%*o+r&mZllqF!C=75lNTvCYA-VSCYITOUeATveM^E*I6?C_O@Nx9GrU+Vn22Sai^U1k_zM2TJqTCvIQ=q%cZ`>#ghC5- z^WWWb^?wmb0=khTpc_d7x{)NH8%YAXktCoS|H*M$BYyvSj4eJMkInc!fJUNlJRTvH zx~%ndIyG|#(6H!#5sXVfRBalIlF_~c6x3XldC?dd)d7(~5LBLzjY)tvj|PLL!^X(S z9e|M05sjIVPob!}$C&SeF-uIr8w^`$9!7K^YCz^i-!*cCcvG@ZBQPZa8N;Dt^^d*9 t!rkqF2r}jo+J6sx{qmEXDq{fv{sJ`R4N(n>Z3X}U002ovPDHLkV1gKvPk;ab From 69fe6b2950b3f0caf890a4c71b7054077d3a841b Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 15:57:26 +0200 Subject: [PATCH 08/12] Removed unimportant imports --- .../github/client/gui/GuiBaseFluidPatternTerminalEx.java | 4 ---- .../com/glodblock/github/nei/recipes/FluidRecipe.java | 9 --------- 2 files changed, 13 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index 2d0a5256..bd7a37de 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -10,15 +10,11 @@ import appeng.client.gui.widgets.GuiScrollbar; import appeng.container.slot.AppEngSlot; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.FCBasePartContainerEx; -import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.network.CPacketFluidPatternTermBtns; -import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.StatCollector; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index c8c3e7b6..e1907c85 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -3,24 +3,15 @@ package com.glodblock.github.nei.recipes; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; -import com.glodblock.github.client.gui.container.FluidPrioritization; import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; import gregtech.common.items.GT_FluidDisplayItem; -import ibxm.Player; -import net.minecraft.client.gui.Gui; -import net.minecraft.network.play.client.C01PacketChatMessage; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.server.command.ForgeCommand; -import tv.twitch.chat.Chat; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; -import net.minecraft.util.ChatComponentText; public final class FluidRecipe { From 13a23165c2b09c19a6585b71f880152bb65f18d0 Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 16:22:19 +0200 Subject: [PATCH 09/12] removed unnecessary var --- .../github/common/parts/PartFluidPatternTerminalEx.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index d47f27e0..1ec1ee0b 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -39,7 +39,6 @@ public class PartFluidPatternTerminalEx extends FCBasePart { private boolean substitute = false; private boolean combine = false; - private boolean priorization = false; private boolean prioritize = false; private boolean inverted = false; private int activePage = 0; From 539538d551f356d9fa2ecc1b34f5959832b82639 Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sat, 13 Aug 2022 19:09:15 +0200 Subject: [PATCH 10/12] Stuff Changed --- .../github/nei/recipes/FluidRecipe.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index e1907c85..14294294 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -7,6 +7,10 @@ import com.glodblock.github.nei.object.IRecipeExtractor; import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; import gregtech.common.items.GT_FluidDisplayItem; +import net.minecraft.item.ItemStack; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; import java.util.Collections; @@ -32,23 +36,23 @@ public final class FluidRecipe { IRecipeExtractor extractor = IdentifierMap.get(tRecipe.getOverlayIdentifier()); if (extractor == null) return new ArrayList<>(); List tmp = new ArrayList<>(tRecipe.getIngredientStacks(index)); - List fluidClone = new ArrayList<>(); + List> out = extractor.getInputIngredients(tmp, recipe, index); if (priority) { - for (int i = 0; i < tmp.size(); i++) { - if(tmp.get(i).item.getItem() instanceof GT_FluidDisplayItem) { - PositionedStack Stack = tmp.get(i); - fluidClone.add(Stack); - } - } - for (int i = 0; i < fluidClone.size(); i++) { - tmp.remove(fluidClone.get(i)); + List> reordered = new ArrayList<>(); + byte numFluids = 0; + for (OrderStack orderStack : out) { + if (orderStack.getStack() instanceof FluidStack) { + reordered.add(new OrderStack(orderStack.getStack(), numFluids++)); } - Collections.reverse(fluidClone); - for (int i = 0; i < fluidClone.size(); i++) { - tmp.add(0, fluidClone.get(i)); } + for (OrderStack orderStack : out) { + if (orderStack.getStack() instanceof ItemStack) { + reordered.add(new OrderStack(orderStack.getStack(), numFluids++)); + } + } + return reordered; } - return extractor.getInputIngredients(tmp, recipe, index); + return out; } public static List> getPackageOutputs(IRecipeHandler recipe, int index, boolean useOther) { From 3f15f9524bc2c29a726922f208569b2b428a26de Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sun, 14 Aug 2022 11:12:13 +0200 Subject: [PATCH 11/12] Added nullcheck --- src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 14294294..d358a440 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -41,7 +41,7 @@ public final class FluidRecipe { List> reordered = new ArrayList<>(); byte numFluids = 0; for (OrderStack orderStack : out) { - if (orderStack.getStack() instanceof FluidStack) { + if (orderStack != null && orderStack.getStack() instanceof FluidStack) { reordered.add(new OrderStack(orderStack.getStack(), numFluids++)); } } From 05b853815482ed5a673e8dbdb21b4d6dee85b0be Mon Sep 17 00:00:00 2001 From: Runakai1 Date: Sun, 14 Aug 2022 11:16:48 +0200 Subject: [PATCH 12/12] added another nullcheck --- src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index d358a440..4a528b9e 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -46,7 +46,7 @@ public final class FluidRecipe { } } for (OrderStack orderStack : out) { - if (orderStack.getStack() instanceof ItemStack) { + if (orderStack != null && orderStack.getStack() instanceof ItemStack) { reordered.add(new OrderStack(orderStack.getStack(), numFluids++)); } }