From 32a346633f8b2bd5545b5cf2abe8f1bd7f9e84d4 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Mon, 5 Aug 2013 12:54:22 -0400 Subject: [PATCH] Battery now charges/discharges items, fixed capacitor energy bar --- .../textures/gui/batterybox_gui.png | Bin 5742 -> 5863 bytes src/resonantinduction/api/IBattery.java | 2 ++ .../battery/ItemCapacitor.java | 8 +++++- .../battery/TileEntityBattery.java | 24 ++++++++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/resources/assets/resonantinduction/textures/gui/batterybox_gui.png b/resources/assets/resonantinduction/textures/gui/batterybox_gui.png index a44d57d5fd4eb82f482972ec09db179b38118e81..b0e31bbc0e0319a9af28da6ebb60aef7b012d9e4 100644 GIT binary patch delta 4800 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 delta 4678 zcmbVPdo+}5+n;$F+YCuY*^W_W9Llkr$xIFzgE2Z$*o2~XL~2lYW^9M;5ILtXqnAi0 zQYg}Nnn{Elc7x>HB;%a(>AP!v>s#wv@80X(?|%Mz*8N=TcmICZ@4Bz+e)yW>8fAx2 zu#m0QzC)qNu{?+5A&$iUnxU-i&$Bj4o2N=0JAM0ZN{ea>ZAryuW0$c!bH*MdZ|!_u0Sc$1!a^jSs@7)YNl+0q zslei03|*v5yM7q5@0#v!5- z)s+DvVpXmc=@0_WyuUuZsA1Gwducv!%)t`x?`ZsP;6b}XU(c&2x4LI4YiA@_cSA?+ zqNMOFghs+aZ>(P;9cnpJ`|Svnh@~Q=Ufmc`)&=(6GbW_=dh>v>I_ko$^=5|A$<2@SXfw(FTeHDdXwzOKx*rpSO5<`1YK9{ zQ(%9#6rk{ddF&lf*-(d~Gk1=&{GqsC21DxG28D>yLD%-b_UpU`fT>8JB>Vd1^%p%D@7cLsH6%MU8J~AwF8ZGsp7KK%X+>yezgljt&Ki z>o1c$l~Loc6n$!bmb+{hDAO%Bp?%y{4ts@7>~@_n;mL2`^e)NPE{(QseOfryN%@rsnQqrnN9ZUq_!%KRrb73h z9ubT_3peMUU$1-dYo)JDWd(|6!M362p}J0y`>-%ls1Lh!6jvq*ETKSSdicP2KrcSw z0+xpXj8z%5YuIWlBC^`*wFyQL4ID`)nmSM8oNWg z*jbTIt^WH4_%drK9b#V(CqE7RSK*lEPj8KFfqF&c|Egyp^ss6@8AJ@I4NPfQ22mLx z?}v)6W7YN%k!t%6U&s0Zx-BHu`GXK1Y=$p6eGvL?mMkVCfDE97Sg6CWKba)~5R@6M z4wwuj79xXH>VVM$qWo~wC+Z9=0L319q|Vq65H6$0hInce9im2+8sJ;djQV+`-tM^T zA2k-!(yz;xm!oznm6;+Zt#MoLn7Eh3(o+x}(H1tiGINm0h|kGtjMD(+|1H6Pvi28C zg7HM6qoZR7`$Os|YJsET(e)q$54J<7CN>-}M6Nl$J+Q9n-m}N!gQ+6&kKr*tY)Jy3 zdf4dverOb&)IVK<|6bT%MX|@%q}U&#oFA>7{~V(7UHhZHXEO=G3#I4<^ncj;2PXU< z8U6@k5ByNZ2t-AnTu#tubVn~Ek8W+ddgYU zwUc`MJ4|F_fv*Qfj{=-Aqd(DR7z0Jd-vqlD9587v3sdLuI-sBG#N|ieTa17+Q;4s1 zsLw#-=a!25C|OnD%r;_AHd`JDlfO8ZNgM42s;uMVqb-8Vd3WVpJr zvJz;v?dZ!aQ_KQ7P}Qi$)>9Phr)l-xnAArB6!Q86Dh$odS64Pqj*Og|lZO{sja8q1 z;i@r5&lqiBR-F~fAMfvUMca!YV$tl}0oSv|KRjMI(sycqaMKd{A1nQHq41w86(J5H z+aoZI;AH%D{_X3;=^@C;`LDr=w40c>zSmNG8zd(0vWI!6A8$tXiqy)xC?d1GZ{aa| zHo!hD9}^A6Fi3Did3&n}YI+WiDWJi+uaws-$j-?Vz0csy<62(hIQ%4;^=tzXRkt$T z@PQnHqnaYuUCU1FIR7PWy#pHp-4`AwvAm!)CcOd0pG=8+rm)`8x%7Cs-ww&75fnoR zguFS$Z7tE39v{ZO#msfaYObDJwya`S^43~r*GC*+&cdxKyKYN@%3zTgT)9QyHQ4fK zb?RY?CTF2`Sq6^pUmiD#NM7R}T(_*+OB)+pzfvgXU(qKjbbaC5)GhZ1UmR)AytH)p zFBzK)ON#K#P5q76l0Dpw=QWLlozZpa92K;@rM*f!?Ewe)00uY2d>y_a9j$@nJ@WXFkgBDZp{0`oOtn1 zIePLBn6pfpe{5aO#JQ-V}Nf z?*FmSfj`(>eU0eB$i09&t>A0$aPsQH50bPSfD= z#b9^-9Dys?X=2Lf@>m{gSLiv>JpmJP-6T+SfvEhWsz)yP>2ImMr8ySS&+vFPd>o#Y>#3hN}qdg1KiH~_)?~o4nC~IbliR*8O zqzU-}v(+61aYHYA?M*oGIQ!mHiXnJ`6Q{1&$Ok_2+TWy`G)-E0zAY+82$t5aYWF6r zB>6Yx1gl>Yzz6-ZYnMe}ThHTAO6um9UP(f-&XHJVn!ig@ZZj_Fb=VgIt6}I3>P<}Z z4VBIc@mXHqTyA&7xb%a<2rK3MUS;GLNg+5{93EdP&mObQ2#-`LfCXJE>L#_3NZLOUEtYq_BY? zFAdMs(B8abpR46R4+S@bhM7lr=7%|_*ULjNZ8y*VOSbc*54*EWpE@Yrq<%m??)Odp zv5|cFTU8{_Q_!j}BCP0mLuQtcBNW)^^-hQxZ_!$zxPy2}YE)?pPMOlha9h5x>5o+o@}C@xjE_}-0OJUKW&)j1rSx+d?d;A#cO zluyRkL=C;j3A)i{$VpktEv9D2%$*{Pddbx{OJ{73*^+Wx&UaOlaRQU{;YTG5%O{Ln5a##?st`h; z@WqpxMe78X18FWfcXH&X8s)0Ks_W!7po|r@(^5>*5(+8X>!ZhSe_BbPSz^;*l5ynP z!IRs#1b9jv39GT?xA8agTcfD&vm+eyZbU9 z1>nofKwmxXCb4HxCc5zV?i0!97{S(Wt#j(1FV^1Ryto`aaM})=>SMeg=YYmU_%(}< zJrJ|a!cg3obSZV=K4|R`Ip$H==fG^w6AxapuJArKZON|YVP@|yKK4s3$u*n4zD)TN zQlE0q_H26a!*>Q#&+#F4PSV-I-h`KPlMAnSzwgw2GuOkghOE)KtGd)w3B8?2%pp7W z&ryfuWEIkhVc;?t#z|IUoCa5wj@bQN95o+YBJ<0YNvvbw+oOW_x-cdKTv0N71!!zZ z7WnAzcitWv2Jyo(rctO;@X!7CvHl4Z{1?3b3D!S>GXJ|0*Ee|lvb(T{GVg-`kF7Pu K>YjyX)c*kZ!ZIrW diff --git a/src/resonantinduction/api/IBattery.java b/src/resonantinduction/api/IBattery.java index e308a92dc..a24ff289c 100644 --- a/src/resonantinduction/api/IBattery.java +++ b/src/resonantinduction/api/IBattery.java @@ -16,6 +16,8 @@ public interface IBattery public float getEnergyStored(ItemStack itemStack); public float getMaxEnergyStored(ItemStack itemStack); + + public float getTransfer(ItemStack itemStack); /** * @param itemStack diff --git a/src/resonantinduction/battery/ItemCapacitor.java b/src/resonantinduction/battery/ItemCapacitor.java index 310dcd38f..d44576eb2 100644 --- a/src/resonantinduction/battery/ItemCapacitor.java +++ b/src/resonantinduction/battery/ItemCapacitor.java @@ -24,7 +24,7 @@ public class ItemCapacitor extends ItemBase implements IBattery { super("capacitor", id); this.setMaxStackSize(1); - this.setMaxDamage(1000); + this.setMaxDamage(100); } @Override @@ -59,6 +59,12 @@ public class ItemCapacitor extends ItemBase implements IBattery return amount; } + + @Override + public float getTransfer(ItemStack itemStack) + { + return getMaxEnergyStored(itemStack)*0.05F; + } @Override public float getMaxEnergyStored(ItemStack itemStack) diff --git a/src/resonantinduction/battery/TileEntityBattery.java b/src/resonantinduction/battery/TileEntityBattery.java index 9cb7903ba..1107e0d10 100644 --- a/src/resonantinduction/battery/TileEntityBattery.java +++ b/src/resonantinduction/battery/TileEntityBattery.java @@ -69,6 +69,30 @@ public class TileEntityBattery extends TileEntityBase implements IPacketReceiver } } + if(structure.visibleInventory[1] != null) + { + ItemStack itemStack = structure.visibleInventory[1]; + IBattery battery = (IBattery)itemStack.getItem(); + + float energyStored = getMaxEnergyStored(); + float batteryNeeded = battery.getMaxEnergyStored(itemStack)-battery.getEnergyStored(itemStack); + float toGive = Math.min(energyStored, Math.min(battery.getTransfer(itemStack), batteryNeeded)); + + battery.setEnergyStored(itemStack, battery.getEnergyStored(itemStack) + removeEnergy(toGive, true)); + } + + if(structure.visibleInventory[2] != null) + { + ItemStack itemStack = structure.visibleInventory[2]; + IBattery battery = (IBattery)itemStack.getItem(); + + float energyNeeded = getMaxEnergyStored()-getEnergyStored(); + float batteryStored = battery.getEnergyStored(itemStack); + float toReceive = Math.min(energyNeeded, Math.min(battery.getTransfer(itemStack), batteryStored)); + + battery.setEnergyStored(itemStack, battery.getEnergyStored(itemStack) - addEnergy(toReceive, true)); + } + if(prevStructure != structure) { for(EntityPlayer player : playersUsing)