Skip to content

Commit dd04788

Browse files
committed
- GasInventoryHandler dump fix.
1 parent b4a3b3f commit dd04788

File tree

5 files changed

+20
-126
lines changed

5 files changed

+20
-126
lines changed

src/main/java/github/kasuminova/mmce/client/renderer/ControllerModelRenderManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ public void checkControllerState() {
8080
alive.clear();
8181
}
8282

83+
/**
84+
* TODO: Prevents precision overflow due to oversize coordinates.
85+
*/
8386
public void draw() {
8487
GlStateManager.pushMatrix();
8588
GlStateManager.translate(-TileEntityRendererDispatcher.staticPlayerX, -TileEntityRendererDispatcher.staticPlayerY, -TileEntityRendererDispatcher.staticPlayerZ);

src/main/java/github/kasuminova/mmce/common/tile/MEGasInputBus.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.mekeng.github.common.me.data.impl.AEGasStack;
1111
import com.mekeng.github.common.me.inventory.impl.GasInventory;
1212
import github.kasuminova.mmce.common.tile.base.MEGasBus;
13-
import github.kasuminova.mmce.common.util.GasInventoryHandler;
1413
import github.kasuminova.mmce.common.util.IExtendedGasHandler;
1514
import hellfirepvp.modularmachinery.common.crafting.ComponentType;
1615
import hellfirepvp.modularmachinery.common.lib.ComponentTypesMM;
@@ -26,7 +25,7 @@
2625
import java.util.Objects;
2726

2827
public class MEGasInputBus extends MEGasBus {
29-
private final GasInventoryHandler config = new GasInventoryHandler(MEGasBus.TANK_SLOT_AMOUNT, this);
28+
private final GasInventory config = new GasInventory(MEGasBus.TANK_SLOT_AMOUNT, this);
3029

3130
@Override
3231
public ItemStack getVisualItemStack() {
@@ -188,7 +187,7 @@ public ComponentType getComponentType() {
188187

189188
@Override
190189
public IExtendedGasHandler getContainerProvider() {
191-
return tanks;
190+
return handler;
192191
}
193192
};
194193
}

src/main/java/github/kasuminova/mmce/common/tile/MEGasOutputBus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public ComponentType getComponentType() {
4343

4444
@Override
4545
public IExtendedGasHandler getContainerProvider() {
46-
return tanks;
46+
return handler;
4747
}
4848
};
4949
}

src/main/java/github/kasuminova/mmce/common/tile/base/MEGasBus.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,15 @@ public abstract class MEGasBus extends MEMachineComponent implements
4545
protected final IGasStorageChannel channel = AEApi.instance().storage().getStorageChannel(IGasStorageChannel.class);
4646
protected final ConfigManager cm = new ConfigManager(this);
4747
protected final UpgradeInventory upgrades;
48-
protected final GasInventoryHandler tanks;
48+
protected final GasInventory tanks;
49+
protected final GasInventoryHandler handler;
4950
protected boolean[] changedSlots;
5051
protected int fullCheckCounter = 5;
5152
protected boolean inTick = false;
5253

5354
public MEGasBus() {
54-
this.tanks = new GasInventoryHandler(TANK_SLOT_AMOUNT, TANK_DEFAULT_CAPACITY, this);
55+
this.tanks = new GasInventory(TANK_SLOT_AMOUNT, TANK_DEFAULT_CAPACITY, this);
56+
this.handler = new GasInventoryHandler(tanks);
5557
this.upgrades = new StackUpgradeInventory(proxy.getMachineRepresentation(), this, 5);
5658
this.changedSlots = new boolean[TANK_SLOT_AMOUNT];
5759
}
@@ -83,7 +85,7 @@ public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFa
8385
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
8486
Capability<IGasHandler> cap = Capabilities.GAS_HANDLER_CAPABILITY;
8587
if (capability == cap) {
86-
return cap.cast(tanks);
88+
return cap.cast(handler);
8789
}
8890
return super.getCapability(capability, facing);
8991
}
Lines changed: 9 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,24 @@
11
package github.kasuminova.mmce.common.util;
22

3-
import com.mekeng.github.common.me.inventory.IGasInventoryHost;
4-
import com.mekeng.github.common.me.inventory.impl.GasInventory;
5-
import mekanism.api.gas.Gas;
3+
import com.mekeng.github.common.me.inventory.IGasInventory;
4+
import com.mekeng.github.common.me.inventory.impl.GasInvHandler;
65
import mekanism.api.gas.GasStack;
7-
import mekanism.api.gas.GasTank;
8-
import mekanism.api.gas.GasTankInfo;
96
import net.minecraft.util.EnumFacing;
107

11-
import javax.annotation.Nonnull;
12-
import javax.annotation.Nullable;
8+
public class GasInventoryHandler extends GasInvHandler implements IExtendedGasHandler {
139

14-
public class GasInventoryHandler extends GasInventory implements IExtendedGasHandler {
15-
16-
public GasInventoryHandler(final int size, final int cap, @Nullable final IGasInventoryHost host) {
17-
super(size, cap, host);
18-
}
19-
20-
public GasInventoryHandler(final int size, @Nullable final IGasInventoryHost host) {
21-
super(size, host);
22-
}
23-
24-
public GasInventoryHandler(final int size, final int cap) {
25-
super(size, cap);
26-
}
27-
28-
public GasInventoryHandler(final int size) {
29-
super(size);
30-
}
31-
32-
@Override
33-
public GasStack drawGas(final GasStack toDraw, final boolean doTransfer) {
34-
if (toDraw == null || toDraw.amount <= 0) {
35-
return null;
36-
}
37-
38-
GasStack ret = null;
39-
for (final GasTank tank : getTanks()) {
40-
if (!tank.canDraw(toDraw.getGas())) {
41-
continue;
42-
}
43-
44-
if (ret == null) {
45-
ret = tank.draw(toDraw.amount, doTransfer);
46-
if (ret.amount >= toDraw.amount) {
47-
return ret;
48-
}
49-
continue;
50-
}
51-
52-
GasStack drawn = tank.draw(toDraw.amount - ret.amount, doTransfer);
53-
if (drawn != null) {
54-
ret.amount += drawn.amount;
55-
if (ret.amount >= toDraw.amount) {
56-
return ret;
57-
}
58-
}
59-
}
60-
61-
return ret;
10+
public GasInventoryHandler(final IGasInventory inv) {
11+
super(inv);
6212
}
6313

6414
@Override
65-
public int receiveGas(final EnumFacing side, final GasStack stack, final boolean doTransfer) {
66-
if (stack.amount <= 0) {
67-
return 0;
68-
}
69-
70-
int received = 0;
71-
for (final GasTank tank : getTanks()) {
72-
if (tank.canReceive(stack.getGas())) {
73-
received += tank.receive(stack, doTransfer);
74-
if (stack.amount <= received) {
75-
return received;
76-
}
77-
}
78-
}
79-
80-
return received;
15+
public synchronized int receiveGas(final EnumFacing side, final GasStack stack, final boolean doTransfer) {
16+
return super.receiveGas(side, stack, doTransfer);
8117
}
8218

8319
@Override
84-
public GasStack drawGas(final EnumFacing side, final int amount, final boolean doTransfer) {
85-
if (amount <= 0) {
86-
return null;
87-
}
88-
89-
GasStack ret = null;
90-
for (final GasTank tank : getTanks()) {
91-
if (ret == null) {
92-
ret = tank.draw(amount, doTransfer);
93-
continue;
94-
}
95-
if (!tank.canDraw(ret.getGas())) {
96-
continue;
97-
}
98-
if (ret.amount < Integer.MAX_VALUE) {
99-
GasStack drawn = tank.draw(Math.min(amount - ret.amount, Integer.MAX_VALUE - ret.amount), doTransfer);
100-
if (drawn != null) {
101-
ret.amount += drawn.amount;
102-
}
103-
}
104-
}
105-
106-
return ret;
20+
public synchronized GasStack drawGas(final GasStack toDraw, final boolean doTransfer) {
21+
return drawGas(null, toDraw, doTransfer);
10722
}
10823

109-
@Override
110-
public boolean canReceiveGas(final EnumFacing side, final Gas type) {
111-
for (final GasTank tank : getTanks()) {
112-
if (tank.canReceive(type)) {
113-
return true;
114-
}
115-
}
116-
return false;
117-
}
118-
119-
@Override
120-
public boolean canDrawGas(final EnumFacing side, final Gas type) {
121-
for (final GasTank tank : getTanks()) {
122-
if (tank.canDraw(type)) {
123-
return true;
124-
}
125-
}
126-
return false;
127-
}
128-
129-
@Nonnull
130-
@Override
131-
public GasTankInfo[] getTankInfo() {
132-
return getTanks();
133-
}
13424
}

0 commit comments

Comments
 (0)