From 436277e2a09e2ce4ea08a114cbed8422938c8e85 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 19 Oct 2016 22:56:07 +0200 Subject: [PATCH] Oredict toggle on processing pattern encoder --- .../ContainerProcessingPatternEncoder.java | 2 +- .../gui/GuiProcessingPatternEncoder.java | 28 ++++++++++-- .../refinedstorage/gui/grid/GuiGrid.java | 12 +++--- .../gui/sidebutton/SideButtonCompare.java | 2 +- .../tile/TileProcessingPatternEncoder.java | 40 ++++++++++++++++++ .../gui/processing_pattern_encoder.png | Bin 2551 -> 2575 bytes 6 files changed, 74 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java index 28a06f89e..c4bf80cd7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerProcessingPatternEncoder.java @@ -38,7 +38,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase { } } - addPlayerInventory(8, 90); + addPlayerInventory(8, 101); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java index d1c17e88c..9bf352d19 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java @@ -5,22 +5,29 @@ import com.raoulvdberge.refinedstorage.container.ContainerProcessingPatternEncod import com.raoulvdberge.refinedstorage.network.MessageGridPatternCreate; import com.raoulvdberge.refinedstorage.network.MessageProcessingPatternEncoderClear; import com.raoulvdberge.refinedstorage.tile.TileProcessingPatternEncoder; +import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; import net.minecraft.init.SoundEvents; +import net.minecraftforge.fml.client.config.GuiCheckBox; import java.io.IOException; public class GuiProcessingPatternEncoder extends GuiBase { private TileProcessingPatternEncoder encoder; + private GuiCheckBox oredictPattern; + public GuiProcessingPatternEncoder(ContainerProcessingPatternEncoder container, TileProcessingPatternEncoder encoder) { - super(container, 176, 172); + super(container, 176, 183); this.encoder = encoder; } @Override public void init(int x, int y) { + oredictPattern = addCheckBox(x + 7, y + 76, I18n.format("misc.refinedstorage:oredict"), TileProcessingPatternEncoder.OREDICT_PATTERN.getValue()); } @Override @@ -32,7 +39,7 @@ public class GuiProcessingPatternEncoder extends GuiBase { } private boolean isOverClear(int mouseX, int mouseY) { - return inBounds(136, 75, 7, 7, mouseX, mouseY); + return inBounds(80, 19, 7, 7, mouseX, mouseY); } @Override @@ -57,7 +64,7 @@ public class GuiProcessingPatternEncoder extends GuiBase { @Override public void drawForeground(int mouseX, int mouseY) { drawString(7, 7, t("gui.refinedstorage:processing_pattern_encoder")); - drawString(7, 78, t("container.inventory")); + drawString(7, 90, t("container.inventory")); if (isOverCreatePattern(mouseX, mouseY)) { drawTooltip(mouseX, mouseY, t("gui.refinedstorage:processing_pattern_encoder.pattern_create")); @@ -68,6 +75,15 @@ public class GuiProcessingPatternEncoder extends GuiBase { } } + @Override + protected void actionPerformed(GuiButton button) throws IOException { + super.actionPerformed(button); + + if (button == oredictPattern) { + TileDataManager.setParameter(TileProcessingPatternEncoder.OREDICT_PATTERN, oredictPattern.isChecked()); + } + } + @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); @@ -82,4 +98,10 @@ public class GuiProcessingPatternEncoder extends GuiBase { mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.UI_BUTTON_CLICK, 1.0F)); } } + + public void updateOredictPattern(boolean checked) { + if (oredictPattern != null) { + oredictPattern.setIsChecked(checked); + } + } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index d66cf1fc2..0883bd56f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -120,11 +120,13 @@ public class GuiGrid extends GuiBase { searchField.yPosition = sy; } - if (oredictPattern == null) { - oredictPattern = addCheckBox(ox, oy, I18n.format("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); - } else { - oredictPattern.xPosition = ox; - oredictPattern.yPosition = oy; + if (grid.getType() == EnumGridType.PATTERN) { + if (oredictPattern == null) { + oredictPattern = addCheckBox(ox, oy, I18n.format("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); + } else { + oredictPattern.xPosition = ox; + oredictPattern.yPosition = oy; + } } if (grid.getType() != EnumGridType.FLUID) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java index 52a456c00..8721589e9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java @@ -39,7 +39,7 @@ public class SideButtonCompare extends SideButton { } else if (mask == IComparer.COMPARE_NBT) { ty = 48; } else if (mask == IComparer.COMPARE_OREDICT) { - ty = -100; // Temporary + return; } int tx = (parameter.getValue() & mask) == mask ? 0 : 16; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java index ca07ce9d5..652243056 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java @@ -2,11 +2,17 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSUtils; +import com.raoulvdberge.refinedstorage.gui.GuiProcessingPatternEncoder; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemPattern; +import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; +import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; +import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; +import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.CapabilityItemHandler; @@ -14,9 +20,35 @@ import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; public class TileProcessingPatternEncoder extends TileBase { + private static final String NBT_OREDICT_PATTERN = "OredictPattern"; + + public static final TileDataParameter OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { + @Override + public Boolean getValue(TileProcessingPatternEncoder tile) { + return tile.oredictPattern; + } + }, new ITileDataConsumer() { + @Override + public void setValue(TileProcessingPatternEncoder tile, Boolean value) { + tile.oredictPattern = value; + + tile.markDirty(); + } + }, parameter -> { + if (Minecraft.getMinecraft().currentScreen instanceof GuiProcessingPatternEncoder) { + ((GuiProcessingPatternEncoder) Minecraft.getMinecraft().currentScreen).updateOredictPattern(parameter.getValue()); + } + }); + private ItemHandlerBasic patterns = new ItemHandlerBasic(2, this, new ItemValidatorBasic(RSItems.PATTERN)); private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, this); + private boolean oredictPattern; + + public TileProcessingPatternEncoder() { + dataManager.addWatchedParameter(OREDICT_PATTERN); + } + @Override public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); @@ -24,6 +56,8 @@ public class TileProcessingPatternEncoder extends TileBase { RSUtils.writeItems(patterns, 0, tag); RSUtils.writeItems(configuration, 1, tag); + tag.setBoolean(NBT_OREDICT_PATTERN, oredictPattern); + return tag; } @@ -33,12 +67,18 @@ public class TileProcessingPatternEncoder extends TileBase { RSUtils.readItems(patterns, 0, tag); RSUtils.readItems(configuration, 1, tag); + + if (tag.hasKey(NBT_OREDICT_PATTERN)) { + oredictPattern = tag.getBoolean(NBT_OREDICT_PATTERN); + } } public void onCreatePattern() { if (canCreatePattern()) { ItemStack pattern = new ItemStack(RSItems.PATTERN); + ItemPattern.setOredict(pattern, oredictPattern); + for (int i = 0; i < 18; ++i) { if (configuration.getStackInSlot(i) != null) { if (i >= 9) { diff --git a/src/main/resources/assets/refinedstorage/textures/gui/processing_pattern_encoder.png b/src/main/resources/assets/refinedstorage/textures/gui/processing_pattern_encoder.png index f6fcdb0b5bad7a5cdfc5fe6350d29056c85583c9..185fd197b751ac64ae2e0523b870d8ab08870801 100755 GIT binary patch delta 1292 zcmYk6e>~H99LGQ3uVMN<8HJTnQlyf|typQP$7*%8(OJiol(}qJZD(rVdQ?gwxkq%@ zLay6|!f7bBeLV_yXnG`de#DxSoHnbOk>z`H_qfNSf8X!-yh)y~Jc+qhQe4m6Pd^bOzwLa^7LvZo$0kG!p+_r@w zjMR2r7IiUP8xxD^b*)JyyJi@k6X1=n>z?_pk>t&)?$YpoyMbYI>yxiJZC(1YoJY?c zHJ#QP%%9Hbyi-%)4e@amoU{J<~o^IqidNW}tzAiLT;oU=@%O&IqqBSV>?D zqfTLu2S>)9M8cmYN?sv3wJ>z+VP=1EzSScgPraiKcR`~1AfZc7^l(VBWsxvlYUmsk zkhNixHSO8>t25e`9mf5>64mnepYntAN+K1)!lqPR9|MUi)_c1n%1u!x27+H2L?M8e z`O~4s;~T}dv6y1L?GKdAXUi^$?h&h@R(aD@hd16l*sN}K08_V^^**7a`MZecvU++2 z4NtRx+Nq6fazKI&@^&-y4l9MtMJE-5@t_auPjl4)V>D5HM=)_zXg59|OY-K~wi>Ia zeDNLo3v)R?GyS-xrxnxCWbYj*=J<3?rS%_+OnK_h=F3 zhGaF zQs=^t_m?18`bg5UO(obL=5!j8CVOO`M|a7HHR`Y5C0+FyCKWQrf2@&*UlCB`U)u>N zcOoV!>g9S_@8lASENu1QOtzMM>{!FL5Al?KJlTy4Dv(0r{M8Ugw*6b^MaLqc7ZH)Z#|NOY+YLonDg$vZpar zFgLz~GwQRK>)$)x?H07V>Qy=`9b`5Su(-Lo1NM}eF_DQh0!4OkN?&AZ8PNA6u;`h0-LFHuzU3;7oYYz)$^6p>rL&GCu0KlN`me>8oBUTO7p!P{L1+OD7pJXM z-3Mr(N0d=16g#a?kh)hv`h?16jY~w8#lU%$AbB^bV%FX(7T->A+zTw1Cq(kdLrxY`n z)v1+vo8~1&2PzuItK#fpp~uv+sbovrh^ZloN;2K$?7#i_obTs+&+~cycrLG)T3#K5 zhMNJfY=>bF~0~m3&4Be_u=lKQTP+2;hZBp5RkX9O09kDO8H%!0GLBQ-aCQ> zVcLFCQh(5zpJU6J@{YI)f8UW}D->-&-Wd_r82;7m+P2@`N6eYNMyq_nushV@Jf@$a zi9O}6pbR{_5)hCt+L+mX-ss#5+jdyn{~~LV5#HVnQLDYCjHlcw@@VJ-|5F!tGjBZf z)xP*9N4-&rMl|y0$H{4DMF~$d9}7!$2)FjuVo-hB5=F1j-jNnP)J(chg^&>YsL^^i z3q-e_okET^le)1rp@@zp*6c=iiqoRZr2Thh&j$&sP`m&pD|j7D@ADh9?m5(1>4$#j z5y&~GH@^f%*Y3jjtan2V_p}FC##O+5$r&9T zI#)!cS!2h={nI;2p_Xx#Jq9JWpqMgZ(s+ch8LJrRQ?Vk`LGM5_Fvv)8Bj$`w$01qK z*(u)&^ts-`E*!S>vz;~d!UuCC{4;wT+5m6BFD{tzzs}wrnoTuHhfH;j z6E=pPDR^eO2JZdZO`r0wpetHXl4PLTsmMtd)XbsLqut*?fj;F2G{vonA6IZW3h0KZD8fKVcS4* zuqQ!)OD>v9#Rpbh72U^Bb=J<(!zGhj^Apb5R&zm_u)x}B4|oRV=J-=#A4f)~poCkC_8!bRQiu!b3Ks8M>(6#SK0}m&Uv)& zv8%xgM=6mud0I|MWxUb_B=kFrZk>|MBddu4asIadlXL&hvoB-m0Hu~++6p0(K4+0C zaZ7ja_QOOl=F+|CK|yrFxxZ}xffxX_aD;h%EN3jTs%-6b=)*DyOCsh+V)FC*p6(fe zo-e(Zd%?m5Oi~{DJ@UEL(Q;)vBd5lER}O5xZ}oCZs-4NKcFVOigR=SE{2v2845oLL H7w62MFr`ho