diff --git a/dependencies.gradle b/dependencies.gradle index 1ca44200..0899277f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -23,5 +23,5 @@ dependencies { compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.191:dev') { transitive = false } compileOnly('com.github.GTNewHorizons:KekzTech:0.6.25:dev') - runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') + compile('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') } 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 2d28896b..d731d906 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java @@ -57,6 +57,8 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { this.registerApp(13, "ESSENTIA_TEM", "YES", "essentia_terminal_w"); this.registerApp(14, "INTERFACE_TEM", "YES", "interface_terminal_w"); this.registerApp(15, "PATTERN_EX_TEM", "YES", "pattern_terminal_ex_w"); + this.registerApp(16, "FILL_PATTERN", "DO_FILL", "fill_pattern"); + this.registerApp(17, "NOT_FILL_PATTERN", "DONT_FILL", "not_fill_pattern"); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternExWireless.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternExWireless.java index 2f12f1e3..4ba97647 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternExWireless.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternExWireless.java @@ -2,6 +2,9 @@ package com.glodblock.github.client.gui; import net.minecraft.entity.player.InventoryPlayer; +import appeng.container.slot.AppEngSlot; +import appeng.container.slot.SlotDisabled; + import com.glodblock.github.inventory.item.IWirelessTerminal; public class GuiFluidPatternExWireless extends GuiFluidPatternTerminalEx { @@ -9,4 +12,13 @@ public class GuiFluidPatternExWireless extends GuiFluidPatternTerminalEx { public GuiFluidPatternExWireless(InventoryPlayer inventoryPlayer, IWirelessTerminal te) { super(inventoryPlayer, te); } + + @Override + protected void repositionSlot(final AppEngSlot s) { + if (s instanceof SlotDisabled || s.isPlayerSide()) { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 5; + } else { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 3; + } + } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java index 8ce4e822..9ca35511 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java @@ -20,6 +20,8 @@ import appeng.core.localization.GuiText; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminal; +import com.glodblock.github.client.gui.container.ContainerFluidPatternWireless; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; @@ -29,6 +31,10 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { super(inventoryPlayer, te, new ContainerFluidPatternTerminal(inventoryPlayer, te)); } + public GuiFluidPatternTerminal(final InventoryPlayer inventoryPlayer, final IWirelessTerminal te) { + super(inventoryPlayer, te, new ContainerFluidPatternWireless(inventoryPlayer, te)); + } + @Override @SuppressWarnings("unchecked") public void initGui() { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java index 39472059..a0af00ae 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java @@ -11,7 +11,9 @@ import appeng.client.gui.widgets.GuiImgButton; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; +import com.glodblock.github.client.gui.container.ContainerFluidPatternExWireless; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminalEx; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; @@ -24,6 +26,12 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { processingScrollBar.setTexture(FluidCraft.MODID, "gui/pattern3.png", 242, 0); } + public GuiFluidPatternTerminalEx(final InventoryPlayer inventoryPlayer, final IWirelessTerminal te) { + super(inventoryPlayer, te, new ContainerFluidPatternExWireless(inventoryPlayer, te)); + processingScrollBar.setHeight(70).setWidth(7).setLeft(6).setRange(0, 1, 1); + processingScrollBar.setTexture(FluidCraft.MODID, "gui/pattern3.png", 242, 0); + } + @Override @SuppressWarnings("unchecked") public void initGui() { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternWireless.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternWireless.java index ed801c36..09346709 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternWireless.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternWireless.java @@ -2,6 +2,9 @@ package com.glodblock.github.client.gui; import net.minecraft.entity.player.InventoryPlayer; +import appeng.container.slot.AppEngSlot; +import appeng.container.slot.SlotDisabled; + import com.glodblock.github.inventory.item.IWirelessTerminal; public class GuiFluidPatternWireless extends GuiFluidPatternTerminal { @@ -9,4 +12,13 @@ public class GuiFluidPatternWireless extends GuiFluidPatternTerminal { public GuiFluidPatternWireless(InventoryPlayer inventoryPlayer, IWirelessTerminal te) { super(inventoryPlayer, te); } + + @Override + protected void repositionSlot(final AppEngSlot s) { + if (s instanceof SlotDisabled || s.isPlayerSide()) { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 5; + } else { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 3; + } + } } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCBaseMEGui.java b/src/main/java/com/glodblock/github/client/gui/base/FCBaseMEGui.java index 6b43f0f6..420859f1 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCBaseMEGui.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCBaseMEGui.java @@ -10,8 +10,10 @@ import net.minecraft.inventory.Container; import appeng.client.gui.AEBaseMEGui; import com.glodblock.github.client.gui.*; +import com.glodblock.github.client.gui.container.base.FCBaseContainer; import com.glodblock.github.common.item.ItemWirelessUltraTerminal; import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.ModAndClassUtil; public abstract class FCBaseMEGui extends AEBaseMEGui { @@ -27,9 +29,13 @@ public abstract class FCBaseMEGui extends AEBaseMEGui { public FCBaseMEGui(final InventoryPlayer inventoryPlayer, Container container) { super(container); - if (inventoryPlayer.getCurrentItem() != null - && inventoryPlayer.getCurrentItem().getItem() instanceof ItemWirelessUltraTerminal) - this.drawSwitchGuiBtn = true; + if (container instanceof FCBaseContainer) { + Object target = ((FCBaseContainer) container).getTarget(); + if (target instanceof IWirelessTerminal + && ((IWirelessTerminal) target).getItemStack().getItem() instanceof ItemWirelessUltraTerminal) { + this.drawSwitchGuiBtn = true; + } + } } @Override @@ -135,14 +141,4 @@ public abstract class FCBaseMEGui extends AEBaseMEGui { } super.actionPerformed(btn); } - - @Override - public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) { - - } - - @Override - public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY) { - - } } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java index 2815f3d0..5b67b48b 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java @@ -51,6 +51,8 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { protected GuiImgButton beSubstitutionsDisabledBtn; protected GuiFCImgButton combineEnableBtn; protected GuiFCImgButton combineDisableBtn; + protected GuiFCImgButton autoFillPatternEnableBtn; + protected GuiFCImgButton autoFillPatternDisableBtn; protected final GuiScrollbar processingScrollBar = new GuiScrollbar(); protected final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); @@ -62,6 +64,24 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { setReservedSpace(81); } + @Override + public void initGui() { + super.initGui(); + this.buttonList.add( + this.autoFillPatternEnableBtn = new GuiFCImgButton( + this.guiLeft - 18, + this.offsetY, + "FILL_PATTERN", + "DO_FILL")); + this.buttonList.add( + this.autoFillPatternDisableBtn = new GuiFCImgButton( + this.guiLeft - 18, + this.offsetY, + "NOT_FILL_PATTERN", + "DONT_FILL")); + this.offsetY += 20; + } + @Override protected void actionPerformed(final GuiButton btn) { super.actionPerformed(btn); @@ -108,6 +128,11 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { } else if (ModAndClassUtil.isBeSubstitutionsButton && beSubstitutionsEnabledBtn == btn) { FluidCraft.proxy.netHandler .sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "0")); + } else if (this.autoFillPatternDisableBtn == btn || this.autoFillPatternEnableBtn == btn) { + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.AutoFillerPattern", + this.autoFillPatternDisableBtn == btn ? "1" : "0")); } } @@ -124,6 +149,8 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { updateButton(this.beSubstitutionsDisabledBtn, !this.container.beSubstitute); updateButton(this.fluidPrioritizedEnabledBtn, this.container.prioritize); updateButton(this.fluidPrioritizedDisabledBtn, !this.container.prioritize); + updateButton(this.autoFillPatternEnableBtn, this.container.autoFillPattern); + updateButton(this.autoFillPatternDisableBtn, !this.container.autoFillPattern); super.drawFG(offsetX, offsetY, mouseX, mouseY); } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java index 935810be..fa8e79a1 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java @@ -33,10 +33,8 @@ import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.localization.ButtonToolTips; import appeng.core.localization.GuiText; -import appeng.core.sync.GuiBridge; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketInventoryAction; -import appeng.core.sync.packets.PacketSwitchGuis; import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.InventoryAction; import appeng.integration.IntegrationRegistry; @@ -50,6 +48,8 @@ import codechicken.nei.util.TextHistory; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.*; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketInventoryAction; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; @@ -119,7 +119,7 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui @Override protected void actionPerformed(final GuiButton btn) { if (btn == this.craftingStatusBtn || btn == this.craftingStatusImgBtn) { - NetworkHandler.instance.sendToServer(new PacketSwitchGuis(GuiBridge.GUI_CRAFTING_STATUS)); + InventoryHandler.switchGui(GuiType.CRAFTING_STATUS); } if (btn instanceof GuiImgButton) { final boolean backwards = Mouse.isButtonDown(1); @@ -314,7 +314,7 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui for (final Object s : this.inventorySlots.inventorySlots) { if (s instanceof AppEngSlot) { - if (((Slot) s).xDisplayPosition < 195) { + if (((Slot) s).xDisplayPosition < 195 || s instanceof SlotDisabled) { this.repositionSlot((AppEngSlot) s); } } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java index 14489b3f..36286913 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java @@ -294,7 +294,7 @@ public class ContainerFluidCraftConfirm extends AEBaseContainer { InventoryHandler.openGui( this.getInventoryPlayer().player, getWorld(), - new BlockPos(this.getPlayerInv().currentItem, 0, 0), + new BlockPos(((IWirelessTerminal) ah).getInventorySlot(), 0, 0), ForgeDirection.UNKNOWN, originalGui); } else if (this.getOpenContext() != null) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCBaseContainer.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCBaseContainer.java index 9e0b9c21..bda3122a 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCBaseContainer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCBaseContainer.java @@ -29,7 +29,9 @@ public abstract class FCBaseContainer extends AEBaseContainer { if (isWirelessTerminal()) { if (this.host != null) { final int slotIndex = this.host.getInventorySlot(); - this.lockPlayerInventorySlot(slotIndex); + if (Util.GuiHelper.decodeInvType(slotIndex).getLeft() == Util.GuiHelper.InvType.PLAYER_INV) { + this.lockPlayerInventorySlot(slotIndex); + } return slotIndex; } else { this.lockPlayerInventorySlot(ip.currentItem); 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 58be4050..a16e5e32 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 @@ -18,6 +18,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; import appeng.api.AEApi; +import appeng.api.config.Actionable; import appeng.api.definitions.IDefinitions; import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; @@ -75,6 +76,9 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor @GuiSync(91) public boolean prioritize = false; + @GuiSync(90) + public boolean autoFillPattern = false; + public FCContainerEncodeTerminal(final InventoryPlayer ip, final ITerminalHost monitorable) { super(ip, monitorable); this.patternTerminal = (IItemPatternTerminal) monitorable; @@ -302,6 +306,7 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } this.patternSlotOUT.putStack(null); } + fillPattern(); } public void encodeAllItemAndMoveToInventory() { @@ -315,9 +320,38 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor this.patternSlotOUT.putStack(null); this.patternSlotIN.putStack(null); } + fillPattern(); + } + + private void fillPattern() { + if (this.autoFillPattern && this.getHost().getItemInventory() != null) { + // try to use me network item to fill pattern input slot + final IDefinitions definitions = AEApi.instance().definitions(); + int fillStackSize = this.patternSlotIN.getHasStack() ? 64 - this.patternSlotIN.getStack().stackSize : 64; + if (fillStackSize == 0) return; + for (ItemStack blankPattern : definitions.materials().blankPattern().maybeStack(fillStackSize).asSet()) { + IAEItemStack iBlankPattern = AEApi.instance().storage().createItemStack(blankPattern); + if (this.patternSlotIN.getHasStack() && !iBlankPattern.isSameType(this.patternSlotIN.getStack())) + continue; + IAEItemStack out = this.getHost().getItemInventory() + .extractItems(iBlankPattern, Actionable.MODULATE, this.getActionSource()); + if (out != null) { + ItemStack outPattern; + if (this.patternSlotIN.getHasStack()) { + outPattern = this.patternSlotIN.getStack().copy(); + outPattern.stackSize += out.getItemStack().stackSize; + } else { + outPattern = out.getItemStack(); + } + this.patternSlotIN.putStack(outPattern); + return; + } + } + } } public void encode() { + fillPattern(); if (!checkHasFluidPattern()) { encodeItemPattern(); return; @@ -454,6 +488,7 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor this.combine = this.patternTerminal.shouldCombine(); this.beSubstitute = this.patternTerminal.canBeSubstitute(); this.prioritize = this.patternTerminal.isPrioritize(); + this.autoFillPattern = this.patternTerminal.isAutoFillPattern(); } } diff --git a/src/main/java/com/glodblock/github/common/item/ItemWirelessUltraTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemWirelessUltraTerminal.java index 0789427a..d27705f0 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemWirelessUltraTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemWirelessUltraTerminal.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -13,11 +14,15 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import org.apache.commons.lang3.tuple.ImmutablePair; + import appeng.api.AEApi; import appeng.api.networking.IGridNode; import appeng.core.features.AEFeature; import appeng.core.localization.PlayerMessages; import appeng.util.Platform; +import baubles.api.BaubleType; +import baubles.api.IBauble; import com.glodblock.github.FluidCraft; import com.glodblock.github.common.tabs.FluidCraftingTabs; @@ -36,7 +41,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ItemWirelessUltraTerminal extends ItemBaseWirelessTerminal - implements IRegister { + implements IBauble, IRegister { public final static String MODE = "mode_main"; private final static List guis = new ArrayList<>(); @@ -162,9 +167,10 @@ public class ItemWirelessUltraTerminal extends ItemBaseWirelessTerminal } public static void switchTerminal(EntityPlayer player, GuiType guiType) { - if (player.inventory.getCurrentItem().getItem() instanceof ItemWirelessUltraTerminal) { - ((ItemWirelessUltraTerminal) player.inventory.getCurrentItem().getItem()) - .setMode(guiType, player.inventory.getCurrentItem()); + ImmutablePair term = Util.getUltraWirelessTerm(player); + if (term == null) return; + if (term.getRight().getItem() instanceof ItemWirelessUltraTerminal) { + ((ItemWirelessUltraTerminal) term.getRight().getItem()).setMode(guiType, term.getRight()); } if (Platform.isClient()) { FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(guiType, true)); @@ -173,7 +179,7 @@ public class ItemWirelessUltraTerminal extends ItemBaseWirelessTerminal player, player.worldObj, new BlockPos( - player.inventory.currentItem, + term.getLeft(), Util.GuiHelper.encodeType( guis.indexOf(GuiType.valueOf(guiType.toString())), Util.GuiHelper.GuiType.ITEM), @@ -191,4 +197,34 @@ public class ItemWirelessUltraTerminal extends ItemBaseWirelessTerminal public GuiType guiGuiType(ItemStack stack) { return readMode(stack); } + + @Override + public BaubleType getBaubleType(ItemStack itemStack) { + return BaubleType.RING; + } + + @Override + public void onWornTick(ItemStack itemStack, EntityLivingBase entityLivingBase) { + + } + + @Override + public void onEquipped(ItemStack itemStack, EntityLivingBase entityLivingBase) { + + } + + @Override + public void onUnequipped(ItemStack itemStack, EntityLivingBase entityLivingBase) { + + } + + @Override + public boolean canEquip(ItemStack itemStack, EntityLivingBase entityLivingBase) { + return true; + } + + @Override + public boolean canUnequip(ItemStack itemStack, EntityLivingBase entityLivingBase) { + return true; + } } diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java index 0a04948a..1cdb7f54 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java @@ -25,6 +25,7 @@ public abstract class FCFluidEncodeTerminal extends FCPart implements IItemPatte protected boolean prioritize = false; protected boolean inverted = false; protected boolean beSubstitute = false; + protected boolean autoFillPattern = false; protected int activePage = 0; public FCFluidEncodeTerminal(ItemStack is) { @@ -51,6 +52,7 @@ public abstract class FCFluidEncodeTerminal extends FCPart implements IItemPatte this.setPrioritization(data.getBoolean("priorization")); this.setInverted(data.getBoolean("inverted")); this.setActivePage(data.getInteger("activePage")); + this.setAutoFillPattern(data.getBoolean("autoFillPattern")); this.pattern.readFromNBT(data, "pattern"); this.output.readFromNBT(data, "outputList"); this.crafting.readFromNBT(data, "craftingGrid"); @@ -66,6 +68,7 @@ public abstract class FCFluidEncodeTerminal extends FCPart implements IItemPatte data.setBoolean("substitute", this.substitute); data.setBoolean("inverted", this.inverted); data.setInteger("activePage", this.activePage); + data.setBoolean("autoFillPattern", this.autoFillPattern); this.pattern.writeToNBT(data, "pattern"); this.output.writeToNBT(data, "outputList"); this.crafting.writeToNBT(data, "craftingGrid"); @@ -204,4 +207,14 @@ public abstract class FCFluidEncodeTerminal extends FCPart implements IItemPatte } saveChanges(); } + + @Override + public boolean isAutoFillPattern() { + return this.autoFillPattern; + } + + @Override + public void setAutoFillPattern(boolean canFill) { + this.autoFillPattern = canFill; + } } diff --git a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java index a6e4cc98..691b4b51 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java @@ -12,6 +12,7 @@ import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; import com.glodblock.github.inventory.item.IItemInventory; +import com.glodblock.github.util.Util; public abstract class ItemGuiFactory implements IGuiFactory { @@ -29,7 +30,7 @@ public abstract class ItemGuiFactory implements IGuiFactory { @Nullable @Override public Object createServerGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { - ItemStack item = player.getHeldItem(); + ItemStack item = Util.getWirelessTerminal(player, x); if (item == null || !(item.getItem() instanceof IItemInventory)) { return null; } @@ -56,7 +57,7 @@ public abstract class ItemGuiFactory implements IGuiFactory { @Nullable @Override public Object createClientGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { - ItemStack item = player.getHeldItem(); + ItemStack item = Util.getWirelessTerminal(player, x); if (item == null || !(item.getItem() instanceof IItemInventory)) { return null; } diff --git a/src/main/java/com/glodblock/github/inventory/gui/PartOrItemGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/PartOrItemGuiFactory.java index 1f554e5b..082a8ed8 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/PartOrItemGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/PartOrItemGuiFactory.java @@ -30,9 +30,8 @@ public abstract class PartOrItemGuiFactory extends PartGuiFactory { @Override public Object createServerGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { ImmutablePair result = Util.GuiHelper.decodeType(y); - if (result.getLeft() == Util.GuiHelper.GuiType.ITEM) { - ItemStack item = player.getHeldItem(); + ItemStack item = Util.getWirelessTerminal(player, x); if (item == null || !(item.getItem() instanceof IItemInventory)) { return null; } @@ -63,7 +62,7 @@ public abstract class PartOrItemGuiFactory extends PartGuiFactory { public Object createClientGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { ImmutablePair result = Util.GuiHelper.decodeType(y); if (result.left == Util.GuiHelper.GuiType.ITEM) { - ItemStack item = player.getHeldItem(); + ItemStack item = Util.getWirelessTerminal(player, x); if (item == null || !(item.getItem() instanceof IItemInventory)) { return null; } diff --git a/src/main/java/com/glodblock/github/inventory/item/IItemPatternTerminal.java b/src/main/java/com/glodblock/github/inventory/item/IItemPatternTerminal.java index 4ba4f335..730530f2 100644 --- a/src/main/java/com/glodblock/github/inventory/item/IItemPatternTerminal.java +++ b/src/main/java/com/glodblock/github/inventory/item/IItemPatternTerminal.java @@ -35,4 +35,8 @@ public interface IItemPatternTerminal extends IItemTerminal { boolean isCraftingRecipe(); void sortCraftingItems(); + + boolean isAutoFillPattern(); + + void setAutoFillPattern(boolean canFill); } diff --git a/src/main/java/com/glodblock/github/inventory/item/WirelessFluidTerminalInventory.java b/src/main/java/com/glodblock/github/inventory/item/WirelessFluidTerminalInventory.java index 6240ac90..045c31e6 100644 --- a/src/main/java/com/glodblock/github/inventory/item/WirelessFluidTerminalInventory.java +++ b/src/main/java/com/glodblock/github/inventory/item/WirelessFluidTerminalInventory.java @@ -88,6 +88,7 @@ public class WirelessFluidTerminalInventory extends MEMonitorHandler term = Util.getUltraWirelessTerm(p); + if (term != null && term.getRight().getItem() instanceof ItemWirelessUltraTerminal) { + ItemWirelessUltraTerminal.switchTerminal( + p, + ((ItemWirelessUltraTerminal) term.getRight().getItem()).guiGuiType(term.getRight())); + } + } + } +} diff --git a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java index 72e95c8a..28a811d1 100644 --- a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java +++ b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java @@ -6,6 +6,7 @@ import codechicken.nei.api.IConfigureNEI; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.*; import com.glodblock.github.nei.recipes.FluidRecipe; +import com.glodblock.github.util.ModAndClassUtil; public class NEI_FC_Config implements IConfigureNEI { @@ -13,6 +14,14 @@ public class NEI_FC_Config implements IConfigureNEI { public void loadConfig() { API.registerNEIGuiHandler(new NEIGuiHandler()); API.addSearchProvider(new NEIItemFilter()); + + if (ModAndClassUtil.AVARITIA) { + API.registerGuiOverlay(GuiFluidPatternWireless.class, "extreme", null); + API.registerGuiOverlay(GuiFluidPatternExWireless.class, "extreme", null); + API.registerGuiOverlay(GuiFluidPatternTerminal.class, "extreme", null); + API.registerGuiOverlay(GuiFluidPatternTerminalEx.class, "extreme", null); + } + for (String identifier : FluidRecipe.getSupportRecipes()) { // that NEE handlers take priority if (!API.hasGuiOverlayHandler(GuiFluidCraftingWireless.class, identifier)) { diff --git a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java index 7f7e0ea3..5e83468c 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java +++ b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java @@ -50,6 +50,10 @@ public class DefaultExtractorLoader implements Runnable { FluidRecipe.addRecipeMap("EnderIOVat", new EnderIORecipeExtractor()); } + if (ModAndClassUtil.AVARITIA) { + FluidRecipe.addRecipeMap("extreme", new AvaritiaRecipeExtractor()); + } + if (ModAndClassUtil.FTR) { // GTNH FluidRecipe.addRecipeMap("forestry.bottler", new ForestryRecipeExtractor(new NEIHandlerBottler())); diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/AvaritiaRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/AvaritiaRecipeExtractor.java new file mode 100644 index 00000000..304dac8f --- /dev/null +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/AvaritiaRecipeExtractor.java @@ -0,0 +1,36 @@ +package com.glodblock.github.nei.recipes.extractor; + +import java.util.List; + +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; + +import com.glodblock.github.nei.NEIUtils; +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + +public class AvaritiaRecipeExtractor implements IRecipeExtractor { + + public AvaritiaRecipeExtractor() {} + + @Override + public List> getInputIngredients(List rawInputs, IRecipeHandler recipe, int index) { + return getInputIngredients(rawInputs); + } + + @Override + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { + return getOutputIngredients(rawOutputs); + } + + @Override + public List> getInputIngredients(List rawInputs) { + return NEIUtils.compress(ExtractorUtil.packItemStack(rawInputs)); + } + + @Override + public List> getOutputIngredients(List rawOutputs) { + return ExtractorUtil.packItemStack(rawOutputs); + } +} diff --git a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java index 8e49fe3c..d590f432 100644 --- a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java +++ b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java @@ -21,6 +21,7 @@ import appeng.core.AELog; import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.BlockPos; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -97,11 +98,11 @@ public class CPacketCraftRequest implements IMessage { new BlockPos(te), Objects.requireNonNull(context.getSide()), GuiType.FLUID_CRAFTING_CONFIRM); - } else { + } else if (target instanceof IWirelessTerminal) { InventoryHandler.openGui( player, player.worldObj, - new BlockPos(player.inventory.currentItem, 0, 0), + new BlockPos(((IWirelessTerminal) target).getInventorySlot(), 0, 0), Objects.requireNonNull(context.getSide()), GuiType.FLUID_CRAFTING_CONFIRM_ITEM); } diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java index 1e20c96f..0b7c5e60 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java @@ -116,6 +116,9 @@ public class CPacketFluidPatternTermBtns implements IMessage { break; } break; + case "PatternTerminal.AutoFillerPattern": + cpt.getPatternTerminal().setAutoFillPattern(Value.equals("1")); + break; } cpt.getPatternTerminal().saveSettings(); } else if (Name.equals("Terminal.Cpu") && c instanceof ContainerFluidCraftConfirm) { diff --git a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java index 07855a0d..6c38afe8 100644 --- a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java +++ b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java @@ -22,6 +22,7 @@ import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; @@ -94,6 +95,7 @@ public class CPacketInventoryAction implements IMessage { final EntityPlayerMP sender = ctx.getServerHandler().playerEntity; if (sender.openContainer instanceof AEBaseContainer) { final AEBaseContainer baseContainer = (AEBaseContainer) sender.openContainer; + Object target = baseContainer.getTarget(); if (message.action == InventoryAction.AUTO_CRAFT) { final ContainerOpenContext context = baseContainer.getOpenContext(); if (context != null) { @@ -105,12 +107,12 @@ public class CPacketInventoryAction implements IMessage { new BlockPos(te), Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.FLUID_CRAFTING_AMOUNT); - } else { + } else if (target instanceof IWirelessTerminal) { InventoryHandler.openGui( sender, sender.worldObj, new BlockPos( - sender.inventory.currentItem, + ((IWirelessTerminal) target).getInventorySlot(), Util.GuiHelper.encodeType(0, Util.GuiHelper.GuiType.ITEM), 0), ForgeDirection.UNKNOWN, @@ -136,12 +138,12 @@ public class CPacketInventoryAction implements IMessage { new BlockPos(te), Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.PATTERN_VALUE_SET); - } else { + } else if (target instanceof IWirelessTerminal) { InventoryHandler.openGui( sender, sender.worldObj, new BlockPos( - sender.inventory.currentItem, + ((IWirelessTerminal) target).getInventorySlot(), Util.GuiHelper.encodeType(0, Util.GuiHelper.GuiType.ITEM), 0), ForgeDirection.UNKNOWN, diff --git a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java index d5e6fee7..9f746f25 100644 --- a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java +++ b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java @@ -18,6 +18,7 @@ import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.inventory.gui.PartOrItemGuiFactory; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; @@ -85,11 +86,11 @@ public class CPacketPatternValueSet implements IMessage { 0), Objects.requireNonNull(context.getSide()), message.originGui); - } else { + } else if (target instanceof IWirelessTerminal) { InventoryHandler.openGui( player, player.worldObj, - new BlockPos(player.inventory.currentItem, 0, 0), + new BlockPos(((IWirelessTerminal) target).getInventorySlot(), 0, 0), Objects.requireNonNull(context.getSide()), message.originGui); } diff --git a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java index 2ca828d8..42c1ab5d 100644 --- a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java +++ b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java @@ -14,6 +14,7 @@ import appeng.container.ContainerOpenContext; import com.glodblock.github.common.item.ItemWirelessUltraTerminal; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IWirelessTerminal; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; @@ -84,12 +85,12 @@ public class CPacketSwitchGuis implements IMessage { new BlockPos(te), Objects.requireNonNull(context.getSide()), message.guiType); - } else { + } else if (((AEBaseContainer) cont).getTarget() instanceof IWirelessTerminal) { InventoryHandler.openGui( player, player.worldObj, new BlockPos( - player.inventory.currentItem, + ((IWirelessTerminal) ((AEBaseContainer) cont).getTarget()).getInventorySlot(), Util.GuiHelper.encodeType(0, Util.GuiHelper.GuiType.ITEM), 0), Objects.requireNonNull(context.getSide()), diff --git a/src/main/java/com/glodblock/github/proxy/ClientProxy.java b/src/main/java/com/glodblock/github/proxy/ClientProxy.java index 06463694..282d5a97 100644 --- a/src/main/java/com/glodblock/github/proxy/ClientProxy.java +++ b/src/main/java/com/glodblock/github/proxy/ClientProxy.java @@ -1,5 +1,6 @@ package com.glodblock.github.proxy; +import com.glodblock.github.loader.KeybindLoader; import com.glodblock.github.loader.ListenerLoader; import com.glodblock.github.loader.RenderLoader; import com.glodblock.github.nei.recipes.DefaultExtractorLoader; @@ -21,6 +22,7 @@ public class ClientProxy extends CommonProxy { super.init(event); (new ListenerLoader()).run(); (new RenderLoader()).run(); + (new KeybindLoader()).run(); } @Override diff --git a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java index ea96a0d0..e915f7fb 100644 --- a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java +++ b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java @@ -25,6 +25,7 @@ public final class ModAndClassUtil { public static boolean COFH = false; public static boolean GTPP = false; public static boolean WAILA = false; + public static boolean AVARITIA = false; public static boolean isV2; public static boolean isDoubleButton; public static boolean isSaveText; @@ -130,5 +131,6 @@ public final class ModAndClassUtil { if (Loader.isModLoaded("CoFHCore")) COFH = true; if (Loader.isModLoaded("miscutils")) GTPP = true; if (Loader.isModLoaded("Waila")) WAILA = true; + if (Loader.isModLoaded("Avaritia")) AVARITIA = true; } } diff --git a/src/main/java/com/glodblock/github/util/Util.java b/src/main/java/com/glodblock/github/util/Util.java index fce01b41..c668e509 100644 --- a/src/main/java/com/glodblock/github/util/Util.java +++ b/src/main/java/com/glodblock/github/util/Util.java @@ -39,10 +39,12 @@ import appeng.tile.networking.TileCableBus; import appeng.tile.networking.TileWireless; import appeng.util.Platform; import appeng.util.item.AEFluidStack; +import baubles.api.BaublesApi; import com.glodblock.github.common.item.ItemBaseWirelessTerminal; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.common.item.ItemWirelessUltraTerminal; import com.glodblock.github.inventory.IAEFluidTank; import com.glodblock.github.inventory.item.IFluidPortableCell; @@ -54,18 +56,28 @@ public final class Util { public static int drainItemPower(AEBaseContainer c, InventoryPlayer ip, int slot, int ticks, double pm, IFluidPortableCell wt) { - final ItemStack currentItem = slot < 0 ? ip.getCurrentItem() : ip.getStackInSlot(slot); - if (wt != null) { - if (currentItem != wt.getItemStack()) { - if (currentItem != null) { - if (Platform.isSameItem(wt.getItemStack(), currentItem)) { - ip.setInventorySlotContents(ip.currentItem, wt.getItemStack()); + if (slot != -1) { + final ItemStack currentItem = getWirelessTerminal(ip.player, slot); + if (wt != null) { + if (currentItem != wt.getItemStack()) { + if (currentItem != null) { + if (Platform.isSameItem(wt.getItemStack(), currentItem)) { + if (GuiHelper.decodeInvType(slot).getLeft() == GuiHelper.InvType.PLAYER_INV) { + ip.setInventorySlotContents(slot, wt.getItemStack()); + } else { + BaublesApi.getBaubles(ip.player).setInventorySlotContents( + GuiHelper.decodeInvType(slot).getRight(), + wt.getItemStack()); + } + } else { + c.setValidContainer(false); + } } else { c.setValidContainer(false); } - } else { - c.setValidContainer(false); } + } else { + c.setValidContainer(false); } } else { c.setValidContainer(false); @@ -132,6 +144,40 @@ public final class Util { return new NullInventory<>(); } + public static ItemStack getWirelessTerminal(EntityPlayer player, int x) { + ImmutablePair result = GuiHelper.decodeInvType(x); + if (result.getLeft() == GuiHelper.InvType.PLAYER_INV) { + return player.inventory.getStackInSlot(result.getRight()); + } else { + return BaublesApi.getBaubles(player).getStackInSlot(result.getRight()); + } + } + + public static ImmutablePair getUltraWirelessTerm(EntityPlayer player) { + int invSize = player.inventory.getSizeInventory(); + + if (invSize <= 0) { + return null; + } + for (int i = 0; i < invSize; ++i) { + ItemStack is = player.inventory.getStackInSlot(i); + if (is != null && is.getItem() instanceof ItemWirelessUltraTerminal) { + return new ImmutablePair<>(i, is); + } + } + IInventory handler = BaublesApi.getBaubles(player); + if (handler != null) { + invSize = handler.getSizeInventory(); + for (int i = 0; i < invSize; ++i) { + ItemStack is = handler.getStackInSlot(i); + if (is != null && is.getItem() instanceof ItemWirelessUltraTerminal) { + return new ImmutablePair<>(GuiHelper.encodeType(i, GuiHelper.InvType.PLAYER_BAUBLES), is); + } + } + } + return null; + } + public static int findItemInPlayerInvSlot(EntityPlayer player, ItemStack itemStack) { for (int i = 0; i < player.inventory.mainInventory.length; i++) { if (player.inventory.mainInventory[i] != null && player.inventory.mainInventory[i] == itemStack) return i; @@ -323,6 +369,11 @@ public final class Util { ITEM } + public enum InvType { + PLAYER_INV, + PLAYER_BAUBLES + } + private static final int value = 1 << 30; public static int encodeType(int y, GuiType type) { @@ -332,6 +383,13 @@ public final class Util { return value | (type.ordinal() << 29) | y; } + public static int encodeType(int x, InvType type) { + if (Math.abs(x) > (1 << 28)) { + throw new IllegalArgumentException("out of range"); + } + return value | (type.ordinal() << 29) | x; + } + public static ImmutablePair decodeType(int y) { if (Math.abs(y) > (1 << 28)) { return new ImmutablePair<>(GuiType.values()[y >> 29 & 1], y - (3 << 29 & y)); @@ -339,6 +397,14 @@ public final class Util { return new ImmutablePair<>(GuiType.TILE, y); } } + + public static ImmutablePair decodeInvType(int x) { + if (Math.abs(x) > (1 << 28)) { + return new ImmutablePair<>(InvType.values()[x >> 29 & 1], x - (3 << 29 & x)); + } else { + return new ImmutablePair<>(InvType.PLAYER_INV, x); + } + } } public static int clamp(int value, int min, int max) { diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index 9b98229c..f451143a 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -131,6 +131,10 @@ ae2fc.tooltip.submit=Submit ae2fc.tooltip.enable=Enabled ae2fc.tooltip.disable=Disabled ae2fc.tooltip.edit=Edit +ae2fc.tooltip.fill_pattern=Allow auto fill blank pattern +ae2fc.tooltip.not_fill_pattern=Allow auto fill blank pattern +ae2fc.tooltip.fill_pattern.hint=Enabled +ae2fc.tooltip.not_fill_pattern.hint=Disabled ae2fc.gui.part_fluid_pattern_terminal=Fluid Pattern Terminal ae2fc.gui.part_fluid_pattern_terminal_ex=Fluid Processing Pattern Terminal @@ -157,4 +161,6 @@ ae2fc.gui.fluid_auto_filler=ME Fluid Auto Filler error.unknown=Unknown +key.OpenTerminal=Open Wireless Universal Terminal + itemGroup.ae2fc=Fluid Craft For AE2 diff --git a/src/main/resources/assets/ae2fc/lang/zh_CN.lang b/src/main/resources/assets/ae2fc/lang/zh_CN.lang index b888a307..8940cd95 100644 --- a/src/main/resources/assets/ae2fc/lang/zh_CN.lang +++ b/src/main/resources/assets/ae2fc/lang/zh_CN.lang @@ -64,7 +64,8 @@ tile.level_maintainer.name=ME库存维持器 tile.fluid_buffer.name=ME流体缓存器 tile.walrus.name=海象 tile.fluid_auto_filler.name=ME流体自动装填器 -tile.certus_quartz_tank.name=赛特斯石英水槽 +tile.certus_quartz_tank.name=赛特斯石英水槽 - %s +tile.certus_quartz_tank_empty.name=赛特斯石英水槽 ae2fc.waila.speed=速度 ae2fc.waila.enable=启用 @@ -130,6 +131,10 @@ ae2fc.tooltip.submit=提交 ae2fc.tooltip.enable=启用 ae2fc.tooltip.disable=禁用 ae2fc.tooltip.edit=编辑 +ae2fc.tooltip.fill_pattern=允许自动填充空白样板 +ae2fc.tooltip.not_fill_pattern=允许自动填充空白样板 +ae2fc.tooltip.fill_pattern.hint=启用 +ae2fc.tooltip.not_fill_pattern.hint=禁用 ae2fc.gui.part_fluid_pattern_terminal=ME流体样板终端 ae2fc.gui.part_fluid_pattern_terminal_ex=ME增广流体样板终端 @@ -156,7 +161,8 @@ ae2fc.gui.fluid_auto_filler=ME流体自动装填器 error.unknown=未知流体 +key.OpenTerminal=打开无线通用终端 + itemGroup.ae2fc=AE2流体合成套件重置 - diff --git a/src/main/resources/assets/ae2fc/textures/gui/states1.png b/src/main/resources/assets/ae2fc/textures/gui/states1.png index e300fa72..6391bac4 100644 Binary files a/src/main/resources/assets/ae2fc/textures/gui/states1.png and b/src/main/resources/assets/ae2fc/textures/gui/states1.png differ