From 134780bdc0e1e97168d5e7acfbeb6a275d4afd81 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 17 Sep 2016 23:11:17 +0200 Subject: [PATCH] Add oredict button to processing pattern encoder --- .../ContainerProcessingPatternEncoder.java | 2 +- .../gui/GuiProcessingPatternEncoder.java | 25 ++++++++++- .../tile/TileProcessingPatternEncoder.java | 39 ++++++++++++++++++ .../gui/processing_pattern_encoder.png | Bin 2555 -> 2554 bytes 4 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java index 374dfaa55..a1079e5c7 100755 --- a/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java @@ -36,7 +36,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase { } } - addPlayerInventory(8, 90); + addPlayerInventory(8, 102); } @Override diff --git a/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java index 62f3e1e0c..14d7cd00d 100755 --- a/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java @@ -1,26 +1,32 @@ package refinedstorage.gui; import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiButton; import net.minecraft.init.SoundEvents; +import net.minecraftforge.fml.client.config.GuiCheckBox; import refinedstorage.RefinedStorage; import refinedstorage.container.ContainerProcessingPatternEncoder; import refinedstorage.network.MessageGridPatternCreate; import refinedstorage.network.MessageProcessingPatternEncoderClear; import refinedstorage.tile.TileProcessingPatternEncoder; +import refinedstorage.tile.data.TileDataManager; import java.io.IOException; public class GuiProcessingPatternEncoder extends GuiBase { private TileProcessingPatternEncoder processingPatternEncoder; + private GuiCheckBox patternOredicted; + public GuiProcessingPatternEncoder(ContainerProcessingPatternEncoder container, TileProcessingPatternEncoder processingPatternEncoder) { - super(container, 176, 172); + super(container, 176, 184); this.processingPatternEncoder = processingPatternEncoder; } @Override public void init(int x, int y) { + patternOredicted = addCheckBox(x + 7, y + 76, "Use oredict", TileProcessingPatternEncoder.PATTERN_OREDICTED.getValue()); // @TODO: I18N } @Override @@ -57,7 +63,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, 91, t("container.inventory")); if (isOverCreatePattern(mouseX, mouseY)) { drawTooltip(mouseX, mouseY, t("gui.refinedstorage:processing_pattern_encoder.pattern_create")); @@ -82,4 +88,19 @@ public class GuiProcessingPatternEncoder extends GuiBase { mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.UI_BUTTON_CLICK, 1.0F)); } } + + @Override + protected void actionPerformed(GuiButton button) throws IOException { + super.actionPerformed(button); + + if (button == patternOredicted) { + TileDataManager.setParameter(TileProcessingPatternEncoder.PATTERN_OREDICTED, patternOredicted.isChecked()); + } + } + + public void updatePatternOredicted(boolean oredicted) { + if (patternOredicted != null) { + patternOredicted.setIsChecked(oredicted); + } + } } diff --git a/src/main/java/refinedstorage/tile/TileProcessingPatternEncoder.java b/src/main/java/refinedstorage/tile/TileProcessingPatternEncoder.java index 8b96dc9e4..5d01df32b 100755 --- a/src/main/java/refinedstorage/tile/TileProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/tile/TileProcessingPatternEncoder.java @@ -1,21 +1,52 @@ package refinedstorage.tile; +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; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageItems; +import refinedstorage.gui.GuiProcessingPatternEncoder; import refinedstorage.inventory.ItemHandlerBasic; import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.item.ItemPattern; +import refinedstorage.tile.data.ITileDataConsumer; +import refinedstorage.tile.data.ITileDataProducer; +import refinedstorage.tile.data.TileDataParameter; public class TileProcessingPatternEncoder extends TileBase { + public static final TileDataParameter PATTERN_OREDICTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { + @Override + public Boolean getValue(TileProcessingPatternEncoder tile) { + return tile.patternOredicted; + } + }, new ITileDataConsumer() { + @Override + public void setValue(TileProcessingPatternEncoder tile, Boolean value) { + tile.patternOredicted = value; + tile.markDirty(); + } + }, parameter -> { + if (Minecraft.getMinecraft().currentScreen instanceof GuiProcessingPatternEncoder) { + ((GuiProcessingPatternEncoder) Minecraft.getMinecraft().currentScreen).updatePatternOredicted(parameter.getValue()); + } + }); + + private static final String NBT_PATTERN_OREDICTED = "PatternOredicted"; + private ItemHandlerBasic patterns = new ItemHandlerBasic(2, this, new ItemValidatorBasic(RefinedStorageItems.PATTERN)); private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, this); + private boolean patternOredicted = false; + + public TileProcessingPatternEncoder() { + dataManager.addWatchedParameter(PATTERN_OREDICTED); + } + @Override public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); @@ -23,6 +54,8 @@ public class TileProcessingPatternEncoder extends TileBase { writeItems(patterns, 0, tag); writeItems(configuration, 1, tag); + tag.setBoolean(NBT_PATTERN_OREDICTED, patternOredicted); + return tag; } @@ -32,12 +65,18 @@ public class TileProcessingPatternEncoder extends TileBase { readItems(patterns, 0, tag); readItems(configuration, 1, tag); + + if (tag.hasKey(NBT_PATTERN_OREDICTED)) { + patternOredicted = tag.getBoolean(NBT_PATTERN_OREDICTED); + } } public void onCreatePattern() { if (canCreatePattern()) { ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN); + ItemPattern.setOredicted(pattern, patternOredicted); + 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 7d30bc3a889b0d0ea087eb2e6ef65c82b863067e..ff2c164a3cd4e52885d36089c552ef1f6768b457 100755 GIT binary patch delta 1209 zcmew@{7ZO48w+FnK1AORF5RpD_0JKO z1F!d7$=a}`cJy*S+tFUX8u5)|=&p zZ9x40AHVi)yAkaWU%$VK*J7u>z=QJhrM6#d9ZtV4jqTj-aK5nby`|sd9TzRKJod20 z9RK;|^KZY+7j4R9IvI)|dYSbwSaTJW?^|d$iy>xp+}@g%$G?{DSkG{H=cCO&4FC9? zu7>__IWNz{c)&8ZW9GI89slN@KD6Gmda-CYV+_0hq1AyRt@=|A&eUY6|6_T1QEA_c z`#aaX4U73B$za3V^x1*2WwC*UD94BOw|+XVU_A8UygVz@9xlEAUHOd#0&%~D@)`dw z-QT11RmtLqtJZ;~yI7k(e@;*ka)_@Ds`xtBrQsqs#|m-hjoTac{ZrsMC(q6DL!F0h z;V-)cfj+m!Bhd*@elNfOyYBy%`~U5>>3S-<~X+}dr;3<3sQl9tVkcKDz5b?;qcjix@U2UwX7xk&}Ua+0prm42<<04WG@#7&#mmm~{Rz-+xjfzV&Wb zx4kn1lK{i>TpcC>1xADaf6{h~=F22p7vkSgk^jcnp=j#%?>--{bwBE@6St4PRLA_{ zzYFt<*U$MT>}5{b&-Ng{^TTG5?QmYdFHljg0~rNWM0-Dm##OqCk;!{HMtY1%fSxn_G>H*=i@Hx*xf(s z6aBg)mtoIspUpqowoN|EAzi^uwvIp32D3jB=!Ej-> zg1)MHt`WEQGi|1Xu3m;2Ny-e%Zg4bcno)=AL7G`D%st2dGm5U4otL1IXTbmjp00i_ I>zopr0B2MW=Kufz delta 1233 zcmew*{9AZK8w+E?vZm(JG5N=!sIh73iV(9EWRG~;KBB7%U@N+zxvt9 z*>Jsb<;@T#cJa5w|f7cC7PgST}u-_NvtjqNj6Q zs9s?A|KsQHx03W3|JMJxntkA8Z6m|}>UFPIu4j&lTmRZ?4@*^Fan1QcspGxJ0-YbJ zKCn8MKL39CtlnoEAA7LO;69&nm}A3YhVtjquNHG2*!t?~>FHH5@$J944CZLtoo0FP zULhp5)&I+%g8~e5F1O9dss2Zy z3-f=S)(FyXYK~vR6tl`(!NQ)OO^NZ#W`C~r`zCW3R53DsP15)#bm6=`NAu_7OpO0H zn;lo|T= zJN1!lfL6GjKm}*b;_r1l0qdr8?`AdlEIIiNnp6BW?2{bUUMEnuo zck-oP)^1Vp`W6Nj1%`9CBUlt1m=gZ|J6ooG&*H#3Rk?(Z_im&&Jc+z_&-P%newX>L z*gsjGzj+tbcd!MVpKtB(jc>wVsfK#hL+ht)InR*o3bX)j{()DP9WY}V96s&6;gkJ$ zyQiC!yN~({;ifBw29p*er$z_p)al z{k?leX144`-iGqonPT@Zm|25D5ac+pA|;?XP}goKH@|*G@HE3uppPf;Uf9AEaN+ec zwa*N%)UTa$W|d~B5`VJv$r9hR#FO