From 3f5c902086c05e4564b756a07946f5d6af29f584 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 4 May 2016 21:52:56 +0200 Subject: [PATCH] Solderer can probably use some speed upgradability too --- .../container/ContainerSolderer.java | 13 +++++++++ .../java/refinedstorage/gui/GuiSolderer.java | 4 +-- .../refinedstorage/tile/TileSolderer.java | 26 ++++++++++++++++-- .../refinedstorage/textures/gui/solderer.png | Bin 1956 -> 2101 bytes 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/refinedstorage/container/ContainerSolderer.java b/src/main/java/refinedstorage/container/ContainerSolderer.java index a0077fd64..4bbec007e 100755 --- a/src/main/java/refinedstorage/container/ContainerSolderer.java +++ b/src/main/java/refinedstorage/container/ContainerSolderer.java @@ -3,7 +3,11 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import refinedstorage.RefinedStorageItems; +import refinedstorage.container.slot.IItemValidator; +import refinedstorage.container.slot.SlotFiltered; import refinedstorage.container.slot.SlotOutput; +import refinedstorage.item.ItemUpgrade; import refinedstorage.tile.TileSolderer; public class ContainerSolderer extends ContainerBase { @@ -21,6 +25,15 @@ public class ContainerSolderer extends ContainerBase { addSlotToContainer(new SlotOutput(solderer, 3, 134, 38)); + for (int i = 0; i < 4; ++i) { + addSlotToContainer(new SlotFiltered(solderer.getUpgradesInventory(), i, 187, 6 + (i * 18), new IItemValidator() { + @Override + public boolean isValid(ItemStack stack) { + return stack.getItem() == RefinedStorageItems.UPGRADE && stack.getMetadata() == ItemUpgrade.TYPE_SPEED; + } + })); + } + addPlayerInventory(8, 95); } diff --git a/src/main/java/refinedstorage/gui/GuiSolderer.java b/src/main/java/refinedstorage/gui/GuiSolderer.java index 3cfb316f9..3ba9386c6 100755 --- a/src/main/java/refinedstorage/gui/GuiSolderer.java +++ b/src/main/java/refinedstorage/gui/GuiSolderer.java @@ -8,7 +8,7 @@ public class GuiSolderer extends GuiBase { private TileSolderer solderer; public GuiSolderer(ContainerSolderer container, TileSolderer solderer) { - super(container, 176, 177); + super(container, 211, 177); this.solderer = solderer; } @@ -29,7 +29,7 @@ public class GuiSolderer extends GuiBase { drawTexture(x, y, 0, 0, width, height); if (solderer.isWorking()) { - drawTexture(x + 83, y + 40 - 1, 177, 0, solderer.getProgressScaled(22), 15); + drawTexture(x + 83, y + 40 - 1, 212, 0, solderer.getProgressScaled(22), 15); } } diff --git a/src/main/java/refinedstorage/tile/TileSolderer.java b/src/main/java/refinedstorage/tile/TileSolderer.java index e58cc0144..171f309a2 100755 --- a/src/main/java/refinedstorage/tile/TileSolderer.java +++ b/src/main/java/refinedstorage/tile/TileSolderer.java @@ -27,6 +27,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven }; private InventorySimple inventory = new InventorySimple("solderer", 4, this); + private InventorySimple upgradesInventory = new InventorySimple("upgrades", 4, this); private ISoldererRecipe recipe; @@ -56,9 +57,9 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven markDirty(); } } else if (working) { - progress++; + progress += getSpeed(); - if (progress == recipe.getDuration()) { + if (progress >= recipe.getDuration()) { if (inventory.getStackInSlot(3) != null) { inventory.getStackInSlot(3).stackSize += recipe.getResult().stackSize; } else { @@ -76,6 +77,18 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven } } + public int getSpeed() { + int speed = 1; + + for (int i = 0; i < upgradesInventory.getSizeInventory(); ++i) { + if (upgradesInventory.getStackInSlot(i) != null) { + speed += 1; + } + } + + return speed; + } + @Override public void onDisconnected() { super.onDisconnected(); @@ -96,6 +109,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven super.readFromNBT(nbt); InventoryUtils.restoreInventory(this, 0, nbt); + InventoryUtils.restoreInventory(upgradesInventory, 1, nbt); recipe = SoldererRegistry.getRecipe(inventory); @@ -113,6 +127,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven super.writeToNBT(nbt); InventoryUtils.saveInventory(this, 0, nbt); + InventoryUtils.saveInventory(upgradesInventory, 1, nbt); nbt.setBoolean(NBT_WORKING, working); nbt.setInteger(NBT_PROGRESS, progress); @@ -164,6 +179,9 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven } public int getProgressScaled(int i) { + if (progress > duration) { + return i; + } return (int) ((float) progress / (float) duration * (float) i); } @@ -271,4 +289,8 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven public boolean canExtractItem(int slot, ItemStack stack, EnumFacing direction) { return slot == 3; } + + public InventorySimple getUpgradesInventory() { + return upgradesInventory; + } } diff --git a/src/main/resources/assets/refinedstorage/textures/gui/solderer.png b/src/main/resources/assets/refinedstorage/textures/gui/solderer.png index a16fed4207137a04bf24d3703b576f35123b1988..5243c64fb281d4eaafb63dd6edd7d81c2a985077 100755 GIT binary patch literal 2101 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;5!Jyj5{V~zXb|Pl(rIsj|=o#o)<`~!c z0SlDbo-U3d6>)FxH0I4VkZ?_$X7c|336T@JY6-&pHx-}FTkL6HD#SGZ#kNISvG>d0 zUirUt{q~n1Q~A$U#NM~P_456nOUGpdE8cLG=+6EB_<3cW_3<_7I?`cVMYEZHWG=m( zYqfuF@-^dWy?VELOqgD5?&cgZsOxD~@gARM5O&bfEU?4h!4Im8VuO zyL|T<^8|qhTsxEwWbb~S&%EGmt{TIwo+pe8)<%di-0FD7ut4%WLxMffe+tqL_9d;y zASG&<9Zcs2HB%`c5ncl?DKr8ERbS2u;qOZ!v*QHj0@Q9#2B74-T2>k;U}o_xa{bE z{LfEor{~|91kTDnNMpLtn?CCVV}eD_+_&3axO2U`qH&<$PUn}3vb9Vi+#sVIs`C{< z)bUtwm@r+)pV{(m*22l*SK z$*a33HMa&yF6afB0JQ!eL&`|H{I_u1SL_Y6FGHDu;RBn5y>;yI z*fn|I7r)xS{u9Gt`M0}U|NX!G_`d184?lN)@%>`+Vp8ah)M&;9nbHiiwhcHHb^kxp XZQY$8&O5MQ0{Pz4)z4*}Q$iB}ezCJ8 literal 1956 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;5!7ujG`J|4M0JO64!{5;QX|b^2DN4hJwV*yb`^<)Di^~Jp(-{c+)w7?y6k1;0czQEa@RHyAYwmH@=oW?CtZz84G1srUv9kzZS>TbRdB}^O& z4u%Jg?=x19ySAJ0-0rx4Z#Wbh7~brT1j;lp#QZg2-0|L&(cT+ckE3w!TJ~_cZ^{8xsfKvH+ zm0sBNTYujtkR__$uWgwi-#CqvpxZqD%P#z`-oU`L;e8rNHB-S?1{7Vk4nUtV{LY)k z!0_Sd_O-^vug_}lWvsZmzwBqWHrUfJc^K!w-|z?jZh56M+}oW~TC@G|9j&OByay(4 zyY?}0U9_MB10yJC7;lts2Gd~T*WQzvTQ5mAeAkPXz5mu=dskQ$^M@sCOKWDl4uh)# zhbBlXP^6(QzbI;L30ucR1}2UJ`(}UTJ+S-w+P?SYGoxLB&ij$O`PxVEsJmT2S&*kd zN>o8Km~-KMZre!^q#2< lXSQ%2@R>c()RMEG?cJ`+f2+Uq{0yiR^>p=fS?83{1ONcyb(#PG