From 0cec53eecec1ae4b4a7259701225b5d4ace56888 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Mon, 7 Apr 2014 21:25:41 -0500 Subject: [PATCH] More Pattern Terminal Stuff. --- client/gui/implementations/GuiPatternTerm.java | 2 +- client/gui/widgets/GuiImgButton.java | 1 + container/implementations/ContainerPatternTerm.java | 11 ++++++++--- container/slot/SlotRestrictedInput.java | 11 ++++++++--- core/localization/ButtonToolTips.java | 4 +++- parts/reporting/PartPatternTerminal.java | 9 +++++++++ 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/client/gui/implementations/GuiPatternTerm.java b/client/gui/implementations/GuiPatternTerm.java index a57231ce..0eaa14fe 100644 --- a/client/gui/implementations/GuiPatternTerm.java +++ b/client/gui/implementations/GuiPatternTerm.java @@ -19,7 +19,7 @@ public class GuiPatternTerm extends GuiMEMonitorable public void initGui() { super.initGui(); - buttonList.add( clearBtn = new GuiImgButton( this.guiLeft + 92, this.guiTop + this.ySize - 156, Settings.ACTIONS, ActionItems.CLOSE ) ); + buttonList.add( clearBtn = new GuiImgButton( this.guiLeft + 32, this.guiTop + this.ySize - 156, Settings.ACTIONS, ActionItems.PULL ) ); buttonList.add( substitutionsBtn = new GuiImgButton( this.guiLeft + 92, this.guiTop + this.ySize - 156, Settings.ACTIONS, ActionItems.CLOSE ) ); clearBtn.halfSize = true; } diff --git a/client/gui/widgets/GuiImgButton.java b/client/gui/widgets/GuiImgButton.java index 24ab6540..22a82cc3 100644 --- a/client/gui/widgets/GuiImgButton.java +++ b/client/gui/widgets/GuiImgButton.java @@ -156,6 +156,7 @@ public class GuiImgButton extends GuiButton implements ITooltip registerApp( 66, Settings.ACTIONS, ActionItems.WRENCH, ButtonToolTips.PartitionStorage, ButtonToolTips.PartitionStorageHint ); registerApp( 6, Settings.ACTIONS, ActionItems.CLOSE, ButtonToolTips.Clear, ButtonToolTips.ClearSettings ); + registerApp( 7, Settings.ACTIONS, ActionItems.PULL, ButtonToolTips.Pull, ButtonToolTips.PullDescription ); registerApp( 16, Settings.VIEW_MODE, ViewItems.STORED, ButtonToolTips.View, ButtonToolTips.StoredItems ); registerApp( 18, Settings.VIEW_MODE, ViewItems.ALL, ButtonToolTips.View, ButtonToolTips.StoredCraftable ); diff --git a/container/implementations/ContainerPatternTerm.java b/container/implementations/ContainerPatternTerm.java index 142c9940..b6a5a6fd 100644 --- a/container/implementations/ContainerPatternTerm.java +++ b/container/implementations/ContainerPatternTerm.java @@ -6,6 +6,8 @@ import net.minecraft.item.ItemStack; import appeng.api.storage.ITerminalHost; import appeng.container.slot.SlotFake; import appeng.container.slot.SlotPatternTerm; +import appeng.container.slot.SlotRestrictedInput; +import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.parts.reporting.PartPatternTerminal; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.IAEAppEngInventory; @@ -19,6 +21,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA SlotFake craftingSlots[] = new SlotFake[9]; SlotFake outputSlots[] = new SlotFake[3]; SlotPatternTerm craftSlot; + SlotRestrictedInput patternSlot; PartPatternTerminal ct; @@ -26,16 +29,18 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA super( ip, montiorable, false ); ct = (PartPatternTerminal) montiorable; + IInventory patternInv = ct.getInventoryByName( "pattern" ); IInventory crafting = ct.getInventoryByName( "crafting" ); for (int y = 0; y < 3; y++) for (int x = 0; x < 3; x++) - addSlotToContainer( craftingSlots[x + y * 3] = new SlotFake( crafting, x + y * 3, 37 + x * 18, -72 + y * 18 ) ); + addSlotToContainer( craftingSlots[x + y * 3] = new SlotFake( crafting, x + y * 3, 54 + x * 18, -72 + y * 18 ) ); for (int y = 0; y < 3; y++) - addSlotToContainer( outputSlots[y] = new SlotFake( crafting, y * 3, 37, -72 + y * 18 ) ); + addSlotToContainer( outputSlots[y] = new SlotFake( crafting, y * 3, 146, -72 + y * 18 ) ); - addSlotToContainer( craftSlot = new SlotPatternTerm( craftSlotInv, 0, 37, -72 ) ); + addSlotToContainer( patternSlot = new SlotRestrictedInput( PlaceableItemType.PATTERN, patternInv, 0, 17, -72 - 5 ) ); + addSlotToContainer( craftSlot = new SlotPatternTerm( craftSlotInv, 0, 17, -72 + 38 ) ); bindPlayerInventory( ip, 0, 0 ); } diff --git a/container/slot/SlotRestrictedInput.java b/container/slot/SlotRestrictedInput.java index 84fae5f6..69fe96a3 100644 --- a/container/slot/SlotRestrictedInput.java +++ b/container/slot/SlotRestrictedInput.java @@ -30,7 +30,7 @@ public class SlotRestrictedInput extends AppEngSlot ENCODEABLE_ITEM(4 * 16 + 15), TRASH(5 * 16 + 15), VALID_ENCODED_PATTERN_W_OUPUT(7 * 16 + 15), ENCODED_PATTERN_W_OUTPUT(7 * 16 + 15), - ENCODED_PATTERN(7 * 16 + 15), BLANK_PATTERN(8 * 16 + 15), POWERED_TOOL(9 * 16 + 15), + ENCODED_PATTERN(7 * 16 + 15), PATTERN(8 * 16 + 15), BLANK_PATTERN(8 * 16 + 15), POWERED_TOOL(9 * 16 + 15), RANGE_BOOSTER(6 * 16 + 15), QE_SINGULARTIY(10 * 16 + 15), SPATIAL_STORAGE_CELLS(11 * 16 + 15), @@ -131,6 +131,12 @@ public class SlotRestrictedInput extends AppEngSlot return pattern.isEncoded(); return false; } + case PATTERN: + ICraftingPatternMAC p = i.getItem() instanceof ICraftingPatternItem ? ((ICraftingPatternItem) i.getItem()).getPatternForItem( i ) : null; + if ( p != null ) + return true; + return false; + case BLANK_PATTERN: { ICraftingPatternMAC pattern = i.getItem() instanceof ICraftingPatternItem ? ((ICraftingPatternItem) i.getItem()).getPatternForItem( i ) : null; if ( pattern != null ) @@ -189,8 +195,7 @@ public class SlotRestrictedInput extends AppEngSlot return false; return true; case ENCODEABLE_ITEM: - return i.getItem() instanceof INetworkEncodable || - AEApi.instance().registries().wireless().isWirelessTerminal( i ); + return i.getItem() instanceof INetworkEncodable || AEApi.instance().registries().wireless().isWirelessTerminal( i ); case BIOMETRIC_CARD: return i.getItem() instanceof IBiometricCard; case UPGRADES: diff --git a/core/localization/ButtonToolTips.java b/core/localization/ButtonToolTips.java index 07b9aece..6d978df7 100644 --- a/core/localization/ButtonToolTips.java +++ b/core/localization/ButtonToolTips.java @@ -32,7 +32,9 @@ public enum ButtonToolTips Blocking, NonBlocking, Craft, DontCraft, - LevelType, LevelType_Energy, LevelType_Item, InventoryTweaks, TerminalStyle, TerminalStyle_Full, TerminalStyle_Tall, TerminalStyle_Small; + LevelType, LevelType_Energy, LevelType_Item, InventoryTweaks, TerminalStyle, TerminalStyle_Full, TerminalStyle_Tall, TerminalStyle_Small, + + Pull, PullDescription; String root; diff --git a/parts/reporting/PartPatternTerminal.java b/parts/reporting/PartPatternTerminal.java index ed7c3390..e019a901 100644 --- a/parts/reporting/PartPatternTerminal.java +++ b/parts/reporting/PartPatternTerminal.java @@ -15,11 +15,13 @@ public class PartPatternTerminal extends PartTerminal implements IAEAppEngInvent { AppEngInternalInventory craftingGrid = new AppEngInternalInventory( this, 9 + 3 ); + AppEngInternalInventory pattern = new AppEngInternalInventory( this, 1 ); @Override public void writeToNBT(NBTTagCompound data) { super.writeToNBT( data ); + pattern.writeToNBT( data, "pattern" ); craftingGrid.writeToNBT( data, "craftingGrid" ); } @@ -27,6 +29,7 @@ public class PartPatternTerminal extends PartTerminal implements IAEAppEngInvent public void readFromNBT(NBTTagCompound data) { super.readFromNBT( data ); + pattern.readFromNBT( data, "pattern" ); craftingGrid.readFromNBT( data, "craftingGrid" ); } @@ -36,6 +39,10 @@ public class PartPatternTerminal extends PartTerminal implements IAEAppEngInvent for (ItemStack is : craftingGrid) if ( is != null ) drops.add( is ); + + for (ItemStack is : pattern) + if ( is != null ) + drops.add( is ); } public PartPatternTerminal(ItemStack is) { @@ -56,6 +63,8 @@ public class PartPatternTerminal extends PartTerminal implements IAEAppEngInvent { if ( name.equals( "crafting" ) ) return craftingGrid; + if ( name.equals( "pattern" ) ) + return pattern; return super.getInventoryByName( name ); }