From 55458ff82a1a8ebda3514b359ddfd2b0878bb815 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sun, 23 Feb 2014 14:26:05 +0800 Subject: [PATCH] Added new awesome battery model thanks to CyanideX! --- .../electrical/battery/RenderBattery.java | 150 +++------ .../models/battery/bat_base_cap_tex.png | Bin 551 -> 0 bytes .../models/battery/bat_case_tex.png | Bin 555 -> 0 bytes .../models/battery/bat_level_0.png | Bin 737 -> 0 bytes .../models/battery/bat_level_1.png | Bin 736 -> 0 bytes .../models/battery/bat_level_10.png | Bin 608 -> 0 bytes .../models/battery/bat_level_2.png | Bin 719 -> 0 bytes .../models/battery/bat_level_3.png | Bin 703 -> 0 bytes .../models/battery/bat_level_4.png | Bin 694 -> 0 bytes .../models/battery/bat_level_5.png | Bin 686 -> 0 bytes .../models/battery/bat_level_6.png | Bin 674 -> 0 bytes .../models/battery/bat_level_7.png | Bin 661 -> 0 bytes .../models/battery/bat_level_8.png | Bin 641 -> 0 bytes .../models/battery/bat_level_9.png | Bin 633 -> 0 bytes .../models/battery/battery.obj | 300 ------------------ .../models/battery/battery.tcn | Bin 0 -> 5084 bytes .../models/battery/battery_0.png | Bin 0 -> 4226 bytes .../models/battery/battery_1.png | Bin 0 -> 4237 bytes .../models/battery/battery_2.png | Bin 0 -> 4250 bytes .../models/battery/battery_3.png | Bin 0 -> 4257 bytes .../models/battery/battery_4.png | Bin 0 -> 4260 bytes .../models/battery/battery_5.png | Bin 0 -> 4257 bytes .../models/battery/battery_6.png | Bin 0 -> 4264 bytes .../models/battery/battery_7.png | Bin 0 -> 4270 bytes .../models/battery/battery_8.png | Bin 0 -> 4230 bytes 25 files changed, 38 insertions(+), 412 deletions(-) delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_base_cap_tex.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_case_tex.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_0.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_1.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_10.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_2.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_3.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_4.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_5.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_6.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_7.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_8.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/bat_level_9.png delete mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery.obj create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery.tcn create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_0.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_1.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_2.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_3.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_4.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_5.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_6.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_7.png create mode 100644 src/main/resources/assets/resonantinduction/models/battery/battery_8.png diff --git a/electrical/src/main/java/resonantinduction/electrical/battery/RenderBattery.java b/electrical/src/main/java/resonantinduction/electrical/battery/RenderBattery.java index a0dd612e..ec1a2755 100644 --- a/electrical/src/main/java/resonantinduction/electrical/battery/RenderBattery.java +++ b/electrical/src/main/java/resonantinduction/electrical/battery/RenderBattery.java @@ -8,14 +8,19 @@ import static org.lwjgl.opengl.GL11.glPushMatrix; import static org.lwjgl.opengl.GL11.glRotatef; import static org.lwjgl.opengl.GL11.glScalef; import static org.lwjgl.opengl.GL11.glTranslatef; + +import javax.naming.directory.DirContext; + import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.ForgeDirection; +import org.apache.commons.lang3.ArrayUtils; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; @@ -34,135 +39,56 @@ import cpw.mods.fml.relauncher.SideOnly; public class RenderBattery extends TileEntitySpecialRenderer implements ISimpleItemRenderer { public static RenderBattery INSTANCE = new RenderBattery(); + public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "battery/battery.tcn"); - public static final ResourceLocation TEXTURE_CAP = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "battery/bat_base_cap_tex.png"); - public static final ResourceLocation TEXTURE_CASE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "battery/bat_case_tex.png"); - public static final WavefrontObject MODEL = (WavefrontObject) AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "battery/battery.obj"); + //Renders only if another battery on this side exists + public static String[][] renderForSideOnly = new String[][] { new String[] { }, new String[] { }, new String[] { "frame1", "frame2" }, new String[] { "frame2", "frame3" }, new String[] { "frame3", "frame4" }, new String[] { "frame4", "frame5" } }; + + //Renders only if another battery on this side does NOT exist + public static String[][] renderNotForSide = new String[][] { new String[] {"bottom", "coil1"}, new String[] { "top", "frame1con", "frame2con", "frame3con", "frame4con" }, new String[] { }, new String[] { }, new String[] { }, new String[] { } }; @Override public void renderInventoryItem(ItemStack itemStack) { glPushMatrix(); - GL11.glTranslated(0, -0.5f, 0); - - for (int i = 2; i < 6; i++) - { - glPushMatrix(); - glScalef(0.5f, 0.5f, 0.5f); - ForgeDirection dir = ForgeDirection.getOrientation(i); - - switch (dir) - { - case NORTH: - glRotatef(0, 0, 1, 0); - break; - case SOUTH: - glRotatef(180, 0, 1, 0); - break; - case WEST: - glRotatef(90, 0, 1, 0); - break; - case EAST: - glRotatef(-90, 0, 1, 0); - break; - } - - int energyLevel = (int) (((double) ((ItemBlockBattery) itemStack.getItem()).getEnergy(itemStack) / (double) ((ItemBlockBattery) itemStack.getItem()).getEnergyCapacity(itemStack)) * 10); - RenderUtility.bind(Reference.DOMAIN, Reference.MODEL_PATH + "battery/bat_level_" + energyLevel + ".png"); - MODEL.renderPart("Battery"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_CAP); - MODEL.renderOnly("CapCorner", "BaseCorner", "CapEdge", "BaseEdge", "CapInterior", "BaseInterior"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_CASE); - MODEL.renderOnly("BatteryCase"); - glPopMatrix(); - } - + GL11.glTranslated(0, 0, 0); + int energyLevel = (int) (((double) ((ItemBlockBattery) itemStack.getItem()).getEnergy(itemStack) / (double) ((ItemBlockBattery) itemStack.getItem()).getEnergyCapacity(itemStack)) * 8); + RenderUtility.bind(Reference.DOMAIN, Reference.MODEL_PATH + "battery/battery_" + energyLevel + ".png"); + MODEL.renderAllExcept("frame1con", "frame2con", "frame3con", "frame4con"); glPopMatrix(); } @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) { - glPushMatrix(); - glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + + renderForSideOnly = new String[][] { new String[] { "frame1con", "frame2con", "frame3con", "frame4con" }, new String[] { }, new String[] { }, new String[] { }, new String[] { }, new String[] { } }; + renderNotForSide = new String[][] { new String[] {"bottom", "coil1"}, new String[] { "top" }, new String[] { "frame1" }, new String[] { "frame3" }, new String[] { "frame2" }, new String[] { "frame4" } }; - for (int i = 2; i < 6; i++) + + String[][] partToDisable = new String[][] { new String[] {"bottom", "coil1"}, new String[] { "top","frame1con" ,"frame2con" ,"frame3con" ,"frame4con" }, new String[] { }, new String[] { }, new String[] { }, new String[] { } }; + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + + TileBattery tile = (TileBattery) t; + + int energyLevel = (int) (((double) tile.energy.getEnergy() / (double) TileBattery.getEnergyForTier(tile.getBlockMetadata())) * 8); + RenderUtility.bind(Reference.DOMAIN, Reference.MODEL_PATH + "battery/battery_" + energyLevel + ".png"); + + String[] disabledParts = new String[0]; + + for (ForgeDirection check : ForgeDirection.VALID_DIRECTIONS) { - glPushMatrix(); - ForgeDirection dir = ForgeDirection.getOrientation(i); - - switch (dir) + if (new Vector3(t).translate(check).getTileEntity(t.worldObj) instanceof TileBattery) { - case NORTH: - glRotatef(0, 0, 1, 0); - break; - case SOUTH: - glRotatef(180, 0, 1, 0); - break; - case WEST: - glRotatef(90, 0, 1, 0); - break; - case EAST: - glRotatef(-90, 0, 1, 0); - break; + disabledParts = ArrayUtils.addAll(disabledParts, partToDisable[check.ordinal()]); } - - glScalef(0.5f, 0.5f, 0.5f); - - /** - * If we're rendering in the world: - */ - TileBattery tile = (TileBattery) t; - - int energyLevel = (int) (((double) tile.energy.getEnergy() / (double) TileBattery.getEnergyForTier(tile.getBlockMetadata())) * 10); - RenderUtility.bind(Reference.DOMAIN, Reference.MODEL_PATH + "battery/bat_level_" + energyLevel + ".png"); - MODEL.renderPart("Battery"); - - // Render top and bottom - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_CAP); - if (!(new Vector3(t).translate(ForgeDirection.UP).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("CapCorner"); - if (!(new Vector3(t).translate(ForgeDirection.DOWN).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("BaseCorner"); - - // If quadrant with one external neighbor - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_CAP); - - if (!(new Vector3(t).translate(ForgeDirection.UP).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("CapEdge"); - if (!(new Vector3(t).translate(ForgeDirection.DOWN).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("BaseEdge"); - - /* - * If quadrant with three external neighbors //can't have quadrant with 2 external - * neighbors in rectangular prism - */ - if (!(new Vector3(t).translate(ForgeDirection.UP).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("CapInterior"); - if (!(new Vector3(t).translate(ForgeDirection.DOWN).getTileEntity(t.worldObj) instanceof TileBattery)) - MODEL.renderPart("BaseInterior"); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_CASE); - - if (tile.getInputDirections().contains(dir)) - { - GL11.glColor3f(0, 0.294f, 0.498f); - } - else if (tile.getOutputDirections().contains(dir)) - { - GL11.glColor3f(1, 0.478f, 0.01f); - } - - MODEL.renderPart("BatteryCase"); - - GL11.glColor3f(1, 1, 1); - - if (new Vector3(t).translate(ForgeDirection.UP).getTileEntity(t.worldObj) instanceof TileBattery) - MODEL.renderPart("VertConnector"); - - glPopMatrix(); } - glPopMatrix(); + GL11.glColor3f(1, 1, 1); + MODEL.renderAllExcept(disabledParts); + + GL11.glPopMatrix(); } } diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_base_cap_tex.png b/src/main/resources/assets/resonantinduction/models/battery/bat_base_cap_tex.png deleted file mode 100644 index e13a7371904347f9405743567542e1f87bc62008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)WFU8GbZ8()Nlj2>E@cM*00E0hL_t(I%T<#>k|QAu z1XDslk7NG-Qb*V{2<^ck)^q4vORCB$1c=|?U(5_uWvzv(GUvqIdB5NE-f692X1F`O zclO@6J63B&RWUOFT5ABfJMPZU&ktrs@10T#?#_MRhzMg0EQj44Gb18!cU1LUYOPU9 zq1Fn3i12(qx$pb4Aip^$B0@y`ktrgSQizD7PE`>RZ12t98xc9OA_5ViwT8P>N@1-9 zz*>vFHxcnUTuM0%%#7>0&gE3J);a^dcg&1Z3ILX{Qs&;9>$-ToUPp2Q?!B|tLPY+j zkQNeN4gt(LkL=bOV~jI=RL?oN@0*A?X#l7ydvC@VT-SA?iwJ71h{#9X`K$Gdqye&NpOL)gv=6C)iTT0hVeKXfD@?IR4Y4h|qhd)=I6F-aC)SL~yK002ovPDHLkV1njH<`4h? diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_case_tex.png b/src/main/resources/assets/resonantinduction/models/battery/bat_case_tex.png deleted file mode 100644 index bfaa009a804c11e142fe73f18cf5f6a06d7d176f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)WFU8GbZ8()Nlj2>E@cM*00EClL_t(I%T<#>aw{PW zM4yC!vCH?rO>UK{m;s@`aEYHRW;c?$UpMmg^%bwz3o}DiS!4)*1lrj=S@CJTNnQ@03z-ckcT}L>OaWIqdG384-cIqpIgp zYmHJ0wN?N`gzxWf?)&~M$ZyVxh!7EfWQqu-6e8lNQ&mI++k3P3MnsORh(JVWt>NyJ zQdnyNu-0PlO+++H#CeTb-QSEd tt+m#tNSSMPe2j5A@Vma5R5Dm=@elomOJch(M9KgF002ovPDHLkV1o9M?*;$> diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_0.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_0.png deleted file mode 100644 index ef6603f25c341c66df9a0f0058fdf1867ca101de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)WFU8GbZ8()Nlj2>E@cM*00KoxL_t(I%RSLsdYf7l z1K^*_2JGNl-L%Od&in_GF{JI6w81f8V}sd!NKd2(y=h5H$&;s;NJP=iO(yd{zWL_G zi$-H-CkRI4r*=Adt5qnRoCLw%Ua8dUy?PZz8yks4tM%?3WHPy2y0UWb-p)=GU0mdH zH#fihl1OZ9L{X{q-FItiUwyT*lJD$nY-BP=M}Pb=nWR!%TY~}gdUyXg7(T0}jmDcd zjYbsh?L|>4_2^NhlFQw>`!s5`Zf;VkwAJeM5{U;7c6MMe=yXb@LgDOeHiNabLh(^| z^|X@Yi8w`J9W=+r>HTE0+33e!2*H;xUo74h^8a#^NvU*ob#Rc6f zEnQvx^iw*Hqq?pQ!{En{A5N!}Ec>`p*R}0->+bH(ZnsmbEi7zo1i{f!emhuVNeu>wrv$fVX;`qvdlcsa=FbvW-^IHzE~{0zP`G@zgJb2d7jmE?RveMrpY|d zk|dF)sa`LNCX-I5)qW(X>snD1vMdv0)HIE89HnUrw%e_Fp7nZf-W(i^Mp5(^ew!Ss TXt$1|00000NkvXXu0mjf@nKO} diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_1.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_1.png deleted file mode 100644 index d9e6f2bcd6d8f5f8f62a923d60a52b142cad147b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 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 UFg}_BhyVZp07*qoM6N<$f~tEj5C8xG diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_6.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_6.png deleted file mode 100644 index 84a741f8561923c0e63413b0c162a43dfc65362d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)WFU8GbZ8()Nlj2>E@cM*00IU{L_t(I%RSRea@$A{ z1ki_110Y2ZqGZ|9&KH>bU&9eT!;Br0EQkcaj{ve~L0DajT6AP~W>$6b)6bYlMA6w< zCiC}v_0_Xyt=7gy5RAsp-s|O^PNA^37XArk5{*U_l}g`yv$pod7qwcxvC(K`GCMne{4trNQnzj$9l>C5GuP4a z(`wpky?N7WMbW)`QItwOc~Yt5ayM>1i8`ILvs5bWbOwV&;?bjx4LCaL^-85e;o#un z0@l_F#no>8vzFwEI7ML{w7b@RyVo?0VH|`I+}+(-ye;JaBEP2@A7dR9S#T6 zG|93|k|Z7Ap}KHsOwsiBw~z02->!_-|tmb zWf%sh(@CYWuuv#Ksg&1s?e+CljL|rbw%e`C za|Y>k3!`W<>Ge9@tY9_2mR-ZrVw`g^+qe)#Z{ECnHyTCJ|8rg7eQve$f&c&j07*qo IM6N<$g7aE2$^ZZW diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_7.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_7.png deleted file mode 100644 index a58c8a3b5b0512f79af724ebd1dc1b137118672f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wWFU8GbZ8()Nlj2>E@cM*00H?)L_t(I%RST0QsYPv z1mLgrZ?G+lhZ(rfb>II%c!9mJGXXmYEXkHFnVy3MU5AQ}ipJE<{V-Q5q*;y*} zdA|GZ*|SDtV!I@J4mH6nPg?<&Yg{o zC^|aIWX{fh`z;7+wJ0i;e)wT+?VE2_Rz>s+&I?BDn5y4H`qJkQ&TU^b+51ett4&g%Z z;^k|7nQSJ=@qlCoT+Q!zKa;%83Q{_qLgC7llapV5NsL%xz<)FF^E)hYgX@cxrKN?1 zS}m8`*~uL6G=qwns6adC#a#Qi$gbx|rGg-{zzgnB&Hk730H^sLE*5*eD4I+36=VG?;K@`1u_2$iJ6h(glE;ZK|=8>HX00000NkvXXu0mjfCf+DU diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_8.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_8.png deleted file mode 100644 index 2149245c5ba1a815b803a5ff8d06c9c968271aee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)WFU8GbZ8()Nlj2>E@cM*00HGmL_t(I%RSRudfG}5 z1mItHz<`X26TFD*e<5CjPx3*+O#);jnDfBI(+~a7Q#DoHJ;}TGkVpi<%}plr?|k>& z+S<;}!a||Y>%VfVl{Xrt(%D&|u(VXEoSbZI1VOEqNHiJ;2aw6+a_P*>t5*vPLGbBQ zE_ZYD+i!_Ptri58$`3!x&3*ID%uK$pP^)D!M@N7CH5jB)&z^NUaB}h#qtks^O?P&- zwsv-cU}-4`QmHp@Mn-bECr@8QjmFJQDwQ@GCnt%-%F4n5bULk8rBW(gT-@Ek++3-A z*qy!4BzYnXK`}4vjyvbWSzXso{Yg<2US3{|w`2Lw++a|tTwU$$<$d3~TrP%TkY$-9 zNvu{YqtVEEz1DS|wry2aC6j41DwR}fZZ7dIxFJK10dpL2K#d*+A3r~AZRH+HAUDGw zgn03Q`vYJa$%a_R#6+(*7#?HPpv4lC2)yHl&!{AM5NvF|#+S<@L4h}<5ip5+e2ygh zs34=&DwQTCuC9LhCDli%9sY~Jf8Sw>XFOrS)YRBmtyU-;9px_gh@dhOm1trf$J+fN zyN;2`BoetXHh9G-`k&$&rQc%@(#IAC!C=s8HJYek8ehv|w|8+OX|(eEAPR!5t-ZZo bF9`kz$bQfJI>{)^00000NkvXXu0mjf+ENnF diff --git a/src/main/resources/assets/resonantinduction/models/battery/bat_level_9.png b/src/main/resources/assets/resonantinduction/models/battery/bat_level_9.png deleted file mode 100644 index a30c4eb352df977244efdd4c362fb3388d2074ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_0.png b/src/main/resources/assets/resonantinduction/models/battery/battery_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1f517d32453ce056d2191b8db30d2dd2716be6 GIT binary patch literal 4226 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_1.png b/src/main/resources/assets/resonantinduction/models/battery/battery_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bdde79572e26f8dd1ec3c4549b729442e2ecb8 GIT binary patch literal 4237 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_2.png b/src/main/resources/assets/resonantinduction/models/battery/battery_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9e5c7e26ff9b6b1129bc54d3835bfe4c6c9144 GIT binary patch literal 4250 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_3.png b/src/main/resources/assets/resonantinduction/models/battery/battery_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e180f3abf725bbed070b98ebac6e8aef06900f99 GIT binary patch literal 4257 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 E0USh~B>(^b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_5.png b/src/main/resources/assets/resonantinduction/models/battery/battery_5.png new file mode 100644 index 0000000000000000000000000000000000000000..a39e0800e93a84b6bbcb8964cd401777ef3817ce GIT binary patch literal 4257 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_6.png b/src/main/resources/assets/resonantinduction/models/battery/battery_6.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac4733d04b6b74fe15123563fc89dbdd97e55b9 GIT binary patch literal 4264 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 KMY);ph5rHF(5I{b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/battery/battery_7.png b/src/main/resources/assets/resonantinduction/models/battery/battery_7.png new file mode 100644 index 0000000000000000000000000000000000000000..d440064a703a5e5ce9e664ea9140b6addbc156ef GIT binary patch literal 4270 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 literal 0 HcmV?d00001