From b690089c686a603ea424b3a2d8f710f3fa195276 Mon Sep 17 00:00:00 2001 From: Maya <10861407+serenibyss@users.noreply.github.com> Date: Mon, 13 Jan 2025 00:39:37 -0600 Subject: [PATCH 1/3] update --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 349520b5a..2138384c4 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,7 +35,7 @@ */ dependencies { api('com.github.GTNewHorizons:NotEnoughItems:2.7.18-GTNH:dev') - api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-518-GTNH:dev') + api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-521-GTNH:dev') api('curse.maven:cofh-core-69162:2388751') api('com.github.GTNewHorizons:waila:1.8.2:dev') api("com.github.GTNewHorizons:GTNHLib:0.6.1:dev") @@ -49,7 +49,7 @@ dependencies { compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.35:dev') { transitive = false } compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.1:dev') compileOnly('com.github.GTNewHorizons:EnderIO:2.9.2:dev') - compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.67:dev') { + compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.69:dev') { exclude group: 'com.github.GTNewHorizons', module: 'AE2FluidCraft-Rework' exclude group: 'com.github.GTNewHorizons', module: 'Applied-Energistics-2-Unofficial' } From 49402e34744f8607ceed23cce4fa5628dd6c042a Mon Sep 17 00:00:00 2001 From: Michael Doyle Date: Mon, 13 Jan 2025 01:43:56 -0500 Subject: [PATCH 2/3] [Feature] Shift to pause terminal view movement (#256) Co-authored-by: Caedis Co-authored-by: Martin Robertz Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com> --- .../github/client/gui/base/FCGuiMonitor.java | 12 +++ .../github/client/me/EssentiaRepo.java | 102 ++++++++++-------- .../glodblock/github/client/me/FluidRepo.java | 96 ++++++++++++----- 3 files changed, 144 insertions(+), 66 deletions(-) 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 30e93fb6f..b1fa869bd 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 @@ -587,6 +587,18 @@ public void onGuiClosed() { memoryText = this.searchField.getText(); } + @Override + public void handleKeyboardInput() { + super.handleKeyboardInput(); + + // Pause the terminal when holding shift + this.repo.setPaused(hasShiftDown()); + } + + private boolean hasShiftDown() { + return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); + } + public void bindTextureBack(final String file) { final ResourceLocation loc = new ResourceLocation(FluidCraft.MODID, "textures/" + file); this.mc.getTextureManager().bindTexture(loc); diff --git a/src/main/java/com/glodblock/github/client/me/EssentiaRepo.java b/src/main/java/com/glodblock/github/client/me/EssentiaRepo.java index d0dce0312..dc750422b 100644 --- a/src/main/java/com/glodblock/github/client/me/EssentiaRepo.java +++ b/src/main/java/com/glodblock/github/client/me/EssentiaRepo.java @@ -1,11 +1,11 @@ package com.glodblock.github.client.me; -import java.util.Iterator; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; import java.util.regex.Pattern; -import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.crossmod.thaumcraft.AspectUtil; @@ -15,7 +15,6 @@ import appeng.api.config.Settings; import appeng.api.config.SortOrder; import appeng.api.config.ViewItems; -import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.widgets.IScrollSource; import appeng.client.gui.widgets.ISortSource; @@ -30,12 +29,61 @@ public EssentiaRepo(final IScrollSource src, final ISortSource sortSrc) { @SuppressWarnings("deprecation") @Override public void updateView() { - this.view.clear(); - this.dsp.clear(); + if (this.paused) { + // Update existing view with new data + for (int i = 0; i < this.view.size(); i++) { + IAEItemStack entry = this.view.get(i); + IAEItemStack serverEntry = this.list.findPrecise(entry); + if (serverEntry == null) { + entry.setStackSize(0); + } else { + this.view.set(i, serverEntry); + } + } - this.view.ensureCapacity(this.list.size()); + // Append newly added item stacks to the end of the view + Set viewSet = new HashSet<>(this.view); + ArrayList entriesToAdd = new ArrayList<>(); + for (IAEItemStack serverEntry : this.list) { + if (!viewSet.contains(serverEntry)) { + entriesToAdd.add(serverEntry); + } + } + addEntriesToView(entriesToAdd); + } else { + this.view.clear(); + this.view.ensureCapacity(this.list.size()); + addEntriesToView(this.list); + } + + // Do not sort if paused + if (!this.paused) { + final Enum SortBy = this.sortSrc.getSortBy(); + final Enum SortDir = this.sortSrc.getSortDir(); + + FluidSorters.setDirection((appeng.api.config.SortDir) SortDir); + FluidSorters.init(); + + if (SortBy == SortOrder.MOD) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_MOD); + } else if (SortBy == SortOrder.AMOUNT) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_SIZE); + } else if (SortBy == SortOrder.INVTWEAKS) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_INV_TWEAKS); + } else { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_NAME); + } + } + + // Update the display + this.dsp.clear(); this.dsp.ensureCapacity(this.list.size()); + for (final IAEItemStack is : this.view) { + this.dsp.add(is.getItemStack()); + } + } + private void addEntriesToView(Iterable entries) { final Enum viewMode = this.sortSrc.getSortDisplay(); final Enum searchMode = AEConfig.instance.settings.getSetting(Settings.SEARCH_MODE); if (searchMode == SearchBoxMode.NEI_AUTOSEARCH || searchMode == SearchBoxMode.NEI_MANUAL_SEARCH) { @@ -59,7 +107,11 @@ public void updateView() { } } - for (IAEItemStack is : this.list) { + for (IAEItemStack is : entries) { + if (!AspectUtil.isEssentiaGas(ItemFluidDrop.getAeFluidStack(is))) { + continue; + } + if (this.myPartitionList != null) { if (!this.myPartitionList.isListed(is)) { continue; @@ -88,40 +140,6 @@ public void updateView() { this.view.add(is); } } - - final Enum SortBy = this.sortSrc.getSortBy(); - final Enum SortDir = this.sortSrc.getSortDir(); - - FluidSorters.setDirection((appeng.api.config.SortDir) SortDir); - FluidSorters.init(); - - if (SortBy == SortOrder.MOD) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_MOD); - } else if (SortBy == SortOrder.AMOUNT) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_SIZE); - } else if (SortBy == SortOrder.INVTWEAKS) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_INV_TWEAKS); - } else { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_NAME); - } - - for (final IAEItemStack is : this.view) { - this.dsp.add(is.getItemStack()); - } - Iterator it1 = this.view.iterator(); - while (it1.hasNext()) { - IAEFluidStack fluid = ItemFluidDrop.getAeFluidStack(it1.next()); - if (!AspectUtil.isEssentiaGas(fluid)) { - it1.remove(); - } - } - Iterator it2 = this.dsp.iterator(); - while (it2.hasNext()) { - FluidStack fluid = ItemFluidDrop.getFluidStack(it2.next()); - if (!AspectUtil.isEssentiaGas(fluid)) { - it2.remove(); - } - } } } diff --git a/src/main/java/com/glodblock/github/client/me/FluidRepo.java b/src/main/java/com/glodblock/github/client/me/FluidRepo.java index a58466c0d..4dc6c7490 100644 --- a/src/main/java/com/glodblock/github/client/me/FluidRepo.java +++ b/src/main/java/com/glodblock/github/client/me/FluidRepo.java @@ -13,6 +13,8 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; import java.util.regex.Pattern; import javax.annotation.Nonnull; @@ -52,6 +54,7 @@ public class FluidRepo implements IDisplayRepo { protected String searchString = ""; protected IPartitionList myPartitionList; + protected boolean paused = false; private String NEIWord = null; private boolean hasPower; @@ -100,12 +103,60 @@ public void setViewCell(final ItemStack[] list) { @SuppressWarnings("deprecation") @Override public void updateView() { - this.view.clear(); - this.dsp.clear(); + if (this.paused) { + // Update existing view with new data + for (int i = 0; i < this.view.size(); i++) { + IAEItemStack entry = this.view.get(i); + IAEItemStack serverEntry = this.list.findPrecise(entry); + if (serverEntry == null) { + entry.setStackSize(0); + } else { + this.view.set(i, serverEntry); + } + } + + // Append newly added item stacks to the end of the view + Set viewSet = new HashSet<>(this.view); + ArrayList entriesToAdd = new ArrayList<>(); + for (IAEItemStack serverEntry : this.list) { + if (!viewSet.contains(serverEntry)) { + entriesToAdd.add(serverEntry); + } + } + addEntriesToView(entriesToAdd); + } else { + this.view.clear(); + this.view.ensureCapacity(this.list.size()); + addEntriesToView(this.list); + } + + // Do not sort if paused + if (!paused) { + final Enum SortBy = this.sortSrc.getSortBy(); + final Enum SortDir = this.sortSrc.getSortDir(); + + FluidSorters.setDirection((appeng.api.config.SortDir) SortDir); + FluidSorters.init(); - this.view.ensureCapacity(this.list.size()); + if (SortBy == SortOrder.MOD) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_MOD); + } else if (SortBy == SortOrder.AMOUNT) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_SIZE); + } else if (SortBy == SortOrder.INVTWEAKS) { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_INV_TWEAKS); + } else { + this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_NAME); + } + } + + this.dsp.clear(); this.dsp.ensureCapacity(this.list.size()); + for (final IAEItemStack is : this.view) { + this.dsp.add(is.getItemStack()); + } + } + private void addEntriesToView(Iterable entries) { final Enum viewMode = this.sortSrc.getSortDisplay(); final Enum searchMode = AEConfig.instance.settings.getSetting(Settings.SEARCH_MODE); if (searchMode == SearchBoxMode.NEI_AUTOSEARCH || searchMode == SearchBoxMode.NEI_MANUAL_SEARCH) { @@ -131,7 +182,7 @@ public void updateView() { } } - for (IAEItemStack is : this.list) { + for (IAEItemStack is : entries) { if (this.myPartitionList != null) { if (!this.myPartitionList.isListed(is)) { continue; @@ -168,26 +219,6 @@ public void updateView() { } } } - - final Enum SortBy = this.sortSrc.getSortBy(); - final Enum SortDir = this.sortSrc.getSortDir(); - - FluidSorters.setDirection((appeng.api.config.SortDir) SortDir); - FluidSorters.init(); - - if (SortBy == SortOrder.MOD) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_MOD); - } else if (SortBy == SortOrder.AMOUNT) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_SIZE); - } else if (SortBy == SortOrder.INVTWEAKS) { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_INV_TWEAKS); - } else { - this.view.sort(FluidSorters.CONFIG_BASED_SORT_BY_NAME); - } - - for (final IAEItemStack is : this.view) { - this.dsp.add(is.getItemStack()); - } } protected void updateNEI(final String filter) { @@ -245,4 +276,21 @@ public String getSearchString() { public void setSearchString(@Nonnull final String searchString) { this.searchString = searchString; } + + @Override + public boolean isPaused() { + return this.paused; + } + + @Override + public void setPaused(boolean paused) { + if (this.paused != paused) { + this.paused = paused; + + // Update view when un-paused + if (!paused) { + updateView(); + } + } + } } From 1d5abe027cb73cad0822df2ed11dc4bf07cc6f87 Mon Sep 17 00:00:00 2001 From: hiroscho Date: Mon, 13 Jan 2025 07:47:55 +0100 Subject: [PATCH 3/3] Fix/same network multiple extract only storage buses (#244) Co-authored-by: Martin Robertz Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com> --- .../com/glodblock/github/common/parts/PartFluidStorageBus.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java index 01a0e84a3..09f6c43d8 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java @@ -64,6 +64,7 @@ import appeng.me.GridAccessException; import appeng.me.cache.GridStorageCache; import appeng.me.storage.MEInventoryHandler; +import appeng.me.storage.StorageBusInventoryHandler; import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.inventory.InvOperation; @@ -374,7 +375,7 @@ public MEInventoryHandler getInternalHandler() { this.monitor = h; } if (inv != null) { - this.handler = new MEInventoryHandler(inv, StorageChannel.FLUIDS); + this.handler = new StorageBusInventoryHandler(inv, StorageChannel.FLUIDS); AccessRestriction currentAccess = (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); this.handler.setBaseAccess(currentAccess); this.handler.setWhitelist(