Skip to content

Commit 572e625

Browse files
committed
add middle button change item
1 parent 7f51d43 commit 572e625

16 files changed

+389
-45
lines changed

src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import appeng.integration.IntegrationType;
2929
import appeng.util.IConfigManagerHost;
3030
import appeng.util.Platform;
31+
import appeng.util.item.AEItemStack;
3132
import com.glodblock.github.FluidCraft;
3233
import com.glodblock.github.client.gui.container.FCBaseMonitorContain;
3334
import com.glodblock.github.network.CPacketInventoryAction;
@@ -366,6 +367,24 @@ protected void handleMouseClick( final Slot slot, final int slotIdx, final int c
366367
{
367368
final EntityPlayer player = Minecraft.getMinecraft().thePlayer;
368369

370+
if (mouseButton == 3 ){
371+
if (slot instanceof OptionalSlotFake || slot instanceof SlotFakeCraftingMatrix) {
372+
if (slot.getHasStack()) {
373+
IAEItemStack stack = AEItemStack.create(slot.getStack());
374+
((AEBaseContainer) this.inventorySlots).setTargetStack(stack);
375+
int x = 0;
376+
for (int i = 0; i < this.inventorySlots.inventorySlots.size(); i ++) {
377+
if (this.inventorySlots.inventorySlots.get(i).equals(slot)) {
378+
x = i;
379+
break;
380+
}
381+
}
382+
FluidCraft.proxy.netHandler.sendToServer(new CPacketInventoryAction(-1, x, 0, stack));
383+
return;
384+
}
385+
}
386+
}
387+
369388
if( slot instanceof SlotFake)
370389
{
371390
InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;

src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package com.glodblock.github.client.gui;
22

3-
import appeng.api.AEApi;
4-
import appeng.api.definitions.IDefinitions;
5-
import appeng.api.definitions.IParts;
63
import appeng.api.storage.ITerminalHost;
74
import appeng.client.gui.AEBaseGui;
85
import appeng.client.gui.widgets.GuiNumberBox;
@@ -14,39 +11,48 @@
1411
import appeng.helpers.Reflected;
1512
import com.glodblock.github.FluidCraft;
1613
import com.glodblock.github.common.parts.PartFluidPatternTerminal;
14+
import com.glodblock.github.common.parts.PartFluidPatternTerminalEx;
1715
import com.glodblock.github.inventory.gui.GuiType;
1816
import com.glodblock.github.loader.ItemAndBlockHolder;
1917
import com.glodblock.github.network.CPacketCraftRequest;
2018
import com.glodblock.github.network.CPacketSwitchGuis;
2119
import net.minecraft.client.gui.GuiButton;
2220
import net.minecraft.entity.player.InventoryPlayer;
21+
import net.minecraft.inventory.Container;
2322
import net.minecraft.item.ItemStack;
2423

2524
public class GuiFluidCraftAmount extends AEBaseGui
2625
{
27-
private GuiNumberBox amountToCraft;
28-
private GuiTabButton originalGuiBtn;
26+
protected GuiNumberBox amountToCraft;
27+
protected GuiTabButton originalGuiBtn;
2928

30-
private GuiButton next;
29+
protected GuiButton next;
3130

32-
private GuiButton plus1;
33-
private GuiButton plus10;
34-
private GuiButton plus100;
35-
private GuiButton plus1000;
36-
private GuiButton minus1;
37-
private GuiButton minus10;
38-
private GuiButton minus100;
39-
private GuiButton minus1000;
31+
protected GuiButton plus1;
32+
protected GuiButton plus10;
33+
protected GuiButton plus100;
34+
protected GuiButton plus1000;
35+
protected GuiButton minus1;
36+
protected GuiButton minus10;
37+
protected GuiButton minus100;
38+
protected GuiButton minus1000;
4039

41-
private GuiType originalGui;
40+
protected GuiType originalGui;
4241

4342
@Reflected
44-
public GuiFluidCraftAmount(final InventoryPlayer inventoryPlayer, final ITerminalHost te )
43+
public GuiFluidCraftAmount(final InventoryPlayer inventoryPlayer, final ITerminalHost te)
4544
{
4645
super( new ContainerCraftAmount( inventoryPlayer, te ) );
4746
}
4847

48+
@Reflected
49+
public GuiFluidCraftAmount(Container container)
50+
{
51+
super(container);
52+
}
53+
4954
@Override
55+
@SuppressWarnings("unchecked")
5056
public void initGui()
5157
{
5258
super.initGui();
@@ -70,14 +76,17 @@ public void initGui()
7076

7177
ItemStack myIcon = null;
7278
final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget();
73-
final IDefinitions definitions = AEApi.instance().definitions();
74-
final IParts parts = definitions.parts();
7579

7680
if( target instanceof PartFluidPatternTerminal)
7781
{
7882
myIcon = new ItemStack(ItemAndBlockHolder.FLUID_TERMINAL, 1);
7983
this.originalGui = GuiType.FLUID_PATTERN_TERMINAL;
8084
}
85+
else if( target instanceof PartFluidPatternTerminalEx)
86+
{
87+
myIcon = new ItemStack(ItemAndBlockHolder.FLUID_TERMINAL_EX, 1);
88+
this.originalGui = GuiType.FLUID_PATTERN_TERMINAL_EX;
89+
}
8190

8291
if( this.originalGui != null && myIcon != null )
8392
{
@@ -204,7 +213,7 @@ protected void actionPerformed( final GuiButton btn )
204213
}
205214
}
206215

207-
private void addQty( final int i )
216+
protected void addQty( final int i )
208217
{
209218
try
210219
{
@@ -250,8 +259,4 @@ private void addQty( final int i )
250259
}
251260
}
252261

253-
protected String getBackground()
254-
{
255-
return "guis/craftAmt.png";
256-
}
257262
}

src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ boolean isAutoStart()
7676
}
7777

7878
@Override
79+
@SuppressWarnings("unchecked")
7980
public void initGui()
8081
{
8182
super.initGui();

src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ public boolean drawSlot0(Slot slot) {
5454
if (ItemFluidPacket.getFluidStack(stack) != null && ItemFluidPacket.getFluidStack(stack).amount > 0)
5555
fake.setStackSize(ItemFluidPacket.getFluidStack(stack).amount);
5656
}
57-
else
58-
return true;
5957
stackSizeRenderer.setAeStack(fake);
6058
stackSizeRenderer.renderItemOverlayIntoGUI(fontRendererObj, mc.getTextureManager(), stack.getItemStack(), slot.xDisplayPosition, slot.yDisplayPosition);
6159
return false;

src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public boolean drawSlot0(Slot slot) {
5555
if (ItemFluidPacket.getFluidStack(stack) != null && ItemFluidPacket.getFluidStack(stack).amount > 0)
5656
fake.setStackSize(ItemFluidPacket.getFluidStack(stack).amount);
5757
}
58-
else
59-
return true;
6058
stackSizeRenderer.setAeStack(fake);
6159
stackSizeRenderer.renderItemOverlayIntoGUI(fontRendererObj, mc.getTextureManager(), stack.getItemStack(), slot.xDisplayPosition, slot.yDisplayPosition);
6260
return false;
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.glodblock.github.client.gui;
2+
3+
import appeng.api.storage.ITerminalHost;
4+
import appeng.core.localization.GuiText;
5+
import com.glodblock.github.FluidCraft;
6+
import com.glodblock.github.client.gui.container.ContainerItemAmountChange;
7+
import com.glodblock.github.network.CPacketPatternValueSet;
8+
import com.glodblock.github.network.CPacketSwitchGuis;
9+
import net.minecraft.client.gui.GuiButton;
10+
import net.minecraft.client.resources.I18n;
11+
import net.minecraft.entity.player.InventoryPlayer;
12+
13+
public class GuiItemAmountChange extends GuiFluidCraftAmount {
14+
15+
public GuiItemAmountChange(final InventoryPlayer inventoryPlayer, final ITerminalHost te)
16+
{
17+
super(new ContainerItemAmountChange(inventoryPlayer, te));
18+
}
19+
20+
@Override
21+
public void initGui()
22+
{
23+
super.initGui();
24+
this.next.displayString = I18n.format("ae2fc.gui.set");
25+
}
26+
27+
@Override
28+
public void drawBG( final int offsetX, final int offsetY, final int mouseX, final int mouseY )
29+
{
30+
super.drawBG(offsetX, offsetY, mouseX, mouseY);
31+
this.next.displayString = I18n.format("ae2fc.gui.set");
32+
}
33+
34+
@Override
35+
protected void actionPerformed( final GuiButton btn ) {
36+
try
37+
{
38+
if( btn == this.originalGuiBtn )
39+
{
40+
FluidCraft.proxy.netHandler.sendToServer( new CPacketSwitchGuis( this.originalGui ) );
41+
}
42+
43+
if( btn == this.next )
44+
{
45+
FluidCraft.proxy.netHandler.sendToServer( new CPacketPatternValueSet(this.originalGui, Integer.parseInt(this.amountToCraft.getText()), ((ContainerItemAmountChange) this.inventorySlots).getValueIndex()));
46+
}
47+
}
48+
catch( final NumberFormatException e )
49+
{
50+
// nope..
51+
this.amountToCraft.setText( "1" );
52+
}
53+
54+
final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
55+
final boolean isMinus = btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000;
56+
57+
if( isPlus || isMinus )
58+
{
59+
this.addQty( this.getQty( btn ) );
60+
}
61+
}
62+
63+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.glodblock.github.client.gui.container;
2+
3+
import appeng.api.config.SecurityPermissions;
4+
import appeng.api.storage.ITerminalHost;
5+
import appeng.container.AEBaseContainer;
6+
import appeng.container.guisync.GuiSync;
7+
import appeng.container.slot.SlotInaccessible;
8+
import appeng.tile.inventory.AppEngInternalInventory;
9+
import net.minecraft.entity.player.InventoryPlayer;
10+
import net.minecraft.inventory.Slot;
11+
12+
public class ContainerItemAmountChange extends AEBaseContainer {
13+
14+
private final Slot patternValue;
15+
@GuiSync(11)
16+
public int valueIndex;
17+
18+
public ContainerItemAmountChange(final InventoryPlayer ip, final ITerminalHost te )
19+
{
20+
super( ip, te );
21+
this.patternValue = new SlotInaccessible( new AppEngInternalInventory( null, 1 ), 0, 34, 53 );
22+
this.addSlotToContainer( patternValue );
23+
}
24+
25+
@Override
26+
public void detectAndSendChanges()
27+
{
28+
super.detectAndSendChanges();
29+
this.verifyPermissions( SecurityPermissions.CRAFT, false );
30+
}
31+
32+
public Slot getPatternValue()
33+
{
34+
return patternValue;
35+
}
36+
37+
public int getValueIndex()
38+
{
39+
return valueIndex;
40+
}
41+
42+
public void setValueIndex( int valueIndex )
43+
{
44+
this.valueIndex = valueIndex;
45+
}
46+
47+
}

src/main/java/com/glodblock/github/client/render/ItemDropRender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public int getColour(Fluid fluid) {
9090
colourCache.put(fluid.getName(), colour);
9191
return colour;
9292
}
93-
93+
9494
if (sprite != null && sprite.getFrameCount() > 0) {
9595
int[][] image = sprite.getFrameTextureData(0);
9696
int r = 0, g = 0, b = 0, count = 0;

src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.glodblock.github.common.item.ItemFluidDrop;
1414
import com.glodblock.github.common.item.ItemFluidEncodedPattern;
1515
import com.glodblock.github.common.item.ItemFluidPacket;
16+
import com.glodblock.github.inventory.AEStackInternalInventory;
1617
import com.glodblock.github.inventory.InventoryHandler;
1718
import com.glodblock.github.inventory.gui.GuiType;
1819
import com.glodblock.github.util.BlockPos;
@@ -34,9 +35,9 @@ public class PartFluidPatternTerminal extends FCBasePart {
3435
private static final FCPartsTexture FRONT_DARK_ICON = FCPartsTexture.PartFluidPatternTerminal_Colored;
3536
private static final FCPartsTexture FRONT_COLORED_ICON = FCPartsTexture.PartFluidPatternTerminal_Dark;
3637

37-
private final AppEngInternalInventory crafting = new AppEngInternalInventory( this, 9 );
38-
private final AppEngInternalInventory output = new AppEngInternalInventory( this, 3 );
39-
private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 );
38+
private final AEStackInternalInventory crafting = new AEStackInternalInventory( this, 9 );
39+
private final AEStackInternalInventory output = new AEStackInternalInventory( this, 3 );
40+
private final AEStackInternalInventory pattern = new AEStackInternalInventory( this, 2 );
4041

4142
private boolean craftingMode = true;
4243
private boolean substitute = false;

src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.glodblock.github.common.item.ItemFluidDrop;
1414
import com.glodblock.github.common.item.ItemFluidEncodedPattern;
1515
import com.glodblock.github.common.item.ItemFluidPacket;
16+
import com.glodblock.github.inventory.AEStackInternalInventory;
1617
import com.glodblock.github.inventory.InventoryHandler;
1718
import com.glodblock.github.inventory.gui.GuiType;
1819
import com.glodblock.github.util.BlockPos;
@@ -34,9 +35,9 @@ public class PartFluidPatternTerminalEx extends FCBasePart {
3435
private static final FCPartsTexture FRONT_DARK_ICON = FCPartsTexture.PartFluidPatternTerminal_Colored;
3536
private static final FCPartsTexture FRONT_COLORED_ICON = FCPartsTexture.PartFluidPatternTerminal_Dark;
3637

37-
private final AppEngInternalInventory crafting = new AppEngInternalInventory( this, 16 );
38-
private final AppEngInternalInventory output = new AppEngInternalInventory( this, 4 );
39-
private final AppEngInternalInventory pattern = new AppEngInternalInventory( this, 2 );
38+
private final AEStackInternalInventory crafting = new AEStackInternalInventory( this, 16 );
39+
private final AEStackInternalInventory output = new AEStackInternalInventory( this, 4 );
40+
private final AEStackInternalInventory pattern = new AEStackInternalInventory( this, 2 );
4041

4142
private boolean substitute = false;
4243
private boolean combine = false;

0 commit comments

Comments
 (0)