Skip to content

Commit

Permalink
Update some features (#67)
Browse files Browse the repository at this point in the history
* add priority button to fluid storage bus

* nei drag

* Fix the bandwidth occupation problem of opening the fluid terminal server
Fix fluid terminal mouse wheel doesn't work
Add ore dict export bus export item preview
Fix ore dict export sometime crash

* Fix the bandwidth occupation problem of opening the fluid terminal server
Fix fluid terminal mouse wheel doesn't work
Add ore dict export bus export item preview
Fix ore dict export sometime crash

* Update new solutions
Update the bandwidth occupation problem of opening the fluid terminal server
Update ore dict export bus export item preview
Add fluid update interval in terminal

* update

* update

* update

* update

* update

* update

* add base part speed config

* update

Co-authored-by: GlodBlock <[email protected]>
Co-authored-by: zy <[email protected]>
Co-authored-by: Martin Robertz <[email protected]>
  • Loading branch information
4 people authored Sep 1, 2022
1 parent db6b2b8 commit 751d06a
Show file tree
Hide file tree
Showing 24 changed files with 932 additions and 554 deletions.
15 changes: 9 additions & 6 deletions src/main/scala/extracells/Extracells.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package extracells

import java.io.File

import appeng.api.AEApi
import cpw.mods.fml.client.registry.RenderingRegistry
import cpw.mods.fml.common.Mod.EventHandler
Expand All @@ -13,7 +11,7 @@ import extracells.network.{ChannelHandler, GuiHandler}
import extracells.proxy.CommonProxy
import extracells.registries.ItemEnum
import extracells.render.RenderHandler
import extracells.util.{ExtraCellsEventHandler, FluidCellHandler, NameHandler}
import extracells.util.{AdvancedCellHandler, ExtraCellsEventHandler, FluidCellHandler, NameHandler}
import extracells.util.AdvancedCellHandler
import extracells.util.VoidCellHandler
import extracells.wireless.AEWirelessTermHandler
Expand All @@ -22,6 +20,8 @@ import net.minecraft.item.ItemStack
import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.common.config.Configuration

import java.io.File

@Mod(modid = "extracells", name = "Extra Cells", version = "GRADLETOKEN_VERSION", modLanguage = "scala", dependencies = "after:LogisticsPipes|Main;after:Waila;required-after:appliedenergistics2")
object Extracells {

Expand All @@ -30,14 +30,14 @@ object Extracells {
var proxy: CommonProxy = null

var VERSION = ""

var basePartSpeed = 125
var bcBurnTimeMultiplicator = 4

var terminalUpdateInterval = 20
var configFolder: File = null
var shortenedBuckets = true
var dynamicTypes = true
val integration = new Integration

val ModTab = new CreativeTabs("Extra_Cells") {
override def getIconItemStack = new ItemStack(ItemEnum.FLUIDSTORAGE.getItem)
override def getTabIconItem = ItemEnum.FLUIDSTORAGE.getItem
Expand Down Expand Up @@ -80,6 +80,9 @@ object Extracells {
config.load()
shortenedBuckets = config.get("Tooltips", "shortenedBuckets", true, "Shall the guis shorten large mB values?").getBoolean(true)
dynamicTypes = config.get("Storage Cells", "dynamicTypes", true, "Should the mount of bytes needed for a new type depend on the cellsize?").getBoolean(true)
terminalUpdateInterval = config.get("Terminal", "Interval", 20, "How often is the fluid in the terminal updated?").getInt(20)
basePartSpeed = config.get("BaseFluidPart", "Interval", 125, "Base fluid part import export speed ").getInt(125)

integration.loadConfig(config)

config.save()
Expand Down
66 changes: 54 additions & 12 deletions src/main/scala/extracells/container/ContainerFluidStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import appeng.api.storage.IMEMonitorHandlerReceiver;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IItemList;
import extracells.api.ECApi;
import extracells.api.IPortableFluidStorageCell;
import extracells.api.IWirelessFluidTermHandler;
import extracells.container.slot.SlotPlayerInventory;
Expand All @@ -31,20 +32,21 @@
import org.apache.commons.lang3.tuple.MutablePair;

public class ContainerFluidStorage extends Container implements
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer,
IInventoryUpdateReceiver, IStorageContainer {
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer,
IInventoryUpdateReceiver, IStorageContainer {

private GuiFluidStorage guiFluidStorage;
private IItemList<IAEFluidStack> fluidStackList;
private Fluid selectedFluid;
private IAEFluidStack selectedFluidStack;
private EntityPlayer player;
private IMEMonitor<IAEFluidStack> monitor;
private final EntityPlayer player;
private final IMEMonitor<IAEFluidStack> monitor;
private HandlerItemStorageFluid storageFluid;
private IWirelessFluidTermHandler handler = null;
private IPortableFluidStorageCell storageCell = null;
public boolean hasWirelessTermHandler = false;
private ECPrivateInventory inventory = new ECPrivateInventory("extracells.item.fluid.storage", 2, 64, this) {

private final ECPrivateInventory inventory = new ECPrivateInventory("extracells.item.fluid.storage", 2, 64, this) {

@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
Expand Down Expand Up @@ -260,21 +262,37 @@ public boolean fillSecondSlot(ItemStack itemStack) {
return false;
}
this.storageCell.usePower(this.player, 20.0D,
this.player.getCurrentEquippedItem());
this.player.getCurrentEquippedItem());
}
this.inventory.incrStackSize(1, itemStack.stackSize);
return true;
}
}

public void forceFluidUpdate() {
if (this.monitor != null)
if (this.monitor != null) {
new PacketFluidStorage(this.player, this.monitor.getStorageList())
.sendPacketToPlayer(this.player);
new PacketFluidStorage(this.player, this.hasWirelessTermHandler)
.sendPacketToPlayer(this.player);
new PacketFluidStorage(this.player, this.hasWirelessTermHandler)
.sendPacketToPlayer(this.player);
}
}

public void forceFluidUpdate(String searchText) {
if (this.monitor != null) {
IItemList<IAEFluidStack> fluidStackList = AEApi.instance()
.storage().createFluidList();
for (IAEFluidStack fluidStack : this.monitor.getStorageList()) {
if (fluidStack.getFluid().getLocalizedName(fluidStack.getFluidStack()).toLowerCase().contains(searchText.toLowerCase()) && ECApi.instance().canFluidSeeInTerminal(
fluidStack.getFluid())) {
fluidStackList.add(fluidStack);
}
}
new PacketFluidStorage(this.player, fluidStackList)
.sendPacketToPlayer(this.player);
new PacketFluidStorage(this.player, this.hasWirelessTermHandler)
.sendPacketToPlayer(this.player);
}
}
public IItemList<IAEFluidStack> getFluidStackList() {
return this.fluidStackList;
}
Expand Down Expand Up @@ -321,8 +339,10 @@ public void onListUpdate() {}

@Override
public void postChange(IBaseMonitor<IAEFluidStack> monitor, Iterable<IAEFluidStack> change, BaseActionSource actionSource) {
this.fluidStackList = ((IMEMonitor<IAEFluidStack>) monitor).getStorageList();
new PacketFluidStorage(this.player, this.fluidStackList).sendPacketToPlayer(this.player);
this.fluidStackList = ((IMEMonitor<IAEFluidStack>) monitor)
.getStorageList();
new PacketFluidStorage(this.player, change, this.fluidStackList)
.sendPacketToPlayer(this.player);
new PacketFluidStorage(this.player, this.hasWirelessTermHandler).sendPacketToPlayer(this.player);
}

Expand Down Expand Up @@ -400,4 +420,26 @@ public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList) {
if (this.guiFluidStorage != null)
this.guiFluidStorage.updateFluids();
}


public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList, boolean incremental) {
if (incremental) {
IItemList<IAEFluidStack> temp = this.getFluidStackList();
for (IAEFluidStack f1 : _fluidStackList) {
boolean change = false;
for (IAEFluidStack f2 : temp) {
if (f1.getFluid().getID() == f2.getFluid().getID()) {
f2.setStackSize(f2.getStackSize() + f1.getStackSize());
change = true;
}
}
if (!change) temp.add(f1);
}
this.fluidStackList = temp;
} else {
this.fluidStackList = _fluidStackList;
}
if (this.guiFluidStorage != null)
this.guiFluidStorage.updateFluids();
}
}
50 changes: 43 additions & 7 deletions src/main/scala/extracells/container/ContainerFluidTerminal.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import appeng.api.storage.IMEMonitorHandlerReceiver;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IItemList;
import extracells.api.ECApi;
import extracells.container.slot.SlotRespective;
import extracells.gui.GuiFluidTerminal;
import extracells.gui.widget.fluid.IFluidSelectorContainer;
Expand All @@ -26,14 +27,14 @@
import net.minecraftforge.fluids.Fluid;

public class ContainerFluidTerminal extends Container implements
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer {
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer {

private PartFluidTerminal terminal;
private final PartFluidTerminal terminal;
private IMEMonitor<IAEFluidStack> monitor;
private IItemList<IAEFluidStack> fluidStackList = AEApi.instance()
.storage().createFluidList();
.storage().createFluidList();
private Fluid selectedFluid;
private EntityPlayer player;
private final EntityPlayer player;
private GuiFluidTerminal guiFluidTerminal;

public ContainerFluidTerminal(PartFluidTerminal _terminal,
Expand Down Expand Up @@ -78,10 +79,24 @@ public boolean canInteractWith(EntityPlayer entityplayer) {
return terminal.isValid();
}

public void forceFluidUpdate(String searchText) {
if (this.monitor != null) {
IItemList<IAEFluidStack> fluidStackList = AEApi.instance()
.storage().createFluidList();
for (IAEFluidStack fluidStack : this.monitor.getStorageList()) {
if (fluidStack.getFluid().getLocalizedName(fluidStack.getFluidStack()).toLowerCase().contains(searchText.toLowerCase()) && ECApi.instance().canFluidSeeInTerminal(
fluidStack.getFluid())) {
fluidStackList.add(fluidStack);
}
}
new PacketFluidTerminal(this.player, fluidStackList)
.sendPacketToPlayer(this.player);
}
}
public void forceFluidUpdate() {
if (this.monitor != null) {
new PacketFluidTerminal(this.player, this.monitor.getStorageList())
.sendPacketToPlayer(this.player);
.sendPacketToPlayer(this.player);
}
}

Expand Down Expand Up @@ -125,8 +140,8 @@ public void onListUpdate() {
public void postChange(IBaseMonitor<IAEFluidStack> monitor,
Iterable<IAEFluidStack> change, BaseActionSource actionSource) {
this.fluidStackList = ((IMEMonitor<IAEFluidStack>) monitor)
.getStorageList();
new PacketFluidTerminal(this.player, this.fluidStackList)
.getStorageList();
new PacketFluidTerminal(this.player, change, this.fluidStackList)
.sendPacketToPlayer(this.player);
}

Expand Down Expand Up @@ -215,4 +230,25 @@ public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList) {
if (this.guiFluidTerminal != null)
this.guiFluidTerminal.updateFluids();
}

public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList, boolean incremental) {
if (incremental) {
IItemList<IAEFluidStack> temp = this.getFluidStackList();
for (IAEFluidStack f1 : _fluidStackList) {
boolean change = false;
for (IAEFluidStack f2 : temp) {
if (f1.getFluid().getID() == f2.getFluid().getID()) {
f2.setStackSize(f2.getStackSize() + f1.getStackSize());
change = true;
}
}
if (!change) temp.add(f1);
}
this.fluidStackList = temp;
} else {
this.fluidStackList = _fluidStackList;
}
if (this.guiFluidTerminal != null)
this.guiFluidTerminal.updateFluids();
}
}
37 changes: 29 additions & 8 deletions src/main/scala/extracells/container/ContainerGasStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,22 @@
import org.apache.commons.lang3.tuple.MutablePair;

public class ContainerGasStorage extends Container implements
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer,
IInventoryUpdateReceiver, IStorageContainer {
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer,
IInventoryUpdateReceiver, IStorageContainer {

private boolean isMekanismEnabled = Integration.Mods.MEKANISMGAS.isEnabled();
private final boolean isMekanismEnabled = Integration.Mods.MEKANISMGAS.isEnabled();
private GuiGasStorage guiGasStorage;
private IItemList<IAEFluidStack> fluidStackList;
private Fluid selectedFluid;
private IAEFluidStack selectedFluidStack;
private EntityPlayer player;
private IMEMonitor<IAEFluidStack> monitor;
private final EntityPlayer player;
private final IMEMonitor<IAEFluidStack> monitor;
private HandlerItemStorageFluid storageFluid;
private IWirelessGasTermHandler handler = null;
private IPortableGasStorageCell storageCell = null;
public boolean hasWirelessTermHandler = false;
private ECPrivateInventory inventory = new ECPrivateInventory(
"extracells.item.fluid.storage", 2, 64, this) {
private final ECPrivateInventory inventory = new ECPrivateInventory(
"extracells.item.fluid.storage", 2, 64, this) {

@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
Expand Down Expand Up @@ -340,7 +340,7 @@ public void postChange(IBaseMonitor<IAEFluidStack> monitor,
Iterable<IAEFluidStack> change, BaseActionSource actionSource) {
this.fluidStackList = ((IMEMonitor<IAEFluidStack>) monitor)
.getStorageList();
new PacketFluidStorage(this.player, this.fluidStackList)
new PacketFluidStorage(this.player, change, this.fluidStackList)
.sendPacketToPlayer(this.player);
new PacketFluidStorage(this.player, this.hasWirelessTermHandler)
.sendPacketToPlayer(this.player);
Expand Down Expand Up @@ -420,4 +420,25 @@ public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList) {
if (this.guiGasStorage != null)
this.guiGasStorage.updateFluids();
}

public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList, boolean incremental) {
if (incremental) {
IItemList<IAEFluidStack> temp = this.getFluidStackList();
for (IAEFluidStack f1 : _fluidStackList) {
boolean change = false;
for (IAEFluidStack f2 : temp) {
if (f1.getFluid().getID() == f2.getFluid().getID()) {
f2.setStackSize(f2.getStackSize() + f1.getStackSize());
change = true;
}
}
if (!change) temp.add(f1);
}
this.fluidStackList = temp;
} else {
this.fluidStackList = _fluidStackList;
}
if (this.guiGasStorage != null)
this.guiGasStorage.updateFluids();
}
}
25 changes: 23 additions & 2 deletions src/main/scala/extracells/container/ContainerGasTerminal.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
public class ContainerGasTerminal extends Container implements
IMEMonitorHandlerReceiver<IAEFluidStack>, IFluidSelectorContainer {

private PartGasTerminal terminal;
private final PartGasTerminal terminal;
private IMEMonitor<IAEFluidStack> monitor;
private IItemList<IAEFluidStack> fluidStackList = AEApi.instance()
.storage().createFluidList();
private Fluid selectedFluid;
private EntityPlayer player;
private final EntityPlayer player;
private GuiGasTerminal guiGasTerminal;

public ContainerGasTerminal(PartGasTerminal _terminal, EntityPlayer _player) {
Expand Down Expand Up @@ -205,4 +205,25 @@ public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList) {
if (this.guiGasTerminal != null)
this.guiGasTerminal.updateFluids();
}

public void updateFluidList(IItemList<IAEFluidStack> _fluidStackList, boolean incremental) {
if (incremental) {
IItemList<IAEFluidStack> temp = this.getFluidStackList();
for (IAEFluidStack f1 : _fluidStackList) {
boolean change = false;
for (IAEFluidStack f2 : temp) {
if (f1.getFluid().getID() == f2.getFluid().getID()) {
f2.setStackSize(f2.getStackSize() + f1.getStackSize());
change = true;
}
}
if (!change) temp.add(f1);
}
this.fluidStackList = temp;
} else {
this.fluidStackList = _fluidStackList;
}
if (this.guiGasTerminal != null)
this.guiGasTerminal.updateFluids();
}
}
5 changes: 3 additions & 2 deletions src/main/scala/extracells/gui/GuiBusFluidStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -363,10 +363,11 @@ public boolean handleDragNDrop(GuiContainer gui, int mouseX, int mouseY, ItemSta
fluidSlot.mouseNEIClickedGas(draggedStack);
else
fluidSlot.mouseNEIClicked(draggedStack);
return true;
break;
}
}
return false;
draggedStack.stackSize = 0;
return true;
}

@Override
Expand Down
Loading

0 comments on commit 751d06a

Please sign in to comment.