From b219c950f4412fcedb5d48f75783b995a7e1de5d Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Wed, 26 Feb 2014 22:47:06 -0600 Subject: [PATCH] Added clear button to crafting terminal. --- .../gui/implementations/GuiCraftingTerm.java | 54 +++++++++++++++++++ .../gui/implementations/GuiMEMonitorable.java | 38 ++++++------- 2 files changed, 74 insertions(+), 18 deletions(-) diff --git a/client/gui/implementations/GuiCraftingTerm.java b/client/gui/implementations/GuiCraftingTerm.java index be4f934fd..12d2f8803 100644 --- a/client/gui/implementations/GuiCraftingTerm.java +++ b/client/gui/implementations/GuiCraftingTerm.java @@ -1,13 +1,67 @@ package appeng.client.gui.implementations; +import java.io.IOException; + +import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import appeng.api.config.ActionItems; +import appeng.api.config.Settings; import appeng.api.storage.ITerminalHost; +import appeng.client.gui.widgets.GuiImgButton; import appeng.container.implementations.ContainerCraftingTerm; +import appeng.container.slot.SlotCraftingMatrix; +import appeng.core.AELog; import appeng.core.localization.GuiText; +import appeng.core.sync.network.NetworkHandler; +import appeng.core.sync.packets.PacketInventoryAction; +import appeng.helpers.InventoryAction; public class GuiCraftingTerm extends GuiMEMonitorable { + GuiImgButton clearBtn; + + @Override + public void initGui() + { + super.initGui(); + buttonList.add( clearBtn = new GuiImgButton( this.guiLeft + 92, this.guiTop + this.ySize - 156, Settings.ACTIONS, ActionItems.CLOSE ) ); + clearBtn.halfSize = true; + } + + @Override + protected void actionPerformed(GuiButton btn) + { + super.actionPerformed( btn ); + + if ( clearBtn == btn ) + { + Slot s = null; + Container c = inventorySlots; + for (Object j : c.inventorySlots) + { + if ( j instanceof SlotCraftingMatrix ) + s = (Slot) j; + } + + if ( s != null ) + { + PacketInventoryAction p; + try + { + p = new PacketInventoryAction( InventoryAction.MOVE_REGION, s.slotNumber, null ); + NetworkHandler.instance.sendToServer( p ); + } + catch (IOException e) + { + AELog.error( e ); + } + } + } + } + public GuiCraftingTerm(InventoryPlayer inventoryPlayer, ITerminalHost te) { super( inventoryPlayer, te, new ContainerCraftingTerm( inventoryPlayer, te ) ); reservedSpace = 73; diff --git a/client/gui/implementations/GuiMEMonitorable.java b/client/gui/implementations/GuiMEMonitorable.java index 150b1520d..948bedee3 100644 --- a/client/gui/implementations/GuiMEMonitorable.java +++ b/client/gui/implementations/GuiMEMonitorable.java @@ -180,28 +180,30 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi if ( btn instanceof GuiImgButton ) { GuiImgButton iBtn = (GuiImgButton) btn; - - Enum cv = iBtn.getCurrentValue(); - Enum next = Platform.nextEnum( cv ); - - if ( btn == searchBoxSettings ) - AEConfig.instance.settings.putSetting( iBtn.getSetting(), next ); - else + if ( iBtn.getSetting() != Settings.ACTIONS ) { - try + Enum cv = iBtn.getCurrentValue(); + Enum next = Platform.nextEnum( cv ); + + if ( btn == searchBoxSettings ) + AEConfig.instance.settings.putSetting( iBtn.getSetting(), next ); + else { - NetworkHandler.instance.sendToServer( new PacketValueConfig( iBtn.getSetting().name(), next.name() ) ); - } - catch (IOException e) - { - AELog.error( e ); + try + { + NetworkHandler.instance.sendToServer( new PacketValueConfig( iBtn.getSetting().name(), next.name() ) ); + } + catch (IOException e) + { + AELog.error( e ); + } } + + iBtn.set( next ); + + if ( next.getClass() == SearchBoxMode.class ) + re_init(); } - - iBtn.set( next ); - - if ( next.getClass() == SearchBoxMode.class ) - re_init(); } }