From c89f1b411f7f3017b97aa27c4925f414949e9e66 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Aug 2024 22:02:54 -0500 Subject: [PATCH 01/23] ughhhh ok I fixed some bugs with OC compat and added new refinery GUI (bugs were in CCGT `setThrottle()` function and the TELEX `setSendingText()`) --- .../handler/nei/RefineryRecipeHandler.java | 4 +- .../container/ContainerMachineRefinery.java | 30 ++--- .../hbm/inventory/gui/GUIMachineRefinery.java | 107 ++++++++++++++---- .../machine/TileEntityMachineTurbineGas.java | 2 +- .../network/TileEntityRadioTelex.java | 2 +- .../textures/gui/processing/gui_refinery.png | Bin 3023 -> 8584 bytes 6 files changed, 103 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f085e4ebe..8818a3d9d 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -161,8 +161,8 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICom transferRectsGui = new LinkedList(); guiGui = new LinkedList>(); - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); + transferRects.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); guiGui.add(GUIMachineRefinery.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java index 000a58cf1..b47d2b182 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java @@ -19,40 +19,40 @@ public class ContainerMachineRefinery extends Container { testNuke = tedf; //Battery - this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); + this.addSlotToContainer(new Slot(tedf, 0, 186, 72)); //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); + this.addSlotToContainer(new Slot(tedf, 1, 8, 99)); //Canister Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 119)); //Heavy Oil Input - this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); + this.addSlotToContainer(new Slot(tedf, 3, 86, 99)); //Heavy Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 80, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 86, 119)); //Naphtha Input - this.addSlotToContainer(new Slot(tedf, 5, 98, 90)); + this.addSlotToContainer(new Slot(tedf, 5, 106, 99)); //Naphtha Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 98, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 106, 119)); //Light Oil Input - this.addSlotToContainer(new Slot(tedf, 7, 116, 90)); + this.addSlotToContainer(new Slot(tedf, 7, 126, 99)); //Light Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 116, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 126, 119)); //Petroleum Input - this.addSlotToContainer(new Slot(tedf, 9, 134, 90)); + this.addSlotToContainer(new Slot(tedf, 9, 146, 99)); //Petroleum Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 146, 119)); //Sulfur Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 152, 36)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 58, 119)); //Fluid ID - this.addSlotToContainer(new Slot(tedf, 12, 8, 108)); + this.addSlotToContainer(new Slot(tedf, 12, 186, 106)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 150 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 208)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 04b901816..0db5f2f29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -1,9 +1,14 @@ package com.hbm.inventory.gui; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.util.Tuple; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineRefinery; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; @@ -12,6 +17,8 @@ import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; +import java.awt.Color; + public class GUIMachineRefinery extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_refinery.png"); @@ -21,46 +28,100 @@ public class GUIMachineRefinery extends GuiInfoContainer { super(new ContainerMachineRefinery(invPlayer, tedf)); refinery = tedf; - this.xSize = 176; - this.ySize = 222; + this.xSize = 209; + this.ySize = 231; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 34, 52); - refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 16, 52); - refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 70 - 52, 16, 52); - refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52); - refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 30, guiTop + 27, 21, 104); // Render tooltip for column. + refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 86, guiTop + 42, 16, 52); + refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 106, guiTop + 42, 16, 52); + refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 126, guiTop + 42, 16, 52); + refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 146, guiTop + 42, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 52, refinery.power, refinery.maxPower); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - 34/2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 4, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(refinery.tanks[0].getTankType() == Fluids.HOTCRACKOIL) - drawTexturedModalRect(guiLeft + 64, guiTop + 20, 192, 0, 12, 26); + func_146110_a(guiLeft, guiTop, 0, 0, xSize, ySize, 350, 256); - int j = (int)refinery.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j); - - refinery.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 34, 52); - refinery.tanks[1].renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[2].renderTank(guiLeft + 98, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[3].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[4].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); + // power + int j = (int)refinery.getPowerScaled(50); + func_146110_a(guiLeft + 186, guiTop + 69 - j, 210, 52 - j, 16, j, 350, 256); + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); // default + + // input tank + FluidTank inputOil = refinery.tanks[0]; + if (inputOil.getFill() != 0) { + + int targetHeight = inputOil.getFill() * 101 / inputOil.getMaxFill(); + Color color = new Color(inputOil.getTankType().getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 33, guiTop + 130 - targetHeight, 226, 101 - targetHeight, 16, targetHeight, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + } + + // fucking kgjhgdfjgdhjfg + // func_146110_a lets you set the resolution of the source texture !!!! + // 350x256 texture by behated (the pipes wouldn't fit) + + // pipes + + Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); + + // Heavy Oil Products + Color color = new Color(recipe.getV().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + + // Naphtha Oil Products + color = new Color(recipe.getW().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + + // Light Oil Products + color = new Color(recipe.getX().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + + // Gaseous Products + color = new Color(recipe.getY().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + + // output tanks + refinery.tanks[1].renderTank(guiLeft + 86, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[2].renderTank(guiLeft + 106, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[3].renderTank(guiLeft + 126, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[4].renderTank(guiLeft + 146, guiTop + 95, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 24ad50e60..e0355c85d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -606,7 +606,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setThrottle(Context context, Arguments args) { - throttle = args.checkInteger(0); + powerSliderPos = (int) (args.checkInteger(0) * 60D / 100D); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index 4c6ab43d8..26d6dec14 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -300,7 +300,7 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv // this also checks if it's even a string at all if(args.checkAny(i) == null || args.checkString(i).equals("")) this.txBuffer[i] = ""; - if(args.checkString(i).equals("")) { // if it isn't an empty string + if(!args.checkString(i).equals("")) { // if it isn't an empty string if(args.checkString(i).length() > TileEntityRadioTelex.lineWidth) { // line longer than allowed this.txBuffer[i] = args.checkString(i).substring(0, TileEntityRadioTelex.lineWidth); // truncate it } else diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png index 75f2072e8ad3350f6a6cec7c8e0f1461a4d1b135..6dbf4ffb16d132e7219a706f7b5c2978f805b159 100644 GIT binary patch literal 8584 zcmb_?cT`i|wl6BZsYnw96h)AZ(nN}YsPs;NkkCP-Ne?9;MO2E|AQY(rLMWjn5eS4L zARtl{LJ|Xyr#m z#oBW6p5hSEc}hifg-`pQx)}_*I_{ak2ZDEOgz9Px)C5<=P@gZBR=*OMd0k>p%R`vO z1nQJn^iT|AV*3*wX>4xBA@rr$WHQG@y(zcGJ6*>of5_xnp4NE_@QRs+Is2cVJm^a4 z=DRSXXl6DO{=2gFXU51`na2k!u(e-zZn?UAPuqv*ze}qR-F1TRe)m2Oo%@!yID*RS3Q z+mq(qh2wVTxfGP1Hg2_>6M8$}2@}Hqyvx>8B}JaqfXNploj&0Drg-VNbXyd^>5zwIok6H z{B#%*X!S9A;fu3cM%JAmuhkLP>;QY+fbN~VcuC*v<0TM&32BS8QwxjOYZWjkZ#-C% zn5u^#?s%XCCJ!fes~Sj?@smMalJw9CJwchnU-PQ-7%?$14{?7CwKv!LGzz}z?sa&y z*=x84o7KVE59e!5#ZlN{loR+tu9&9LEL;y}9lBV6s7kWHVnTdA?lhe_TMFOrwhiQ1 z;ll4}5riFUnH4M-ZqD5O$aeiTgIyM$!c_D_%}T-_RXdkHaJ|}-0s2O!ZYq}7W(*$@ zvGZmreE*;=akM#_4wCb`o!9$Ush2mNywiDSa^CA zspyl}{}N+M`JHz^@iD^4Sr3uMC|`QFiLE_h|4%S~1fV4Wn;~kOX}zE4znp90tdYWz zT3r4Ts6&xHv-fVqpla}TKL&Hqet$J%@~Du>yu`oQ*Haw9B)oU2D2~A;_A=`wMPj2Q zCnrYl>c?6-lZPj#+hD#Ai@VNVBy49C-=388PVX#%HBi^|u(m55Oqlspk+&jb2uD%O;glwT=E-@CK;CCnSDZ@{!p zi=<}&;;WUmOcP)BmCWijcmHINxwO?K=Vk!x0X~~`Ln3sTe!4LL31K&{G*5?I|8~F} zBc-mFQ)QjDdMKWAyR+ScPMgWwGW^w=`nUoFoO<(W>u=k0Mg*LeZ(WGMSgLgV%nD`q z&UiTF_z(E(=Q4@#>0Spazo4}H?aXvwWx52i@2O{adGE1^-_;gp@cEy86DxfSCuA}c ztXMwSbY~64sh1mYnv$#+8uxp=1HsypN#R>pv7S7Q=F!+r?OU3CGg8sp(Yp{^>%hYR zIE61_H7fan>jz6m%;~X@50VU2_d5;iq+Kk|WD9$wdC_M0&PlNp6BBKJHoNC`dk1Ut z=ALfBCK0#iSB8xJ2YSvB_ z=a4a}Q0Rb&?wh5PaI1Q`P2FY`y<7Nz@@184-Nks zNYb%h;kvGdze2a3cviswFhJ#?KKltc_5wW^3C76hH(5#zN|{#(G&0Mb`^Gp?bL~8? zonn(LyBAT$tOE1in^*G#$l72U6Aqe$W0|b)*kcy>L~@Awx;Ft{+=U-q^P=n>aYqFa z)X2}qP|Lj$m>&%mX0-_$qYeu(;sUOdE=rck-GlC>gr-e0`aC;sLst|g;h(|(c|bBe z@atI)mfNr()h%NHi5Ac7dS*SG{*q>nHN#lY`0ZCD?pvFCR13&vic1*NdQ+OTUJ%jY z&OZ9kWf_|FR}oLJA*j__HS&926T3&v8p&;awG~m|qv6xH11qT`nVFm=Zv+ZhegXvV z4=VR*^0gbyMyjf|&o5CI3Cul?ms>y#I>eRVFBu?a%j(XuvYQzCb4bxC;q^ByK%o7y zwVnMQYxLthTc!&odCu}k)1PHVtK0m#ZK30nlw^R}O)QS!>G`=imfb@cF-2{F8My?F zxc!htE?+pE2tQc-RNcUGCur^44kl!+cD|~CMPV|`4+Hvs_B8vmdJiI%#=D$LU{d2W z#juuK*GTSfm2@J@Krj{ixXUq~q+r;H-|N4^A%=WMnxIu*ww|*VB~R50x*cP$rcT-I+C)bw zNHk>HxU2HaidbFz+NQkP}?OukSTF_WXN{p{qqW_NYFQ}3(laygYmIyiBJU-gw= z^&!Urg!Tfw{Cm4;T%gS(l?fJ}$Mi*=**f}-L$0~HmieR7F}D0SME}Ch+XQ6F6zxv) zlh)R=YAY_X!^s{W9#&suy_~=5_x9C-WKJq*)#1(jPx~n?^EcMf@Z*7oJfAVqM5gQ9 zCU(Qbt;HW+-5r*S9dkP-ET)f0sYY{78Ts0~Hr?ToLuB+SeJaVEoJf9D#lO;GRo{8cu zi~Tn>-FM{Pa?-3bb3Xpi_X6GAXt+p_0!v;eh@0OXw`Cl%AczsJdyW^Iej4`BL)tbiEg?fy$5u4C zE{AE-O8dd8A#OQX;yBtJguw<}3NY5Po!-4|7Q>0BchTpYo(>D|e-ht-H~TBWmAn_# zuDx~Aaw`|Q=D%n9fq8nZoKz-~lau9mA}{9ke=?Yp@5mNA@)(aUN7>Xbm)BnxHq7z} zJLh}(*3Tvm{Q#6r#_qo8UXWbdvEO7P+$+L^+;d?%*&TsjuK|o#O_kz@MQ=dbeJ=Jo z51j_jty(~m5IRBRP_F`wS)|-T7dj+_1zPVkoGmyFs&GCEF0r^FTkE9gPm)yG)Y~Z< zMhV=0yXv{On5#K55u1cM)?1mE!BFO2%D^H#-IkU5&B%`ex=|S{db0h&Y4} z!f5CDrMPnmp7Q7FOcJ9MZXRi89arOCR&Emzd9}6X=`1oa&?JPBM}6dD5GR0=G3Md9 zqD{awHcu3zGcCVnx56p@+A&gR!5W>>aqg_}FPAIl>K{D{O|^e0+g>6wVJ+KUACRz{ z7vy;~0wEkz#*S+xlBI6(dVCp0j7==9=Tiy)RcEr6Aylcu?clr`I0)7MOP*Q^# zn&vZEVC}pt25ljrn#2>#HwybFm1Qh&KPG>rJ_i$ev&Z*b&*h7s>ST1bAoJYWaPbQc zj+h^F7(MF6y*h#n( z73@nLvW0m=BZ_}hU({qWtB^-~OoZU5Z}noQYUC|bIUvgC!O?JhC9e&M4Y|p~egDPF ze-V#RN|8ffa8{UrP0#7kcpbOGB+aF-cxW=|U9I2zerH^@*ZbWwYf8(@RKQI2nt=oF zLh>Uw#w;yoxsWFUE_M`0_&}oG#|x*T?+%-gM`_rVX{VU7=Do+9rYy|9ZjIYb+KSQ! z`Iiv2vg$gMTG{^!ph+2fFf8EYo5hHVS15Iv_`B?IKtt1`Tqao8}!t@aR4 zisYcgsc(u>xw^zELuY00$Pe;g*z2f8n$uN2+-NTur{%(#mCMjBDVv3dyFd0I7rerc z(wn#Yd%B#Vw`@t3u~qGLq_9oHy_jaV&Nsm~Ti=r)$MH^eo@4SZgS8S#WTUzLAqVNt zM12{5`()c9#wWlY-z~0I>mWo4?Y4?$Rl#4(Jm8z zGc7+COH}cj`xXPPdahx+HF7-)UD|B%phWDiF2z2*EJrPq7+kl!?t`6`srsZF6;cMP z)f+fn!f=p-k{{Xa)Z%n5EB=S@!KI}oo*s)E;4eTXI=)#FmiPtO{U2=IzB#GI0Z*KC zWp@jU+Sc(fKO`KJ^d z6#oZLODigur0|?AsRtRZFWlwA4t``q>krrJA%orGv|e^@3h0@=ih?WZ=HIjxqEeAu zlvM8@@zh;IkGWeiV;nz+NYoKMmnB;_%~+sJ<9W91Ny>j7u8y$W56Vd`drV@xbhx|T z%Rh)%S8yV!lA6xA?2VVaTRDrbGW+$y1h*gy*@yZs>V98kGpnnyuxIcrd zdw}u&epzwlHYm0UMrx+xMPCp$aB4tboddK*nZ{d_6JxP4vh>J&7m>?MW)zb2Rt}l%xEmB%2fqdmsxzW`RZVBr*S((RllmK(k zk46<2I%ejI0ZE`==a`0y;U;#q?)dpLhIWH`FSK_bEAuFB=c}T<@ zB4NdkZoe$thIQCKY1V}ec~-<UJ9ml@PM;_Jdv_VqjV4uLi(;u}-!I4S(B602w6iGCFk5vM6PEDI&!h0n zpwysb5`(j-o%Ro66hU%CNLsU|{6A>l^@q605-n= z3A~t^YdK4(IW6nBn3UY*fv$RQJT=e+lS=j+3Bk1k%6{`N@WB6G7FNVXn!RUa)m>+# z(y`;0Q4|E--YHuW&H(1Wh3RId{dbtgGsErOm2UAgSaaRm+1XjAo8Q7=Y8l&D_}(Wf zA(uwfGQ-*hsK5LP=C!!|^rG+O)Zj)4{KldY>3)kS-sl9iO5$_2!M4Cvd=`OS1yJt? zV_!lU{-zCgYguS|4aUboe|h88bHL^QqeL-dgyEX%>t&wI0^C4tW2e_jdMjre_FTQ0 zH|<|2s8AvsgX|eEs1tg6alQxD5lY@B)X!H37^XOFapGLRe@GLTkZ?{)|0s2!m;5iZ zQ@94Qg>S#79b+r64_XgQl6V5di0rNUdP-EkOw>W zrPgnr6B-mXKT2>GsC(L?V9-FbUJj|RYA9P46Gtw%AE}z2D1vdskJjgB>nn$k*em6& zAANHmUgK$H2&YGtm)F5RCh|OIqHo}r!UpyR7HItoy@*kCYm@kgoBecf z7WD2sjydUgHnH>1 zn=q7k;k)D6jV~7r^?-~oYsDD8v&jvh!LU%va&AkZ$QEEHQ6Gi{F9!?wh?BxGH=Ka9 zKvL?EQc5QvOyoZ7;Wxl|Pp)B@ZF(}cON<~uf@(WLcUFRvSN)a9=DU%sBg2x( zQuexNraSUQF~Rr^iesgJXzztSJ>gAP`Mu`D-|_hu!!Z`ySOotA@_Z` zcbP?|J)`3g$gHGA&&rWvABDV5G+rP`>`=mD?yLR+_qi?nCa*`RWn6B)|HQ$~&8;g> z0mFYLS>o`>gC26IsL48lP+W_qq5pP{MU#HqlBB_k{5`8baQ`XE8`KsGO^yqCLpfuH z14m&ORJhW6=2_$l#M$w`+wwFO9p5;$El)q~5-@{L=dhAh(EYYwRUOxRN!3=@er7BQ z`kUtVC7Q10(jHSiUcOs4z0n~M1U}5tkTqJBKYtJq-=Nk?0OR!!*)GPl|L9z~o4D8{ zcuiA5`rA1jfP;3*p3*X1ZX@=Jwc}SQ_nqO%q1?v`Q1!Wu(Ni3)ky?tF!KOVgkz8Bs z@Zme(A9ts}B-kT+yks6-!d-eT!}p%rF@q&A1^coO1zsT+T*jY!CCUF9Bg+UCy@GFR zD#X`}G$q8=Y2dvocezT!`sUX0n22M_N}8bkAS)El6IXmw5D56~MAP!G2vljQk72E* zYr}AzmZ&eE0!bzeBiSD-&9$f7QT6TB=U(jz9{mf8LlSRgYIKVGie{V-xMDokR@1eDdDe8!a_7maZVvCPtf7&@P zDm^PVn*!CrEgFEt9^CRCu4cwj(JJ#fm-c0RCS3(5kNKh?g8o)v#^@6b)kmA^%=}nd$wz?`^Ve98DqLv2Gj<1fd`YiX`Q1)B2iNIXFFiR7 zXgK=QjgATm4i5IiClcFAN#-OS$UnZ|V9tCRuh?SYR<@#L@sD%EL zWp{lprCWQSq9U$UltSZaybxEDTl3p_rTj)aC2p;Dr%&^&b0`=@Mw)JnCOhpB>C{qJ zGYNC}j}I4)C%F#}Nzc`kYuDR5MblMJH2@v>z>&0IsR^v%HK|gieEJ1 z%(ofCroHTpHZ_K6$D-UK4fNrDucHESb9EG5@}%g>@p_Tt(8<082{dJiKA0}9D*K0E zGgvkVThyCJBvW?r>#Bh>U*9A~>(I7(!M8BjhO$Ery29-9f!EyF7x+#B&bV4eu;lRWUt;=pm%VbU}6dpSD;W30pN>^nL#0TD*PX}=VKaZ!-2yb*vPN?1^$t%^i zpGsCMO8=c$_fXgBuZ=TD);}!5E+R|Hebtw-nBl|s$DgdzSv+U-XNl#ka{d=*HbL_S7l*|<-4p@W4Z zIQzF|tlyo;RFC3rv?b#o;48s?r;_$~hDR7OgqI5P?P;gI{bKbg=7u(#aKwE^H8oz* zs%(39VS?h*BaDa!7qzp<5MrCJx(+oaUb*{Vc&-&k^Vbpf39*lP1&B*YiTPh83`(_M z)?^7VS{=}ck%C)BRBoOTxyRi$VcSvIktEO?SZ_Zld0Z*_;^{b0NAVxSc$Qas=korL zXfII9r1NeR6cU%JU#aTBh#b5BiRASg)TPnR>DMrOSGh}wzF|LXK7Bk-K?!nfnQY8O zzwJoq8JHl&Dv1AF+1G-1E}V~rp!E|rya0EQdwqJyjU;LElC5w(xHnXXw>M3A2uTpt zE)ma&Yfw91Yc$WXUK;oQSw&9?sxf^P^7Z(`v0P(n3G{T&-eEx7gusHZnXRB^-&m*I zMLMJl{^i$p?!lH#n9PX@PiC*XMNkmt`5u#H41bu-;og*{DuovjkP8M-4wy9S4Noz z^M-HTls=w1nF@%Pgnp@ME|g6Iy}huk41J>o?0TDVf<-?CQ3L+<_4mpeyUpDKJ5`~^;@cNb;Urr&P@cKW>=I`Lmx--vSJbdm?#|W&F2vOI0 zamPpm5aiH^bPG@)@CRCJKRm}UWn4|BKvF9(zlj7U+42D?TXh(<3hHaJ2nsSdd~=vv zaxzrjhyn8Ii z(EtaIYDif84cKAsHcTu3oasjmh_letzc2G*McAx67V{V1&Lob=AgIPC8ky?h}#YqBM}EN8ZK_NYJ3Z zK0OcAYd*s?>OP)KoDO(H3qcR@olI216cUXx2~|>WSONZNzYV=k2Ez0Iu2BWc8%wP0 zvp)@MjmSW$+JUG3e`BKVjFt?Ix0*j)91pO7`_Q-ztk*ntmd2Z9>61+YSp??%$lq80 zUwZj}zmWe^ga5~s{1xK)n=|hWz1$wWy40!qBjMo2r|_=XNdyo-mTydq!9wVRt1p&J|IF6fv|;;ASzJVYei)- zEmk%mC=kSjM6seJAWK*bASfC&*RZd$P0&tjXQuN^@1O5G_n!Bh^PcxS=eem)4%Sj@ zH?IW%NZHz0Is*U`Uts{fMtmFzF9{GI$OsEtSG4$vM;}W8VBI-e%YCjf`Jw@{45g+` zP2+~UL{Cf~DRD|cIKw7&eH&3jVk6q(^tEFt?J}}Kj8qL9nBIXa4X4%pb1%3c9A>4X z0yc|?ZbdHyc8+8Z@+@V#0ZShWi=Mw;7X^9HSjACW*}=#vUveDpMrXrGkLYp;>so2e zUK-GsTEZIKa4)yAK;N5hyd~$~Z*1{4d1qZ+otp3CkAiRc*thN-5_AvdQJv`B=4TpT zs;a3q4S)N3kY>MQCYN>#iGH_;d&^FHrFGn-_p!dIL=J8G?n!TZPx7*m0PzFvfl1@yoGuDS|DfA+)RB*b6lb`m#wZeZO+ z+H~~A^@$ATCCbWj?o@scy>@o{A;ch0yH>w8^D(}jUoS_XYj_M-mz7=9>=i{h_teIZ zK}=h+rRDOXsIDEmaFxk6rI|2&0;yfYwa>~aEdvn$eu8qB=|3RugwQzv*aigO-%`-i zF)2kYBw&3`6g<6&%6eoE6F z5)O@eeJ4dHPypc>cyXsPyT|23!2>Zb=MX4JaU4NXuVCSmWW?AS6$)SpE!9EJ?I079 z9-O4kWZ~O;k#^1@pbAB-ZY3_t<7{tM6q6ops7bHk3nd?KR87t6_TRv9FF39Z%egH9 zeurIxX=t&gdl6NK193AThua+|XZ#xMw~`~NCoo9Yy4(YC;(EWM?sSs-l-2kya%g7o zP^iF>fO5)ZWqWuP9RKh|47lnanO(Y{lKq@VpIRWzHyTznsc?3Y!}GUyQEo}+(ZwyG zvlJ4~%EUj#w~IB(@$PR zfsvIRwXLr|cl&d^McGv*byI1>8%e>T;zEW^=^DSRF_)W#^_F4M6;>$~ldKq|*In+K znnB9<1)pp9;wh< z@RvMp5$7(U%b<%T=ypdt+n9YlXoSY(XLWk9`YK%AwyMp-I8VR1 z)ci6`S|)pVeEY+baJz}t4moK^Ag~Gz4ZYZqwlCZ}qLf^<7Xxcs4j5M4@Wh%5@}aRa zAS+o2-a+rg7l-Lgm|f)FW^ymbrQ5tT<-qI?PIK!^hm1?bc(3B>2s0lu^lDhz<&!-o{QuZpr1cxx^ z9N0&hE!;I03)fn6^m&K<1j#|^Yw2TWPp(`J)<72wdZN!592DKVBIGo*=g|pvOE)6t z3`lvgkuf!w>oHEy6}Dq#7SA2^#)*nGZ&R7qX@!FdJ1*cu)bn~U^BovH06K9pz_(|x zqt%S~UV$@Uh`R3pKJLMcmTm!G3&uuY#S} zb&7EaM%mZTMN!p9p5#CKp}9U-Wzy(SNz$$g%WFYbtSpbUBb4^Yl-$F+P<7TPC#9q) zWm;!1jQXZscwT|b7ehihD+=QnZN}gL=(4e?RDnVyIs~y0S%;ploI%n%j4x zX+wC_qV8!t2ZBA-??-M^aKlEl_U85Ow=6R3;$g@J3-$k@OSI{X8z~E^a(sRqnxrZ%=?p~!S zZGvxa?%K+E8I~oAD);-9^mAifEMNAFNzn`tB<##ed9j;zmDj>nB~O0yq;|e(gl4pj zVl?Ku0NiV=moFSPr@VH&{8f#0LI4aMvwO&r4=r7|Y)-jlqmlTSp?@mik= ze2jA7jJ}t#(;oA;$BVVwVPPX#DO$$yBb^}v>4+jnZiuSD>guKE=G=7C{Q-!y#W$(z z=`8_zvB|3wkl*S(X{ZjxPmNEaPD0DZtkzDZY3vwlgzXRAi&=g@w1T4W^3ljguPhny zc8f>FbE^tK6B=-K!a-OX07~lr(}bu-WA#3g_zRB*y&RRj$d4DxVjtDVshA6YRJ=Q& z+dL}C$QZ=mv!mj*VSgj+7fEl-?xmNN9joixY9>K0K@_;Fb?Doxt4(x2SeK8sRF)#& z(S$3nN6E+-sbs3n4mQfCViHS=8rEyV?UPOZUm9QJTje}#sVXdCCcO_+lP2?eURpA~ zxK*M4W552}y8R1twc2SiuHXeG5v1>t*^a&V$A<2{EAgb1!)tdcrhJW?co}Eh3Rl`no-s z08p;!Sg0Mhg(DpT1nneFKz2DeS2T$b|78EYhn~8KE%G Date: Sun, 11 Aug 2024 22:50:31 -0500 Subject: [PATCH 02/23] shit shit shit shit i forgot something --- .../machine/TileEntityMachineTurbineGas.java | 36 ++++++------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index e0355c85d..a03bca0dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -665,41 +665,27 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement public Object[] invoke(String method, Context context, Arguments args) throws Exception { switch(method) { case ("getFluid"): - return new Object[] { - tanks[0].getFill(), tanks[0].getMaxFill(), - tanks[1].getFill(), tanks[1].getMaxFill(), - tanks[2].getFill(), tanks[2].getMaxFill(), - tanks[3].getFill(), tanks[3].getMaxFill() - }; + return getFluid(context, args); case ("getType"): - return new Object[] {tanks[0].getTankType().getName()}; + return getType(context, args); case ("getPower"): - return new Object[] {power}; + return getPower(context, args); case ("getThrottle"): - return new Object[] {throttle}; + return getThrottle(context, args); case ("getState"): - return new Object[] {state}; + return getState(context, args); case ("getAuto"): - return new Object[] {autoMode}; + return getAuto(context, args); case ("setThrottle"): - throttle = args.checkInteger(0); - return new Object[] {}; + return setThrottle(context, args); case ("setAuto"): - autoMode = args.checkBoolean(0); - return new Object[] {}; + return setAuto(context, args); case ("start"): - stopIfNotReady(); - startup(); - return new Object[] {}; + return start(context, args); case ("stop"): - shutdown(); - return new Object[] {}; + return stop(context, args); case ("getInfo"): - return new Object[] {throttle, state, - tanks[0].getFill(), tanks[0].getMaxFill(), - tanks[1].getFill(), tanks[1].getMaxFill(), - tanks[2].getFill(), tanks[2].getMaxFill(), - tanks[3].getFill(), tanks[3].getMaxFill()}; + return getInfo(context, args); } throw new NoSuchMethodException(); } From b98f2350b6e588f2f937c2d9eef53d6b0f715cc2 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Aug 2024 23:40:50 -0500 Subject: [PATCH 03/23] man i was stupid (fix another bug with CCGT involving starting/stopping) --- .../hbm/tileentity/machine/TileEntityMachineTurbineGas.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index a03bca0dc..f7e3349f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -620,15 +620,14 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] start(Context context, Arguments args) { - stopIfNotReady(); - startup(); + state = -1; return new Object[] {}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] stop(Context context, Arguments args) { - shutdown(); + state = 0; return new Object[] {}; } From d70ea038a0893d723b0b35077597e1caff285157 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Aug 2024 16:26:09 +0200 Subject: [PATCH 04/23] an big slappy --- changelog | 5 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 - .../hbm/blocks/machine/MachinePuF6Tank.java | 104 +--- .../hbm/blocks/machine/MachineUF6Tank.java | 104 +--- .../hbm/blocks/network/BlockFluidDuct.java | 103 ---- .../blocks/network/BlockFluidDuctSolid.java | 88 --- .../java/com/hbm/crafting/ToolRecipes.java | 3 +- .../java/com/hbm/entity/EntityMappings.java | 5 - .../com/hbm/entity/missile/EntityMIRV.java | 3 - .../hbm/entity/particle/EntityDSmokeFX.java | 67 -- .../hbm/entity/particle/EntitySSmokeFX.java | 80 --- .../hbm/entity/particle/EntitySmokeFX.java | 76 --- .../hbm/entity/particle/EntityTSmokeFX.java | 71 --- .../entity/projectile/EntityCombineBall.java | 571 ------------------ .../entity/projectile/EntityRocketHoming.java | 11 - .../com/hbm/interfaces/IFluidAcceptor.java | 29 - .../com/hbm/interfaces/IFluidContainer.java | 9 +- .../java/com/hbm/interfaces/IFluidDuct.java | 10 - .../java/com/hbm/interfaces/IFluidSource.java | 32 - .../java/com/hbm/interfaces/IGasAcceptor.java | 11 - .../java/com/hbm/interfaces/IGasDuct.java | 5 - .../java/com/hbm/interfaces/IGasSource.java | 17 - .../java/com/hbm/interfaces/IOilAcceptor.java | 11 - .../java/com/hbm/interfaces/IOilDuct.java | 5 - .../java/com/hbm/interfaces/IOilSource.java | 17 - .../java/com/hbm/interfaces/IReactor.java | 21 - .../container/ContainerPuF6Tank.java | 85 --- .../inventory/container/ContainerUF6Tank.java | 85 --- .../hbm/inventory/gui/GUIMachinePuF6Tank.java | 50 -- .../hbm/inventory/gui/GUIMachineUF6Tank.java | 50 -- .../java/com/hbm/inventory/material/Mats.java | 119 ++-- .../inventory/recipes/AssemblerRecipes.java | 10 +- .../hbm/inventory/recipes/MachineRecipes.java | 2 - .../inventory/recipes/anvil/AnvilRecipes.java | 7 +- src/main/java/com/hbm/items/ModItems.java | 83 +-- .../hbm/items/machine/ItemFluidIDMulti.java | 79 --- .../items/machine/ItemFluidIdentifier.java | 74 --- .../com/hbm/items/special/ItemSyringe.java | 12 - .../java/com/hbm/items/weapon/GunFolly.java | 15 - src/main/java/com/hbm/lib/Library.java | 26 - src/main/java/com/hbm/main/ClientProxy.java | 11 +- .../java/com/hbm/main/CraftingManager.java | 13 - src/main/java/com/hbm/main/MainRegistry.java | 28 + .../render/entity/effect/DSmokeRenderer.java | 113 ---- .../entity/effect/ModEffectRenderer.java | 117 ---- .../render/entity/effect/SSmokeRenderer.java | 120 ---- .../render/entity/effect/TSmokeRenderer.java | 113 ---- .../render/tileentity/RenderFluidDuct.java | 194 ------ .../render/tileentity/RenderTurretBase.java | 2 +- .../hbm/tileentity/TileEntityProxyCombo.java | 100 +-- .../java/com/hbm/tileentity/TileMappings.java | 11 +- .../bomb/TileEntityCompactLauncher.java | 31 +- .../bomb/TileEntityLaunchTable.java | 31 +- .../conductor/TileEntityFluidDuct.java | 15 - .../conductor/TileEntityFluidDuctSimple.java | 102 ---- .../tileentity/machine/TileEntityChungus.java | 86 +-- .../machine/TileEntityCoreInjector.java | 32 +- .../machine/TileEntityCoreReceiver.java | 26 +- .../machine/TileEntityHeatBoiler.java | 65 +- .../tileentity/machine/TileEntityITER.java | 79 +-- .../machine/TileEntityMachineDiesel.java | 19 +- .../machine/TileEntityMachineInserter.java | 351 ----------- .../TileEntityMachineLargeTurbine.java | 76 +-- .../machine/TileEntityMachineMiningLaser.java | 61 +- .../TileEntityMachinePlasmaHeater.java | 38 +- .../machine/TileEntityMachineRadiolysis.java | 76 +-- .../machine/TileEntityMachineTurbine.java | 18 - .../machine/TileEntityMachineTurbofan.java | 31 +- .../machine/TileEntityReactorZirnox.java | 103 +--- .../tileentity/machine/TileEntitySILEX.java | 40 +- .../machine/TileEntitySolarBoiler.java | 82 +-- .../machine/TileEntitySoyuzLauncher.java | 31 +- .../machine/TileEntityStorageDrum.java | 72 +-- .../oil/TileEntityMachineFrackingTower.java | 23 +- .../oil/TileEntityMachineGasFlare.java | 19 +- .../oil/TileEntityMachineLiquefactor.java | 53 +- .../machine/oil/TileEntityMachineOilWell.java | 9 - .../oil/TileEntityMachinePumpjack.java | 20 - .../oil/TileEntityMachineSolidifier.java | 20 +- .../machine/oil/TileEntityOilDrillBase.java | 74 +-- .../machine/rbmk/TileEntityRBMKBoiler.java | 86 +-- .../machine/rbmk/TileEntityRBMKCooler.java | 30 +- .../machine/rbmk/TileEntityRBMKHeater.java | 86 +-- .../machine/storage/TileEntityBarrel.java | 75 +-- .../storage/TileEntityFileCabinet.java | 29 +- .../storage/TileEntityMachineBAT9000.java | 13 - .../storage/TileEntityMachineFluidTank.java | 75 +-- .../storage/TileEntityMachineOrbus.java | 15 - .../storage/TileEntityMachinePuF6Tank.java | 245 +------- .../storage/TileEntityMachineUF6Tank.java | 247 +------- .../turret/TileEntityTurretFritz.java | 20 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/ammo_barrel.png | Bin 279 -> 0 bytes .../hbm/textures/items/ammo_barrel_diesel.png | Bin 346 -> 0 bytes .../hbm/textures/items/ammo_barrel_mines.png | Bin 323 -> 0 bytes .../hbm/textures/items/ammo_barrel_quake.png | Bin 296 -> 0 bytes .../hbm/textures/items/ammo_barrel_waste.png | Bin 269 -> 0 bytes .../textures/items/ammo_grenade_faultline.png | Bin 291 -> 0 bytes .../textures/items/ammo_grenade_inferno.png | Bin 282 -> 0 bytes .../hbm/textures/items/battery_steam.png | Bin 325 -> 0 bytes .../textures/items/battery_steam_large.png | Bin 408 -> 0 bytes .../assets/hbm/textures/items/battery_su.png | Bin 240 -> 0 bytes .../hbm/textures/items/battery_su_l.png | Bin 240 -> 0 bytes .../items/bedrock_ore_fragment_bismuth.png | Bin 0 -> 376 bytes .../assets/hbm/textures/items/circuit.png | Bin 10397 -> 10376 bytes .../hbm/textures/items/circuit_aluminium.png | Bin 382 -> 0 bytes .../hbm/textures/items/circuit_arsenic.png | Bin 474 -> 0 bytes .../textures/items/circuit_arsenic_raw.png | Bin 420 -> 0 bytes .../hbm/textures/items/circuit_bismuth.png | Bin 530 -> 0 bytes .../textures/items/circuit_bismuth_raw.png | Bin 427 -> 0 bytes .../hbm/textures/items/circuit_copper.png | Bin 445 -> 0 bytes .../hbm/textures/items/circuit_gold.png | Bin 513 -> 0 bytes .../assets/hbm/textures/items/circuit_raw.png | Bin 522 -> 0 bytes .../hbm/textures/items/circuit_red_copper.png | Bin 432 -> 0 bytes .../hbm/textures/items/circuit_reix.png | Bin 306 -> 0 bytes .../textures/items/circuit_schrabidium.png | Bin 538 -> 0 bytes .../textures/items/circuit_simple_overlay.png | Bin 353 -> 0 bytes .../assets/hbm/textures/items/clay_ball.png | Bin 177 -> 0 bytes .../assets/hbm/textures/items/d_smoke1.png | Bin 138 -> 0 bytes .../assets/hbm/textures/items/d_smoke2.png | Bin 129 -> 0 bytes .../assets/hbm/textures/items/d_smoke3.png | Bin 113 -> 0 bytes .../assets/hbm/textures/items/d_smoke4.png | Bin 117 -> 0 bytes .../assets/hbm/textures/items/d_smoke5.png | Bin 114 -> 0 bytes .../assets/hbm/textures/items/d_smoke6.png | Bin 98 -> 0 bytes .../assets/hbm/textures/items/d_smoke7.png | Bin 93 -> 0 bytes .../assets/hbm/textures/items/d_smoke8.png | Bin 93 -> 0 bytes .../hbm/textures/items/designator_range.png | Bin 293 -> 0 bytes .../assets/hbm/textures/items/discharge.png | Bin 1055 -> 0 bytes .../hbm/textures/items/discharge.png.mcmeta | 3 - .../assets/hbm/textures/items/empblast.png | Bin 454 -> 0 bytes .../hbm/textures/items/essence_unstable.png | Bin 242 -> 0 bytes .../assets/hbm/textures/items/essence_uv.png | Bin 246 -> 0 bytes .../hbm/textures/items/euphemium_stopper.png | Bin 273 -> 0 bytes .../textures/items/factory_core_advanced.png | Bin 301 -> 0 bytes .../textures/items/factory_core_titanium.png | Bin 304 -> 0 bytes .../hbm/textures/items/grenade_cats.png | Bin 764 -> 0 bytes .../assets/hbm/textures/items/lithium6.png | Bin 377 -> 0 bytes .../hbm/textures/items/missile_skin_camo.png | Bin 296 -> 0 bytes .../textures/items/missile_skin_desert.png | Bin 304 -> 0 bytes .../textures/items/missile_skin_flames.png | Bin 290 -> 0 bytes .../items/missile_skin_manly_pink.png | Bin 205 -> 0 bytes .../hbm/textures/items/missile_skin_metal.png | Bin 217 -> 0 bytes .../items/missile_skin_orange_insulation.png | Bin 391 -> 0 bytes .../hbm/textures/items/missile_skin_sleek.png | Bin 230 -> 0 bytes .../items/missile_skin_soviet_glory.png | Bin 204 -> 0 bytes .../items/missile_skin_soviet_stank.png | Bin 446 -> 0 bytes .../hbm/textures/items/pellet_advanced.png | Bin 271 -> 0 bytes .../hbm/textures/items/pellet_beryllium.png | Bin 341 -> 0 bytes .../assets/hbm/textures/items/pellet_hes.png | Bin 356 -> 0 bytes .../assets/hbm/textures/items/pellet_lead.png | Bin 340 -> 0 bytes .../assets/hbm/textures/items/pellet_les.png | Bin 356 -> 0 bytes .../assets/hbm/textures/items/pellet_mes.png | Bin 357 -> 0 bytes .../hbm/textures/items/pellet_neptunium.png | Bin 340 -> 0 bytes .../hbm/textures/items/pellet_schrabidium.png | Bin 338 -> 0 bytes .../hbm/textures/items/pellets_mercury.png | Bin 176 -> 0 bytes .../hbm/textures/items/pellets_meteorite.png | Bin 188 -> 0 bytes .../hbm/textures/items/redstone_depleted.png | Bin 276 -> 0 bytes .../hbm/textures/items/rod_australium.png | Bin 329 -> 0 bytes .../assets/hbm/textures/items/rod_coolant.png | Bin 313 -> 0 bytes .../hbm/textures/items/rod_daffergon.png | Bin 329 -> 0 bytes .../hbm/textures/items/rod_dual_coolant.png | Bin 346 -> 0 bytes .../hbm/textures/items/rod_dual_water.png | Bin 362 -> 0 bytes .../hbm/textures/items/rod_quad_coolant.png | Bin 430 -> 0 bytes .../hbm/textures/items/rod_quad_water.png | Bin 439 -> 0 bytes .../assets/hbm/textures/items/rod_reiium.png | Bin 323 -> 0 bytes .../hbm/textures/items/rod_unobtainium.png | Bin 323 -> 0 bytes .../hbm/textures/items/rod_verticium.png | Bin 326 -> 0 bytes .../assets/hbm/textures/items/rod_water.png | Bin 328 -> 0 bytes .../hbm/textures/items/rod_weidanium.png | Bin 327 -> 0 bytes .../assets/hbm/textures/items/smoke1.png | Bin 183 -> 0 bytes .../assets/hbm/textures/items/smoke2.png | Bin 173 -> 0 bytes .../assets/hbm/textures/items/smoke3.png | Bin 170 -> 0 bytes .../assets/hbm/textures/items/smoke4.png | Bin 167 -> 0 bytes .../assets/hbm/textures/items/smoke5.png | Bin 162 -> 0 bytes .../assets/hbm/textures/items/smoke6.png | Bin 159 -> 0 bytes .../assets/hbm/textures/items/smoke7.png | Bin 154 -> 0 bytes .../assets/hbm/textures/items/smoke8.png | Bin 151 -> 0 bytes .../textures/items/upgrade_template_alt.png | Bin 283 -> 0 bytes .../assets/hbm/textures/items/void.png | Bin 837 -> 0 bytes .../assets/hbm/textures/items/void_anim.png | Bin 255 -> 0 bytes .../items/wire_advanced_alloy_new.png | Bin 320 -> 0 bytes .../hbm/textures/items/wire_aluminium_new.png | Bin 315 -> 0 bytes .../hbm/textures/items/wire_copper_new.png | Bin 330 -> 0 bytes .../hbm/textures/items/wire_gold_new.png | Bin 304 -> 0 bytes .../items/wire_magnetized_tungsten_new.png | Bin 319 -> 0 bytes .../textures/items/wire_red_copper_new.png | Bin 327 -> 0 bytes .../textures/items/wire_schrabidium_new.png | Bin 325 -> 0 bytes .../hbm/textures/items/wire_tungsten_new.png | Bin 293 -> 0 bytes .../assets/hbm/textures/items/xanax.png | Bin 189 -> 0 bytes 190 files changed, 215 insertions(+), 5377 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/network/BlockFluidDuct.java delete mode 100644 src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java delete mode 100644 src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java delete mode 100644 src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java delete mode 100644 src/main/java/com/hbm/entity/particle/EntitySmokeFX.java delete mode 100644 src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java delete mode 100644 src/main/java/com/hbm/entity/projectile/EntityCombineBall.java delete mode 100644 src/main/java/com/hbm/interfaces/IFluidAcceptor.java delete mode 100644 src/main/java/com/hbm/interfaces/IFluidDuct.java delete mode 100644 src/main/java/com/hbm/interfaces/IFluidSource.java delete mode 100644 src/main/java/com/hbm/interfaces/IGasAcceptor.java delete mode 100644 src/main/java/com/hbm/interfaces/IGasDuct.java delete mode 100644 src/main/java/com/hbm/interfaces/IGasSource.java delete mode 100644 src/main/java/com/hbm/interfaces/IOilAcceptor.java delete mode 100644 src/main/java/com/hbm/interfaces/IOilDuct.java delete mode 100644 src/main/java/com/hbm/interfaces/IOilSource.java delete mode 100644 src/main/java/com/hbm/interfaces/IReactor.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_barrel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png delete mode 100644 src/main/resources/assets/hbm/textures/items/battery_steam.png delete mode 100644 src/main/resources/assets/hbm/textures/items/battery_steam_large.png delete mode 100644 src/main/resources/assets/hbm/textures/items/battery_su.png delete mode 100644 src/main/resources/assets/hbm/textures/items/battery_su_l.png create mode 100644 src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_aluminium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_arsenic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_bismuth.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_copper.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_raw.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_red_copper.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_reix.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png delete mode 100644 src/main/resources/assets/hbm/textures/items/clay_ball.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke1.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke2.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke3.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke4.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke5.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke6.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke7.png delete mode 100644 src/main/resources/assets/hbm/textures/items/d_smoke8.png delete mode 100644 src/main/resources/assets/hbm/textures/items/designator_range.png delete mode 100644 src/main/resources/assets/hbm/textures/items/discharge.png delete mode 100644 src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta delete mode 100644 src/main/resources/assets/hbm/textures/items/empblast.png delete mode 100644 src/main/resources/assets/hbm/textures/items/essence_unstable.png delete mode 100644 src/main/resources/assets/hbm/textures/items/essence_uv.png delete mode 100644 src/main/resources/assets/hbm/textures/items/euphemium_stopper.png delete mode 100644 src/main/resources/assets/hbm/textures/items/factory_core_advanced.png delete mode 100644 src/main/resources/assets/hbm/textures/items/factory_core_titanium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/grenade_cats.png delete mode 100644 src/main/resources/assets/hbm/textures/items/lithium6.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_camo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_desert.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_flames.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_metal.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png delete mode 100644 src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_advanced.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_beryllium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_hes.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_lead.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_les.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_mes.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_neptunium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellets_mercury.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellets_meteorite.png delete mode 100644 src/main/resources/assets/hbm/textures/items/redstone_depleted.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_australium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_coolant.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_daffergon.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_dual_water.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_quad_water.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_reiium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_unobtainium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_verticium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_water.png delete mode 100644 src/main/resources/assets/hbm/textures/items/rod_weidanium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke1.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke2.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke3.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke4.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke5.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke6.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke7.png delete mode 100644 src/main/resources/assets/hbm/textures/items/smoke8.png delete mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/void.png delete mode 100644 src/main/resources/assets/hbm/textures/items/void_anim.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_copper_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_gold_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/xanax.png diff --git a/changelog b/changelog index 498671f31..71781d6b4 100644 --- a/changelog +++ b/changelog @@ -16,6 +16,7 @@ * Standard, special, HE artillery shells and most missiles now use updated explosion animations * Decreased hardness of slag blocks * Removed legacy circuits +* Removed a bunch of random unused items ## Fixed * Fixed crash caused by decontaminating items with the radiolysis machine @@ -26,4 +27,6 @@ * Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first * Fixed autocrafter's grid not properly updating when using NEI drag and drop for the filter * Fixed all carbon-based crucible materials having the wrong ID, this fix will shift IDs but prevent collisions with silicon -* Fixed primary bedrock ore fraction roasing yielding one extra pile of crumbs \ No newline at end of file +* Fixed primary bedrock ore fraction roasing yielding one extra pile of crumbs +* Fixed filing cabinets being unreasonably laggy due to the old packet code +* Fixed the secure access door taking way longer to craft than any other door \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 361f6363a..51c055603 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -763,8 +763,6 @@ public class ModBlocks { public static Block cable_detector; public static Block cable_diode; public static Block machine_detector; - public static Block fluid_duct; - public static Block fluid_duct_solid; public static Block fluid_duct_neo; public static Block fluid_duct_box; public static Block fluid_duct_paintable; @@ -1881,8 +1879,6 @@ public class ModBlocks { cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); - fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); - fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); @@ -3131,13 +3127,11 @@ public class ModBlocks { GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); - GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); register(fluid_duct_neo); register(fluid_duct_box); register(fluid_duct_exhaust); register(fluid_duct_paintable); register(fluid_duct_gauge); - GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); register(fluid_valve); register(fluid_switch); register(machine_drain); diff --git a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java index 4826057f4..e26b9d810 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachinePuF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachinePuF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachinePuF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_puf6); - + } else world.func_147480_a(x, y, z, true); } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachinePuF6Tank tileentityfurnace = (TileEntityMachinePuF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachinePuF6Tank entity = (TileEntityMachinePuF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java index 5f8e45d39..e4ce120f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachineUF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachineUF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachineUF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_uf6); - + } else world.func_147480_a(x, y, z, true); } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineUF6Tank tileentityfurnace = (TileEntityMachineUF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachineUF6Tank entity = (TileEntityMachineUF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java deleted file mode 100644 index 88e054bfd..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ILookOverlay; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuct extends BlockContainer implements ILookOverlay { - - public BlockFluidDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFluidDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java deleted file mode 100644 index 3674da7d1..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.IBlockMultiPass; -import com.hbm.blocks.ILookOverlay; -import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass, ILookOverlay { - - public BlockFluidDuctSolid(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityFluidDuctSimple(); - } - - @SideOnly(Side.CLIENT) - private IIcon overlay; - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - this.overlay = p_149651_1_.registerIcon(this.getTextureName() + "_overlay"); - } - - @Override - public int getPasses() { - return 2; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.overlay; - } - - @Override - public int getRenderType(){ - return IBlockMultiPass.getRenderType(); - } - - @Override - @SideOnly(Side.CLIENT) - public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - - if(RenderBlockMultipass.currentPass == 0) - return 0xffffff; - - TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z); - - if(te != null) { - return te.getType().getColor(); - } - - return 0xffffff; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 0c4af1770..d190636e0 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -95,7 +95,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', STEEL.shell(), 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); //Misc - CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); @@ -147,7 +146,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6654eb051..d6a7a34d2 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -73,13 +73,11 @@ public class EntityMappings { addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); - addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500); addEntity(EntityChopperMine.class, "entity_chopper_mine", 1000); - addEntity(EntityCombineBall.class, "entity_combine_ball", 1000); addEntity(EntityRainbow.class, "entity_rainbow", 1000); addEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 500); addEntity(EntityCloudFleija.class, "entity_cloud_fleija", 500); @@ -96,8 +94,6 @@ public class EntityMappings { addEntity(EntityLaserBeam.class, "entity_laser_beam", 1000); addEntity(EntityMinerBeam.class, "entity_miner_beam", 1000); addEntity(EntityRubble.class, "entity_rubble", 1000); - addEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 1000); - addEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 1000); addEntity(EntityShrapnel.class, "entity_shrapnel", 1000); addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); addEntity(EntityBlackHole.class, "entity_black_hole", 250); @@ -109,7 +105,6 @@ public class EntityMappings { addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000); - addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); addEntity(EntityMeteor.class, "entity_meteor", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index e5a4054f6..0985e3e54 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -3,7 +3,6 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.entity.particle.EntitySmokeFX; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -41,8 +40,6 @@ public class EntityMIRV extends EntityThrowable { } this.setDead(); } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); } protected void rotation() { diff --git a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java deleted file mode 100644 index 64889f204..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityDSmokeFX extends EntityModFX { - public EntityDSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityDSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, - double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityDSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, - double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - // this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - // this.particleMaxAge = (int)((float)this.particleMaxAge * - // p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (maxAge < 100) { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java deleted file mode 100644 index 699821ba1..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySSmokeFX extends EntityModFX -{ - public EntitySSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java deleted file mode 100644 index 8281443d9..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySmokeFX extends EntityModFX -{ - public EntitySmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 100) - { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java deleted file mode 100644 index e5723cf0c..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityTSmokeFX extends EntityModFX -{ - public EntityTSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityTSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityTSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java deleted file mode 100644 index fe59e30f2..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ /dev/null @@ -1,571 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityCombineBall extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityCombineBall(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityCombineBall(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityCombineBall(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityCombineBall(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityCombineBall(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeCombineDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 1000F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index b3a1ca7da..c035c0833 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.radiation.ChunkRadiationManager; @@ -448,16 +447,6 @@ public class EntityRocketHoming extends Entity implements IProjectile } } - if (true) - { - //for (i = 0; i < 4; ++i) - { - //this.worldObj.spawnParticle("cloud", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); - if(!worldObj.isRemote && this.ticksExisted > 1) - this.worldObj.spawnEntityInWorld(new EntityTSmokeFX(worldObj, this.posX, this.posY, this.posZ, 0, 0, 0)); - } - } - this.posX += this.motionX; this.posY += this.motionY; this.posZ += this.motionZ; diff --git a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java deleted file mode 100644 index b24f0cd3f..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidAcceptor extends IFluidContainer { - - @Deprecated int getMaxFluidFill(FluidType type); - - @Deprecated - public default void setFluidFillForReceive(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForReceive(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default int getMaxFluidFillForReceive(FluidType type) { - return this.getMaxFluidFill(type); - } - - @Deprecated - public default void receiveFluid(int amount, FluidType type) { - this.setFluidFill(this.getFluidFill(type) + amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java index 6e8b45284..817e280e7 100644 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ b/src/main/java/com/hbm/interfaces/IFluidContainer.java @@ -2,19 +2,12 @@ package com.hbm.interfaces; import com.hbm.inventory.fluid.FluidType; -@Deprecated +@Deprecated //legacy crap we can't get rid of because some ancient machines still use this for sync public interface IFluidContainer { //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks public void setFillForSync(int fill, int index); - - //Args: fill: what the fill should be set to; type, what type the tank in question has - void setFluidFill(int fill, FluidType type); //Args: type, what the type should be set to; index, index for array if there are multiple tanks public void setTypeForSync(FluidType type, int index); - - //Args: type, what type the tank in question has - int getFluidFill(FluidType type); - } diff --git a/src/main/java/com/hbm/interfaces/IFluidDuct.java b/src/main/java/com/hbm/interfaces/IFluidDuct.java deleted file mode 100644 index 101013ef9..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidDuct.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -public interface IFluidDuct { - - public FluidType getType(); - public boolean setType(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidSource.java b/src/main/java/com/hbm/interfaces/IFluidSource.java deleted file mode 100644 index 195e0d71b..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidSource.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidSource extends IFluidContainer { - - @Deprecated void fillFluidInit(FluidType type); - - @Deprecated void fillFluid(int x, int y, int z, boolean newTact, FluidType type); - - @Deprecated boolean getTact(); - @Deprecated List getFluidList(FluidType type); - @Deprecated void clearFluidList(FluidType type); - - @Deprecated - public default void setFluidFillForTransfer(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForTransfer(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default void transferFluid(int amount, FluidType type) { - this.setFluidFillForTransfer(this.getFluidFillForTransfer(type) - amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IGasAcceptor.java b/src/main/java/com/hbm/interfaces/IGasAcceptor.java deleted file mode 100644 index 4cf182acd..000000000 --- a/src/main/java/com/hbm/interfaces/IGasAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasAcceptor { - - void setGasFill(int i); - - int getGasFill(); - - int getMaxGasFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IGasDuct.java b/src/main/java/com/hbm/interfaces/IGasDuct.java deleted file mode 100644 index 13a0452b9..000000000 --- a/src/main/java/com/hbm/interfaces/IGasDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IGasSource.java b/src/main/java/com/hbm/interfaces/IGasSource.java deleted file mode 100644 index 87e3a5e2d..000000000 --- a/src/main/java/com/hbm/interfaces/IGasSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IGasSource { - - void fillGasInit(); - - void fillGas(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getGasFill(); - void setGasFill(int i); - List getGasList(); - void clearGasList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilAcceptor.java b/src/main/java/com/hbm/interfaces/IOilAcceptor.java deleted file mode 100644 index b8af2606e..000000000 --- a/src/main/java/com/hbm/interfaces/IOilAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilAcceptor { - - void setFill(int i); - - int getFill(); - - int getMaxFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilDuct.java b/src/main/java/com/hbm/interfaces/IOilDuct.java deleted file mode 100644 index 9db089044..000000000 --- a/src/main/java/com/hbm/interfaces/IOilDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IOilSource.java b/src/main/java/com/hbm/interfaces/IOilSource.java deleted file mode 100644 index 31fd4879a..000000000 --- a/src/main/java/com/hbm/interfaces/IOilSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IOilSource { - - void fillInit(); - - void fill(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getSFill(); - void setSFill(int i); - List getList(); - void clearList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IReactor.java b/src/main/java/com/hbm/interfaces/IReactor.java deleted file mode 100644 index c0da0b7fd..000000000 --- a/src/main/java/com/hbm/interfaces/IReactor.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.interfaces; - -import net.minecraft.world.World; - -public interface IReactor { - - boolean isStructureValid(World world); - - boolean isCoatingValid(World world); - - boolean hasFuse(); - - int getWaterScaled(int i); - - int getCoolantScaled(int i); - - long getPowerScaled(long i); - - int getHeatScaled(int i); - -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java deleted file mode 100644 index 53b263511..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerPuF6Tank extends Container { - - private TileEntityMachinePuF6Tank testNuke; - - public ContainerPuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java deleted file mode 100644 index 06e591a4a..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerUF6Tank extends Container { - - private TileEntityMachineUF6Tank testNuke; - - public ContainerUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java deleted file mode 100644 index 4ec995798..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachinePuF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/puf6Tank.png"); - private TileEntityMachinePuF6Tank tank; - - public GUIMachinePuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - super(new ContainerPuF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java deleted file mode 100644 index a7c838c52..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineUF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/uf6Tank.png"); - private TileEntityMachineUF6Tank tank; - - public GUIMachineUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - super(new ContainerUF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index fb8954ffb..8879a622e 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -47,24 +47,24 @@ public class Mats { public static final int _ES = 20_000; //Vanilla and vanilla-like - public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); - public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); - public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); - public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); - public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); + public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); + public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); + public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); + public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m(); public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m(); public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m(); - public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); + public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); //Radioactive public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); @@ -78,17 +78,17 @@ public class Mats { public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST).m(); - public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); + public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); @@ -96,39 +96,39 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF ).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_EMERALD = make( 401, EMERALD) .setConversion(MAT_BERYLLIUM, 4, 3).n(); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, DUST).m(); - public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, DUST).m(); - public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET, INGOT).m(); - public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, INGOT, BLOCK).n(); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setShapes(FRAGMENT, DUST, GEM, BLOCK).n(); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); @@ -152,10 +152,9 @@ public class Mats { public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT).n(); //Extension - public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT, INGOT).n(); + public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT, INGOT).n(); - @Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } - @Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); } + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } public static NTMMaterial make(int id, DictFrame dict) { return new NTMMaterial(id, dict); @@ -246,9 +245,7 @@ public class Mats { public static String formatAmount(int amount, boolean showInMb) { - if(showInMb) { - return (amount * 2) + "mB"; - } + if(showInMb) return (amount * 2) + "mB"; String format = ""; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index c2fdad08d..39fff4c81 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -557,14 +557,6 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_chlorophyte, 1), new OreDictStack(PB.nugget(), 12), }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_mercury, 2), new AStack[] { - new ComparableStack(ModItems.ingot_mercury, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_meteorite, 2), new AStack[] { - new ComparableStack(ModItems.powder_meteorite, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] { new OreDictStack(IRON.ingot(), 3), }, 50); @@ -1261,7 +1253,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 4000); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 400); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 571777acd..c1e1e55c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -59,8 +59,6 @@ public class MachineRecipes { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potatos)); - fuels.add(new ItemStack(ModItems.battery_su)); - fuels.add(new ItemStack(ModItems.battery_su_l)); fuels.add(new ItemStack(ModItems.battery_generic)); fuels.add(new ItemStack(ModItems.battery_red_cell)); fuels.add(new ItemStack(ModItems.battery_red_cell_6)); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index a0ba83c94..67470d1da 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -425,12 +425,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.sulfur, 8), - new OreDictStack(STEEL.plate528(), 4), - new OreDictStack(AL.plate528(), 2), + new ComparableStack(ModItems.sulfur, 12), new OreDictStack(STEEL.shell(), 4), - new OreDictStack(CU.plateCast(), 4), - new ComparableStack(ModItems.turbine_titanium, 1), + new OreDictStack(CU.plateCast(), 6), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8df84be92..7bd4d7df8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -502,7 +502,6 @@ public class ModItems { public static Item powder_lithium; public static Item powder_zirconium; public static Item powder_sodium; - public static Item redstone_depleted; public static Item powder_australium; public static Item powder_weidanium; @@ -1230,8 +1229,6 @@ public class ModItems { public static Item pellet_buckshot; public static Item pellet_flechette; public static Item pellet_chlorophyte; - public static Item pellet_mercury; - public static Item pellet_meteorite; public static Item pellet_canister; public static Item pellet_claws; public static Item pellet_charged; @@ -1799,8 +1796,6 @@ public class ModItems { public static Item battery_sc_lead; public static Item battery_sc_americium; - public static Item battery_su; - public static Item battery_su_l; public static Item battery_potato; public static Item battery_potatos; public static Item hev_battery; @@ -1871,7 +1866,6 @@ public class ModItems { public static Item euphemium_boots; public static Item apple_euphemium; public static Item watch; - public static Item euphemium_stopper; public static Item goggles; public static Item ashglasses; @@ -2363,14 +2357,6 @@ public class ModItems { public static Item book_lemegeton; public static Item burnt_bark; - public static Item smoke1; - public static Item smoke2; - public static Item smoke3; - public static Item smoke4; - public static Item smoke5; - public static Item smoke6; - public static Item smoke7; - public static Item smoke8; public static Item b_smoke1; public static Item b_smoke2; public static Item b_smoke3; @@ -2379,14 +2365,6 @@ public class ModItems { public static Item b_smoke6; public static Item b_smoke7; public static Item b_smoke8; - public static Item d_smoke1; - public static Item d_smoke2; - public static Item d_smoke3; - public static Item d_smoke4; - public static Item d_smoke5; - public static Item d_smoke6; - public static Item d_smoke7; - public static Item d_smoke8; public static Item spill1; public static Item spill2; public static Item spill3; @@ -2443,9 +2421,6 @@ public class ModItems { public static Item gasflame6; public static Item gasflame7; public static Item gasflame8;*/ - public static Item energy_ball; - public static Item discharge; - public static Item empblast; public static Item flame_1; public static Item flame_2; public static Item flame_3; @@ -2467,7 +2442,6 @@ public class ModItems { public static Item ln2_9; public static Item ln2_10; public static Item nothing; - public static Item void_anim; public static Item achievement_icon; public static Item bob_metalworks; @@ -2706,11 +2680,10 @@ public class ModItems { ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); - bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); + bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -2903,7 +2876,6 @@ public class ModItems { powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); - redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); @@ -3869,8 +3841,6 @@ public class ModItems { pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); pellet_flechette = new Item().setUnlocalizedName("pellet_flechette").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_flechette"); pellet_chlorophyte = new Item().setUnlocalizedName("pellet_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_chlorophyte"); - pellet_mercury = new Item().setUnlocalizedName("pellet_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_mercury"); - pellet_meteorite = new Item().setUnlocalizedName("pellet_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_meteorite"); pellet_canister = new Item().setUnlocalizedName("pellet_canister").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_canister"); pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws"); pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); @@ -4398,8 +4368,6 @@ public class ModItems { battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); - battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); @@ -5375,7 +5343,6 @@ public class ModItems { shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - euphemium_stopper = new ItemSyringe().setUnlocalizedName("euphemium_stopper").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":euphemium_stopper"); matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); @@ -5450,14 +5417,6 @@ public class ModItems { book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); - smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); - smoke2 = new Item().setUnlocalizedName("smoke2").setTextureName(RefStrings.MODID + ":smoke2"); - smoke3 = new Item().setUnlocalizedName("smoke3").setTextureName(RefStrings.MODID + ":smoke3"); - smoke4 = new Item().setUnlocalizedName("smoke4").setTextureName(RefStrings.MODID + ":smoke4"); - smoke5 = new Item().setUnlocalizedName("smoke5").setTextureName(RefStrings.MODID + ":smoke5"); - smoke6 = new Item().setUnlocalizedName("smoke6").setTextureName(RefStrings.MODID + ":smoke6"); - smoke7 = new Item().setUnlocalizedName("smoke7").setTextureName(RefStrings.MODID + ":smoke7"); - smoke8 = new Item().setUnlocalizedName("smoke8").setTextureName(RefStrings.MODID + ":smoke8"); b_smoke1 = new Item().setUnlocalizedName("b_smoke1").setTextureName(RefStrings.MODID + ":b_smoke1"); b_smoke2 = new Item().setUnlocalizedName("b_smoke2").setTextureName(RefStrings.MODID + ":b_smoke2"); b_smoke3 = new Item().setUnlocalizedName("b_smoke3").setTextureName(RefStrings.MODID + ":b_smoke3"); @@ -5466,14 +5425,6 @@ public class ModItems { b_smoke6 = new Item().setUnlocalizedName("b_smoke6").setTextureName(RefStrings.MODID + ":b_smoke6"); b_smoke7 = new Item().setUnlocalizedName("b_smoke7").setTextureName(RefStrings.MODID + ":b_smoke7"); b_smoke8 = new Item().setUnlocalizedName("b_smoke8").setTextureName(RefStrings.MODID + ":b_smoke8"); - d_smoke1 = new Item().setUnlocalizedName("d_smoke1").setTextureName(RefStrings.MODID + ":d_smoke1"); - d_smoke2 = new Item().setUnlocalizedName("d_smoke2").setTextureName(RefStrings.MODID + ":d_smoke2"); - d_smoke3 = new Item().setUnlocalizedName("d_smoke3").setTextureName(RefStrings.MODID + ":d_smoke3"); - d_smoke4 = new Item().setUnlocalizedName("d_smoke4").setTextureName(RefStrings.MODID + ":d_smoke4"); - d_smoke5 = new Item().setUnlocalizedName("d_smoke5").setTextureName(RefStrings.MODID + ":d_smoke5"); - d_smoke6 = new Item().setUnlocalizedName("d_smoke6").setTextureName(RefStrings.MODID + ":d_smoke6"); - d_smoke7 = new Item().setUnlocalizedName("d_smoke7").setTextureName(RefStrings.MODID + ":d_smoke7"); - d_smoke8 = new Item().setUnlocalizedName("d_smoke8").setTextureName(RefStrings.MODID + ":d_smoke8"); spill1 = new Item().setUnlocalizedName("spill1").setTextureName(RefStrings.MODID + ":spill1"); spill2 = new Item().setUnlocalizedName("spill2").setTextureName(RefStrings.MODID + ":spill2"); spill3 = new Item().setUnlocalizedName("spill3").setTextureName(RefStrings.MODID + ":spill3"); @@ -5522,9 +5473,6 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); - discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); - empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); flame_1 = new Item().setUnlocalizedName("flame_1").setTextureName(RefStrings.MODID + ":flame_1"); flame_2 = new Item().setUnlocalizedName("flame_2").setTextureName(RefStrings.MODID + ":flame_2"); flame_3 = new Item().setUnlocalizedName("flame_3").setTextureName(RefStrings.MODID + ":flame_3"); @@ -5546,7 +5494,6 @@ public class ModItems { ln2_9 = new Item().setUnlocalizedName("ln2_9").setTextureName(RefStrings.MODID + ":ln2_9"); ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); - void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); @@ -5884,7 +5831,6 @@ public class ModItems { GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); @@ -6288,8 +6234,6 @@ public class ModItems { GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); GameRegistry.registerItem(pellet_flechette, pellet_flechette.getUnlocalizedName()); GameRegistry.registerItem(pellet_chlorophyte, pellet_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mercury, pellet_mercury.getUnlocalizedName()); - GameRegistry.registerItem(pellet_meteorite, pellet_meteorite.getUnlocalizedName()); GameRegistry.registerItem(pellet_canister, pellet_canister.getUnlocalizedName()); GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName()); GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); @@ -6411,8 +6355,6 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); - GameRegistry.registerItem(battery_su, battery_su.getUnlocalizedName()); - GameRegistry.registerItem(battery_su_l, battery_su_l.getUnlocalizedName()); GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); @@ -7817,9 +7759,6 @@ public class ModItems { GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); - //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); - //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); @@ -7887,14 +7826,6 @@ public class ModItems { GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); //Technical Items - GameRegistry.registerItem(smoke1, smoke1.getUnlocalizedName()); - GameRegistry.registerItem(smoke2, smoke2.getUnlocalizedName()); - GameRegistry.registerItem(smoke3, smoke3.getUnlocalizedName()); - GameRegistry.registerItem(smoke4, smoke4.getUnlocalizedName()); - GameRegistry.registerItem(smoke5, smoke5.getUnlocalizedName()); - GameRegistry.registerItem(smoke6, smoke6.getUnlocalizedName()); - GameRegistry.registerItem(smoke7, smoke7.getUnlocalizedName()); - GameRegistry.registerItem(smoke8, smoke8.getUnlocalizedName()); GameRegistry.registerItem(b_smoke1, b_smoke1.getUnlocalizedName()); GameRegistry.registerItem(b_smoke2, b_smoke2.getUnlocalizedName()); GameRegistry.registerItem(b_smoke3, b_smoke3.getUnlocalizedName()); @@ -7903,14 +7834,6 @@ public class ModItems { GameRegistry.registerItem(b_smoke6, b_smoke6.getUnlocalizedName()); GameRegistry.registerItem(b_smoke7, b_smoke7.getUnlocalizedName()); GameRegistry.registerItem(b_smoke8, b_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke1, d_smoke1.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke2, d_smoke2.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke3, d_smoke3.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke4, d_smoke4.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke5, d_smoke5.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke6, d_smoke6.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke7, d_smoke7.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke8, d_smoke8.getUnlocalizedName()); GameRegistry.registerItem(spill1, spill1.getUnlocalizedName()); GameRegistry.registerItem(spill2, spill2.getUnlocalizedName()); GameRegistry.registerItem(spill3, spill3.getUnlocalizedName()); @@ -7959,9 +7882,6 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); - GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); - GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); GameRegistry.registerItem(flame_1, flame_1.getUnlocalizedName()); GameRegistry.registerItem(flame_2, flame_2.getUnlocalizedName()); GameRegistry.registerItem(flame_3, flame_3.getUnlocalizedName()); @@ -7983,7 +7903,6 @@ public class ModItems { GameRegistry.registerItem(ln2_9, ln2_9.getUnlocalizedName()); GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); - GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index e8f44cfa4..612eb8442 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -1,8 +1,6 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -12,7 +10,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.ChatBuilder; import com.hbm.util.I18nUtil; @@ -26,10 +23,8 @@ import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IItemControlReceiver, IGUIProvider { @@ -147,80 +142,6 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte int type = stack.stackTagCompound.getInteger("fluid" + (primary ? 1 : 2)); return Fluids.fromID(type); } - - /* - * CRAPPY COMPAT SECTION - */ - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = getType(world, x, y ,z, stack); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - return true; - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index d68a24f24..5abea5f30 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -1,13 +1,10 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -17,11 +14,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { @@ -88,75 +83,6 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { return true; } - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = Fluids.fromID(stack.getItemDamage()); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } - @Override @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index d50a57074..48b6e928b 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -360,10 +360,6 @@ public class ItemSyringe extends Item { if(this == ModItems.syringe_awesome) { return EnumRarity.uncommon; } - if(this == ModItems.euphemium_stopper) { - return EnumRarity.epic; - } - return EnumRarity.common; } @@ -527,14 +523,6 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.euphemium_stopper) { - if(!world.isRemote) { - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); - } - } - if(this == ModItems.syringe_mkunicorn) { if(!world.isRemote) { HbmLivingProps.setContagion(entity, 3 * 60 * 60 * 20); diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java index b796d477a..c4bb2506f 100644 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ b/src/main/java/com/hbm/items/weapon/GunFolly.java @@ -1,6 +1,5 @@ package com.hbm.items.weapon; -import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IHoldableWeapon; @@ -65,20 +64,6 @@ public class GunFolly extends Item implements IHoldableWeapon { if (!world.isRemote) { EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, BulletConfigSyncingUtil.TEST_CONFIG, player); world.spawnEntityInWorld(bullet); - - for(int i = 0; i < 25; i++) { - EntitySSmokeFX flame = new EntitySSmokeFX(world); - - flame.motionX = player.getLookVec().xCoord; - flame.motionY = player.getLookVec().yCoord; - flame.motionZ = player.getLookVec().zCoord; - - flame.posX = player.posX + flame.motionX + world.rand.nextGaussian() * 0.35; - flame.posY = player.posY + flame.motionY + world.rand.nextGaussian() * 0.35 + player.eyeHeight; - flame.posZ = player.posZ + flame.motionZ + world.rand.nextGaussian() * 0.35; - - world.spawnEntityInWorld(flame); - } } } } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index cc24f3dd0..8df03c941 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -7,13 +7,9 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; -import com.hbm.tileentity.TileEntityProxyInventory; import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyConnectorBlock; @@ -109,26 +105,6 @@ public class Library { return false; } - - public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) - { - TileEntity tileentity = world.getTileEntity(x, y, z); - if(tileentity != null && tileentity instanceof IFluidDuct && ((IFluidDuct)tileentity).getType() == type) - return true; - if((tileentity != null && (tileentity instanceof IFluidAcceptor || - tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || - world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { - return true; - } - - if(world.getBlock(x, y, z) == ModBlocks.machine_mining_laser && tileentity instanceof TileEntityProxyInventory) - return true; - - return false; - } public static EntityLivingBase getClosestEntityForChopper(World world, double x, double y, double z, double radius) { double d4 = -1.0D; @@ -319,8 +295,6 @@ public class Library { */ } - public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { } - public static boolean isArrayEmpty(Object[] array) { if(array == null) return true; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index df4694b4a..6f3b52609 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -116,7 +116,6 @@ import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapperClient; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -349,7 +348,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); @@ -629,7 +627,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); - RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBeam.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityLaserBeam.class, new RenderBeam2()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerBeam.class, new RenderBeam3()); @@ -637,7 +635,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityExplosiveBeam.class, new RenderBeam5()); RenderingRegistry.registerEntityRenderingHandler(EntityModBeam.class, new RenderBeam6()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeLaser.class, new RenderSiegeLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityBombletZeta.class, new RenderBombletTheta()); RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); @@ -820,20 +818,15 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); //"particles" - RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); - RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); - RenderingRegistry.registerEntityRenderingHandler(EntityTSmokeFX.class, new TSmokeRenderer(ModItems.nuclear_waste)); } @Override diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fbb7de092..4ece7c653 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -581,12 +581,6 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); @@ -632,9 +626,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_paintable, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" }); @@ -724,10 +715,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); - addRecipeAuto(new ItemStack(Blocks.torch, 3), new Object[] { "L", "S", 'L', LIGNITE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 558e1e5ec..27e0248d4 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1364,6 +1364,34 @@ public class MainRegistry { ignoreMappings.add("hbm:item.circuit_targeting_tier4"); ignoreMappings.add("hbm:item.circuit_targeting_tier5"); ignoreMappings.add("hbm:item.circuit_targeting_tier6"); + ignoreMappings.add("hbm:tile.fluid_duct"); + ignoreMappings.add("hbm:tile.fluid_duct_solid"); + ignoreMappings.add("hbm:item.void_anim"); + ignoreMappings.add("hbm:item.pellet_mercury"); + ignoreMappings.add("hbm:item.pellet_meteorite"); + ignoreMappings.add("hbm:item.d_smoke1"); + ignoreMappings.add("hbm:item.d_smoke2"); + ignoreMappings.add("hbm:item.d_smoke3"); + ignoreMappings.add("hbm:item.d_smoke4"); + ignoreMappings.add("hbm:item.d_smoke5"); + ignoreMappings.add("hbm:item.d_smoke6"); + ignoreMappings.add("hbm:item.d_smoke7"); + ignoreMappings.add("hbm:item.d_smoke8"); + ignoreMappings.add("hbm:item.smoke1"); + ignoreMappings.add("hbm:item.smoke2"); + ignoreMappings.add("hbm:item.smoke3"); + ignoreMappings.add("hbm:item.smoke4"); + ignoreMappings.add("hbm:item.smoke5"); + ignoreMappings.add("hbm:item.smoke6"); + ignoreMappings.add("hbm:item.smoke7"); + ignoreMappings.add("hbm:item.smoke8"); + ignoreMappings.add("hbm:item.battery_su"); + ignoreMappings.add("hbm:item.battery_su_l"); + ignoreMappings.add("hbm:item.redstone_depleted"); + ignoreMappings.add("hbm:item.euphemium_stopper"); + ignoreMappings.add("hbm:item.energy_ball"); + ignoreMappings.add("hbm:item.discharge"); + ignoreMappings.add("hbm:item.empblast"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java deleted file mode 100644 index 9daadd21f..000000000 --- a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class DSmokeRenderer extends Render { - private Item field_94151_a; - public DSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public DSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityDSmokeFX) { - EntityDSmokeFX fx = (EntityDSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java b/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java deleted file mode 100644 index 39f136324..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ModEffectRenderer extends Render { - private Item field_94151_a; - public ModEffectRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ModEffectRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java deleted file mode 100644 index 5a4d6c3fa..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SSmokeRenderer extends Render { - private Item field_94151_a; - public SSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java deleted file mode 100644 index 263869a51..000000000 --- a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class TSmokeRenderer extends Render { - private Item field_94151_a; - public TSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public TSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityTSmokeFX) { - EntityTSmokeFX fx = (EntityTSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java b/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java deleted file mode 100644 index afa01d9ee..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderFluidDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityFluidDuct cable = (TileEntityFluidDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i], cable.getType().getColor()); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction, int hex) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - float p = 0.01F; - float n = -0.01F; - int r = (hex & 0xFF0000) >> 16; - int g = (hex & 0xFF00) >> 8; - int b = (hex & 0xFF); - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java index 99536327f..5bc5939dd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java @@ -37,7 +37,7 @@ public abstract class RenderTurretBase extends TileEntitySpecialRenderer { private void checkPlug(World world, int x, int y, int z, boolean power, boolean fluid, FluidType type, int ox, int oz, int rot, ForgeDirection dir) { - if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.checkFluidConnectables(world, x, y, z, type)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { + if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { GL11.glPushMatrix(); GL11.glRotated(rot, 0, 1, 0); diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index a2ac9ba74..0f5a8e29b 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,10 +1,7 @@ package com.hbm.tileentity; - import api.hbm.block.ICrucibleAcceptor; import com.hbm.handler.CompatHandler.OCComponent; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import api.hbm.energymk2.IEnergyReceiverMK2; @@ -27,7 +24,7 @@ import net.minecraftforge.common.util.ForgeDirection; @Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers") }) -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { TileEntity tile; boolean inventory; @@ -77,101 +74,6 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return tile; } - @Override - public void setFillForSync(int fill, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFillForSync(fill, index); - } - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFluidFill(fill, type); - } - } - - @Override - public int getFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getFluidFillForReceive(type); - } - return 0; - } - - @Override - public int getMaxFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFillForReceive(type); - } - - return 0; - } - - @Override - public void receiveFluid(int amount, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).receiveFluid(amount, type); - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setTypeForSync(type, index); - } - } - - @Override - public int getFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidContainer) { - return ((IFluidContainer)getTile()).getFluidFill(type); - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFill(type); - } - - return 0; - } - @Override public void setPower(long i) { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index bc937c5b9..d61e10560 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -31,10 +31,7 @@ import com.hbm.blocks.network.CranePartitioner.TileEntityCranePartitioner; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -43,9 +40,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; -import com.hbm.util.LoggingUtil; -import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -96,8 +91,6 @@ public class TileMappings { put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityMachineOreSlopper.class, "tileentity_ore_slopper"); - put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); - put(TileEntityFluidDuct.class, "tileentity_universal_duct"); put(TileEntityMachineDrain.class, "tileentity_fluid_drain"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); @@ -424,9 +417,9 @@ public class TileMappings { private static void put(Class clazz, String... names) { map.put(clazz, names); - if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + /*if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); - } + }*/ if(IConfigurableMachine.class.isAssignableFrom(clazz)) { configurables.add((Class) clazz); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 9567f3bff..5c8058961 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCompactLauncher; import com.hbm.inventory.fluid.FluidType; @@ -48,7 +47,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { private ItemStack slots[]; @@ -547,45 +546,17 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index a3dfea4ae..d0003c702 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.CompatHandler; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.inventory.fluid.FluidType; @@ -54,7 +53,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { private ItemStack slots[]; @@ -545,45 +544,17 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java deleted file mode 100644 index f169b7647..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class TileEntityFluidDuct extends TileEntityFluidDuctSimple { - - public TileEntityFluidDuct() { } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java deleted file mode 100644 index 87b407eba..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { - - protected FluidType type = Fluids.NONE; - - - public ForgeDirection[] connections = new ForgeDirection[6]; - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - @Override - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - this.readFromNBT(pkt.func_148857_g()); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.fromID(nbt.getInteger("fluid")); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("fluid", type.getID()); - } - - public boolean setType(FluidType type) { - - if(this.type == type) - return true; - - this.type = type; - this.markDirty(); - - if(worldObj instanceof WorldServer) { - WorldServer world = (WorldServer) worldObj; - world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return true; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public void updateEntity() { - /*this.updateConnections(); - - if(lastType != type) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - lastType = type; - }*/ - - if(this.getBlockType() == ModBlocks.fluid_duct) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo); - if(this.getBlockType() == ModBlocks.fluid_duct_solid) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index d993b0ce5..0d1d9d6a8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -1,19 +1,14 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; @@ -41,7 +36,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 100000000000L; @@ -50,8 +45,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public float lastRotor; public float fanAcceleration = 0F; - public List list2 = new ArrayList(); - public FluidTank[] tanks; protected double[] info = new double[3]; @@ -60,8 +53,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public TileEntityChungus() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 1000000000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1000000000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, 1_000_000_000); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1_000_000_000); Random rand = new Random(); audioDesync = rand.nextFloat() * 0.05F; @@ -112,10 +105,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc turnTimer--; - if(operational) - turnTimer = 25; - - this.fillFluidInit(tanks[1].getTankType()); + if(operational) turnTimer = 25; NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -217,74 +207,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[1].writeToNBT(nbt, "steam"); nbt.setLong("power", power); } - - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type); - fillFluid(xCoord + dir.offsetX * -3, yCoord, zCoord + dir.offsetZ * -3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index ea5cd0b5b..5b5277eec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreInjector; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -28,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidContainer, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { public FluidTank[] tanks; public static final int range = 15; @@ -117,34 +117,6 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl beam = data.getInteger("beam"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4096dc271..36b50517a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreReceiver; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -33,7 +33,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public long joules; @@ -105,28 +105,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return this.power; } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { tank.setFill(fill); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index 312210f98..c1c830cf5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,9 +9,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -38,11 +33,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumSkyBlock; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { +public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { public int heat; public FluidTank[] tanks; - public List list = new ArrayList(); public boolean isOn; public boolean hasExploded = false; @@ -88,7 +82,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid if(this.tanks[1].getFill() > 0) { this.sendFluid(); - fillFluidInit(tanks[1].getTankType()); } } @@ -289,62 +282,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid nbt.setBoolean("exploded", hasExploded); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override public void setFillForSync(int fill, int index) { } - @Override public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[0].getTankType() ? tanks[0].getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP); - this.fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord, yCoord + 4, zCoord, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fde17186d..3b78b1168 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -9,8 +9,7 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -53,13 +52,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { public long power; public static final long maxPower = 10000000; public static final int powerReq = 100000; - public int age = 0; - public List list = new ArrayList(); public FluidTank[] tanks; public FluidTank plasma; @@ -96,14 +93,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece if(!worldObj.isRemote) { - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -419,16 +408,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece plasma.setFill(fill); } - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) @@ -438,60 +417,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece plasma.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 3, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 3, zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - @Override public void onChunkUnload() { super.onChunkUnload(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 87a66617c..9cedc72c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,7 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineDiesel; @@ -38,7 +37,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -248,22 +247,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java deleted file mode 100644 index 3d2756304..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineInserter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidSource, IFluidAcceptor { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tanks[]; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {0}; - private static final int[] slots_side = new int[] {0}; - public int age = 0; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - - private String customName; - - public TileEntityMachineInserter() { - slots = new ItemStack[9]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[2] = new FluidTank(Fluids.NONE, 32000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.inserter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tanks[0].readFromNBT(nbt, "content1"); - tanks[1].readFromNBT(nbt, "content2"); - tanks[2].readFromNBT(nbt, "content3"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tanks[0].writeToNBT(nbt, "content1"); - tanks[1].writeToNBT(nbt, "content2"); - tanks[2].writeToNBT(nbt, "content3"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) { - if(dna1()) - fillFluidInit(tanks[0].getTankType()); - if(dna2()) - fillFluidInit(tanks[1].getTankType()); - if(dna3()) - fillFluidInit(tanks[2].getTankType()); - } - - tanks[0].setType(1, 2, slots); - tanks[1].setType(4, 5, slots); - tanks[2].setType(7, 8, slots); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[2].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - public boolean dna1() { - if(slots[0] != null && (slots[0].getItem() == ModItems.fuse || slots[0].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna2() { - if(slots[3] != null && (slots[3].getItem() == ModItems.fuse || slots[3].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna3() { - if(slots[6] != null && (slots[6].getItem() == ModItems.fuse || slots[6].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return list1; - if(type.name().equals(tanks[1].getTankType().name())) - return list2; - if(type.name().equals(tanks[2].getTankType().name())) - return list3; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[1].getTankType().name())) - list2.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list3.clear(); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 6cb9024f0..e18ad96fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -1,14 +1,10 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerMachineLargeTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -44,12 +40,10 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 100000000; - public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; protected double[] info = new double[3]; @@ -84,13 +78,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.info = new double[3]; - age++; - if(age >= 2) { - age = 0; - } - - fillFluidInit(tanks[1].getTankType()); - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -210,57 +197,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme nbt.setLong("power", power); } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, getTact(), type); - fillFluid(xCoord + dir.offsetX * -2, yCoord, zCoord + dir.offsetZ * -2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) @@ -272,16 +208,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public long getPower() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 6f97159d8..e56e47119 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMiningLaser; import com.hbm.inventory.fluid.FluidType; @@ -54,14 +52,13 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; public static final long maxPower = 100000000; public static final int consumption = 10000; public FluidTank tank; - public List list = new ArrayList(); public boolean isOn; public int targetX; @@ -95,14 +92,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.updateConnections(); - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tank.getTankType()); - this.sendFluid(tank, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); this.sendFluid(tank, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.sendFluid(tank, worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); @@ -622,57 +611,11 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.OIL) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.OIL) - return tank.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord - 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord + 2, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 175e11a68..fde99d15e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerPlasmaHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 100000000; @@ -212,40 +212,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.writeToNBT(nbt, "plasma"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index e311a05d0..3667aef4b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -1,11 +1,6 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.inventory.fluid.FluidType; @@ -39,15 +34,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; public int heat; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13 }; private static final int[] slot_rtg = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; @@ -138,11 +131,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement sterilize(); } - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - for(DirPos pos : getConPos()) { this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); @@ -268,73 +256,11 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - @Override public void setTypeForSync(FluidType type, int index) { this.tanks[index].setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(tanks[0].getTankType() == type) { - return tanks[0].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - return list1; - if(type == tanks[2].getTankType()) - return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - list1.clear(); - if(type == tanks[2].getTankType()) - list2.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 94cf03e3b..fb7374282 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -279,24 +279,6 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 60d29fe9a..d0e1306bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -5,11 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineTurbofan; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; @@ -50,7 +47,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 1_000_000; @@ -438,32 +435,6 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public void setPower(long i) { this.power = i; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index aa989ec85..34382b3e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -13,19 +13,14 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.CompatHandler; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerReactorZirnox; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIReactorZirnox; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -53,7 +48,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public int heat; public static final int maxHeat = 100000; @@ -61,9 +56,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public static final int maxPressure = 100000; public boolean isOn = false; - public List list = new ArrayList(); - public byte age; - public FluidTank steam; public FluidTank carbonDioxide; public FluidTank water; @@ -88,9 +80,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public TileEntityReactorZirnox() { super(28); - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000, 0); - carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000, 1); - water = new FluidTank(Fluids.WATER, 32000, 2); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000); + carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -193,15 +185,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(!worldObj.isRemote) { this.output = 0; - age++; - - if (age >= 20) { - age = 0; - } - - if(age == 9 || age == 19) { - fillFluidInit(steam.getTankType()); - } if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); @@ -395,23 +378,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, getTact(), type); - - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type); - } - private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -431,59 +397,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF }; } - public boolean getTact() { - if(age >= 0 && age < 10) { - return true; - } - - return false; - } - - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return 0; - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); - if(type == Fluids.WATER) return water.getMaxFill(); - - return 0; - } - - public void setFluidFill(int i, FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) steam.setFill(i); - if(type == Fluids.CARBONDIOXIDE) carbonDioxide.setFill(i); - if(type == Fluids.WATER) water.setFill(i); - } - - public int getFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return steam.getFill(); - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getFill(); - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - public void setFillForSync(int fill, int index) { - switch (index) { - case 0: steam.setFill(fill); - break; - case 1: carbonDioxide.setFill(fill); - break; - case 2: water.setFill(fill); - break; - default: break; - } - } - - public void setTypeForSync(FluidType type, int index) { - switch (index) { - case 0: steam.setTankType(type); - break; - case 1: carbonDioxide.setTankType(type); - break; - case 2: water.setTankType(type); - break; - default: break; - } - } - public List getTanks() { List list = new ArrayList(); list.add(steam); @@ -493,14 +406,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return list; } - public List getFluidList(FluidType type) { - return list; - } - - public void clearFluidList(FluidType type) { - list.clear(); - } - public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index d2c9c04ea..ec233595f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import java.util.HashMap; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.FluidType; @@ -35,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { +public class TileEntitySILEX extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public EnumWavelengths mode = EnumWavelengths.NULL; public boolean hasLaser; @@ -54,7 +53,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public TileEntitySILEX() { super(11); - tank = new FluidTank(Fluids.PEROXIDE, 16000, 0); + tank = new FluidTank(Fluids.PEROXIDE, 16000); } @Override @@ -345,41 +344,6 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce return 65536.0D; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getMaxFill(); - - return 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index da652915c..c2803d6c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,12 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -24,19 +19,18 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IBufPacketReceiver { +public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver { private FluidTank water; private FluidTank steam; - public List list = new ArrayList(); public int heat; public HashSet primary = new HashSet(); public HashSet secondary = new HashSet(); public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 100, 0); - steam = new FluidTank(Fluids.STEAM, 10_000, 1); + water = new FluidTank(Fluids.WATER, 100); + steam = new FluidTank(Fluids.STEAM, 10_000); } @Override @@ -72,76 +66,6 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui } } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) - water.setFill(fill); - if(index == 1) - steam.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) - water.setFill(fill); - if(type == Fluids.STEAM) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - water.setTankType(type); - if(index == 1) - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getFill(); - if(type == Fluids.STEAM) - return steam.getFill(); - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord, this.yCoord + 3, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getMaxFill(); - if(type == Fluids.STEAM) - return steam.getMaxFill(); - - return 0; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index bcba180ec..5b09fa69d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.inventory.fluid.FluidType; @@ -38,7 +37,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000; @@ -400,46 +399,18 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS nbt.setTag("items", list); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 151c61c12..70d060e0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerStorageDrum; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -16,7 +14,6 @@ import com.hbm.inventory.gui.GUIStorageDrum; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; -import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -37,12 +34,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidContainer, IFluidStandardSender, IGUIProvider { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; - public List list = new ArrayList(); - public List list2 = new ArrayList(); public int age = 0; public TileEntityStorageDrum() { @@ -148,13 +143,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(age >= 20) age -= 20; - if(age == 9 || age == 19) { - fillFluidInit(tanks[0].getTankType()); - } - if(age == 8 || age == 18) { - fillFluidInit(tanks[1].getTankType()); - } - this.sendFluidToAll(tanks[0], this); this.sendFluidToAll(tanks[1], this); @@ -246,62 +234,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu return slots_arr; } - @Override - public boolean getTact() { - return age < 10; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - return list; - if(type == tanks[1].getTankType()) - return list2; - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - this.list.clear(); - if(type == tanks[1].getTankType()) - this.list2.clear(); - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 06911f404..3ad671ca9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -6,9 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; @@ -30,7 +28,7 @@ import net.minecraft.inventory.Container; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { +public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase { protected static int maxPower = 5_000_000; protected static int consumption = 5000; @@ -48,9 +46,9 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public TileEntityMachineFrackingTower() { super(); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); - tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000, 2); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); + tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000); } @Override @@ -134,19 +132,6 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10, false); } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[2].getTankType() ? tanks[2].getMaxFill() : 0; - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[0], tanks[1] }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e8f5928f0..6e4ef2791 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineGasFlare; @@ -44,7 +43,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -289,22 +288,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 9a88b5e82..04f78fad3 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -1,11 +1,9 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerLiquefactor; @@ -37,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -80,10 +78,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen else this.progress = 0; - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tank.getTankType()); - } - this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); @@ -211,54 +205,11 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 4, zCoord, getTact(), type); - fillFluid(xCoord + 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord - 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord + 2, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - private List consumers = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return consumers; - } - - @Override - public void clearFluidList(FluidType type) { - consumers.clear(); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 798d41873..8adb629b7 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -105,14 +104,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { worldObj.setBlock(x, y, z, ModBlocks.ore_oil_empty); } } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index 9788943a9..dd804d1ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; @@ -141,25 +140,6 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - int pX2 = xCoord + rot.offsetX * 2; - int pZ2 = zCoord + rot.offsetZ * 2; - int pX4 = xCoord + rot.offsetX * 4; - int pZ4 = zCoord + rot.offsetZ * 4; - int oX = Math.abs(dir.offsetX) * 2; - int oZ = Math.abs(dir.offsetZ) * 2; - - fillFluid(pX2 + oX, this.yCoord, pZ2 + oZ, getTact(), type); - fillFluid(pX2 - oX, this.yCoord, pZ2 - oZ, getTact(), type); - fillFluid(pX4 + oX, this.yCoord, pZ4 + oZ, getTact(), type); - fillFluid(pX4 - oX, this.yCoord, pZ4 - oZ, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 725b0ca86..c6fd09ecc 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; import com.hbm.inventory.fluid.FluidType; @@ -35,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -214,26 +214,10 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index b61115d65..65ee56d44 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -1,14 +1,9 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.ItemMachineUpgrade; @@ -35,21 +30,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; public long power; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); public FluidTank[] tanks; public TileEntityOilDrillBase() { super(8); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); } @Override @@ -127,11 +120,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - if(this.worldObj.getTotalWorldTime() % 10 == 0) - this.fillFluidInit(tanks[0].getTankType()); - if(this.worldObj.getTotalWorldTime() % 10 == 5) - this.fillFluidInit(tanks[1].getTankType()); - for(DirPos pos : getConPos()) { if(tanks[0].getFill() > 0) this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -286,62 +274,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public abstract void onSuck(int x, int y, int z); - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - tank.setFill(i); - return; - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) return this.list1; - if(type == tanks[1].getTankType()) return this.list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) list1.clear(); - if(type == tanks[1].getTankType()) list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 2bff133d6..7e735a4a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -9,8 +9,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -34,15 +33,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidContainer, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); protected int consumption; protected int output; @@ -103,8 +98,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I this.heat -= waterUsed * HEAT_PER_MB_WATER; } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -129,31 +122,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I if(type == Fluids.ULTRAHOTSTEAM) return 1000D; return 0D; } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } protected DirPos[] getOutputPos() { @@ -182,46 +150,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { @@ -240,16 +168,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I steam.setTankType(type); } - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 5a7550a2f..fffdc99a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -2,8 +2,6 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -21,7 +19,7 @@ import net.minecraft.util.DamageSource; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { private FluidTank tank; private int lastCooled; @@ -108,32 +106,6 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return ColumnType.COOLER; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[]{tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 45c1fa47c..909e30a82 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -4,8 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -30,15 +29,11 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidContainer, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); public TileEntityRBMKHeater() { super(1); @@ -84,8 +79,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(Fluids.NONE); } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -122,71 +115,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I } } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { @@ -205,16 +133,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(type); } - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 4166b5e16..b2815e4d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine.storage; import api.hbm.fluid.*; import com.hbm.blocks.ModBlocks; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.inventory.fluid.FluidType; @@ -45,24 +43,23 @@ import java.util.List; import java.util.Set; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent { public FluidTank tank; public short mode = 0; public static final short modes = 4; public int age = 0; - public List list = new ArrayList(); protected boolean sendingBrake = false; public byte lastRedstone = 0; public TileEntityBarrel() { super(6); - tank = new FluidTank(Fluids.NONE, 0, 0); + tank = new FluidTank(Fluids.NONE, 0); } public TileEntityBarrel(int capacity) { super(6); - tank = new FluidTank(Fluids.NONE, capacity, 0); + tank = new FluidTank(Fluids.NONE, capacity); } @Override @@ -115,9 +112,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - if(tank.getFill() > 0) { checkFluidInteraction(); } @@ -278,69 +272,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } } } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3) - return 0; - - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java index 2d8782bcc..fc1451df5 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java @@ -2,24 +2,24 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerFileCabinet; import com.hbm.inventory.gui.GUIFileCabinet; -import com.hbm.packet.NBTPacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, INBTPacketReceiver { +public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, IBufPacketReceiver { private int timer = 0; private int playersUsing = 0; @@ -47,6 +47,16 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public void closeInventory() { if(!worldObj.isRemote) this.playersUsing--; } + + @Override public void serialize(ByteBuf buf) { + buf.writeInt(timer); + buf.writeInt(playersUsing); + } + + @Override public void deserialize(ByteBuf buf) { + timer = buf.readInt(); + playersUsing = buf.readInt(); + } @Override public void updateEntity() { @@ -60,10 +70,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr } else timer = 0; - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setInteger("playersUsing", this.playersUsing); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); } else { this.prevLowerExtent = lowerExtent; this.prevUpperExtent = upperExtent; @@ -103,12 +110,6 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr this.upperExtent = MathHelper.clamp_float(upperExtent, 0F, maxExtent); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.timer = nbt.getInteger("timer"); - this.playersUsing = nbt.getInteger("playersUsing"); - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerFileCabinet(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 353573073..9ab3106a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; @@ -42,18 +41,6 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { }; } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index f78665bb9..51a133253 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -7,9 +7,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -56,7 +53,7 @@ import java.util.List; import java.util.Random; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, SimpleComponent, OCComponent, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { public FluidTank tank; public short mode = 0; @@ -68,7 +65,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public Explosion lastExplosion = null; public int age = 0; - public List list = new ArrayList(); public TileEntityMachineFluidTank() { super(6); @@ -119,9 +115,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); } else { @@ -312,72 +305,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3 || this.sendingBrake) - return 0; - - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index daade6ad6..395b8a9c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.fluid.FluidType; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,20 +22,6 @@ public class TileEntityMachineOrbus extends TileEntityBarrel { @Override public void checkFluidInteraction() { } //NO! - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 6; i += 6) { - this.fillFluid(xCoord, yCoord + i, zCoord, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, this.getTact(), this.tank.getTankType()); - } - } - protected DirPos[] conPos; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 4241ac5cc..454abb188 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,248 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachinePuF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachinePuF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachinePuF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.PUF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.puf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_puf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerPuF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachinePuF6Tank(player.inventory, this); - } -} +public class TileEntityMachinePuF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 8cde23b50..2b84ce208 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,250 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineUF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachineUF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.UF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.uf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_uf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerUF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineUF6Tank(player.inventory, this); - } -} +public class TileEntityMachineUF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 01a63ffab..0b6a4b8d7 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -7,7 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -31,7 +31,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidContainer, IFluidStandardReceiver { public FluidTank tank; @@ -207,22 +207,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ff844f030..788962d18 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -830,6 +830,7 @@ hbmmat.desh=Desh hbmmat.diamond=Diamant hbmmat.dineutronium=Dineutronium hbmmat.durasteel=Schnellarbeitsstahl +hbmmat.emerald=Smaragd hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouran hbmmat.fiberglass=Fiberglas diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0dafc1d3b..ffab06692 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1538,6 +1538,7 @@ hbmmat.desh=Desh hbmmat.diamond=Diamond hbmmat.dineutronium=Dineutronium hbmmat.durasteel=High-Speed Steel +hbmmat.emerald=Emerald hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouranium hbmmat.fiberglass=Fiberglass diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel.png deleted file mode 100644 index da38dd7e7b84ea4591d81d57257846297cbe732a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfbc5T(?ownN4HPGgbdi}DK aI~ldBOSBHP6juR##^CAd=d#Wzp$Py8zi$Zu diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png deleted file mode 100644 index 875ea1fbacdc502f1df37fb16a5e06cb19c448e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)>ANnr<6xR5mT9uz=^%vQElHXs_=qCPveXhBHc0?*V%yk`!{zN0c>(v= zrwAd4W;4wz>HsSl?tk4K0Pp;c>KzXHFnD}v4w$6r+C6*yJAW+}8er=XpNCf)LoAvN svGp29-7a#=8V%2b>2%HC`ZKlGH{XVSIHXIXkpKVy07*qoM6N<$f`aXp!2kdN diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png deleted file mode 100644 index 28d9805e746152a8734d4bd447168ff2f0a537b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfZ+P)k|b8%GNLFtH%$XTnx+7R zVF-Zl`xfN>J7Ah7eBb|qUCpvAvszgIDJ8=&Af?0@LtWRjZA;g6c%Jt=z!-zp8l@Dj z>$2Hwa9tN61VvHY)}Sm)#&P^x1Arh1P)hN%-}44M$1y?(s;aWGVh#ZCu-#tXkH_Ou zY#DH?EPycvfcL}U;=RN%0Da$EfFGCmy4!s&@pSsfGdhm5ct))?d7fY8SAV9}`T!@a Vd`FK+Rxkhn002ovPDHLkV1oINg(m<2 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png deleted file mode 100644 index 54a3215ee51374bd462713a58820039afe5865a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;DTX73du}brjnmdKI;Vst02>u}-~a#s diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png deleted file mode 100644 index 019d2287b70cfdbf5d15ede92f9227c9e6e7f64c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf?bY`MbB(LS?(@t9Q4 z&ae3V<6~M|V_VkLnSH*2&-BfW^m&di>(I;Edw1o|xRsgTR9$|vJlV;$FCqVye2O;X z2DO6o2V|V4IMlR#VJl?Xo5$Ml{7?>8v!H}j36Fu&)^eNBoCmEFZ0m9u5_(Td|7bk3 z?KDH_m->e1b^Oc2U;h0s^xAH*Mbo;~Y;_BkJ$I5=&DOn>#pIt)?^l*no_>w{E&qE0 P{lnnt>gTe~DWM4fMk;BS diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png deleted file mode 100644 index 7c97d5410cd1b2564f55e3b2d8f7ddca99a84626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfK!(`sH|&9;cA|F@W6MU392>B5doLaD6D8`QDkF0 z6m8V>aMrf%@8{mxruk<@)J?Y=iuGr5xu-?%3^O^*w=-9?cN^>RV#_0w7}lSiu6@SD zN2(}D&_Gr!c}e0kM%xA2%&#WxjBviPOaIq~2vN^{-WS?mFnoS8bA?gD9%)1Wd&0T1 zm<1K&7!&UE1$ZU)9F$;Q9{iQ%{tJJ`dCzMrqOt`Q;*zGN{@B<5*kZ@J?w~FcUss2h m>0C_;^|h@Qecsvimw2}=G<~Wpw6hWDO9oF@KbLh*2~7Y3*l+Iu diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png deleted file mode 100644 index 54b05ecbbf44a4d165bc1cf51b60df5b99ebcba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=)gKxPbvs`yJ@zs9z|1w1rb|kTVw|Sm)=J;;ryht|R&3+6I7Mgl# zuGt!qz3{#3Jc&oseg!vL^rc5kQd!g>k#xOuNv4-Xn@eCzP}jCx*T$pm3%7o|9BpuH e&3~WhSG*eW9;ctUOsEBVj=|H_&t;ucLK6V3uyzvw diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam.png b/src/main/resources/assets/hbm/textures/items/battery_steam.png deleted file mode 100644 index 880f1e21ef252e8ddcfa8e275ade94db239b1f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)beFX&+{Qq?}PeHAG2$4)wjhw9&s!uA7-r{&H0S)?Zp`qQ=s@YLp0!(lCkRqy;&CYrg!$$Ek7U^%6kYP!mX$ z`@XVJYXyU$hYrRTd=2JtPgY%Tu-dMsLz5D}<+`%yJ-?pw&w{6>2xa5B0U(?#VVRC|c zO2Vx3j}OjgTxOelTkUy_R5F+DmTPLsJV`wYoRb6uTLg^uU14eOP1vbX@RId<`-5*H zcjB8$Peg_W%=eNocJJYQlJ5G2YxBc0hs%{$o&ZaYi=y*eRfs89ZJ6T-G@yGywqEVq8%G diff --git a/src/main/resources/assets/hbm/textures/items/battery_su_l.png b/src/main/resources/assets/hbm/textures/items/battery_su_l.png deleted file mode 100644 index e78387cf0320f036b2d536791284f8c488166471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfw#Z3ERZ%ZePZ6Mz|Y()pwE1G_xb&j_v(M1{qXR$e4GFMe+D)G{@S3j3^P6hY$Djgi8YbiJ#I0YQs98<8rz|By9 zf|ElgH>W@rhjS5Z2X`kya0y&8C{-+GiNn>Bv?{Lp#&_@g-g|cke?F|=6dfHN7XVY> z^z5XQB-T$*ZkxQ=6!V(wu`033@NhUJR*KvPAp|%x=rsdC zN(pZ!*FWeJN1;_KPY^4`&aOm_6gUQyQc@=cAP5HJteN7Od@h&*cMtdEBaog1piW8< z3}^tZ>(XwzJl8;L4UGjsIh0ath=R)~qTO_j{RQ+y^S(e-F45cbi%z#gYrDnPYQgww zY`RU&dGeHi1Gx?7VQei;5J#bf;}>-&rPb}CCz>QFK^O7Tvw!&y_I$gP!T2>@-*{|>2tugiV*7z$KuJ?NJYTY@>vgP5+lbg(v4tzfdI2Uf# z+nMn4eP!h7k_x+Hzt{zIa?mY=&m9hKc@K>J-L1L%;j=^9zVauD^-1ZZ*P%|5Hl&71 z*(3%i;{6pAD9zc-QJURZHJW7npec=dvxS&7~&NA|E6KaWvp;@$Q2dyBc=iD!M{cNUPudH$}Xp+TJg zH}WDS)pjq{YBZMicXn|0Ct+Y9BtG)dT6x1LP_TdA*7|QzT_;Z>n{^3Rwr-;^nAGyZ zq@|F&p|^C{!M@3H!`W#h`U*^h@5Xf)2vvm$P;TO00NHoVwLao=jJAOZN9_PER zyu9{72uJ;Sw)XwUu2W0ZZC5`IoU6m%$TWK>L8fI18PI99>>)iiI`THq;wt3lTc)RW z%Rs=-yWLIS#+K8m27%VwrBx1I>CB`HKaf?xo4_e_vxFpZ@}R1*v9ZiPeAxKIJ)vE% z!{VDD7uSCv&CIUGTbwkGC71s7{jvr1wO;9Q+7IM-y&_lLm(04=q9q`h+sd%XCua*} zLGR-1N*jOA<ze6p@ z^!lbUW&VeZ7sRcl{atyNttoT15`)_9lg#uw+ANF(-siiJxDiX8Rc+z)?a z85lnUV#J^b4BmGSx9C2c&WSw__IYbIqiiFnh&uOUL%rg@`dr>}a@5`eq&S>U?isE| zVRm+w0`@mips!{>@SNW?qP0ajd+Y25`*to@?^tJRSBblOqfbq{4&1l@6M6}~ui zETAgkIzEfH`UHf1(^%vQn*xu)3ZW*31egu~H}z{g=dcs*Nfvf$2I0Kb(2iaHygvsx zC4I#%AAPU2m%!|7jk5=C3dQXp|JtvqU$h)bZd@h5xvz{#Vjck&`*}%j)G_(&!%v%6 zP<21&cn_@#0&ZPOB*OhYdzUV8-r4I!rEcp!I#XLhyx6-K!w9Je&TqwctVP=EYZ^@&@r5!Wb?v)_*uOU!h5< zj!R1#7V!CMXlvuMzRkh%gB7UKjQ&3K3q)RvxIxWm%i)ireij-fz1Vs_`-CgJFzirz zZc)oSbp^U33xU4LdVp4_$mzghtvnh9;!n2iM$FNd#jPl3~5W* zxr1(yY2o~a3X-ehSz%SuK2G~bpM;FqE?Bj9o(3-M(e@h+qhB4 zyF0H#^2$Lr8)UtdWRewsZ}>G{si6wVbIdk+gQF?PNtQLv z_#BQ*fyHc2Dq@=w$9UWTILuQMWMUOqmg10YRApQjaQs@Om`Ww)=saM8e-J)p3qo%v z=7Z3K6ym*#I8{0G zFT3XvsFSZkukzg58k~Od)!?(5p5DEBL{sIfwl5oIk9BCk2CYr#lvb9fHn`M2>cs>1Nj z_HmOumE_w`3F^PCSZSE4Pe`b6B}rAi*(khS6DG0gyMe?9U_i&c4{vciI`+03Fa3AN zN~-RA-rBfd1xV35O+PTIBEa6G-h$*663|mKwgvn_h??v+(%>3%AW_rd2$zj z3vBd}v2PjKN5zVt^L@iFr;P=MM!Hy`ftd!k>)p_Mb8}Q`2kVqJby>s@ zZ~V!RY~K+HXJ)Rpc4_8XimBTM+^k$$)lAn@%8J11$3_gCTr0$akq=zrH58LTb@e}DTOONLQ8@nZz6 zuj5i2fNXQm&U8lW5CaoN&aS5}?VaKUn*m;#TN0jCj166Lh8a)T~bx|7ldYsS*@3(araUaoTo*WP!AaUWpY~6eE@?)K@k5A3dU;fgr;&!B70$TF*69X7DwB&EFrekziSv+RCaJq?Kva zh89sV;9YIRLw``c!V5g}g3?i!GBZagtu?}>y*=?L%7c^NYYL(cTKcEQ<$0l#)QmVh z&^>By-omaYwl|B4g!&=xqL@q+)7~2m{`W8kF9?@43@QU_7{;Fz@{CYP8etqKs6EXS zX7nEKuhb8OVVE;o+%-*AJblQi#oY}ax)j<z0rfL3?Fb)@uCo%KO<43+8A5(YxoHcHdd%pBTx~zLaD~am4bng&z_& zHh6c1uel0lFP0Q-*4CU=@3^^*-ADxMGI%OTsiV(_o!3#7)&99D?Ao-8C0N>~Dg8h0? zFqF6G!L!@~W8;M#n$ocdl?oy04Ve`zFL6ZgG+( zW@m>R<4l?8q945+cN~hDZ1fLua#hq?ie-?mxwn|7m(=1vv3_wrZr;6>c@QtwAiR3E z1vGB@w&AuNT6VmVMI45tNPAo{=vKd7TY2_@JeCde;M$2mw}IH?Q@?8lo)*8dUgYMh zgb$U6_CAM>lRKc=1Q;b3#JZCO2D@TBIVm}HZCI#Va98O4=Yr^ktKOjSc29_Q-NRe= z`eM--hI69vCp}W2bJ6aRp^j#r}GC!s8?0{7fUX4_Z zYYcO#<&jc(QZIL`G8Mg22-`A8VL42gpCa8f;>U-w2uQ=m;?66UD{*Z+fY2s*#-l*- zGIQOIJuXB>7XwP?0;7$<3|aI&jL&9H7sQRurApSIM+%&8Ob}Z930tcQLzV!9xe@`x z?(TC|b(Y{+B@T$;=U3z$wr)P%mA|i~chMH=f?P9|qQi(Xtw>wC6xn1xZCrl@CEP9= z{JWFMshjgRYA`7(2_dB?%E0|sC-hqX%j~T28r?M>F;%+d9gQXgr$Q{2;nnez8MeDw zyO+Pdj7@*fvKQpZCU3xLkp^N08RKra>jzzr0^}`OicpC?NWG4&(Vl$xPka~xw_RZjs**>?qD%9c2T)vS?heJHn;ryh!0qs0_{_}A)Hli zDb94?u6r)&N{6ZdI$-7?ESJl)Bfu+QySn})O|xa{l_{-UyjDKQ}T`_w$pw_mR^b z2xntqU+C!avrHz85$rZ3)raPGy=4QTjCy<@H!NQ=o>24?7C#Ue5WocMkeC zuXyZC6sxWa_pHCwgj~&Ls+SL{cAM#}N1e({dXpnk3NRpAo=Oaem3PV6Sw(& zZbE_Zte!$m2T>-HM0DGts+p@E@GMX7q+PRB*4cvPnm=_?2x5A3%J|0)Ko-BfImSTC zAR$+8&CJaBgoU>WR-YX#cH)OKdb}9+|6#E|PYvYeot${{hkF;{7P*Sf+f6z#N*sP| z>|#v$uBM69WoKZyHd{ZetvWRNB7GuBlg5!2!XAe{rXAoJ(=d$JKLIZQ-0CWbK65iO zCl{BE=v-r5wNy{B{#6N|U?Zc}@0^n1Ps5zKLonv&ZGG!S9UXa-CBGML`f>ysmq!wZJL3C>8>XzSIJ^Bvq!A{oImsf&E1!(0g|uD zb{=;jWYW;VnJaphNDiz`#6zG!VQ0H>cy4NrYT=}*POan&hb>?YXRo5XfX28=QYVEl z5v`jmbw1SB8%-ActL#!}?b8*WArF5sT`@)J+1I-#1pS(9|eR#CLoIi=Gj$#Zi%OXtw5MUg^N)l$!Z;OIai~$D$H`X>!AYCDu;b%bdxZ#igZc58CdEo?(pAUFPGwyqbE4 zq5p_P+hMq+FY6&n4*dE-aT6vRNvx>nEV3srQtw^wVPoN#(w18oFtqh;LLWgaeeh64 z8~0aOKyAYx&u($13Q6|gKN8Q|Rv_Nu1L#MDt zl|oW$)oL!SrqB#M)1QMS6F45XAQa^Tj;Vsf^R{Cq2d?3&QS5p&Gm7Euab&*%y%*wx zQRqW$PKDaI2R1x8832Bh;^q4yR~^@lN_5?8HP_SL#G65mo+XD#|#o#TVPp1s=TD(vX3x7wT<8b>^{ z=Df4PYJJt#s{7*QaWMN$OMU-PpzDzG`NCXzvT~TtIaO}c}A-Xko%Y<$xQ2F z^jTs^%xYozeVF+jWvTo4p$QP~``20?o7Eu!!RfNL7LQllx@~WP<_Z4a1epp&6zn*? zoB;}pTt+8EG}uI-#=u4OgWILQEN`5#+rECy zPxd&#!tn4(79e`-i@d&VhA3IjgovFv)N@A)rn1XB2SJ7NSPQPSTDE}GTxlDzA-5oZ zaU`qX2l&p~`HeD7lnOhQrb_R9VvhSl_Bjr3gPAPlKZ%Ux#73}J-Jx{XYQJx&*yFX*J3Ik1YHSv)O)`2Igef@6EeXsuGEMLZv$35>^~F4bH`VdF?`rI zA07fHrb&}>WPi8cTJx6mVym)!?ICRCPb3u#N?v+Dw%+3=#-+iNwlJN*{5B4=p+4F7)#;wMIpb5rEa&&*tQ@eZUfMC+Ag%Ea%2S6=Ep>Pi=2~; zKrSy3h*(@pP1$h37db3?bb)@kMOno66jvD%t={*Xi&1ybeD`da{D~v+0>Qt`ez|-- zKt4aeF<(aSGXK}6JxccY9q2$yckdYy_^RKF+wqpIQZsG)Op|X_dMxGb3kMQ;~ zwT@8p3lBr3w4-)Q{16T<07M;??bDS|!q;kf&#ih4A6NP0#K*b*9PRg(i*OmtZW-+R zP>m*wG%#m5PrVYN6zVSY(bc7Qz2a9Bym;$j+7;z&jnQV+Ou3XG4`KrN|;cOe*)(x)`9tqgFRk+|y3=zfr$Cm`J|8stfT&VI1>vkGIy72CL zO;7rM>M+=3UkxXY7)994H3QZ25A>euG>6m=C_O$xFETdC!BTNW zsY z)x7Slp*RN0Nel`~9Oy zCNVMMR=EYhUPO3U-%43g_6I@UuG7ZQBq6%fE%3=22DG;bg>uw$BYKDsvlT1-CF&vH zJuK<2TjYhP_t2)bUI6cU2>t)U+Ebu@1N>*-`_ZRm&jhbuKh3e zZOsn-M`g)BX<8f)-!utmK|{iKOe*QGjtdo2^(3?&PhddaZKyHIv#{%90Dif@BDlw4 zovd|b$hmT&Z(^l)i8@s(oPF}X^1Rens=ijMpE`DRxa2<_0P*X8VV zvS*`bOxz6koVb}tNv6PftS+oFhMmY6-w-f!c4I3tL{&(~%p^3Bn-zd!TLuygHr#yj zMw^e;e0MQTf`ZZF0>o8;pL&uRiYPmZ<8jZAY;H46?s(ePTt6~vvGked%joK(|M^w# zPw=8k9Qo{I$QEA1;D1d|8DC-$NSF83vX|+P; z@!TBLdswpN4IDI91y|!AOGH<@IyA8uFWU7t@&E%jSmglh+4!z$8~$sL(^}ytIu7pT z40qjg#j4b$JEZyXjDif7)p8vSkJ{6{j$V8qnhau$98jJ7D&Guv zi$1!>n(B&=8x*01d|)g`!m`72rwSM4xwGdz$8g$I7-OI=0|R$Dx+d zuxR<4T_=ZOJknLSa#Y|XzYhwgg%8SwDxk-znSOaxA(@g;>>^Id_Dm7$ApV@VV)GxVgP{o!N0-Sk@vR6bhxc;$S{aRUPiicL<}f2RQzR}TAAaCY?s3!R~@>8(Qm$IYu975m=L8ic*H M)b-SARBR&u4-z`QCIA2c delta 8346 zcmX9?1ymI8*Iv4%q>-fr6eN_c1*B7yl9cWa=^>>gS3qeMK|#8gE*AtO6qfF8mS&gb z+u!$}Gv~}X@0pqBeeZqlz0bYz`uX~4F63ngH9DyUrYiM~jbG9OlyMeoTJ7+tHTNw1 zz8DaLPV9GnhB6}|c~D_|ejIhEIleefITVU-4N#g@m{b_$>GBH6HS)n%$X@auMLsx&jL?kKaK$3b1Ayvk+wyuM7OTJ%QYXVH3t_z#NB+0Z|s7HBRu87#CG#r9{4w~aeNWK zGB8GK)83X#Jx4V$yf|sER{j7r4IUfw=$*0NYO{9jk|kMnlz89t`?s>2$;vaa~!f2e=S>q|u-R#|O(q8cO70lB5Ny|vyp-=l$9>@gC!qac0$7g1k=r#jF z1_r9n)T=i7NH&MtwKcOLwjC zZRciY{o6K)%&wD8!#jdEOv>PFZ%|NO%-ObhBQsm+*M+{YyN2j51PirKbSQAUY<4_$ z)KbNt2A_Rr+u2`eN}bJ-uC1%XnYbVl_K=!?_uBi}BU^60_G%jA(%fWEj0oVS*KuY= z@4dnxL^20$^1N%CD_{kP)1H=82+-B4s9q6pJdbw|nzTkX+(8-`0ugy;O1(QGYdzwTWXdq-S%jmP|{z`{l=G{Hph=00rD$ccoPC^A?7`o6Mo3EBrf?(7Uru9q{wSc4D&`|apP6D1o#C;z@RYdGqs}{-pH`jJ5wT=jb>Rzh!}$`tiJ|Q70O%`m z?7(niT46Rk#T{JJbVK_tg;}xmE1qj(W=_80`nnxdj=PY$H!gZKwRa|RWK-?%+ne*U zy9Iui;vXLpED(t5O5ohL@>*M3P33)_clx6^1_Cd4aBaju zMiw^u&C3O(5(fvomcHKI=?HgKO#1uFM%q2Tff#Zgf`3rc; zanC33?I5!oAquii6$>-LN^fxvE%mu{pud&R5iTZkuv}O4E1-E=>cI>rm5gFWvRmt= zZCI7wV!Q11&7`t3=x8yf>4;#sc9;QX>B>bEi6v>oUV#XVFf#q)?eaH$PaG0Xq#`Y%v$DH+}|#N%^df)>dz`o_>aY-o0zH)P(K@9l$Pw$|0fbw|#zCf$;UEXTA4c#and{N!9jr=)ZKqQ&)MKA3>Mt=S-dd{#NF+ei$lnbp+`@i&^0tP z$dMw2RK(<-_~UMhaD77`{V*)86e~?>J?dbIm@GHuiXpa2?YD*8)SeF{T*mFVS z`e$nFR9(uW^aRJ-?MrE($~L4X$I#PqqY9go)&3YIju@(yy^|utl)-PkpsNuU8Jw$B z7KfNHT=sAkMs)y)2;V9EZI#cLi1^^sKTKVpSFIn^3%;6ceLLaP^ULh$huHa+)`NLu zvvlm^n4*pj`Ns$PUsV(G@>uVySkKhj|1@u*QPBsD!J-D1Ft?~)BwT`>Q>^P@!D%mD z(GR-HA?ZS~d>NBj}Z-Oe@)>5r^Js`!j%qFq&09^y8M%E#dYI0qask zpvP8{-Rsu&l={RX=NNTXccYO$$SuZ#rt94~K!1Y9S&db>!J7~KJK}tFG?uGkEU|cl znLR#ndpuSmRc1tny|Xq<7+*T`ph8H`&(9~OYiz&X4C`6B^sRVN5#tA5%s9TTwIhjC z0KLu<0hp6l3K4t#TS*tsn~{M`bVNKNYtumsL1~XaW=lm^QC5Ip`BE8D{`)`Vy0Ha! zMNlEjUg`4-6Fet`t;iQp_|0u=asO60m)jlUaAa^qWsj{W7i}U?=*#rB?Jd*L)_2H@ zipaXcSM9lost^|T4oKHW4hW&nuG6>TQ@d7K0bkm zEn8zSd=>rbxdVJ$9Qm7mMb-OM8!xEm$$H4&kxiba3dsB;{r>4-)fLS)W`H*CK+RZq>h43jGU?9ak<&iyIiUV~Q$&%B`q%@`?Rz+ikMC*YuA*w4ExL}3 zDwLmDE(UGoqmkL2%Eal%PuRuv5*{mYA{8G(kcAXwgdaQ6RPQJcrTj4XhB=3Oz^_?Nuc+sihK+G>hMegseyhbo=koDNZx`v})uO|psFM(@u(0;R2J!&A##q_FUH`_5Lm8;h(EYPMZb2}Eyx^s{v zY-DlC4!~6W7qLQWEBr?-TyD$U2biX51~7k!Ui&XZYpnf*Sv>4Or`{{`7}X723bDHP zOYSac<(|b>Q3mCkgV~&4E)70sPF%FSS=J4v*Q>*yR)A!56z;io&Mj$oHKdDrc2@e6 zkqBAz7h(I|YjP%$oC{q__Yq!aneiz2q+;&h!IO)7((@gdAhKrkM3}zA)JASc9uSbH zYpihDo`eu^yv?UX{-Rj=@`LVPo7rF*$M{+t7r3IxnSLd)HgLp;UE|?^h8Jtn_>1#= zx5Hb38`kB_aa82`R=IKS9Lt@OrKMlEySR*aYlWJLg}cSaP;3SSSztiz6jTynlIcsG za-SN2T->g&WO~S{RC&VX&W>4nK;BZi=~3uB3tMPFUL`8R%e7-A84)rGvI;tn<@*#9 z{|aaINmTA73*P;5cvYw?aD`qR{S#*sEQhETJ$5uQN6Bj80S?Z~qae4c*^y^k7|u{~ z<#fu@L2yyVdUWS*FK!*@mC}!3`H+&bMb-PEG#!q8`z~@Cu{G#cqLw`X{@j0|6??k- zb#%~JOEFMaPj>xnFpY5(^3Lx?gOdA?jZ0o|^oOOR2mj5^lIC#&Ae=9?dsetRaCSqUaa{iJ(%H48;LybB z`XFX{==*+dsI~a=1tD;9rKI1fd=W^&mRhQX=hrFHypYfoDrM4suiwpnRYl@tIjc$X zQfr1au&LJdxO6p7>u{^1bAd!s(xhF`+T4`?tt9LF&brH{l#H6Mk>ipN8s+m{zu$em zNzuQHJA9jbVAvYuxq+I$TWy-LY-rUodI$_n0eQ>-C>dQTfeU;#jIz|ioz|yxAQcvsC|g_r)6A0LXlnk!W>Aov<qaTJ{eo{WAnA0kjO{|N zFkpX?FyTT{k`_%pu?S}O==1&;KH=R3nYqERg#avlGi%F*4nTxg40W`eJ3C_nSj{}? zC%NM-4o2e^=WLollzj8{VwC%O&ZAYw>4J>nUffr>4OPU=4QZKl(_c>vsD_zcT=7vP zA*1$HlMEXjNa*gS=2gL699uA78F^vw?vG+;K?|6Hq^gj^cGXFPoxZaEFAJ@M4zDfIvR1KoTGYkH9=EpDwztKeg1E9Drs?5i}x1$OLaR3 zhl#Nsuix&-r{w_)yjp14F~~{QTtJ74PV z_)(Pw;wug(nQ&&$-}OzQJfg1f%0e2%$m-U!_DUC*Lb_rS${-5x!2na{lr&orIIsjRdb-*C z^n&ogN4YHr5nx4@=R=CUk~4``_LytZ-}U;aI42}mkAHt=JQ_B8Q@rkaU0Gh?sI)Wf zHR~74tJO(#U0AkKzH7PJ&&2QS;-dMTq^zur%5StSnO}eC&A*GXW0)eUIfHF2GJFZl z?r_Zel8IbZiL0~nB5f)M3ec27(SkG{y3ElbnNN0RR~{Rc-x)b4kcJV zFDr{aF)1l%yeXqKKnQ2KKi2?hA;=&T(6_`>+SZmwTEzMtw9QO@VIn$9Fe3B#;D~@* zfcj+!ZG5b1htU;kZ#N`!Cpk1Z#x9;49M1`$V`?-`sV7&VXte-9BYo`V7z>b-lM{GS zk_pmZ&(%JW7@4;;q!Zj%rzlFdG9@XzGipEdlH?N-DlIE}e0xODH>CZWR#9Xc-R(Lt z@i4~BpjKXjhE@|^>wO!dF<98?#pXZyGljn@4!wx{tcK^N&A#U+{q=EocQjEiLKJCx zDL(c>-%__FfE=)<7&Fn=r5|gi?_yJtKkL23U9~T%&Gv1Nf6#UQE_rXs7Sj_nd?cO1 zeYa@e^vXCS9=nz_m*_a!BIS;3I1^KD40RVs=L?Go!pI~aVnCS*ntUowc#q_Efm5O?4b+|>KxZ1;@^;2ud%FxIoZ5uwEH%qL zi$yE%xCV{oVkCIwy6)yse*eNDAYR?PE(vDzZ7gq*_ukxRpmv?cJ4E2DmqOO$8$ zX)d6@uw9~)TTFfT>58tkY}=)|jApSCzo-vmhNY1S-#-s*m?maq6nNs?HbS~SiPK8@ ztbfxF8q@m1ll}PmHnZd18Vl7d&E>#aARks0#T`PvX8?xZm>X@(%`3c+#Wy&^l}(_X z5BroaKK+IkaGqs0+rs5PsHU_T6h9A_26kNI&oXoyMGP4&o1J-*_l3t>#za4mqgnYK6#HW&N_Zma!)jDmGXlTPh^p85*1^mJ%|_l z8ZX@ozrD&js^RmCFoSeq@YLe#w?f)IWL23okh`_m_kmv>1mA4wEEMq=7+c(Wqj!u+`;hT$EB(P4P3`e z+0vTnI@TTpGo9}zqfctRRC&jI4WeFwttLKPnlh(N5gPwpWB~9s+Z?5GOIvOv zFaWR%^s8D(#I`97{cG1(Vid0HO=1XPkJ&G5kLBp42YIWiezRo0=FTNVkjc?H z*I4h&o}w1O?3P+Um39p~%%Gl8!d<`l_*`IMm|tMeJ62=vYCNcR}|6!5hlfD7;Na-$zf$crR#AMpLP!YXl%Bef|;+5l2~N`M;I4)^>S;haQ%`So+4c|krDXA*bolt36eFSF2Lwod=X-#$tu!VV~R**tNKc^>P-A$sFT&!zbLYm(ZIOAIYEQE-q+?#N~5b zO9i%vr{RCbwwoDg$An4)s$`!WnC97387Mcj>Kts?2X^nmX(c}jCu4bWiNb&!NpCds z%2XVZFfUNG<(a;}GLcmXi$8D~`K_1*MSzc;n3NcwgIg&=0r!2awlJd|`l@EQ@GVEJ zFmeVCUJGc=C`qrBgIHXj@pmz8Qx;_hdQ)J71i{e*w;aPD;fO!wg#%r$E2cv zVshV?upr`1;5cK{q4;q3y%aGq5jS=5?jj|vS7d6bVBWtU+TzzLj+z?8*Lns|;U_yN5t3zeN7*zkpTlYz^0~Rq^p$8h zqzCFvy<&?N4hS9v5%7VZMd@^2`==to_Tp=UzZ0x5mF(RL@h82iPX%>?I;;Bcfk4FS z8p?_Wwy+C3#=sEF4{P|MK}*;w+KPLK@yoD(_EM>uRq8Gpc!`C8j}~=Gy^k! z%($!`uD^sNd~|pG&`LdTM6E|gzGAvKqJFWyOJ-8ZnpFCXP}eP?>y+u1*o6r%V?aBz zP(8X$D_ZyCnJc5E{Y&N@TR=Ip9XJ2VJ*_&IE_cNYdaPQl?ePNmFx@XvfOx zc>Lj<1Q&HQX7!5wFNGn;{!3v*u86Xe$=z2h^ib;l4=Q}c%Yb)FHRFA|nRxEV(y!69 z{teU8tbxg@zpRc4+Snxi++%TvGat9)t(#Vm4~^>O{E9%~6}#%`DzE0LBr(1+`ZfJ@ z60AV!eOmQe;Ma#tkw$|C9H(_W<(R!h{w(x=;8z#>lTwg3qH6&Sv}esbPSTo--@Vg3 z6=J$J&TCxf03)}1yj&%^Un+j!^yej%*3pK%;!^bFeceUDt@_t9jqB6GCzpzM{fm1jd zcd#ykJ2NxDft_o)nWnJ*vU|Dh*0gdNbaI1#uM<$XPp*}t3fm~W_<#SJ{>2m{G#f(&@0_If&refO@%auA>g^G4 zM4@$%6knqD*jm@dF%1$GvXJ20b&E66zzctFym#N1{s}2V2U~+o$9A z>B?Ovl(voy>0b`KxfGF@65!e*pdf!BO;goQprjQYl(> zY@Ei4m5AT1Z~dK`&k#+(xg^3yb{=`0s|(imC0Yj_p{|*tK@)DD4L<^5%Q)_!L000_ z<#Q)!I0x9t!`Wtfj1!4ODv(+W55z<%&dW>8n2{a zWba=Pjq!uu`XiaxJMZSVj|k9zukg&n`?>VP&PqDv$4e7S(k(@wrY0u+@@^adb@EFs zrhx8>li~9wU6!-fl>gBaD*nRXyAJJ0Xvo6{z$?y-s{=6DU`@tBi;vc9dp1Lqg2DU( z#LXeX=A1q>8Cvfhws*tj{%hTK8E)kNb6cCJ$Ei`cTNd`0pxXA%{a_gi4$zc?AN zsc@ZQ6(tU=_q<`z1eq!^+jDX-+wfFVo@pn2-F0ZnMq@kqY@ok#)~6+jK|q&p=@n2} z4^MQ~!Mr~w8XJHtI_j)0LrW?ctJ_0L(mM|KlbkYn$CIT>1|G+0UvJ;bQ zUSxLjqD8K=H&H`u#I)sueHoQc(h=f+s>QM|(h#P>mtUs0HH%8h5AweJmOz>P(FP)> zd-O^IdY`tZRq_5WQxD!Rh3OaZow?HjJ)Zpp_VTOX{6NpcAnK~yY8N>&g zG~Hi{_oz@1DE$X65`s!B*gc^>>7{-CmlMm9&mqsq;thbBhLtSBL1R|R;!qe`<5aLy z8@)bQNKJYz8GOYq1GyziK96&%n>h|@clma5qo~@ztM$2BuBE0Xp~A4R)ZQ0DH}+WZ zaSjn|3EnW3wTr>U0-~;%kI1*;Me@@ V@YXGWVhV)4G*onzE0x|v{U4#Cv8w<8 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png deleted file mode 100644 index 9579bd9ddd27f369dd02b1ba6baa13ebab765c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)2%8Rc)VNK?RI~9U9Z>Fbx@Bjb+07*qoM6N<$f}V4rWdHyG diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png deleted file mode 100644 index 142a7f4a4845cad791e23d4b458ad69773ade029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)N@0)>t47V)V>-7SFBqU*GNTT2GFTAfM zy4`MQG#at+BcS@yG<6Grs;imt`S`d@h5!;yVlo^uJ~@f7!C>G3niU{~!0ORaES%il zf*DQ%Gp0{ZeA(T_N&G%NjZ-%PI-O3C#N_S{Bv#hfaYX@U@D6a^^Y-`%65e}~BnhL@ z$TjE9nw^~?iPghHcn3JCgcJqi>+6~)aRTo>lK6UXP-@Qea)PS6g!7(_ogFaa=lS_^ zKsFrWBv#hepeUk#B=DZ;^K+E26fnNHC?)Lg*CxOWyyw@=O>LbufSIwmw-+Tu54?~6 z@7voriL1*?%nX1}0BM>!?>*W5J=wzp%x0wz6{sk1MZw$43)9zEB$4O2s~u9i-42z* z-?p}xW*M&19|AbXkA6RHAcRl{03=Bg{&vE1>svhK`DnFT;bZZ9*Z&%S0436bbsmGC Q`v3p{07*qoM6N<$g5#IhsQ>@~ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png deleted file mode 100644 index 55b308cf7c7c5c8f95bd6f3912166bdc928705d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)Bb5Qd+%E^4bb$&0u z>H59}xVpW~3f6)MMuf$1NVn0j0LM8YmvnsJUgsJYg8`^wL_n4J^_Bf%5hKEVv+3M8 z2PMyAF&cpgg`*=(l7K3#1WcOp6^0-}9?v4f26otPxI}@|GvdMH)Z5#0)$nJKr5Wx@-gA$TP5VW_n zu(S{xE5%Z=u&_xbLPSWj2`FU7Vi%GWn+#-G6dZQu-S;eJcihPa8@=#~cRBam%Q*-B zvDA6ZcDro>L2zlBrADjOvXx4u7(7cbd0`l;8G^}HV+?CI)(cV%WIz-} zeA(G5$hzIG0&pilYc0!HucOERy(j`ey!;;?>~nKtgPJqs<%_q)0vDj!Y+4baH;7>l z{6#+>tXXgp0Q~9@ef*ta0$OW=Ah7*@U%As_ecRneM7XlH1ap9saETEf5GU~N{l}6f z#RXbxM1+;)TO@#71m=I?GeYTH2wR0a4>$33%F}1B&L`*%VyIc_sSl=#G9yUFYX1Oz zcto82!OsxveBMGtSh{~X7uE$;%`Z6h7I^*UL&?q(fiZ@=E1M)hB?D4LHV>XV_Bw-m zj~?Lbl*dn=V~hd70SLoTX|3rEV*2R`9zY5|%>n~1aH<#cOdK8&ADkc}q-m;3L25J_ zcB1g=wcC6R_sIa`fs^H!&fcfO0c&lU03Zkg`?m;B**6>I>8jW3_U!QV*8f_+0f}-$ U+Ry;Jr2qf`07*qoM6N<$f-D^6HUIzs diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png deleted file mode 100644 index 07a458215c866f4106d3dd1e59c4363dec46b5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP))@tr%mZcsZCVYghuk&??o5#oUE zGD8moXt|ItRruMPA%VlSO`KcnT35DMNvw&H7rTqooyY8+AND8lVrj51QA&ABz-?|E%)l;}g*Y Vm(KcA{^|e#002ovPDHLkV1mFXs?7iZ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_copper.png deleted file mode 100644 index 67442c881047fd7c91e1f9e9f570a963574b3267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)+7Agd-G^{c4LLgDom?mhM#N9a-yV*6qf&Orq892;*{|x+jDS&)AYs4`~Tab?6 zwk61=?bp9@r4`k^Hx&gqXxs!Hhlc&f`6;E ziLk+jHRnz52vQe{*%ZdP2jF2n1Fag>wKtkAST2uqF;hp!GyodFwH0njA@?er_$8!{ zZKe)yX|^DFItswWjCTpoyuZYsn%kc={Wmw5uAnWA9?)n@6Y=xAo#$SkQ1YaZuEOmq n~H00000NkvXXu0mjf1kJin diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png deleted file mode 100644 index 1ea35bc0d6cac46c843e4720530ebd6feb158a93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)nfLb(d98@;X6FPFH~yEZ~$Hgp4<|Ep_IV$p>P6@lwfL334yWG z5Q459hDuE-mf`q0NPecU0|Wv1S@dy$KAnK0hb}_gJeb9tX z9+~`uKp*BIY?@ypru}F$o$TLe*jRasXkKV=8R2S{DjQs(0YViiXn+% z?=5Vsq`0AjV2WkSU1XB?b3hl{=u#I(M&Zn?{fg|Te00000NkvXXu0mjf Du>igP)L6~CYq{K7y7OA!St(GV({mK4!~AcdRvoO>OTH1SW+2M(O+Jiq5T z@XyNwxN-J$6sl4U8i)w}q4GI!><)!;;7}3Lq4KfeaLzHHLIscKAC^1|kT^07KoUr& z(*T@FrT%ideqw~dLwx}B_INDMt#t@4Oq_~#MM@=b^oNQ%$EUzC(Ar1*s{qVQPxAid zD%oQ@`TguW{@Zt+2T&{)qqb91id{T02{B?xw5d>j4=QB;b!(_ zk*2!}=cey5NW`|oeJsqa5xiJof80_r7Hcg479cx1MmNDxz%S$hD2tNWh)9RZ(B(-0 z4gmLW-RvBA{a|J@`)uIw@7yH}LjZ0+c}lHTg9)fss}!ev#`6XC#4V572Nu74<&7$; z%D&_d05Va?wbA1&H5>L0?xhSE6itx<|BEohRe%d%G zYuLMW3&vXJJwvHfYL?iodcDqyDk6fmsD8v^7-RTl3}s_5t@%&%2jZ~NMIXp(u>b%7 M07*qoM6N<$f`bp}&j0`b diff --git a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png deleted file mode 100644 index 8a892099cf4ce17351ad03047136705760c4b41c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)GidFph|se8`zoTm#lk2-){E|+&4 z2ivy)49l`mN|n_vmy1v+R3`xLXL`*>uh$1aQ)7J@)7@a0=Do1#pU2h!5CEOqmsPCq zCAEJyOvlk0S>SPaiO!P^+-~>p3D?s-`TrC=jI0>hZHLQ7!P~?p!CvZ9a_<0x6}*Qp(EF aTE!1~H_OEccBl^k0000!lvI6;>1s;*b z3=Dh+L6~vJ#O${~L5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33J+tWlnrCMQuH8RJPOC~-{#$tD>~e0NuRIK^4!#y|X5*I>`EmN^1*WzxN1y3(;zw%p zeb^RCwRAnHu?u-PVI3RO%)qvVUncCId(}bW?F)_U&+pnf`Ms|mVcUI;M=YU5`bM*2 yKEvykOp9l=@yblN!oer~BjKs`@5&9nKEf{FgH5(f6qo{ZJAn8 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png deleted file mode 100644 index 27c3cbcf99a47f352c09ed608fdd806fb57e0600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)rZLVYZRn=bY}$eZ#6l4_K7tFM z%7xG1#!bOZLN~=iDae$PVW>3Cz|dw02nzQe7m|TcAE0OTZ~p&$|2gnzrc$ZM+S-~_ zt5pFQ#IXcHAcHuTdc7_HVHirY*%WK7EPYRwLTgQ<(LigB)>^vO@@svauC;V06GpwB zL{Wq>h9pVK#d;}}QfRGtd3MI@G-WFYFvc($4grXwi08-0IOh9#T$PKLqE@R(tJUIt90Twv3{gszWFKZT050cquCt8q{k~cW z7{sx3tp#8*95S6wc`+W-wU+VbCY??P=N#U9Zf~1p4sXxT`Lex@_nz5oR+?8TgkdOA6anCz!#M|l_a1=$$q4{|c6agK%VM!uy@65+ zV+=nJ4@uLMcDv2xe2#Oj#ID!tWvvGUT5FOdK}5*&TzT*1X_j$&drKwDD2hUP??psP cs>d;Z0fmR)vPLd(7XSbN07*qoM6N<$f?b&K5&!@I diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png deleted file mode 100644 index 799f5d83dd50417d733ab1bdb672f462351adbad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmV-n0iOPeP)LiUh7q)YMEkUcnSa3c~3 zF2E*BP(+ZyDkN!QViMt}{r|yZ-W!;E50`;IUq1lX>s9)`r>ZLIx~8hCU+39uM%Q)v zYp3;kE#rN$SO|a(&~=>*4pXjKmg&RcpaE>#mh<_nl~Uh1Z#ElAl0?EVd?ARU=t*!o zon*>6O;c@*;dngi`Ft*xWr^cBxUS1UU;`|d%a1U&+pPc?V;IiM<)WLWp=la|Ab1kw zdHzDM-|zMCuqXf;{n;y4!H_XR*HB>-hv>iZ7d|G~I+yWK|~ zZQJ5`9;IEe1UwRtw`@%~Yrtc~k|yAIR)N=m*}hQJKQ8wQTd6LQ_Z zG4=3Y>bWj3LBT`lW>`wIhZ)07)eR0Ul1UIEF|} zO-^uNx~`x1|9k`6j0>y@T!tctSuUtbCN|CbHLvHzE|agek{hME{gNXZPam|XZ4zf- Yh`wyDG5g=9dY~B$p00i_>zopr0P993hyVZp diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke3.png b/src/main/resources/assets/hbm/textures/items/d_smoke3.png deleted file mode 100644 index 7c36fd9655415203234bc8de15751399fbc0dee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEX7WqAsj$Z!;#VfOBUb+bYGUwo^>bP0 Hl+XkKS+^Ww diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke6.png b/src/main/resources/assets/hbm/textures/items/d_smoke6.png deleted file mode 100644 index 78d1a84b16e2534f598a0c5c50deb4b563a49feb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEX7WqAsj$Z!;#VfR*lk@GywD9-OPPvDwc4=z5Oa z+e`+1k5ebvtlG>d(XeV2!-i{@zW)uJ^mguhJ2Um?GWUKf3-shjQfL|t)$@8y!p&M61jp38i;`7fQg|A_6Db=lWSSru9euIDSS?pV>Gaq(qR pjBcPSOG9d8(B9`t>F44POCNQM$T(52(gO4+gQu&X%Q~loCIIchcGCa= diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png b/src/main/resources/assets/hbm/textures/items/discharge.png deleted file mode 100644 index 0a222d2ec666d8a287ac43e16ea2e42e0e692570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055 zcmV+)1mOFLP)*POv=;^Q>?aldUD@!T7xU z`SY!{&-)a<3m`5!6e8ZQ<`-w!9hovUFNNYh<@;WOIpj+DCIsWAw_UAK2HtkH#@gjR z`Pd;Y<#9)|A`VaG5){bErm{WeW(!z53y#mHeXXrMTgYe7>cU8zj}cX7C7*j*P@h$# zsbsVfn5DYQP?a0m`dlqz<4AQJ%?E46NafBJDex+2r)SG*57`dk*+7Wf0$A~+2y$z+5Qfn#iv=i^+<)K`}+4?PBgo0T( zDtVa~VKysXgi2TOqMjRKpQ^w^ya*9z79s%r`z>DN5IQSnUi5D}ahYDxL(YT#=RE21 zA{QB1ACR3d<3&z6u4Naz;6*`r88M>lS;rt|R&l(xrr1G@)4tZjc48g9vW$C5`MTuT z%$QWTz3(3N-z63Xg5*Wv0u=PNo2-Z;ciPvw;6F5GkBmHndW6^|*n$_i4(1dog)i|U zB`~uxz&?TLv53qHp0~V+E93~@d6^d}0o;fb>Tct4%>-#>kBD_gFRB#!Z}TD^*km#p zDQ$^tbi635UqcFF{5mgk_wXaUD2D5L2t>(x@?jie|AxZWrmB0`F88=|QaB=3wFP-m zMlBbk$BVLX9eD~D{Em*5We11Y9WQ3h-~FGK{9ebxHN}BY&T3wylsF*rE*vN22vL`* zl(Us{0brgP@f_@877G8z_j9=Kcx~;p2eyIHqaNaH5%*+8AMqYGr99AL#pH}cw6QPH z^4^8TBaEWk(9PKeFH+{ZXOfGglozSRj6u7kvz;!xI5*gJDKO=pk)%`B5Az~R0~0~R zyoj@wd69C*YF?x+Qbp5`@gnEKOvWGjzKG|u_3q$?pY`I^irf>)eP861TH*1TyO{$r zoW=YrNcKA#E8+rYc~LAX!qqcBy?8#nmT9Oxt9VgwPCWou^CDL{G3ulhYktEVshn)t zh9{N4s6~hEWB#z!K9B9Le+dq8J!Zf z-xB0eD|#*(dgZwO+RNr%ag>jTk(ZAn2NH!NzQ4kYSgGShtAsmrz0W_!i_jvs&g0j4 Z(SHrq#euqAXn+6!002ovPDHLkV1oW60Qmp_ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta b/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta deleted file mode 100644 index dd1bedb12..000000000 --- a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation": {} -} diff --git a/src/main/resources/assets/hbm/textures/items/empblast.png b/src/main/resources/assets/hbm/textures/items/empblast.png deleted file mode 100644 index 7db45b0357abf961b58dacdaccb39f080630aa79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)j$FIEhebhJs*guDLkGoVlb<`rtT7-uL5u_kcfE;|+4583Q#asFC#V+4Mvr5(V3g!Db9qs|#u*QLcCJ^7als=;5RH8goXXU;wCE zT@a0+T^ymoGpdcE7d9;P~Y#My%Ab)a?+I|kp=~OHO5>^jp zCK>@XDEQC;A8`m*VEj3jpmwt;UFc!uATXj4G%lYYTmj(<9PeeZx-_Ho#YT{6PbVQ< zfzyKxtSqL$M;w*LBWn2^GHY|PFBW0|=0nG~?D)Y+r72wzQ5+=Z&4kytJU-~jnJ;di ze^fLAJxL|FRA}Mu!QUZe4}zzrT=e*a|yn?t}q&Zmr!O{FvW;z&DQ83 mugnrdo_o2okGN<54W8%9Y$m<2I#(CyXa-MLKbLh*2~7Y~?pBom diff --git a/src/main/resources/assets/hbm/textures/items/essence_uv.png b/src/main/resources/assets/hbm/textures/items/essence_uv.png deleted file mode 100644 index 145752b3a7e1d8127d6fed9549d5f02b8cf0bb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfmRF4 zbh(n&H*;dK*lSlA*C|2W54gW?=1$vZ@*?DcwuhvL41empVdLDD&I3Q+}>8Y@7k^NzxVO~R!B22k1cX=Icv$za3Sh@ t)09h>Qr5oJ+jU@f?&J>_qyCHdJ8pE?yi;Y*d7#4?JYD@<);T3K0RWVJU?Bhi diff --git a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png b/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png deleted file mode 100644 index e50299a3e7be6f45e418dccca5d0ad8f5176ec8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb~N@9E+g zV&T8EZ=+y?0*~vA)Y0X zY;0?|;_5PUh1kcA>ARoVKR9(`vs}ew#|t{0Cl6#_lh}31YZlKQC#K4oT3M@{raB53 zO!&TY+onCmfzIWd_Dp7R?Bm&^^!2vhdBt+0!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb}?+SA1` z#KM2=q>a3X9C%!HQyIFhyg9(J@Vtbig0%rxkd>5KqS9jdm(ugk_c<)82rBvc{$-bN zXl{h-myR9V`K9mZ$*x~5VVF{++Hm|Q^LdGvOg}7nmW#-5bWqE`U7Q{nmOSg38qSezG diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png b/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png deleted file mode 100644 index 40b868a01998f863e423f580f09b3767fe19420e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ}`M~P2gE5B^$ sbJ?(mRUq-p31;gGAqEMTHPu#i(NYb@k-PbUZe?KbboFyt=akR{0IpSJ_5c6? diff --git a/src/main/resources/assets/hbm/textures/items/grenade_cats.png b/src/main/resources/assets/hbm/textures/items/grenade_cats.png deleted file mode 100644 index e800e9e7778c3df2187155880bd36a0f6778ad3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmVEX>4Tx04R}tkv&MmKpe$iQ?(*h2aAX}WT;LSL`5C73Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2ziIPS;0dyl(!fKV+m&1xG1G~G56 zv8b3zuZn?Jbf6zSn8LKoEMrcR;%GU(?&0I>U4&<~KKJM7Rx=g@d?N8IGfbO!gLrDw zHaPDShge=#iO-2gO}ZfQBi9v=-#F)77IZPWeL0 zW0mt3XRTOf^?ULc1~dA~GS_JiA%;aPL4pVcWfV|^jR>teDHam6A8p|ubo~;!6mk{7 z$gzMDG{~+W{11M2Yh@?Ky`*3iXn%2>k6|FN3)Cu(^L^|%wG+Vq3|#3Af2j)0e3D*i zXyGHEcN@64ZfMFLaJd5vJQ=bnyON)#kj(<`XY@^JpzjvwTJw6V@8k3VNK#kv8{ps& z7|BugdW&~=Huv`LnRc?`|C%ZKF00006VoOIv00000008+zyMF)x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru=LQxJ86cLGvXlS-0QpHoK~y-)V_+C)z=%yyOib)Q z0|NttmX;P=?7)EoSk*FN)BNhyD@HjvIfiT3t}*=j^^1Xlfq}un!Qnqq2B3pqzkb0n zHbd}wVN;zWgMySW!^X2481yA=8H$!YW?*AuL-7t)7xV=3FtnyRFepd~Gwj;AgMo>` zhCx9}nBmy5V~hk{Ftb|fKNEuu!`(Z#7!*}rF`%>O?|*_~5QYo%C2bjejYSv~RbF9b z6AVOjXQQ)Wu>u1u=mu;&yMcj81mf(C3`a273=H@1yCA*w86z$)q_(bNBq|-?@&W?` u1H+j!XBY_@5I6H4hD{Pd(-;{BB>(_>L}|e9s^v)l0000so diff --git a/src/main/resources/assets/hbm/textures/items/lithium6.png b/src/main/resources/assets/hbm/textures/items/lithium6.png deleted file mode 100644 index cdc066bbad93eb1add384a886c8a3e86fdd29221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!H=FUjv*HQcPG4MKNKKx?7Oqx&cy|5 z;*zIcTy^C5q|lG-B6rqb*+1u`<-5qz?b=zo%UbFU9xi_Wi|zVh!`*HDr#F>l8<~3> zO*6jqT=>$Vi6IS%Q?ee|Z?C@i@@o6`j@o4F1QDZ$9Xh!}6KZc5I5fO4a9Yt&$a?5$ zht3?i_D5=m7`|R)c;Dyz;*q85_V1?{(qtyKE|_$$zi;hI0~Th+Bbyr{51K_zs4b1Vx(xu89fSzaYboFyt=akR{WD1tJMwIyGr=;dE U_?Kj)7U?@@q!yQ4JgA-k0OysP8UO$Q diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png b/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png deleted file mode 100644 index edca5bc1ece59b1209eaa4ceb126febebdae5ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfEVx7sBcKKNhHw#MPR;W7zx`&HsIC4gYv$Hi9svx5sy9&`={8O<)% zd*jdl$A(I3GYqy0Y!kJVdBB!Yf9T!w)0<{Iy7PyJhmmzc!GQwCT}cx1k$*PnsN9i| zxDb?-pm?}m&+g4VhjLLJnSwUPZ8Ls+<7}F`Ug=1{q)(xCS5m5_yt3cG7{!Y3|FV>BvkqIl-SH?V932|aZ-$R zrNA4f$)y|Oj_;oF(P=)b_2$kHjx<9S2BoA=H9^-uB-0G%vYnzopr0EMf1 A2mk;8 diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png b/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png deleted file mode 100644 index 0fc31ee9aa6aa08d1f4ff2e33eb4c28cee252682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfj{YY^k|0Ohg+sWEwv(!_dZiXInexW($r zv}l8o%_6?963eU|s%6#RF@JN**!|O1*o5=Mc9s6+#u9~v;$1<{p7X7W{c-EAk+|Sh zKGy$SVqcw}A87ZBjZdgj3~|{pclN=Qo$i-S7&`X{N?p1yRqODIziZR{N6nc{H(8XD lpR*o*BR_+6jpV;R@q3q2Y|lq2oCSK4!PC{xWt~$(69B2MZvFrO diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png b/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png deleted file mode 100644 index 373912cafa1bacc7e9ff2064ad0d9d9aef951a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf3RN=EU%hDab^TS*>PLPliC6 z;HK`6QVnMv*61aq1SGof%ak1bFB#Cpd6gk4=a5?4Wd!mo_kos6K=&|sy85}Sb4q9e0DgK# AQ~&?~ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png b/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png deleted file mode 100644 index b83791df546705e125c14af4529f36d7d749380b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)AO{Kvbe zT-y17G000nNkA}b?ebd&%rhjFE-4Bc?&dar(HZ6+*dw@#E0ooEzLgoT+Y3L&7c29Q zOEBD7yuCrwX($YcEQc;MMj2zOiAk1M=>_(`u_Bi!G%0d<$S1N&!D1Fi@F z{8s1&LHiD$W|lcu)#}Mc3sLKZTR8?Q4c3}e2T|w-UGJ7T_;u!Zb

P2uF5cRtQga z3xqqWZ3*}NHb>D5v{YZlL_~3SRF#{pQGn?a!kcKzL>5mjcTaxPvLYIWPu{ lpR3Dn1>V2x`E|m7ufLjIm(Q|OeAxg1002ovPDHLkV1hDdtSSHi diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png b/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png deleted file mode 100644 index 8e5fc15c7c464ff39e1d766979cefc8e975c1f8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfatL+p&oRQz+cc8y$ZfVft zHaUfs4|dC^Y&taEQIuiFeY*>fIqjmFd90Xpc^O_aU5;pfmK|X3dEbP0l+XkKegRhJ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png deleted file mode 100644 index 86bb04eeee996ebd59250b529cab4fb0272743c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#sec;;ZwvNkVb6o?~M_m$k2`#FrQj@$v?rSI4Rr zvscXGyypbP0l+XkK!*fQ$ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png deleted file mode 100644 index eede778a51969c1828e8017e8303003558a0d2de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)Xs5nq>N#Xa>x%_Isd+-R*+E?#GdU-OVH$F`Pz1G}V>%yctipa1{>07*qoM6N<$f|1p~SpWb4 diff --git a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png b/src/main/resources/assets/hbm/textures/items/pellet_advanced.png deleted file mode 100644 index b73babcbf48334bc667a89425d7451dfc7256241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfAia7kx!;|zvW&Py}D2>MEiZJ4@Rf`Mzp)BO`lK7{Vu ze1CGO*@xFD-qPU@US2zU=;n&d1J0q1Pj|lM4^nfDO3L%RoJRT2 zZ?4W`DBa6ttXNQ7RsG)KelzDsy<>(bP0l+XkK_gZZ1 diff --git a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png b/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png deleted file mode 100644 index a5e2f78a06cf2bfcd045fe402c85273aaefcfd1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;44oT#}EturIYsZHX8`I^>;Apq&AdX*u-JV z9k7YjRMtDdn2Gy>({YB03;JC?$)vxdz~BD?)E%B zQQUE0YU53&b<0+1{rq%!+gt4qiR(Uom@tKF=Y(aNu7O8l7c{SXT~Vvg{66@aqg42n i3g&Z3v5&tC*fL7|&EdK-o&6cm*9@MnelF{r5}E+727<)^ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_hes.png b/src/main/resources/assets/hbm/textures/items/pellet_hes.png deleted file mode 100644 index 02f8ba8bcf24e21ab2f49f182d738e969b724f64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;7?B%#}Etu+aC%MVE!fp?`m&_! zquby1_5`SL9WY>67HF>8dhoyj1|2r0?&6{YCc7Lp*cwb0XS=W~G*94dY-co_<)~10 zN<`%SLKY>(vkCJ9B+Q2;FS%JHH+kAO@C)W!+5j*SUZwQn$J4iVu zDV)8Wey*X*iGh1cTl4Jq_YdYaF_x}4HecS(U;{UYgR3ILVFn3?ozL#BjZQH0Q07>W z&BnMx+##@d*>>?$hk4)S-aGT*`whtolOz?DG;QGx4U^XEH&2))bwgA^+{U&>LZ^R? wBujx>>I_GNhIN8$1yT+=4xMh77@3(F?C<3$W~KJ+2L=Lzr>mdKI;Vst04ipB8~^|S diff --git a/src/main/resources/assets/hbm/textures/items/pellet_lead.png b/src/main/resources/assets/hbm/textures/items/pellet_lead.png deleted file mode 100644 index 1a647b6a338f765b9980d9dd1e03c321bea71cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;7d;z#}EturIYsZHX8`I^>;Ap7&=&GM7GRg z)wtO-t50=>WFu?F!qW^M%iNWIow<34Oe@Ze+m9$A-*m!oDp z4?hsx9o!(+y=Z}nZz%7S)Rk`LC%78kbm?(ewaqZzq1?PIbIsex_8*>XhYddD9Ov?w z)RKPP;oRpr(^4OH318T@maDK?VG-NTRa)!bwb)1SLUIlL z@+@bTbv$Rp3QS95KTn^(?sZ1&(w)aHJ99ZNVZ>SmR_4{P@R+&D>PVf~7a zKa7{kmQ>5;J}lZ7Wph=7#iQ_5qnmVMOC~)kU75F@`&_eF&e3c1` z#{yk+Z$Ha&Q*>y`^UIWI;P8=Lq5B|9?6YP4)XjHuUKCcZ%GR-2lD1osYw^b!zcOFH zV3K`PZoP5dbjO#$(;S6@r%YiBaov6Fy+aC%MVE!gD{5zFTK z=aKzav%{>5ri+*-IG$)baJWI@tilD$ zRIaY?0ZbDoqzUXOc*rz`l~IFjg|@bH;Ap7&=&GM7GRg z)wtO-t50=>WFu?F!qW^M%iNWIow<34Oe@Ze+m9$A<3C!%J= z7as`j4sHPk2B6I=~%y7V}#+GZHYc|fJ9D|N;EJ3UD06%jcgcnCd!y`69r!(^biy%F j(|ZlOBd-6jb;*DGFNaI+$ATq5PcwMB`njxgN@xNAsUC-E diff --git a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png b/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png deleted file mode 100644 index 511125d6dd1ed21cc0f56bdaf1af100a9a59a65c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;B!wG#}Etuqm%dYHX8`E@@q32u$rEd(`j&V zXHT7?sC027V-Q!A+XDV8K8)N)9zL}0mbVO=q%^<8>i36gy93|0T>HY^_4&Gm^@mS2 zpB<(zJ${&%omp^|$x;KJ=~5L>eoo?dGnlYI=klu8Un=MAV9K7LVkhLi#@9@~@b0GW zeeWw%Zb%%N6YEfOSncwWsdEpO#xYFZE7-Eav1VmuyT_?rI z#zL&X*^w)2bHhW7qWbQS93tU$XKRKzf|EOBvTF}~nYl&f)S4Hb8lAVzq)bcZZ(lBXajk${saw_*%@|(I W)T{&h-YNmDWbkzLb6Mw<&;$U7L_4kk diff --git a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png b/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png deleted file mode 100644 index 99931efa584f75adb5148186342f4d0f304675d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfxYEEH}-#&M3u$+}C jtmky&71Q%oHcir*E1b>GiAPNVTF>C=>gTe~DWM4fVzom* diff --git a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png b/src/main/resources/assets/hbm/textures/items/redstone_depleted.png deleted file mode 100644 index 1cc99895ca256fd9b5d42263aa6cd185076938b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf1$>&ymLjZH3M3D(m*4l?;nIJR^(#{``e7cHIUMzf&2RQtWv z_dl}#iw=#{1EO%-dsBbP9cS3n-ni{GUv+-^vt1etKYWBe1q$3AEx9#0+;b_zi>+lI zW-RW{LbK+r>^`Ju$Y}Phi|@k;BL=1W%LNZvo@;xcy3}x4Vn&wP(YVTP$wO@h6~_%Lzemk>Ec^RO`R4D<{a>nU8CS7J V>{`Enb`;QC44$rjF6*2UngHm~YDNG6 diff --git a/src/main/resources/assets/hbm/textures/items/rod_australium.png b/src/main/resources/assets/hbm/textures/items/rod_australium.png deleted file mode 100644 index 34e5dc5a56e81f3ab45c5c3d10f2ae2d2db11b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DX@SdlOV~B-+@8pBLhYWaJ=ju(!+~sKPYRyn= zz+SGRH^)N3$}zG@I7okLS4$OR&zxfdLAxJ%PMd4;bK_i*X&PNjpKaW`1V0|1apt#V zXz0$+Yf%Xk1;l=Gc&N`Qf&=&ca9{UrZk16C$CtGO#) zOIdOYW!%2D!;xpYfb`u1pP6pFKX}*W&)nRNE%hE;U-t5gh_T9rHxzzhZcP#X$+ksp zmE?tIkC!#Ref1_iWs>TW09K3AmF&l6tiRZDrG1l*VNK&5=36R4c6?_4=2qIUKj6Le XYRkRuN#|mKK4tK9^>bP0l+XkKW1D;5 diff --git a/src/main/resources/assets/hbm/textures/items/rod_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_coolant.png deleted file mode 100644 index aa4ae7e48b9eca71228c7e9a88ee2a7a6f088e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;5knh#}Etuxs%`WwkYtl9b}zzjJJeqMz5=n z%mKzZj`bc%O8?$2?cM9Vrr@LJtf1EEbt_I?+@@>d%e;fFq1*84%Y2FCjPTg&U9L$H zPqY>8UiiMZ=-k8(mUpWkF&m!VG~xdDxqpQFRTb`4f4aSG;`9rb-gayiv)~qyI35^0 z;gIT*HsOftqRTQDc`kW>bCc>H=fH${&x=(ji*hKgcx-XbW7!Rtc?Vvr@g4rKuQS4_ z)1A>T_EqDxU+F&>f<0gE;(Me&p}L_xZ%OIKkMGZXlwE4~+41@1bBA_q2l|Y`)78&q Iol`;+03$Yn@c;k- diff --git a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png b/src/main/resources/assets/hbm/textures/items/rod_daffergon.png deleted file mode 100644 index 80e538b6399f0240c2812bfa9ec657130f323a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DX@SdlOV~B-+@&Wdkn3#XFXU+P@zVZM6|NTvg z4V+%d4KH3~Y|yH!t7Ds?c!D8~;|@cPSxUE0;)a?jEM_dy3@ekJt~Kz)?W^HjHh+H= z-?Bo+IdKe)-{0SFe%UW?-;|ldu$=MHqenca|6Mb(F}TSmdXTR`is6%!NU?GAAxZxg z9AypHxsNb3vF-W&i|^DSz7J9b|Nqstz2Cpzx$*|%JqH^-^ZtjuFB5?Z9Sj6g^>;YB zZeVVTQ(ys_;%#%|P{YKDf_*a`Sj-r_{#*a}ZFq=bdexL3mctv~@H|dtVq;^d=PPHl T%UiDv^eKa*~g6}V;i$+(>{FCCj7Tb!w!_wAjx zPyNj^OER-w?c$r$_p-;#<;<&HeP<7`Iejkud+sSm(>bJ&7(Hb1IYu8DoDBXlk7 nye7BsWl39prq92MkChtbYwgqhkhrBC6g~`|u6{1-oD!M<=L?H- diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png b/src/main/resources/assets/hbm/textures/items/rod_dual_water.png deleted file mode 100644 index e29b72035457c25ff5fe576e948d3fea61a589f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~g8w~T978Ppr%v9>*JL2jz%R@$E;%!{hB=I# zdHn;X&gT3F50ZCS{FJj}o!sp$E-bEiv5{3+GV5K&N3WIk@t3C5#jK0j*)(O7tcQrJ z5s!0J&1Va?FJTi^I9Y$}XCLKo(N8>}b$1k_HJm{-3=Q*?K%EtOYI$1 zuQ<2M<*QoE&2IR$E-XLho`(PnBhUHl5Ay7(QZaHbZI2Y~Sz`L0`JLroRgDVyg7bz# zTYMK~9sS?C__d`Q)0@w)c5KQjt!#?-mHBn+-!s)c3~v~2W#0c{(GCm>22WQ%mvv4F FO#l_?jqd;e diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png deleted file mode 100644 index e5ca3d6f3a4ff86911ed6785e6ea9d9734892e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940YgbdK~y+Tos++c zgFq0*M@bV12sVO(Z5rEH3SxYUyqj;3ClGu9Yq78rLO=_JK$1$c=gi&g`Im$HfqeS0 zJ3IT~C_)H8bX|x2elI?s4>*nkkH-VLu2aggT=;34Dzs@p{ZTj^4pb=!0{Yf84R*Vo zSo2-i{XTU-7C`RzJ82xp5JeF!Mz(xJ7U=t)w61H?=krPGc^-sexbT@t2W{I<6z^LU z1t~K285yE&+XB1reP5o23#+Q4?&iJ>5)0sCnx<%)Mx4)Q(mc<_>2wlXKJS}c;XiB^ zz}DB8`;!8%*GuaA{ib(h%SR?59*;*b41>brq~{^B|7VCvl2BNe%Z0qT&-*s7z>NQc zvCqf?I4lS+=DXf*H@IG}3!jl0Se7-JI0oln&F2hc2g5=|RaMBcOb!c<^API7{~c$5 YFZd-laZeRvPyhe`07*qoM6N<$f@q$!l>h($ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png b/src/main/resources/assets/hbm/textures/items/rod_quad_water.png deleted file mode 100644 index 10b021ebbd6f489cea344e5031c9b2e64a2c321a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940Zd6mK~y+Tos%I? zhENoS4~&9ivQY?ZY!=xV!9-+3{(#A9)L=II3oIssf587>(MHBXk;#~_X`mPcKI9y^ z_v6Bc!Kb|N?r`os?>JK5_kb9N0jjF@o6QD1&x5+Ip>10!%d&+Z$FW2o4alQ{rfJkE ziXwW~bsZE%>38|Q@Bf}Uz#AYJ*UzNE=^Zo&H&l$Q`3P^&bscF{Riy7_Ng4zJJUyH* ze1>p?^5a`joHtEVQe^5gc!;)b_jrpi4EbqTSPm!d@>!6=2q%}1RCIWJ3vcSxpFTqv z;XkZ5_)5oz88csK@bcPhwfUrHWX(r}5FN(>(==&bp8PCC=I;yfYa=V?7zwL z?)+p84ZXQ)k;Z}UmWqjy4Z9u|h7{b@)OJdI_349y$L(#``u$%=+z{hAoc*cxzCR!~WcA_R-psT$RL@yB_o4hHrn#Sa0vq4```HtGMo{+AuNDQpL#Y{) zoO8^2PhVIP?QwwX%xUK{3a2-%pUJZIRFIc!UPA2kZP#R!KISW#{Gappzfgm@iGSIK UHO#grf!<{BboFyt=akR{0L#*UX#fBK diff --git a/src/main/resources/assets/hbm/textures/items/rod_water.png b/src/main/resources/assets/hbm/textures/items/rod_water.png deleted file mode 100644 index ebb15628a115bff136a51dcc3d33ddaa56e63822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;;9XA_#}Etu$xV~LV5nn#_{WTfMn(o@gTe~DWM4fHU@bq diff --git a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png b/src/main/resources/assets/hbm/textures/items/rod_weidanium.png deleted file mode 100644 index c691f25f3b8431a3c2f10b66276a5547fb33fe74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DX@Q$a8V~B-+@&Wdkn3#XFXU+P@zVZM6|NTvg z4V+%d4KH3~Y|yH!t7Ds?c!D8~;|@cP*&9Cl6C0vGGu;r#VOY|~8Odx^@$-}FjJooE zcAv*g7JC`kaS(8R3aGDBfuA=~x2VLT7*Ll-FBVDw{lh`aH&t|w9Tx9kdz zvWENIE(}d!lvI6;>1s;*b z3=Dj`K$uZU-1Ka=lJ3shS7j1YblOpBJXy&;?sl-#_m{zAA+oFREvsGdkH+hM0mNaM{Jix%f XeljoIq;G;V&;SNcS3j3^P6!lvI6;>1s;*b z3=Dj`K$uZU-1Ka=jYyaDgHZsp(66jqxL&bAWS3=VZ6Nv{?UDzyCH!!oYG1RPa{`ti9x&lxe NgQu&X%Q~loCII*=FmV6? diff --git a/src/main/resources/assets/hbm/textures/items/smoke3.png b/src/main/resources/assets/hbm/textures/items/smoke3.png deleted file mode 100644 index 44045bc034fa171d9a63fdb9255c748995bf8433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZU-0_UH6!(aVAiy2Zp*Kj#7sC9-4Zc=DdF;egn!lvI6;>1s;*b z3=Dj`K$uZU-0{5Hmi9h&Ll^A>kT#`c>m<&AEbWLD2RLSI&kYI?uB9`yF!J!eTfx*+&&t;uc GLK6T_ktz`Y diff --git a/src/main/resources/assets/hbm/textures/items/smoke5.png b/src/main/resources/assets/hbm/textures/items/smoke5.png deleted file mode 100644 index c50e2955ed59661454dbf5ec1974c7fafd6b0703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZVo0=X6aTmJJePRv=uu#91~(hP+-;T60R5)6B;3T)h{VFYpwgQu&X%Q~loCIHU` BD#HK( diff --git a/src/main/resources/assets/hbm/textures/items/smoke6.png b/src/main/resources/assets/hbm/textures/items/smoke6.png deleted file mode 100644 index eed05375cbaeccb97f15c050cc31ee837d01cba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZVo0=pIK*Z=2FO=34-jSv;O;>&&D00YAkYtD}y_gz8OGkCiCxvX?yJU diff --git a/src/main/resources/assets/hbm/textures/items/smoke7.png b/src/main/resources/assets/hbm/textures/items/smoke7.png deleted file mode 100644 index ffaa1c53808036b6ce9d2dc7e00104b8a58dce9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZmdKI;Vst09m0Z4FCWD diff --git a/src/main/resources/assets/hbm/textures/items/smoke8.png b/src/main/resources/assets/hbm/textures/items/smoke8.png deleted file mode 100644 index 95239d7d712e58090b556b52689de6a2b1dc553e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dj`K$uZU-1cQR6=1=)kGAa#?j0}4^7`=^lzAynQVDNPHb6Mw<&;$Uu(Ir9v diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png deleted file mode 100644 index 7521f2a9b38acab6143091690db0f08110453a7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfG&z_)5OWba@#tM{%CGdAo;*~g5?XoPrspcb>`~ePu@SEbt{c6lMFbk?G zd6oY>KaYVS?OMiE^VHUyZjM*G>{!z0%{1g`w%n5tDc19N2U~i)i-OXMRav&@H>5tz zoMmv{c-^06nGPUp2-yK}?)KA!M_B(^E}nS&<;bTmJJto)|5s56mgkyYg_2{z{mVr eHaA@uelW%4PWV<*YMlf09fPNsmek!fi*6~Fr8xF5jAxMtjnSv7o~o+rwSi9@8SGDt?yt{D8*1GXoZ;&3 z>0p0*8_cE?$|{4bG*~MGO+ZaTa0bDEf#isMj>zM4D>-V2KW9)o5n@(tvD=c!2MXnqPgRIn02GHa( zz!)S4B3~d0IFf!h`hJp zr?JE+6d1=IPUH7U^xk~9xuAJk;dy1(JhfSvr&U9sP}J&yK)w+e#~y~Ez&MsTJMnOK z;$a+nz2%U71eS%yBG-7$HRh?p^Qyv2s_?pzfkL%=peB%22Bjht%DVO?N8nZ;Is|6Z z2|ceWEOO=2ZqxtE-AhZm12&;Gq0of1Gz~cbF0jJDk(*5?v|Wl0fvhs9yMB?^J>cqJ znBK2wh!EU63V~$srOiwdaGV4h$v}LZfvmK9eOVaW^=_r*?%9LvD&oT2l( zjaFgqug__%>^{#*TkCplr+pVRp=Fzu8fj$**!}f+%TtShHUv#@Lk3WWP$+6@dI)N} zdb=9udwYa;T2s3Tr^y=Xjfr;%lp$ve=ZiYQdkOq&bO;E}AUSKsYkhqvBxlaH9@X}G zCxKekxHGH=Odt;@P}@o8i#y-jBw7Tn?w;5{a;Itnk;j`Q4&WddTDFld5PKX0$vbC; zP6;BvmQ*{}>lOR^w@d7|ZIggEez(yXM3HCpeC1TFP~>Ji0q7san_nLL9K%pz6iO#b zvN;<>-W~)lZy(u@Z(k^@B-V;hDANc_AlZjvlnew$PL7A6aKDyBpCtFHVG;-z*r05J zbNCyIx33(JLV;muGth_s^FXpm;%G;*8b>{pZfD~t$MQb>%|9leI68g<0nJKXOv??M P00000NkvXXu0mjfeiM1I diff --git a/src/main/resources/assets/hbm/textures/items/void_anim.png b/src/main/resources/assets/hbm/textures/items/void_anim.png deleted file mode 100644 index da3efcedd89a09ff3139422ea08f69b6b3972e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFHKtF+%zFe-eJ2{nz{Oa=Sdw z{`x=1UNY@r+w=EB^TYG!?JZ1=4IX?v^!m8DWXjL|MiEvkj8>fbJUNd+W&`)c=S)eA zUwJYzG7ij6C}4D(k;cl(+Q!Z=XJBGtVqj!oV4$+w;1B<&OO4uJ^mZNUILlCBVps8j z!By#mcl$vP_cq5v7y2Ha?Um-?;R!!cs36P0P+?`I+!6c#2+#)%p00i_>zopr0Cmw~ Aa{vGU diff --git a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png b/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png deleted file mode 100644 index 48f8dfd977d3862df6e2d6bcec73d2a71f3c8eaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)rbByY3jCh=9abh(I{iy+Z)5H}zfbP+9g z2;kC<-ACTFjcIHvcmtx&G$TFD8_oNH^Mkdvx7POmt&6!xDaGUJ72+87dx&Fho&`!N z0E(g@P1C7wacof6H2??y1+ImG>$(dxL4qVndaX70%N=Yt@cseY4YyAnT5GDR0w9Va z@;oQYG7%(j&aqrwz|{gS2d2Y0hxdNc9OH+ww+5u1MfYDW@sE4f%l%KX(r9d z9gKUBQu1*925SwUIjl8zF9Ing0A*QD^9Kp0E6h^-b%g-NnBEu@Jj`$PGr%{%M~CE- SLzf=gJ(f;uM zU(M&8=RJ3y_xyPM&*Pgk|M>n<<747 z6qP+W{^RKfp}*C?)z(kD$Ghd4#?mu)mN#CTm3!OgUlIFrxtQy!eaTG<2@-5J=NGTi zin-33AmeUqzh`Gt5SOOvXB*|Ee?D`Wt9TXxQT2@SKkN_KHyoP$PwNmPKhXCKp00i_ I>zopr0O@srdH?_b diff --git a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_copper_new.png deleted file mode 100644 index 33dd16888dc7862832f788af048ef0c4e3dfe828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmV-Q0k!^#P)|3RT4 z2u37XwI-Jfafpqz*Mf83^5F6A@$TKh`9W*lX|22e>Z3zb5Cn*)2jpT+`g)68thw_v zK@b3t=Q(j459hr7fU2qh*xHs4^UIa39FNl=ilRh($ diff --git a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png b/src/main/resources/assets/hbm/textures/items/wire_gold_new.png deleted file mode 100644 index de76cb1727891b1fc1e586af4c3a606fb1b56882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)=CX~307NE5hGV`PC$kWzD` z$pkX&R$4%$1pHJ~WJv*1r1ES2;cz&RpM=N5IVa9J`K$jl4QZ_@iVsB2a=9QPXNkVn znrX>hLEE+fcn@vc4Kw=VOk@>Bp66nW;c$2(%L=a77qYBixBJ8xL(?<>BuPS5Rg`79 z0$7jRy!UK2u-!fnGx{NfL65mBSUP^B@B3+VUJyc9EC?acbw7G>2XPNdDUQc?()7gb z_DY(b*zdnkN&!&U^>BaqhgXL7#d$Eczl0Lno!=W4mP&MSLHRY@&!D2#`{e=Q#kY)rvGt zNs?p%@IFl|%MzALJkJ}s)2+3mXM&r6N7wIB*Y(Ug3$WJ0<3 Z_yym?j@Du|l+geH002ovPDHLkV1oU8iVgq( diff --git a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png b/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png deleted file mode 100644 index 15558c3c804e7fb980ecda6072e4ca5beb348dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)b;@5JewJN+c?8vsJVyk&tLDVahFCZb?JUNpgXlAf+!r zLBRncrS%2u3Ixbr8*K_~V=zS2{N|6o{(SAu3_KrXZlKa9XjZ!R)2f`HU%KXFMdxWjInDXXE zvYce7#`az;I!jwcK@>k1_u|9|5J62Rx%-6Wk&_bIHU}1*{o~-f3TQurr>mdKI;Vst0Be;n+a From 15235474672fb96c91df57618a4e63a78dc83457 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Aug 2024 11:21:44 +0200 Subject: [PATCH 05/23] removed more crap --- changelog | 7 +- gradle.properties | 14 ++- src/main/java/com/hbm/blocks/ModBlocks.java | 20 ---- .../com/hbm/blocks/generic/BlockCrystal.java | 34 ------ .../java/com/hbm/crafting/MineralRecipes.java | 2 - .../hbm/inventory/recipes/PressRecipes.java | 1 - src/main/java/com/hbm/items/ModItems.java | 3 - src/main/java/com/hbm/main/ClientProxy.java | 1 - .../java/com/hbm/main/CraftingManager.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 6 + .../com/hbm/render/block/RenderCrystal.java | 108 ------------------ .../hbm/textures/blocks/brick_dungeon.png | Bin 706 -> 0 bytes .../textures/blocks/brick_dungeon_circle.png | Bin 598 -> 0 bytes .../textures/blocks/brick_dungeon_flat.png | Bin 422 -> 0 bytes .../textures/blocks/brick_dungeon_tile.png | Bin 507 -> 0 bytes .../blocks/cheater_virus_seed_alt.png | Bin 372 -> 0 bytes .../hbm/textures/blocks/crystal_energy.png | Bin 488 -> 0 bytes .../hbm/textures/blocks/crystal_power.png | Bin 648 -> 0 bytes .../hbm/textures/blocks/crystal_robust.png | Bin 419 -> 0 bytes .../hbm/textures/blocks/crystal_trixite.png | Bin 215 -> 0 bytes .../hbm/textures/blocks/deco_steel_alt.png | Bin 332 -> 0 bytes .../hbm/textures/blocks/deco_titanium_alt.png | Bin 330 -> 0 bytes .../hbm/textures/blocks/deco_tungsten_alt.png | Bin 331 -> 0 bytes .../hbm/textures/blocks/fwatz_computer.png | Bin 275 -> 0 bytes .../textures/blocks/fwatz_conductor_side.png | Bin 384 -> 0 bytes .../hbm/textures/blocks/fwatz_cooler.png | Bin 261 -> 0 bytes .../hbm/textures/blocks/fwatz_cooler_top.png | Bin 341 -> 0 bytes .../assets/hbm/textures/blocks/fwatz_core.png | Bin 503 -> 0 bytes .../hbm/textures/blocks/fwatz_hatch.png | Bin 468 -> 0 bytes .../hbm/textures/blocks/fwatz_plasma.png | Bin 4244 -> 0 bytes .../textures/blocks/fwatz_plasma.png.mcmeta | 45 -------- .../hbm/textures/blocks/fwatz_scaffold.png | Bin 358 -> 0 bytes .../assets/hbm/textures/blocks/fwatz_tank.png | Bin 335 -> 0 bytes .../assets/hbm/textures/blocks/hazmat.png | Bin 437 -> 0 bytes .../assets/hbm/textures/blocks/hazmat_alt.png | Bin 663 -> 0 bytes .../blocks/machine_gas_furnace_fron_on.png | Bin 549 -> 0 bytes .../blocks/machine_gas_furnace_front_off.png | Bin 523 -> 0 bytes .../blocks/machine_gas_furnace_off.png | Bin 447 -> 0 bytes .../blocks/machine_gas_furnace_on.png | Bin 736 -> 0 bytes .../blocks/machine_gas_furnace_side.png | Bin 435 -> 0 bytes .../blocks/machine_gas_furnace_top.png | Bin 427 -> 0 bytes .../hbm/textures/blocks/machine_generator.png | Bin 425 -> 0 bytes .../blocks/machine_generator_side.png | Bin 453 -> 0 bytes .../blocks/machine_keyforge_side_side.png | Bin 605 -> 0 bytes .../blocks/machine_keyforge_top_alt.png | Bin 552 -> 0 bytes .../textures/blocks/machine_minirtg_side.png | Bin 475 -> 0 bytes .../textures/blocks/machine_minirtg_top.png | Bin 590 -> 0 bytes .../hbm/textures/blocks/machine_selenium.png | Bin 257 -> 0 bytes .../blocks/machine_telelinker_side.png | Bin 559 -> 0 bytes .../blocks/machine_telelinker_top.png | Bin 531 -> 0 bytes .../assets/hbm/textures/blocks/muffler.png | Bin 800 -> 0 bytes .../hbm/textures/blocks/turret_cheapo.png | Bin 290 -> 0 bytes .../hbm/textures/blocks/turret_cwis.png | Bin 242 -> 0 bytes .../hbm/textures/blocks/turret_flamer.png | Bin 272 -> 0 bytes .../hbm/textures/blocks/turret_heavy.png | Bin 226 -> 0 bytes .../hbm/textures/blocks/turret_light.png | Bin 251 -> 0 bytes .../hbm/textures/blocks/turret_rocket.png | Bin 247 -> 0 bytes .../assets/hbm/textures/blocks/turret_tau.png | Bin 258 -> 0 bytes .../assets/hbm/textures/items/pellet_coal.png | Bin 151 -> 0 bytes 59 files changed, 19 insertions(+), 223 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockCrystal.java delete mode 100644 src/main/java/com/hbm/render/block/RenderCrystal.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/crystal_energy.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/crystal_power.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/crystal_robust.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_core.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hazmat.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_generator.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_selenium.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/muffler.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_cwis.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_flamer.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_heavy.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_light.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_rocket.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/turret_tau.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pellet_coal.png diff --git a/changelog b/changelog index 71781d6b4..e6bde3d38 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,7 @@ * Plushies ## Changed +* Updated chinese localization * The fluid burner, heat exchanging heater and cooling tower now use the single steel pipe items instead of the larger steel pipes * Reduced the amount of condensers needed for crafting the cooling towers * Liquefactors and solidifiers now have a base processing time of 5 seconds per operation (instead of 10) @@ -17,6 +18,7 @@ * Decreased hardness of slag blocks * Removed legacy circuits * Removed a bunch of random unused items +* Centrifuges are now configurable via `hbmMachines.json` ## Fixed * Fixed crash caused by decontaminating items with the radiolysis machine @@ -27,6 +29,7 @@ * Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first * Fixed autocrafter's grid not properly updating when using NEI drag and drop for the filter * Fixed all carbon-based crucible materials having the wrong ID, this fix will shift IDs but prevent collisions with silicon -* Fixed primary bedrock ore fraction roasing yielding one extra pile of crumbs +* Fixed primary bedrock ore fraction roasting yielding one extra pile of crumbs * Fixed filing cabinets being unreasonably laggy due to the old packet code -* Fixed the secure access door taking way longer to craft than any other door \ No newline at end of file +* Fixed the secure access door taking way longer to craft than any other door +* Fixed issues with the spotlight crafting recipes \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e925744a2..05ee52d24 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ credits=HbMinecraft,\ \ Alcater (GUI textures, porting),\ \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ \ Pheo (textures, various machines, models, weapons),\ - \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ + \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron),\ \ LePeep (coilgun model, BDCL QC),\ \ Adam29 (liquid petroleum, ethanol, electric furnace),\ \ Pvndols (thorium fuel recipe, gas turbine),\ @@ -19,15 +19,16 @@ credits=HbMinecraft,\ \ Doctor17 (russian localization)),\ \ Pashtet (russian localization),\ \ Bismarck (chinese localization),\ + \ Creeper-banner (chinese localization),\ \ Maksymisio (polish localization)\ \ el3ctro4ndre (italian localization),\ \ Pu-238 (Tom impact effects),\ - \ UFFR (RTGs, guns, casings, euphemium capacitor),\ - \ Frooz (models),\ + \ UFFR (RTG pellets, guns, casings, euphemium capacitor),\ + \ Frooz (gun models),\ \ VT-6/24 (models, textures),\ \ Nos (models),\ \ Minecreep (models),\ - \ 70k (textures, glyphid AI, strand caster),\ + \ 70k (textures, glyphid AI, strand caster, electrolyzer changes),\ \ haru315 (spiral point algorithm),\ \ Sten89 (models),\ \ Pixelguru26 (textures),\ @@ -37,13 +38,14 @@ credits=HbMinecraft,\ \ Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup),\ \ BallOfEnergy1 (OpenComputers integration),\ - \ martemen (project settings),\ \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ \ SuperCraftAlex (tooltips)\ \ Ice-Arrow (research reactor tweaks),\ \ 245tt (anvil GUI improvements),\ \ KoblizekXD (doors),\ \ FOlkvangrField (custom machine parts),\ + \ RosaTryp (centrifuge config),\ \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ martemen (project settings),\ \ OvermindDL1 (project settings),\ - \ impbk2002 (project settings),\ + \ impbk2002 (project settings)\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 51c055603..6736f4aa9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -148,11 +148,6 @@ public class ModBlocks { public static Block ore_tikite; - public static Block crystal_power; - public static Block crystal_energy; - public static Block crystal_robust; - public static Block crystal_trixite; - public static Block block_thorium; public static Block block_thorium_fuel; public static Block block_uranium; @@ -273,8 +268,6 @@ public class ModBlocks { public static Block snowglobe; public static Block plushie; - public static Block hazmat; - public static Block gravel_obsidian; public static Block gravel_diamond; public static Block asphalt; @@ -1329,11 +1322,6 @@ public class ModBlocks { ore_bedrock_oil = new BlockGeneric(Material.rock).setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); - - crystal_power = new BlockCrystal(Material.glass).setBlockName("crystal_power").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_power"); - crystal_energy = new BlockCrystal(Material.glass).setBlockName("crystal_energy").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_energy"); - crystal_robust = new BlockCrystal(Material.glass).setBlockName("crystal_robust").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":crystal_robust"); - crystal_trixite = new BlockCrystal(Material.glass).setBlockName("crystal_trixite").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_trixite"); block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); @@ -1454,7 +1442,6 @@ public class ModBlocks { bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setResistance(50_0000.0F).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); @@ -2451,12 +2438,6 @@ public class ModBlocks { //Secret register(stone_keyhole); - //Crystals - GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_robust, crystal_robust.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_trixite, crystal_trixite.getUnlocalizedName()); - //Resource-bearing Stones register(stone_resource); register(stalagmite); @@ -2599,7 +2580,6 @@ public class ModBlocks { GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName()); - GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java b/src/main/java/com/hbm/blocks/generic/BlockCrystal.java deleted file mode 100644 index 0204d0f78..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.blocks.generic; - -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockCrystal extends BlockDragonProof { - - public BlockCrystal(Material mat) { - super(mat); - } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - - @Override - public int getRenderType() { - return renderID; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hX, float hY, float hZ, int meta) { - return side; - } -} diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 5632a9dd6..db125cf8c 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -423,8 +423,6 @@ public class MineralRecipes { add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); - GameRegistry.addRecipe(new ItemStack(ModBlocks.hazmat, 8), new Object[] { "###", "# #", "###", '#', ModItems.hazmat_cloth }); - GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_cloth, 1), new Object[] { "#", '#', ModBlocks.hazmat }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { "##", "##", '#', ModItems.powder_balefire }); add9To1(ModItems.cell_balefire, ModItems.egg_balefire_shard); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 204553081..db090d982 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -64,7 +64,6 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.FLAT, new OreDictStack(LAPIS.dust()), new ItemStack(Items.dye, 1, 4)); makeRecipe(StampType.FLAT, new OreDictStack(DIAMOND.dust()), Items.diamond); makeRecipe(StampType.FLAT, new OreDictStack(EMERALD.dust()), Items.emerald); - makeRecipe(StampType.FLAT, new ComparableStack(ModItems.pellet_coal), Items.diamond); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed); makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 7bd4d7df8..0dd074de1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -663,7 +663,6 @@ public class ModItems { public static Item turbine_titanium; public static Item blade_tungsten; public static Item turbine_tungsten; - public static Item pellet_coal; public static Item ring_starmetal; public static Item flywheel_beryllium; @@ -2970,7 +2969,6 @@ public class ModItems { coil_gold = new Item().setUnlocalizedName("coil_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold"); coil_gold_torus = new Item().setUnlocalizedName("coil_gold_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold_torus"); magnet_circular = new Item().setUnlocalizedName("magnet_circular").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_circular"); - pellet_coal = new Item().setUnlocalizedName("pellet_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_coal"); component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); @@ -6239,7 +6237,6 @@ public class ModItems { GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); - GameRegistry.registerItem(pellet_coal, pellet_coal.getUnlocalizedName()); //Engine Pieces GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6f3b52609..59c4708a6 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -852,7 +852,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderPipe()); RenderingRegistry.registerBlockHandler(new RenderBattery()); RenderingRegistry.registerBlockHandler(new RenderAnvil()); - RenderingRegistry.registerBlockHandler(new RenderCrystal()); RenderingRegistry.registerBlockHandler(new RenderCable()); RenderingRegistry.registerBlockHandler(new RenderCableClassic()); RenderingRegistry.registerBlockHandler(new RenderTestPipe()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4ece7c653..9b8c65473 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -102,7 +102,6 @@ public class CraftingManager { addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.bolt_spike, 2), new Object[] { "BB", "B ", "B ", 'B', STEEL.bolt()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 27e0248d4..dd263e35e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1392,6 +1392,12 @@ public class MainRegistry { ignoreMappings.add("hbm:item.energy_ball"); ignoreMappings.add("hbm:item.discharge"); ignoreMappings.add("hbm:item.empblast"); + ignoreMappings.add("hbm:tile.crystal_power"); + ignoreMappings.add("hbm:tile.crystal_energy"); + ignoreMappings.add("hbm:tile.crystal_robust"); + ignoreMappings.add("hbm:tile.crystal_trixite"); + ignoreMappings.add("hbm:tile.hazmat"); + ignoreMappings.add("hbm:item.pellet_coal"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/block/RenderCrystal.java b/src/main/java/com/hbm/render/block/RenderCrystal.java deleted file mode 100644 index 6cf4f830d..000000000 --- a/src/main/java/com/hbm/render/block/RenderCrystal.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockCrystal; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderCrystal implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - GL11.glRotated(180, 0, 1, 0); - tessellator.startDrawingQuads(); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, 0, false); - - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float flip = 0; - float rotation = 0; - - int meta = world.getBlockMetadata(x, y, z); - - if(meta == 0) - flip = (float)Math.PI; - - if(meta == 2) - rotation = 90F / 180F * (float) Math.PI; - - if(meta == 3) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 4) - rotation = 180F / 180F * (float)Math.PI; - - if(rotation != 0F || meta == 5) - flip = (float)Math.PI * 0.5F; - - tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, rotation, flip, true); - - tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return BlockCrystal.renderID; - } -} diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png deleted file mode 100644 index a6b18a2347853a46b18b53eed0fb2853e4b85913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)b9lTB6m9>P_ErAk25{UC} z`;Kl(s%h2tog@DH|4;b%_&^9j(==pRhI5XxEXng6Ap~_@^Zx!$2!ZGG$vn?kYq{NS zsAXBG>l$klI@Ro6QFAJz17pHBpc<(u#PH3&^x{fqWnWhOL1S&}qthGof>HD4}NvNs{tu;xKptWXM z7M5jUnkGUBe1CtFrYTA(6u{ft8;{2Wr4+B%3#AmsnDsk=5Q47j7>0p=G16|jVBnjSogb<`@N*u=kZ2n#L-qSP<#u&8Lv~9~U3@fzP z>&1S*Uuy{=08nk)5<=j9zZ1tXQ54a(EzUVY2mpi-h@yz1D3DUF)i#?A>g(%^q9`~X zk9hC7-|r};SeAv$<$~6l?RHC+W#oAdKomukWl5H0sGpx70II5@ZQC`zF$U)xhrzrXDFd%X9I z0M0q`JZD)JthKyeFN`s(A=NYu<2bH#rIZv!fl>csw4f|Dq^x o&avHYnWl+2j*(I_jw1kn0f5ty@vUrK)&Kwi07*qoM6N<$g0K)ddjJ3c diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png deleted file mode 100644 index 7a5f296809c88aaceb769b112a797fbb7106f45b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)y;5QV>;owXCBs6Th5KtO6G=+pEG`htC$N>u?-T1Wyy zR00Lk5Zk-6y>M(L>RwsvnRCvZGwVKo`I^l#v1w>x13=J#6Cs%S#V%Gd%|&=Zu+QW{eL%5lO_DSXDKP`4w7MbJjW_a&=1?A3r?*BY7f4IbZ z-`3fB&e`OQozVfRiiotMtQCj|Ap}AQhzJLVC*+(-DIp!Za}MWRuciZtF=A#EML}7X zYvuui!2qBIm|Xqn*+U4VlrS@zruC*%q^gu<$@8LNe|(Ipq9THbkaKS1Y8t%v{kMqV zy~lgs*QhE%m7*xnutwc9s~e$X?!ZC_IOiA+hYW|UH(IQlQ%Zyo{sY(?qpPXw8XK1F zea@M8yC0~QH(RV-jJC0jW=2(23`_WZ`5iNBO-z;mh%xrfn?T*a7$Z&7(CrR@ESF2n zGW+9Wa?X8heZg8uN{JXFuSNya>r+xn)OC%DID!Ul?;cq`PuM#+M%6Qas<)cozS$wg z$aHenzY*sg8Z_`YU$Oc-V=x$SfAw}W%^(i^$Hha}xoi3J%m&Fw4+?EHo kvx}`5yM5?V(e)nu18IUZq8o$sDF6Tf07*qoM6N<$f`m~Fi~s-t diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png deleted file mode 100644 index 646165eb1cef0ca45bdd7a5d67ba062bcd5941ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)89P)-N9^fwpg@&$@5XrNHF2o;)5848Y8A_Z!G@9F$TpGgMPb0oWkDcf8hm zYtpniClRrmdhfK>Ff-O#j4=Sd005cET8mQ3ZG}<_nMr0c=VZ=_hCUt-JTo^cfV*$n zVjwmEb57iS1G=V*zP`S#T1jG&Naegj2$8+c55KN-|zR{>)Ncq zC?}aoYmK!Q$8mgJP_YEPhUpq-*?H~ph+wUC`xCW-8USjoxchb>A~?^Jf3BT2?Sxgo Q^Z)<=07*qoM6N<$f`U7_k^lez diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png deleted file mode 100644 index 484111395ab82f7bb14d4fff8b2302a32a8fe327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmVM1$*-c0SNc$UTY;H$jpg+5}6t6x}vI-QZO@2L>PA@fZjW*I=@8( zRh`&pw1_}Nuxds%qq~!N;O2e)r}HUR>oMNT-W z#u$YA#6DgB7dy*stdawaWGR#_i8{E|<%E@VKF>I`1Na xnN2!-*@D-XZbNAnXxPje*psGK?uTUB~$dwm-O#JoD$zpV8r$WdZo`W+pJwF);uT=0kpa)=E@BExNq`+o#AU2BcPoW_a9@)23>m zkDpr8y;TAH?|~hsO|prWNGjqUSRd94bm6vXNq)HpKS?zU8MXFFXlc?hO6J-q`DE8# z8|oxa(k#1hP)NklXZAxEDys|lxVg5$rFc7 zPw=+UY-Q#?P{=SmnTyr4{*5`XJ!qw$S(_Ahj$RfV>dL-9iYKEe&2_-+Q<*80ZBnun z)=|ZPkD?<8#gn-5!5F0gpw8M2MGX5A$i5U#JqMw98iE(BEf=9*+x7tD-=%dimmTr7 zbuXTVA4QtOD;MK(Bj6ANnmhzg=2i7o6~|$zFmML+wVDzO#nY?oiuIPOWGQS(RZ5e$ zMi2+$Y2W5fnd@q}$0jfP@*7VGo?1ap(|};s4d8aPxpc`x@wN(#!n)Fo^%=IM{zV>& zw*ril?B{6zlsfoK(1%@JnznR_dM@k59fh<@#8!&&I98-FwO(xJTT4! e<2>;1^T02jI_{d5qDF-P0000PY>zyrnsO`rDN8npdS2l&z_4u0+<9aaU^3iU*0B^@#V8ProBFQL7iHvpwWI;o1L zca#B?3sPJ*&H&bhoWG*s)FarxBfMQs1~852<};GP@(9}#iWMbf0xihp3B}7L+M~Qh z13wFZTC=CdZjmqK`b;(_RnTeN)4QTrFVP?6UtJ^+D_S1G7id37cW_{uDDOX$GPFFB z+Y`9|3gQrN#XvXtOHIW59o1)~peV=+yHs}pP2^gL#qmXqAMy}ys(@8cCAJ1F`lSvP zYy@xQw!q5+ssltL_tR(Wb$)=~`#>)j#Y{$Y!DK;pBHIjYgPf7g02F~HD8nB40p2cB z_H!>A`W50%Wkzz+3Jeojhh9FuP|7O-9N>S8uoz&Z&SVB^0WBy7IgBvf!FbnYzY9sP zRrp4}AD~Wfy6@SH2Wrl}y;>#G$*rMsMs`b<35Jiz7w{L3@_&{gprYQ^OK+KRo{95@ zwkJv~Xm}5${*AqvH-OyEWP3mblp89*9|9H>qp0SjXc7q0}ul&Ff{^|#=e&Ff{u72R^ i2d;kL>IeS2ANUE!dvZ5A3|CYD0000+n(3vb}gh3D}8cmfyhasw9%!vCw5zP_YQd|L;E zDruZfl4-Ln%O8xGrU?MB@4IzN+@pa2;5d$tkHavCiI_RAtt7%8l|W#)ZCf?bbzNf8 zk}_eBhL)MZ%$VmHL=azi&;>8OO{sBD3Y9(*(Iw}AF N002ovPDHLkV1nZ0x9$J{ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png b/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png deleted file mode 100644 index 30fddb0b3b6a51b8d5708da8c4305b76a43ec01c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^7}kp977^n zlTB`Y{cq1Kd(hI{%`L@_`>L+Rp6M!Ib(Ul)aMgjHy8gFtp64LnPAjE=h%nFd e5VL13BKQSck7gTj+g=R-0000X?jdF zC^{cckMU($9uF+=4UVe(I(=jV$T<&VHP?NizY&5w=%-)>nEC5S0f0p0)i?tU@J0N3 zP~iJ}lWp*IU486SO6jwGyTb8;`4+kd5gK}QFVfzOs$yN&{}#^k9OT<+r4$em=6N1s c_N+w&zbNZx3+P52z5oCK07*qoM6N<$f`pQXLjV8( diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png deleted file mode 100644 index b99a7abb9754c739e4900c4dad1067ef5d9fa0dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr;!P)=A|5Be!s0cQR>QUD+kc{R>J1AGy` z9u)Zg-eenmT~{AFl~Vd_->z`HV7`U!L4<}L-HWt0qpDcf^}mJlJO}x9S}6rYgn6Ea dm_2I|!7rtWWv?RrAGiPj002ovPDHLkV1nxPilqPm diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png deleted file mode 100644 index 1a00908d66d04483c34457f6efc9c027af9593d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(F9Ky z#}EtusS^%zHW=`@8aFM^dmxkdU}txQp5CK1ZbDB^ns)@$&Hl4TZSB{4XM?sso-wU; zrlDJQ?@xY*&yoRKJM!3G@4Iai?yzH_WI>o#_GLsH!K{pFW&7^ SsWt$*jlt8^&t;ucLK6TGr)OON diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png deleted file mode 100644 index 822c86ba4bff2d0c3db4095f2383e4418c88e18d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33Jwt=FTwDi$ivD`K zIEGmGZ=H0Ti!o55wS1;bkq2L}T*4xiJeAgmP7|H^#M`*}6}%p~8TDRHt_Zuo#aqfW z#-R4|_FHH7f4dT;BqLX8qwAW<&h*zKMW);LQDL*DB7U>%EkD%IV`? zM^}aU`)G)Lf8XNd+}Qs33TySj*KeN`&CV(N>t(mUcGAf;mtHPirt8qL?7_{u?`uy7 zg?_bOo4G7gs!j0f*ZwHI|G(Md!VC{Qlh!pz5M|D>%NAdL|E@zp-xaP_*%Mbfe4MgW zGT5j4oRjLEy)Hg$tFcqi`gqN$i^UVB>rb3v!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQIn^O zV~B5&OpYnO^>H6AoMui!lS z(u(>63BS$&Ssh>QMQ3N+dU%1swd>}GRmL~ESDd^y_n?_;ja|?ck&k;PZsQ49!mb?2 zrX#=WyZ5$tJUfm#hAuc{mX)V3etXrauPT4$eCBTQkN?&s*_#P;4TGnvpUXO@geCwi CfnR(8 diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png deleted file mode 100644 index c4eb67842577df6f921aca1715a7f29cc78c13a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ijI1^IEGmGmrgL`J7gfhQfU`!Wi@?@=H*MzqR-roc+HTcqPP0%y4pwI zvd*b7{rkC@;dr5i@~ybOI~pGk-uixbWyj)x^G<8hg=HC+UH2-pX*O&NW)w?UJLSmY zK!cC9U1w?zzE*shdt0RRpu{rIbyGL|dRo=;W$(si`OCTDwJQs`{yOYsh_n5#dcaFv zn~`tdOsx;Qm#GF8$SZu?C=@0XevoDTdM0^=w~dSR{s_uzvkG_lu%6sH$#i**N2bZe?^J zG%heMF)*zP3cvsW0dz@3K~y+Tg;GmO13?fiNSJ&lN)z$T?>UFm`jw7P%S-(GN z+u?}ox`ttdh^kKS;7VNaEvo;Fkl891mTcCJ&K@dYn95WpHV&`;Fn6r z#o`gGh%6}r7j&@g8`NtyuV3cmeo7vvjA_UZdrxGK4-<*>%2bN2bZe?^J zG%heMF)~90YwQ330Z~arK~y+Tb&=gl0#Ou&4=C!WV=yW;L_vjMh~0?@I^sppkNw|N z7d=1_M3)glB|cAG6jWE;^dQlL^qtw`nKS(?ma_Mrz4l(`9OZ=YLd;r_3XldMsTKql z)-C+5XaPT}p*X_)6j45{!~!C6*F8+7Hqz-$$Js5Fj=Tt1f1vPuRUfwXCX9GX0n*={zk8jZ`>W%V$po)*;eqN>%- zp;FrYPXQbH{c*2%_pzqFhBKdA?#q%gJ86gxZ3NZoseFE4Rdhp^NF|@&iv=da5`N&@ ziZ+9*M_*g2*DtWdArk^}HVg(6Tm`{Bfy@?~YfT6$l@q(kCO1YK0{lnU%0G|ABq)zn zDC~2&LS9qmY5_MT0>B=@pJ^;00>}*ht02rA(%SpIc+kW4i!qD@{%Dn z>~>l>^P41h&ws);9MlHqP60{UEPnNZTgJ+}Azmxl6zkz|Z9$pCB=xCqdlOViIDK64g{x-2gzdqo<{A zVWVT2nHW-}n->2~%kRs-cMAj4$m?`pv8%a?@KocQ=4yf;mA1CNEIs~nXuE*09MpsxTnBtMcw8Yar8Gl|ya0diTd(@_Hc_E~3*NDHavs@L9?mRf zx+ud`dv^4@>yr$26z7C)Q@t3vTn{qkzq5H1+_VGpv!xl{`8sn&{QS-;|BVGIW4M71 z`y=v9*njLf+_rjx`QW1K>JB-{x^$5d%J_qPQJd1`zaE>WkHmh=8a@}I{CO4Tw#$?= zIxbE#RxU+ShmqWy>%x+Jk0#m`c8;|kDipWy-Om=^J^q1BEK%~7{e|yM+{OOtbBNbs z`kha=SgwfQ-T8``>!!>YlW~f-KkdXGRqoF}xeC3g<+*C#!iW}x4nhZJsU2G2?&T(XXy zp@)|i8hs6$a(bI{C>mGL%5c1@^quCNuKelNxaDHuspZa26^(d=UZhG>dFgp0R}bIg zKghF4T+JqLWyXf#6+G1L8!Gcnc%Cpx^X2!*OT@NuJpH3#kV5fq>Y-@`q}@>_#rY)^ z=BSDYtsXpO)Of|9hWqUC(Qd~khX{TaGF=!1nrIp z<-DUis2)ObMey@qU`W8yhri7x9~L;{h1@GOm6BqI@B8MoOSMycbN8}r{9Q>eS+@7S z`QoU!0^`TCUyVT4j6Sk)hCTDN9dQh@uoqvL;I8N}qaURFWZmOTQDoraiY&0v>^qD;|Z1PRW z%DZ)RDFJn(vbSSOy@<-<659B47EF`<;!(FSI>mIlgy+#qN;>gCv_mc*B;Fh;jS-h| z>>~x1n99$U!WETzvkX>K$tuzAvkqo@r7zIW!|i?5`+Riz-&q9`{C)3 zXHL=@FKdsE;Pp~<&6$((jTy9fCQSb@mYj)K<^yZR_LZnd^^|5YFKHi@Vc!kCqnj$x zAQPqWx0ygLVuh4G&|ezCf96Z&3!}Kky%Npu`HkMC>Z>^D6i@MwuCdH#_pzrcE2oFN zRg}3ObOYpc3stns<>(9RU4lOtXP;|gxpbb5fHudJGKD@3Y8sb^sYL16xC=B`hI?jX z6wQh74{Ft(Le!#v4cS$L=xSo!Nl>&bL4~I4$lF%C9=_eA?%6(%Z?I!2DVFvkDoEq+ z7ds4T5W}iW=W?is3GO72r#964*vVlQSX3QjV{t>UTjJW)85^9Hr@!0_hNf` z@95{Dl+c&YefISHcOO|+Vyc>L^ypU_aqdsP)kZdEUUE7$%y7}Tx;>r z_f6^gL9YkGd={z5DYCVT{ftjbj%?W%!D%iNxxC9Z(iT2a2R0H}z8TGd{*}kBF#~KS>bG*5dARLpoww()UyFaT4tQlJz4OMZ4n5BUGjcf|t zRcQ;ULX#q2h{AeXeidT>M$JZ_@^_O7z)Zp>vyglD@cd!QmBL?d;Fl-3`tNV*%`8k* zZ<`c!;=1)s4^Vu6dc#ft3Mx=Gg(RKlU0JFsZ)`l2%Y1X^1^K`}C3Q}O)&gRVDFakS zX1Y{{k&6-y1(Q%t_~n}v5JJd8?8fnKT0*zU1vM(%c%pX$NTNQyJL&n6tkZ+3TPT%( zGNpkbcWfKyuPjg#)Jhu}6m!C5fDcfr=s0%X*z~^a+^W)i*?`<%)5TLo&`EI*+wO*q zG*<64TXnh;uvF(#jMW;Y>T2{?YRIiiXLK8}JA9=?UQds~iQ7^3S~oHEbF_ z2_3`~d)8Z$-bmip%f({LD_bUpi*+lqITrdVhqY~-Vqv6mytVN* z2Qtg8YRy$22CDXc$r_XY^xLYNLl>l7&GjCJ(k zp}Z*>tErm3)lU-3Z~j~BR+I?Wh!eEO&=_xMGc zT01$4At%Q97HBGV)K);n!R_AK)gWJ*x65Gp112~9z_%2FMa^7mAGfnvgA4)6u_c?g&0ccit>LF`$QMf=VZopth(CEq z=v{XdP*F&v_n}6;I+RM$PUa6^Pd%G%4%!WDu(se*pqLXBiYGWHvL)_29L6)B$bW+} zC;pLxMCkpa7YPg5xY=K9(M~Mz3|^0>vc4No$SOC~Hda%h>l%#Xc@}GO10Tq+S(fXZ zl*Txktn+yI?9G_+-^#Hb(h78wtf*2_qC95=2{d=FcyS$0Q2Ta1&Nt9JHPZi?pqoSa z5Vp_2ehMz}+=I3fp;oi=he0UCuyqC*xA&z6tRyJ1b>p<6+$DH{_!q(bu2*mHcTSa1 z4eSVHT)N>{t;7z?OdW2K%~m&4nwfh!iNWzQd@DMHY{|7Vsmw-8LWdf(78JNx+W}!` z97x8x8@>&zW01NV#os*T-oNIM!Qg|ye#|52a=6^{FkRtaP330!*VQzp#pyOXC?|PF z;9`f&Sa4L&)AoDb>?X8c@`2t>)>uwom_*KHD$;5@cI5R)_j_-Yi3kU7OAg|GJicD{ z8IxjQ|F#3Ba>z@AT?tBGmg|vFbrp?9xh?#F&;M%uc)r0?XnAXZyP-|aJ9HcQ5DNX2 zZ4m!j`rT_sp^-bF*dz^k5oJS`^Eez;z9`2IkIpV9jXm6NZc9;5^}J!52R7QA$Q$U` z17WY0q$`yT-HJvb2iO!?KAIyyT^j+oo(s#8^rgNDIf%Mq*TIQ|f{2Of3Y;wHDn>kl zffrUwiZ1(1EvYIctVJWzPE?CsQD(ubc6lyJj~HT=!teyBo2rI>x}PhW{#{eks1P;C z`ypfOgx6~x*r48qh|EwFQYT9D>}CIMGS+8{{$akV+B0w>*!W(UYz}s;SJP@ppRt8F zpCI_-1>P&&z*DRv8GfAfMJ->FLlhRn-E}?6`9Fhk`VC$yFGlm<5l>ODcS}x(0P3c& zD=t}Q^_P=_$@%^Q*@aaI+0+H|lFlJbSdVTrf7WNp^vG47xsyJtanq*ay0t!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(PK{+ z#}Etu(us~-hYSQ`bNV^X#Qk9VebwzT5Rq>W)-Izc$Mk)pcxFE}InAg@pt> zxg*hWCeXTF;>}slH9C@iGK!{a7Vp^nUG;|Hh8xBj#cy=EELI=nb_jp=Bq&>BVt@0k zy{BcqNwzii-;p>mJ=O8~z4Z&`K3<)}v$TB81kK_J6F1e@h51!)zG3?zUi$b&%WuAH z(UX{qQ_R=0DS1e*`LjB~n{9);G`Ftm^VmdKI;Vst0D1w5 AdH?_b diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png deleted file mode 100644 index 248ae197db1c6cdc9f88ec051a088e33ae6166d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(HTz{ z#}Etuqm$2aH93g1vdjFr-ump2dO*R$Y?Z&)7tMF|54f=C`~K1v>pMn{${s&vd_4EC zz_K7jB=_W|WlKt(=WSnNaW8Pv8%0e3>!O&a~t+CP6zsn!PC{xWt~$(69BIthfV+h diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat.png b/src/main/resources/assets/hbm/textures/blocks/hazmat.png deleted file mode 100644 index 92997dc0b254e071bdc9e30198dc751d3fc41e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmV;m0ZRUfP)YE;CClNt6^gYAq3gt;s?_!OR{_qc+w&>RIXE6+yZzwPBrqiff(oVtkB9C~ryrU|nD)<=v2L12txRaMaUciL8GV`X_|UF)*zbm6@U7+w1gLHl_=;q}VR%F9JFJEuVS z9w`JE$D9C)pC-i@=d)x4EzuI!o3^KIzZ-=B#j>z~Xf+L7uL4raBbj{8-x zjB3-UP+g01jG5JDqqwH|6nMY2)s!^vJZ^rLFFyDK*nI5OSVukE00000NkvXXu0mjfnAXQh diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png b/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png deleted file mode 100644 index 049f1bae850a987108109d4cfe27d51d2e3c0552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)h0OW{w!GT~P2%4&B zB;0X#%d9g!)1L-Co()9@#as1$l=}HoYAM1nJZ8QA&3=Dmnji#+_xCa8NZ-F=w>xLO zzCo#iwUv}0gbt%rMkG^;r4(VBKq=_^=bW8=Kx+_rht?TuGa`^Pl%fF8&VjYy+z*^P zAOc+no6T1ML?ERT#_=IBLI`kq`IMAS06|X^cyB4i5~D>ah!ILL48s{QLf^k;wYqK_ zHEg%vh|!@`!i3PFR3&H2dVQeQe-tgwU1AJ4_lfoT2Ip8wJ;St6h5t%3@QER~a9i@2-|20Gym0NlD1LBWFXcnpzD|mi{$bgE8DnHM`viGx|X` zYsV$dCQs`Io+gK3d9}7*sfsZZT^C5H4K=0#b7t|Ym9=9V5F^a9Bc+*XIz{WmY89we z2%#AXkh2iNhLn106}-QPDFwWDgs??x%P_nIBHrIn%3XH5k61gBl0m78Qf->GnVkP% zhQX4v!MTe?<7c+pi`$KxOCU8$=RHCFc1FIa|Dc!JRwjfTrty@fXq@PoG|d@2LO)002ovPDHLkV1kv4DG&ev diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png deleted file mode 100644 index 6763f77a438e312b246abd4565c2baaf43314fa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)7IwB)>N<@7c2exRM$kY`Gc$MQoO{pQE1sV}Ib#e$2(;E{tx-xL zgupq+1wshIFhmG(6H|pkfo8J_faiHgDR0R8{hmjd&*!Ma;Xo8c07Oy5>2!KXxCgb} zZn4&;B8$c1pM+Yimc9+c5as(mPft%oQN(020bn#5-X(WBFD#c!TCElUzVG7!7-O*3 zqP2cVz6firZ!PS0JB%>^SZlA!$%jT!gp?A`^H{A`SZmpAHV7fuZnvm>K2N1m;e0+L zrKH<^<#;>-q}h(gBUovxhbb!8nyv6bZpdYX8K79T46M)a17iO~=^?Ds+3|^^JqFSvYrR04yq&oqZ3Sx!OF==f zu-U>+W4Ib~?<;)CBcKcKlrwW?I5TJD{r%I$ag2zdwMJ`=QVJ2lIY$N&A&MeIq!3fJ zT8;5|41ni(_`Y8tU$0kQVYAtwZnqoOS^%uI-0%07glACa^BH4I-ekAi{YvQf`+02? zMW`SMXti2cYgw&U04x^YPs!8i2ZzIf$z%dR5CnJtaU5feL2LbzoHf>37bRRS7veYu zz!>wd^WTM9Yw>*_&+|AQj~HV(olb}d=kpm=tybxDI;3fe@B4(|j3h|_@@Ywupta89 z^?DtETCIi>5iXYtK(6h7piZY#;R;HrJej5`0KV_%e#l~_Qt5Gpdc97&-Oe56oMX9M zK9w*UjSADN)#^h+6h#26*Xx`#pMMpK!*IrWy)H;~&LPw3hZ_!uxq*H=BRsqSFc=Kj zZnvmLqd~XZWxwAupMTM8HYu0OIYC6Q*5Y{{#uyfhZ^Cd!5Cl{z6_j(1D2mWp(`+{B z^?F!q^JQks1!y!Hg>Q7uAz?UkNs^GJDL+5Y{~+^7hPSsNX__J;`~k0q)=gYU3R?gG N002ovPDHLkV1ju~=0*Sj diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png deleted file mode 100644 index 92fb934f88da4cc49599613695d197e3c41450b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLtVP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00We8KK~y+Tjgd=ggg_KUvz08wrDWQmOUOhJ z#Q$F#0-~VwEF)(D2buK(GU+vB6P;7_#BNO*aw&>i);;f4l}{g9^E^+}^sa>w$#T^& z46f@cpl#bXt-kNaaXj6LknA>1Q^S^*BQGh|3h<`1Cjx}6aq%d!Osf`C)40QcS*0nh?ao;z?e{3C4u(zFv5 zMUm&Z7!sUT!~^h{w+_0>O>_ez_kBLA@%h5vpu_^O!OTrC%<#N7-Y|^o<)X&dfdR7t zSYSi~P+KuNeLegFs2zqO-t#;GUbSGv+yG8&+cu$l2`o`Wnu>f^fa5qYY;$_%IF7j= p55+5y6Y(7>fGCZ0(SOJ^e*gjTlFs{}J|h4C002ovPDHLkV1kYlunzzL diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png deleted file mode 100644 index 2addbfbe7f5cb4512ebf7d34b5c5901cf01936a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00#QjsK~y+TjgD(m5@8g__e<3{nN7WDtVuC7 zEeF91BrSMN%A`>)O6&z(cG*>Exiup$xJWJ%yGtO5TCWOx(VM;j-@&XSj85^Y|NQ67 z|2gOUp65Xd%0V%oK2mlH8BR%Js<2)b-DPpDEUp&>CmiJ@@hL@Tci$&IggkC1Qp}42 zzb=MeNg-5?JU@(0R^k(t_;}M3rRb#08}~z&olR?)am-H}k#a7U;%2j)F235CaCGcA zZwh}Ij@yoojIT%9G9=i=*RwjLnq|}UXg;8U@$a8@aB1^lTd3`hDO*D#JGHVff}BX+ zy^TScd60D8XpJkOp0-d=jjEhR^lP0jhXEin)PT%%UjxUyrY*F945M={4#Ssdk$Nfz z9$f>c(f+njOO46gV45|qE<8gjIX*!dBxWeP(G7!oO4s!0RnXUV$G?fDeO8wU%)gn_ zA*FmW;fNIT1fN!5=VGjVVa9+IWGUdamvhl- zmN}8|FZ*j>KRUKatr#$D`}B>1zflY})Sd*7Z_=I_iwRMcJc+G+mNR~0g~69Oaw+Ir zdOJVD5!S|0`n-O4epdbUU4Q@Htq319n^6E140{LIw8aD@iMhO(Yt~|f+Bhv={HR}? z8SdWcyqGeEdAt_0gSjzj+vaJgK-z?dXSs9vv^rfG_z7>0qpmY@&11Yi{&YF_#uLeW1m^tF~y SDvEdj0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00VGL8K~y+Tt&-bngfI|>`?~rVf}n_p^>86r z6_I+NAShHSiVA|-_M!Tl#Ladu%3kbuF-*w+XOfw`d=mP;uj~4qfP_MqSCS-=W%)1! zLE!uT7vcNl=LGq-ZJy`Zwk?X{VQ^iSim2y~ec#7%tg6a!96=BcgRbk?z%lbYPt$}* z6X+0!VQ88rO;cV$QIvIEmu2a??&F5GZ4vR9EX%?$)HID7pf1bu?F5QE&x@i!#MyBi zk%&}MDqt`fEwi}&{>v66Q&}dML3RE z0JMp;zkp5QoC7I&;g6;w>bc`O2bARoY&?Gs=p-}XOFc3Nbf0|I1G@Y d5VD65gkNJ2?B#ek)o}m-002ovPDHLkV1m)mwN?NC diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png deleted file mode 100644 index aa647253511fc7baa29f5c2c0419dc7287090a0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP)N2bZe?^J zG%hhNHDpIvQUCw}DM>^@R5(wKl1XlaKnz85T{s33-OTe8(hU+QyR6tn>cizxzXa(d zi~NP$*G8 zG)-OCl-`W)_d6s$aw127uIunPj>y=@BtL=QilPVxlcZ5k0KGAhT(8&5 zh&OS1+$@Hiv~vjbQeMD{N^&KC#U Vum>IxCG!9P002ovPDHLkV1oZLr~Lo` diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_generator.png b/src/main/resources/assets/hbm/textures/blocks/machine_generator.png deleted file mode 100644 index 4a3bcf52e6792a7ba15396bee6438a92ac7736cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)N2bZe?^J zG%heMHvEiZ-v9ssCrLy>R5(wKlFe>|Fc5@!E2LPY1QMYDhj2$!Pz0B%LFM=H`D@wKAsy1ws+VPFNH zzab1mhdW?V6mc3rWKVF=^#RZG>bgeCvJ6W>5L8tqylEO+&-2`MUEN`tCN^*^8{;?% z=So|rWZ;*j%jIHP8ys|ffZ6e2P?jZ54BmGXMZvmRn&+8t#Orf~aA{(5J#>;JQW)QV z@K;LWXYAS)+LQy7xTo6`6`=p?2s(Tfd} zciXnYv1IF8N^}rQCT~i~jVoN2bZe?^J zG%heMHvEiZ-v9ssLrFwIR5(wKlCe&MP!xvm3m8`&G*KrPSCSGaP&yPCcmRWe5GSKV z5a?U!pou!U_#nmy@w@l5rLD&FOLOznT+aD=PE{C&qtVE=ZO`+j)9GwBi=v2AAiJ(R zUcw!frs=Jrs;auKo2KD}o4=S$CW;!1rybBQIF3`6WlIdOT3iN9yHRT^TURvP^>R&~+U$gge9Mh5AnR zzoNa@6SXQVLI3DDj^!aq5(yvYirai>BH#GFFJWU!gloh5nU=xo>2OeDMBLFzbm;qj zKA+QpAl$D(Va6&Qf*?>Ulaoqmw341tQLrp3f!WoVV(d|1nT&V!=GzsP0M3@`j!JeNr`bl%bJb`d)}JA`4#XZIrjsmne9zVGwt zuW&M%05F|S$v$k+Pp7bL8>JNYgb=u{%WkU?yYT(xRmX8~948h_DcNl`*eqpIP5 zll#Nra9;?4xv|Bd-$$MQjKu&!5HKE(F$@EM-*X)$CnOh>rGqGgTBQ^_h%5&|u#(Aa zHe0C#NgR>+9>Bot*)Y&1U2GXfMt{(==SyrB*3XtCZsF zkvIqf27>{!*$jZq!WOkk={keaXtXbcfOL-Yiwpc;KbTIZj7B3Civv%YDJ1~E*E*40ko&XPUJz&C*j92u8cu7qTG8#aaBK@r(>OmrN7UeF$FVIO+e)_IhF7Z<04L=Nj&0p!Fq_TJgb+|DaW$V4 z{`!#wwqCDy;3$eXIxh3|+jowH+Rfm!X5!dZ0>@w)25@YPZl{%Gkm>b$n_Mo({l+8U zrg^a6zVzGRIt^U!sjTCMh9FQwdO qV45aUN`}KBK@d=_RuA%?=kXV?12Aev_F`cG00004`RaF3t$73R5 z?=gy^AkT9WfIQDp)s~nf31wM!2&zg|Rj4X;U8AZT4u`YA>2xB5fH4MR40T;|_xx2y z;N!OshzI~8f`|}8I17|ziHKmWWj31;z5`EQbOc^LyF;GBcDp5nKnMX5!2o#gQB@X; z1+Fps_lxV_cIc19tP`(BuOp;BEoXH#JS7lAL-R#?VMvipJT1P z2pBVLWODN`IKATp&KWo#?&^;pAG@IZ$@{P7A`mn1SJH2Y91|b+pI$?``}Ydvj(1<) z(lpIQ03d|WBM;RPog+p>7jnJp5#)LY<&HO>@A2N_y+8NUG!0pnwJ|ovpsK7^tB$~C zv!Sl**1CwW-|xFej9CX*uh)!5BbuhcTHEH|dr#9e?aE1(WgL&k-VOd2zW}=P#wxsj R`qKaa002ovPDHLkV1nNe&0+um diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png deleted file mode 100644 index b6d0a8511384f7f32830d6e44498bd11bd5bf942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0OqQr8+#Y;3l1=lk|`3(5e4J ziG@Hrgc6jHfI4U#5|vOglnyT@@BZlUxHk=*dZxoY_xt7h{hp&*tyTcgT2mASi^T$f zTCGN``1W@dMZtJH#sG}RW1MpdXpCV#pRWL%b1W7MoO4)fanAAd^i&bNyu1)XKtvD` zthK3k&JjXDDTPuBAoU@HieNsUqm)8xjZzBlJ^g-vMgIQ&ezFxpNTdQ#mL<+Py!Z5a zJ^KAV)8`ReTU*#)6Mj!8TwPt!?RJx$Xi@%22beyO$V{cIu<#~-%k+7~@$oTbSpr~; zSrRCv5D{)}ZYX|^*gMKuujcF><=l2I$P9e`^pQrRLEIWpWgsFbrIO#fZky(A&h_;* z^?IG{!;__CSru&}TTFQ8AjcSk)|xEKn9XK5=NNR_6c#o%HdZ!bVkq$jetd6}8CW;a z+|2>F?Od>PkTdAC5fQxiNr6NH?>(EFo4k5mdE7oc;jY`JUavE=FzB>-_x=NqkB@{9 z5=k-?cbjDyr)TGU`}&2Mt!9OV)3bAc1dJi7R;v|yz23@&dGBd9n+YHyJUl!QLP-Ba zgyC?w%ph(ehI4;^pL(q|T5GJeNrCr%dCD=w2#BDywKcr=X-i5e%Cbyg0CRbH$z(D~ c5C2<#01;;wV!RfnuIvo|MNaw{t*?sP z`;fDQW5XdXqgOZ6zDOkJyM=1+V@sGIq1^X43Tpk2O& zzdcOnEZO`2%YKoD!28SZFKQJq6P)RPK|HPM(&wpqi_8-w7=H#&1^R)()78&qol`;+ E06R8jDgXcg diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png deleted file mode 100644 index 2333c9bb3cf5e13a54b5a677463f977d82d399c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)1u52O@Hp+mIO(M=iw#jpn?tx zP(ldRYoUhi?L9#UI_n;^XeE58^7CF^o zu>in!Ex^LaztKI|WRNxwF1K&>?%T&}x(6wPvuw#0J7$3Sxo%^fZtzq5BSeO x1s#;~^x1Kot$eSALI|OTZEb`Q3fS5M>L0-6Mr|vIG_e2x002ovPDHLkV1ntr{4M|h diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png deleted file mode 100644 index 99a32b91fd6c495b472a13d807976cf05e8c1f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)Igj3I#*jYqeLf zv+^&nvJh=;gI0pui5x5`!W|qgo~(+nZQIm$CoD_KDga6iR(z%>cY1vN4n-jZ zA6|t#-tTZ)6%Pa{qa8*n=0|@K&VpGuNfJ8k79$n&(K;dWVcx-w&L&C?IREEn zZYn^MBmkVba*UMKdG9=xVarbkn9XKf zZ*8E|fS32aK9Pqyb9S3L~nziS7Yx#Z`jSxadzA-`w4Xo_}{SPYj VPE;%I0HOc@002ovPDHLkV1hOv{ z8wI3T9~Funx+8U-rk~=Vm_ZU7z|Lm-HzdKNWET1*L4Pi z0a=z|nkJ1#gCGbf7K^y93qTl#BuT>Mg5kaU3%o4sjd@$8iXPfZ1$@<2V?G!G6D|*X!YV9**PC z?RK$k8zBUhN(J%w_?WNPYoaLPcs#ORuK~!ijQ{=Ew#{TR`6B?BPNzISKcg0l1-|cd zadE-FfB!fhk7QYfWm)8TPQTwr*L50=2CnN8h9P;LQ!bY&7K^_bPfkvFdU~Q-Cr!F@H~$~p}=f5 zqgt(Uetr%>5CoLVWjdV>$Kw(4@bHi?m&?D-wOWnMX2W*7CCf5Or4on3f$4OLX_|i< zna}5hVTf8Tm-xOnoehhIYG6sZ=6OQ>2vK+}r>#9*-H1$G;M*)hg|F8(r6l&Ux7Y diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png b/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png deleted file mode 100644 index b47cd705ec722df4b1abbd99a18e8d47ca0e4b18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfUOt~yzLfpHTw3pkt#^NIFXVZhDB%-1O>V*a>SP8zX@<&qkLT=OHQkuuxy-7r zjv2fStJ(~GgM;kveSg!p-cu`-_p>;IAg90J#3gce`}fW}mlElA*@SI@2G@L!JI(XX zG4x!tKhnm3FzWT{Ri9p;VZBl+s~45M-o-4N>9dV}YRzRszb^qz%Z2}z?V6giQPyx_ m?(G)g^2M)r?cZ9=X+JeD`^|J0g*!k`GI+ZBxvX}k%$Z3ymFnp`^zb7Cbbc(^CPuYoM z%~lS@i0h`EQLm#TxD1Y^Ts`wyX3zJ`_j{k$-p^r7xV=r_X-AM&F`HJ+zKYoEZ~aUc nsJYDw*7#a0BZ3`njxgN@xNAwNY3} diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png b/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png deleted file mode 100644 index 471bf68f3cc83ce44f40394294836d64d1a8ecfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfY1@BbH}yc`MAk`R&So z`&#?IZ`=1PpD&)DI`e~)Fc4c8_u(>!cY5HH5C?phbi0g1!63eTReu$kW?I3;M2Mwh|-ATNd^TScG8 zOfb)1uvP5$;i&A3CcXEs=LObT?tRU9KmUVS`I%kp2cAt|mdSPRq0-SHng3$?HJRbZ UtzUng4)hX(r>mdKI;Vst0EUuq1ONa4 diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png b/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png deleted file mode 100644 index 7922fff7bc072337a39aba48cb1686b577c9c3d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&_dkYMgSv~jAoLHPTFWre__WQl_U9wpU&M{61VoHdd zw*IwAr(4zD{AV}M@orf6nnhf4%d+I$czLdk%YQRYPtW;Z`^)fHuHP4i-wPlAtaJCj Y|KDL|+WID5pd%SPUHx3vIVCg!0CEyoO#lD@ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_light.png b/src/main/resources/assets/hbm/textures/blocks/turret_light.png deleted file mode 100644 index cefc65660c54637a90acea806a6036d316c59116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf|B+--zTnlJ!_H1hkKX5+g8rIY{JWM&XRQk zG|BU&ZWvPXHGtVK5J+o^}87gAd8D1>gB_0S8nb5?caZWTkaLr{ux5LdrNC=80%9!J@#)g+68nygQu&X%Q~loCIAt+V4MH| diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png b/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png deleted file mode 100644 index 0a5a4c41469620805b423570e8e8666f85d68022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfo`a9k}KlLGtM12aA3hv{j(pQo)&Lg zAHUzIpt#uB=GX6ujX;p-m#nYc#a;LJPpjx+<{3LSZ~k1*1_WX=j^yifZDgFWD}KL% z$(@F$e~l$KW*WSG?fg;7XYS6OKkG&GCvf@Av+0y#d&1Pkd*D^RL_@0yGqchK2_WE; ox8u2f{7?hCLbg*Hza9g_&dok`-{FVdQ&MBb@0BrDGBLDyZ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_tau.png b/src/main/resources/assets/hbm/textures/blocks/turret_tau.png deleted file mode 100644 index 19be1105c8942943fbd09750aea83a7e2a1455c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9g%=Ly zXWjbucD~rZJ+6Twv!3r{ipahiwR)eL-459@t__y4tO}k&tOmy}l*-oL7j_j44NdG( zJZ;1n;eYgd;*&l1wGMoI)RZ@8_Ve(%*R>Li9jC({Z4!NcXVFdm54Y#@?J2l*!=#sC zN#?4Bf6g3Kuc>d?qxCEN(4SwWvHJZINm^XBPs}SA`k(pxXir;p5$Fj9Pgg&ebxsLQ E0Bieal>h($ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_coal.png b/src/main/resources/assets/hbm/textures/items/pellet_coal.png deleted file mode 100644 index 0672275f859dbe13ace7e9ab3fed9288815b92ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFVdQ&MBb@0C){D3jhEB From bd8f3fd01c7610478fc204495d8e20c692c80deb Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Aug 2024 16:20:33 +0200 Subject: [PATCH 06/23] more fixes --- changelog | 7 ++++- .../java/com/hbm/crafting/PowderRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 26 ---------------- .../java/com/hbm/items/armor/ArmorModel.java | 5 +--- .../java/com/hbm/items/armor/ArmorTest.java | 28 ------------------ .../java/com/hbm/items/armor/ItemModCard.java | 3 +- .../hbm/items/armor/ItemModNightVision.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 6 +++- .../assets/hbm/textures/armor/test_1.png | Bin 442 -> 0 bytes .../assets/hbm/textures/armor/test_2.png | Bin 247 -> 0 bytes .../hbm/textures/items/armor_battery.png | Bin 0 -> 367 bytes .../assets/hbm/textures/items/test_boots.png | Bin 214 -> 0 bytes .../hbm/textures/items/test_chestplate.png | Bin 241 -> 0 bytes .../assets/hbm/textures/items/test_helmet.png | Bin 208 -> 0 bytes .../hbm/textures/items/test_leggings.png | Bin 205 -> 0 bytes 15 files changed, 15 insertions(+), 64 deletions(-) delete mode 100644 src/main/java/com/hbm/items/armor/ArmorTest.java delete mode 100644 src/main/resources/assets/hbm/textures/armor/test_1.png delete mode 100644 src/main/resources/assets/hbm/textures/armor/test_2.png create mode 100644 src/main/resources/assets/hbm/textures/items/armor_battery.png delete mode 100644 src/main/resources/assets/hbm/textures/items/test_boots.png delete mode 100644 src/main/resources/assets/hbm/textures/items/test_chestplate.png delete mode 100644 src/main/resources/assets/hbm/textures/items/test_helmet.png delete mode 100644 src/main/resources/assets/hbm/textures/items/test_leggings.png diff --git a/changelog b/changelog index e6bde3d38..490d989c4 100644 --- a/changelog +++ b/changelog @@ -19,6 +19,9 @@ * Removed legacy circuits * Removed a bunch of random unused items * Centrifuges are now configurable via `hbmMachines.json` +* Updated refinery GUI +* Crayons now require paper to craft, fixing an issue where some recipes conflict with the dye mixing ones +* Halved energy consumption for night vision goggles ## Fixed * Fixed crash caused by decontaminating items with the radiolysis machine @@ -32,4 +35,6 @@ * Fixed primary bedrock ore fraction roasting yielding one extra pile of crumbs * Fixed filing cabinets being unreasonably laggy due to the old packet code * Fixed the secure access door taking way longer to craft than any other door -* Fixed issues with the spotlight crafting recipes \ No newline at end of file +* Fixed issues with the spotlight crafting recipes +* Fixed various issues with opencomputers integration +* Fixed incorrect armor mod descriptions being shown for cards \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index e611acb8f..5b70719d0 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -101,7 +101,7 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.PINK, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW) }); - for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any() }); + for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any(), Items.paper }); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0dd074de1..b5b5fc653 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -75,11 +75,6 @@ public class ModItems { public static Item redstone_sword; public static Item big_sword; - public static Item test_helmet; - public static Item test_chestplate; - public static Item test_leggings; - public static Item test_boots; - public static Item ingot_th232; public static Item ingot_uranium; public static Item ingot_u233; @@ -2215,18 +2210,10 @@ public class ModItems { public static Item rod_of_discord; - public static Item cape_test; public static Item cape_radiation; public static Item cape_gasmask; public static Item cape_schrabidium; public static Item cape_hidden; - /*public static Item cape_hbm; - public static Item cape_dafnik; - public static Item cape_lpkukin; - public static Item cape_vertice; - public static Item cape_codered_; - public static Item cape_ayy; - public static Item cape_nostalgia;*/ public static Item nuke_starter_kit; public static Item nuke_advanced_kit; @@ -2456,11 +2443,6 @@ public class ModItems { { redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - - test_helmet = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 0).setUnlocalizedName("test_helmet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_helmet"); - test_chestplate = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("test_chestplate").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_chestplate"); - test_leggings = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 2).setUnlocalizedName("test_leggings").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_leggings"); - test_boots = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 3).setUnlocalizedName("test_boots").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_boots"); test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); @@ -5330,7 +5312,6 @@ public class ModItems { wings_murk = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); wings_limp = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); - cape_test = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("cape_test").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_test"); cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); @@ -5522,13 +5503,6 @@ public class ModItems { GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); - //Test Armor - GameRegistry.registerItem(test_helmet, test_helmet.getUnlocalizedName()); - GameRegistry.registerItem(test_chestplate, test_chestplate.getUnlocalizedName()); - GameRegistry.registerItem(test_leggings, test_leggings.getUnlocalizedName()); - GameRegistry.registerItem(test_boots, test_boots.getUnlocalizedName()); - GameRegistry.registerItem(cape_test, cape_test.getUnlocalizedName()); - //Test Nuke GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 1bf1125c9..88eed031d 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -70,7 +70,7 @@ public class ArmorModel extends ItemArmor { return this.modelHat; } } - if(this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { + if(this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { if(armorSlot == 1) { if(this.modelCloak == null) { this.modelCloak = new ModelCloak(); @@ -86,9 +86,6 @@ public class ArmorModel extends ItemArmor { if(stack.getItem() == ModItems.goggles) { return "hbm:textures/models/Goggles.png"; } - if(stack.getItem() == ModItems.cape_test) { - return "hbm:textures/models/TestCape.png"; - } if(stack.getItem() == ModItems.cape_radiation) { return "hbm:textures/models/capes/CapeRadiation.png"; } diff --git a/src/main/java/com/hbm/items/armor/ArmorTest.java b/src/main/java/com/hbm/items/armor/ArmorTest.java deleted file mode 100644 index f1549464f..000000000 --- a/src/main/java/com/hbm/items/armor/ArmorTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.items.armor; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; - -public class ArmorTest extends ItemArmor { - - public ArmorTest(ArmorMaterial armorMaterial, int armorType) { - super(armorMaterial, 0, armorType); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { - if(stack.getItem().equals(ModItems.test_helmet) || stack.getItem().equals(ModItems.test_chestplate) || stack.getItem().equals(ModItems.test_boots)) { - return (RefStrings.MODID + ":textures/armor/test_1.png"); - } - if(stack.getItem().equals(ModItems.test_leggings)) { - return (RefStrings.MODID + ":textures/armor/test_2.png"); - } - - else return null; - } - -} diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java index e5a27c897..5a66dc478 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCard.java +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -6,7 +6,6 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -35,7 +34,7 @@ public class ItemModCard extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + list.add(EnumChatFormatting.RED + stack.getDisplayName()); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java index 96af954c3..6418a88bc 100644 --- a/src/main/java/com/hbm/items/armor/ItemModNightVision.java +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -33,7 +33,7 @@ public class ItemModNightVision extends ItemArmorMod { if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer) entity)) { entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); - if(entity.getRNG().nextInt(50) == 0) { + if(entity.getRNG().nextInt(100) == 0) { armor.damageItem(1, entity); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index dd263e35e..caccee6f3 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -137,7 +137,6 @@ public class MainRegistry { public static ToolMaterial enumToolMaterialMultitool = EnumHelper.addToolMaterial("MULTITOOL", 3, 5000, 25F, 5.5F, 25); // Armor Materials - public static ArmorMaterial enumArmorMaterialEmerald = EnumHelper.addArmorMaterial("HBM_TEST", 2500, new int[] { 3, 8, 6, 3 }, 30); public static ArmorMaterial aMatSchrab = EnumHelper.addArmorMaterial("HBM_SCHRABIDIUM", 100, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatEuph = EnumHelper.addArmorMaterial("HBM_EUPHEMIUM", 15000000, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatHaz = EnumHelper.addArmorMaterial("HBM_HAZMAT", 60, new int[] { 2, 5, 4, 1 }, 5); @@ -1398,6 +1397,11 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.crystal_trixite"); ignoreMappings.add("hbm:tile.hazmat"); ignoreMappings.add("hbm:item.pellet_coal"); + ignoreMappings.add("hbm:item.test_helmet"); + ignoreMappings.add("hbm:item.test_chestplate"); + ignoreMappings.add("hbm:item.test_leggings"); + ignoreMappings.add("hbm:item.test_boots"); + ignoreMappings.add("hbm:item.cape_test"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/resources/assets/hbm/textures/armor/test_1.png b/src/main/resources/assets/hbm/textures/armor/test_1.png deleted file mode 100644 index a6760ae39c4d2cd84a60216f3fcb57b7a2607d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5hd`K7RKu$QC@4|l8c`CQpH@kcdMI9LDIe#c?W65Mt;LWpfC_m(f7)1-1Zm)GCEFU29M>#yM$*RzKA z+SLi-%Gu4OrcaKZxRnsgTWPq-EF#<)A$7QWT1n-arEXbPKOC}8NI&pbw>cy{b)TZX zc(B!UlV6t|=W?8Fn{jE*l;pWj56t(|;`*E9ueOrq&r`#Aruo4S^qzR%&-!?}c-#Iv zAMAcyoA=C}JNMYvgQezmj82;^qvb<8R5u#!R0&(={_X+u&!6|_*&6@6`FrMx^tx^5 zW}Lez8&ke#!;)$FbM782-PPdo%l&ijX6qe(;uAdfo7M-sTd?jncY(U-OHt)?&-8n; zG2!|<%BPh)11kR7v@~*6%T(2=4e$BZWyjArnA3QK-Ku*U=kFkAhok%VF(^GlG^l+tMf>{UVFd5o8T@xgq)HQ~kk46=;b@TLYj07@w{8jUPN z6h+oM8{G4}FDZ%wpC@iF*GMUydV(ZL>S7@TN~s2L%IUWT2i%`2pzIYkm8L0anzjJf zWk!+bc{iYfROU9I>$(68y3B81S6nX^2qC(9bOQh$R(DJeA9tFeTp`bMtCJ9d7vJZc zS8Mc6Kpe-8QmXg$Z2!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhh^LEV zh=u>tGmd->4je3w|Ng%;b>??W<&V4S<+DUl`u-Nb_?uhThJNw)TDO?r?)O_}yT-Jl zqSmyc&#P8$^jhcJD>`T4%$kR~CX)jbb@Jxj+v|RWQE|#y<6nEM7XZy?@O1TaS?83{ F1OV0zN8$hg diff --git a/src/main/resources/assets/hbm/textures/items/test_chestplate.png b/src/main/resources/assets/hbm/textures/items/test_chestplate.png deleted file mode 100644 index 8c391c10b130f5bd1e2dab57cdd1bb9741b3392d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhzNd?0 zh=u>z)82dy3IZ&F@9HysFSDLVH`0swAte4y*O*4MvNBsV`Cv*;bu3hMw zX0!P{mCI~*mY#Y4vUfh;oT9A1DaS0AU-K_hF*Nl%e!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94sMpQnps zh=u>tGmcyg3LGwh)7M%#ec!*-FeB(e!|nxkJ2>W_+^sn?=+vQe9OpIpk7dj=mg~7_ zlg^kN_HP-h)Lz-m?-?Q+*VQ&iXvzMceuBlAbNyk}=O)2GlNmf+{an^LB{Ts5!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94sMx2KC^ zh=u>#GlpCY3Ovpi@BP2zSCJnps@^|u6{1-oD!M Date: Tue, 13 Aug 2024 23:27:57 +0200 Subject: [PATCH 07/23] recipes --- changelog | 9 +- .../inventory/recipes/ArcFurnaceRecipes.java | 1 + .../inventory/recipes/ChemplantRecipes.java | 11 +- .../hbm/inventory/recipes/CokerRecipes.java | 2 +- .../recipes/LiquefactionRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 14 +- .../java/com/hbm/main/CraftingManager.java | 2 - .../assets/hbm/models/weapons/_blacksand.obj | 3402 +++++++++++++++++ .../textures/models/weapons/_blacksand.png | Bin 0 -> 3285 bytes 9 files changed, 3424 insertions(+), 19 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/_blacksand.obj create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png diff --git a/changelog b/changelog index 490d989c4..a81d1211a 100644 --- a/changelog +++ b/changelog @@ -18,10 +18,17 @@ * Decreased hardness of slag blocks * Removed legacy circuits * Removed a bunch of random unused items +* UF6 and PuF6 tanks are being phased out, the blocks will remain for now but functionality and recipes have been removed * Centrifuges are now configurable via `hbmMachines.json` * Updated refinery GUI * Crayons now require paper to craft, fixing an issue where some recipes conflict with the dye mixing ones * Halved energy consumption for night vision goggles +* Solid rocket fuel now uses 100mB of nitric acid instead of redstone and niter +* The nitric acid from sulfuric acid recipe in the chemical plant now yields 1,000mB instead of 500 +* Liquefacting niter now yields 750mB instead of 250 +* Increased demand for coking sour gas to 1,000mB instead of 250 + * This means that sour gas now has a lower concentration of sulfur, making reforming competitive again compared to the previously buffed coking + mixing +* Disperser canisters are now listed below grenades in the creative tab ## Fixed * Fixed crash caused by decontaminating items with the radiolysis machine @@ -37,4 +44,4 @@ * Fixed the secure access door taking way longer to craft than any other door * Fixed issues with the spotlight crafting recipes * Fixed various issues with opencomputers integration -* Fixed incorrect armor mod descriptions being shown for cards \ No newline at end of file +* Fixed incorrect armor mod descriptions being shown for cards diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index bd5c8cedc..eaafa0638 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -51,6 +51,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { recipes.put(new OreDictStack(FIBER.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); recipes.put(new OreDictStack(FIBER.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); recipes.put(new OreDictStack(ASBESTOS.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(ASBESTOS.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); recipes.put(new OreDictStack(ASBESTOS.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); recipes.put(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index cca303ab6..06b7f69cd 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -74,7 +74,7 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(92, "NITRIC_ACID", 50) .inputItems(new OreDictStack(KNO.dust())) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500)) - .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 500))); + .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 1_000))); recipes.add(new ChemRecipe(93, "SOLVENT", 50) .inputFluids(new FluidStack(Fluids.NAPHTHA, 500), new FluidStack(Fluids.AROMATICS, 500)) .outputFluids(new FluidStack(Fluids.SOLVENT, 1000))); @@ -208,11 +208,10 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.WATER, 2000)) .outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8))); recipes.add(new ChemRecipe(57, "SOLID_FUEL", 200) - .inputItems( - new ComparableStack(ModItems.solid_fuel, 2), - new OreDictStack(KNO.dust()), - new OreDictStack(REDSTONE.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) + .inputItems(new ComparableStack(ModItems.solid_fuel, 2)) + .inputFluids( + new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0), + new FluidStack(Fluids.NITRIC_ACID, 100)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) .inputFluids(new FluidStack(Fluids.WATER, 4000)) diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 87e1fcc5a..75b97e3a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -63,7 +63,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); //only cokable gas to extract sulfur content - registerRecipe(SOURGAS, 250, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); + registerRecipe(SOURGAS, 1_000, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); registerRecipe(SLOP, 1000, new ItemStack(ModItems.powder_limestone), new FluidStack(COLLOID, 250)); registerRecipe(VITRIOL, 4000, new ItemStack(ModItems.powder_iron), new FluidStack(SULFURIC_ACID, 500)); } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index a86df1e6c..4b2ea8f6b 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -41,7 +41,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); - recipes.put(KNO.dust(), new FluidStack(250, Fluids.NITRIC_ACID)); + recipes.put(KNO.dust(), new FluidStack(750, Fluids.NITRIC_ACID)); recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); //general utility recipes because why not recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b5b5fc653..be8235033 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -6289,14 +6289,6 @@ public class ModItems { GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); //Siphon - GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); - - //Disperser Canister - GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); - GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); - - GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); @@ -7160,6 +7152,12 @@ public class ModItems { GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); GameRegistry.registerItem(weaponized_starblaster_cell, weaponized_starblaster_cell.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9b8c65473..7974c0ac2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -249,8 +249,6 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_difurnace_extension, 1), new Object[] { " C ", "BGB", "BGB", 'C', CU.plate(), 'B', ModItems.ingot_firebrick, 'G', ModBlocks.steel_grate }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', CU.plateCast(), 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', CU.plateCast(), 'F', Item.getItemFromBlock(Blocks.furnace) }); addRecipeAuto(new ItemStack(ModBlocks.red_wire_coated, 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', MINGRADE.wireFine() }); diff --git a/src/main/resources/assets/hbm/models/weapons/_blacksand.obj b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj new file mode 100644 index 000000000..118fd9227 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj @@ -0,0 +1,3402 @@ +# Blender v2.79 (sub 0) OBJ File: 'aberrator.blend' +# www.blender.org +o Cylinder +v 0.000000 3.000000 -1.000000 +v 0.000000 3.000000 4.000000 +v 0.500000 2.866025 -1.000000 +v 0.500000 2.866025 4.000000 +v 0.866025 2.500000 -1.000000 +v 0.866025 2.500000 4.000000 +v 1.000000 2.000000 -1.000000 +v 1.000000 2.000000 4.000000 +v 0.866025 1.500000 -1.000000 +v 0.866025 1.500000 4.000000 +v 0.500000 1.133975 -1.000000 +v 0.500000 1.133975 4.000000 +v 0.000000 1.000000 -1.000000 +v 0.000000 1.000000 4.000000 +v -0.500000 1.133975 -1.000000 +v -0.500000 1.133975 4.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 4.000000 +v -1.000000 2.000000 -1.000000 +v -1.000000 2.000000 4.000000 +v -0.866026 2.500000 -1.000000 +v -0.866026 2.500000 4.000000 +v -0.500000 2.866025 -1.000000 +v -0.500000 2.866025 4.000000 +v 0.000000 2.500000 4.500000 +v 0.000000 2.500000 7.500000 +v 0.250000 2.433013 4.500000 +v 0.250000 2.433012 7.500000 +v 0.433013 2.250000 4.500000 +v 0.433013 2.250000 7.500000 +v 0.500000 2.000000 4.500000 +v 0.500000 2.000000 7.500000 +v 0.433013 1.750000 4.500000 +v 0.433013 1.750000 7.500000 +v 0.250000 1.566987 4.500000 +v 0.250000 1.566987 7.500000 +v 0.000000 1.500000 4.500000 +v 0.000000 1.500000 7.500000 +v -0.250000 1.566987 4.500000 +v -0.250000 1.566987 7.500000 +v -0.433013 1.750000 4.500000 +v -0.433013 1.750000 7.500000 +v -0.500000 2.000000 4.500000 +v -0.500000 2.000000 7.500000 +v -0.433013 2.250000 4.500000 +v -0.433013 2.250000 7.500000 +v -0.250000 2.433012 4.500000 +v -0.250000 2.433012 7.500000 +v 0.000000 2.933013 4.250000 +v 0.000000 2.750000 4.433012 +v 0.000000 1.066987 4.250000 +v 0.000000 1.250000 4.433012 +v 0.933013 2.000000 4.250000 +v 0.750000 2.000000 4.433012 +v -0.933013 2.000000 4.250000 +v -0.750000 2.000000 4.433012 +v 0.466506 2.808013 4.250000 +v 0.375000 2.649519 4.433012 +v -0.466506 1.191987 4.250000 +v -0.375000 1.350481 4.433012 +v 0.808013 1.533494 4.250000 +v 0.649519 1.625000 4.433012 +v -0.808013 2.466506 4.250000 +v -0.649519 2.375000 4.433012 +v 0.808013 2.466506 4.250000 +v 0.649519 2.375000 4.433012 +v -0.808013 1.533494 4.250000 +v -0.649519 1.625000 4.433012 +v 0.466506 1.191987 4.250000 +v 0.375000 1.350481 4.433012 +v -0.466506 2.808013 4.250000 +v -0.375000 2.649519 4.433012 +v 0.000000 2.750000 7.500000 +v -0.375000 2.649519 7.500000 +v -0.649519 2.375000 7.500000 +v -0.750000 2.000000 7.500000 +v -0.649519 1.625000 7.500000 +v -0.375000 1.350481 7.500000 +v 0.000000 1.250000 7.500000 +v 0.375000 1.350481 7.500000 +v 0.649519 1.625000 7.500000 +v 0.750000 1.999999 7.500000 +v 0.649519 2.374999 7.500000 +v 0.375000 2.649519 7.500000 +v 0.000000 2.750000 7.875000 +v -0.375000 2.649519 7.875000 +v -0.649519 2.375000 7.875000 +v -0.750000 2.000000 7.875000 +v -0.649519 1.625000 7.875000 +v -0.375000 1.350481 7.875000 +v 0.000000 1.250000 7.875000 +v 0.375000 1.350481 7.875000 +v 0.649519 1.625000 7.875000 +v 0.750000 1.999999 7.875000 +v 0.649519 2.374999 7.875000 +v 0.375000 2.649519 7.875000 +v 0.000000 2.750000 8.375000 +v -0.375000 2.649519 8.375000 +v -0.649519 2.375000 8.375000 +v -0.750000 2.000000 8.375000 +v -0.649519 1.625000 8.375000 +v -0.375000 1.350481 8.375000 +v 0.000000 1.250000 8.375000 +v 0.375000 1.350481 8.375000 +v 0.649519 1.625000 8.375000 +v 0.750000 1.999999 8.375000 +v 0.649519 2.374999 8.375000 +v 0.375000 2.649519 8.375000 +v 0.000000 2.750000 8.750000 +v -0.375000 2.649519 8.750000 +v -0.649519 2.375000 8.750000 +v -0.750000 2.000000 8.750000 +v -0.649519 1.625000 8.750000 +v -0.375000 1.350481 8.750000 +v 0.000000 1.250000 8.750000 +v 0.375000 1.350481 8.750000 +v 0.649519 1.625000 8.750000 +v 0.750000 1.999999 8.750000 +v 0.649519 2.374999 8.750000 +v 0.375000 2.649519 8.750000 +v 0.000000 2.999999 7.875000 +v -0.500000 2.866025 7.875000 +v -0.866025 2.499999 7.875000 +v -1.000000 1.999999 7.875000 +v -0.866025 1.499999 7.875000 +v -0.500000 1.133974 7.875000 +v 0.000000 0.999999 7.875000 +v 0.500000 1.133973 7.875000 +v 0.866025 1.499999 7.875000 +v 1.000000 1.999999 7.875000 +v 0.866025 2.499999 7.875000 +v 0.500000 2.866024 7.875000 +v 0.000000 2.999999 8.375000 +v -0.500000 2.866025 8.375000 +v -0.866025 2.499999 8.375000 +v -1.000000 1.999999 8.375000 +v -0.866025 1.499999 8.375000 +v -0.500000 1.133974 8.375000 +v 0.000000 0.999999 8.375000 +v 0.500000 1.133973 8.375000 +v 0.866025 1.499999 8.375000 +v 1.000000 1.999999 8.375000 +v 0.866025 2.499999 8.375000 +v 0.500000 2.866024 8.375000 +v 0.000000 2.375000 8.750000 +v -0.187500 2.324759 8.750000 +v -0.324759 2.187500 8.750000 +v -0.375000 2.000000 8.750000 +v -0.324759 1.812500 8.750000 +v -0.187500 1.675241 8.750000 +v 0.000000 1.625000 8.750000 +v 0.187500 1.675241 8.750000 +v 0.324759 1.812500 8.750000 +v 0.375000 2.000000 8.750000 +v 0.324759 2.187500 8.750000 +v 0.187500 2.324759 8.750000 +v 0.000000 2.375000 8.250000 +v -0.187500 2.324759 8.250000 +v -0.324759 2.187500 8.250000 +v -0.375000 2.000000 8.250000 +v -0.324759 1.812500 8.250000 +v -0.187500 1.675241 8.250000 +v 0.000000 1.625000 8.250000 +v 0.187500 1.675241 8.250000 +v 0.324759 1.812500 8.250000 +v 0.375000 2.000000 8.250000 +v 0.324759 2.187500 8.250000 +v 0.187500 2.324759 8.250000 +v 0.000000 2.500000 -1.000000 +v 0.250000 2.433013 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.250000 1.566988 -1.000000 +v 0.000000 1.500000 -1.000000 +v -0.250000 1.566987 -1.000000 +v -0.433013 1.750000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 2.250000 -1.000000 +v -0.250000 2.433012 -1.000000 +v 0.000000 2.500000 2.000000 +v 0.250000 2.433013 2.000000 +v 0.433012 2.250000 2.000000 +v 0.500000 2.000000 2.000000 +v 0.433012 1.750000 2.000000 +v 0.250000 1.566988 2.000000 +v 0.000000 1.500000 2.000000 +v -0.250000 1.566988 2.000000 +v -0.433013 1.750000 2.000000 +v -0.500000 2.000000 2.000000 +v -0.433013 2.250000 2.000000 +v -0.250000 2.433013 2.000000 +v 0.000000 3.000000 -2.000000 +v 0.000000 2.500000 -2.649519 +v -0.250000 2.433012 1.500000 +v -0.250000 2.433012 -1.000000 +v 0.500000 2.866025 -2.000000 +v 0.433012 2.750000 -2.375000 +v 0.250000 2.433013 -2.649519 +v -0.187500 2.324759 2.000000 +v -0.433013 2.250000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 1.750000 -1.000000 +v 0.866025 2.500000 -2.000000 +v 0.750000 2.433013 -2.375000 +v 0.433012 2.250000 -2.649519 +v -0.324759 2.187500 2.000000 +v -0.375000 2.000000 2.000000 +v -0.250000 1.566987 -1.000000 +v 0.000000 1.500000 -1.000000 +v 1.000000 2.000000 -2.000000 +v 0.866025 2.000000 -2.375000 +v 0.500000 2.000000 -2.649519 +v -0.324759 1.812500 2.000000 +v -0.187500 1.675241 2.000000 +v 0.250000 1.566988 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.866025 1.500000 -2.000000 +v 0.750000 1.566988 -2.375000 +v 0.433012 1.750000 -2.649519 +v 0.000000 1.625000 2.000000 +v 0.187500 1.675241 2.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 1.133975 -2.000000 +v 0.433012 1.250000 -2.375000 +v 0.250000 1.566988 -2.649519 +v 0.324759 1.812500 2.000000 +v 0.375000 2.000000 2.000000 +v 0.250000 2.433013 -1.000000 +v 0.000000 2.500000 -1.000000 +v 0.000000 1.000000 -2.000000 +v 0.000000 1.133975 -2.375000 +v 0.000000 1.500000 -2.649519 +v 0.000000 2.000000 -2.750000 +v 0.324759 2.187500 2.000000 +v -0.500000 2.866025 -1.000000 +v -0.866025 2.500000 -1.000000 +v -0.500000 1.133975 -2.000000 +v -0.433013 1.250000 -2.375000 +v -0.250000 1.566988 -2.649519 +v 0.187500 2.324759 2.000000 +v 0.000000 2.375000 2.000000 +v -1.000000 2.000000 -1.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 -2.000000 +v -0.750000 1.566988 -2.375000 +v -0.433013 1.750000 -2.649519 +v 0.250000 2.433013 1.500000 +v 0.433012 2.250000 1.500000 +v -0.500000 1.133975 -1.000000 +v 0.000000 1.000000 -1.000000 +v -1.000000 2.000000 -2.000000 +v -0.866025 2.000000 -2.375000 +v -0.500000 2.000000 -2.649519 +v 0.500000 2.000000 1.500000 +v 0.433012 1.750000 1.500000 +v 0.500000 1.133975 -1.000000 +v 0.866025 1.500000 -1.000000 +v -0.866025 2.500000 -2.000000 +v -0.750000 2.433013 -2.375000 +v -0.433013 2.250000 -2.649519 +v 0.250000 1.566988 1.500000 +v 0.000000 1.500000 1.500000 +v 1.000000 2.000000 -1.000000 +v 0.866025 2.500000 -1.000000 +v -0.500000 2.866025 -2.000000 +v -0.433013 2.750000 -2.375000 +v -0.250000 2.433013 -2.649519 +v -0.250000 1.566987 1.500000 +v -0.433013 1.750000 1.500000 +v 0.500000 2.866025 -1.000000 +v 0.000000 3.000000 -1.000000 +v -0.500000 2.000000 1.500000 +v 0.000000 2.866025 -2.375000 +v -0.433013 2.250000 1.500000 +v 0.000000 2.500000 1.500000 +v -0.250000 1.000000 -1.125000 +v 0.250000 1.000000 -1.125000 +v -0.250000 1.000000 -2.500000 +v 0.250000 1.000000 -2.500000 +v -0.250000 -1.500000 -3.000000 +v -0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -3.000000 +v -0.250000 1.375000 -2.500000 +v -0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -2.500000 +v 0.500000 1.000000 -1.375000 +v 0.500000 1.000000 -2.250000 +v 0.500000 -1.500000 -1.875000 +v 0.500000 -1.500000 -2.750000 +v 0.500000 1.375000 -1.375000 +v 0.500000 1.375000 -2.250000 +v -0.500000 1.000000 -2.250000 +v -0.500000 1.000000 -1.375000 +v -0.500000 -1.500000 -2.750000 +v -0.500000 -1.500000 -1.875000 +v -0.500000 1.375000 -2.250000 +v -0.500000 1.375000 -1.375000 +v -0.125000 2.937500 -0.750000 +v 0.125000 2.937500 -0.750000 +v -0.125000 2.937500 -1.000000 +v 0.125000 2.937500 -1.000000 +v -0.125000 3.062500 -0.750000 +v 0.125000 3.062500 -0.750000 +v -0.125000 3.062500 -1.250000 +v 0.125000 3.062500 -1.250000 +v -0.125000 0.250000 -1.375000 +v 0.125000 0.250000 -1.375000 +v -0.125000 0.250000 -0.875000 +v 0.125000 0.250000 -0.875000 +v -0.125000 1.125000 -1.125000 +v 0.125000 1.125000 -1.125000 +v -0.812500 2.500000 3.500000 +v -0.812500 1.500000 3.500000 +v -0.812500 2.500000 0.500000 +v -0.812500 1.500000 0.500000 +v -1.312500 2.500000 0.500000 +v -1.312500 2.500000 3.500000 +v -1.312500 1.500000 3.500000 +v -1.312500 1.500000 0.500000 +v -1.125000 2.375000 3.500000 +v -1.213388 2.338388 3.500000 +v -1.250000 2.250000 3.500000 +v -1.213388 2.161612 3.500000 +v -1.125000 2.125000 3.500000 +v -1.036612 2.161612 3.500000 +v -1.000000 2.250000 3.500000 +v -1.036612 2.338388 3.500000 +v -1.125000 2.375000 4.250000 +v -1.213388 2.338388 4.250000 +v -1.250000 2.250000 4.250000 +v -1.213388 2.161612 4.250000 +v -1.125000 2.125000 4.250000 +v -1.036612 2.161612 4.250000 +v -1.000000 2.250000 4.250000 +v -1.036612 2.338388 4.250000 +v -0.750000 2.375000 5.125000 +v -0.838388 2.338388 5.125000 +v -0.875000 2.250000 5.125000 +v -0.838388 2.161612 5.125000 +v -0.750000 2.125000 5.125000 +v -0.661612 2.161612 5.125000 +v -0.625000 2.250000 5.125000 +v -0.661612 2.338388 5.125000 +v -0.750000 2.375000 7.875000 +v -0.838388 2.338388 7.875000 +v -0.875000 2.250000 7.875000 +v -0.838388 2.161612 7.875000 +v -0.750000 2.125000 7.875000 +v -0.661612 2.161612 7.875000 +v -0.625000 2.250000 7.875000 +v -0.661612 2.338388 7.875000 +v -1.125000 1.875000 3.500000 +v -1.213388 1.838388 3.500000 +v -1.250000 1.750000 3.500000 +v -1.213388 1.661612 3.500000 +v -1.125000 1.625000 3.500000 +v -1.036612 1.661612 3.500000 +v -1.000000 1.750000 3.500000 +v -1.036612 1.838388 3.500000 +v -1.125000 1.875000 4.250000 +v -1.213388 1.838388 4.250000 +v -1.250000 1.750000 4.250000 +v -1.213388 1.661612 4.250000 +v -1.125000 1.625000 4.250000 +v -1.036612 1.661612 4.250000 +v -1.000000 1.750000 4.250000 +v -1.036612 1.838388 4.250000 +v -0.750000 1.875000 5.125000 +v -0.838388 1.838388 5.125000 +v -0.875000 1.750000 5.125000 +v -0.838388 1.661612 5.125000 +v -0.750000 1.625000 5.125000 +v -0.661612 1.661612 5.125000 +v -0.625000 1.750000 5.125000 +v -0.661612 1.838388 5.125000 +v -0.750000 1.875000 7.875000 +v -0.838388 1.838388 7.875000 +v -0.875000 1.750000 7.875000 +v -0.838388 1.661612 7.875000 +v -0.750000 1.625000 7.875000 +v -0.661612 1.661612 7.875000 +v -0.625000 1.750000 7.875000 +v -0.661612 1.838388 7.875000 +v 1.312500 2.500000 2.750000 +v 1.312500 1.500000 2.750000 +v 0.812500 2.500000 2.750000 +v 0.812500 1.500000 2.750000 +v 1.312500 2.500000 1.750000 +v 1.312500 1.500000 1.750000 +v 0.812500 2.500000 1.750000 +v 0.812500 1.500000 1.750000 +v 1.312500 2.375000 2.625000 +v 1.312500 1.625000 2.625000 +v 1.312500 2.375000 1.875000 +v 1.312500 1.625000 1.875000 +v 1.562500 2.250000 2.500000 +v 1.562500 1.750000 2.500000 +v 1.562500 2.250000 2.000000 +v 1.562500 1.750000 2.000000 +v 0.750000 2.974112 2.411612 +v 0.750000 2.937500 2.500000 +v 0.750000 2.974112 2.588388 +v 0.750000 3.062500 2.625000 +v 0.750000 3.062500 2.375000 +v 0.750000 3.150888 2.411612 +v 0.750000 3.187500 2.500000 +v 0.750000 3.150888 2.588388 +v -0.750000 3.150888 2.411612 +v -0.750000 3.187500 2.500000 +v -0.750000 3.150888 2.588388 +v -0.750000 3.062500 2.625000 +v -0.750000 3.062500 2.375000 +v -0.750000 2.974112 2.411612 +v -0.750000 2.937500 2.500000 +v -0.750000 2.974112 2.588388 +v 0.974112 2.500000 2.088388 +v 0.937500 2.500000 2.000000 +v 0.974112 2.500000 1.911612 +v 1.062500 2.500000 1.875000 +v 1.062500 2.500000 2.125000 +v 1.150888 2.500000 2.088388 +v 1.187500 2.500000 2.000000 +v 1.150888 2.500000 1.911612 +v 0.974112 2.750000 2.088388 +v 0.937500 2.750000 2.000000 +v 0.974112 2.750000 1.911612 +v 1.062500 2.750000 1.875000 +v 1.062500 2.750000 2.125000 +v 1.150888 2.750000 2.088388 +v 1.187500 2.750000 2.000000 +v 1.150888 2.750000 1.911612 +v -0.974112 2.750000 2.411612 +v -0.937500 2.750000 2.500000 +v -0.974112 2.750000 2.588388 +v -1.062500 2.750000 2.625000 +v -1.062500 2.750000 2.375000 +v -1.150888 2.750000 2.411612 +v -1.187500 2.750000 2.500000 +v -1.150888 2.750000 2.588388 +v -0.974112 2.500000 2.411612 +v -0.937500 2.500000 2.500000 +v -0.974112 2.500000 2.588388 +v -1.062500 2.500000 2.625000 +v -1.062500 2.500000 2.375000 +v -1.150888 2.500000 2.411612 +v -1.187500 2.500000 2.500000 +v -1.150888 2.500000 2.588388 +v -1.150888 2.500000 2.088388 +v -1.187500 2.500000 2.000000 +v -1.150888 2.500000 1.911612 +v -1.062500 2.500000 1.875000 +v -1.062500 2.500000 2.125000 +v -0.974112 2.500000 2.088388 +v -0.937500 2.500000 2.000000 +v -0.974112 2.500000 1.911612 +v -1.150888 2.750000 2.088388 +v -1.187500 2.750000 2.000000 +v -1.150888 2.750000 1.911612 +v -1.062500 2.750000 1.875000 +v -1.062500 2.750000 2.125000 +v -0.974112 2.750000 2.088388 +v -0.937500 2.750000 2.000000 +v -0.974112 2.750000 1.911612 +v 1.150888 2.750000 2.411612 +v 1.187500 2.750000 2.500000 +v 1.150888 2.750000 2.588388 +v 1.062500 2.750000 2.625000 +v 1.062500 2.750000 2.375000 +v 0.974112 2.750000 2.411612 +v 0.937500 2.750000 2.500000 +v 0.974112 2.750000 2.588388 +v -0.750000 2.974112 2.088388 +v -0.750000 2.937500 2.000000 +v -0.750000 2.974112 1.911612 +v -0.750000 3.062500 1.875000 +v -0.750000 3.062500 2.125000 +v -0.750000 3.150888 2.088388 +v -0.750000 3.187500 2.000000 +v -0.750000 3.150888 1.911612 +v 1.150888 2.500000 2.411612 +v 1.187500 2.500000 2.500000 +v 1.150888 2.500000 2.588388 +v 1.062500 2.500000 2.625000 +v 1.062500 2.500000 2.375000 +v 0.974112 2.500000 2.411612 +v 0.937500 2.500000 2.500000 +v 0.974112 2.500000 2.588388 +v 0.750000 3.150888 2.088388 +v 0.750000 3.187500 2.000000 +v 0.750000 3.150888 1.911612 +v 0.750000 3.062500 1.875000 +v 0.750000 3.062500 2.125000 +v 0.750000 2.974112 2.088388 +v 0.750000 2.937500 2.000000 +v 0.750000 2.974112 1.911612 +v 0.530330 1.646447 4.375000 +v 0.353553 1.469670 4.375000 +v 0.176776 1.646447 4.375000 +v 0.353553 1.823223 4.375000 +v 0.176776 1.646447 7.500000 +v 0.353553 1.823223 7.500000 +v 0.353553 1.469670 7.500000 +v 0.530330 1.646447 7.500000 +v -0.530330 2.353554 4.375000 +v -0.353553 2.530330 4.375000 +v -0.176777 2.353554 4.375000 +v -0.353553 2.176777 4.375000 +v -0.176777 2.353554 7.500000 +v -0.353553 2.176777 7.500000 +v -0.353553 2.530330 7.500000 +v -0.530330 2.353554 7.500000 +v -0.353554 1.469670 4.375000 +v -0.530330 1.646447 4.375000 +v -0.353554 1.823224 4.375000 +v -0.176777 1.646447 4.375000 +v -0.353554 1.823224 7.500000 +v -0.176777 1.646447 7.500000 +v -0.530330 1.646447 7.500000 +v -0.353554 1.469670 7.500000 +v 0.353554 2.530330 4.375000 +v 0.530330 2.353554 4.375000 +v 0.353554 2.176777 4.375000 +v 0.176777 2.353553 4.375000 +v 0.353554 2.176777 7.500000 +v 0.176777 2.353553 7.500000 +v 0.530330 2.353554 7.500000 +v 0.353554 2.530330 7.500000 +v -1.062500 2.500000 0.690000 +v -1.193315 2.500000 0.744185 +v -1.247500 2.500000 0.875000 +v -1.193315 2.500000 1.005815 +v -1.062500 2.500000 1.060000 +v -0.931685 2.500000 1.005815 +v -0.877500 2.500000 0.875000 +v -0.931685 2.500000 0.744185 +v -1.062500 3.250000 0.690000 +v -1.193315 3.250000 0.744185 +v -1.247500 3.250000 0.875000 +v -1.193315 3.250000 1.005815 +v -1.062500 3.250000 1.060000 +v -0.931685 3.250000 1.005815 +v -0.877500 3.250000 0.875000 +v -0.931685 3.250000 0.744185 +v -0.931685 3.250000 1.244185 +v -0.877500 3.250000 1.375000 +v -0.931685 3.250000 1.505815 +v -1.062500 3.250000 1.560000 +v -1.193315 3.250000 1.505815 +v -1.247500 3.250000 1.375000 +v -1.193315 3.250000 1.244185 +v -1.062500 3.250000 1.190000 +v -0.931685 2.500000 1.244185 +v -0.877500 2.500000 1.375000 +v -0.931685 2.500000 1.505815 +v -1.062500 2.500000 1.560000 +v -1.193315 2.500000 1.505815 +v -1.247500 2.500000 1.375000 +v -1.193315 2.500000 1.244185 +v -1.062500 2.500000 1.190000 +v -1.062500 2.500000 2.940000 +v -1.193315 2.500000 2.994185 +v -1.247500 2.500000 3.125000 +v -1.193315 2.500000 3.255815 +v -1.062500 2.500000 3.310000 +v -0.931685 2.500000 3.255815 +v -0.877500 2.500000 3.125000 +v -0.931685 2.500000 2.994185 +v -1.062500 3.250000 2.940000 +v -1.193315 3.250000 2.994185 +v -1.247500 3.250000 3.125000 +v -1.193315 3.250000 3.255815 +v -1.062500 3.250000 3.310000 +v -0.931685 3.250000 3.255815 +v -0.877500 3.250000 3.125000 +v -0.931685 3.250000 2.994185 +v -1.437500 2.375000 1.000000 +v -1.570083 2.320082 1.000000 +v -1.625000 2.187500 1.000000 +v -1.570083 2.054917 1.000000 +v -1.437500 2.000000 1.000000 +v -1.304917 2.054917 1.000000 +v -1.250000 2.187500 1.000000 +v -1.304917 2.320082 1.000000 +v -1.437500 2.375000 2.000000 +v -1.570083 2.320082 2.000000 +v -1.625000 2.187500 2.000000 +v -1.570083 2.054917 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 2.054917 2.000000 +v -1.250000 2.187500 2.000000 +v -1.304917 2.320082 2.000000 +v -1.304917 1.945082 2.000000 +v -1.250000 1.812500 2.000000 +v -1.304917 1.679917 2.000000 +v -1.437500 1.625000 2.000000 +v -1.570083 1.679917 2.000000 +v -1.625000 1.812500 2.000000 +v -1.570083 1.945082 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 1.945082 1.000000 +v -1.250000 1.812500 1.000000 +v -1.304917 1.679917 1.000000 +v -1.437500 1.625000 1.000000 +v -1.570083 1.679917 1.000000 +v -1.625000 1.812500 1.000000 +v -1.570083 1.945082 1.000000 +v -1.437500 2.000000 1.000000 +v -1.312500 2.437500 1.000000 +v -1.312500 1.562500 1.000000 +v -1.312500 2.437500 0.750000 +v -1.312500 1.562500 0.750000 +v -1.687500 2.437500 0.875000 +v -1.687500 2.437500 1.000000 +v -1.687500 1.562500 1.000000 +v -1.687500 1.562500 0.875000 +v -1.312500 2.437500 2.250000 +v -1.312500 1.562500 2.250000 +v -1.312500 2.437500 2.000000 +v -1.312500 1.562500 2.000000 +v -1.687500 2.437500 2.000000 +v -1.687500 2.437500 2.125000 +v -1.687500 1.562500 2.125000 +v -1.687500 1.562500 2.000000 +v 0.000000 2.375000 -2.625000 +v -0.187500 2.324760 -2.625000 +v -0.324759 2.187500 -2.625000 +v -0.375000 2.000000 -2.625000 +v -0.324759 1.812500 -2.625000 +v -0.187500 1.675241 -2.625000 +v 0.000000 1.625000 -2.625000 +v 0.187500 1.675241 -2.625000 +v 0.324759 1.812500 -2.625000 +v 0.375000 2.000000 -2.625000 +v 0.324759 2.187500 -2.625000 +v 0.187500 2.324760 -2.625000 +v 0.000000 2.375000 -3.000000 +v -0.187500 2.324760 -3.000000 +v -0.324759 2.187500 -3.000000 +v -0.375000 2.000000 -3.000000 +v -0.324759 1.812500 -3.000000 +v -0.187500 1.675241 -3.000000 +v 0.000000 1.625000 -3.000000 +v 0.187500 1.675241 -3.000000 +v 0.324759 1.812500 -3.000000 +v 0.375000 2.000000 -3.000000 +v 0.324759 2.187500 -3.000000 +v 0.187500 2.324760 -3.000000 +v -1.312500 2.250000 3.250000 +v -1.312500 1.750000 3.250000 +v -1.312500 2.250000 2.125000 +v -1.312500 1.750000 2.125000 +v -1.562500 2.250000 2.125000 +v -1.562500 2.250000 3.250000 +v -1.562500 1.750000 3.250000 +v -1.562500 1.750000 2.125000 +v -0.093750 2.162380 -2.875000 +v 0.000000 2.187500 -2.875000 +v -0.162380 2.093750 -2.875000 +v -0.187500 2.000000 -2.875000 +v -0.162380 1.906250 -2.875000 +v -0.093750 1.837620 -2.875000 +v 0.000000 1.812500 -2.875000 +v 0.093750 1.837620 -2.875000 +v 0.162380 1.906250 -2.875000 +v 0.187500 2.000000 -2.875000 +v 0.162380 2.093750 -2.875000 +v 0.093750 2.162380 -2.875000 +v 1.250000 0.875000 -0.125000 +v -1.250000 0.875000 -0.125000 +v 1.250000 0.963389 -0.088388 +v -1.250000 0.963389 -0.088388 +v 1.250000 1.000000 0.000000 +v -1.250000 1.000000 0.000000 +v 1.250000 0.963389 0.088388 +v -1.250000 0.963389 0.088388 +v 1.250000 0.875000 0.125000 +v -1.250000 0.875000 0.125000 +v 1.250000 0.786612 0.088388 +v -1.250000 0.786612 0.088388 +v 1.250000 0.750000 0.000000 +v -1.250000 0.750000 0.000000 +v 1.250000 0.786612 -0.088388 +v -1.250000 0.786612 -0.088388 +v 0.812500 1.750000 -1.750000 +v 0.812500 2.250000 -1.750000 +v 0.812500 2.250000 -1.125000 +v 0.812500 1.750000 -1.125000 +v 1.062500 1.750000 -1.750000 +v 1.062500 2.250000 -1.125000 +v 1.062500 2.250000 -1.750000 +v 1.062500 1.750000 -1.125000 +v 1.187500 1.750000 -1.625000 +v 1.187500 2.250000 -1.625000 +v 1.062500 1.750000 -0.187500 +v 1.187500 1.750000 -0.187500 +v 1.062500 0.687500 -0.062500 +v 1.062500 0.812500 -0.187500 +v 1.187500 0.812500 -0.187500 +v 1.187500 0.687500 -0.062500 +v 1.062500 0.812500 0.187500 +v 1.062500 0.687500 0.062500 +v 1.187500 0.687500 0.062500 +v 1.187500 0.812500 0.187500 +v 1.062500 2.250000 -0.062500 +v 1.062500 2.000000 0.187500 +v 1.187500 2.000000 0.187500 +v 1.187500 2.250000 -0.062500 +v -0.562500 0.687500 -0.062500 +v -0.562500 0.812500 -0.187500 +v -0.562500 0.812500 0.187500 +v -0.562500 0.687500 0.062500 +v 0.562500 0.687500 -0.062500 +v 0.562500 0.812500 -0.187500 +v 0.562500 0.812500 0.187500 +v 0.562500 0.687500 0.062500 +v -0.562500 1.312500 -0.187500 +v -0.562500 1.312500 0.187500 +v 0.562500 1.312500 -0.187500 +v 0.562500 1.312500 0.187500 +v -0.812500 1.750000 -1.750000 +v -0.812500 2.250000 -1.750000 +v -0.812500 2.250000 -1.125000 +v -0.812500 1.750000 -1.125000 +v -1.062500 1.750000 -1.750000 +v -1.062500 2.250000 -1.125000 +v -1.062500 2.250000 -1.750000 +v -1.062500 1.750000 -1.125000 +v -1.187500 1.750000 -1.625000 +v -1.187500 2.250000 -1.625000 +v -1.062500 1.750000 -0.187500 +v -1.187500 1.750000 -0.187500 +v -1.062500 0.687500 -0.062500 +v -1.062500 0.812500 -0.187500 +v -1.187500 0.812500 -0.187500 +v -1.187500 0.687500 -0.062500 +v -1.062500 0.812500 0.187500 +v -1.062500 0.687500 0.062500 +v -1.187500 0.687500 0.062500 +v -1.187500 0.812500 0.187500 +v -1.062500 2.250000 -0.062500 +v -1.062500 2.000000 0.187500 +v -1.187500 2.000000 0.187500 +v -1.187500 2.250000 -0.062500 +vt 0.460000 0.266667 +vt 0.486667 0.226667 +vt 0.486667 0.253333 +vt 0.153333 0.546667 +vt 0.140000 0.580000 +vt 0.140000 0.540000 +vt 0.153333 0.493333 +vt 0.140000 0.526667 +vt 0.140000 0.486667 +vt 0.153333 0.440000 +vt 0.140000 0.473333 +vt 0.140000 0.433333 +vt 0.153333 0.386667 +vt 0.140000 0.420000 +vt 0.140000 0.380000 +vt 0.153333 0.333333 +vt 0.140000 0.366667 +vt 0.140000 0.326667 +vt 0.153333 0.280000 +vt 0.140000 0.313333 +vt 0.140000 0.273333 +vt 0.153333 0.226667 +vt 0.140000 0.260000 +vt 0.140000 0.220000 +vt 0.153333 0.173333 +vt 0.140000 0.206667 +vt 0.140000 0.166667 +vt 0.153333 0.120000 +vt 0.140000 0.153333 +vt 0.140000 0.113333 +vt 0.153333 0.066667 +vt 0.140000 0.100000 +vt 0.140000 0.060000 +vt 0.153333 0.040000 +vt 0.140000 0.006667 +vt 0.153333 0.013333 +vt 0.153333 0.600000 +vt 0.140000 0.633333 +vt 0.140000 0.593333 +vt 0.120000 0.273333 +vt 0.106667 0.320000 +vt 0.106667 0.266667 +vt 0.120000 0.220000 +vt 0.106667 0.213333 +vt 0.120000 0.206667 +vt 0.106667 0.160000 +vt 0.120000 0.166667 +vt 0.120000 0.113333 +vt 0.106667 0.106667 +vt 0.120000 0.060000 +vt 0.106667 0.053333 +vt 0.120000 0.006667 +vt 0.106667 0.000000 +vt 0.120000 0.633333 +vt 0.106667 0.586667 +vt 0.120000 0.593333 +vt 0.120000 0.580000 +vt 0.106667 0.533333 +vt 0.120000 0.540000 +vt 0.120000 0.526667 +vt 0.106667 0.480000 +vt 0.120000 0.486667 +vt 0.120000 0.473333 +vt 0.106667 0.426667 +vt 0.120000 0.433333 +vt 0.120000 0.420000 +vt 0.106667 0.373333 +vt 0.120000 0.380000 +vt 0.120000 0.366667 +vt 0.120000 0.326667 +vt 0.080000 0.160000 +vt 0.066667 0.206667 +vt 0.066667 0.166667 +vt 0.080000 0.213333 +vt 0.066667 0.260000 +vt 0.066667 0.220000 +vt 0.066667 0.273333 +vt 0.080000 0.320000 +vt 0.066667 0.313333 +vt 0.066667 0.366667 +vt 0.066667 0.326667 +vt 0.080000 0.373333 +vt 0.066667 0.420000 +vt 0.066667 0.380000 +vt 0.080000 0.426667 +vt 0.066667 0.473333 +vt 0.066667 0.433333 +vt 0.080000 0.480000 +vt 0.066667 0.526667 +vt 0.066667 0.486667 +vt 0.080000 0.533333 +vt 0.066667 0.580000 +vt 0.066667 0.540000 +vt 0.080000 0.586667 +vt 0.066667 0.633333 +vt 0.066667 0.593333 +vt 0.066667 0.006667 +vt 0.080000 0.053333 +vt 0.066667 0.046667 +vt 0.066667 0.060000 +vt 0.080000 0.106667 +vt 0.066667 0.100000 +vt 0.066667 0.113333 +vt 0.066667 0.153333 +vt 0.046667 0.046667 +vt 0.026667 0.013333 +vt 0.046667 0.006667 +vt 0.046667 0.526667 +vt 0.026667 0.493333 +vt 0.046667 0.486667 +vt 0.046667 0.220000 +vt 0.026667 0.246667 +vt 0.026667 0.226667 +vt 0.046667 0.366667 +vt 0.026667 0.333333 +vt 0.046667 0.326667 +vt 0.046667 0.100000 +vt 0.026667 0.066667 +vt 0.046667 0.060000 +vt 0.046667 0.580000 +vt 0.026667 0.546667 +vt 0.046667 0.540000 +vt 0.046667 0.313333 +vt 0.026667 0.280000 +vt 0.046667 0.273333 +vt 0.046667 0.420000 +vt 0.026667 0.386667 +vt 0.046667 0.380000 +vt 0.046667 0.113333 +vt 0.026667 0.140000 +vt 0.026667 0.120000 +vt 0.046667 0.633333 +vt 0.026667 0.600000 +vt 0.046667 0.593333 +vt 0.046667 0.473333 +vt 0.026667 0.440000 +vt 0.046667 0.433333 +vt 0.046667 0.206667 +vt 0.026667 0.173333 +vt 0.046667 0.166667 +vt 0.197303 0.699979 +vt 0.180000 0.719959 +vt 0.162697 0.660021 +vt 0.460000 0.480000 +vt 0.486667 0.440000 +vt 0.486667 0.466667 +vt 0.486667 0.520000 +vt 0.460000 0.533333 +vt 0.486667 0.573333 +vt 0.460000 0.586667 +vt 0.460000 0.640000 +vt 0.486667 0.600000 +vt 0.486667 0.626667 +vt 0.460000 0.053333 +vt 0.486667 0.013333 +vt 0.486667 0.040000 +vt 0.486667 0.093333 +vt 0.460000 0.106667 +vt 0.460000 0.160000 +vt 0.486667 0.120000 +vt 0.486667 0.146667 +vt 0.460000 0.373333 +vt 0.486667 0.333333 +vt 0.486667 0.360000 +vt 0.460000 0.320000 +vt 0.486667 0.280000 +vt 0.486667 0.306667 +vt 0.486667 0.200000 +vt 0.460000 0.213333 +vt 0.486667 0.413333 +vt 0.460000 0.426667 +vt 0.159989 0.693333 +vt 0.146661 0.739503 +vt 0.106677 0.693333 +vt 0.732697 0.846687 +vt 0.767303 0.846687 +vt 0.750000 0.906626 +vt 0.773468 0.906787 +vt 0.796667 0.826426 +vt 0.819865 0.906787 +vt 0.099472 0.693390 +vt 0.099472 0.799943 +vt 0.053333 0.853219 +vt 0.840000 0.106667 +vt 0.826667 0.080000 +vt 0.840000 0.000000 +vt 0.153333 0.840000 +vt 0.180000 0.813333 +vt 0.180000 0.840000 +vt 0.973333 0.493333 +vt 0.986667 0.440000 +vt 0.986667 0.493333 +vt 0.986667 0.413333 +vt 0.973333 0.440000 +vt 0.973333 0.413333 +vt 0.973333 0.506667 +vt 0.986667 0.506667 +vt 0.966667 0.466667 +vt 0.966667 0.493333 +vt 0.993333 0.466667 +vt 0.106667 0.840000 +vt 0.153333 0.813333 +vt 0.166667 0.720000 +vt 0.166667 0.933333 +vt 0.226667 0.800000 +vt 0.386667 0.693333 +vt 0.386667 0.800000 +vt 0.386667 0.640000 +vt 0.226667 0.693333 +vt 0.226667 0.640000 +vt 0.226667 0.853333 +vt 0.386667 0.853333 +vt 0.200000 0.693333 +vt 0.200000 0.800000 +vt 0.413333 0.800000 +vt 0.413333 0.693333 +vt 0.873333 0.586667 +vt 0.846667 0.480000 +vt 0.873333 0.480000 +vt 0.966667 0.480000 +vt 0.940000 0.586667 +vt 0.940000 0.480000 +vt 0.880000 0.600000 +vt 0.933333 0.653333 +vt 0.880000 0.653333 +vt 0.893333 0.506667 +vt 0.926667 0.480000 +vt 0.920000 0.506667 +vt 0.880000 0.413333 +vt 0.933333 0.466667 +vt 0.880000 0.466667 +vt 0.926667 0.586667 +vt 0.933333 0.600000 +vt 0.933333 0.493333 +vt 0.880000 0.573333 +vt 0.886667 0.480000 +vt 0.920000 0.560000 +vt 0.893333 0.560000 +vt 0.933333 0.573333 +vt 0.886667 0.586667 +vt 0.880000 0.493333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.053490 0.953333 +vt 0.063333 0.933646 +vt 0.073177 0.953333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.480000 0.773333 +vt 0.486667 0.680000 +vt 0.486667 0.773333 +vt 0.433333 0.773333 +vt 0.440000 0.680000 +vt 0.440000 0.773333 +vt 0.440000 0.813333 +vt 0.413333 0.680000 +vt 0.413333 0.773333 +vt 0.460000 0.773333 +vt 0.460000 0.680000 +vt 0.440000 0.640000 +vt 0.433333 0.680000 +vt 0.426667 0.640000 +vt 0.480000 0.813333 +vt 0.493333 0.813333 +vt 0.460000 0.680000 +vt 0.460000 0.773333 +vt 0.506667 0.773333 +vt 0.506667 0.680000 +vt 0.480000 0.640000 +vt 0.480000 0.680000 +vt 0.773333 0.493333 +vt 0.833333 0.440000 +vt 0.833333 0.493333 +vt 0.833333 0.413333 +vt 0.773333 0.440000 +vt 0.773333 0.413333 +vt 0.773333 0.520000 +vt 0.833333 0.520000 +vt 0.791947 0.530054 +vt 0.791947 0.549945 +vt 0.774720 0.549945 +vt 0.846667 0.493333 +vt 0.846667 0.440000 +vt 0.793333 0.800031 +vt 0.799985 0.813334 +vt 0.793333 0.826636 +vt 0.788646 0.777292 +vt 0.793333 0.773409 +vt 0.798021 0.777292 +vt 0.556667 0.993333 +vt 0.556667 0.966667 +vt 0.550000 0.953333 +vt 0.550000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.523333 0.966667 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.953333 +vt 0.453333 0.800000 +vt 0.446667 0.926667 +vt 0.446667 0.800000 +vt 0.480000 0.953333 +vt 0.523333 0.966667 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.523333 0.953333 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.453333 0.800000 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.466667 0.773333 +vt 0.466667 0.786667 +vt 0.473333 0.773333 +vt 0.460000 0.773333 +vt 0.453333 0.786667 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.206667 0.920000 +vt 0.266667 0.933333 +vt 0.206667 0.933333 +vt 0.266667 0.946667 +vt 0.206667 0.946667 +vt 0.206667 0.906667 +vt 0.266667 0.920000 +vt 0.266667 0.853333 +vt 0.266667 0.906667 +vt 0.206667 1.000000 +vt 0.173333 0.946667 +vt 0.173333 0.906667 +vt 0.200000 0.906667 +vt 0.273333 0.946667 +vt 0.550000 0.953333 +vt 0.556667 0.993333 +vt 0.523333 0.993333 +vt 0.556667 0.900000 +vt 0.550000 0.953333 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.446667 0.926667 +vt 0.453333 0.800000 +vt 0.446667 0.800000 +vt 0.523333 0.966667 +vt 0.480000 0.953333 +vt 0.473333 0.900000 +vt 0.550000 0.900000 +vt 0.473333 0.900000 +vt 0.523333 0.953333 +vt 0.466667 0.953333 +vt 0.466667 0.786667 +vt 0.460000 0.786667 +vt 0.523333 0.966667 +vt 0.466667 0.953333 +vt 0.466667 0.966667 +vt 0.460000 0.786667 +vt 0.466667 0.786667 +vt 0.473333 0.800000 +vt 0.466667 0.773333 +vt 0.473333 0.773333 +vt 0.453333 0.786667 +vt 0.460000 0.773333 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.473333 0.800000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.153333 0.573333 +vt 0.153333 0.520000 +vt 0.153333 0.466667 +vt 0.153333 0.413333 +vt 0.153333 0.360000 +vt 0.153333 0.306667 +vt 0.153333 0.253333 +vt 0.153333 0.200000 +vt 0.153333 0.146667 +vt 0.153333 0.093333 +vt 0.140000 0.046667 +vt 0.153333 0.626667 +vt 0.120000 0.313333 +vt 0.120000 0.260000 +vt 0.120000 0.153333 +vt 0.120000 0.100000 +vt 0.120000 0.046667 +vt 0.106667 0.640000 +vt 0.080000 0.266667 +vt 0.080000 0.640000 +vt 0.080000 0.000000 +vt 0.026667 0.033333 +vt 0.026667 0.513333 +vt 0.046667 0.260000 +vt 0.026667 0.353333 +vt 0.026667 0.086667 +vt 0.026667 0.566667 +vt 0.026667 0.300000 +vt 0.026667 0.406667 +vt 0.046667 0.153333 +vt 0.026667 0.620000 +vt 0.026667 0.460000 +vt 0.026667 0.193333 +vt 0.170010 0.714606 +vt 0.162697 0.699979 +vt 0.160021 0.680000 +vt 0.170010 0.645395 +vt 0.180000 0.640041 +vt 0.189990 0.645395 +vt 0.197303 0.660021 +vt 0.199979 0.680000 +vt 0.189990 0.714606 +vt 0.486667 0.493333 +vt 0.486667 0.546667 +vt 0.460000 -0.000000 +vt 0.486667 0.066667 +vt 0.486667 0.173333 +vt 0.486667 0.386667 +vt 0.133333 0.746646 +vt 0.120005 0.739503 +vt 0.110248 0.719989 +vt 0.110248 0.666677 +vt 0.146661 0.647164 +vt 0.120005 0.647164 +vt 0.133333 0.640021 +vt 0.156418 0.666677 +vt 0.156418 0.719989 +vt 0.740010 0.901272 +vt 0.732697 0.886646 +vt 0.730020 0.866667 +vt 0.740010 0.832061 +vt 0.750000 0.826708 +vt 0.759990 0.832061 +vt 0.769980 0.866667 +vt 0.767303 0.886646 +vt 0.759990 0.901272 +vt 0.810060 0.926396 +vt 0.796667 0.933574 +vt 0.783273 0.926396 +vt 0.769880 0.880000 +vt 0.773468 0.853213 +vt 0.783273 0.833603 +vt 0.810060 0.833603 +vt 0.819865 0.853213 +vt 0.823454 0.880000 +vt 0.026695 0.838944 +vt 0.007195 0.799943 +vt 0.000057 0.746667 +vt 0.007195 0.693390 +vt 0.026695 0.654390 +vt 0.053333 0.640114 +vt 0.079972 0.654390 +vt 0.106610 0.746667 +vt 0.079971 0.838944 +vt 0.826667 0.026667 +vt 0.886667 0.000000 +vt 0.886667 0.106667 +vt 0.900000 0.026667 +vt 0.900000 0.080000 +vt 0.993333 0.493333 +vt 0.106667 0.813333 +vt 0.846667 0.586667 +vt 0.966667 0.586667 +vt 0.933333 0.413333 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.056373 0.939412 +vt 0.070294 0.939412 +vt 0.070294 0.967254 +vt 0.063333 0.973020 +vt 0.056373 0.967254 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.426667 0.813333 +vt 0.493333 0.640000 +vt 0.788306 0.557226 +vt 0.783333 0.559891 +vt 0.778361 0.557226 +vt 0.773388 0.540000 +vt 0.774720 0.530054 +vt 0.778361 0.522774 +vt 0.783333 0.520109 +vt 0.788306 0.522773 +vt 0.793279 0.540000 +vt 0.788630 0.822740 +vt 0.786682 0.813334 +vt 0.788630 0.803927 +vt 0.798037 0.803927 +vt 0.798037 0.822740 +vt 0.799962 0.786667 +vt 0.798021 0.796041 +vt 0.793333 0.799924 +vt 0.788646 0.796041 +vt 0.786704 0.786667 +vt 0.523333 0.993333 +vt 0.550000 0.900000 +vt 0.556667 0.966667 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.466667 0.966667 +vt 0.466667 0.786667 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.206667 0.853333 +vt 0.266667 1.000000 +vt 0.200000 0.946667 +vt 0.273333 0.906667 +vt 0.300000 0.906667 +vt 0.300000 0.946667 +vt 0.556667 0.966667 +vt 0.556667 0.966667 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.453333 0.800000 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.193333 0.320000 +vt 0.193333 0.266667 +vt 0.193333 0.213333 +vt 0.193333 0.160000 +vt 0.193333 0.106667 +vt 0.193333 0.053333 +vt 0.193333 0.640000 +vt 0.193333 0.586667 +vt 0.193333 0.533333 +vt 0.193333 0.480000 +vt 0.193333 0.426667 +vt 0.193333 0.373333 +vt 0.486667 0.480000 +vt 0.646667 0.453333 +vt 0.646667 0.480000 +vt 0.486667 0.453333 +vt 0.646667 0.426667 +vt 0.486667 0.426667 +vt 0.646667 0.400000 +vt 0.486667 0.400000 +vt 0.646667 0.373333 +vt 0.486667 0.373333 +vt 0.646667 0.346667 +vt 0.486667 0.346667 +vt 0.646667 0.320000 +vt 0.486667 0.640000 +vt 0.646667 0.613333 +vt 0.646667 0.640000 +vt 0.486667 0.613333 +vt 0.646667 0.586667 +vt 0.486667 0.586667 +vt 0.646667 0.560000 +vt 0.486667 0.560000 +vt 0.646667 0.533333 +vt 0.486667 0.533333 +vt 0.646667 0.506667 +vt 0.486667 0.506667 +vt 0.166667 0.313333 +vt 0.180000 0.266667 +vt 0.180000 0.320000 +vt 0.166667 0.220000 +vt 0.180000 0.213333 +vt 0.166667 0.166667 +vt 0.180000 0.160000 +vt 0.166667 0.113333 +vt 0.180000 0.106667 +vt 0.166667 0.100000 +vt 0.180000 0.053333 +vt 0.180000 0.373333 +vt 0.166667 0.326667 +vt 0.180000 0.426667 +vt 0.166667 0.380000 +vt 0.166667 0.473333 +vt 0.180000 0.480000 +vt 0.166667 0.526667 +vt 0.166667 0.486667 +vt 0.166667 0.580000 +vt 0.180000 0.533333 +vt 0.180000 0.586667 +vt 0.180000 0.640000 +vt 0.166667 0.593333 +vt 0.166667 0.006667 +vt 0.180000 -0.000000 +vt 0.153333 0.200000 +vt 0.166667 0.206667 +vt 0.153333 0.253333 +vt 0.153333 0.226667 +vt 0.153333 0.280000 +vt 0.153333 0.306667 +vt 0.153333 0.333333 +vt 0.166667 0.366667 +vt 0.153333 0.360000 +vt 0.153333 0.386667 +vt 0.166667 0.420000 +vt 0.153333 0.413333 +vt 0.153333 0.440000 +vt 0.153333 0.466667 +vt 0.153333 0.520000 +vt 0.153333 0.546667 +vt 0.153333 0.573333 +vt 0.153333 0.600000 +vt 0.166667 0.633333 +vt 0.153333 0.626667 +vt 0.153333 0.040000 +vt 0.166667 0.046667 +vt 0.153333 0.066667 +vt 0.153333 0.093333 +vt 0.153333 0.120000 +vt 0.166667 0.153333 +vt 0.153333 0.146667 +vt 0.193333 -0.000000 +vt 0.000000 0.333333 +vt 0.000000 0.066667 +vt 0.000000 0.546667 +vt 0.000000 0.280000 +vt 0.000000 0.386667 +vt 0.000000 0.120000 +vt 0.000000 0.600000 +vt 0.000000 0.440000 +vt 0.000000 0.173333 +vt 0.000000 0.013333 +vt 0.000000 0.493333 +vt 0.000000 0.226667 +vt 0.646667 0.266667 +vt 0.486667 0.240000 +vt 0.646667 0.240000 +vt 0.646667 0.133333 +vt 0.486667 0.106667 +vt 0.646667 0.106667 +vt 0.646667 0.186667 +vt 0.486667 0.160000 +vt 0.646667 0.160000 +vt 0.646667 0.053333 +vt 0.486667 0.026667 +vt 0.646667 0.026667 +vt 0.646667 0.293333 +vt 0.486667 0.266667 +vt 0.486667 0.133333 +vt 0.646667 0.213333 +vt 0.486667 0.186667 +vt 0.646667 0.080000 +vt 0.486667 0.053333 +vt 0.646667 0.320000 +vt 0.486667 0.293333 +vt 0.486667 0.213333 +vt 0.486667 0.080000 +vt 0.486667 -0.000000 +vt 0.646667 0.000000 +vt 0.746667 0.306667 +vt 0.720000 0.266667 +vt 0.746667 0.280000 +vt 0.850000 0.973333 +vt 0.823333 0.946667 +vt 0.850000 0.946667 +vt 0.823333 0.920000 +vt 0.850000 0.920000 +vt 0.773333 0.293333 +vt 0.700000 0.320000 +vt 0.720000 0.320000 +vt 0.850000 0.760000 +vt 0.823333 0.780000 +vt 0.823333 0.760000 +vt 0.850000 0.840000 +vt 0.823333 0.860000 +vt 0.823333 0.840000 +vt 0.850000 0.680000 +vt 0.823333 0.653333 +vt 0.850000 0.653333 +vt 0.773333 0.240000 +vt 0.746667 0.253333 +vt 0.746667 0.226667 +vt 0.700000 0.266667 +vt 0.720000 0.213333 +vt 0.850000 0.813333 +vt 0.823333 0.833333 +vt 0.823333 0.813333 +vt 0.850000 0.786667 +vt 0.823333 0.806667 +vt 0.823333 0.786667 +vt 0.773333 0.186667 +vt 0.746667 0.200000 +vt 0.746667 0.173333 +vt 0.700000 0.213333 +vt 0.720000 0.160000 +vt 0.850000 0.893333 +vt 0.823333 0.866667 +vt 0.850000 0.866667 +vt 0.773333 0.133333 +vt 0.746667 0.146667 +vt 0.746667 0.120000 +vt 0.700000 0.106667 +vt 0.720000 0.106667 +vt 0.983333 0.680000 +vt 0.983333 0.653333 +vt 0.983333 0.813333 +vt 0.983333 0.786667 +vt 0.983333 0.893333 +vt 0.983333 0.866667 +vt 0.773333 0.080000 +vt 0.746667 0.093333 +vt 0.746667 0.066667 +vt 0.720000 0.053333 +vt 0.983333 0.973333 +vt 0.983333 0.946667 +vt 0.983333 0.840000 +vt 0.983333 0.760000 +vt 0.773333 0.026667 +vt 0.746667 0.040000 +vt 0.746667 0.013333 +vt 0.700000 0.000000 +vt 0.720000 0.000000 +vt 0.983333 0.920000 +vt 0.850000 0.733333 +vt 0.983333 0.733333 +vt 0.700000 0.640000 +vt 0.720000 0.586667 +vt 0.720000 0.640000 +vt 0.850000 0.706667 +vt 0.983333 0.706667 +vt 0.746667 0.600000 +vt 0.746667 0.626667 +vt 0.773333 0.613333 +vt 0.823333 0.700000 +vt 0.823333 0.680000 +vt 0.746667 0.546667 +vt 0.746667 0.573333 +vt 0.773333 0.560000 +vt 0.700000 0.533333 +vt 0.720000 0.533333 +vt 0.746667 0.520000 +vt 0.720000 0.480000 +vt 0.746667 0.493333 +vt 0.700000 0.053333 +vt 0.646667 0.000000 +vt 0.700000 0.480000 +vt 0.646667 0.426667 +vt 0.700000 0.426667 +vt 0.773333 0.506667 +vt 0.700000 0.586667 +vt 0.646667 0.533333 +vt 0.746667 0.440000 +vt 0.746667 0.466667 +vt 0.646667 0.213333 +vt 0.646667 0.373333 +vt 0.700000 0.373333 +vt 0.773333 0.453333 +vt 0.720000 0.426667 +vt 0.646667 0.320000 +vt 0.746667 0.413333 +vt 0.720000 0.373333 +vt 0.746667 0.386667 +vt 0.646667 0.266667 +vt 0.700000 0.160000 +vt 0.646667 0.106667 +vt 0.773333 0.400000 +vt 0.646667 0.586667 +vt 0.746667 0.360000 +vt 0.746667 0.333333 +vt 0.646667 0.480000 +vt 0.646667 0.053333 +vt 0.773333 0.346667 +vt 0.646667 0.160000 +vt 0.823333 0.706667 +vt 0.823333 0.733333 +vt 0.823333 0.913333 +vt 0.823333 0.893333 +vt 0.820000 0.373333 +vt 0.840000 0.413333 +vt 0.820000 0.413333 +vt 0.793333 0.106667 +vt 0.773333 0.373333 +vt 0.773333 0.106667 +vt 0.906667 0.373333 +vt 0.933333 0.106667 +vt 0.933333 0.373333 +vt 0.793333 0.373333 +vt 0.820000 0.106667 +vt 0.886667 0.373333 +vt 0.840000 0.373333 +vt 0.906667 0.413333 +vt 0.793333 0.413333 +vt 0.906667 0.106667 +vt 0.953333 0.373333 +vt 1.000000 0.106667 +vt 1.000000 0.373333 +vt 0.953333 0.413333 +vt 0.953333 0.106667 +vt 0.933333 0.413333 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.506667 0.820000 +vt 0.533333 0.826667 +vt 0.506667 0.826667 +vt 0.506667 0.813333 +vt 0.533333 0.820000 +vt 0.506667 0.806667 +vt 0.533333 0.813333 +vt 0.506667 0.800000 +vt 0.533333 0.806667 +vt 0.533333 0.793333 +vt 0.506667 0.793333 +vt 0.533333 0.786667 +vt 0.506667 0.786667 +vt 0.533333 0.780000 +vt 0.506667 0.780000 +vt 0.613333 0.826667 +vt 0.653333 0.820000 +vt 0.640000 0.813333 +vt 0.653333 0.813333 +vt 0.653333 0.780000 +vt 0.640000 0.773333 +vt 0.653333 0.773333 +vt 0.653333 0.806667 +vt 0.640000 0.800000 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.640000 0.786667 +vt 0.653333 0.786667 +vt 0.653333 0.826667 +vt 0.640000 0.820000 +vt 0.640000 0.780000 +vt 0.640000 0.793333 +vt 0.640000 0.806667 +vt 0.613333 0.820000 +vt 0.613333 0.813333 +vt 0.533333 0.800000 +vt 0.613333 0.806667 +vt 0.613333 0.800000 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.640000 0.780000 +vt 0.640000 0.786667 +vt 0.640000 0.793333 +vt 0.493333 0.806667 +vt 0.506667 0.813333 +vt 0.493333 0.813333 +vt 0.493333 0.793333 +vt 0.506667 0.800000 +vt 0.493333 0.800000 +vt 0.493333 0.820000 +vt 0.506667 0.826667 +vt 0.493333 0.826667 +vt 0.493333 0.780000 +vt 0.506667 0.786667 +vt 0.493333 0.786667 +vt 0.506667 0.806667 +vt 0.506667 0.793333 +vt 0.493333 0.773333 +vt 0.506667 0.780000 +vt 0.506667 0.820000 +vt 0.640000 0.800000 +vt 0.640000 0.806667 +vt 0.640000 0.813333 +vt 0.640000 0.820000 +vt 0.640000 0.826667 +vt 0.613333 0.773333 +vt 0.640000 0.773333 +vt 0.533333 0.773333 +vt 0.613333 0.780000 +vt 0.506667 0.773333 +vt 0.493333 0.813333 +vt 0.493333 0.820000 +vt 0.493333 0.773333 +vt 0.493333 0.780000 +vt 0.493333 0.786667 +vt 0.493333 0.793333 +vt 0.493333 0.800000 +vt 0.493333 0.806667 +vt 0.493333 0.826667 +vt 0.653333 0.813333 +vt 0.653333 0.806667 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.653333 0.780000 +vt 0.653333 0.826667 +vt 0.653333 0.820000 +vt 0.653333 0.773333 +vt 0.533333 0.773333 +vt 0.506667 0.773333 +vt 0.613333 0.780000 +vt 0.533333 0.780000 +vt 0.613333 0.773333 +vt 0.613333 0.826667 +vt 0.640000 0.826667 +vt 0.613333 0.820000 +vt 0.613333 0.806667 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.533333 0.786667 +vt 0.533333 0.793333 +vt 0.613333 0.800000 +vt 0.533333 0.800000 +vt 0.533333 0.806667 +vt 0.613333 0.813333 +vt 0.533333 0.813333 +vt 0.533333 0.820000 +vt 0.533333 0.826667 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.093333 0.853333 +vt 0.086667 0.933333 +vt 0.086667 0.853333 +vt 0.100000 0.853333 +vt 0.093333 0.933333 +vt 0.060000 0.853333 +vt 0.053333 0.933333 +vt 0.053333 0.853333 +vt 0.073333 0.853333 +vt 0.066667 0.933333 +vt 0.066667 0.853333 +vt 0.080000 0.933333 +vt 0.080000 0.853333 +vt 0.106667 0.853333 +vt 0.100000 0.933333 +vt 0.060000 0.933333 +vt 0.073333 0.933333 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.506667 0.733333 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.506667 0.653333 +vt 0.560000 0.666667 +vt 0.506667 0.666667 +vt 0.506667 0.680000 +vt 0.560000 0.693333 +vt 0.506667 0.693333 +vt 0.506667 0.706667 +vt 0.560000 0.720000 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.560000 0.680000 +vt 0.560000 0.706667 +vt 0.506667 0.693333 +vt 0.560000 0.706667 +vt 0.506667 0.706667 +vt 0.506667 0.666667 +vt 0.560000 0.680000 +vt 0.506667 0.680000 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.506667 0.653333 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.733333 +vt 0.560000 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.793333 0.700000 +vt 0.813333 0.720000 +vt 0.793333 0.720000 +vt 0.793333 0.600000 +vt 0.813333 0.620000 +vt 0.793333 0.620000 +vt 0.793333 0.640000 +vt 0.813333 0.660000 +vt 0.793333 0.660000 +vt 0.793333 0.540000 +vt 0.813333 0.560000 +vt 0.793333 0.560000 +vt 0.813333 0.740000 +vt 0.793333 0.740000 +vt 0.813333 0.640000 +vt 0.813333 0.680000 +vt 0.793333 0.680000 +vt 0.813333 0.580000 +vt 0.793333 0.580000 +vt 0.813333 0.760000 +vt 0.793333 0.760000 +vt 0.813333 0.700000 +vt 0.813333 0.600000 +vt 0.793333 0.520000 +vt 0.813333 0.540000 +vt 0.823333 0.673333 +vt 0.823333 0.573333 +vt 0.823333 0.753333 +vt 0.823333 0.680000 +vt 0.823333 0.693333 +vt 0.823333 0.580000 +vt 0.823333 0.593333 +vt 0.813333 0.520000 +vt 0.823333 0.533333 +vt 0.823333 0.700000 +vt 0.823333 0.713333 +vt 0.823333 0.613333 +vt 0.823333 0.640000 +vt 0.823333 0.653333 +vt 0.823333 0.553333 +vt 0.823333 0.720000 +vt 0.823333 0.733333 +vt 0.823333 0.633333 +vt 0.653333 0.813333 +vt 0.786667 0.806667 +vt 0.786667 0.813333 +vt 0.653333 0.806667 +vt 0.786667 0.800000 +vt 0.653333 0.800000 +vt 0.786667 0.793333 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.786667 0.780000 +vt 0.653333 0.780000 +vt 0.786667 0.773333 +vt 0.653333 0.826667 +vt 0.786667 0.820000 +vt 0.786667 0.826667 +vt 0.653333 0.820000 +vt 0.486667 0.320000 +vt 0.166667 0.273333 +vt 0.166667 0.260000 +vt 0.166667 0.060000 +vt 0.166667 0.433333 +vt 0.166667 0.540000 +vt 0.153333 0.173333 +vt 0.153333 0.493333 +vt 0.153333 0.013333 +vt 0.000000 0.353333 +vt 0.000000 0.086667 +vt 0.000000 0.566667 +vt 0.000000 0.300000 +vt 0.000000 0.406667 +vt 0.000000 0.140000 +vt 0.000000 0.620000 +vt 0.000000 0.460000 +vt 0.000000 0.193333 +vt 0.000000 0.033333 +vt 0.000000 0.513333 +vt 0.000000 0.246667 +vt 0.486667 0.320000 +vt 0.823333 0.966667 +vt 0.823333 0.940000 +vt 0.823333 0.673333 +vt 0.823333 0.886667 +vt 0.646667 0.640000 +vt 0.823333 0.726667 +vt 0.823333 0.753333 +vt 0.886667 0.413333 +vt 1.000000 0.413333 +vt 0.773333 0.413333 +vt 0.793333 0.720000 +vt 0.793333 0.720000 +vt 0.053333 0.933333 +vt 0.106667 0.933333 +vt 0.053333 0.933333 +vt 0.560000 0.640000 +vt 0.560000 0.640000 +vt 0.823333 0.660000 +vt 0.823333 0.560000 +vt 0.823333 0.740000 +vt 0.823333 0.520000 +vt 0.823333 0.600000 +vt 0.823333 0.540000 +vt 0.823333 0.620000 +vt 0.653333 0.773333 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.2747 0.9615 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.4472 0.8944 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.9918 0.1278 +vn 0.5000 0.8660 0.0000 +vn 0.4959 0.8589 0.1278 +vn 0.8660 0.5000 0.0000 +vn 0.8589 0.4959 0.1278 +vn 0.9918 -0.0000 0.1278 +vn 0.8660 -0.5000 0.0000 +vn 0.8589 -0.4959 0.1278 +vn 0.5000 -0.8660 -0.0000 +vn 0.4959 -0.8589 0.1278 +vn 0.0000 -0.9918 0.1278 +vn -0.5000 -0.8660 0.0000 +vn -0.4959 -0.8589 0.1278 +vn -0.8660 -0.5000 0.0000 +vn -0.8589 -0.4959 0.1278 +vn -0.9918 -0.0000 0.1278 +vn -0.8660 0.5000 0.0000 +vn -0.8589 0.4959 0.1278 +vn -0.5000 0.8660 0.0000 +vn -0.4959 0.8589 0.1278 +vn 0.0000 0.5309 0.8474 +vn 0.4380 0.7586 0.4823 +vn -0.0000 0.8760 0.4823 +vn 0.4598 0.2654 0.8474 +vn 0.7586 0.4380 0.4823 +vn 0.5309 0.0000 0.8474 +vn 0.8760 0.0000 0.4823 +vn 0.4598 -0.2655 0.8474 +vn 0.7586 -0.4380 0.4823 +vn 0.4380 -0.7586 0.4823 +vn -0.4380 0.7586 0.4823 +vn -0.7586 0.4380 0.4823 +vn -0.2654 0.4598 0.8474 +vn -0.5309 0.0000 0.8474 +vn -0.8760 -0.0000 0.4823 +vn -0.4598 -0.2654 0.8474 +vn -0.2654 -0.4598 0.8474 +vn -0.7586 -0.4380 0.4823 +vn -0.4380 -0.7586 0.4823 +vn 0.0000 -0.8760 0.4823 +vn -0.0000 -0.5309 0.8474 +vn 0.2241 0.1294 0.9659 +vn 0.1294 0.2241 0.9659 +vn -0.0000 0.2588 0.9659 +vn -0.1294 0.2241 0.9659 +vn -0.4598 0.2654 0.8474 +vn -0.2241 0.1294 0.9659 +vn -0.2588 0.0000 0.9659 +vn -0.2241 -0.1294 0.9659 +vn -0.1294 -0.2241 0.9659 +vn 0.0000 -0.2588 0.9659 +vn 0.1294 -0.2241 0.9659 +vn 0.2655 -0.4598 0.8474 +vn 0.2241 -0.1294 0.9659 +vn 0.2588 0.0000 0.9659 +vn 0.0000 0.4383 -0.8988 +vn 0.4103 0.7106 -0.5716 +vn 0.2191 0.3796 -0.8988 +vn 0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn 0.0000 0.9861 -0.1662 +vn 0.0000 0.8205 -0.5716 +vn 0.8402 0.4851 0.2425 +vn 0.4851 0.8402 0.2425 +vn -0.4851 0.8402 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn 0.3796 0.2191 -0.8988 +vn 0.4930 0.8540 -0.1662 +vn 0.7106 0.4103 -0.5716 +vn -0.0000 0.9701 0.2425 +vn 0.4383 0.0000 -0.8988 +vn 0.8540 0.4930 -0.1662 +vn 0.8205 0.0000 -0.5716 +vn -0.9701 -0.0000 0.2425 +vn 0.3796 -0.2191 -0.8988 +vn 0.8540 -0.4930 -0.1662 +vn 0.7106 -0.4103 -0.5716 +vn 0.2191 -0.3796 -0.8988 +vn 0.4103 -0.7106 -0.5716 +vn -0.0000 -0.4383 -0.8988 +vn 0.0000 -0.9861 -0.1662 +vn 0.0000 -0.8205 -0.5716 +vn -0.4103 -0.7106 -0.5716 +vn -0.2191 -0.3796 -0.8988 +vn 0.8402 -0.4851 0.2425 +vn -0.3796 -0.2191 -0.8988 +vn -0.8540 -0.4930 -0.1662 +vn -0.7106 -0.4103 -0.5716 +vn -0.8205 0.0000 -0.5716 +vn -0.4383 0.0000 -0.8988 +vn 0.4930 -0.8540 -0.1662 +vn -0.9861 0.0000 -0.1662 +vn -0.8540 0.4930 -0.1662 +vn -0.4930 -0.8540 -0.1662 +vn -0.3796 0.2191 -0.8988 +vn -0.4930 0.8540 -0.1662 +vn -0.7106 0.4103 -0.5716 +vn -0.4103 0.7106 -0.5716 +vn -0.2191 0.3796 -0.8988 +vn 0.9861 0.0000 -0.1662 +vn 0.9701 -0.0000 0.2425 +vn 0.3735 -0.0899 0.9233 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3941 -0.1802 0.9012 +vn -0.9147 -0.0417 0.4019 +vn -0.9382 -0.0679 0.3394 +vn 0.3902 0.0926 -0.9161 +vn -0.3606 0.1829 -0.9146 +vn -0.3902 0.0926 -0.9161 +vn -0.3735 -0.0899 0.9233 +vn 0.3941 -0.1802 0.9012 +vn 0.9319 0.0343 -0.3612 +vn 0.9147 -0.0417 0.4019 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.9382 -0.0679 0.3394 +vn 0.9033 0.0841 -0.4207 +vn 0.3606 0.1829 -0.9146 +vn -0.9319 0.0343 -0.3612 +vn -0.9239 0.0000 -0.3827 +vn -0.9033 0.0841 -0.4207 +vn -0.3827 0.0000 -0.9239 +vn 0.6724 0.7267 -0.1405 +vn 0.6724 -0.7267 -0.1405 +vn -0.7193 -0.6784 0.1495 +vn -0.7193 0.6784 0.1495 +vn 0.9774 0.0000 -0.2114 +vn -0.0487 -0.9986 0.0209 +vn -0.9814 -0.0000 0.1920 +vn -0.0487 0.9986 0.0209 +vn -0.9774 0.0000 0.2114 +vn -0.6724 0.7267 0.1405 +vn 0.7193 0.6784 -0.1495 +vn 0.9814 -0.0000 -0.1920 +vn 0.0487 -0.9986 -0.0209 +vn 0.0487 0.9986 -0.0209 +vn 0.7193 -0.6784 -0.1495 +vn -0.6724 -0.7267 0.1405 +vn 0.6233 -0.2820 -0.7294 +vn 0.4202 -0.9074 -0.0000 +vn 0.9074 -0.4202 0.0000 +vn -0.0899 0.0899 -0.9919 +vn 0.2820 -0.6233 -0.7294 +vn -0.7023 0.3032 -0.6441 +vn -0.9356 0.3532 0.0000 +vn -0.3032 0.7023 -0.6441 +vn -0.3032 0.7023 0.6441 +vn -0.7023 0.3032 0.6441 +vn -0.0899 0.0899 0.9919 +vn 0.2820 -0.6233 0.7294 +vn 0.6233 -0.2820 0.7294 +vn -0.4202 -0.9074 0.0000 +vn 0.0899 0.0899 -0.9919 +vn -0.7071 0.0000 0.7071 +vn -0.9074 -0.4202 -0.0000 +vn 0.9356 0.3532 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0899 0.0899 0.9919 +vn -0.6233 -0.2820 -0.7294 +vn -0.6233 -0.2820 0.7294 +vn 0.7023 0.3032 0.6441 +vn 0.7023 0.3032 -0.6441 +vn -0.2820 -0.6233 -0.7294 +vn -0.3532 0.9356 -0.0000 +vn 0.3032 0.7023 -0.6441 +vn 0.3532 0.9356 0.0000 +vn 0.3032 0.7023 0.6441 +vn -0.2820 -0.6233 0.7294 +vn 0.2774 -0.4804 -0.8321 +vn 0.4804 -0.2774 -0.8321 +vn -0.4804 0.2774 -0.8321 +vn -0.5547 0.0000 -0.8321 +vn 0.2774 0.4804 -0.8321 +vn -0.0000 0.5547 -0.8321 +vn 0.5547 0.0000 -0.8321 +vn 0.5547 -0.0000 -0.8320 +vn -0.4804 -0.2774 -0.8321 +vn -0.4804 -0.2773 -0.8321 +vn -0.2774 0.4804 -0.8321 +vn -0.2773 0.4804 -0.8321 +vn 0.4804 0.2774 -0.8321 +vn -0.2774 -0.4804 -0.8321 +vn -0.2774 -0.4804 -0.8320 +vn -0.0000 -0.5547 -0.8321 +vn 0.0000 0.7071 -0.7071 +vn 0.2655 0.4598 0.8474 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +s off +f 3/1/1 171/2/1 170/3/1 +f 42/4/1 78/5/1 77/6/1 +f 44/7/1 77/8/1 76/9/1 +f 46/10/1 76/11/1 75/12/1 +f 48/13/1 75/14/1 74/15/1 +f 26/16/1 74/17/1 73/18/1 +f 28/19/1 73/20/1 84/21/1 +f 30/22/1 84/23/1 83/24/1 +f 32/25/1 83/26/1 82/27/1 +f 34/28/1 82/29/1 81/30/1 +f 36/31/1 81/32/1 80/33/1 +f 36/34/1 79/35/1 38/36/1 +f 40/37/1 79/38/1 78/39/1 +f 96/40/1 121/41/1 132/42/1 +f 95/43/1 132/42/1 131/44/1 +f 95/45/1 130/46/1 94/47/1 +f 93/48/1 130/46/1 129/49/1 +f 92/50/1 129/49/1 128/51/1 +f 91/52/1 128/51/1 127/53/1 +f 91/54/1 126/55/1 90/56/1 +f 90/57/1 125/58/1 89/59/1 +f 89/60/1 124/61/1 88/62/1 +f 88/63/1 123/64/1 87/65/1 +f 87/66/1 122/67/1 86/68/1 +f 86/69/1 121/41/1 85/70/1 +f 142/71/2 107/72/2 106/73/2 +f 143/74/2 108/75/2 107/76/2 +f 108/77/2 133/78/2 97/79/2 +f 133/78/2 98/80/2 97/81/2 +f 134/82/2 99/83/2 98/84/2 +f 135/85/2 100/86/2 99/87/2 +f 136/88/2 101/89/2 100/90/2 +f 137/91/2 102/92/2 101/93/2 +f 138/94/2 103/95/2 102/96/2 +f 103/97/2 140/98/2 104/99/2 +f 104/100/2 141/101/2 105/102/2 +f 105/103/2 142/71/2 106/104/2 +f 116/105/2 151/106/2 115/107/2 +f 113/108/2 148/109/2 112/110/2 +f 119/111/2 156/112/2 155/113/2 +f 110/114/2 145/115/2 109/116/2 +f 117/117/2 152/118/2 116/119/2 +f 114/120/2 149/121/2 113/122/2 +f 109/123/2 156/124/2 120/125/2 +f 111/126/2 146/127/2 110/128/2 +f 117/129/2 154/130/2 153/131/2 +f 115/132/2 150/133/2 114/134/2 +f 112/135/2 147/136/2 111/137/2 +f 119/138/2 154/139/2 118/140/2 +f 167/141/2 157/142/2 161/143/2 +f 19/144/1 179/145/1 178/146/1 +f 19/144/1 177/147/1 17/148/1 +f 17/148/1 176/149/1 15/150/1 +f 13/151/1 176/152/1 175/153/1 +f 11/154/1 175/155/1 174/156/1 +f 11/154/1 173/157/1 9/158/1 +f 7/159/1 173/160/1 172/161/1 +f 23/162/1 169/163/1 180/164/1 +f 1/165/1 170/166/1 169/167/1 +f 7/159/1 171/168/1 5/169/1 +f 23/162/1 179/170/1 21/171/1 +f 190/172/1 192/173/1 184/174/1 +f 214/175/2 228/176/2 243/177/2 +f 224/178/1 210/179/1 201/180/1 +f 259/181/2 266/182/2 273/183/2 +f 292/184/3 284/185/3 299/186/3 +f 313/187/3 310/188/3 311/189/3 +f 307/190/4 308/191/4 306/192/4 +f 304/193/5 309/194/5 305/195/5 +f 303/196/2 306/192/2 302/197/2 +f 305/198/6 307/190/6 303/199/6 +f 304/200/7 306/192/7 308/191/7 +f 315/201/8 312/202/8 313/187/8 +f 312/202/7 314/203/7 310/188/7 +f 313/187/6 311/189/6 315/204/6 +f 320/205/7 322/206/7 321/207/7 +f 317/208/3 323/209/3 319/210/3 +f 318/211/4 321/207/4 316/212/4 +f 319/213/1 320/205/1 318/214/1 +f 316/215/2 322/206/2 317/216/2 +f 388/217/2 391/218/2 389/219/2 +f 395/220/1 392/221/1 393/222/1 +f 388/223/4 394/224/4 390/225/4 +f 401/226/9 399/227/9 403/228/9 +f 391/229/3 393/230/3 389/231/3 +f 388/223/6 398/232/6 392/233/6 +f 392/221/6 399/234/6 393/222/6 +f 389/219/6 396/235/6 388/217/6 +f 393/230/6 397/236/6 389/231/6 +f 401/226/6 402/237/6 400/238/6 +f 403/228/10 398/239/10 402/237/10 +f 402/237/11 396/240/11 400/238/11 +f 400/238/12 397/241/12 401/226/12 +f 506/242/13 500/243/13 507/244/13 +f 510/245/14 514/246/14 512/247/14 +f 505/248/14 500/243/14 503/249/14 +f 502/250/15 506/242/15 504/251/15 +f 513/252/15 508/253/15 511/254/15 +f 514/246/16 508/253/16 515/255/16 +f 522/256/15 516/257/15 523/258/15 +f 526/259/13 530/260/13 528/261/13 +f 521/262/13 516/257/13 519/263/13 +f 518/264/16 522/256/16 520/265/16 +f 529/266/16 524/267/16 527/268/16 +f 530/260/14 524/267/14 531/269/14 +f 540/270/4 542/271/4 544/272/4 +f 555/273/4 553/274/4 551/275/4 +f 572/276/4 574/277/4 576/278/4 +f 624/279/7 626/280/7 625/281/7 +f 616/282/7 618/283/7 617/284/7 +f 612/285/4 616/282/4 617/284/4 +f 615/286/17 616/282/17 614/287/17 +f 612/288/2 618/283/2 613/289/2 +f 613/290/3 619/291/3 615/292/3 +f 622/293/4 625/281/4 620/294/4 +f 623/295/1 624/279/1 622/296/1 +f 620/297/18 626/280/18 621/298/18 +f 623/299/3 626/280/3 627/300/3 +f 656/301/7 658/302/7 657/303/7 +f 653/304/3 659/305/3 655/306/3 +f 654/307/4 657/303/4 652/308/4 +f 664/309/1 662/310/1 670/311/1 +f 652/312/2 658/302/2 653/313/2 +f 685/314/7 681/315/7 677/316/7 +f 682/317/6 684/318/6 686/319/6 +f 688/320/3 692/321/3 696/322/3 +f 697/323/19 692/324/19 694/325/19 +f 690/326/4 693/327/4 697/323/4 +f 694/325/1 688/328/1 689/329/1 +f 691/330/2 693/331/2 690/332/2 +f 707/333/2 709/334/2 704/335/2 +f 699/336/3 695/337/3 696/322/3 +f 699/338/6 697/323/6 711/339/6 +f 693/340/7 698/341/7 708/342/7 +f 702/343/6 699/338/6 707/333/6 +f 693/327/4 711/339/4 697/323/4 +f 705/344/7 704/345/7 701/346/7 +f 706/347/3 700/348/3 703/349/3 +f 701/350/20 703/349/20 700/348/20 +f 705/351/21 707/352/21 704/353/21 +f 702/343/1 698/354/1 699/338/1 +f 711/355/22 709/334/22 710/356/22 +f 711/339/6 710/356/6 699/338/6 +f 709/357/7 708/342/7 698/341/7 +f 712/358/3 719/359/3 715/360/3 +f 715/360/21 718/361/21 714/362/21 +f 713/363/20 716/364/20 712/358/20 +f 713/363/1 722/365/1 717/366/1 +f 718/361/2 721/367/2 714/362/2 +f 721/368/7 720/369/7 713/370/7 +f 718/371/6 719/359/6 716/364/6 +f 732/372/3 724/373/3 727/374/3 +f 728/375/23 733/376/23 730/377/23 +f 733/376/4 726/378/4 725/379/4 +f 724/380/1 730/377/1 725/381/1 +f 729/382/2 727/383/2 726/384/2 +f 745/385/2 743/386/2 740/387/2 +f 731/388/3 735/389/3 732/372/3 +f 735/390/7 733/376/7 732/391/7 +f 734/392/6 729/393/6 744/394/6 +f 739/395/7 742/396/7 743/386/7 +f 729/397/4 747/398/4 744/399/4 +f 741/400/6 736/401/6 737/402/6 +f 736/403/3 742/396/3 739/395/3 +f 739/395/20 737/404/20 736/403/20 +f 743/405/21 741/406/21 740/407/21 +f 734/408/1 738/409/1 735/390/1 +f 745/385/22 747/410/22 746/411/22 +f 747/398/7 735/390/7 746/411/7 +f 745/412/6 734/392/6 744/394/6 +f 3/1/1 5/169/1 171/2/1 +f 42/4/1 40/413/1 78/5/1 +f 44/7/1 42/414/1 77/8/1 +f 46/10/1 44/415/1 76/11/1 +f 48/13/1 46/416/1 75/14/1 +f 26/16/1 48/417/1 74/17/1 +f 28/19/1 26/418/1 73/20/1 +f 30/22/1 28/419/1 84/23/1 +f 32/25/1 30/420/1 83/26/1 +f 34/28/1 32/421/1 82/29/1 +f 36/31/1 34/422/1 81/32/1 +f 36/34/1 80/423/1 79/35/1 +f 40/37/1 38/424/1 79/38/1 +f 96/40/1 85/425/1 121/41/1 +f 95/43/1 96/426/1 132/42/1 +f 95/45/1 131/44/1 130/46/1 +f 93/48/1 94/427/1 130/46/1 +f 92/50/1 93/428/1 129/49/1 +f 91/52/1 92/429/1 128/51/1 +f 91/54/1 127/430/1 126/55/1 +f 90/57/1 126/55/1 125/58/1 +f 89/60/1 125/58/1 124/61/1 +f 88/63/1 124/61/1 123/64/1 +f 87/66/1 123/64/1 122/67/1 +f 86/69/1 122/67/1 121/41/1 +f 142/71/2 143/74/2 107/72/2 +f 143/74/2 144/431/2 108/75/2 +f 108/77/2 144/431/2 133/78/2 +f 133/78/2 134/82/2 98/80/2 +f 134/82/2 135/85/2 99/83/2 +f 135/85/2 136/88/2 100/86/2 +f 136/88/2 137/91/2 101/89/2 +f 137/91/2 138/94/2 102/92/2 +f 138/94/2 139/432/2 103/95/2 +f 103/97/2 139/433/2 140/98/2 +f 104/100/2 140/98/2 141/101/2 +f 105/103/2 141/101/2 142/71/2 +f 116/105/2 152/434/2 151/106/2 +f 113/108/2 149/435/2 148/109/2 +f 119/111/2 120/436/2 156/112/2 +f 110/114/2 146/437/2 145/115/2 +f 117/117/2 153/438/2 152/118/2 +f 114/120/2 150/439/2 149/121/2 +f 109/123/2 145/440/2 156/124/2 +f 111/126/2 147/441/2 146/127/2 +f 117/129/2 118/442/2 154/130/2 +f 115/132/2 151/443/2 150/133/2 +f 112/135/2 148/444/2 147/136/2 +f 119/138/2 155/445/2 154/139/2 +f 157/142/2 158/446/2 161/143/2 +f 158/446/2 159/447/2 161/143/2 +f 159/447/2 160/448/2 161/143/2 +f 161/143/2 162/449/2 163/450/2 +f 163/450/2 164/451/2 161/143/2 +f 164/451/2 165/452/2 161/143/2 +f 165/452/2 166/453/2 167/141/2 +f 167/141/2 168/454/2 157/142/2 +f 165/452/2 167/141/2 161/143/2 +f 19/144/1 21/171/1 179/145/1 +f 19/144/1 178/455/1 177/147/1 +f 17/148/1 177/456/1 176/149/1 +f 13/151/1 15/150/1 176/152/1 +f 11/154/1 13/457/1 175/155/1 +f 11/154/1 174/458/1 173/157/1 +f 7/159/1 9/158/1 173/160/1 +f 23/162/1 1/165/1 169/163/1 +f 1/165/1 3/1/1 170/166/1 +f 7/159/1 172/459/1 171/168/1 +f 23/162/1 180/460/1 179/170/1 +f 192/173/1 181/461/1 184/174/1 +f 181/461/1 182/462/1 184/174/1 +f 182/462/1 183/463/1 184/174/1 +f 184/174/1 185/464/1 188/465/1 +f 185/464/1 186/466/1 188/465/1 +f 186/466/1 187/467/1 188/465/1 +f 188/465/1 189/468/1 190/172/1 +f 190/172/1 191/469/1 192/173/1 +f 188/465/1 190/172/1 184/174/1 +f 243/177/2 200/470/2 207/471/2 +f 207/471/2 208/472/2 214/175/2 +f 214/175/2 215/473/2 221/474/2 +f 221/474/2 222/475/2 214/175/2 +f 222/475/2 228/176/2 214/175/2 +f 228/176/2 229/476/2 236/477/2 +f 236/477/2 242/478/2 243/177/2 +f 243/177/2 207/471/2 214/175/2 +f 228/176/2 236/477/2 243/177/2 +f 201/180/1 196/479/1 224/178/1 +f 196/479/1 231/480/1 224/178/1 +f 231/480/1 230/481/1 224/178/1 +f 224/178/1 223/482/1 217/483/1 +f 217/483/1 216/484/1 224/178/1 +f 216/484/1 210/179/1 224/178/1 +f 210/179/1 209/485/1 203/486/1 +f 203/486/1 202/487/1 210/179/1 +f 202/487/1 201/180/1 210/179/1 +f 273/183/2 237/488/2 238/489/2 +f 238/489/2 244/490/2 245/491/2 +f 245/491/2 251/492/2 259/181/2 +f 251/492/2 252/493/2 259/181/2 +f 252/493/2 258/494/2 259/181/2 +f 259/181/2 265/495/2 266/182/2 +f 266/182/2 272/496/2 273/183/2 +f 273/183/2 238/489/2 259/181/2 +f 238/489/2 245/491/2 259/181/2 +f 284/185/3 283/497/3 299/186/3 +f 299/186/3 298/498/3 293/499/3 +f 298/498/3 282/500/3 293/499/3 +f 282/500/3 285/501/3 293/499/3 +f 293/499/3 292/184/3 299/186/3 +f 313/187/3 312/202/3 310/188/3 +f 307/190/4 309/194/4 308/191/4 +f 304/193/5 308/191/5 309/194/5 +f 303/196/2 307/190/2 306/192/2 +f 305/198/6 309/194/6 307/190/6 +f 304/200/7 302/502/7 306/192/7 +f 315/201/8 314/503/8 312/202/8 +f 320/205/7 323/209/7 322/206/7 +f 317/208/3 322/206/3 323/209/3 +f 318/211/4 320/205/4 321/207/4 +f 319/213/1 323/209/1 320/205/1 +f 316/215/2 321/207/2 322/206/2 +f 388/217/2 390/504/2 391/218/2 +f 395/220/1 394/505/1 392/221/1 +f 388/223/4 392/233/4 394/224/4 +f 401/226/9 397/236/9 399/227/9 +f 391/229/3 395/506/3 393/230/3 +f 388/223/6 396/240/6 398/232/6 +f 392/221/6 398/239/6 399/234/6 +f 389/219/6 397/241/6 396/235/6 +f 393/230/6 399/227/6 397/236/6 +f 401/226/6 403/228/6 402/237/6 +f 403/228/10 399/234/10 398/239/10 +f 402/237/11 398/232/11 396/240/11 +f 400/238/12 396/235/12 397/241/12 +f 506/242/13 501/507/13 500/243/13 +f 510/245/14 509/508/14 514/246/14 +f 505/248/14 507/244/14 500/243/14 +f 502/250/15 501/507/15 506/242/15 +f 513/252/15 515/255/15 508/253/15 +f 514/246/16 509/508/16 508/253/16 +f 522/256/15 517/509/15 516/257/15 +f 526/259/13 525/510/13 530/260/13 +f 521/262/13 523/258/13 516/257/13 +f 518/264/16 517/509/16 522/256/16 +f 529/266/16 531/269/16 524/267/16 +f 530/260/14 525/510/14 524/267/14 +f 540/270/4 541/511/4 542/271/4 +f 542/271/4 543/512/4 544/272/4 +f 544/272/4 545/513/4 546/514/4 +f 546/514/4 547/515/4 544/272/4 +f 547/515/4 540/270/4 544/272/4 +f 555/273/4 554/516/4 553/274/4 +f 553/274/4 552/517/4 551/275/4 +f 551/275/4 550/518/4 549/519/4 +f 549/519/4 548/520/4 551/275/4 +f 548/520/4 555/273/4 551/275/4 +f 572/276/4 573/521/4 574/277/4 +f 574/277/4 575/522/4 576/278/4 +f 576/278/4 577/523/4 578/524/4 +f 578/524/4 579/525/4 576/278/4 +f 579/525/4 572/276/4 576/278/4 +f 624/279/7 627/300/7 626/280/7 +f 616/282/7 619/291/7 618/283/7 +f 612/285/4 614/526/4 616/282/4 +f 615/286/17 619/291/17 616/282/17 +f 612/288/2 617/284/2 618/283/2 +f 613/290/3 618/283/3 619/291/3 +f 622/293/4 624/279/4 625/281/4 +f 623/295/1 627/300/1 624/279/1 +f 620/297/18 625/281/18 626/280/18 +f 623/299/3 621/527/3 626/280/3 +f 656/301/7 659/305/7 658/302/7 +f 653/304/3 658/302/3 659/305/3 +f 654/307/4 656/301/4 657/303/4 +f 662/310/1 660/528/1 670/311/1 +f 660/528/1 661/529/1 670/311/1 +f 661/529/1 671/530/1 670/311/1 +f 670/311/1 669/531/1 668/532/1 +f 668/532/1 667/533/1 670/311/1 +f 667/533/1 666/534/1 670/311/1 +f 666/534/1 665/535/1 664/309/1 +f 664/309/1 663/536/1 662/310/1 +f 666/534/1 664/309/1 670/311/1 +f 652/312/2 657/303/2 658/302/2 +f 677/316/7 675/537/7 673/538/7 +f 673/538/7 687/539/7 685/314/7 +f 685/314/7 683/540/7 681/315/7 +f 681/315/7 679/541/7 677/316/7 +f 677/316/7 673/538/7 685/314/7 +f 686/319/6 672/542/6 674/543/6 +f 674/543/6 676/544/6 686/319/6 +f 676/544/6 678/545/6 686/319/6 +f 678/545/6 680/546/6 686/319/6 +f 680/546/6 682/317/6 686/319/6 +f 696/322/3 695/337/3 691/547/3 +f 691/547/3 688/320/3 696/322/3 +f 697/323/19 696/548/19 692/324/19 +f 697/323/4 694/549/4 689/550/4 +f 689/550/4 690/326/4 697/323/4 +f 694/325/1 692/324/1 688/328/1 +f 691/330/2 695/551/2 693/331/2 +f 707/333/2 710/356/2 709/334/2 +f 699/336/3 698/552/3 695/337/3 +f 699/338/6 696/548/6 697/323/6 +f 693/340/7 695/553/7 698/341/7 +f 699/338/6 710/356/6 707/333/6 +f 707/333/6 706/347/6 703/349/6 +f 703/349/6 702/343/6 707/333/6 +f 693/327/4 708/554/4 711/339/4 +f 709/357/7 698/341/7 704/345/7 +f 698/341/7 701/346/7 704/345/7 +f 701/346/7 700/555/7 705/344/7 +f 706/347/3 705/351/3 700/348/3 +f 701/350/20 702/556/20 703/349/20 +f 705/351/21 706/347/21 707/352/21 +f 702/343/1 701/557/1 698/354/1 +f 711/355/22 708/558/22 709/334/22 +f 712/358/3 716/364/3 719/359/3 +f 715/360/21 719/359/21 718/361/21 +f 713/363/20 717/366/20 716/364/20 +f 713/363/1 720/559/1 722/365/1 +f 718/361/2 723/560/2 721/367/2 +f 713/370/7 712/358/7 715/360/7 +f 715/360/7 714/561/7 713/370/7 +f 714/561/7 721/368/7 713/370/7 +f 716/364/6 717/562/6 718/371/6 +f 717/562/6 722/563/6 718/371/6 +f 722/563/6 723/564/6 718/371/6 +f 727/374/3 731/388/3 732/372/3 +f 732/372/3 728/565/3 724/373/3 +f 728/375/23 732/391/23 733/376/23 +f 725/379/4 730/566/4 733/376/4 +f 733/376/4 729/397/4 726/378/4 +f 724/380/1 728/375/1 730/377/1 +f 729/382/2 731/567/2 727/383/2 +f 745/385/2 746/411/2 743/386/2 +f 731/388/3 734/568/3 735/389/3 +f 735/390/7 747/398/7 733/376/7 +f 734/392/6 731/569/6 729/393/6 +f 743/386/7 746/411/7 735/390/7 +f 735/390/7 738/409/7 743/386/7 +f 738/409/7 739/395/7 743/386/7 +f 729/397/4 733/376/4 747/398/4 +f 737/402/6 734/392/6 740/570/6 +f 734/392/6 745/412/6 740/570/6 +f 740/570/6 741/400/6 737/402/6 +f 736/403/3 741/406/3 742/396/3 +f 739/395/20 738/571/20 737/404/20 +f 743/405/21 742/396/21 741/406/21 +f 734/408/1 737/572/1 738/409/1 +f 745/385/22 744/573/22 747/410/22 +s 1 +f 2/574/24 3/1/25 1/165/4 +f 4/575/26 5/169/27 3/1/25 +f 6/576/28 7/159/6 5/169/27 +f 8/577/29 9/158/30 7/159/6 +f 10/578/31 11/154/32 9/158/30 +f 12/579/33 13/457/3 11/154/32 +f 14/580/34 15/150/35 13/151/3 +f 16/581/36 17/148/37 15/150/35 +f 18/582/38 19/144/7 17/148/37 +f 20/583/39 21/171/40 19/144/7 +f 22/584/41 23/162/42 21/171/40 +f 24/585/43 1/165/4 23/162/42 +f 26/586/4 27/587/25 25/588/4 +f 28/589/25 29/590/27 27/587/25 +f 30/591/27 31/592/6 29/590/27 +f 32/593/6 33/594/30 31/592/6 +f 34/595/30 35/596/32 33/594/30 +f 36/597/32 37/598/3 35/596/32 +f 38/599/3 39/600/35 37/601/3 +f 40/602/35 41/603/37 39/600/35 +f 42/604/37 43/605/7 41/603/37 +f 44/606/7 45/607/40 43/605/7 +f 46/608/40 47/609/42 45/607/40 +f 48/610/42 25/588/4 47/609/42 +f 50/611/44 57/612/45 49/613/46 +f 57/612/45 66/614/47 65/615/48 +f 65/615/48 54/616/49 53/617/50 +f 53/617/50 62/618/51 61/619/52 +f 62/620/51 69/621/53 61/619/52 +f 71/622/54 50/623/44 49/613/46 +f 63/624/55 72/625/56 71/622/54 +f 56/626/57 63/624/55 55/627/58 +f 55/627/58 68/628/59 56/629/57 +f 60/630/60 67/631/61 59/632/62 +f 51/633/63 60/634/60 59/632/62 +f 69/621/53 52/635/64 51/636/63 +f 29/637/65 54/616/49 66/638/47 +f 66/614/47 27/639/66 29/640/65 +f 27/641/66 50/611/44 25/642/67 +f 25/643/67 72/644/56 47/645/68 +f 47/646/68 64/647/69 45/648/70 +f 45/649/70 56/626/57 43/650/71 +f 41/651/72 56/629/57 68/628/59 +f 41/652/72 60/630/60 39/653/73 +f 39/654/73 52/655/64 37/656/74 +f 35/657/75 52/635/64 70/658/76 +f 35/659/75 62/620/51 33/660/77 +f 33/661/77 54/662/49 31/663/78 +f 65/615/48 8/577/29 6/576/28 +f 6/576/28 57/612/45 65/615/48 +f 2/574/24 57/612/45 4/575/26 +f 71/622/54 2/574/24 24/585/43 +f 24/585/43 63/624/55 71/622/54 +f 22/584/41 55/627/58 63/624/55 +f 67/631/61 20/583/39 18/582/38 +f 18/582/38 59/632/62 67/631/61 +f 14/580/34 59/632/62 16/581/36 +f 69/621/53 14/664/34 12/579/33 +f 12/579/33 61/619/52 69/621/53 +f 8/577/29 61/619/52 10/578/31 +f 82/29/6 93/48/30 81/30/30 +f 79/38/3 90/56/35 78/39/35 +f 76/11/7 87/65/40 75/12/40 +f 83/26/27 94/47/6 82/27/6 +f 80/423/32 91/52/3 79/35/3 +f 77/8/37 88/62/7 76/9/7 +f 84/23/25 95/43/27 83/24/27 +f 74/17/42 85/70/4 73/18/4 +f 81/32/30 92/50/32 80/33/32 +f 78/5/35 89/59/37 77/6/37 +f 73/20/4 96/40/25 84/21/25 +f 75/14/40 86/68/42 74/15/42 +f 97/79/4 120/125/25 108/77/25 +f 99/83/40 110/128/42 98/84/42 +f 106/104/6 117/129/30 105/103/30 +f 103/95/3 114/134/35 102/96/35 +f 100/86/7 111/137/40 99/87/40 +f 107/72/27 118/140/6 106/73/6 +f 104/99/32 115/107/3 103/97/3 +f 101/89/37 112/110/7 100/90/7 +f 108/75/25 119/111/27 107/76/27 +f 98/80/42 109/116/4 97/81/4 +f 105/102/30 116/119/32 104/100/32 +f 102/92/35 113/122/37 101/93/37 +f 131/44/27 142/71/6 130/46/6 +f 128/51/32 139/433/3 127/53/3 +f 125/58/37 136/88/7 124/61/7 +f 132/42/25 143/74/27 131/44/27 +f 122/67/42 133/78/4 121/41/4 +f 129/49/30 140/98/32 128/51/32 +f 126/55/35 137/91/37 125/58/37 +f 121/41/4 144/431/25 132/42/25 +f 123/64/40 134/82/42 122/67/42 +f 130/46/6 141/101/30 129/49/30 +f 127/430/3 138/94/35 126/55/35 +f 124/61/7 135/85/40 123/64/40 +f 146/437/32 157/665/3 145/115/3 +f 153/438/40 164/666/42 152/118/42 +f 150/439/25 161/667/27 149/121/27 +f 145/440/3 168/668/35 156/124/35 +f 147/441/30 158/669/32 146/127/32 +f 154/130/7 165/670/40 153/131/40 +f 151/443/4 162/671/25 150/133/25 +f 148/444/6 159/672/30 147/136/30 +f 155/445/37 166/673/7 154/139/7 +f 152/434/42 163/674/4 151/106/4 +f 149/435/27 160/675/6 148/109/6 +f 156/112/35 167/676/37 155/113/37 +f 173/677/40 184/678/7 172/679/7 +f 180/680/32 191/681/30 179/682/30 +f 170/683/35 181/684/3 169/685/3 +f 177/686/27 188/687/25 176/688/25 +f 174/689/42 185/690/40 173/677/40 +f 169/685/3 192/691/32 180/680/32 +f 171/692/37 182/693/35 170/683/35 +f 178/694/6 189/695/27 177/686/27 +f 175/696/4 186/697/42 174/689/42 +f 172/679/7 183/698/37 171/692/37 +f 179/682/30 190/699/6 178/694/6 +f 176/688/25 187/700/4 175/701/4 +f 194/702/79 198/703/80 199/704/81 +f 264/705/82 215/706/83 270/707/83 +f 270/707/83 214/708/84 271/709/84 +f 235/710/1 194/702/79 199/704/81 +f 193/711/85 198/703/80 275/712/86 +f 250/713/87 242/714/88 236/715/87 +f 195/716/89 207/717/90 200/718/89 +f 263/719/91 221/720/82 264/721/82 +f 235/722/1 199/723/81 206/724/92 +f 197/725/93 205/726/94 198/703/80 +f 277/727/95 200/728/89 243/729/95 +f 198/703/80 206/724/92 199/723/81 +f 249/730/88 243/731/95 242/732/88 +f 235/733/1 206/734/92 213/735/96 +f 204/736/97 212/737/98 205/726/94 +f 274/738/99 207/739/90 276/740/90 +f 205/726/94 213/735/96 206/734/92 +f 235/741/1 213/742/96 220/743/100 +f 212/737/98 218/744/101 219/745/102 +f 216/746/32 264/721/3 210/747/3 +f 213/742/96 219/745/102 220/743/100 +f 231/748/4 249/730/25 230/749/25 +f 202/750/7 276/740/40 201/751/40 +f 235/752/1 220/753/100 227/754/103 +f 218/744/101 226/755/104 219/745/102 +f 210/756/3 270/707/35 209/757/35 +f 220/753/100 226/755/104 227/754/103 +f 196/758/42 277/727/4 231/748/4 +f 224/759/27 249/730/25 250/713/27 +f 235/760/1 227/761/103 234/762/105 +f 226/755/104 232/763/106 233/764/107 +f 209/757/35 271/709/37 203/765/37 +f 226/755/104 234/762/105 227/761/103 +f 201/751/40 195/716/42 196/758/42 +f 224/759/27 256/766/6 223/767/6 +f 232/768/106 240/769/108 233/770/107 +f 223/767/6 257/771/30 217/772/30 +f 233/770/107 241/773/109 234/774/105 +f 203/765/37 274/738/7 202/750/7 +f 216/746/32 257/771/30 263/719/32 +f 235/775/1 234/774/105 241/773/109 +f 263/719/91 228/776/110 222/777/91 +f 240/769/108 248/778/111 241/779/109 +f 235/780/1 241/779/109 248/778/111 +f 240/769/108 246/781/112 247/782/113 +f 248/783/111 254/784/114 255/785/115 +f 225/786/116 252/787/3 232/763/106 +f 253/788/117 238/789/40 260/790/118 +f 235/791/1 248/783/111 255/785/115 +f 246/781/112 254/784/114 247/782/113 +f 239/792/119 245/793/37 246/781/112 +f 254/784/114 262/794/120 255/795/115 +f 197/725/93 266/796/27 204/736/97 +f 260/790/118 237/797/42 267/798/121 +f 235/799/1 255/795/115 262/794/120 +f 254/784/114 260/790/118 261/800/122 +f 267/798/121 273/801/4 193/711/85 +f 262/802/120 268/803/123 269/804/124 +f 193/711/85 272/805/25 197/725/93 +f 211/806/125 259/807/30 218/744/101 +f 235/808/1 262/802/120 269/804/124 +f 260/790/118 268/803/123 261/800/122 +f 232/768/106 251/809/35 239/792/119 +f 269/810/124 275/712/86 194/811/79 +f 246/781/112 244/812/7 253/788/117 +f 218/744/101 258/813/32 225/786/116 +f 235/814/1 269/810/124 194/811/79 +f 267/798/121 275/712/86 268/803/123 +f 204/736/97 265/815/6 211/806/125 +f 256/766/126 228/816/110 257/771/110 +f 250/713/87 229/817/126 256/766/126 +f 274/738/99 214/818/84 208/819/99 +f 279/820/127 294/821/128 288/822/129 +f 283/823/130 297/824/131 299/825/132 +f 281/826/133 282/827/134 280/828/135 +f 278/829/136 284/830/137 279/820/127 +f 291/831/138 294/821/128 290/832/139 +f 280/828/135 289/833/140 281/826/133 +f 279/820/127 287/834/141 278/829/136 +f 291/831/138 292/184/142 293/499/143 +f 281/826/133 293/499/143 285/835/144 +f 289/833/140 291/831/138 281/826/133 +f 284/830/137 290/832/139 279/820/127 +f 296/836/145 299/837/132 297/838/131 +f 297/838/131 300/839/146 296/836/145 +f 287/834/141 297/824/131 278/829/136 +f 280/828/135 298/840/147 296/836/145 +f 280/828/135 300/839/146 286/841/148 +f 324/842/4 339/843/149 331/844/14 +f 330/845/6 337/846/150 329/847/13 +f 328/848/3 335/849/151 327/850/15 +f 326/851/7 333/852/152 325/853/16 +f 331/844/14 338/854/153 330/855/6 +f 329/847/13 336/856/154 328/848/3 +f 327/850/15 334/857/155 326/851/7 +f 325/853/16 332/858/156 324/842/4 +f 333/852/152 342/859/157 341/860/158 +f 338/854/153 347/861/159 346/862/160 +f 337/846/150 344/863/161 336/856/154 +f 335/849/151 342/859/157 334/857/155 +f 332/858/156 341/860/158 340/864/162 +f 339/843/149 340/864/162 347/861/159 +f 338/865/153 345/866/163 337/846/150 +f 336/856/154 343/867/164 335/849/151 +f 340/864/162 355/868/14 347/861/159 +f 346/869/160 353/870/13 345/866/163 +f 344/863/161 351/871/15 343/867/164 +f 342/859/157 349/872/16 341/860/158 +f 347/861/159 354/873/6 346/862/160 +f 345/866/163 352/874/3 344/863/161 +f 343/867/164 350/875/7 342/859/157 +f 341/860/158 348/876/4 340/864/162 +f 356/877/4 371/878/149 363/879/14 +f 362/880/6 369/881/150 361/882/13 +f 360/883/3 367/884/151 359/885/15 +f 358/886/7 365/887/152 357/888/16 +f 363/879/14 370/889/153 362/890/6 +f 361/882/13 368/891/154 360/883/3 +f 359/885/15 366/892/155 358/886/7 +f 357/888/16 364/893/156 356/877/4 +f 365/887/152 374/894/157 373/895/158 +f 370/889/153 379/896/159 378/897/160 +f 369/881/150 376/898/161 368/891/154 +f 367/884/151 374/894/157 366/892/155 +f 364/893/156 373/895/158 372/899/162 +f 371/878/149 372/899/162 379/896/159 +f 370/900/153 377/901/163 369/881/150 +f 368/891/154 375/902/164 367/884/151 +f 372/899/162 387/903/14 379/896/159 +f 378/904/160 385/905/13 377/901/163 +f 376/898/161 383/906/15 375/902/164 +f 374/894/157 381/907/16 373/895/158 +f 379/896/159 386/908/6 378/897/160 +f 377/901/163 384/909/3 376/898/161 +f 375/902/164 382/910/7 374/894/157 +f 373/895/158 380/911/4 372/899/162 +f 436/912/165 418/913/166 437/914/167 +f 440/915/168 417/916/169 436/912/165 +f 441/917/170 416/918/168 440/915/168 +f 442/919/171 412/920/172 441/917/170 +f 414/921/173 442/919/171 443/922/174 +f 415/923/175 443/922/174 439/924/175 +f 419/925/176 439/924/175 438/926/177 +f 417/916/169 405/927/178 418/913/166 +f 422/928/23 431/929/179 423/930/1 +f 420/931/180 429/932/181 421/933/7 +f 427/934/19 434/935/182 426/936/6 +f 425/937/183 432/938/184 424/939/2 +f 421/940/7 430/941/185 422/928/23 +f 424/939/2 428/942/186 420/931/180 +f 426/936/6 433/943/187 425/937/183 +f 423/930/1 435/944/188 427/934/19 +f 416/918/168 404/945/189 417/916/169 +f 412/920/172 408/946/179 416/918/168 +f 413/947/190 409/948/191 412/920/172 +f 414/921/173 410/949/192 413/947/190 +f 415/923/175 411/950/193 414/921/173 +f 419/925/176 407/951/184 415/923/175 +f 407/951/184 475/952/186 471/953/184 +f 411/950/193 471/953/184 470/954/187 +f 454/955/23 463/956/168 455/957/1 +f 452/958/180 461/959/171 453/960/7 +f 459/961/19 466/962/167 458/963/6 +f 457/964/183 464/965/175 456/966/2 +f 453/960/7 462/967/170 454/955/23 +f 456/966/2 460/968/174 452/958/180 +f 458/969/6 465/970/177 457/964/183 +f 455/957/1 467/971/165 459/961/19 +f 469/972/182 411/950/193 470/954/187 +f 409/948/191 469/972/182 468/973/188 +f 472/974/179 409/948/191 468/973/188 +f 404/945/189 472/974/179 473/975/185 +f 405/927/178 473/975/185 474/976/181 +f 475/952/186 405/977/178 474/978/181 +f 418/979/166 406/980/194 419/925/176 +f 418/979/166 438/926/177 437/981/167 +f 448/982/1 436/912/165 444/983/19 +f 445/984/6 438/926/177 446/985/183 +f 447/986/2 443/922/174 451/987/180 +f 450/988/7 441/917/170 449/989/23 +f 446/985/183 439/924/175 447/986/2 +f 444/983/19 437/914/167 445/990/6 +f 451/987/180 442/919/171 450/988/7 +f 449/989/23 440/915/168 448/982/1 +f 488/991/1 468/973/188 484/992/19 +f 485/993/6 470/954/187 486/994/183 +f 487/995/2 475/952/186 491/996/180 +f 490/997/7 473/975/185 489/998/23 +f 486/994/183 471/953/184 487/995/2 +f 484/992/19 469/972/182 485/993/6 +f 491/996/180 474/978/181 490/999/7 +f 489/998/23 472/974/179 488/991/1 +f 477/1000/166 465/970/177 466/1001/167 +f 477/1000/166 497/1002/194 476/1003/176 +f 428/942/186 498/1004/178 429/932/181 +f 498/1005/178 430/941/185 429/1006/181 +f 499/1007/189 431/929/179 430/941/185 +f 431/929/179 494/1008/191 435/944/188 +f 494/1008/191 434/935/182 435/944/188 +f 434/935/182 492/1009/193 433/943/187 +f 492/1009/193 432/938/184 433/943/187 +f 432/938/184 497/1002/194 428/942/186 +f 476/1003/176 496/1010/184 480/1011/175 +f 480/1011/175 492/1009/193 481/1012/173 +f 481/1012/173 493/1013/192 482/1014/190 +f 482/1014/190 494/1008/191 483/1015/172 +f 483/1015/172 495/1016/179 479/1017/168 +f 479/1017/168 499/1007/189 478/1018/169 +f 478/1018/169 498/1005/178 477/1019/166 +f 476/1003/176 464/965/175 465/970/177 +f 464/965/175 481/1012/173 460/968/174 +f 481/1012/173 461/959/171 460/968/174 +f 461/959/171 483/1015/172 462/967/170 +f 483/1015/172 463/956/168 462/967/170 +f 463/956/168 478/1018/169 467/971/165 +f 467/971/165 477/1019/166 466/962/167 +f 538/1020/6 545/1021/183 537/1022/183 +f 536/1023/2 543/1024/180 535/1025/180 +f 534/1026/7 541/1027/23 533/1028/23 +f 539/1029/19 546/1030/6 538/1020/6 +f 537/1022/183 544/1031/2 536/1023/2 +f 535/1025/180 542/1032/7 534/1033/7 +f 533/1028/23 540/1034/1 532/1035/1 +f 532/1035/1 547/1036/19 539/1029/19 +f 563/1037/1 548/1038/19 556/1039/19 +f 562/1040/23 555/1041/1 563/1037/1 +f 560/1042/180 553/1043/7 561/1044/7 +f 558/1045/183 551/1046/2 559/1047/2 +f 556/1039/19 549/1048/6 557/1049/6 +f 561/1050/7 554/1051/23 562/1040/23 +f 559/1047/2 552/1052/180 560/1042/180 +f 557/1049/6 550/1053/183 558/1045/183 +f 570/1054/6 577/1055/183 569/1056/183 +f 568/1057/2 575/1058/180 567/1059/180 +f 566/1060/7 573/1061/23 565/1062/23 +f 571/1063/19 578/1064/6 570/1054/6 +f 569/1056/183 576/1065/2 568/1057/2 +f 567/1059/180 574/1066/7 566/1067/7 +f 565/1062/23 572/1068/1 564/1069/1 +f 564/1069/1 579/1070/19 571/1063/19 +f 587/1071/14 594/1072/6 586/1073/6 +f 585/1074/13 592/1075/3 584/1076/3 +f 583/1077/15 590/1078/7 582/1079/7 +f 581/1080/16 588/1081/4 580/1082/4 +f 580/1082/4 595/1083/14 587/1071/14 +f 586/1084/6 593/1085/13 585/1074/13 +f 584/1076/3 591/1086/15 583/1077/15 +f 582/1079/7 589/1087/16 581/1080/16 +f 609/1088/7 602/1089/16 610/1090/16 +f 607/1091/3 600/1092/15 608/1093/15 +f 605/1094/6 598/1095/13 606/1096/13 +f 611/1097/4 596/1098/14 604/1099/14 +f 610/1090/16 603/1100/4 611/1097/4 +f 608/1093/15 601/1101/7 609/1088/7 +f 606/1096/13 599/1102/3 607/1091/3 +f 604/1099/14 597/1103/6 605/1104/6 +f 631/1105/7 644/1106/37 632/1107/37 +f 638/1108/27 651/1109/25 639/1110/25 +f 628/1111/4 641/1112/42 629/1113/42 +f 635/1114/32 648/1115/30 636/1116/30 +f 632/1107/37 645/1117/35 633/1118/35 +f 639/1110/25 640/1119/4 628/1111/4 +f 629/1113/42 642/1120/40 630/1121/40 +f 636/1116/30 649/1122/6 637/1123/6 +f 633/1118/35 646/1124/3 634/1125/3 +f 630/1121/40 643/1126/7 631/1105/7 +f 637/1123/6 650/1127/27 638/1108/27 +f 634/1128/3 647/1129/32 635/1114/32 +f 641/1112/195 662/1130/196 642/1120/196 +f 648/1115/197 669/1131/198 649/1122/198 +f 645/1117/199 666/1132/200 646/1124/200 +f 643/1126/201 662/1133/196 663/1134/202 +f 650/1127/203 669/1135/198 670/1136/204 +f 646/1137/200 667/1138/205 647/1129/206 +f 644/1106/207 663/1139/202 664/1140/207 +f 650/1127/203 671/1141/208 651/1109/209 +f 641/1112/195 661/1142/210 660/1143/195 +f 647/1129/206 668/1144/197 648/1115/197 +f 645/1117/199 664/1145/207 665/1146/199 +f 651/1109/209 661/1147/210 640/1119/210 +f 673/1148/1 674/1149/211 672/1150/1 +f 675/1151/211 676/1152/4 674/1149/211 +f 677/1153/4 678/1154/22 676/1152/4 +f 679/1155/22 680/546/2 678/1154/22 +f 681/1156/2 682/1157/21 680/546/2 +f 683/1158/21 684/1159/3 682/1157/21 +f 685/1160/3 686/1161/20 684/1162/3 +f 687/1163/20 672/1150/1 686/1161/20 +f 2/574/24 4/575/26 3/1/25 +f 4/575/26 6/576/28 5/169/27 +f 6/576/28 8/577/29 7/159/6 +f 8/577/29 10/578/31 9/158/30 +f 10/578/31 12/579/33 11/154/32 +f 12/579/33 14/664/34 13/457/3 +f 14/580/34 16/581/36 15/150/35 +f 16/581/36 18/582/38 17/148/37 +f 18/582/38 20/583/39 19/144/7 +f 20/583/39 22/584/41 21/171/40 +f 22/584/41 24/585/43 23/162/42 +f 24/585/43 2/574/24 1/165/4 +f 26/586/4 28/589/25 27/587/25 +f 28/589/25 30/591/27 29/590/27 +f 30/591/27 32/593/6 31/592/6 +f 32/593/6 34/595/30 33/594/30 +f 34/595/30 36/597/32 35/596/32 +f 36/597/32 38/1164/3 37/598/3 +f 38/599/3 40/602/35 39/600/35 +f 40/602/35 42/604/37 41/603/37 +f 42/604/37 44/606/7 43/605/7 +f 44/606/7 46/608/40 45/607/40 +f 46/608/40 48/610/42 47/609/42 +f 48/610/42 26/586/4 25/588/4 +f 50/611/44 58/1165/212 57/612/45 +f 57/612/45 58/1166/212 66/614/47 +f 65/615/48 66/638/47 54/616/49 +f 53/617/50 54/662/49 62/618/51 +f 62/620/51 70/1167/76 69/621/53 +f 71/622/54 72/644/56 50/623/44 +f 63/624/55 64/647/69 72/625/56 +f 56/626/57 64/1168/69 63/624/55 +f 55/627/58 67/631/61 68/628/59 +f 60/630/60 68/1169/59 67/631/61 +f 51/633/63 52/655/64 60/634/60 +f 69/621/53 70/658/76 52/635/64 +f 29/637/65 31/1170/78 54/616/49 +f 66/614/47 58/1166/212 27/639/66 +f 27/641/66 58/1165/212 50/611/44 +f 25/643/67 50/623/44 72/644/56 +f 47/646/68 72/625/56 64/647/69 +f 45/649/70 64/1168/69 56/626/57 +f 41/651/72 43/1171/71 56/629/57 +f 41/652/72 68/1169/59 60/630/60 +f 39/654/73 60/634/60 52/655/64 +f 35/657/75 37/1172/74 52/635/64 +f 35/659/75 70/1167/76 62/620/51 +f 33/661/77 62/618/51 54/662/49 +f 65/615/48 53/617/50 8/577/29 +f 6/576/28 4/575/26 57/612/45 +f 2/574/24 49/613/46 57/612/45 +f 71/622/54 49/613/46 2/574/24 +f 24/585/43 22/584/41 63/624/55 +f 22/584/41 20/583/39 55/627/58 +f 67/631/61 55/627/58 20/583/39 +f 18/582/38 16/581/36 59/632/62 +f 14/580/34 51/633/63 59/632/62 +f 69/621/53 51/636/63 14/664/34 +f 12/579/33 10/578/31 61/619/52 +f 8/577/29 53/617/50 61/619/52 +f 82/29/6 94/427/6 93/48/30 +f 79/38/3 91/54/3 90/56/35 +f 76/11/7 88/63/7 87/65/40 +f 83/26/27 95/45/27 94/47/6 +f 80/423/32 92/429/32 91/52/3 +f 77/8/37 89/60/37 88/62/7 +f 84/23/25 96/426/25 95/43/27 +f 74/17/42 86/69/42 85/70/4 +f 81/32/30 93/428/30 92/50/32 +f 78/5/35 90/57/35 89/59/37 +f 73/20/4 85/425/4 96/40/25 +f 75/14/40 87/66/40 86/68/42 +f 97/79/4 109/123/4 120/125/25 +f 99/83/40 111/126/40 110/128/42 +f 106/104/6 118/442/6 117/129/30 +f 103/95/3 115/132/3 114/134/35 +f 100/86/7 112/135/7 111/137/40 +f 107/72/27 119/138/27 118/140/6 +f 104/99/32 116/105/32 115/107/3 +f 101/89/37 113/108/37 112/110/7 +f 108/75/25 120/436/25 119/111/27 +f 98/80/42 110/114/42 109/116/4 +f 105/102/30 117/117/30 116/119/32 +f 102/92/35 114/120/35 113/122/37 +f 131/44/27 143/74/27 142/71/6 +f 128/51/32 140/98/32 139/433/3 +f 125/58/37 137/91/37 136/88/7 +f 132/42/25 144/431/25 143/74/27 +f 122/67/42 134/82/42 133/78/4 +f 129/49/30 141/101/30 140/98/32 +f 126/55/35 138/94/35 137/91/37 +f 121/41/4 133/78/4 144/431/25 +f 123/64/40 135/85/40 134/82/42 +f 130/46/6 142/71/6 141/101/30 +f 127/430/3 139/432/3 138/94/35 +f 124/61/7 136/88/7 135/85/40 +f 146/437/32 158/1173/32 157/665/3 +f 153/438/40 165/1174/40 164/666/42 +f 150/439/25 162/1175/25 161/667/27 +f 145/440/3 157/1176/3 168/668/35 +f 147/441/30 159/1177/30 158/669/32 +f 154/130/7 166/1178/7 165/670/40 +f 151/443/4 163/1179/4 162/671/25 +f 148/444/6 160/1180/6 159/672/30 +f 155/445/37 167/1181/37 166/673/7 +f 152/434/42 164/1182/42 163/674/4 +f 149/435/27 161/1183/27 160/675/6 +f 156/112/35 168/1184/35 167/676/37 +f 173/677/40 185/690/40 184/678/7 +f 180/680/32 192/691/32 191/681/30 +f 170/683/35 182/693/35 181/684/3 +f 177/686/27 189/695/27 188/687/25 +f 174/689/42 186/697/42 185/690/40 +f 169/685/3 181/684/3 192/691/32 +f 171/692/37 183/698/37 182/693/35 +f 178/694/6 190/699/6 189/695/27 +f 175/696/4 187/1185/4 186/697/42 +f 172/679/7 184/678/7 183/698/37 +f 179/682/30 191/681/30 190/699/6 +f 176/688/25 188/687/25 187/700/4 +f 194/702/79 275/712/86 198/703/80 +f 264/705/82 221/1186/82 215/706/83 +f 270/707/83 215/1187/83 214/708/84 +f 193/711/85 197/725/93 198/703/80 +f 250/713/87 249/730/88 242/714/88 +f 195/716/89 276/740/90 207/717/90 +f 263/719/91 222/1188/91 221/720/82 +f 197/725/93 204/736/97 205/726/94 +f 277/727/95 195/716/89 200/728/89 +f 198/703/80 205/726/94 206/724/92 +f 249/730/88 277/727/95 243/731/95 +f 204/736/97 211/806/125 212/737/98 +f 274/738/99 208/1189/99 207/739/90 +f 205/726/94 212/737/98 213/735/96 +f 212/737/98 211/806/125 218/744/101 +f 216/746/32 263/719/32 264/721/3 +f 213/742/96 212/737/98 219/745/102 +f 231/748/4 277/727/4 249/730/25 +f 202/750/7 274/738/7 276/740/40 +f 218/744/101 225/786/116 226/755/104 +f 210/756/3 264/705/3 270/707/35 +f 220/753/100 219/745/102 226/755/104 +f 196/758/42 195/716/42 277/727/4 +f 224/759/27 230/749/25 249/730/25 +f 226/755/104 225/786/116 232/763/106 +f 209/757/35 270/707/35 271/709/37 +f 226/755/104 233/764/107 234/762/105 +f 201/751/40 276/740/40 195/716/42 +f 224/759/27 250/713/27 256/766/6 +f 232/768/106 239/792/119 240/769/108 +f 223/767/6 256/766/6 257/771/30 +f 233/770/107 240/769/108 241/773/109 +f 203/765/37 271/709/37 274/738/7 +f 216/746/32 217/772/30 257/771/30 +f 263/719/91 257/771/110 228/776/110 +f 240/769/108 247/782/113 248/778/111 +f 240/769/108 239/792/119 246/781/112 +f 248/783/111 247/782/113 254/784/114 +f 225/786/116 258/813/32 252/787/3 +f 253/788/117 244/812/7 238/789/40 +f 246/781/112 253/788/117 254/784/114 +f 239/792/119 251/809/35 245/793/37 +f 254/784/114 261/800/122 262/794/120 +f 197/725/93 272/805/25 266/796/27 +f 260/790/118 238/789/40 237/797/42 +f 254/784/114 253/788/117 260/790/118 +f 267/798/121 237/797/42 273/801/4 +f 262/802/120 261/800/122 268/803/123 +f 193/711/85 273/801/4 272/805/25 +f 211/806/125 265/815/6 259/807/30 +f 260/790/118 267/798/121 268/803/123 +f 232/768/106 252/1190/3 251/809/35 +f 269/810/124 268/803/123 275/712/86 +f 246/781/112 245/793/37 244/812/7 +f 218/744/101 259/807/30 258/813/32 +f 267/798/121 193/711/85 275/712/86 +f 204/736/97 266/796/27 265/815/6 +f 256/766/126 229/1191/126 228/816/110 +f 250/713/87 236/1192/87 229/817/126 +f 274/738/99 271/709/84 214/818/84 +f 279/820/127 290/832/139 294/821/128 +f 283/823/130 278/829/136 297/824/131 +f 281/826/133 285/835/144 282/827/134 +f 278/829/136 283/823/130 284/830/137 +f 291/831/138 295/1193/213 294/821/128 +f 280/828/135 286/841/148 289/833/140 +f 279/820/127 288/822/129 287/834/141 +f 291/831/138 290/832/139 292/184/142 +f 281/826/133 291/831/138 293/499/143 +f 289/833/140 295/1193/213 291/831/138 +f 284/830/137 292/184/142 290/832/139 +f 296/836/145 298/840/147 299/837/132 +f 297/838/131 301/1194/214 300/839/146 +f 287/834/141 301/1195/214 297/824/131 +f 280/828/135 282/827/134 298/840/147 +f 280/828/135 296/836/145 300/839/146 +f 324/842/4 332/858/156 339/843/149 +f 330/845/6 338/865/153 337/846/150 +f 328/848/3 336/856/154 335/849/151 +f 326/851/7 334/857/155 333/852/152 +f 331/844/14 339/843/149 338/854/153 +f 329/847/13 337/846/150 336/856/154 +f 327/850/15 335/849/151 334/857/155 +f 325/853/16 333/852/152 332/858/156 +f 333/852/152 334/857/155 342/859/157 +f 338/854/153 339/843/149 347/861/159 +f 337/846/150 345/866/163 344/863/161 +f 335/849/151 343/867/164 342/859/157 +f 332/858/156 333/852/152 341/860/158 +f 339/843/149 332/858/156 340/864/162 +f 338/865/153 346/869/160 345/866/163 +f 336/856/154 344/863/161 343/867/164 +f 340/864/162 348/876/4 355/868/14 +f 346/869/160 354/1196/6 353/870/13 +f 344/863/161 352/874/3 351/871/15 +f 342/859/157 350/875/7 349/872/16 +f 347/861/159 355/868/14 354/873/6 +f 345/866/163 353/870/13 352/874/3 +f 343/867/164 351/871/15 350/875/7 +f 341/860/158 349/872/16 348/876/4 +f 356/877/4 364/893/156 371/878/149 +f 362/880/6 370/900/153 369/881/150 +f 360/883/3 368/891/154 367/884/151 +f 358/886/7 366/892/155 365/887/152 +f 363/879/14 371/878/149 370/889/153 +f 361/882/13 369/881/150 368/891/154 +f 359/885/15 367/884/151 366/892/155 +f 357/888/16 365/887/152 364/893/156 +f 365/887/152 366/892/155 374/894/157 +f 370/889/153 371/878/149 379/896/159 +f 369/881/150 377/901/163 376/898/161 +f 367/884/151 375/902/164 374/894/157 +f 364/893/156 365/887/152 373/895/158 +f 371/878/149 364/893/156 372/899/162 +f 370/900/153 378/904/160 377/901/163 +f 368/891/154 376/898/161 375/902/164 +f 372/899/162 380/911/4 387/903/14 +f 378/904/160 386/1197/6 385/905/13 +f 376/898/161 384/909/3 383/906/15 +f 374/894/157 382/910/7 381/907/16 +f 379/896/159 387/903/14 386/908/6 +f 377/901/163 385/905/13 384/909/3 +f 375/902/164 383/906/15 382/910/7 +f 373/895/158 381/907/16 380/911/4 +f 436/912/165 417/916/169 418/913/166 +f 440/915/168 416/918/168 417/916/169 +f 441/917/170 412/920/172 416/918/168 +f 442/919/171 413/947/190 412/920/172 +f 414/921/173 413/947/190 442/919/171 +f 415/923/175 414/921/173 443/922/174 +f 419/925/176 415/923/175 439/924/175 +f 417/916/169 404/945/189 405/927/178 +f 422/928/23 430/941/185 431/929/179 +f 420/931/180 428/942/186 429/932/181 +f 427/934/19 435/944/188 434/935/182 +f 425/937/183 433/943/187 432/938/184 +f 421/940/7 429/1006/181 430/941/185 +f 424/939/2 432/938/184 428/942/186 +f 426/936/6 434/935/182 433/943/187 +f 423/930/1 431/929/179 435/944/188 +f 416/918/168 408/946/179 404/945/189 +f 412/920/172 409/948/191 408/946/179 +f 413/947/190 410/949/192 409/948/191 +f 414/921/173 411/950/193 410/949/192 +f 415/923/175 407/951/184 411/950/193 +f 419/925/176 406/980/194 407/951/184 +f 407/951/184 406/980/194 475/952/186 +f 411/950/193 407/951/184 471/953/184 +f 454/955/23 462/967/170 463/956/168 +f 452/958/180 460/968/174 461/959/171 +f 459/961/19 467/971/165 466/962/167 +f 457/964/183 465/970/177 464/965/175 +f 453/960/7 461/959/171 462/967/170 +f 456/966/2 464/965/175 460/968/174 +f 458/969/6 466/1001/167 465/970/177 +f 455/957/1 463/956/168 467/971/165 +f 469/972/182 410/949/192 411/950/193 +f 409/948/191 410/949/192 469/972/182 +f 472/974/179 408/946/179 409/948/191 +f 404/945/189 408/946/179 472/974/179 +f 405/927/178 404/945/189 473/975/185 +f 475/952/186 406/980/194 405/977/178 +f 418/979/166 405/977/178 406/980/194 +f 418/979/166 419/925/176 438/926/177 +f 448/982/1 440/915/168 436/912/165 +f 445/984/6 437/981/167 438/926/177 +f 447/986/2 439/924/175 443/922/174 +f 450/988/7 442/919/171 441/917/170 +f 446/985/183 438/926/177 439/924/175 +f 444/983/19 436/912/165 437/914/167 +f 451/987/180 443/922/174 442/919/171 +f 449/989/23 441/917/170 440/915/168 +f 488/991/1 472/974/179 468/973/188 +f 485/993/6 469/972/182 470/954/187 +f 487/995/2 471/953/184 475/952/186 +f 490/997/7 474/976/181 473/975/185 +f 486/994/183 470/954/187 471/953/184 +f 484/992/19 468/973/188 469/972/182 +f 491/996/180 475/952/186 474/978/181 +f 489/998/23 473/975/185 472/974/179 +f 477/1000/166 476/1003/176 465/970/177 +f 477/1000/166 498/1004/178 497/1002/194 +f 428/942/186 497/1002/194 498/1004/178 +f 498/1005/178 499/1007/189 430/941/185 +f 499/1007/189 495/1016/179 431/929/179 +f 431/929/179 495/1016/179 494/1008/191 +f 494/1008/191 493/1013/192 434/935/182 +f 434/935/182 493/1013/192 492/1009/193 +f 492/1009/193 496/1010/184 432/938/184 +f 432/938/184 496/1010/184 497/1002/194 +f 476/1003/176 497/1002/194 496/1010/184 +f 480/1011/175 496/1010/184 492/1009/193 +f 481/1012/173 492/1009/193 493/1013/192 +f 482/1014/190 493/1013/192 494/1008/191 +f 483/1015/172 494/1008/191 495/1016/179 +f 479/1017/168 495/1016/179 499/1007/189 +f 478/1018/169 499/1007/189 498/1005/178 +f 476/1003/176 480/1011/175 464/965/175 +f 464/965/175 480/1011/175 481/1012/173 +f 481/1012/173 482/1014/190 461/959/171 +f 461/959/171 482/1014/190 483/1015/172 +f 483/1015/172 479/1017/168 463/956/168 +f 463/956/168 479/1017/168 478/1018/169 +f 467/971/165 478/1018/169 477/1019/166 +f 538/1020/6 546/1030/6 545/1021/183 +f 536/1023/2 544/1031/2 543/1024/180 +f 534/1026/7 542/1198/7 541/1027/23 +f 539/1029/19 547/1036/19 546/1030/6 +f 537/1022/183 545/1021/183 544/1031/2 +f 535/1025/180 543/1024/180 542/1032/7 +f 533/1028/23 541/1027/23 540/1034/1 +f 532/1035/1 540/1034/1 547/1036/19 +f 563/1037/1 555/1041/1 548/1038/19 +f 562/1040/23 554/1051/23 555/1041/1 +f 560/1042/180 552/1052/180 553/1043/7 +f 558/1045/183 550/1053/183 551/1046/2 +f 556/1039/19 548/1038/19 549/1048/6 +f 561/1050/7 553/1199/7 554/1051/23 +f 559/1047/2 551/1046/2 552/1052/180 +f 557/1049/6 549/1048/6 550/1053/183 +f 570/1054/6 578/1064/6 577/1055/183 +f 568/1057/2 576/1065/2 575/1058/180 +f 566/1060/7 574/1200/7 573/1061/23 +f 571/1063/19 579/1070/19 578/1064/6 +f 569/1056/183 577/1055/183 576/1065/2 +f 567/1059/180 575/1058/180 574/1066/7 +f 565/1062/23 573/1061/23 572/1068/1 +f 564/1069/1 572/1068/1 579/1070/19 +f 587/1071/14 595/1083/14 594/1072/6 +f 585/1074/13 593/1085/13 592/1075/3 +f 583/1077/15 591/1086/15 590/1078/7 +f 581/1080/16 589/1087/16 588/1081/4 +f 580/1082/4 588/1081/4 595/1083/14 +f 586/1084/6 594/1201/6 593/1085/13 +f 584/1076/3 592/1075/3 591/1086/15 +f 582/1079/7 590/1078/7 589/1087/16 +f 609/1088/7 601/1101/7 602/1089/16 +f 607/1091/3 599/1102/3 600/1092/15 +f 605/1094/6 597/1202/6 598/1095/13 +f 611/1097/4 603/1100/4 596/1098/14 +f 610/1090/16 602/1089/16 603/1100/4 +f 608/1093/15 600/1092/15 601/1101/7 +f 606/1096/13 598/1095/13 599/1102/3 +f 604/1099/14 596/1098/14 597/1103/6 +f 631/1105/7 643/1126/7 644/1106/37 +f 638/1108/27 650/1127/27 651/1109/25 +f 628/1111/4 640/1119/4 641/1112/42 +f 635/1114/32 647/1129/32 648/1115/30 +f 632/1107/37 644/1106/37 645/1117/35 +f 639/1110/25 651/1109/25 640/1119/4 +f 629/1113/42 641/1112/42 642/1120/40 +f 636/1116/30 648/1115/30 649/1122/6 +f 633/1118/35 645/1117/35 646/1124/3 +f 630/1121/40 642/1120/40 643/1126/7 +f 637/1123/6 649/1122/6 650/1127/27 +f 634/1128/3 646/1137/3 647/1129/32 +f 641/1112/195 660/1203/195 662/1130/196 +f 648/1115/197 668/1204/197 669/1131/198 +f 645/1117/199 665/1205/199 666/1132/200 +f 643/1126/201 642/1120/196 662/1133/196 +f 650/1127/203 649/1122/198 669/1135/198 +f 646/1137/200 666/1206/200 667/1138/205 +f 644/1106/207 643/1126/201 663/1139/202 +f 650/1127/203 670/1207/204 671/1141/208 +f 641/1112/195 640/1119/210 661/1142/210 +f 647/1129/206 667/1208/205 668/1144/197 +f 645/1117/199 644/1106/207 664/1145/207 +f 651/1109/209 671/1209/208 661/1147/210 +f 673/1148/1 675/1151/211 674/1149/211 +f 675/1151/211 677/1153/4 676/1152/4 +f 677/1153/4 679/1155/22 678/1154/22 +f 679/1155/22 681/1156/2 680/546/2 +f 681/1156/2 683/1158/21 682/1157/21 +f 683/1158/21 685/1210/3 684/1159/3 +f 685/1160/3 687/1163/20 686/1161/20 +f 687/1163/20 673/1148/1 672/1150/1 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png b/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png new file mode 100644 index 0000000000000000000000000000000000000000..3f40b115439e70adea7f5381b9ed186551693fed GIT binary patch literal 3285 zcmaKvdpJ~k+sDV597bfEik*jOo19OH#umv)&eI}fgk(Y#IgTMrBuay(Eun-lv2s3- zOq(_dVa6ecc7-9T?L3RevF{GaiJj_g#_g`=jX`<0Y1K~>}Rx5M)(l;ZtDghAT{5ub#hh@iFJ zVkhJ8dL13Ii*Lsbrlkwv@m77>c2AC#RQ8}mW zZY5FYqVny{SpBnaQT8sY@Ck*yB!JAy);+OJrB{pSXmyX9B)Jux#<{8qBIBR8ZMU|> znix*SD~k@@cA5+Lt1H1M1!(o?fv)N|kY@pWDVX7E|qkuj%4^oB@GK<(p> zlO4QhX-x|mx%qSnfU{P?Wm0<-3B#*|_tj6YX}!m}@*`mkOGI1MZ(4!DVjPe_vgCd9 zCMm~R;39A#?*>O#OVlY@%MR`2dneYNj#vZQsS3x!<)#?8$FQvgm;BY08Ji z^DuJ(t#NfY07Fn>- zyDFO0Qd|t-Cwh97C?=fZx^i{Ai5i^1Bg%KXnY!BB`F_*Bgm%-H0@ONZQ4-1{jR>q) z;JbH68f7JcJjcr&F%=JjD5yn%f=H9r<4svE|fg=19}%3RY^Ax{^Fy@7+~%v z64r?r;hTz?VXCSEc#Z5Pv6LiM@t8@wt;?N#(?(4+MUqm*aGh4EBVNUtC8TCQM2&s(rQ5;aX;V#wdc1odQblfrj9mUX>q&( zfXAxa^$W+tmCS_4cRUwP>606xQf11S_|k{b`9Zza;(+hw{*LD_ye!um{8j+8E{~}H z9xr-l5|lL>&m`<8AqE)TX~0cKHNDKDVknT-d`?LP>FP%)8=j@bxs^k)bwnBR>l@ zgekYN*~V{gO;qbMPOs@74ka0Wyy25#u0RcbsJJX81riQ2KuKvH+}td?sU>Jcdui1F z;2$;3c8$OABa!K*)CloqDXycy&YywP#7V=dg07{E2OKX;*u0g)wDPg_8Akl-XSd*m z3N`PV7bNs{LMgZMGuu!kj`j!$VOp`tHH#(+_~?Rjsh_Ud21;kFwp@MspzLl-G-kRG zo@#1FzqGgPVU)YTEQKr81(3mVccC)85B>UAq(Vpi?8|+3 zo-UBf4hj8H)7Md7U~B(g>tL}4cZ8LQ1DfQH+cmZoLd8R`Q|*1L^sSa~cPf^ZSGaRV z?-nO}SXzT5*A>s_O1dZ#{N|o}cED@UtVb-LH(%-I<^Iypee7nP#=%~N)s|GbhHHW{ zvB4G5&nWDYX-1FuTOee8gTinsY>#f2pMv;1wXzH!~Pn1!)Up$}_`d zDTcP2;sdp>SlEB@!6QW6`Ke4QYoeD?wEv$QJjzZ zQ-Xn8s5R~IPwk^TNJO4p=RkM#tRsVxZut5>H4 zQ6I@KDjFFYzMD|_Sh9fE+LpP#+vEj9URo2$N$l@ZiayS@&pQmykYrQ6Zv#FPQJf3a9Ueg*XRz|cAzXTuD{_Jfz6?J$*E!f7od0Dpv^YK_fqCV&Al^lu zK_|jIOEjA2gjT;@E)dY?2GijDPD#96kQkil^HfWSfmV5zYF`f zsHS!L_$}x_SG`!sicppY2^krlQUT9Z?}`3j|JyhWd(!;8fSH|1uK&@q%|md}3lK>4 z2J5xA5GC(jgGxkU++eiLYL7OJ zFl&j5y6GiEgRd&JM7SHgq{< z=lsIfM`#{UCGkV7T54EQwjzW?lmmX3EZkM-oyo?Q+_$pIj`~m9g?%LEi2{CB{TvFFNhin>Eq@1hF>w144`e4AV z6IQ7{#t#_=nL6R*7{N=BP_x3le*rkTNQ~6OLUU+JnY5qvl~X4)?FM)+8{7ATq1rH3 zCJ_%!HBU6m`tMp~yoqXQ8^i-YL=M0;p-qgBwX;K^qwiEQY!(W@-@}+9t(;;GAUI%; z1yt26QPgONv5c*GqGcL3-%t|*yBmU(*MB9 zdmqBeBVVMM#qCZi{;4h!N3gir&IrJCI|7Si+*snJ3e7k^f6&$c2@Tm8zn&f!e zA&=WoA-QvRlmq6LopN9YNGgg(BK1u%rNxxYY literal 0 HcmV?d00001 From 6011e9df988403f81377c288628cc1c2061340f0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 14 Aug 2024 15:45:58 +0200 Subject: [PATCH 08/23] bedrock sellafite --- changelog | 5 +++ gradle.properties | 2 +- src/main/java/com/hbm/blocks/BlockBase.java | 12 ++++++ src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++- .../hbm/blocks/generic/BlockBedrockOreTE.java | 6 +++ .../blocks/generic/BlockSellafieldSlaked.java | 7 ++++ .../com/hbm/config/FalloutConfigJSON.java | 34 +++++++--------- .../hbm/entity/effect/EntityFalloutRain.java | 5 +-- src/main/java/com/hbm/items/ModItems.java | 1 + src/main/java/com/hbm/lib/Library.java | 40 ++----------------- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 13 files changed, 59 insertions(+), 62 deletions(-) diff --git a/changelog b/changelog index a81d1211a..4ac87786a 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,9 @@ ## Added * Plushies +* Bedrock sellafite + * Replaces bedrock in the bottom of craters + * Looks exactly like slaked sellafite while inheriting all other traits from bedrock (unbreakable, high blast resistance, no mob spawning) + * Overall large craters no longer have the unsightly weird bedrock layer at the bottom ## Changed * Updated chinese localization @@ -45,3 +49,4 @@ * Fixed issues with the spotlight crafting recipes * Fixed various issues with opencomputers integration * Fixed incorrect armor mod descriptions being shown for cards +* Fixed mobs being able to spawn on bedrock ore and bedrock oil diff --git a/gradle.properties b/gradle.properties index 05ee52d24..59cc2040e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5036 +mod_build_number=5057 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/BlockBase.java b/src/main/java/com/hbm/blocks/BlockBase.java index 5487a1731..d2e1b01ed 100644 --- a/src/main/java/com/hbm/blocks/BlockBase.java +++ b/src/main/java/com/hbm/blocks/BlockBase.java @@ -4,6 +4,7 @@ import com.hbm.lib.RefStrings; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; @@ -12,6 +13,7 @@ import net.minecraft.world.World; public class BlockBase extends Block { private boolean beaconable = false; + private boolean canSpawn = true; public BlockBase() { super(Material.rock); @@ -36,6 +38,16 @@ public class BlockBase extends Block { this.beaconable = true; return this; } + + public BlockBase noMobSpawn() { + this.canSpawn = false; + return this; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return this.canSpawn ? super.canCreatureSpawn(type, world, x, y, z) : false; + } @Override public boolean isBeaconBase(IBlockAccess worldObj, int x, int y, int z, int beaconX, int beaconY, int beaconZ) { diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 6736f4aa9..8af544758 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -494,6 +494,7 @@ public class ModBlocks { public static Block oil_spill; public static Block sellafield_slaked; + public static Block sellafield_bedrock; public static Block sellafield; public static Block ore_sellafield_diamond; public static Block ore_sellafield_emerald; @@ -1319,7 +1320,7 @@ public class ModBlocks { ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); - ore_bedrock_oil = new BlockGeneric(Material.rock).setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); + ore_bedrock_oil = new BlockGeneric(Material.rock).noMobSpawn().setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); @@ -1665,6 +1666,7 @@ public class ModBlocks { stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); sellafield_slaked = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield_bedrock = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_bedrock").setBlockUnbreakable().setResistance(6000000.0F).setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); ore_sellafield_diamond = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_diamond").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_diamond"); ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); @@ -2798,6 +2800,7 @@ public class ModBlocks { //RAD register(sellafield_slaked); + register(sellafield_bedrock); register(ore_sellafield_diamond); register(ore_sellafield_emerald); register(ore_sellafield_uranium_scorched); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 04341d2a2..b48ee9954 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -25,6 +25,7 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -48,6 +49,11 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I this.setResistance(1_000_000); } + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityBedrockOre(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java index 6812249a4..be264d979 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.awt.Color; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -9,6 +10,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -50,4 +52,9 @@ public class BlockSellafieldSlaked extends Block { int meta = world.getBlockMetadata(x, y, z); return Color.HSBtoRGB(0F, 0F, 1F - meta / 15F); } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return this == ModBlocks.sellafield_bedrock ? false : super.canCreatureSpawn(type, world, x, y, z); + } } diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 583865950..d267048b1 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -87,6 +87,10 @@ public class FalloutConfigJSON { if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(Blocks.bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock_oil)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.sellafield_bedrock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.iron)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); @@ -96,7 +100,6 @@ public class FalloutConfigJSON { if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(stone)); } - //entries.add(new FalloutEntry().mB(Blocks.grass).prim(new Triplet(ModBlocks.waste_earth, 0, 1))); entries.add(new FalloutEntry() .mB(Blocks.mycelium) .prim(new Triplet(ModBlocks.waste_mycelium, 0, 1))); @@ -209,28 +212,19 @@ public class FalloutConfigJSON { if(matchesOpaque && !b.isOpaqueCube()) return false; if(dist > maxDist * falloffStart && Math.abs(world.rand.nextGaussian()) < Math.pow((dist - maxDist * falloffStart) / (maxDist - maxDist * falloffStart), 2D) * 3D) return false; - if(primaryChance == 1D || rand.nextDouble() < primaryChance) { + MetaBlock conversion = chooseRandomOutcome((primaryChance == 1D || rand.nextDouble() < primaryChance) ? primaryBlocks : secondaryBlocks); + + if(conversion != null) { + if(conversion.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked && conversion.meta <= originalMeta) return false; + if(conversion.block == ModBlocks.sellafield_bedrock && originalBlock == ModBlocks.sellafield_bedrock && conversion.meta <= originalMeta) return false; + if(originalBlock == ModBlocks.sellafield_bedrock && conversion.block != ModBlocks.sellafield_bedrock) return false; + if(y == 0 && conversion.block != ModBlocks.sellafield_bedrock) return false; - if(primaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(primaryBlocks); - if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { - if(block.meta <= originalMeta) return false; - } - world.setBlock(x, y, z, block.block, block.meta, 3); - return true; - - } else { - - if(secondaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(secondaryBlocks); - if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { - if(block.meta <= originalMeta) return false; - } - world.setBlock(x, y, z, block.block, block.meta, 3); + world.setBlock(x, y, z, conversion.block, conversion.meta, 3); return true; } + + return false; } private MetaBlock chooseRandomOutcome(Triplet[] blocks) { diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 519e21fa1..f71c9df54 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -165,14 +165,13 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int depth = 0; - for(int y = 255; y >= 1; y--) { + for(int y = 255; y >= 0; y--) { if(depth >= 3) return; Block b = worldObj.getBlock(x, y, z); if(b.getMaterial() == Material.air || b == ModBlocks.fallout) continue; - if(b == Blocks.bedrock) return; if(b == ModBlocks.volcano_core) { worldObj.setBlock(x, y, z, ModBlocks.volcano_rad_core, worldObj.getBlockMetadata(x, y, z), 3); @@ -211,7 +210,7 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { } float hardness = b.getBlockHardness(worldObj, x, y, z); - if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { + if(y > 0 && dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { if(worldObj.getBlock(x, y - 1, z) == Blocks.air) { for(int i = 0; i <= depth; i++) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index be8235033..b484b92c4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -6289,6 +6289,7 @@ public class ModItems { GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); //Siphon + GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 8df03c941..6da55124b 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -36,10 +36,7 @@ public class Library { static Random rand = new Random(); public static boolean checkForHeld(EntityPlayer player, Item item) { - - if(player.getHeldItem() == null) - return false; - + if(player.getHeldItem() == null) return false; return player.getHeldItem().getItem() == item; } @@ -294,22 +291,6 @@ public class Library { * You won't be missed. */ } - - public static boolean isArrayEmpty(Object[] array) { - if(array == null) - return true; - if(array.length == 0) - return true; - - boolean flag = true; - - for(int i = 0; i < array.length; i++) { - if(array[i] != null) - flag = false; - } - - return flag; - } // Added for sake of doors // Original: Drillgon200: https://thebookofshaders.com/glossary/?search=smoothstep @@ -332,24 +313,11 @@ public class Library { return pos != null; } - public static int getFirstNullIndex(int start, Object[] array) { - for(int i = start; i < array.length; i++) { - if(array[i] == null) - return i; - } - return -1; - } - public static Block getRandomConcrete() { int i = rand.nextInt(20); - - if(i <= 1) - return ModBlocks.brick_concrete_broken; - if(i <= 4) - return ModBlocks.brick_concrete_cracked; - if(i <= 10) - return ModBlocks.brick_concrete_mossy; - + if(i <= 1) return ModBlocks.brick_concrete_broken; + if(i <= 4) return ModBlocks.brick_concrete_cracked; + if(i <= 10) return ModBlocks.brick_concrete_mossy; return ModBlocks.brick_concrete; } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index d71f37cbf..465d595bd 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5036)"; + public static final String VERSION = "1.0.27 BETA (5057)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 788962d18..f14a5d786 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4683,6 +4683,7 @@ tile.sellafield_2.name=Kochendes Sellafit tile.sellafield_3.name=Flammendes Sellafit tile.sellafield_4.name=Infernales Sellafit tile.sellafield_core.name=Sellafit-Corium +tile.sellafield_bedrock.name=Bedrock-Sellafit tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex tile.silo_hatch.name=Siloluke diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ffab06692..c9f28f764 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5770,6 +5770,7 @@ tile.sellafield.2.name=Boiling Sellafite tile.sellafield.3.name=Blazing Sellafite tile.sellafield.4.name=Infernal Sellafite tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_bedrock.name=Bedrock Sellafite tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex tile.silo_hatch.name=Silo Hatch From 9707c4c9613350e3fcbf4cca292374d3963c1101 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 14 Aug 2024 16:40:42 +0200 Subject: [PATCH 09/23] shit --- src/main/java/com/hbm/config/FalloutConfigJSON.java | 1 + .../java/com/hbm/entity/effect/EntityFalloutRain.java | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index d267048b1..ac69f36bb 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -228,6 +228,7 @@ public class FalloutConfigJSON { } private MetaBlock chooseRandomOutcome(Triplet[] blocks) { + if(blocks == null) return null; int weight = 0; diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index f71c9df54..0c1bc8ea6 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -64,8 +64,8 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); stomp(x, z, percent); BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); @@ -82,8 +82,8 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { double distance = Math.hypot(x - posX, z - posZ); if(distance <= getScale()) { double percent = distance * 100 / getScale(); From 9d0e02cc61e2b80e8168e92acd1b7b7049f0263a Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:14:08 -0500 Subject: [PATCH 10/23] god finally i can get rid of this Removed Analyzable implementation; terrible idea Fixed long-standing bug with proxy components, more NBT data!!! --- .../java/com/hbm/handler/CompatHandler.java | 36 +------------------ .../hbm/tileentity/TileEntityProxyCombo.java | 36 ++++++++++++------- 2 files changed, 24 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index ec0250c81..ba0f71478 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -2,20 +2,12 @@ package com.hbm.handler; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.TileEntityProxyCombo; import cpw.mods.fml.common.Optional; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; -import java.lang.reflect.Array; - /** * General handler for OpenComputers compatibility. @@ -54,11 +46,10 @@ public class CompatHandler { @Optional.InterfaceList({ @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SidedComponent", modid = "OpenComputers"), - @Optional.Interface(iface = "li.cil.oc.api.network.Analyzable", modid = "OpenComputers"), @Optional.Interface(iface = "li.cil.oc.api.network.ManagedPeripheral", modid = "OpenComputers"), }) @SimpleComponent.SkipInjection // make sure OC doesn't inject this shit into the interface and crash - public interface OCComponent extends SimpleComponent, SidedComponent, Analyzable, ManagedPeripheral { + public interface OCComponent extends SimpleComponent, SidedComponent, ManagedPeripheral { /** * Must be overridden in the implemented TE, or it will default to "ntm_null". @@ -83,31 +74,6 @@ public class CompatHandler { return true; } - /** - * Function to give more information when analyzing the block. Multiple entries in the array will be sent to the user in the order of the array. - * @return Additional text to add in the form of lang entries (ex: "analyze.basic2"). - */ - @Optional.Method(modid = "OpenComputers") - default String[] getExtraInfo() {return new String[] {"analyze.noInfo"};} - - @Override - @Optional.Method(modid = "OpenComputers") - default Node[] onAnalyze(EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic1").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic2").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic3").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.name", this.getComponentName()).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - String[] extraInfo = getExtraInfo(); - for (String info : extraInfo) { - if(!info.equals("")) - player.addChatComponentMessage(new ChatComponentTranslation(info).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - } - TileEntity te = (TileEntity) this; - if((Array.getLength(this.methods()) == 0 && te instanceof TileEntityProxyCombo) || this.getComponentName().equals("ntm_null")) - player.addChatComponentMessage(new ChatComponentTranslation("analyze.error").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); - return null; - } - /** * Standard methods array from {@link li.cil.oc.api.network.ManagedPeripheral} extending {@link li.cil.oc.api.network.SimpleComponent}. * @return Array of methods to expose to the computer. diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 0f5a8e29b..ecc987e6e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -8,6 +8,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidConnector; import api.hbm.tile.IHeatSource; import com.hbm.inventory.material.Mats; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Optional; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; @@ -32,7 +33,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy boolean fluid; boolean heat; public boolean moltenMetal; - + + // due to some issues with OC deciding that it's gonna call the component name function before the worldObj is loaded + // the component name must be cached to prevent it from shitting itself + String componentName = OCComponent.super.getComponentName(); + public TileEntityProxyCombo() { } public TileEntityProxyCombo(boolean inventory, boolean power, boolean fluid) { @@ -344,6 +349,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.fluid = nbt.getBoolean("fluid"); this.moltenMetal = nbt.getBoolean("metal"); this.heat = nbt.getBoolean("heat"); + if(Loader.isModLoaded("OpenComputers")) + this.componentName = nbt.getString("ocname"); + } @Override @@ -355,6 +363,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("fluid", fluid); nbt.setBoolean("metal", moltenMetal); nbt.setBoolean("heat", heat); + if(Loader.isModLoaded("OpenComputers")) + nbt.setString("ocname", componentName); } @Override @@ -452,27 +462,27 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override // please work @Optional.Method(modid = "OpenComputers") public String getComponentName() { - if(this.getTile() instanceof OCComponent) - return ((OCComponent) this.getTile()).getComponentName(); + if(this.worldObj == null) // OC is going too fast, grab from NBT! + return componentName; + if(this.getTile() instanceof OCComponent) { + if (componentName == null || componentName.equals(OCComponent.super.getComponentName())) { + componentName = ((OCComponent) this.getTile()).getComponentName(); + } + return componentName; + } return OCComponent.super.getComponentName(); } @Override @Optional.Method(modid = "OpenComputers") - public boolean canConnectNode(ForgeDirection side) { //thank you vaer + public boolean canConnectNode(ForgeDirection side) { if(this.getTile() instanceof OCComponent) - return (this.getTile().getBlockMetadata() & 6) == 6 && ((OCComponent) this.getTile()).canConnectNode(side); + return (this.getBlockMetadata() >= 6 && this.getBlockMetadata() <= 11) + && (power || fluid) && + ((OCComponent) this.getTile()).canConnectNode(side); return OCComponent.super.canConnectNode(null); } - @Override - @Optional.Method(modid = "OpenComputers") - public String[] getExtraInfo() { - if(this.getTile() instanceof OCComponent) - return new String[] {"analyze.dummy"}; - return OCComponent.super.getExtraInfo(); - } - @Override @Optional.Method(modid = "OpenComputers") public String[] methods() { From 148a0ab0352ecf9f406b81a12c465d42af60f39a Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:29:50 -0500 Subject: [PATCH 11/23] whoops!!! --- src/main/java/com/hbm/handler/CompatHandler.java | 4 +++- src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java | 2 +- src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index ba0f71478..f61c35c0f 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -35,6 +35,8 @@ public class CompatHandler { } } + public static final String nullComponent = "ntm_null"; + /** * This is an interface made specifically for adding OC compatibility to NTM machines. The {@link li.cil.oc.api.network.SimpleComponent} interface must also be implemented in the TE. *
@@ -60,7 +62,7 @@ public class CompatHandler { @Override @Optional.Method(modid = "OpenComputers") default String getComponentName() { - return "ntm_null"; + return nullComponent; } /** diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index 8818a3d9d..2bf1e9e6e 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -161,7 +161,7 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICom transferRectsGui = new LinkedList(); guiGui = new LinkedList>(); - transferRects.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); transferRectsGui.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); guiGui.add(GUIMachineRefinery.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index ecc987e6e..ae43788db 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,6 +1,7 @@ package com.hbm.tileentity; import api.hbm.block.ICrucibleAcceptor; +import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.inventory.fluid.FluidType; @@ -36,7 +37,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy // due to some issues with OC deciding that it's gonna call the component name function before the worldObj is loaded // the component name must be cached to prevent it from shitting itself - String componentName = OCComponent.super.getComponentName(); + String componentName = CompatHandler.nullComponent; public TileEntityProxyCombo() { } From 3aef7e1577a58ae8a9b603c7445192632920b064 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 15 Aug 2024 20:38:22 +0200 Subject: [PATCH 12/23] i love to drink oil --- changelog | 57 ++------------ .../com/hbm/interfaces/IFluidContainer.java | 13 ---- .../hbm/inventory/fluid/tank/FluidTank.java | 26 ------- .../hbm/inventory/recipes/MixerRecipes.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 4 +- .../java/com/hbm/packet/PacketDispatcher.java | 2 - .../java/com/hbm/packet/TEFluidPacket.java | 73 ------------------ .../render/tileentity/RenderFluidTank.java | 2 +- .../hbm/tileentity/IBufPacketReceiver.java | 10 +++ .../bomb/TileEntityCompactLauncher.java | 44 +++++------ .../bomb/TileEntityLaunchTable.java | 48 ++++++------ .../tileentity/machine/TileEntityCore.java | 16 ++-- .../machine/TileEntityCoreEmitter.java | 2 +- .../machine/TileEntityCoreInjector.java | 32 +++----- .../machine/TileEntityCoreReceiver.java | 19 +---- .../machine/TileEntityDeuteriumTower.java | 4 +- .../TileEntityHeatBoilerIndustrial.java | 4 +- .../machine/TileEntityHeaterHeatex.java | 4 +- .../tileentity/machine/TileEntityITER.java | 36 +++------ .../machine/TileEntityMachineChemfac.java | 4 +- .../TileEntityMachineChemplantBase.java | 6 +- .../machine/TileEntityMachineDiesel.java | 18 +---- .../machine/TileEntityMachineIGenerator.java | 6 +- .../TileEntityMachineLargeTurbine.java | 26 ++----- .../machine/TileEntityMachineMiningLaser.java | 31 ++------ .../TileEntityMachinePlasmaHeater.java | 36 +++------ .../machine/TileEntityMachineRadiolysis.java | 30 +++---- .../TileEntityMachineSolderingStation.java | 2 + .../machine/TileEntityMachineTurbine.java | 33 ++++---- .../machine/TileEntityReactorZirnox.java | 10 ++- .../machine/TileEntitySoyuzLauncher.java | 55 ++++++------- .../machine/TileEntityStorageDrum.java | 37 ++++----- .../oil/TileEntityMachineGasFlare.java | 19 +---- .../oil/TileEntityMachineLiquefactor.java | 37 +++------ .../oil/TileEntityMachineSolidifier.java | 19 +---- .../machine/oil/TileEntityOilDrillBase.java | 6 +- .../machine/rbmk/TileEntityRBMKBoiler.java | 27 +------ .../machine/rbmk/TileEntityRBMKCooler.java | 2 +- .../machine/rbmk/TileEntityRBMKHeater.java | 29 +------ .../network/TileEntityConverterHeRf.java | 6 +- .../network/TileEntityConverterRfHe.java | 16 ++-- .../turret/TileEntityTurretFritz.java | 29 +++---- .../blocks/machine_converter_he_rf.png | Bin 506 -> 751 bytes .../blocks/machine_converter_rf_he.png | Bin 542 -> 738 bytes 44 files changed, 262 insertions(+), 620 deletions(-) delete mode 100644 src/main/java/com/hbm/interfaces/IFluidContainer.java delete mode 100644 src/main/java/com/hbm/packet/TEFluidPacket.java diff --git a/changelog b/changelog index 4ac87786a..84822b6d3 100644 --- a/changelog +++ b/changelog @@ -1,52 +1,11 @@ -## Added -* Plushies -* Bedrock sellafite - * Replaces bedrock in the bottom of craters - * Looks exactly like slaked sellafite while inheriting all other traits from bedrock (unbreakable, high blast resistance, no mob spawning) - * Overall large craters no longer have the unsightly weird bedrock layer at the bottom - ## Changed -* Updated chinese localization -* The fluid burner, heat exchanging heater and cooling tower now use the single steel pipe items instead of the larger steel pipes -* Reduced the amount of condensers needed for crafting the cooling towers -* Liquefactors and solidifiers now have a base processing time of 5 seconds per operation (instead of 10) -* Added some info to the coltass about how the coltan deposit works -* Moved some NEI handlers around, fluid containers are now listed last and radiolysis is now listed right after cracking, since they have the same recipes -* The autocrafter's inputs are now limited to 4 items per slot -* Autocrafters can now receive stacked items again (except for items with containers), if they do not exceed the 4 item threshold -* Bedrock ores now produce bedrock ore fragments instead of straight outputs, one fragment is equivalent to a nugget - * Fragments also differ in stack size when produced, most primary fractions yield 9 (equal to the previous full powder), but things with lower demands/higher value like bismuth now yield substantially less -* The base speed of the large mining drill when mining bedrock has been reduced by 80%, it is now advisable to either invest in upgrades early on or use multiple drills -* The bedrock ore processor now has a base speed of 30 seconds -* Standard, special, HE artillery shells and most missiles now use updated explosion animations -* Decreased hardness of slag blocks -* Removed legacy circuits -* Removed a bunch of random unused items -* UF6 and PuF6 tanks are being phased out, the blocks will remain for now but functionality and recipes have been removed -* Centrifuges are now configurable via `hbmMachines.json` -* Updated refinery GUI -* Crayons now require paper to craft, fixing an issue where some recipes conflict with the dye mixing ones -* Halved energy consumption for night vision goggles -* Solid rocket fuel now uses 100mB of nitric acid instead of redstone and niter -* The nitric acid from sulfuric acid recipe in the chemical plant now yields 1,000mB instead of 500 -* Liquefacting niter now yields 750mB instead of 250 -* Increased demand for coking sour gas to 1,000mB instead of 250 - * This means that sour gas now has a lower concentration of sulfur, making reforming competitive again compared to the previously buffed coking + mixing -* Disperser canisters are now listed below grenades in the creative tab +* To address certain balancing concerns, the RF to HE conversion rate is now 2:5. The HE to RF rate however is still 5:1 + * Because of this, using chains of converters as batteries becomes exponentially lossy with size, therefore the input decay has been removed + * Input decay can still be configured if desired + * No input decay also means that converters are no longer infinite energy sinks +* Power converter recipes have been updated +* Soldering stations will no longer work if the recipe requires no input fluid while fluid is present + * While this does complicate using the soldering station manually, as switching from milgrade to standard ICs requires emptying the solderer with a siphon, it does make automating easier, since soldering stations will no longer treat incomplete milgrade circuits as ICs ## Fixed -* Fixed crash caused by decontaminating items with the radiolysis machine -* Fixed ICFs not forming correctly depending on the orientation -* Fixed electrolyzer metal recipe config not working -* Fixed the meteor charms not working when used on helmets -* Fixed NEI handler for the ICF's consturction showing inconsistent values -* Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first -* Fixed autocrafter's grid not properly updating when using NEI drag and drop for the filter -* Fixed all carbon-based crucible materials having the wrong ID, this fix will shift IDs but prevent collisions with silicon -* Fixed primary bedrock ore fraction roasting yielding one extra pile of crumbs -* Fixed filing cabinets being unreasonably laggy due to the old packet code -* Fixed the secure access door taking way longer to craft than any other door -* Fixed issues with the spotlight crafting recipes -* Fixed various issues with opencomputers integration -* Fixed incorrect armor mod descriptions being shown for cards -* Fixed mobs being able to spawn on bedrock ore and bedrock oil +* Fixed some machines not sending fluid gauge syncs properly \ No newline at end of file diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java deleted file mode 100644 index 817e280e7..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated //legacy crap we can't get rid of because some ancient machines still use this for sync -public interface IFluidContainer { - - //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks - public void setFillForSync(int fill, int index); - - //Args: type, what the type should be set to; index, index for array if there are multiple tanks - public void setTypeForSync(FluidType type, int index); -} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 641769b1c..135582280 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -12,17 +12,13 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFluidPacket; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; @@ -40,7 +36,6 @@ public class FluidTank { FluidType type; int fluid; int maxFluid; - @Deprecated public int index = 0; int pressure = 0; public FluidTank(FluidType type, int maxFluid) { @@ -56,13 +51,6 @@ public class FluidTank { return this; } - @Deprecated // indices are no longer needed - public FluidTank(FluidType type, int maxFluid, int index) { - this.type = type; - this.maxFluid = maxFluid; - this.index = index; - } - public void setFill(int i) { fluid = i; } @@ -108,20 +96,6 @@ public class FluidTank { return 0; } - //Called on TE update - @Deprecated public void updateTank(TileEntity te) { - updateTank(te, 100); - } - @Deprecated public void updateTank(TileEntity te, int range) { - updateTank(te.xCoord, te.yCoord, te.zCoord, te.getWorldObj().provider.dimensionId, range); - } - @Deprecated public void updateTank(int x, int y, int z, int dim) { - updateTank(x, y, z, dim, 100); - } - @Deprecated public void updateTank(int x, int y, int z, int dim, int range) { - PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, range)); - } - //Fills tank from canisters public boolean loadTank(int in, int out, ItemStack[] slots) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 2c3486d83..6b182c05b 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -56,7 +56,7 @@ public class MixerRecipes extends SerializableRecipe { new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_DS, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_COKER, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.PEROXIDE, 800)).setSolid(new OreDictStack(S.dust()))); - register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.NITRIC_ACID, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.PEROXIDE, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7974c0ac2..f3ba05a9c 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -277,8 +277,8 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "RRR", "WWW", "III", 'R', REDSTONE.dust(), 'W', MINGRADE.wireFine(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_template, 1), new Object[] { "IPI", "P P", "IPI", 'I', IRON.ingot(), 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 5bc992dd8..e2dea4a51 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -15,8 +15,6 @@ public class PacketDispatcher { { int i = 0; - //Fluid packet for GUI - wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT); //Signals server to consume items and create template diff --git a/src/main/java/com/hbm/packet/TEFluidPacket.java b/src/main/java/com/hbm/packet/TEFluidPacket.java deleted file mode 100644 index 49338eab5..000000000 --- a/src/main/java/com/hbm/packet/TEFluidPacket.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -@Deprecated -public class TEFluidPacket implements IMessage { - - int x; - int y; - int z; - int fill; - int index; - int type; - - public TEFluidPacket() { } - - public TEFluidPacket(int x, int y, int z, int fill, int index, FluidType type) - { - this.x = x; - this.y = y; - this.z = z; - this.fill = fill; - this.index = index; - this.type = type.getID(); - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - fill = buf.readInt(); - index = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(fill); - buf.writeInt(index); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEFluidPacket m, MessageContext ctx) { - try{ - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof IFluidContainer) { - - IFluidContainer gen = (IFluidContainer) te; - gen.setFillForSync(m.fill, m.index); - gen.setTypeForSync(Fluids.fromID(m.type), m.index); - } - } catch(Exception x) { } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 47b0e405a..aba2c7f91 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -119,7 +119,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); boolean exploded = false; if(item.hasTagCompound() && item.getTagCompound().hasKey(IPersistentNBT.NBT_PERSISTENT_KEY)) { tank.readFromNBT(item.getTagCompound().getCompoundTag(IPersistentNBT.NBT_PERSISTENT_KEY), "tank"); diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java index 4250d6edd..688962e83 100644 --- a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -1,9 +1,19 @@ package com.hbm.tileentity; +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; public interface IBufPacketReceiver { public void serialize(ByteBuf buf); public void deserialize(ByteBuf buf); + + public default void sendStandard(int range) { + TileEntity te = (TileEntity) this; + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(te.xCoord, te.yCoord, te.zCoord, this), new TargetPoint(te.getWorldObj().provider.dimensionId, te.xCoord, te.yCoord, te.zCoord, range)); + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 5c8058961..25ad4ef2a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCompactLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -17,10 +16,10 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -32,6 +31,7 @@ import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -47,7 +47,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver { private ItemStack slots[]; @@ -66,8 +66,8 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public TileEntityCompactLauncher() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 25000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 25000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 25000); + tanks[1] = new FluidTank(Fluids.NONE, 25000); } @Override @@ -177,9 +177,6 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 5, power, maxPower); @@ -192,8 +189,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); MissileStruct multipart = getStruct(slots[0]); @@ -234,6 +230,20 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I } } } + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void updateConnections() { @@ -546,18 +556,6 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index d0003c702..67db230ec 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.CompatHandler; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -18,10 +17,10 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -33,10 +32,10 @@ import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -53,7 +52,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver, CompatHandler.OCComponent { private ItemStack slots[]; @@ -74,8 +73,8 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public TileEntityLaunchTable() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 100000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 100000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 100000); + tanks[1] = new FluidTank(Fluids.NONE, 100000); padSize = PartSize.SIZE_10; height = 10; } @@ -190,9 +189,6 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 5, power, maxPower); @@ -202,9 +198,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide solid += 250; } - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, padSize.ordinal(), 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); MissileStruct multipart = getStruct(slots[0]); @@ -239,6 +233,22 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide } } } + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + buf.writeByte((byte) padSize.ordinal()); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + this.padSize = PartSize.values()[buf.readByte()]; + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void updateConnections() { @@ -543,18 +553,6 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index a30090384..4fd9621ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -49,8 +49,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public TileEntityCore() { super(3); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -140,10 +140,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide radiation(); NBTTagCompound data = new NBTTagCompound(); - data.setInteger("tank0", tanks[0].getTankType().ordinal()); - data.setInteger("tank1", tanks[1].getTankType().ordinal()); - data.setInteger("fill0", tanks[0].getFill()); - data.setInteger("fill1", tanks[1].getFill()); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); data.setInteger("field", field); data.setInteger("heat", heat); data.setInteger("color", color); @@ -167,10 +165,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); - tanks[0].setTankType(Fluids.fromID(data.getInteger("tank0"))); - tanks[1].setTankType(Fluids.fromID(data.getInteger("tank1"))); - tanks[0].setFill(data.getInteger("fill0")); - tanks[1].setFill(data.getInteger("fill1")); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); field = data.getInteger("field"); heat = data.getInteger("heat"); color = data.getInteger("color"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index d85dda700..507035d8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -53,7 +53,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public TileEntityCoreEmitter() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 5b5277eec..ee599910d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -1,9 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreInjector; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreInjector; @@ -28,7 +26,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidContainer, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { public FluidTank[] tanks; public static final int range = 15; @@ -37,8 +35,8 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public TileEntityCoreInjector() { super(4); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -103,11 +101,10 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl this.markDirty(); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - NBTTagCompound data = new NBTTagCompound(); data.setInteger("beam", beam); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); this.networkPack(data, 250); } } @@ -115,29 +112,18 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); beam = data.getInteger("beam"); - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 36b50517a..16f9fe511 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -1,9 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreReceiver; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreReceiver; @@ -33,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public long joules; @@ -41,7 +39,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public TileEntityCoreReceiver() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override @@ -54,7 +52,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn if (!worldObj.isRemote) { - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); power = joules * 5000; @@ -74,6 +71,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn NBTTagCompound data = new NBTTagCompound(); data.setLong("joules", joules); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); joules = 0; @@ -83,6 +81,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); joules = data.getLong("joules"); + tank.readFromNBT(data, "t"); } @Override @@ -105,16 +104,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return this.power; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public void addEnergy(World world, int x, int y, int z, long energy, ForgeDirection dir) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index a05b6fe01..c320c81e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -17,8 +17,8 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { public TileEntityDeuteriumTower() { super(); - tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000, 1); + tanks[0] = new FluidTank(Fluids.WATER, 50000); + tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java index fe337615f..04d66dda3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -43,8 +43,8 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme public TileEntityHeatBoilerIndustrial() { this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.WATER, 64_000, 0); - this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100, 1); + this.tanks[0] = new FluidTank(Fluids.WATER, 64_000); + this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index 73f01dbce..1e9d5885d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -37,8 +37,8 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe public TileEntityHeaterHeatex() { super(1); this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000, 0); - this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000, 1); + this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 3b78b1168..9b0a0ed60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -9,7 +9,6 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -52,7 +51,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { public long power; public static final long maxPower = 10000000; @@ -78,9 +77,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece public TileEntityITER() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WATER, 1280000, 0); - tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 16000, 2); + tanks[0] = new FluidTank(Fluids.WATER, 1280000); + tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000); + plasma = new FluidTank(Fluids.PLASMA_DT, 16000); } @Override @@ -152,9 +151,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece /// END Processing part /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(DirPos pos : getConPos()) { if(tanks[1].getFill() > 0) { @@ -166,6 +162,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece data.setBoolean("isOn", isOn); data.setLong("power", power); data.setInteger("progress", progress); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + plasma.writeToNBT(data, "t2"); if(slots[3] == null) { data.setInteger("blanket", 0); @@ -386,6 +385,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece this.power = data.getLong("power"); this.blanket = data.getInteger("blanket"); this.progress = data.getInteger("progress"); // + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); + plasma.readFromNBT(data, "t2"); } @Override @@ -399,24 +401,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece @Override public long getPower() { return power; } @Override public long getMaxPower() { return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - @Override public void onChunkUnload() { super.onChunkUnload(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 53c90a9c0..329947014 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -44,8 +44,8 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp public TileEntityMachineChemfac() { super(77); - water = new FluidTank(Fluids.WATER, 64_000, tanks.length); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, tanks.length + 1); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 1ca2d230e..77eb13f89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -54,7 +54,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa tanks = new FluidTank[4 * count]; for(int i = 0; i < 4 * count; i++) { - tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity(), i); + tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity()); } } @@ -372,7 +372,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 < 2) { + if(i % 4 < 2) { inTanks.add(tank); } } @@ -493,7 +493,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 > 1) { + if(i % 4 > 1) { outTanks.add(tank); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 9cedc72c2..85ebe4747 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,7 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.inventory.fluid.FluidType; @@ -37,7 +36,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -61,7 +60,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen public TileEntityMachineDiesel() { super(5, 100); - tank = new FluidTank(Fluids.DIESEL, 4_000, 0); + tank = new FluidTank(Fluids.DIESEL, 4_000); } @Override @@ -138,7 +137,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen FluidType last = tank.getTankType(); if(tank.setType(3, 4, slots)) this.unsubscribeToAllAround(last, this); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); @@ -156,6 +154,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen NBTTagCompound data = new NBTTagCompound(); data.setInteger("power", (int) power); data.setInteger("powerCap", (int) powerCap); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -165,6 +164,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen power = data.getInteger("power"); powerCap = data.getInteger("powerCap"); + tank.readFromNBT(data, "t"); } public boolean hasAcceptableFuel() { @@ -237,16 +237,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen return this.maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 325b68a64..7996973c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -62,9 +62,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public TileEntityMachineIGenerator() { super(21); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, waterCap, 0); - tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap, 1); - tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap, 2); + tanks[0] = new FluidTank(Fluids.WATER, waterCap); + tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap); + tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index e18ad96fd..147432fe9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -4,7 +4,6 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerMachineLargeTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -40,7 +39,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 100000000; @@ -59,8 +58,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme super(7); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 512000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 10240000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, 512000); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 10240000); Random rand = new Random(); audioDesync = rand.nextFloat() * 0.05F; @@ -115,12 +114,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[1].unloadTank(5, 6, slots); - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setBoolean("operational", operational); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); this.networkPack(data, 50); } else { this.lastRotor = this.rotor; @@ -175,6 +173,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.power = data.getLong("power"); this.shouldTurn = data.getBoolean("operational"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } public long getPowerScaled(int i) { @@ -197,18 +197,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme nbt.setLong("power", power); } - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public long getPower() { return power; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index e56e47119..e5ad38a1b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -5,10 +5,8 @@ import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMiningLaser; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMiningLaser; @@ -52,7 +50,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; @@ -77,7 +75,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen //slots 1 - 8: upgrades //slots 9 - 29: output super(30); - tank = new FluidTank(Fluids.OIL, 64000, 0); + tank = new FluidTank(Fluids.OIL, 64_000); } @Override @@ -98,7 +96,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.sendFluid(tank, worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); //reset progress if the position changes if(lastTargetX != targetX || @@ -181,6 +178,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen data.setBoolean("beam", beam); data.setBoolean("isOn", isOn); data.setDouble("progress", clientBreakProgress); + tank.writeToNBT(data, "t"); this.networkPack(data, 250); } @@ -203,18 +201,15 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.beam = data.getBoolean("beam"); this.isOn = data.getBoolean("isOn"); this.breakProgress = data.getDouble("progress"); + tank.readFromNBT(data, "t"); } private void buildDam() { - if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); } private void tryFillContainer(int x, int y, int z) { @@ -606,16 +601,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index fde99d15e..8224d6f41 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerPlasmaHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -29,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 100000000; @@ -40,9 +39,9 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme public TileEntityMachinePlasmaHeater() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 16000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 64000, 2); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000); + plasma = new FluidTank(Fluids.PLASMA_DT, 64_000); } @Override @@ -123,12 +122,12 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme /// END Loading plasma into the ITER /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + plasma.writeToNBT(data, "t2"); this.networkPack(data, 50); /// END Notif packets /// } @@ -154,6 +153,9 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme super.networkUnpack(nbt); this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + plasma.readFromNBT(nbt, "t2"); } private void updateType() { @@ -212,24 +214,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.writeToNBT(nbt, "plasma"); } - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 3667aef4b..c468441a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.inventory.fluid.FluidType; @@ -34,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; @@ -48,9 +47,9 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public TileEntityMachineRadiolysis() { super(15); //10 rtg slots, 2 fluid ID slots (io), 2 irradiation slots (io), battery slot tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 2000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 2000, 1); - tanks[2] = new FluidTank(Fluids.NONE, 2000, 2); + tanks[0] = new FluidTank(Fluids.NONE, 2_000); + tanks[1] = new FluidTank(Fluids.NONE, 2_000); + tanks[2] = new FluidTank(Fluids.NONE, 2_000); } @Override @@ -104,6 +103,9 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement this.power = data.getLong("power"); this.heat = data.getInteger("heat"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); + tanks[2].readFromNBT(data, "t2"); } @Override @@ -141,10 +143,10 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("heat", heat); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + tanks[2].writeToNBT(data, "t2"); this.networkPack(data, 50); - - for(byte i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } } @@ -249,18 +251,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement return maxPower; } - /* Fluid Methods */ - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - this.tanks[index].setTankType(type); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index 3d0e34caf..3ccf6ef70 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -158,6 +158,8 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp if(this.tank.getFill() < recipe.fluid.fill) return false; } + if(recipe.fluid == null && this.tank.getFill() > 0) return false; + if(slots[6] != null) { if(slots[6].getItem() != recipe.output.getItem()) return false; if(slots[6].getItemDamage() != recipe.output.getItemDamage()) return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index fb7374282..f6c84baae 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerMachineTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -10,8 +9,7 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIMachineTurbine; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; @@ -21,9 +19,9 @@ import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; @@ -39,7 +37,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { private ItemStack slots[]; @@ -58,8 +56,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public TileEntityMachineTurbine() { slots = new ItemStack[7]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 64000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 128000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, 64_000); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 128_000); } @Override @@ -272,23 +270,20 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[1].unloadTank(5, 6, slots); - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + this.sendStandard(25); } } - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); } - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 34382b3e0..d1a46f430 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -134,6 +134,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC this.heat = data.getInteger("heat"); this.pressure = data.getInteger("pressure"); this.isOn = data.getBoolean("isOn"); + steam.readFromNBT(data, "t0"); + carbonDioxide.readFromNBT(data, "t1"); + water.readFromNBT(data, "t2"); } public int getGaugeScaled(int i, int type) { @@ -229,11 +232,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC data.setInteger("heat", heat); data.setInteger("pressure", pressure); data.setBoolean("isOn", isOn); + steam.writeToNBT(data, "t0"); + carbonDioxide.writeToNBT(data, "t1"); + water.writeToNBT(data, "t2"); this.networkPack(data, 150); - - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - carbonDioxide.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - water.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 5b09fa69d..346d171f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -37,7 +36,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000; @@ -56,8 +55,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public TileEntitySoyuzLauncher() { super(27); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.KEROSENE, 128000, 0); - tanks[1] = new FluidTank(Fluids.OXYGEN, 128000, 1); + tanks[0] = new FluidTank(Fluids.KEROSENE, 128_000); + tanks[1] = new FluidTank(Fluids.OXYGEN, 128_000); } @Override @@ -80,9 +79,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS tanks[0].loadTank(4, 5, slots); tanks[1].loadTank(6, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 8, power, maxPower); @@ -104,6 +100,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS data.setByte("mode", mode); data.setBoolean("starting", starting); data.setByte("type", this.getType()); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); networkPack(data, 250); } @@ -172,24 +170,25 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 2.0F, 100F, 1.0F); } - - public void onChunkUnload() { - - if(audio != null) { + + @Override + public void onChunkUnload() { + + if(audio != null) { audio.stopSound(); audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { audio.stopSound(); audio = null; - } - } + } + } public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); @@ -198,6 +197,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS mode = data.getByte("mode"); starting = data.getBoolean("starting"); rocketType = data.getByte("type"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } public void startCountdown() { @@ -399,18 +400,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS nbt.setTag("items", list); } - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 70d060e0b..8b9f0eb39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -5,15 +5,14 @@ import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerStorageDrum; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIStorageDrum; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -23,6 +22,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -34,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidContainer, IFluidStandardSender, IGUIProvider { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidStandardSender, IBufPacketReceiver, IGUIProvider { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; @@ -43,8 +43,8 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public TileEntityStorageDrum() { super(24); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000, 0); - tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000, 1); + tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000); + tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000); } @Override @@ -145,15 +145,24 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu this.sendFluidToAll(tanks[0], this); this.sendFluidToAll(tanks[1], this); - - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.sendStandard(25); if(rad > 0) { radiate(worldObj, xCoord, yCoord, zCoord, rad); } } } + + @Override public void serialize(ByteBuf buf) { + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void radiate(World world, int x, int y, int z, float rads) { @@ -233,18 +242,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public int[] getAccessibleSlotsFromSide(int side) { return slots_arr; } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 6e4ef2791..1bfbfe835 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -4,10 +4,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineGasFlare; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; @@ -43,7 +41,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -55,7 +53,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public TileEntityMachineGasFlare() { super(6); - tank = new FluidTank(Fluids.GAS, 64000, 0); + tank = new FluidTank(Fluids.GAS, 64000); } @Override @@ -112,7 +110,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.setType(3, slots); tank.loadTank(1, 2, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); int maxVent = 50; int maxBurn = 10; @@ -186,6 +183,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements data.setLong("power", this.power); data.setBoolean("isOn", isOn); data.setBoolean("doesBurn", doesBurn); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } else { @@ -250,6 +248,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.doesBurn = nbt.getBoolean("doesBurn"); + tank.readFromNBT(nbt, "t"); } @Override @@ -278,16 +277,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.power = i; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 04f78fad3..a97f9574d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -3,11 +3,9 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerLiquefactor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILiquefactor; @@ -35,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -49,7 +47,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public TileEntityMachineLiquefactor() { super(4); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -62,7 +60,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); - tank.updateTank(this); this.updateConnections(); @@ -85,6 +82,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen data.setInteger("progress", this.progress); data.setInteger("usage", this.usage); data.setInteger("processTime", this.processTime); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -124,22 +122,14 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public boolean canProcess() { - if(this.power < usage) - return false; - - if(slots[0] == null) - return false; + if(this.power < usage) return false; + if(slots[0] == null) return false; FluidStack out = LiquefactionRecipes.getOutput(slots[0]); - if(out == null) - return false; - - if(out.type != tank.getTankType() && tank.getFill() > 0) - return false; - - if(out.fill + tank.getFill() > tank.getMaxFill()) - return false; + if(out == null) return false; + if(out.type != tank.getTankType() && tank.getFill() > 0) return false; + if(out.fill + tank.getFill() > tank.getMaxFill()) return false; return true; } @@ -171,6 +161,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); } @Override @@ -200,16 +191,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c6fd09ecc..5f0545326 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -3,10 +3,8 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUISolidifier; @@ -35,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -49,7 +47,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public TileEntityMachineSolidifier() { super(5); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -63,7 +61,6 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.setType(4, slots); - tank.updateTank(this); this.updateConnections(); @@ -84,6 +81,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement data.setInteger("progress", this.progress); data.setInteger("usage", this.usage); data.setInteger("processTime", this.processTime); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -180,6 +178,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); } @Override @@ -208,16 +207,6 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public long getMaxPower() { return maxPower; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 65ee56d44..a8b2e4555 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -104,10 +104,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.overLevel = Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) + 1; int abLevel = Math.min(UpgradeManager.getLevel(UpgradeType.AFTERBURN), 3); - for(int i = 0; i < tanks.length; i++) { - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - int toBurn = Math.min(tanks[1].getFill(), abLevel * 10); if(toBurn > 0) { @@ -161,6 +157,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("indicator", this.indicator); + for(int i = 0; i < tanks.length; i++) tanks[i].writeToNBT(data, "t" + i); this.networkPack(data, 25); } @@ -169,6 +166,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.power = nbt.getLong("power"); this.indicator = nbt.getInteger("indicator"); + for(int i = 0; i < tanks.length; i++) tanks[i].readFromNBT(nbt, "t" + i); } public boolean canPump() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 7e735a4a9..7a1a6ec0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -9,7 +9,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -34,7 +33,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidContainer, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; @@ -44,8 +43,8 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public TileEntityRBMKBoiler() { super(0); - feed = new FluidTank(Fluids.WATER, 10000, 0); - steam = new FluidTank(Fluids.STEAM, 1000000, 1); + feed = new FluidTank(Fluids.WATER, 10000); + steam = new FluidTank(Fluids.STEAM, 1000000); } @Override @@ -57,8 +56,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void updateEntity() { if(!worldObj.isRemote) { - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.consumption = 0; this.output = 0; @@ -149,24 +146,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index fffdc99a2..bd7250cf7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -27,7 +27,7 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidSt public TileEntityRBMKCooler() { super(); - this.tank = new FluidTank(Fluids.CRYOGEL, 8000, 0); + this.tank = new FluidTank(Fluids.CRYOGEL, 8_000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 909e30a82..941fb9637 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -4,9 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKHeater; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -30,15 +28,15 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidContainer, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; public TileEntityRBMKHeater() { super(1); - this.feed = new FluidTank(Fluids.COOLANT, 16_000, 0); - this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000, 1); + this.feed = new FluidTank(Fluids.COOLANT, 16_000); + this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000); } @Override @@ -53,9 +51,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I feed.setType(0, slots); - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - if(feed.getTankType().hasTrait(FT_Heatable.class)) { FT_Heatable trait = feed.getTankType().getTrait(FT_Heatable.class); HeatingStep step = trait.getFirstStep(); @@ -114,24 +109,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index 723b414c9..3d7072304 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -24,7 +24,7 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn public final long maxPower = 5_000_000; public static long heInput = 5; public static long rfOutput = 1; - public static double inputDecay = 0.05; + public static double inputDecay = 0.0; public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @Override @@ -93,13 +93,13 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn public void readIfPresent(JsonObject obj) { heInput = IConfigurableMachine.grab(obj, "L:HE_Used", heInput); rfOutput = IConfigurableMachine.grab(obj, "L:RF_Created", rfOutput); - inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay", inputDecay); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); } @Override public void writeConfig(JsonWriter writer) throws IOException { writer.name("L:HE_Used").value(heInput); writer.name("L:RF_Created").value(rfOutput); - writer.name("D:inputDecay").value(inputDecay); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 8e939ba1d..989b8e354 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -17,9 +17,9 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn public long power; public final long maxPower = 5_000_000; - public static long rfInput = 1; + public static long rfInput = 2; public static long heOutput = 5; - public static double inputDecay = 0.05; + public static double inputDecay = 0.0; public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @@ -73,15 +73,15 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn @Override public void readIfPresent(JsonObject obj) { - rfInput = IConfigurableMachine.grab(obj, "L:RF_Used", rfInput); - heOutput = IConfigurableMachine.grab(obj, "L:HE_Created", heOutput); - inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay", inputDecay); + rfInput = IConfigurableMachine.grab(obj, "L:RF_Used2", rfInput); + heOutput = IConfigurableMachine.grab(obj, "L:HE_Created2", heOutput); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); } @Override public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:RF_Used").value(rfInput); - writer.name("L:HE_Created").value(heOutput); - writer.name("D:inputDecay").value(inputDecay); + writer.name("L:RF_Used2").value(rfInput); + writer.name("L:HE_Created2").value(heOutput); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 0b6a4b8d7..924ec352c 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -7,7 +7,6 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -31,13 +30,13 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidContainer, IFluidStandardReceiver { +public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidStandardReceiver { public FluidTank tank; public TileEntityTurretFritz() { super(); - this.tank = new FluidTank(Fluids.DIESEL, 16000, 0); + this.tank = new FluidTank(Fluids.DIESEL, 16000); } @Override @@ -142,7 +141,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl if(!worldObj.isRemote) { tank.setType(9, 9, slots); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(int i = 1; i < 10; i++) { @@ -155,6 +153,19 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl } } } + + @Override + protected NBTTagCompound writePacket() { + NBTTagCompound data = super.writePacket(); + tank.writeToNBT(data, "t"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tank.readFromNBT(nbt, "t"); + } @Override //TODO: clean this shit up protected void updateConnections() { @@ -197,16 +208,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl return new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png index c3535d9f6802cfaa81357cd05c32e72913674445..f510f724a6ed6c9161d2b3020e16e568c5333e2e 100644 GIT binary patch delta 738 zcmV<80v-MO1MdZp8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0;WksK~y-6ZIdyG zR7V)ce{bi#o!!0TxIJCDtT_WqaEXEz_7Y+jNOO=bg^+-dLXfnEBu!EUn~=sv2v^vM zD4txYRjguC91q#xMRMrf?z>y}-MzOnJKviWd;6l`*Urapet$Fn?+Y$p{=$nC%u1;W z0MUL{0T6MBNC|aL(7K8-77^k4_3wz| znDzC0gi2M2)d0cms9^++JEgfy$cr@97Xj!42go^ZG%HMH3-9yEX(QdX53vmOaI|R27>|H+uLQ7wOS4D zJ)KU6o36>H$)89xH#Nwz9Dut^XBiIn>Gxl8`?J&UoWw65y&w!>efc~j$#i$loaugl z_3AZ(K=I_s@BDPShRHJW!;JC4A+PsFjP^&2hFd8Y=i&apBd%Qenz^}oo;{1FDa>ZO z+wF1-4;HdvhC2ES&GMK7)Y&0C;I{ U`WWH_X8-^I07*qoM6N<$f*zu3A^-pY delta 491 zcmV-BmvnSZ>WtIu?o1HUn#*GIg=c|6p8nZUwU66?O4DBhe0Zc8b^09!z`EK4S8 zr9prPqD_<_TH<(B6or-4_q~`?*ELtsCXFeev4dVZNfLWANYnK7RBPifgx>bS;KwC| zu`AEiKObu`;+U)f(2Q~|iHyx=gUxSe>g#gA_L9NsvSdA@s3*<@$`l%4WH=>oGk-;U zrwvX76Ij@2IH6XuT`X30>+ei;C0*0WI h_L#^QhylR!ye-yw^s#ba&jtVh002ovPDHLkV1m%+*scHo diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png index 21e102708fe18dfd1c6bbf726235b59aef238d05..9a865bd8f7c1e2d4a87aa04d37758e4eb2049cc0 100644 GIT binary patch delta 725 zcmV;`0xJEU1mXpd8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0+~rfK~y-6Rg=$a zR96^=pYvmKl1UnG(6l-bDOnf@bR`Iaf|5<4U6fH5l?v|t6AWZ0g+f=|SHVCRMT(1v zEws>opdvE4ghAR4i3T$@dtt z@0_Cwfwx)4e@~uJ6gl4wp7QPS%K%to450XALi6SG9`>s%tgo+=Wf{&n+U+*;^YhHj z&C&1o`Qhz=fsPns8vyUA2yntVM1&vRHhB)M3e*AIzkhHY5kZai&~CRs1hf=P8>p%Z zV+=D>u)KVX5CWT<8MCvq7-JZOz>HSoEoqT}NZrtsqSb0qmL*jMA%xKyk6iwJ7&xfo z2oSMFQDBTA0EZzm;~dU8yoYDcGQ0<+pvme;Wmy6WTh~qF(l~uQZJ$05ONg8L? z(ozb58Goag(2QJ1thJUrFPJpY|KcitJ$l66-X7cA+hgG5n-L#n&L1-x4~>y<0KS0V6N+uDl&NvKc*1RM1NvEs4yB`8HVw;p+5Xs03Qx7fu?Eig&FX$sNhtf;ZTy}IL|AJH`}(8 z$z&>(%1(`H5|Gd5!vK1(*N>2}Wxg@S04 z!~~EyLeO-vX#BkLeg9=O&;}?%?w_yUQ$jAi^6Yuu(|>XxMkXe0U}#2pAc+c-Nt-dh zuBp$%7~P8ptxNZmBA$CH*!I3El}s2OkrKEFAbq3_&W&a51(K+RlPCf3R_j!L9Ku8! zJe(30M3VHt_#iU3Xx5mlMzDOpru0AfX^NF54n#Z5KBJTV7$PTN{{@;B{{s6C@quZ# Sf$#tT00{s|MNUMnLSTZ+J?!`Z From 25863311bd90207752da379b3dcf73e39c09a978 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:13:33 -0500 Subject: [PATCH 13/23] New compatibility! This uses OpenComputer's Floppy Disk API, allowing mods to create new loot disks and add them to the tables (this took me a while; I love this system so much, it's my baby :heart:). --- .../java/com/hbm/handler/CompatHandler.java | 167 ++++++++++- src/main/java/com/hbm/main/MainRegistry.java | 5 +- src/main/resources/assets/hbm/disks/README.md | 13 + .../hbm/disks/pwrangler/usr/bin/PWRangler.lua | 274 ++++++++++++++++++ 4 files changed, 454 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/hbm/disks/README.md create mode 100644 src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index f61c35c0f..fe0b08ca0 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -1,13 +1,30 @@ package com.hbm.handler; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Optional; +import li.cil.oc.api.Items; +import li.cil.oc.api.fs.FileSystem; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.*; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.Callable; + +import static com.hbm.main.CraftingManager.addShapelessAuto; +import static li.cil.oc.api.FileSystem.asReadOnly; +import static li.cil.oc.api.FileSystem.fromClass; /** * General handler for OpenComputers compatibility. @@ -15,13 +32,29 @@ import net.minecraftforge.common.util.ForgeDirection; */ public class CompatHandler { + /** + * Used for converting a steam type to an integer (compression levels). + * @param type Steam type. + * @return Object[] array containing an int with the "compression level" + */ public static Object[] steamTypeToInt(FluidType type) { - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - return new Object[] {3}; + switch(type.getID()) { + default: + return new Object[] {0}; + case(4): // Fluids.HOTSTEAM + return new Object[] {1}; + case(5): // Fluids.SUPERHOTSTEAM + return new Object[] {2}; + case(6): // Fluids.ULTRAHOTSTEAM + return new Object[] {3}; + } } + /** + * Used for converting a compression level to a steam type. + * @param arg Steam compression level. + * @return FluidType of the steam type based on the compression level. + */ public static FluidType intToSteamType(int arg) { switch(arg) { default: @@ -35,6 +68,132 @@ public class CompatHandler { } } + /** + * Allows for easy creation of read-only filesystems. Primarily for floppy disks. + * (Though maybe reading directly from VOTV drives as filesystems could be implemented. :3) + **/ + private static class ReadOnlyFileSystem implements Callable { + + private final String name; + + ReadOnlyFileSystem(String name) { + this.name = name; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public li.cil.oc.api.fs.FileSystem call() throws Exception { + return asReadOnly(fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + FloppyDisk.sanitizeName(name))); + } + } + + // Floppy disk class. + public static class FloppyDisk { + // Specifies the callable ReadOnlyFileSystem to allow OC to access the floppy. + public final ReadOnlyFileSystem fs; + // Specifies the color of the floppy disk (0-16 colors defined by OC). + public final Byte color; + // Set after loading the disk; allows for adding a recipe to the item. + public ItemStack item; + + FloppyDisk(String name, int color) { + this.fs = new ReadOnlyFileSystem(FloppyDisk.sanitizeName(name)); + this.color = (byte) color; + } + + // Disk names will be sanitized before the FileSystem is created. + // This only affects the location/directory, not the display name. + // (Prevents filesystems from breaking/crashing due to having file separators, wildcards, etc. + public static String sanitizeName(String input) { + return input.toLowerCase().replaceAll("\\W", ""); + } + } + + /** + * Simple enum for mapping OC color ordinals to a nicer format for adding new disks. + */ + public enum OCColors { + BLACK, //0x444444 + RED, //0xB3312C + GREEN, //0x339911 + BROWN, //0x51301A + BLUE, //0x6666FF + PURPLE, //0x7B2FBE + CYAN, //0x66FFFF + LIGHTGRAY, //0xABABAB + GRAY, //0x666666 + PINK, //0xD88198 + LIME, //0x66FF66 + YELLOW, //0xFFFF66 + LIGHTBLUE, //0xAAAAFF + MAGENTA, //0xC354CD + ORANGE, //0xEB8844 + WHITE //0xF0F0F0 + } + + // Where all disks are stored with their name and `FloppyDisk` class. + public static HashMap disks = new HashMap<>(); + + /** + * Called in the FML PostLoad stage, after the OC API loads. + *
+ * Loads various parts of OC compatibility. + */ + public static void init() { + if(Loader.isModLoaded("OpenComputers")) { + /* + For anyone wanting to add their own floppy disks, + read the README found in assets.hbm.disks. + */ + + // Idea/Code by instantnootles + disks.put("PWRangler", new FloppyDisk("PWRangler", OCColors.CYAN.ordinal())); + + // begin registering disks + Logger logger = LogManager.getLogger("HBM"); + logger.info("Loading OpenComputers disks..."); + if(disks.size() == 0) { + logger.info("No disks registered; see com.hbm.handler.CompatHandler.disks"); + return; + } + disks.forEach((s, disk) -> { + + // Test if the disk path even exists. + FileSystem fs = fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + disk.fs.name); + + if (fs == null) { // Disk path does NOT exist, and it should not be loaded. + + logger.error("Error loading disk: " + s + " at /assets/" + RefStrings.MODID + "/disks/" + disk.fs.name); + logger.error("This is likely due to the path to the disk being non-existent."); + + } else { // Disk path DOES exist, and it should be loaded. + + disk.item = Items.registerFloppy(s, disk.color, disk.fs); // The big part, actually registering the floppies! + logger.info("Registered disk: " + s + " at /assets/" + RefStrings.MODID + "/disks/" + disk.fs.name); + + } + }); + logger.info("OpenComputers disks registered."); + + // OC disk recipes! + List floppyDisks = new RecipesCommon.OreDictStack("oc:floppy").toStacks(); + + if(floppyDisks.size() > 0) { //check that floppy disks even exist in oredict. + + // Recipes must be initialized here, since if they were initialized in `CraftingManager` then the disk item would not be created yet. + addShapelessAuto(disks.get("PWRangler").item, new Object[] {"oc:floppy", new ItemStack(ModBlocks.pwr_casing)}); + + logger.info("OpenComputers disk recipe added for PWRangler."); + } else { + logger.info("OpenComputers floppy disk oredict not found, recipes cannot be loaded!"); + } + + // boom, OC disks loaded + logger.info("OpenComputers disks loaded."); + } + } + + // Null component name, default to this if broken to avoid NullPointerExceptions. public static final String nullComponent = "ntm_null"; /** diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index caccee6f3..d4f3860b7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -877,7 +877,10 @@ public class MainRegistry { proxy.registerMissileItems(); BlockMotherOfAllOres.init(); - + + // Load compatibility for OC. + CompatHandler.init(); + //expand for the largest entity we have (currently Quackos who is 17.5m in diameter, that's one fat duck) World.MAX_ENTITY_RADIUS = Math.max(World.MAX_ENTITY_RADIUS, 8.75); diff --git a/src/main/resources/assets/hbm/disks/README.md b/src/main/resources/assets/hbm/disks/README.md new file mode 100644 index 000000000..973c2bfa1 --- /dev/null +++ b/src/main/resources/assets/hbm/disks/README.md @@ -0,0 +1,13 @@ +# OpenComputers Floppy Disks + +This directory is where the contents of floppy disks registered by `com.hbm.handler.CompatHandler` reside. + +New floppy disks can be added by: +1. Adding a line inside the `init()` function in the `CompatHandler` class to add the floppy disk to the list of disks to register + (actually registering the disks is done automatically by the handler.) +2. Adding the Lua (Preferably 5.3) files to the directory path based on the name you chose for your floppy disk. +
Note: the names of drives are "sanitized", meaning the directory path will be the name you selected but all lowercase and stripped of any non-word character. + (A-Z, a-z, 0-9, _) +3. Add a recipe to the disk at the end of the `init()` function in the `CompatHandler` class, though this step is not required. + +After those steps are complete, a new floppy disk should be registered into OC with a recipe (if added). \ No newline at end of file diff --git a/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua new file mode 100644 index 000000000..0b86935da --- /dev/null +++ b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua @@ -0,0 +1,274 @@ +local component = require "component" +local event = require "event" +local gpu = component.gpu +local call = component.invoke + +colorGradient = {0x00FF00, 0x6BEE00, 0x95DB00, 0xB0C800, 0xC5B400, 0xD79F00, 0xE68700, 0xF46900, 0xFC4700, 0xFF0000} +coreHeatESTOP = true +coolantLossESTOP = true + +runSig = true + +coldCoolantLevel = 0 +coldCoolantOutflow = 0 +prevCoolantFlow = 0 + +hotCoolantLevel = 0 +hotCoolantOutflow = 0 +prevHotCoolantFlow = 0 + +gpu.fill(1,1,160,160," ") + +-- Button Bullshit +function newButton(x, y, width, height, colorUp, colorDown, func) + local button = {xpos = 0, ypos = 0, width = 0, height = 0, colorUp = 0, colorDown = 0, func = nil} + button.xpos = x + button.ypos = y + button.width = width + button.height = height + button.colorUp = colorUp + button.colorDown = colorDown + button.func = func + return button +end + +function drawButton(button, color) + component.gpu.setBackground(color) + component.gpu.fill(button.xpos, button.ypos, button.width, button.height, " ") + component.gpu.setBackground(0x000000) +end + +pressedButton = nil +function buttonPress(_, _, x, y, _, _) + for _, b in pairs(buttons) do + if((x>=b.xpos) and (x<(b.xpos+b.width)) and (y>=b.ypos) and (y<(b.ypos+b.height)) ) then + drawButton(b, b.colorDown) + pressedButton = b + end + end +end + +function buttonRelease(_, _, x, y, _, _) + drawButton(pressedButton, pressedButton.colorUp) + pressedButton.func() + pressedButton = nil +end +--Button bullshit ends + +buttons = {} + +buttons[1] = newButton(61, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+1) end) +buttons[2] = newButton(68, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+5) end) +buttons[3] = newButton(75, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+10) end) + +buttons[4] = newButton(61, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-1) end) +buttons[5] = newButton(68, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-5) end) +buttons[6] = newButton(75, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-10) end) + +buttons[7] = newButton(82, 6, 11, 5, 0xFF0000, 0xAA0000, function() component.proxy(pwrController).setLevel(100) end) +buttons[8] = newButton(94, 6, 12, 2, 0x00FF00, 0x00AA00, function() coreHeatESTOP = not coreHeatESTOP if coreHeatESTOP == true then buttons[8].colorUp = 0x00FF00 buttons[8].colorDown = 0x00AA00 else buttons[8].colorUp = 0xFF0000 buttons[8].colorDown = 0xAA0000 end end) +buttons[9] = newButton(94, 9, 12, 2, 0x00FF00, 0x00AA00, function() coolantLossESTOP = not coolantLossESTOP if coolantLossESTOP == true then buttons[9].colorUp = 0x00FF00 buttons[9].colorDown = 0x00AA00 else buttons[9].colorUp = 0xFF0000 buttons[9].colorDown = 0xAA0000 end end) + +buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end) + +for address, _ in component.list("ntm_pwr_control") do + pwrController = address +end + +gpu.setForeground(0xAAAAAA) + +--Control rods +gpu.fill(60,4,54,8,"â–ˆ") + +--Outlet +gpu.fill(91,13,16,8,"â–ˆ") + +--Inlet +gpu.fill(91,30,16,8,"â–ˆ") + +gpu.set(61,13," █████████████████████") +gpu.set(61,14," â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ") +gpu.set(61,15," â–ˆ â–ˆ █▄█▄█▄█▄█▄█ â–ˆ â–ˆ") +gpu.set(61,16," ▄█████▀█▀█▀█▀█▀█████▄") +gpu.set(61,17," ▄███▀█ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ █▀███▄") +gpu.set(61,18," ▄██ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ ██▄") +gpu.set(61,19," ██ ██") +gpu.set(61,20,"██▀ █████████████████████ ▀██") +gpu.set(61,21,"██ █████████████████████ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,22,"██ â–ˆ â–ˆ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,23,"██ █████████████████████ → → → → → → → → → →") +gpu.set(61,24,"██ â–ˆ â–ˆ â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„") +gpu.set(61,25,"██ █████████████████████ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,26,"██ â–ˆ â–ˆ ██") +gpu.set(61,27,"██ █████████████████████ ██") +gpu.set(61,28,"██ â–ˆ â–ˆ ██") +gpu.set(61,29,"██ █████████████████████ ██") +gpu.set(61,30,"██ â–ˆ â–ˆ ██") +gpu.set(61,31,"██ █████████████████████ ██") +gpu.set(61,32,"██ ██") +gpu.set(61,33,"██ ██") +gpu.set(61,34,"██ ██") +gpu.set(61,35,"██ ██") +gpu.set(61,36,"██ ██") +gpu.set(61,37,"██ ██") +gpu.set(61,38,"██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,39,"██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,40,"██ ↠↠↠↠↠↠↠↠↠â†") +gpu.set(61,41,"██ â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„â–„") +gpu.set(61,42,"██ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,43,"██▄ ▄██") +gpu.set(61,44," ██ ██") +gpu.set(61,45," ▀██ ██▀") +gpu.set(61,46," ▀██▄▄ ▄▄██▀") +gpu.set(61,47," ▀▀███▄▄▄▄▄▄▄▄▄▄▄███▀▀") +gpu.set(61,48," ▀▀▀▀▀▀▀▀▀▀▀▀") + +gpu.setBackground(0xAAAAAA) +gpu.setForeground(0x000000) + +gpu.set(70,4,"CONTROL RODS") +gpu.set(61,5,"INS+1 INS+5 INS+10") +gpu.set(61,8,"RET+1 RET+5 RET+10") + +gpu.set(85,5,"ESTOP") +gpu.set(107,5,"LEVEL") +gpu.set(107,7,"QUIT") + +gpu.set(94,5,"OVHEAT ESTOP") +gpu.set(94,8,"NOCOOL ESTOP") + +gpu.set(95,13,"OUTFLOW") +gpu.set(92,14,"BUFFER") +gpu.set(99,14,"HOTΔ") + +gpu.set(95,30,"INFLOW") +gpu.set(92,31,"BUFFER") +gpu.set(99,31,"COOLΔ") + +gpu.set(69,20,"REACTOR CORE") +gpu.set(71,21,"CORE HEAT:") +gpu.set(71,23,"HULL HEAT:") +gpu.set(71,25,"CORE FLUX:") +gpu.set(68,27,"COLD HEATEX LVL:") +gpu.set(69,29,"HOT HEATEX LVL:") +gpu.setBackground(0x000000) + +gpu.setForeground(0xFFFFFF) +gpu.fill(107,6,5,1,"â–ˆ") + +--Outflow Buffer +gpu.fill(92,15,6,5,"â–ˆ") + +--CoolDelta +gpu.fill(99,15,7,1,"â–ˆ") + +--HotDelta + +gpu.set(66,19,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.fill(66,22,19,1,"â–ˆ") +gpu.fill(66,24,19,1,"â–ˆ") +gpu.fill(66,26,19,1,"â–ˆ") +gpu.fill(66,28,19,1,"â–ˆ") +gpu.fill(66,30,19,1,"â–ˆ") +gpu.set(66,32,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.setForeground(0xAAAAAA) + +gpu.setForeground(0x000000) +gpu.setBackground(0xFFFFFF) +gpu.set(83,22,"TU") +gpu.set(83,24,"TU") +gpu.setForeground(0xFFFFFF) +gpu.setBackground(0x000000) + + +event.listen("touch", buttonPress) +event.listen("drop", buttonRelease) + +while (runSig == true) do + rodLevel = call(pwrController, "getLevel") + + coreHeat, _ = call(pwrController, "getHeat") + coreHeat = coreHeat//1000000 + + for _, b in pairs(buttons) do + drawButton(b, b.colorUp) + end + + for j=rodLevel//10,10 do + gpu.fill(64+(j*2), 33, 1, 10, " ") + end + + for j=1,rodLevel//10 do + gpu.fill(64+(j*2), 33, 1, 10, "┃") + end + + gpu.fill(64+(math.ceil(rodLevel/10)*2), 33, 1, math.fmod(rodLevel,10), "┃") + + for j=0,20,2 do + gpu.setForeground(colorGradient[coreHeat+1]) + gpu.fill(65+j, 33, 1, 9, "â–ˆ") + gpu.setForeground(0xAAAAAA) + end + + gpu.setBackground(0xFFFFFF) + + gpu.setForeground(0xFFFFFF) + gpu.fill(66,22,19,1,"â–ˆ") + gpu.fill(66,24,19,1,"â–ˆ") + gpu.fill(66,26,19,1,"â–ˆ") + gpu.fill(66,28,19,1,"â–ˆ") + gpu.fill(66,30,19,1,"â–ˆ") + + gpu.fill(92,15,6,5,"â–ˆ") + gpu.fill(92,32,6,5,"â–ˆ") + + gpu.fill(99,15,7,1,"â–ˆ") + gpu.fill(99,32,7,1,"â–ˆ") + + prevCoolantFlow = coldCoolantLevel + prevHotCoolantFlow = hotCoolantLevel + + fullCoreHeat, fullHullHeat = call(pwrController, "getHeat") + coldCoolantLevel, _, hotCoolantLevel, _ = call(pwrController, "getCoolantInfo") + + coldCoolantOutflow = coldCoolantLevel - prevCoolantFlow + hotCoolantOutflow = hotCoolantLevel - prevHotCoolantFlow + + gpu.setForeground(0xFF0099) + gpu.fill(92,15+(5-hotCoolantLevel//25600),6,hotCoolantLevel//25600, "â–ˆ") + gpu.setForeground(0x000000) + + gpu.setForeground(0x00FFFF) + gpu.fill(92,32+(5-coldCoolantLevel//25600),6,coldCoolantLevel//25600, "â–ˆ") + gpu.setForeground(0x000000) + + gpu.set(66,22,tostring(fullCoreHeat)) + gpu.set(66,24,tostring(fullHullHeat)) + gpu.set(66,26,tostring(call(pwrController, "getFlux"))) + gpu.set(66,28,tostring(coldCoolantLevel)) + gpu.set(66,30,tostring(hotCoolantLevel)) + + gpu.set(99,15,tostring(hotCoolantOutflow)) + gpu.set(99,32,tostring(coldCoolantOutflow)) + + gpu.set(107,6," ") + gpu.set(107,6,tostring(call(pwrController, "getLevel"))) + + gpu.setBackground(0x000000) + gpu.setForeground(0xFFFFFF) + + if (coreHeatESTOP == true) and (fullCoreHeat) > 9000000 then + component.proxy(pwrController).setLevel(100) + end + + if (coolantLossESTOP == true) and (coldCoolantLevel) < 10000 then + component.proxy(pwrController).setLevel(100) + end + + os.sleep(0.25) +end + +event.ignore("touch", buttonPress) +event.ignore("drop", buttonRelease) + +gpu.fill(1,1,160,160," ") \ No newline at end of file From 89c97abbdca4c7a76fde52b5fd04e35c95bae050 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:59:01 -0500 Subject: [PATCH 14/23] i looked back here and nearly had a fucking stroke from this code --- .../machine/rbmk/TileEntityRBMKRod.java | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f67843023..70750e00a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -33,6 +33,9 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { @@ -464,25 +467,21 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - Object OC_enrich_buf; - Object OC_poison_buf; - Object OC_hull_buf; - Object OC_core_buf; - String OC_type; + List returnValues = new ArrayList<>(); if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); - OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); - OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); - OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); - OC_type = slots[0].getItem().getUnlocalizedName(); - } else { - OC_enrich_buf = "N/A"; - OC_poison_buf = "N/A"; - OC_hull_buf = "N/A"; - OC_core_buf = "N/A"; - OC_type = "N/A"; - } - return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, OC_type, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + returnValues.add(ItemRBMKRod.getHullHeat(slots[0])); + returnValues.add(ItemRBMKRod.getCoreHeat(slots[0])); + returnValues.add(ItemRBMKRod.getEnrichment(slots[0])); + returnValues.add(ItemRBMKRod.getPoison(slots[0])); + returnValues.add(slots[0].getItem().getUnlocalizedName()); + } else + for (int i = 0; i < 5; i++) + returnValues.add("N/A"); + + return new Object[] { + heat, returnValues.get(0), returnValues.get(1), + fluxSlow, fluxFast, returnValues.get(2), returnValues.get(3), returnValues.get(4), + ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true) From f58d97c007168c981376bfb22549adf900bfc3db Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 16 Aug 2024 21:57:42 +1000 Subject: [PATCH 15/23] switch TEMachineBattery to bytebuf --- .../storage/TileEntityMachineBattery.java | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 99575c496..665d18317 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -21,10 +21,10 @@ import com.hbm.util.CompatEnergyControl; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -35,7 +35,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long[] log = new long[20]; public long delta = 0; @@ -214,13 +214,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I prevPowerState = power; - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setLong("power", avg); - nbt.setLong("delta", delta); - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("priority", (byte) this.priority.ordinal()); - this.networkPack(nbt, 20); + this.networkPackNT(20); } } @@ -250,14 +244,25 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); + public void serialize(ByteBuf buf) { + super.serialize(buf); - this.power = nbt.getLong("power"); - this.delta = nbt.getLong("delta"); - this.redLow = nbt.getShort("redLow"); - this.redHigh = nbt.getShort("redHigh"); - this.priority = ConnectionPriority.values()[nbt.getByte("priority")]; + buf.writeLong(power); + buf.writeLong(delta); + buf.writeShort(redLow); + buf.writeShort(redHigh); + buf.writeByte(priority.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + power = buf.readLong(); + delta = buf.readLong(); + redLow = buf.readShort(); + redHigh = buf.readShort(); + priority = ConnectionPriority.values()[buf.readByte()]; } @Override From 8597eda40f1bb230129c30f23b8c4c0bb63efb9e Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 16 Aug 2024 14:09:01 +0200 Subject: [PATCH 16/23] inventory peaks --- build.gradle | 7 ++++++- changelog | 1 + .../java/com/hbm/inventory/RecipesCommon.java | 2 ++ .../inventory/container/ContainerCrateDesh.java | 3 ++- .../inventory/container/ContainerCrateIron.java | 2 +- .../inventory/container/ContainerCrateSteel.java | 4 ++-- .../container/ContainerCrateTemplate.java | 3 ++- .../container/ContainerCrateTungsten.java | 4 ++-- src/main/java/com/hbm/items/ModItems.java | 2 +- .../hbm/textures/models/machines/uv_lamp.png | Bin 226 -> 0 bytes .../assets/hbm/textures/models/machines/zpe.png | Bin 487 -> 0 bytes 11 files changed, 19 insertions(+), 9 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png delete mode 100644 src/main/resources/assets/hbm/textures/models/machines/zpe.png diff --git a/build.gradle b/build.gradle index 8cd9a478d..07cca4635 100644 --- a/build.gradle +++ b/build.gradle @@ -71,6 +71,10 @@ repositories { name = 'ModMaven' url = 'https://modmaven.dev' } + maven { + name = "gt" + url = "https://gregtech.mechaenetia.com/" + } //maven { // name = "CurseForge" // url = "https://minecraft.curseforge.com/api/maven/" @@ -87,7 +91,8 @@ dependencies { implementation 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev' compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src' - //compileOnly 'inventory-tweaks:InventoryTweaks:1.62+beta.84:api' + compileOnly "inventorytweaks:InventoryTweaks:1.59-dev:deobf" + implementation "li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api" } diff --git a/changelog b/changelog index 84822b6d3..787501c1a 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ * Power converter recipes have been updated * Soldering stations will no longer work if the recipe requires no input fluid while fluid is present * While this does complicate using the soldering station manually, as switching from milgrade to standard ICs requires emptying the solderer with a siphon, it does make automating easier, since soldering stations will no longer treat incomplete milgrade circuits as ICs +* Cement is now edible ## Fixed * Fixed some machines not sending fluid gauge syncs properly \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index b9f428c98..85a43f6bf 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -117,6 +117,7 @@ public class RecipesCommon { return; } this.item = stack.getItem(); + if(this.item == null) this.item = ModItems.nothing; //i'm going to bash some fuckard's head in this.stacksize = stack.stackSize; this.meta = stack.getItemDamage(); } @@ -128,6 +129,7 @@ public class RecipesCommon { public ComparableStack(Item item) { this.item = item; + if(this.item == null) this.item = ModItems.nothing; this.stacksize = 1; this.meta = 0; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java index b38021386..7a557eeba 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -4,6 +4,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +@invtweaks.api.container.ChestContainer(rowSize = 13, isLargeChest = false) public class ContainerCrateDesh extends ContainerCrateBase { public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { @@ -15,7 +16,7 @@ public class ContainerCrateDesh extends ContainerCrateBase { } } - this.playerInv(invPlayer,44, 174, 232); + this.playerInv(invPlayer, 44, 174, 232); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index 533e1b866..6c2a62671 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -5,7 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index 1a2c74c2e..4e5969fb0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -4,7 +4,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateSteel extends ContainerCrateBase { public ContainerCrateSteel(InventoryPlayer invPlayer, IInventory tedf) { @@ -16,6 +16,6 @@ public class ContainerCrateSteel extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 84 + (18 * 3) + 2, 142 + (18 * 3) + 2); + this.playerInv(invPlayer, 8, 84 + (18 * 3) + 2, 142 + (18 * 3) + 2); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java index 26c000a8e..553451df8 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java @@ -5,6 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateTemplate extends ContainerCrateBase { public ContainerCrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { @@ -16,6 +17,6 @@ public class ContainerCrateTemplate extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 86, 144); + this.playerInv(invPlayer, 8, 86, 144); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 6cfde0672..55b2d3cfa 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -5,7 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateTungsten extends ContainerCrateBase { public ContainerCrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten te) { @@ -17,6 +17,6 @@ public class ContainerCrateTungsten extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 32 + 18 * 3, 90 + (18 * 3)); + this.playerInv(invPlayer, 8, 32 + 18 * 3, 90 + (18 * 3)); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b484b92c4..2dfa3aede 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2698,7 +2698,7 @@ public class ModItems { cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone"); - powder_cement = new Item().setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); + powder_cement = new ItemLemon(2, 0.5F, false).setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); diff --git a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png b/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png deleted file mode 100644 index 73af545d4857c4dd860f245e57c1447216bce5b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^%0R5h!3HFQ1%*HYEX7WqAsj$Z!;#VfqB#IE)UI>*|RUK`ZhcxAXR_$PhIy?&HA7mv1q&gJ+H&I>;i=4-Y&Zi`8bu{DNhxyE%dLvPo) TaLKPgM>2T2`njxgN@xNA=j~O^ diff --git a/src/main/resources/assets/hbm/textures/models/machines/zpe.png b/src/main/resources/assets/hbm/textures/models/machines/zpe.png deleted file mode 100644 index f11bb89955d16f1b3b0a4a3bde3df47c5a6123a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmV%)|mj zNpNT;!J(N1hh`ESnr!e6Yi)PmW3lNu*5+(a@nkoBO|{*2zWsE+({xzBuPviJS>M(Y zK<}~g<55iuvcc}&`jF9{Xk)lCNM$%VpxM`NehocmS;(<}EJ}yxdf32MW;Yj|!*#_X>RzG=SE8eH_!7wp&StaOwKa4iIfo_B^WJ|#0m`y$ z)e~3_Prq=QZ`+WZ!^sIAB@Y*1wPwup2#din{QOX&OVD@FCCJ^Wh~xPEe|U}H7mBlb zf;#M+)rNVyo$unb_ZYTd-4$X@a))jb92)O}1;kw;)&$KG2E@=UtzBZ2!l54b8bz=H dnVO$e_yfjyXr%0VLX!Xh002ovPDHLkV1fuH;1vJ> From 9d592189095b968c0c9c49dc5b2fbf2fcde47612 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 17 Aug 2024 12:26:08 -0500 Subject: [PATCH 17/23] aaaaaaaaaaaaa --- .../hbm/inventory/gui/GUIMachineRefinery.java | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 0db5f2f29..95aed769b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -85,38 +85,46 @@ public class GUIMachineRefinery extends GuiInfoContainer { Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); - // Heavy Oil Products - Color color = new Color(recipe.getV().type.getColor()); + if(recipe == null) { + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + } else { - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); - GL11.glDisable(GL11.GL_BLEND); + // Heavy Oil Products + Color color = new Color(recipe.getV().type.getColor()); - // Naphtha Oil Products - color = new Color(recipe.getW().type.getColor()); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); - GL11.glDisable(GL11.GL_BLEND); + // Naphtha Oil Products + color = new Color(recipe.getW().type.getColor()); - // Light Oil Products - color = new Color(recipe.getX().type.getColor()); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); - GL11.glDisable(GL11.GL_BLEND); + // Light Oil Products + color = new Color(recipe.getX().type.getColor()); - // Gaseous Products - color = new Color(recipe.getY().type.getColor()); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); - GL11.glDisable(GL11.GL_BLEND); - GL11.glColor4f(1F, 1F, 1F, 1F); + // Gaseous Products + color = new Color(recipe.getY().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + } // output tanks refinery.tanks[1].renderTank(guiLeft + 86, guiTop + 95, this.zLevel, 16, 52); From 1caeec5ea971e3a4dfede9d6128bc344931873db Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 18 Aug 2024 21:00:27 +0200 Subject: [PATCH 18/23] d(err)ick --- changelog | 6 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 +- .../hbm/blocks/machine/MachineOilWell.java | 61 +- .../java/com/hbm/entity/EntityMappings.java | 3 - .../com/hbm/entity/particle/EntityGasFX.java | 79 - .../hbm/entity/particle/EntityOilSpillFX.java | 74 - .../hbm/entity/projectile/EntityOilSpill.java | 56 - .../com/hbm/explosion/ExplosionLarge.java | 15 - .../hbm/inventory/gui/GUIMachineRefinery.java | 62 +- .../inventory/recipes/anvil/AnvilRecipes.java | 30 +- src/main/java/com/hbm/items/ModItems.java | 48 - src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 3 - src/main/java/com/hbm/main/MainRegistry.java | 16 + .../hbm/render/entity/effect/GasRenderer.java | 121 - .../render/entity/effect/SpillRenderer.java | 120 - .../hbm/render/tileentity/RenderDerrick.java | 37 +- .../machine/oil/TileEntityMachineOilWell.java | 20 +- .../assets/hbm/models/machines/derrick.obj | 4156 ++++++++---- .../assets/hbm/models/weapons/minigun.obj | 5599 +++++++++++++++++ .../hbm/textures/models/machines/derrick.png | Bin 4106 -> 2119 bytes .../hbm/textures/models/weapons/minigun.png | Bin 0 -> 5252 bytes 23 files changed, 8626 insertions(+), 1890 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/particle/EntityGasFX.java delete mode 100644 src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java delete mode 100644 src/main/java/com/hbm/entity/projectile/EntityOilSpill.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/GasRenderer.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/SpillRenderer.java create mode 100644 src/main/resources/assets/hbm/models/weapons/minigun.obj create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/minigun.png diff --git a/changelog b/changelog index 787501c1a..b99450d57 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,10 @@ * Soldering stations will no longer work if the recipe requires no input fluid while fluid is present * While this does complicate using the soldering station manually, as switching from milgrade to standard ICs requires emptying the solderer with a siphon, it does make automating easier, since soldering stations will no longer treat incomplete milgrade circuits as ICs * Cement is now edible +* Derricks have been remodeled, the port configuration has changed so existing derricks need to be replaced +* Derricks no longer spawn oil spills +* Metal deco blocks are now crafted in batches of 4, as well as recycled in batches of 4. Each block is therefore still worth 25% of an ingot, but recycling your own deco blocks is no longer lossy ## Fixed -* Fixed some machines not sending fluid gauge syncs properly \ No newline at end of file +* Fixed some machines not sending fluid gauge syncs properly +* Fixed refinery GUI crashing when invalid input is used \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 59cc2040e..93317634f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5057 +mod_build_number=5061 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8af544758..1bfd61054 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2152,9 +2152,9 @@ public class ModBlocks { boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); - machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); - machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); - machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); + machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); + machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); diff --git a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java index 65fc71706..b30ccf3e2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java @@ -5,11 +5,17 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.util.BobMathUtil; @@ -20,6 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -31,15 +38,13 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) return new TileEntityMachineOilWell(); - if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; } @Override public int[] getDimensions() { - return new int[] {5, 0, 1, 1, 1, 1}; + return new int[] {9, 0, 1, 1, 1, 1}; } @Override @@ -47,13 +52,24 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro return 0; } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir); + } + @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); } @Override @@ -89,4 +105,31 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } + + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) { + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + TileEntity core = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(core instanceof TileEntityMachineOilWell)) return; + + world.setBlockToAir(x, y, z); + onBlockDestroyedByExplosion(world, x, y, z, explosion); + + TileEntityMachineOilWell well = (TileEntityMachineOilWell) core; + if(well.tanks[0].getFill() > 0 || well.tanks[1].getFill() > 0) { + well.tanks[0].setFill(0); + well.tanks[1].setFill(0); + + ExplosionVNT xnt = new ExplosionVNT(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 15F); + xnt.setBlockAllocator(new BlockAllocatorStandard(24)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorStandard()); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + + ExplosionCreator.composeEffect(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 10, 2F, 0.5F, 25F, 5, 8, 20, 0.75F, 1F, -2F, 150); + } + } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index d6a7a34d2..b5011714c 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -98,9 +98,6 @@ public class EntityMappings { addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); addEntity(EntityBlackHole.class, "entity_black_hole", 250); addEntity(EntityGrenadeBlackHole.class, "entity_grenade_black_hole", 250); - addEntity(EntityOilSpillFX.class, "entity_spill_fx", 1000); - addEntity(EntityOilSpill.class, "entity_oil_spill", 1000); - addEntity(EntityGasFX.class, "entity_spill_fx", 1000); addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFX.java deleted file mode 100644 index c34d1df66..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityGasFX.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityGasFX extends EntityModFX -{ - float smokeParticleScale; - public int particleAge; - public int maxAge; - public EntityGasFX(World world) { - super(world, 0, 0, 0); - } - - public EntityGasFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityGasFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) - { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - //this.motionY *= 0.7599999785423279D; - this.motionY += 0.1D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 3F, true); - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java b/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java deleted file mode 100644 index 4f932ece6..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class EntityOilSpillFX extends EntityModFX { - float smokeParticleScale; - public int particleAge; - public int maxAge; - - public EntityOilSpillFX(World world) { - super(world, 0, 0, 0); - } - - public EntityOilSpillFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityOilSpillFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - this.noClip = false; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if(this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if(this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - public boolean writeToNBTOptional(NBTTagCompound nbt) { - return false; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setDead(); - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java b/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java deleted file mode 100644 index aba68c0a9..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hbm.entity.projectile; - -import com.hbm.entity.particle.EntityOilSpillFX; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityOilSpill extends EntityThrowable { - - public EntityOilSpill(World p_i1773_1_) { - super(p_i1773_1_); - } - - public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) { - super(p_i1774_1_, p_i1774_2_); - } - - @Override - public void entityInit() { } - - public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(!worldObj.isRemote) { - worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true); - } - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - if(this.ticksExisted > 5) { - this.setDead(); - } - } - - @Override - public boolean writeToNBTOptional(NBTTagCompound nbt) { - return false; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setDead(); - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 64adc7913..2fff85b46 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,7 +3,6 @@ package com.hbm.explosion; import java.util.List; import java.util.Random; -import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.packet.AuxParticlePacketNT; @@ -154,20 +153,6 @@ public class ExplosionLarge { } } - public static void spawnOilSpills(World world, double x, double y, double z, int count) { - - for(int i = 0; i < count; i++) { - EntityOilSpill shrapnel = new EntityOilSpill(world); - shrapnel.posX = x; - shrapnel.posY = y; - shrapnel.posZ = z; - shrapnel.motionY = ((rand.nextFloat() * 0.5) + 0.5) * (1 + (count / (15 + rand.nextInt(21)))) + (rand.nextFloat() / 50 * count) * 0.25F; - shrapnel.motionX = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - shrapnel.motionZ = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - world.spawnEntityInWorld(shrapnel); - } - } - public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel, Entity exploder) { world.createExplosion(exploder, x, y, z, strength, true); if(cloud) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 0db5f2f29..af04707fa 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -84,39 +84,35 @@ public class GUIMachineRefinery extends GuiInfoContainer { // pipes Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); - - // Heavy Oil Products - Color color = new Color(recipe.getV().type.getColor()); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); - GL11.glDisable(GL11.GL_BLEND); - - // Naphtha Oil Products - color = new Color(recipe.getW().type.getColor()); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); - GL11.glDisable(GL11.GL_BLEND); - - // Light Oil Products - color = new Color(recipe.getX().type.getColor()); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); - GL11.glDisable(GL11.GL_BLEND); - - // Gaseous Products - color = new Color(recipe.getY().type.getColor()); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); - func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); - GL11.glDisable(GL11.GL_BLEND); - GL11.glColor4f(1F, 1F, 1F, 1F); + + if(recipe != null) { + + GL11.glEnable(GL11.GL_BLEND); + + // Heavy Oil Products + Color color = new Color(recipe.getV().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + + // Naphtha Oil Products + color = new Color(recipe.getW().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + + // Light Oil Products + color = new Color(recipe.getX().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + + // Gaseous Products + color = new Color(recipe.getY().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } + // output tanks refinery.tanks[1].renderTank(guiLeft + 86, guiTop + 95, this.zLevel, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 67470d1da..8ca863583 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -170,13 +170,13 @@ public class AnvilRecipes { public static void registerConstructionRecipes() { - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, @@ -715,14 +715,14 @@ public class AnvilRecipes { } ).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.heater_firebox), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2dfa3aede..f3309fb32 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2351,22 +2351,6 @@ public class ModItems { public static Item b_smoke6; public static Item b_smoke7; public static Item b_smoke8; - public static Item spill1; - public static Item spill2; - public static Item spill3; - public static Item spill4; - public static Item spill5; - public static Item spill6; - public static Item spill7; - public static Item spill8; - public static Item gas1; - public static Item gas2; - public static Item gas3; - public static Item gas4; - public static Item gas5; - public static Item gas6; - public static Item gas7; - public static Item gas8; public static Item chlorine1; public static Item chlorine2; public static Item chlorine3; @@ -5404,22 +5388,6 @@ public class ModItems { b_smoke6 = new Item().setUnlocalizedName("b_smoke6").setTextureName(RefStrings.MODID + ":b_smoke6"); b_smoke7 = new Item().setUnlocalizedName("b_smoke7").setTextureName(RefStrings.MODID + ":b_smoke7"); b_smoke8 = new Item().setUnlocalizedName("b_smoke8").setTextureName(RefStrings.MODID + ":b_smoke8"); - spill1 = new Item().setUnlocalizedName("spill1").setTextureName(RefStrings.MODID + ":spill1"); - spill2 = new Item().setUnlocalizedName("spill2").setTextureName(RefStrings.MODID + ":spill2"); - spill3 = new Item().setUnlocalizedName("spill3").setTextureName(RefStrings.MODID + ":spill3"); - spill4 = new Item().setUnlocalizedName("spill4").setTextureName(RefStrings.MODID + ":spill4"); - spill5 = new Item().setUnlocalizedName("spill5").setTextureName(RefStrings.MODID + ":spill5"); - spill6 = new Item().setUnlocalizedName("spill6").setTextureName(RefStrings.MODID + ":spill6"); - spill7 = new Item().setUnlocalizedName("spill7").setTextureName(RefStrings.MODID + ":spill7"); - spill8 = new Item().setUnlocalizedName("spill8").setTextureName(RefStrings.MODID + ":spill8"); - gas1 = new Item().setUnlocalizedName("gas1").setTextureName(RefStrings.MODID + ":gas1"); - gas2 = new Item().setUnlocalizedName("gas2").setTextureName(RefStrings.MODID + ":gas2"); - gas3 = new Item().setUnlocalizedName("gas3").setTextureName(RefStrings.MODID + ":gas3"); - gas4 = new Item().setUnlocalizedName("gas4").setTextureName(RefStrings.MODID + ":gas4"); - gas5 = new Item().setUnlocalizedName("gas5").setTextureName(RefStrings.MODID + ":gas5"); - gas6 = new Item().setUnlocalizedName("gas6").setTextureName(RefStrings.MODID + ":gas6"); - gas7 = new Item().setUnlocalizedName("gas7").setTextureName(RefStrings.MODID + ":gas7"); - gas8 = new Item().setUnlocalizedName("gas8").setTextureName(RefStrings.MODID + ":gas8"); chlorine1 = new Item().setUnlocalizedName("chlorine1").setTextureName(RefStrings.MODID + ":chlorine1"); chlorine2 = new Item().setUnlocalizedName("chlorine2").setTextureName(RefStrings.MODID + ":chlorine2"); chlorine3 = new Item().setUnlocalizedName("chlorine3").setTextureName(RefStrings.MODID + ":chlorine3"); @@ -7804,22 +7772,6 @@ public class ModItems { GameRegistry.registerItem(b_smoke6, b_smoke6.getUnlocalizedName()); GameRegistry.registerItem(b_smoke7, b_smoke7.getUnlocalizedName()); GameRegistry.registerItem(b_smoke8, b_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(spill1, spill1.getUnlocalizedName()); - GameRegistry.registerItem(spill2, spill2.getUnlocalizedName()); - GameRegistry.registerItem(spill3, spill3.getUnlocalizedName()); - GameRegistry.registerItem(spill4, spill4.getUnlocalizedName()); - GameRegistry.registerItem(spill5, spill5.getUnlocalizedName()); - GameRegistry.registerItem(spill6, spill6.getUnlocalizedName()); - GameRegistry.registerItem(spill7, spill7.getUnlocalizedName()); - GameRegistry.registerItem(spill8, spill8.getUnlocalizedName()); - GameRegistry.registerItem(gas1, gas1.getUnlocalizedName()); - GameRegistry.registerItem(gas2, gas2.getUnlocalizedName()); - GameRegistry.registerItem(gas3, gas3.getUnlocalizedName()); - GameRegistry.registerItem(gas4, gas4.getUnlocalizedName()); - GameRegistry.registerItem(gas5, gas5.getUnlocalizedName()); - GameRegistry.registerItem(gas6, gas6.getUnlocalizedName()); - GameRegistry.registerItem(gas7, gas7.getUnlocalizedName()); - GameRegistry.registerItem(gas8, gas8.getUnlocalizedName()); GameRegistry.registerItem(chlorine1, chlorine1.getUnlocalizedName()); GameRegistry.registerItem(chlorine2, chlorine2.getUnlocalizedName()); GameRegistry.registerItem(chlorine3, chlorine3.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 465d595bd..af861b280 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5057)"; + public static final String VERSION = "1.0.27 BETA (5061)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 59c4708a6..0bb37ca90 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -654,7 +654,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRubble.class, new RenderRubble()); RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new RenderShrapnel()); RenderingRegistry.registerEntityRenderingHandler(EntityFireworks.class, new RenderShrapnel()); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpill.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityWaterSplash.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityEMP.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); @@ -824,8 +823,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index caccee6f3..126eea6e4 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1402,6 +1402,22 @@ public class MainRegistry { ignoreMappings.add("hbm:item.test_leggings"); ignoreMappings.add("hbm:item.test_boots"); ignoreMappings.add("hbm:item.cape_test"); + ignoreMappings.add("hbm:item.spill1"); + ignoreMappings.add("hbm:item.spill2"); + ignoreMappings.add("hbm:item.spill3"); + ignoreMappings.add("hbm:item.spill4"); + ignoreMappings.add("hbm:item.spill5"); + ignoreMappings.add("hbm:item.spill6"); + ignoreMappings.add("hbm:item.spill7"); + ignoreMappings.add("hbm:item.spill8"); + ignoreMappings.add("hbm:item.gas1"); + ignoreMappings.add("hbm:item.gas2"); + ignoreMappings.add("hbm:item.gas3"); + ignoreMappings.add("hbm:item.gas4"); + ignoreMappings.add("hbm:item.gas5"); + ignoreMappings.add("hbm:item.gas6"); + ignoreMappings.add("hbm:item.gas7"); + ignoreMappings.add("hbm:item.gas8"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/entity/effect/GasRenderer.java b/src/main/java/com/hbm/render/entity/effect/GasRenderer.java deleted file mode 100644 index 456271a96..000000000 --- a/src/main/java/com/hbm/render/entity/effect/GasRenderer.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityGasFX; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class GasRenderer extends Render { - private Item field_94151_a; - public GasRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public GasRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.gas8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.gas7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.gas6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.gas5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.gas4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.gas3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.gas2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.gas1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java b/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java deleted file mode 100644 index 6d492e823..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityOilSpillFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SpillRenderer extends Render { - private Item field_94151_a; - public SpillRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SpillRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.spill8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.spill7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.spill6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.spill5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.spill4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.spill3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.spill2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.spill1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java index 14b67b290..d5fab539a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java @@ -2,12 +2,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderDerrick extends TileEntitySpecialRenderer { +public class RenderDerrick extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -16,7 +21,14 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.derrick_tex); @@ -25,4 +37,25 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_well); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.derrick_tex); ResourceManager.derrick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 8adb629b7..d86a6c40c 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -6,7 +6,6 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -70,8 +69,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreUranium".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_radon_dense); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_radon_dense); } } } @@ -80,8 +79,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreAsbestos".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_asbestos); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_asbestos); } } } @@ -92,7 +91,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public void onSuck(int x, int y, int z) { - ExplosionLarge.spawnOilSpills(worldObj, xCoord + 0.5F, yCoord + 5.5F, zCoord + 0.5F, 3); worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 2.0F, 0.5F); this.tanks[0].setFill(this.tanks[0].getFill() + oilPerDepsoit); @@ -116,7 +114,7 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { yCoord, zCoord - 1, xCoord + 2, - yCoord + 7, + yCoord + 10, zCoord + 2 ); } @@ -127,10 +125,10 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public DirPos[] getConPos() { return new DirPos[] { - new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), - new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) }; } diff --git a/src/main/resources/assets/hbm/models/machines/derrick.obj b/src/main/resources/assets/hbm/models/machines/derrick.obj index 56d2464ca..e3b02a297 100644 --- a/src/main/resources/assets/hbm/models/machines/derrick.obj +++ b/src/main/resources/assets/hbm/models/machines/derrick.obj @@ -1,1315 +1,2881 @@ -# Blender v2.79 (sub 0) OBJ File: 'derrick_new.blend' +# Blender v2.79 (sub 0) OBJ File: 'derrick.blend' # www.blender.org o Plane -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.500000 0.000000 1.250000 -v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 -v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 -v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 -v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 -v -1.250000 0.000000 1.250000 -v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 v -0.500000 0.000000 0.500000 v 0.500000 0.000000 0.500000 v -0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000 -v -0.250000 0.250000 -0.250000 -v -0.250000 0.250000 0.250000 -v 0.250000 0.250000 0.250000 -v 0.250000 0.250000 -0.250000 -v 0.000000 6.250000 -0.250000 -v 0.176777 6.250000 -0.176777 -v 0.250000 6.250000 0.000000 -v 0.176777 6.250000 0.176777 -v -0.000000 6.250000 0.250000 -v -0.176777 6.250000 0.176777 -v -0.250000 6.250000 -0.000000 -v -0.176777 6.250000 -0.176777 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v 0.156250 0.656250 -0.156250 -v 0.156250 0.343750 -0.156250 -v 0.156250 0.656250 0.156250 -v 0.156250 0.343750 0.156250 -v -0.156250 0.656250 -0.156250 -v -0.156250 0.343750 -0.156250 -v -0.156250 0.656250 0.156250 -v -0.156250 0.343750 0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 0.176777 6.250000 0.176777 -v 0.176777 0.250000 0.176777 -v 0.250000 6.250000 0.000000 -v 0.250000 0.250000 0.000000 -v 0.176777 6.250000 -0.176777 -v 0.176777 0.250000 -0.176777 -v 0.000000 6.250000 -0.250000 -v 0.000000 0.250000 -0.250000 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -1.500000 0.000000 1.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -1.250000 4.000000 1.250000 +v 1.250000 4.000000 1.250000 +v -1.250000 4.000000 -1.250000 +v 1.250000 4.000000 -1.250000 +v -0.875000 4.000000 -0.875000 +v -0.875000 4.000000 0.875000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 -0.875000 +v -1.250000 3.750000 1.250000 +v 1.250000 3.750000 1.250000 +v -1.250000 3.750000 -1.250000 +v 1.250000 3.750000 -1.250000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 0.875000 +v 0.875000 3.750000 0.875000 +v 0.875000 3.750000 -0.875000 +v 1.500000 0.000000 1.500000 v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 v -1.250000 0.000000 1.250000 +v -1.500000 0.000000 1.500000 +v -1.500000 0.000000 1.250000 +v 1.500000 0.000000 -1.250000 +v 1.500000 0.000000 -1.500000 +v 1.250000 0.000000 -1.250000 +v 1.250000 0.000000 -1.500000 v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.000000 6.250000 -0.125000 -v 0.088388 6.250000 -0.088388 -v 0.125000 6.250000 0.000000 -v 0.088388 6.250000 0.088388 -v -0.000000 6.250000 0.125000 -v -0.088388 6.250000 0.088388 -v -0.125000 6.250000 -0.000000 -v -0.088388 6.250000 -0.088388 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -0.000000 0.250000 0.250000 -v -0.000000 6.250000 0.250000 -v -0.176777 0.250000 0.176777 -v -0.176777 6.250000 0.176777 -v -0.250000 0.250000 -0.000000 -v -0.250000 6.250000 -0.000000 -v -0.176777 0.250000 -0.176777 -v -0.176777 6.250000 -0.176777 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.583333 0.041667 -vt 0.625000 0.000000 -vt 0.625000 0.041667 -vt 0.625000 0.166667 -vt 0.583333 0.125000 -vt 0.625000 0.125000 -vt 0.750000 0.125000 -vt 0.708333 0.166667 -vt 0.708333 0.125000 -vt 0.708333 -0.000000 -vt 0.750000 0.041667 -vt 0.708333 0.041667 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.416667 0.166667 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.541667 0.208333 -vt 0.458333 0.291667 -vt 0.458333 0.208333 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.458333 0.208333 -vt 0.666667 0.294035 -vt 0.627368 0.333333 -vt 0.666667 0.372632 -vt 0.041667 0.406250 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.604167 -vt 0.083333 0.604167 -vt 0.083333 0.802083 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.625000 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.041667 0.000000 -vt 0.000000 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 -0.000000 -vt 0.083333 0.406250 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.666667 0.415667 -vt 0.646833 0.395833 -vt 0.666667 0.376000 -vt 0.625000 0.000000 -vt 0.583333 0.041667 -vt 0.625000 0.041667 -vt 0.583333 0.125000 -vt 0.625000 0.166667 -vt 0.625000 0.125000 -vt 0.708333 0.166667 -vt 0.750000 0.125000 -vt 0.708333 0.125000 -vt 0.750000 0.041667 -vt 0.708333 -0.000000 -vt 0.708333 0.041667 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.416667 -0.000000 -vt 0.541667 0.291667 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.638878 0.305545 -vt 0.638878 0.361122 -vt 0.694455 0.361122 -vt 0.705965 0.333333 -vt 0.694455 0.305545 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt -0.000000 0.000000 -vt 0.083333 0.000000 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt 0.083333 -0.000000 +v -1.250000 0.000000 -1.500000 +v -1.500000 0.000000 -1.250000 +v -1.500000 0.000000 -1.500000 +v 0.750000 8.750000 0.750000 +v 0.750000 8.750000 0.500000 +v 0.500000 8.750000 0.750000 +v 0.500000 8.750000 0.500000 +v -0.500000 8.750000 0.750000 +v -0.500000 8.750000 0.500000 +v -0.750000 8.750000 0.750000 +v -0.750000 8.750000 0.500000 +v 0.750000 8.750000 -0.500000 +v 0.750000 8.750000 -0.750000 +v 0.500000 8.750000 -0.500000 +v 0.500000 8.750000 -0.750000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 -0.750000 +v -0.750000 8.750000 -0.500000 +v -0.750000 8.750000 -0.750000 +v 1.125000 3.750000 1.125000 +v 1.125000 3.750000 0.875000 +v 0.875000 3.750000 1.125000 +v 0.875000 3.750000 0.875000 +v -0.875000 3.750000 1.125000 +v -0.875000 3.750000 0.875000 +v -1.125000 3.750000 1.125000 +v -1.125000 3.750000 0.875000 +v 1.125000 3.750000 -0.875000 +v 1.125000 3.750000 -1.125000 +v 0.875000 3.750000 -0.875000 +v 0.875000 3.750000 -1.125000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 -1.125000 +v -1.125000 3.750000 -0.875000 +v -1.125000 3.750000 -1.125000 +v -1.125000 4.000000 -1.125000 +v -1.125000 4.000000 -0.875000 +v -0.875000 4.000000 -1.125000 +v -0.875000 4.000000 -0.875000 +v 0.875000 4.000000 -1.125000 +v 0.875000 4.000000 -0.875000 +v 1.125000 4.000000 -1.125000 +v 1.125000 4.000000 -0.875000 +v -1.125000 4.000000 0.875000 +v -1.125000 4.000000 1.125000 +v -0.875000 4.000000 0.875000 +v -0.875000 4.000000 1.125000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 1.125000 +v 1.125000 4.000000 0.875000 +v 1.125000 4.000000 1.125000 +v -0.875000 8.750000 0.875000 +v 0.875000 8.750000 0.875000 +v -0.875000 8.750000 -0.875000 +v 0.875000 8.750000 -0.875000 +v -0.500000 9.000000 -0.500000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v 0.500000 9.000000 -0.500000 +v -0.875000 9.000000 -0.875000 +v -0.875000 9.000000 0.875000 +v 0.875000 9.000000 0.875000 +v 0.875000 9.000000 -0.875000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 0.500000 +v 0.500000 8.750000 0.500000 +v 0.500000 8.750000 -0.500000 +v -0.500000 9.000000 -0.500000 +v 0.500000 9.000000 -0.500000 +v -0.500000 9.250000 -0.500000 +v 0.500000 9.250000 -0.500000 +v -0.250000 9.500000 -0.500000 +v 0.250000 9.500000 -0.500000 +v -0.500000 9.000000 -0.750000 +v 0.500000 9.000000 -0.750000 +v -0.500000 9.250000 -0.750000 +v 0.500000 9.250000 -0.750000 +v -0.250000 9.500000 -0.750000 +v 0.250000 9.500000 -0.750000 +v -0.500000 9.000000 0.750000 +v 0.500000 9.000000 0.750000 +v -0.500000 9.250000 0.750000 +v 0.500000 9.250000 0.750000 +v -0.250000 9.500000 0.750000 +v 0.250000 9.500000 0.750000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v -0.500000 9.250000 0.500000 +v 0.500000 9.250000 0.500000 +v -0.250000 9.500000 0.500000 +v 0.250000 9.500000 0.500000 +v 0.000000 9.750000 0.500000 +v -0.187500 9.699759 0.500000 +v -0.324759 9.562500 0.500000 +v -0.375000 9.375000 0.500000 +v -0.324759 9.187500 0.500000 +v -0.187500 9.050241 0.500000 +v 0.000000 9.000000 0.500000 +v 0.187500 9.050241 0.500000 +v 0.324759 9.187500 0.500000 +v 0.375000 9.375000 0.500000 +v 0.324759 9.562500 0.500000 +v 0.187500 9.699759 0.500000 +v -0.187500 9.699759 0.375000 +v 0.000000 9.750000 0.375000 +v -0.324759 9.562500 0.375000 +v -0.375000 9.375000 0.375000 +v -0.324759 9.187500 0.375000 +v -0.187500 9.050241 0.375000 +v 0.000000 9.000000 0.375000 +v 0.187500 9.050241 0.375000 +v 0.324759 9.187500 0.375000 +v 0.375000 9.375000 0.375000 +v 0.324759 9.562500 0.375000 +v 0.187500 9.699759 0.375000 +v 0.000000 9.625000 0.375000 +v -0.125000 9.591506 0.375000 +v -0.216506 9.500000 0.375000 +v -0.250000 9.375000 0.375000 +v -0.216506 9.250000 0.375000 +v -0.125000 9.158494 0.375000 +v 0.000000 9.125000 0.375000 +v 0.125000 9.158494 0.375000 +v 0.216506 9.250000 0.375000 +v 0.250000 9.375000 0.375000 +v 0.216506 9.500000 0.375000 +v 0.125000 9.591506 0.375000 +v 0.000000 9.625000 -0.375000 +v -0.125000 9.591506 -0.375000 +v -0.216506 9.500000 -0.375000 +v -0.250000 9.375000 -0.375000 +v -0.216506 9.250000 -0.375000 +v -0.125000 9.158494 -0.375000 +v 0.000000 9.125000 -0.375000 +v 0.125000 9.158494 -0.375000 +v 0.216506 9.250000 -0.375000 +v 0.250000 9.375000 -0.375000 +v 0.216506 9.500000 -0.375000 +v 0.125000 9.591506 -0.375000 +v -0.250000 1.000000 -0.250000 +v -0.250000 1.000000 0.250000 +v 0.250000 1.000000 0.250000 +v 0.250000 1.000000 -0.250000 +v -0.250000 4.000000 -0.250000 +v -0.250000 4.000000 0.250000 +v 0.250000 4.000000 0.250000 +v 0.250000 4.000000 -0.250000 +v -0.312500 4.000000 -0.312500 +v -0.312500 4.000000 0.312500 +v 0.312500 4.000000 0.312500 +v 0.312500 4.000000 -0.312500 +v -0.312500 4.125000 -0.312500 +v -0.312500 4.125000 0.312500 +v 0.312500 4.125000 0.312500 +v 0.312500 4.125000 -0.312500 +v -0.250000 4.187500 -0.250000 +v -0.250000 4.187500 0.250000 +v 0.250000 4.187500 0.250000 +v 0.250000 4.187500 -0.250000 +v -0.250000 4.375000 -0.250000 +v -0.250000 4.375000 0.250000 +v 0.250000 4.375000 0.250000 +v 0.250000 4.375000 -0.250000 +v -0.062500 4.375000 0.250000 +v 0.062500 4.375000 0.250000 +v -0.062500 4.375000 -0.250000 +v 0.062500 4.375000 -0.250000 +v -0.062500 4.750000 -0.250000 +v -0.062500 4.750000 0.250000 +v 0.062500 4.750000 0.250000 +v 0.062500 4.750000 -0.250000 +v -0.062500 4.375000 0.125000 +v -0.062500 4.625000 0.125000 +v -0.062500 4.375000 -0.125000 +v -0.062500 4.625000 -0.125000 +v 0.062500 4.375000 0.125000 +v 0.062500 4.625000 0.125000 +v 0.062500 4.375000 -0.125000 +v 0.062500 4.625000 -0.125000 +v -0.125000 5.250000 -0.125000 +v -0.125000 5.250000 0.125000 +v 0.125000 5.250000 0.125000 +v 0.125000 5.250000 -0.125000 +v -0.312500 6.000000 -0.125000 +v -0.312500 6.000000 0.125000 +v 0.312500 6.000000 0.125000 +v 0.312500 6.000000 -0.125000 +v -0.125000 4.625000 0.062500 +v 0.125000 4.625000 0.062500 +v -0.125000 4.625000 -0.062500 +v 0.125000 4.625000 -0.062500 +v -0.187500 4.687500 0.062500 +v 0.187500 4.687500 0.062500 +v -0.187500 4.687500 -0.062500 +v 0.187500 4.687500 -0.062500 +v -0.187500 4.937500 0.062500 +v -0.187500 4.937500 -0.062500 +v 0.062500 5.000000 0.062500 +v 0.062500 5.000000 -0.062500 +v 0.062500 5.500000 0.062500 +v 0.062500 5.500000 -0.062500 +v -0.062500 5.500000 0.062500 +v -0.062500 5.500000 -0.062500 +v -0.062500 5.125000 0.062500 +v -0.062500 5.125000 -0.062500 +v -0.312500 4.937500 0.062500 +v -0.312500 4.937500 -0.062500 +v -0.312500 4.687500 0.062500 +v -0.312500 4.687500 -0.062500 +v -0.125000 4.500000 0.062500 +v -0.125000 4.500000 -0.062500 +v 0.125000 4.500000 0.062500 +v 0.125000 4.500000 -0.062500 +v 0.312500 4.687500 0.062500 +v 0.312500 4.687500 -0.062500 +v 0.187500 6.000000 0.031250 +v 0.250000 6.000000 0.031250 +v 0.187500 6.000000 -0.031250 +v 0.250000 6.000000 -0.031250 +v 0.187500 9.375000 0.031250 +v 0.250000 9.375000 0.031250 +v 0.187500 9.375000 -0.031250 +v 0.250000 9.375000 -0.031250 +v -0.250000 6.000000 0.031250 +v -0.187500 6.000000 0.031250 +v -0.250000 6.000000 -0.031250 +v -0.187500 6.000000 -0.031250 +v -0.250000 9.375000 0.031250 +v -0.187500 9.375000 0.031250 +v -0.250000 9.375000 -0.031250 +v -0.187500 9.375000 -0.031250 +v -1.062500 2.687500 1.031250 +v 1.187500 1.875000 1.125000 +v -1.062500 2.812500 1.031250 +v 1.187500 2.000000 1.125000 +v -0.937500 3.625000 0.937500 +v 1.062500 2.812500 1.000000 +v -0.937500 3.750000 0.937500 +v 1.062500 2.937500 1.000000 +v -1.062500 2.812500 1.156250 +v -1.062500 2.687500 1.156250 +v 1.187500 1.875000 1.250000 +v 1.187500 2.000000 1.250000 +v -0.937500 3.750000 1.062500 +v -0.937500 3.625000 1.062500 +v 1.062500 2.812500 1.125000 +v 1.062500 2.937500 1.125000 +v -1.187500 1.750000 1.125000 +v 1.312500 0.937500 1.218750 +v -1.187500 1.875000 1.125000 +v 1.312500 1.062500 1.218750 +v -1.187500 1.875000 1.250000 +v -1.187500 1.750000 1.250000 +v 1.312500 0.937500 1.343750 +v 1.312500 1.062500 1.343750 +v 1.187500 1.750000 1.125000 +v -1.312500 0.937500 1.218750 +v 1.187500 1.875000 1.125000 +v -1.312500 1.062500 1.218750 +v 1.062500 2.687500 1.031250 +v -1.187500 1.875000 1.125000 +v 1.062500 2.812500 1.031250 +v -1.187500 2.000000 1.125000 +v 0.937500 3.625000 0.937500 +v -1.062500 2.812500 1.000000 +v 0.937500 3.750000 0.937500 +v -1.062500 2.937500 1.000000 +v 1.187500 1.875000 1.250000 +v 1.187500 1.750000 1.250000 +v -1.312500 0.937500 1.343750 +v -1.312500 1.062500 1.343750 +v 1.062500 2.812500 1.156250 +v 1.062500 2.687500 1.156250 +v -1.187500 1.875000 1.250000 +v -1.187500 2.000000 1.250000 +v 0.937500 3.750000 1.062500 +v 0.937500 3.625000 1.062500 +v -1.062500 2.812500 1.125000 +v -1.062500 2.937500 1.125000 +v -0.125000 5.000000 0.062500 +v -0.125000 5.000000 -0.062500 +v -0.125000 5.125000 0.062500 +v -0.125000 5.125000 -0.062500 +v 1.000000 4.000000 1.062500 +v 1.000000 4.000000 0.937500 +v -0.937500 5.062500 0.937500 +v -0.937500 5.062500 0.812500 +v -0.937500 5.187500 0.937500 +v 1.000000 4.125000 1.062500 +v 1.000000 4.125000 0.937500 +v -0.937500 5.187500 0.812500 +v 0.937500 5.187500 0.937500 +v 0.937500 5.187500 0.812500 +v -0.812500 6.250000 0.875000 +v -0.812500 6.250000 0.750000 +v -0.812500 6.375000 0.875000 +v 0.937500 5.312500 0.937500 +v 0.937500 5.312500 0.812500 +v -0.812500 6.375000 0.750000 +v 0.812500 6.375000 0.875000 +v 0.812500 6.375000 0.750000 +v -0.750000 7.437500 0.750000 +v -0.750000 7.437500 0.625000 +v -0.750000 7.562500 0.750000 +v 0.812500 6.500000 0.875000 +v 0.812500 6.500000 0.750000 +v -0.750000 7.562500 0.625000 +v 0.750000 7.562500 0.750000 +v 0.750000 7.562500 0.625000 +v -0.687500 8.624999 0.687500 +v -0.687500 8.624999 0.562500 +v -0.687500 8.749999 0.687500 +v 0.750000 7.687500 0.750000 +v 0.750000 7.687500 0.625000 +v -0.687500 8.749999 0.562500 +v -1.000000 4.000000 1.062500 +v -1.000000 4.000000 0.937500 +v 0.937500 5.062500 0.937500 +v 0.937500 5.062500 0.812500 +v 0.937500 5.187500 0.937500 +v -1.000000 4.125000 1.062500 +v -1.000000 4.125000 0.937500 +v 0.937500 5.187500 0.812500 +v -0.937500 5.187500 0.937500 +v -0.937500 5.187500 0.812500 +v 0.812500 6.250000 0.875000 +v 0.812500 6.250000 0.750000 +v 0.812500 6.375000 0.875000 +v -0.937500 5.312500 0.937500 +v -0.937500 5.312500 0.812500 +v 0.812500 6.375000 0.750000 +v -0.812500 6.375000 0.875000 +v -0.812500 6.375000 0.750000 +v 0.750000 7.437500 0.750000 +v 0.750000 7.437500 0.625000 +v 0.750000 7.562500 0.750000 +v -0.812500 6.500000 0.875000 +v -0.812500 6.500000 0.750000 +v 0.750000 7.562500 0.625000 +v -0.750000 7.562500 0.750000 +v -0.750000 7.562500 0.625000 +v 0.687500 8.624999 0.687500 +v 0.687500 8.624999 0.562500 +v 0.687500 8.749999 0.687500 +v -0.750000 7.687500 0.750000 +v -0.750000 7.687500 0.625000 +v 0.687500 8.749999 0.562500 +v 0.000000 9.750000 -0.500000 +v 0.187500 9.699759 -0.500000 +v 0.324759 9.562500 -0.500000 +v 0.375000 9.375000 -0.500000 +v 0.324759 9.187500 -0.500000 +v 0.187500 9.050241 -0.500000 +v 0.000000 9.000000 -0.500000 +v -0.187500 9.050241 -0.500000 +v -0.324759 9.187500 -0.500000 +v -0.375000 9.375000 -0.500000 +v -0.324759 9.562500 -0.500000 +v -0.187500 9.699759 -0.500000 +v 0.187500 9.699759 -0.375000 +v 0.000000 9.750000 -0.375000 +v 0.324759 9.562500 -0.375000 +v 0.375000 9.375000 -0.375000 +v 0.324759 9.187500 -0.375000 +v 0.187500 9.050241 -0.375000 +v 0.000000 9.000000 -0.375000 +v -0.187500 9.050241 -0.375000 +v -0.324759 9.187500 -0.375000 +v -0.375000 9.375000 -0.375000 +v -0.324759 9.562500 -0.375000 +v -0.187500 9.699759 -0.375000 +v 1.062500 2.687500 -1.031250 +v -1.187500 1.875000 -1.125000 +v 1.062500 2.812500 -1.031250 +v -1.187500 2.000000 -1.125000 +v 0.937500 3.625000 -0.937500 +v -1.062500 2.812500 -1.000000 +v 0.937500 3.750000 -0.937500 +v -1.062500 2.937500 -1.000000 +v 1.062500 2.812500 -1.156250 +v 1.062500 2.687500 -1.156250 +v -1.187500 1.875000 -1.250000 +v -1.187500 2.000000 -1.250000 +v 0.937500 3.750000 -1.062500 +v 0.937500 3.625000 -1.062500 +v -1.062500 2.812500 -1.125000 +v -1.062500 2.937500 -1.125000 +v 1.187500 1.750000 -1.125000 +v -1.312500 0.937500 -1.218750 +v 1.187500 1.875000 -1.125000 +v -1.312500 1.062500 -1.218750 +v 1.187500 1.875000 -1.250000 +v 1.187500 1.750000 -1.250000 +v -1.312500 0.937500 -1.343750 +v -1.312500 1.062500 -1.343750 +v -1.187500 1.750000 -1.125000 +v 1.312500 0.937500 -1.218750 +v -1.187500 1.875000 -1.125000 +v 1.312500 1.062500 -1.218750 +v -1.062500 2.687500 -1.031250 +v 1.187500 1.875000 -1.125000 +v -1.062500 2.812500 -1.031250 +v 1.187500 2.000000 -1.125000 +v -0.937500 3.625000 -0.937500 +v 1.062500 2.812500 -1.000000 +v -0.937500 3.750000 -0.937500 +v 1.062500 2.937500 -1.000000 +v -1.187500 1.875000 -1.250000 +v -1.187500 1.750000 -1.250000 +v 1.312500 0.937500 -1.343750 +v 1.312500 1.062500 -1.343750 +v -1.062500 2.812500 -1.156250 +v -1.062500 2.687500 -1.156250 +v 1.187500 1.875000 -1.250000 +v 1.187500 2.000000 -1.250000 +v -0.937500 3.750000 -1.062500 +v -0.937500 3.625000 -1.062500 +v 1.062500 2.812500 -1.125000 +v 1.062500 2.937500 -1.125000 +v -1.000000 4.000000 -1.062500 +v -1.000000 4.000000 -0.937500 +v 0.937500 5.062500 -0.937500 +v 0.937500 5.062500 -0.812500 +v 0.937500 5.187500 -0.937500 +v -1.000000 4.125000 -1.062500 +v -1.000000 4.125000 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.937500 5.187500 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.812500 6.250000 -0.875000 +v 0.812500 6.250000 -0.750000 +v 0.812500 6.375000 -0.875000 +v -0.937500 5.312500 -0.937500 +v -0.937500 5.312500 -0.812500 +v 0.812500 6.375000 -0.750000 +v -0.812500 6.375000 -0.875000 +v -0.812500 6.375000 -0.750000 +v 0.750000 7.437500 -0.750000 +v 0.750000 7.437500 -0.625000 +v 0.750000 7.562500 -0.750000 +v -0.812500 6.500000 -0.875000 +v -0.812500 6.500000 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.750000 7.562500 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.687500 8.624999 -0.687500 +v 0.687500 8.624999 -0.562500 +v 0.687500 8.749999 -0.687500 +v -0.750000 7.687500 -0.750000 +v -0.750000 7.687500 -0.625000 +v 0.687500 8.749999 -0.562500 +v 1.000000 4.000000 -1.062500 +v 1.000000 4.000000 -0.937500 +v -0.937500 5.062500 -0.937500 +v -0.937500 5.062500 -0.812500 +v -0.937500 5.187500 -0.937500 +v 1.000000 4.125000 -1.062500 +v 1.000000 4.125000 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.937500 5.187500 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.812500 6.250000 -0.875000 +v -0.812500 6.250000 -0.750000 +v -0.812500 6.375000 -0.875000 +v 0.937500 5.312500 -0.937500 +v 0.937500 5.312500 -0.812500 +v -0.812500 6.375000 -0.750000 +v 0.812500 6.375000 -0.875000 +v 0.812500 6.375000 -0.750000 +v -0.750000 7.437500 -0.750000 +v -0.750000 7.437500 -0.625000 +v -0.750000 7.562500 -0.750000 +v 0.812500 6.500000 -0.875000 +v 0.812500 6.500000 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.750000 7.562500 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.687500 8.624999 -0.687500 +v -0.687500 8.624999 -0.562500 +v -0.687500 8.749999 -0.687500 +v 0.750000 7.687500 -0.750000 +v 0.750000 7.687500 -0.625000 +v -0.687500 8.749999 -0.562500 +v 1.031250 2.687500 1.062500 +v 1.125000 1.875000 -1.187500 +v 1.031250 2.812500 1.062500 +v 1.125000 2.000000 -1.187500 +v 0.937500 3.625000 0.937500 +v 1.000000 2.812500 -1.062500 +v 0.937500 3.750000 0.937500 +v 1.000000 2.937500 -1.062500 +v 1.156250 2.812500 1.062500 +v 1.156250 2.687500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 2.000000 -1.187500 +v 1.062500 3.750000 0.937500 +v 1.062500 3.625000 0.937500 +v 1.125000 2.812500 -1.062500 +v 1.125000 2.937500 -1.062500 +v 1.125000 1.750000 1.187500 +v 1.218750 0.937500 -1.312500 +v 1.125000 1.875000 1.187500 +v 1.218750 1.062500 -1.312500 +v 1.250000 1.875000 1.187500 +v 1.250000 1.750000 1.187500 +v 1.343750 0.937500 -1.312500 +v 1.343750 1.062500 -1.312500 +v 1.125000 1.750000 -1.187500 +v 1.218750 0.937500 1.312500 +v 1.125000 1.875000 -1.187500 +v 1.218750 1.062500 1.312500 +v 1.031250 2.687500 -1.062500 +v 1.125000 1.875000 1.187500 +v 1.031250 2.812500 -1.062500 +v 1.125000 2.000000 1.187500 +v 0.937500 3.625000 -0.937500 +v 1.000000 2.812500 1.062500 +v 0.937500 3.750000 -0.937500 +v 1.000000 2.937500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 1.750000 -1.187500 +v 1.343750 0.937500 1.312500 +v 1.343750 1.062500 1.312500 +v 1.156250 2.812500 -1.062500 +v 1.156250 2.687500 -1.062500 +v 1.250000 1.875000 1.187500 +v 1.250000 2.000000 1.187500 +v 1.062500 3.750000 -0.937500 +v 1.062500 3.625000 -0.937500 +v 1.125000 2.812500 1.062500 +v 1.125000 2.937500 1.062500 +v 1.062500 4.000000 -1.000000 +v 0.937500 4.000000 -1.000000 +v 0.937500 5.062499 0.937500 +v 0.812500 5.062499 0.937500 +v 0.937500 5.187499 0.937500 +v 1.062500 4.124999 -1.000000 +v 0.937500 4.124999 -1.000000 +v 0.812500 5.187499 0.937500 +v 0.937500 5.187499 -0.937500 +v 0.812500 5.187499 -0.937500 +v 0.875000 6.249999 0.812500 +v 0.750000 6.249999 0.812500 +v 0.875000 6.374999 0.812500 +v 0.937500 5.312499 -0.937500 +v 0.812500 5.312499 -0.937500 +v 0.750000 6.374999 0.812500 +v 0.875000 6.374999 -0.812500 +v 0.750000 6.374999 -0.812500 +v 0.750000 7.437499 0.750000 +v 0.625000 7.437499 0.750000 +v 0.750000 7.562499 0.750000 +v 0.875000 6.499999 -0.812500 +v 0.750000 6.499999 -0.812500 +v 0.625000 7.562499 0.750000 +v 0.750000 7.562499 -0.750000 +v 0.625000 7.562499 -0.750000 +v 0.687500 8.624998 0.687500 +v 0.562500 8.624998 0.687500 +v 0.687500 8.749998 0.687500 +v 0.750000 7.687499 -0.750000 +v 0.625000 7.687499 -0.750000 +v 0.562500 8.749998 0.687500 +v 1.062500 4.000000 1.000000 +v 0.937500 4.000000 1.000000 +v 0.937500 5.062499 -0.937500 +v 0.812500 5.062499 -0.937500 +v 0.937500 5.187499 -0.937500 +v 1.062500 4.124999 1.000000 +v 0.937500 4.124999 1.000000 +v 0.812500 5.187499 -0.937500 +v 0.937500 5.187499 0.937500 +v 0.812500 5.187499 0.937500 +v 0.875000 6.249999 -0.812500 +v 0.750000 6.249999 -0.812500 +v 0.875000 6.374999 -0.812500 +v 0.937500 5.312499 0.937500 +v 0.812500 5.312499 0.937500 +v 0.750000 6.374999 -0.812500 +v 0.875000 6.374999 0.812500 +v 0.750000 6.374999 0.812500 +v 0.750000 7.437499 -0.750000 +v 0.625000 7.437499 -0.750000 +v 0.750000 7.562499 -0.750000 +v 0.875000 6.499999 0.812500 +v 0.750000 6.499999 0.812500 +v 0.625000 7.562499 -0.750000 +v 0.750000 7.562499 0.750000 +v 0.625000 7.562499 0.750000 +v 0.687500 8.624998 -0.687500 +v 0.562500 8.624998 -0.687500 +v 0.687500 8.749998 -0.687500 +v 0.750000 7.687499 0.750000 +v 0.625000 7.687499 0.750000 +v 0.562500 8.749998 -0.687500 +v -1.031250 2.687500 -1.062500 +v -1.125000 1.875000 1.187500 +v -1.031250 2.812500 -1.062500 +v -1.125000 2.000000 1.187500 +v -0.937500 3.625000 -0.937500 +v -1.000000 2.812500 1.062500 +v -0.937500 3.750000 -0.937500 +v -1.000000 2.937500 1.062500 +v -1.156250 2.812500 -1.062500 +v -1.156250 2.687500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 2.000000 1.187500 +v -1.062500 3.750000 -0.937500 +v -1.062500 3.625000 -0.937500 +v -1.125000 2.812500 1.062500 +v -1.125000 2.937500 1.062500 +v -1.125000 1.750000 -1.187500 +v -1.218750 0.937500 1.312500 +v -1.125000 1.875000 -1.187500 +v -1.218750 1.062500 1.312500 +v -1.250000 1.875000 -1.187500 +v -1.250000 1.750000 -1.187500 +v -1.343750 0.937500 1.312500 +v -1.343750 1.062500 1.312500 +v -1.125000 1.750000 1.187500 +v -1.218750 0.937500 -1.312500 +v -1.125000 1.875000 1.187500 +v -1.218750 1.062500 -1.312500 +v -1.031250 2.687500 1.062500 +v -1.125000 1.875000 -1.187500 +v -1.031250 2.812500 1.062500 +v -1.125000 2.000000 -1.187500 +v -0.937500 3.625000 0.937500 +v -1.000000 2.812500 -1.062500 +v -0.937500 3.750000 0.937500 +v -1.000000 2.937500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 1.750000 1.187500 +v -1.343750 0.937500 -1.312500 +v -1.343750 1.062500 -1.312500 +v -1.156250 2.812500 1.062500 +v -1.156250 2.687500 1.062500 +v -1.250000 1.875000 -1.187500 +v -1.250000 2.000000 -1.187500 +v -1.062500 3.750000 0.937500 +v -1.062500 3.625000 0.937500 +v -1.125000 2.812500 -1.062500 +v -1.125000 2.937500 -1.062500 +v -1.062500 4.000000 1.000000 +v -0.937500 4.000000 1.000000 +v -0.937500 5.062499 -0.937500 +v -0.812500 5.062499 -0.937500 +v -0.937500 5.187499 -0.937500 +v -1.062500 4.124999 1.000000 +v -0.937500 4.124999 1.000000 +v -0.812500 5.187499 -0.937500 +v -0.937500 5.187499 0.937500 +v -0.812500 5.187499 0.937500 +v -0.875000 6.249999 -0.812500 +v -0.750000 6.249999 -0.812500 +v -0.875000 6.374999 -0.812500 +v -0.937500 5.312499 0.937500 +v -0.812500 5.312499 0.937500 +v -0.750000 6.374999 -0.812500 +v -0.875000 6.374999 0.812500 +v -0.750000 6.374999 0.812500 +v -0.750000 7.437499 -0.750000 +v -0.625000 7.437499 -0.750000 +v -0.750000 7.562499 -0.750000 +v -0.875000 6.499999 0.812500 +v -0.750000 6.499999 0.812500 +v -0.625000 7.562499 -0.750000 +v -0.750000 7.562499 0.750000 +v -0.625000 7.562499 0.750000 +v -0.687500 8.624998 -0.687500 +v -0.562500 8.624998 -0.687500 +v -0.687500 8.749998 -0.687500 +v -0.750000 7.687499 0.750000 +v -0.625000 7.687499 0.750000 +v -0.562500 8.749998 -0.687500 +v -1.062500 4.000000 -1.000000 +v -0.937500 4.000000 -1.000000 +v -0.937500 5.062499 0.937500 +v -0.812500 5.062499 0.937500 +v -0.937500 5.187499 0.937500 +v -1.062500 4.124999 -1.000000 +v -0.937500 4.124999 -1.000000 +v -0.812500 5.187499 0.937500 +v -0.937500 5.187499 -0.937500 +v -0.812500 5.187499 -0.937500 +v -0.875000 6.249999 0.812500 +v -0.750000 6.249999 0.812500 +v -0.875000 6.374999 0.812500 +v -0.937500 5.312499 -0.937500 +v -0.812500 5.312499 -0.937500 +v -0.750000 6.374999 0.812500 +v -0.875000 6.374999 -0.812500 +v -0.750000 6.374999 -0.812500 +v -0.750000 7.437499 0.750000 +v -0.625000 7.437499 0.750000 +v -0.750000 7.562499 0.750000 +v -0.875000 6.499999 -0.812500 +v -0.750000 6.499999 -0.812500 +v -0.625000 7.562499 0.750000 +v -0.750000 7.562499 -0.750000 +v -0.625000 7.562499 -0.750000 +v -0.687500 8.624998 0.687500 +v -0.562500 8.624998 0.687500 +v -0.687500 8.749998 0.687500 +v -0.750000 7.687499 -0.750000 +v -0.625000 7.687499 -0.750000 +v -0.562500 8.749998 0.687500 +vt 0.580645 0.090909 +vt 0.709677 0.272727 +vt 0.580645 0.272727 +vt 0.709677 0.454545 +vt 0.580645 0.636364 +vt 0.580645 0.454545 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.258065 0.045455 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.540323 0.125000 +vt 0.580645 0.500000 +vt 0.532258 0.431818 +vt 0.258065 0.500000 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.580645 0.000000 +vt 0.532258 0.386364 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.532258 0.113636 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.532258 0.431818 +vt 0.580645 0.500000 +vt 0.306452 0.431818 +vt 0.258065 0.500000 +vt 0.032258 0.045455 vt -0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.468750 0.510417 -vt 0.680691 0.381809 -vt 0.686501 0.395833 -vt 0.680691 0.409858 -vt 0.652642 0.409858 -vt 0.652642 0.381809 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.416667 1.000000 -vt 0.385417 0.000000 -vt 0.416667 0.000000 -vt 0.385417 1.000000 -vt 0.354167 0.000000 -vt 0.197917 1.000000 -vt 0.166667 0.000000 -vt 0.197917 0.000000 -vt 0.229167 1.000000 -vt 0.229167 0.000000 -vt 0.260417 1.000000 -vt 0.260417 0.000000 -vt 0.291667 1.000000 -vt 0.291667 0.000000 -vt 0.322917 1.000000 -vt 0.322917 0.000000 -vt 0.354167 1.000000 -vt 0.666667 0.166667 -vt 0.645833 0.291667 -vt 0.645833 0.166667 -vt 0.708333 0.166667 -vt 0.687500 0.291667 -vt 0.687500 0.166667 -vt 0.729167 0.166667 -vt 0.708333 0.291667 -vt 0.604167 0.166667 -vt 0.583333 0.291667 -vt 0.583333 0.166667 -vt 0.625000 0.291667 -vt 0.625000 0.166667 -vt 0.666667 0.291667 -vt 0.750000 0.166667 -vt 0.729167 0.291667 -vt 0.604167 0.291667 -vt 0.166667 1.000000 -vt 0.750000 0.291667 +vt 0.032258 0.000000 +vt 0.032258 0.000000 +vt -0.000000 0.045455 +vt -0.000000 -0.000000 +vt -0.000000 0.045455 +vt 0.032258 0.000000 +vt 0.032258 0.045455 +vt -0.000000 -0.000000 +vt 0.032258 0.045455 +vt -0.000000 0.045455 +vt -0.000000 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.032258 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt -0.000000 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.193548 0.863636 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.129032 0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.161290 -0.000000 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.193548 -0.000000 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.225806 0.863636 +vt 0.161290 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.306452 0.795455 +vt 0.306452 0.613636 +vt 0.483871 0.545455 +vt 0.435484 0.613636 +vt 0.483871 0.863636 +vt 0.435484 0.795455 +vt 0.258065 0.863636 +vt 0.483871 0.863636 +vt 0.435484 0.613636 +vt 0.483871 0.545455 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.435484 0.750000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.258065 0.545455 +vt 0.306452 0.613636 +vt 0.258065 0.863636 +vt 0.435484 0.795455 +vt 0.306452 0.795455 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.435484 0.204545 +vt 0.338710 0.250000 +vt 0.370968 0.204545 +vt 0.370968 0.250000 +vt 0.435484 0.204545 +vt 0.435484 0.250000 +vt 0.467742 0.250000 +vt 0.500000 0.204545 +vt 0.500000 0.250000 +vt 0.467742 0.204545 +vt 0.306452 0.250000 +vt 0.338710 0.204545 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.467742 0.204545 +vt 0.435484 0.250000 +vt 0.370968 0.250000 +vt 0.370968 0.204545 +vt 0.338710 0.204545 +vt 0.306452 0.250000 +vt 0.306452 0.204545 +vt 0.338710 0.250000 +vt 0.500000 0.204545 +vt 0.467742 0.250000 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.483871 0.500000 +vt 0.564516 0.613636 +vt 0.483871 0.613636 +vt 0.806452 0.818182 +vt 0.725806 0.863636 +vt 0.725806 0.818182 +vt 0.967742 0.090909 +vt 0.903226 0.636364 +vt 0.903226 0.090909 +vt 0.838710 0.090909 +vt 0.774194 0.636364 +vt 0.774194 0.090909 +vt 0.838710 0.636364 +vt 0.709677 0.636364 +vt 0.709677 0.090909 +vt 0.556452 0.647727 +vt 0.483871 0.636364 +vt 0.564516 0.636364 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.556452 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.564516 0.636364 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.556452 0.681818 +vt 0.491935 0.772727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.596774 0.704545 +vt 0.580645 0.795455 +vt 0.580645 0.704545 +vt 0.580645 0.863636 +vt 0.596774 0.795455 +vt 0.596774 0.863636 +vt 0.596774 0.636364 +vt 0.580645 0.636364 +vt 0.564516 0.681818 +vt 0.564516 0.636364 +vt 0.564516 0.818182 +vt 0.564516 0.772727 +vt 0.629032 0.863636 +vt 0.612903 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.681818 +vt 0.612903 0.636364 +vt 0.629032 0.636364 +vt 0.612903 0.681818 +vt 0.612903 0.772727 +vt 0.629032 0.727273 +vt 0.629032 0.772727 +vt 0.750000 0.636364 +vt 0.782258 0.681818 +vt 0.750000 0.681818 +vt 0.750000 1.000000 +vt 0.806452 0.863636 +vt 0.782258 1.000000 +vt 0.903226 0.863636 +vt 0.903226 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.863636 +vt 0.112903 0.738636 +vt 0.129032 0.784091 +vt 0.112903 0.784091 +vt 0.129032 0.727273 +vt 0.129032 0.738636 +vt 0.112903 0.795455 +vt 0.129032 0.795455 +vt 0.112903 0.840909 +vt 0.056452 0.863636 +vt 0.048387 0.829545 +vt 0.056452 0.840909 +vt 0.096774 0.840909 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.048387 0.931818 +vt 0.064516 0.863636 +vt 0.064516 0.931818 +vt 0.032258 0.829545 +vt 0.056452 0.840909 +vt 0.048387 0.829545 +vt 0.016129 0.829545 +vt 0.032258 0.784091 +vt 0.032258 0.829545 +vt 0.016129 0.784091 +vt 0.032258 0.750000 +vt 0.056452 0.727273 +vt 0.088710 0.750000 +vt 0.056452 0.750000 +vt 0.088710 0.727273 +vt 0.112903 0.750000 +vt 0.112903 0.784091 +vt 0.096774 0.806818 +vt 0.096774 0.784091 +vt 0.112903 0.784091 +vt 0.088710 0.772727 +vt 0.096774 0.784091 +vt 0.088710 0.750000 +vt 0.056452 0.772727 +vt 0.056452 0.750000 +vt 0.048387 0.784091 +vt 0.032258 0.784091 +vt 0.016129 0.863636 +vt 0.064516 0.863636 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.088710 0.772727 +vt 0.056452 0.772727 +vt 0.048387 0.784091 +vt 0.129032 0.840909 +vt 0.112903 0.852273 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.032258 0.875000 +vt 0.032258 0.863636 +vt 0.056452 0.863636 +vt 0.129032 0.886364 +vt 0.112903 0.886364 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.709677 0.090909 +vt 0.709677 0.636364 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.258065 0.000000 +vt 0.258065 0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt 0.258065 0.000000 +vt 0.258065 -0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt -0.000000 -0.000000 +vt 0.032258 0.000000 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.863636 +vt 0.193548 -0.000000 +vt 0.129032 0.863636 +vt 0.129032 0.863636 +vt 0.306452 0.750000 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.306452 0.204545 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.500000 0.250000 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.564516 0.500000 +vt 0.967742 0.636364 +vt 0.556452 0.681818 +vt 0.556452 0.772727 +vt 0.556452 0.681818 +vt 0.556452 0.681818 +vt 0.564516 0.863636 +vt 0.564516 0.727273 +vt 0.612903 0.863636 +vt 0.612903 0.727273 +vt 0.782258 0.636364 +vt 0.112903 0.727273 +vt 0.096774 0.931818 +vt 0.048387 0.863636 +vt 0.016129 0.750000 +vt 0.112903 0.727273 +vt 0.112903 0.806818 +vt 0.064516 0.931818 +vt 0.129032 0.852273 +vt 0.967742 0.613636 +vt 0.967742 0.613636 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.016129 0.875000 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.338710 1.000000 +vt 0.322581 0.863636 +vt 0.338710 0.863636 +vt 0.306452 1.000000 +vt 0.290323 0.863636 +vt 0.306452 0.863636 +vt 0.387097 1.000000 +vt 0.370968 0.863636 +vt 0.387097 0.863636 +vt 0.241935 1.000000 +vt 0.225806 0.863636 +vt 0.241935 0.863636 +vt 0.290323 1.000000 +vt 0.274194 0.863636 +vt 0.370968 1.000000 +vt 0.354839 0.863636 +vt 0.419355 1.000000 +vt 0.403226 0.863636 +vt 0.419355 0.863636 +vt 0.274194 1.000000 +vt 0.258065 0.863636 +vt 0.354839 1.000000 +vt 0.322581 1.000000 +vt 0.403226 1.000000 +vt 0.258065 1.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.709677 0.886364 +vt 0.225806 1.000000 +vt 0.709677 0.886364 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.9864 -0.1644 0.0000 -vn -0.9864 -0.1644 0.0000 -vn 0.0000 -0.1644 0.9864 -vn 0.0000 -0.1644 -0.9864 -vn 0.9864 0.1644 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.7071 0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.0000 -0.7809 -0.6247 -vn 0.0000 0.6757 -0.7372 -vn 0.0000 -0.6757 -0.7372 -vn 0.0000 0.7809 -0.6247 -vn -0.6247 0.7809 0.0000 -vn -0.7372 -0.6757 0.0000 -vn -0.7372 0.6757 0.0000 -vn -0.6247 -0.7809 0.0000 -vn 0.0000 0.7809 0.6247 -vn 0.0000 -0.6757 0.7372 -vn 0.0000 0.6757 0.7372 -vn 0.0000 -0.7809 0.6247 -vn 0.7372 0.6757 0.0000 -vn 0.6247 -0.7809 0.0000 -vn 0.6247 0.7809 0.0000 -vn 0.7372 -0.6757 0.0000 -vn 0.0000 0.1644 0.9864 -vn -0.9864 0.1644 0.0000 -vn 0.0000 0.1644 -0.9864 -vn 0.0000 -0.5039 0.8638 -vn 0.0000 0.5039 0.8638 -vn -0.8638 0.5039 0.0000 -vn -0.8638 -0.5039 0.0000 -vn 0.0000 -0.5039 -0.8638 -vn 0.0000 0.5039 -0.8638 -vn 0.8638 -0.5039 0.0000 -vn 0.8638 0.5039 0.0000 -vn 0.0000 0.3736 0.9276 -vn 0.0000 0.3736 -0.9276 -vn 0.9276 0.3736 -0.0000 -vn 0.9276 -0.3736 -0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 -0.3736 -0.9276 -vn 0.0000 -0.3736 0.9276 -vn -0.9276 -0.3736 0.0000 -vn -0.9276 0.3736 0.0000 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 0.7071 -vn 0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.9950 -0.0995 0.0000 +vn 0.0000 -0.0995 -0.9950 +vn 0.0000 0.0995 -0.9950 +vn 0.0000 0.0995 0.9950 +vn 0.0000 -0.0995 0.9950 +vn 0.9950 -0.0995 0.0000 +vn -0.9950 0.0995 0.0000 +vn 0.9950 0.0995 0.0000 +vn 0.0000 0.0787 0.9969 +vn -0.9969 -0.0787 0.0000 +vn 0.0000 -0.0787 -0.9969 +vn 0.9969 0.0787 0.0000 +vn 0.0000 -0.0787 0.9969 +vn 0.0000 0.0787 -0.9969 +vn -0.9969 0.0787 0.0000 +vn 0.9969 -0.0787 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9701 -0.2425 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0312 0.0000 -0.9995 +vn -0.0416 0.0000 0.9991 +vn -0.0312 0.0000 0.9995 +vn 0.3396 0.9406 0.0000 +vn 0.3764 0.9265 0.0000 +vn -0.3396 -0.9406 0.0000 +vn -0.3764 -0.9265 0.0000 +vn 0.0375 0.0000 -0.9993 +vn -0.0375 0.0000 0.9993 +vn 0.3091 0.9510 0.0000 +vn -0.3091 -0.9510 0.0000 +vn -0.0375 0.0000 -0.9993 +vn -0.0416 0.0000 -0.9991 +vn -0.0312 0.0000 -0.9995 +vn 0.0375 0.0000 0.9993 +vn 0.0416 0.0000 0.9991 +vn 0.0312 0.0000 0.9995 +vn -0.3091 0.9510 0.0000 +vn -0.3396 0.9406 0.0000 +vn -0.3764 0.9265 0.0000 +vn 0.3091 -0.9510 0.0000 +vn 0.3396 -0.9406 0.0000 +vn 0.3764 -0.9265 0.0000 +vn -0.4808 -0.8768 0.0000 +vn 0.4808 0.8768 0.0000 +vn -0.0644 0.0000 0.9979 +vn 0.5190 0.8548 0.0000 +vn -0.5190 -0.8548 0.0000 +vn 0.0644 0.0000 -0.9979 +vn -0.0357 0.0000 0.9994 +vn 0.0357 0.0000 -0.9994 +vn 0.5623 0.8269 0.0000 +vn -0.5623 -0.8269 0.0000 +vn -0.0797 0.0000 0.9968 +vn 0.0797 0.0000 -0.9968 +vn 0.5944 0.8042 0.0000 +vn -0.5944 -0.8042 0.0000 +vn -0.0434 0.0000 0.9991 +vn 0.0434 0.0000 -0.9991 +vn 0.4808 -0.8768 0.0000 +vn -0.4808 0.8768 0.0000 +vn 0.0644 0.0000 0.9979 +vn -0.5190 0.8548 0.0000 +vn 0.5190 -0.8548 0.0000 +vn -0.0644 0.0000 -0.9979 +vn 0.0357 0.0000 0.9994 +vn -0.0357 0.0000 -0.9994 +vn -0.5623 0.8269 0.0000 +vn 0.5623 -0.8269 0.0000 +vn 0.0797 0.0000 0.9968 +vn -0.0797 0.0000 -0.9968 +vn -0.5944 0.8042 0.0000 +vn 0.5944 -0.8042 0.0000 +vn 0.0434 0.0000 0.9991 +vn -0.0434 0.0000 -0.9991 +vn -0.9991 0.0000 -0.0416 +vn -0.9995 0.0000 -0.0312 +vn 0.9991 0.0000 0.0416 +vn 0.9995 0.0000 0.0312 +vn 0.0000 0.9406 -0.3396 +vn 0.0000 0.9265 -0.3764 +vn 0.0000 -0.9406 0.3396 +vn 0.0000 -0.9265 0.3764 +vn -0.9993 0.0000 -0.0375 +vn 0.9993 0.0000 0.0375 +vn 0.0000 0.9510 -0.3091 +vn 0.0000 -0.9510 0.3091 +vn -0.9993 0.0000 0.0375 +vn -0.9991 0.0000 0.0416 +vn -0.9995 0.0000 0.0312 +vn 0.9993 0.0000 -0.0375 +vn 0.9991 0.0000 -0.0416 +vn 0.9995 0.0000 -0.0312 +vn 0.0000 0.9510 0.3091 +vn 0.0000 0.9406 0.3396 +vn 0.0000 0.9265 0.3764 +vn 0.0000 -0.9510 -0.3091 +vn 0.0000 -0.9406 -0.3396 +vn 0.0000 -0.9265 -0.3764 +vn 0.0000 -0.8768 0.4808 +vn 0.0000 0.8768 -0.4808 +vn 0.9979 0.0000 0.0644 +vn 0.0000 0.8548 -0.5190 +vn 0.0000 -0.8548 0.5190 +vn -0.9979 0.0000 -0.0644 +vn 0.9994 0.0000 0.0357 +vn -0.9994 0.0000 -0.0357 +vn 0.0000 0.8269 -0.5623 +vn 0.0000 -0.8269 0.5623 +vn 0.9968 0.0000 0.0797 +vn -0.9968 0.0000 -0.0797 +vn 0.0000 0.8042 -0.5944 +vn 0.0000 -0.8042 0.5944 +vn 0.9991 0.0000 0.0434 +vn -0.9991 0.0000 -0.0434 +vn 0.0000 -0.8768 -0.4808 +vn 0.0000 0.8768 0.4808 +vn 0.9979 0.0000 -0.0644 +vn 0.0000 0.8548 0.5190 +vn 0.0000 -0.8548 -0.5190 +vn -0.9979 0.0000 0.0644 +vn 0.9994 0.0000 -0.0357 +vn -0.9994 0.0000 0.0357 +vn 0.0000 0.8269 0.5623 +vn 0.0000 -0.8269 -0.5623 +vn 0.9968 0.0000 -0.0797 +vn -0.9968 0.0000 0.0797 +vn 0.0000 0.8042 0.5944 +vn -0.0000 -0.8042 -0.5944 +vn 0.9991 0.0000 -0.0434 +vn -0.9991 0.0000 0.0434 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 s off -f 6/1/1 9/2/1 11/3/1 -f 13/4/1 5/5/1 15/6/1 -f 7/7/1 14/8/1 16/9/1 -f 10/10/1 8/11/1 12/12/1 -f 17/13/2 20/14/2 18/15/2 -f 21/16/2 24/17/2 23/18/2 -f 28/19/2 26/20/2 25/21/2 -f 30/22/2 32/23/2 29/24/2 -f 78/25/3 24/26/3 79/27/3 -f 52/28/4 17/29/4 18/30/4 -f 63/31/4 32/32/4 60/33/4 -f 69/34/5 26/35/5 70/36/5 -f 52/28/6 20/37/6 57/38/6 -f 69/34/3 28/39/3 25/40/3 -f 56/41/7 57/42/7 19/43/7 -f 63/31/5 30/44/5 29/45/5 -f 78/25/6 21/46/6 23/47/6 -f 24/17/2 18/15/2 23/18/2 -f 26/20/2 23/18/2 25/21/2 -f 25/21/2 32/23/2 28/19/2 -f 29/24/2 20/14/2 30/22/2 -f 29/24/2 23/18/2 18/15/2 -f 35/48/1 34/49/1 33/50/1 -f 39/51/2 37/52/2 38/53/2 -f 35/54/8 40/55/8 36/56/8 -f 34/57/9 38/53/9 33/58/9 -f 36/59/10 39/60/10 34/61/10 -f 33/50/11 37/62/11 35/48/11 -f 43/63/2 41/64/2 47/65/2 -f 54/66/6 56/67/6 55/68/6 -f 53/69/6 57/38/6 56/67/6 -f 54/66/4 50/70/4 53/69/4 -f 53/69/4 51/71/4 52/28/4 -f 61/72/5 65/73/5 62/74/5 -f 62/74/5 66/75/5 63/31/5 -f 61/72/4 59/76/4 58/77/4 -f 62/74/4 60/33/4 59/76/4 -f 67/78/3 74/79/3 68/80/3 -f 68/80/3 73/81/3 69/34/3 -f 67/78/5 71/82/5 72/83/5 -f 68/80/5 70/36/5 71/82/5 -f 76/84/6 83/85/6 77/86/6 -f 77/86/6 82/87/6 78/25/6 -f 76/84/3 80/88/3 81/89/3 -f 77/86/3 79/27/3 80/88/3 -f 85/90/2 58/91/2 87/92/2 -f 68/93/2 59/94/2 74/95/2 -f 60/96/1 69/97/1 73/98/1 -f 63/99/1 57/100/1 52/101/1 -f 62/102/2 56/103/2 65/104/2 -f 64/105/2 90/106/2 92/107/2 -f 49/108/2 95/109/2 93/110/2 -f 77/111/1 50/112/1 80/113/1 -f 79/114/1 52/115/1 51/116/1 -f 70/117/1 78/118/1 82/119/1 -f 71/120/1 77/121/1 83/122/1 -f 99/123/2 67/124/2 72/125/2 -f 65/126/12 54/127/12 62/128/12 -f 57/129/13 62/102/13 52/130/13 -f 53/131/14 66/132/14 56/133/14 -f 61/134/15 56/103/15 64/105/15 -f 67/135/16 59/136/16 75/137/16 -f 62/102/17 73/98/17 59/138/17 -f 68/139/18 60/140/18 74/141/18 -f 74/142/19 61/134/19 68/143/19 -f 76/144/20 71/145/20 84/146/20 -f 68/139/21 82/119/21 71/120/21 -f 77/147/22 70/148/22 83/149/22 -f 83/122/23 67/135/23 77/121/23 -f 53/131/24 79/150/24 50/151/24 -f 76/144/25 50/152/25 81/153/25 -f 80/154/26 54/127/26 77/121/26 -f 77/147/27 51/155/27 80/156/27 -f 11/157/6 55/68/6 6/158/6 -f 19/43/28 51/71/28 50/70/28 -f 49/159/4 11/157/4 9/160/4 -f 22/161/28 1/162/28 81/163/28 -f 81/89/3 15/164/3 76/84/3 -f 15/164/6 84/165/6 76/84/6 -f 83/85/29 84/165/29 22/161/29 -f 75/166/3 16/167/3 14/168/3 -f 74/79/30 75/166/30 27/169/30 -f 16/167/5 72/83/5 7/170/5 -f 27/169/29 3/171/29 72/172/29 -f 12/173/5 64/174/5 61/72/5 -f 58/77/4 12/173/4 61/72/4 -f 59/175/30 60/176/30 31/177/30 -f 65/73/7 64/174/7 31/177/7 -f 69/178/31 21/179/31 70/117/31 -f 78/180/32 26/181/32 82/182/32 -f 69/178/33 32/183/33 73/184/33 -f 63/185/34 28/186/34 60/96/34 -f 52/187/35 30/188/35 57/189/35 -f 63/185/36 20/190/36 66/191/36 -f 78/180/37 17/192/37 79/193/37 -f 52/187/38 24/194/38 51/195/38 -f 76/196/2 100/197/2 84/198/2 -f 98/199/2 99/123/2 100/197/2 -f 94/200/2 76/201/2 81/202/2 -f 93/110/2 96/203/2 94/200/2 -f 55/204/2 89/205/2 54/206/2 -f 92/107/2 89/205/2 91/207/2 -f 67/208/2 88/209/2 75/210/2 -f 85/90/2 88/209/2 86/211/2 -f 11/212/39 91/213/39 89/214/39 -f 12/215/40 92/216/40 8/217/40 -f 12/218/41 87/219/41 85/220/41 -f 16/221/42 88/222/42 86/223/42 -f 16/221/40 99/224/40 97/225/40 -f 15/226/39 100/227/39 5/228/39 -f 15/226/42 94/229/42 13/230/42 -f 11/231/41 93/232/41 9/233/41 -f 108/234/43 103/235/43 104/236/43 -f 102/237/44 105/238/44 106/239/44 -f 118/240/2 109/241/2 111/242/2 -f 124/243/2 115/244/2 113/245/2 -f 123/246/1 116/247/1 119/248/1 -f 121/249/1 112/250/1 110/251/1 -f 124/252/45 119/253/45 120/254/45 -f 118/255/46 121/256/46 122/257/46 -f 104/258/2 109/259/2 108/260/2 -f 107/261/1 114/262/1 103/263/1 -f 101/264/1 112/265/1 105/266/1 -f 106/267/2 115/268/2 102/269/2 -f 116/270/44 120/271/44 119/272/44 -f 115/244/45 101/273/45 102/274/45 -f 105/275/46 111/242/46 106/276/46 -f 118/277/44 112/265/44 117/278/44 -f 110/279/43 122/280/43 121/281/43 -f 109/241/46 107/282/46 108/283/46 -f 114/284/45 104/285/45 103/286/45 -f 124/287/43 114/262/43 123/288/43 -f 139/289/2 137/290/2 135/291/2 -f 156/292/1 153/293/1 154/294/1 -f 160/295/1 157/296/1 159/297/1 -f 162/298/1 164/299/1 161/300/1 -f 168/301/1 166/302/1 165/303/1 -f 154/294/1 160/295/1 159/297/1 -f 159/297/1 162/298/1 161/300/1 -f 168/301/1 161/300/1 164/299/1 -f 156/292/1 165/303/1 166/302/1 -f 159/297/1 165/303/1 154/294/1 -f 205/304/1 178/305/1 181/306/1 -f 179/307/1 188/308/1 194/309/1 -f 189/310/2 180/311/2 193/312/2 -f 177/313/2 183/314/2 172/315/2 -f 176/316/1 182/317/1 185/318/1 -f 210/319/1 184/320/1 212/321/1 -f 215/322/1 169/323/1 213/324/1 -f 170/325/2 197/326/2 200/327/2 -f 172/328/2 199/329/2 171/330/2 -f 198/331/2 190/332/2 202/333/2 -f 197/334/2 191/335/2 203/336/2 -f 219/337/1 187/338/1 217/339/1 -f 174/340/20 185/341/20 182/342/20 -f 182/317/21 177/343/21 172/344/21 -f 186/345/22 173/346/22 176/347/22 -f 176/316/23 181/348/23 184/320/23 -f 179/349/25 187/350/25 195/351/25 -f 193/312/24 182/317/24 179/352/24 -f 188/353/27 180/354/27 183/355/27 -f 181/348/26 194/356/26 188/357/26 -f 191/358/12 196/359/12 204/360/12 -f 202/333/13 188/353/13 191/335/13 -f 197/361/14 190/362/14 189/310/14 -f 187/350/15 203/336/15 197/334/15 -f 199/363/17 173/346/17 170/364/17 -f 170/365/16 196/359/16 201/366/16 -f 174/340/19 200/367/19 197/334/19 -f 197/361/18 171/368/18 172/344/18 -f 157/369/36 189/370/36 190/332/36 -f 162/371/35 198/372/35 202/373/35 -f 168/374/37 189/370/37 193/375/37 -f 164/376/38 183/377/38 180/311/38 -f 166/378/32 172/379/32 177/380/32 -f 156/381/31 183/377/31 186/382/31 -f 153/383/33 198/372/33 199/384/33 -f 160/385/34 172/379/34 171/386/34 -f 220/387/1 196/388/1 204/389/1 -f 219/337/1 218/390/1 220/387/1 -f 196/391/1 214/392/1 201/393/1 -f 216/394/1 213/324/1 214/392/1 -f 175/395/1 209/396/1 211/397/1 -f 209/396/1 212/321/1 211/397/1 -f 187/398/1 208/399/1 206/400/1 -f 208/399/1 205/304/1 206/400/1 -f 211/401/47 147/402/47 209/403/47 -f 148/404/48 212/405/48 210/406/48 -f 207/407/49 148/408/49 205/409/49 -f 208/410/50 152/411/50 206/412/50 -f 219/413/48 152/411/48 217/414/48 -f 151/415/47 220/416/47 218/417/47 -f 151/415/50 214/418/50 216/419/50 -f 147/420/49 213/421/49 215/422/49 -f 6/1/1 2/423/1 9/2/1 -f 13/4/1 1/424/1 5/5/1 -f 7/7/1 3/425/1 14/8/1 -f 10/10/1 4/426/1 8/11/1 -f 17/13/2 19/427/2 20/14/2 -f 21/16/2 22/428/2 24/17/2 -f 28/19/2 27/429/2 26/20/2 -f 30/22/2 31/430/2 32/23/2 -f 78/25/3 23/47/3 24/26/3 -f 52/28/4 51/71/4 17/29/4 -f 63/31/4 29/45/4 32/32/4 -f 69/34/5 25/40/5 26/35/5 -f 52/28/6 18/30/6 20/37/6 -f 69/34/3 73/81/3 28/39/3 -f 19/43/7 2/431/7 55/432/7 -f 2/431/7 6/433/7 55/432/7 -f 19/43/7 55/432/7 56/41/7 -f 57/42/7 20/434/7 19/43/7 -f 63/31/5 66/75/5 30/44/5 -f 78/25/6 82/87/6 21/46/6 -f 24/17/2 17/13/2 18/15/2 -f 26/20/2 21/16/2 23/18/2 -f 25/21/2 29/24/2 32/23/2 -f 29/24/2 18/15/2 20/14/2 -f 29/24/2 25/21/2 23/18/2 -f 35/48/1 36/435/1 34/49/1 -f 39/51/2 40/436/2 37/52/2 -f 35/54/8 37/437/8 40/55/8 -f 34/57/9 39/51/9 38/53/9 -f 36/59/10 40/438/10 39/60/10 -f 33/50/11 38/439/11 37/62/11 -f 43/63/2 42/440/2 41/64/2 -f 41/64/2 48/441/2 47/65/2 -f 47/65/2 46/442/2 45/443/2 -f 45/443/2 44/444/2 47/65/2 -f 44/444/2 43/63/2 47/65/2 -f 54/66/6 53/69/6 56/67/6 -f 53/69/6 52/28/6 57/38/6 -f 54/66/4 49/159/4 50/70/4 -f 53/69/4 50/70/4 51/71/4 -f 61/72/5 64/174/5 65/73/5 -f 62/74/5 65/73/5 66/75/5 -f 61/72/4 62/74/4 59/76/4 -f 62/74/4 63/31/4 60/33/4 -f 67/78/3 75/166/3 74/79/3 -f 68/80/3 74/79/3 73/81/3 -f 67/78/5 68/80/5 71/82/5 -f 68/80/5 69/34/5 70/36/5 -f 76/84/6 84/165/6 83/85/6 -f 77/86/6 83/85/6 82/87/6 -f 76/84/3 77/86/3 80/88/3 -f 77/86/3 78/25/3 79/27/3 -f 85/90/2 61/445/2 58/91/2 -f 68/93/2 62/446/2 59/94/2 -f 60/96/1 63/185/1 69/97/1 -f 63/99/1 66/447/1 57/100/1 -f 62/102/2 53/448/2 56/103/2 -f 64/105/2 61/134/2 90/106/2 -f 49/108/2 54/127/2 95/109/2 -f 77/111/1 53/449/1 50/112/1 -f 79/114/1 78/450/1 52/115/1 -f 70/117/1 69/178/1 78/118/1 -f 71/120/1 68/139/1 77/121/1 -f 99/123/2 97/451/2 67/124/2 -f 65/126/12 55/452/12 54/127/12 -f 57/129/13 65/104/13 62/102/13 -f 53/131/14 63/453/14 66/132/14 -f 61/134/15 53/448/15 56/103/15 -f 67/135/16 62/128/16 59/136/16 -f 62/102/17 69/97/17 73/98/17 -f 68/139/18 63/453/18 60/140/18 -f 74/142/19 58/454/19 61/134/19 -f 76/144/20 68/143/20 71/145/20 -f 68/139/21 78/118/21 82/119/21 -f 77/147/22 69/97/22 70/148/22 -f 83/122/23 72/455/23 67/135/23 -f 53/131/24 78/118/24 79/150/24 -f 76/144/25 53/448/25 50/152/25 -f 80/154/26 49/108/26 54/127/26 -f 77/147/27 52/130/27 51/155/27 -f 11/157/6 54/66/6 55/68/6 -f 9/160/28 2/431/28 49/159/28 -f 2/431/28 19/43/28 49/159/28 -f 19/43/28 17/29/28 51/71/28 -f 50/70/28 49/159/28 19/43/28 -f 49/159/4 54/66/4 11/157/4 -f 1/162/28 13/456/28 81/163/28 -f 81/163/28 80/457/28 22/161/28 -f 80/457/28 79/458/28 22/161/28 -f 79/458/28 24/459/28 22/161/28 -f 81/89/3 13/460/3 15/164/3 -f 15/164/6 5/461/6 84/165/6 -f 84/165/29 5/461/29 1/162/29 -f 1/162/29 22/161/29 84/165/29 -f 22/161/29 21/46/29 82/87/29 -f 82/87/29 83/85/29 22/161/29 -f 75/166/3 67/78/3 16/167/3 -f 75/166/30 14/168/30 3/171/30 -f 3/171/30 27/169/30 75/166/30 -f 27/169/30 28/39/30 73/81/30 -f 73/81/30 74/79/30 27/169/30 -f 16/167/5 67/78/5 72/83/5 -f 3/171/29 7/462/29 72/172/29 -f 72/172/29 71/463/29 27/169/29 -f 71/463/29 70/464/29 27/169/29 -f 70/464/29 26/465/29 27/169/29 -f 12/173/5 8/466/5 64/174/5 -f 58/77/4 10/467/4 12/173/4 -f 31/177/30 4/468/30 58/469/30 -f 4/468/30 10/470/30 58/469/30 -f 31/177/30 58/469/30 59/175/30 -f 60/176/30 32/471/30 31/177/30 -f 8/466/7 4/468/7 64/174/7 -f 4/468/7 31/177/7 64/174/7 -f 31/177/7 30/44/7 66/75/7 -f 66/75/7 65/73/7 31/177/7 -f 69/178/31 23/472/31 21/179/31 -f 78/180/32 25/473/32 26/181/32 -f 69/178/33 29/474/33 32/183/33 -f 63/185/34 25/473/34 28/186/34 -f 52/187/35 29/474/35 30/188/35 -f 63/185/36 18/475/36 20/190/36 -f 78/180/37 18/475/37 17/192/37 -f 52/187/38 23/472/38 24/194/38 -f 76/196/2 98/199/2 100/197/2 -f 98/199/2 97/451/2 99/123/2 -f 94/200/2 96/203/2 76/201/2 -f 93/110/2 95/109/2 96/203/2 -f 55/204/2 91/207/2 89/205/2 -f 92/107/2 90/106/2 89/205/2 -f 67/208/2 86/211/2 88/209/2 -f 85/90/2 87/92/2 88/209/2 -f 11/212/39 6/476/39 91/213/39 -f 12/215/40 90/477/40 92/216/40 -f 12/218/41 10/478/41 87/219/41 -f 16/221/42 14/479/42 88/222/42 -f 16/221/40 7/480/40 99/224/40 -f 15/226/39 98/481/39 100/227/39 -f 15/226/42 96/482/42 94/229/42 -f 11/231/41 95/483/41 93/232/41 -f 108/234/43 107/261/43 103/235/43 -f 102/237/44 101/264/44 105/238/44 -f 118/240/2 122/484/2 109/241/2 -f 124/243/2 120/485/2 115/244/2 -f 123/246/1 114/284/1 116/247/1 -f 121/249/1 117/486/1 112/250/1 -f 124/252/45 123/246/45 119/253/45 -f 118/255/46 117/486/46 121/256/46 -f 104/258/2 113/487/2 109/259/2 -f 107/261/1 110/279/1 114/262/1 -f 101/264/1 116/270/1 112/265/1 -f 106/267/2 111/488/2 115/268/2 -f 116/270/44 115/268/44 120/271/44 -f 115/244/45 116/247/45 101/273/45 -f 105/275/46 112/250/46 111/242/46 -f 118/277/44 111/488/44 112/265/44 -f 110/279/43 109/259/43 122/280/43 -f 109/241/46 110/251/46 107/282/46 -f 114/284/45 113/245/45 104/285/45 -f 124/287/43 113/487/43 114/262/43 -f 135/291/2 133/489/2 134/490/2 -f 134/490/2 140/491/2 139/289/2 -f 139/289/2 138/492/2 137/290/2 -f 137/290/2 136/493/2 135/291/2 -f 135/291/2 134/490/2 139/289/2 -f 156/292/1 155/494/1 153/293/1 -f 160/295/1 158/495/1 157/296/1 -f 162/298/1 163/496/1 164/299/1 -f 168/301/1 167/497/1 166/302/1 -f 154/294/1 153/293/1 160/295/1 -f 159/297/1 157/296/1 162/298/1 -f 168/301/1 165/303/1 161/300/1 -f 156/292/1 154/294/1 165/303/1 -f 159/297/1 161/300/1 165/303/1 -f 205/304/1 207/498/1 178/305/1 -f 179/307/1 182/499/1 188/308/1 -f 189/310/2 183/377/2 180/311/2 -f 177/313/2 186/500/2 183/314/2 -f 176/316/1 173/501/1 182/317/1 -f 210/319/1 181/348/1 184/320/1 -f 215/322/1 174/340/1 169/323/1 -f 170/325/2 173/502/2 197/326/2 -f 172/328/2 198/503/2 199/329/2 -f 198/331/2 189/370/2 190/332/2 -f 197/334/2 188/353/2 191/335/2 -f 219/337/1 192/504/1 187/338/1 -f 174/340/20 175/505/20 185/341/20 -f 182/317/21 185/318/21 177/343/21 -f 186/345/22 183/355/22 173/346/22 -f 176/316/23 173/501/23 181/348/23 -f 179/349/25 182/342/25 187/350/25 -f 193/312/24 189/310/24 182/317/24 -f 188/353/27 194/506/27 180/354/27 -f 181/348/26 178/507/26 194/356/26 -f 191/358/12 188/357/12 196/359/12 -f 202/333/13 198/331/13 188/353/13 -f 197/361/14 203/508/14 190/362/14 -f 187/350/15 192/509/15 203/336/15 -f 199/363/17 198/331/17 173/346/17 -f 170/365/16 173/501/16 196/359/16 -f 174/340/19 169/323/19 200/367/19 -f 197/361/18 200/510/18 171/368/18 -f 157/369/36 159/511/36 189/370/36 -f 162/371/35 161/512/35 198/372/35 -f 168/374/37 165/513/37 189/370/37 -f 164/376/38 161/512/38 183/377/38 -f 166/378/32 165/513/32 172/379/32 -f 156/381/31 154/514/31 183/377/31 -f 153/383/33 154/514/33 198/372/33 -f 160/385/34 159/511/34 172/379/34 -f 220/387/1 218/390/1 196/388/1 -f 219/337/1 217/339/1 218/390/1 -f 196/391/1 216/394/1 214/392/1 -f 216/394/1 215/322/1 213/324/1 -f 175/395/1 174/515/1 209/396/1 -f 209/396/1 210/319/1 212/321/1 -f 187/398/1 195/516/1 208/399/1 -f 208/399/1 207/498/1 205/304/1 -f 211/401/47 142/517/47 147/402/47 -f 148/404/48 144/518/48 212/405/48 -f 207/407/49 146/519/49 148/408/49 -f 208/410/50 150/520/50 152/411/50 -f 219/413/48 143/521/48 152/411/48 -f 151/415/47 141/522/47 220/416/47 -f 151/415/50 149/523/50 214/418/50 -f 147/420/49 145/524/49 213/421/49 +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/6/4 1/3/4 +f 4/10/5 7/11/5 2/12/5 +f 1/13/6 5/14/6 3/15/6 +f 10/16/5 20/17/5 12/18/5 +f 13/19/2 9/20/2 14/21/2 +f 14/21/2 10/22/2 15/23/2 +f 15/23/2 12/24/2 16/25/2 +f 16/25/2 11/26/2 13/19/2 +f 11/27/6 17/28/6 9/29/6 +f 16/30/6 23/31/6 15/32/6 +f 14/33/5 21/34/5 13/35/5 +f 12/36/3 19/37/3 11/38/3 +f 9/20/4 18/39/4 10/22/4 +f 13/19/4 24/40/4 16/25/4 +f 15/41/3 22/42/3 14/43/3 +f 19/44/1 24/45/1 21/46/1 +f 20/47/1 23/48/1 24/45/1 +f 18/49/1 22/50/1 23/48/1 +f 17/51/1 21/46/1 22/50/1 +f 27/52/1 26/53/1 25/54/1 +f 31/55/1 30/56/1 29/57/1 +f 35/58/1 34/59/1 33/60/1 +f 39/61/1 38/62/1 37/63/1 +f 28/64/7 59/65/7 60/66/7 +f 35/67/7 68/68/7 36/69/7 +f 28/70/8 58/71/8 26/72/8 +f 36/69/9 66/73/9 34/74/9 +f 27/52/10 57/75/10 59/65/10 +f 35/58/11 65/76/11 67/77/11 +f 30/78/12 61/79/12 29/80/12 +f 37/63/12 70/81/12 69/82/12 +f 32/83/13 63/84/13 64/85/13 +f 39/86/13 72/87/13 40/88/13 +f 30/56/8 64/85/8 62/89/8 +f 38/62/9 72/87/9 70/81/9 +f 29/80/10 63/84/10 31/90/10 +f 26/72/14 57/75/14 25/91/14 +f 37/92/11 71/93/11 39/86/11 +f 33/60/14 66/73/14 65/76/14 +f 41/94/15 86/95/15 88/96/15 +f 85/97/16 43/98/16 44/99/16 +f 42/100/17 85/101/17 44/102/17 +f 41/94/18 87/103/18 42/100/18 +f 49/104/19 78/105/19 80/106/19 +f 52/107/16 78/108/16 51/109/16 +f 50/110/20 77/111/20 52/107/20 +f 50/110/18 80/106/18 79/112/18 +f 47/113/15 84/114/15 45/115/15 +f 81/116/21 47/113/21 48/117/21 +f 48/117/17 83/118/17 81/116/17 +f 45/115/22 83/119/22 46/120/22 +f 55/121/19 76/122/19 53/123/19 +f 56/124/21 74/125/21 55/121/21 +f 56/124/20 75/126/20 73/127/20 +f 54/128/22 76/129/22 75/126/22 +f 96/130/6 103/131/6 95/132/6 +f 91/133/3 100/134/3 92/135/3 +f 90/136/4 98/137/4 89/138/4 +f 92/139/5 99/140/5 90/141/5 +f 89/142/6 97/143/6 91/144/6 +f 93/145/2 98/137/2 94/146/2 +f 94/146/2 99/147/2 95/148/2 +f 95/148/2 100/149/2 96/150/2 +f 96/150/2 97/151/2 93/145/2 +f 90/152/1 104/153/1 92/154/1 +f 94/155/5 101/156/5 93/157/5 +f 93/145/4 104/158/4 96/150/4 +f 95/159/3 102/160/3 94/161/3 +f 91/162/1 104/153/1 101/163/1 +f 89/164/1 103/165/1 90/152/1 +f 91/162/1 102/166/1 89/164/1 +f 117/167/4 118/168/4 122/169/4 +f 108/170/23 116/171/23 110/172/23 +f 110/172/2 115/173/2 109/174/2 +f 107/175/6 111/176/6 105/177/6 +f 109/174/24 113/178/24 107/175/24 +f 106/179/5 114/180/5 108/170/5 +f 112/181/3 111/182/3 115/173/3 +f 120/183/23 128/184/23 122/169/23 +f 122/169/2 127/185/2 121/186/2 +f 119/187/6 123/188/6 117/189/6 +f 121/186/24 125/190/24 119/187/24 +f 118/191/5 126/192/5 120/183/5 +f 124/193/3 123/194/3 127/185/3 +f 105/195/4 106/196/4 110/172/4 +f 133/197/4 137/198/4 129/199/4 +f 151/200/3 147/201/3 143/202/3 +f 185/203/1 187/204/1 186/205/1 +f 223/206/2 221/207/2 222/208/2 +f 177/209/3 184/210/3 180/211/3 +f 179/212/4 182/213/4 178/214/4 +f 180/211/5 183/215/5 179/212/5 +f 178/214/6 181/216/6 177/217/6 +f 195/218/25 190/219/25 191/220/25 +f 188/221/5 191/222/5 187/223/5 +f 186/224/6 189/225/6 185/226/6 +f 185/227/3 192/228/3 188/229/3 +f 187/204/4 190/219/4 186/205/4 +f 193/230/3 200/231/3 196/232/3 +f 194/233/24 189/225/24 190/234/24 +f 193/230/26 192/228/26 189/235/26 +f 196/236/23 191/222/23 192/237/23 +f 199/238/2 197/239/2 198/240/2 +f 195/218/4 198/240/4 194/241/4 +f 196/236/5 199/242/5 195/243/5 +f 194/233/6 197/244/6 193/245/6 +f 207/246/2 205/247/2 206/248/2 +f 203/249/3 208/250/3 204/251/3 +f 202/252/4 206/248/4 201/253/4 +f 201/253/6 210/254/6 209/255/6 +f 203/249/6 212/256/6 205/247/6 +f 212/257/6 206/248/6 205/247/6 +f 211/258/4 216/259/4 212/260/4 +f 210/261/3 213/262/3 209/263/3 +f 202/252/5 214/264/5 207/246/5 +f 216/259/5 204/251/5 208/250/5 +f 207/246/5 216/265/5 208/250/5 +f 216/265/1 210/266/1 212/267/1 +f 217/268/1 219/269/1 218/270/1 +f 217/271/3 224/272/3 220/273/3 +f 219/269/4 222/208/4 218/270/4 +f 220/274/27 223/206/27 219/275/27 +f 218/276/28 221/207/28 217/277/28 +f 226/278/2 227/279/2 225/280/2 +f 226/278/24 232/281/24 228/282/24 +f 227/279/23 229/283/23 225/280/23 +f 231/284/5 233/285/5 229/283/5 +f 319/286/4 233/287/4 317/288/4 +f 236/289/5 237/290/5 235/291/5 +f 240/292/6 241/293/6 239/294/6 +f 244/295/3 318/296/3 234/297/3 +f 244/298/6 245/299/6 243/300/6 +f 246/301/29 247/302/29 245/299/29 +f 248/303/1 249/304/1 247/305/1 +f 250/306/30 251/307/30 249/304/30 +f 251/308/2 232/309/2 230/310/2 +f 252/311/3 228/312/3 232/313/3 +f 250/314/3 227/315/3 228/312/3 +f 248/316/3 231/317/3 227/315/3 +f 246/318/3 234/297/3 231/317/3 +f 243/300/24 320/319/24 244/298/24 +f 242/320/3 238/321/3 236/322/3 +f 249/304/4 230/310/4 226/323/4 +f 247/305/4 226/323/4 225/324/4 +f 245/299/4 225/324/4 229/325/4 +f 243/300/4 229/325/4 233/287/4 +f 234/326/30 317/327/30 233/285/30 +f 237/290/4 241/293/4 235/291/4 +f 259/328/3 256/329/3 255/330/3 +f 258/331/4 253/332/4 254/333/4 +f 260/334/5 254/333/5 256/329/5 +f 257/335/6 255/336/6 253/332/6 +f 267/337/3 264/338/3 263/339/3 +f 266/340/4 261/341/4 262/342/4 +f 268/343/5 262/342/5 264/338/5 +f 265/344/6 263/345/6 261/341/6 +f 269/346/31 272/347/31 270/348/31 +f 273/349/32 276/350/32 274/351/32 +f 278/352/33 280/353/33 277/354/33 +f 282/355/34 284/356/34 281/357/34 +f 272/347/35 277/354/35 280/353/35 +f 276/350/36 281/357/36 284/356/36 +f 270/358/37 278/352/37 269/359/37 +f 274/360/38 282/355/38 273/361/38 +f 285/362/39 288/363/39 286/364/39 +f 290/365/40 292/366/40 289/367/40 +f 288/363/41 289/367/41 292/366/41 +f 286/368/42 290/365/42 285/369/42 +f 293/370/43 296/371/43 295/372/43 +f 297/373/44 300/374/44 299/375/44 +f 301/376/45 304/377/45 303/378/45 +f 306/379/46 308/380/46 307/381/46 +f 310/382/47 312/383/47 311/384/47 +f 314/385/48 316/386/48 315/387/48 +f 296/371/49 305/388/49 295/372/49 +f 300/374/50 309/389/50 299/375/50 +f 304/377/51 313/390/51 303/378/51 +f 306/379/52 294/391/52 293/392/52 +f 310/382/53 298/393/53 297/394/53 +f 314/385/54 302/395/54 301/396/54 +f 241/397/2 320/319/2 319/398/2 +f 242/320/3 318/296/3 320/399/3 +f 241/293/4 317/288/4 235/291/4 +f 317/327/1 236/400/1 235/401/1 +f 323/402/55 322/403/55 321/404/55 +f 327/405/56 325/406/56 326/407/56 +f 323/402/57 326/407/57 325/406/57 +f 335/408/58 333/409/58 334/410/58 +f 331/411/59 330/412/59 329/413/59 +f 324/414/60 327/405/60 322/415/60 +f 331/411/61 334/410/61 333/409/61 +f 332/416/62 335/408/62 330/417/62 +f 343/418/63 341/419/63 342/420/63 +f 339/421/64 338/422/64 337/423/64 +f 339/421/65 342/420/65 341/419/65 +f 340/424/66 343/418/66 338/425/66 +f 351/426/67 349/427/67 350/428/67 +f 347/429/68 346/430/68 345/431/68 +f 347/429/69 350/428/69 349/427/69 +f 348/432/70 351/426/70 346/433/70 +f 354/434/71 355/435/71 353/436/71 +f 357/437/72 359/438/72 358/439/72 +f 355/435/73 358/439/73 353/436/73 +f 365/440/74 367/441/74 366/442/74 +f 362/443/75 363/444/75 361/445/75 +f 359/438/76 356/446/76 354/447/76 +f 363/444/77 366/442/77 361/445/77 +f 367/441/78 364/448/78 362/449/78 +f 373/450/79 375/451/79 374/452/79 +f 370/453/80 371/454/80 369/455/80 +f 371/454/81 374/452/81 369/455/81 +f 375/451/82 372/456/82 370/457/82 +f 381/458/83 383/459/83 382/460/83 +f 378/461/84 379/462/84 377/463/84 +f 379/462/85 382/460/85 377/463/85 +f 383/459/86 380/464/86 378/465/86 +f 389/466/3 393/467/3 385/468/3 +f 407/469/4 403/470/4 399/471/4 +f 409/472/33 412/473/33 410/474/33 +f 413/475/34 416/476/34 414/477/34 +f 418/478/31 420/479/31 417/480/31 +f 422/481/32 424/482/32 421/483/32 +f 412/473/50 417/480/50 420/479/50 +f 416/476/51 421/483/51 424/482/51 +f 410/484/53 418/478/53 409/485/53 +f 414/486/54 422/481/54 413/487/54 +f 425/488/40 428/489/40 426/490/40 +f 430/491/39 432/492/39 429/493/39 +f 428/489/49 429/493/49 432/492/49 +f 426/494/52 430/491/52 425/495/52 +f 433/496/46 436/497/46 435/498/46 +f 437/499/47 440/500/47 439/501/47 +f 441/502/48 444/503/48 443/504/48 +f 446/505/43 448/506/43 447/507/43 +f 450/508/44 452/509/44 451/510/44 +f 454/511/45 456/512/45 455/513/45 +f 436/497/41 445/514/41 435/498/41 +f 440/500/35 449/515/35 439/501/35 +f 444/503/36 453/516/36 443/504/36 +f 446/505/42 434/517/42 433/518/42 +f 450/508/37 438/519/37 437/520/37 +f 454/511/38 442/521/38 441/522/38 +f 459/523/71 458/524/71 457/525/71 +f 463/526/72 461/527/72 462/528/72 +f 459/523/60 462/528/60 461/527/60 +f 471/529/74 469/530/74 470/531/74 +f 467/532/75 466/533/75 465/534/75 +f 460/535/57 463/526/57 458/536/57 +f 467/532/62 470/531/62 469/530/62 +f 468/537/61 471/529/61 466/538/61 +f 479/539/79 477/540/79 478/541/79 +f 475/542/80 474/543/80 473/544/80 +f 475/542/66 478/541/66 477/540/66 +f 476/545/65 479/539/65 474/546/65 +f 487/547/83 485/548/83 486/549/83 +f 483/550/84 482/551/84 481/552/84 +f 483/550/70 486/549/70 485/548/70 +f 484/553/69 487/547/69 482/554/69 +f 490/555/55 491/556/55 489/557/55 +f 493/558/56 495/559/56 494/560/56 +f 491/556/76 494/560/76 489/557/76 +f 501/561/58 503/562/58 502/563/58 +f 498/564/59 499/565/59 497/566/59 +f 495/559/73 492/567/73 490/568/73 +f 499/565/78 502/563/78 497/566/78 +f 503/562/77 500/569/77 498/570/77 +f 509/571/63 511/572/63 510/573/63 +f 506/574/64 507/575/64 505/576/64 +f 507/575/82 510/573/82 505/576/82 +f 511/572/81 508/577/81 506/578/81 +f 517/579/67 519/580/67 518/581/67 +f 514/582/68 515/583/68 513/584/68 +f 515/583/86 518/581/86 513/584/86 +f 519/580/85 516/585/85 514/586/85 +f 521/587/87 524/588/87 522/589/87 +f 525/590/88 528/591/88 526/592/88 +f 530/593/89 532/594/89 529/595/89 +f 534/596/90 536/597/90 533/598/90 +f 524/588/91 529/595/91 532/594/91 +f 528/591/92 533/598/92 536/597/92 +f 522/599/93 530/593/93 521/600/93 +f 526/601/94 534/596/94 525/602/94 +f 537/603/95 540/604/95 538/605/95 +f 542/606/96 544/607/96 541/608/96 +f 540/604/97 541/608/97 544/607/97 +f 538/609/98 542/606/98 537/610/98 +f 545/611/99 548/612/99 547/613/99 +f 549/614/100 552/615/100 551/616/100 +f 553/617/101 556/618/101 555/619/101 +f 558/620/102 560/621/102 559/622/102 +f 562/623/103 564/624/103 563/625/103 +f 566/626/104 568/627/104 567/628/104 +f 548/612/105 557/629/105 547/613/105 +f 552/615/106 561/630/106 551/616/106 +f 556/618/107 565/631/107 555/619/107 +f 558/620/108 546/632/108 545/633/108 +f 562/623/109 550/634/109 549/635/109 +f 566/626/110 554/636/110 553/637/110 +f 571/638/111 570/639/111 569/640/111 +f 575/641/112 573/642/112 574/643/112 +f 571/638/113 574/643/113 573/642/113 +f 583/644/114 581/645/114 582/646/114 +f 579/647/115 578/648/115 577/649/115 +f 572/650/116 575/641/116 570/651/116 +f 579/647/117 582/646/117 581/645/117 +f 580/652/118 583/644/118 578/653/118 +f 591/654/119 589/655/119 590/656/119 +f 587/657/120 586/658/120 585/659/120 +f 587/657/121 590/656/121 589/655/121 +f 588/660/122 591/654/122 586/661/122 +f 599/662/123 597/663/123 598/664/123 +f 595/665/124 594/666/124 593/667/124 +f 595/665/125 598/664/125 597/663/125 +f 596/668/126 599/662/126 594/669/126 +f 602/670/127 603/671/127 601/672/127 +f 605/673/128 607/674/128 606/675/128 +f 603/671/129 606/675/129 601/672/129 +f 613/676/130 615/677/130 614/678/130 +f 610/679/131 611/680/131 609/681/131 +f 607/674/132 604/682/132 602/683/132 +f 611/680/133 614/678/133 609/681/133 +f 615/677/134 612/684/134 610/685/134 +f 621/686/135 623/687/135 622/688/135 +f 618/689/136 619/690/136 617/691/136 +f 619/690/137 622/688/137 617/691/137 +f 623/687/138 620/692/138 618/693/138 +f 629/694/139 631/695/139 630/696/139 +f 626/697/140 627/698/140 625/699/140 +f 627/698/141 630/696/141 625/699/141 +f 631/695/142 628/700/142 626/701/142 +f 633/702/89 636/703/89 634/704/89 +f 637/705/90 640/706/90 638/707/90 +f 642/708/87 644/709/87 641/710/87 +f 646/711/88 648/712/88 645/713/88 +f 636/703/106 641/710/106 644/709/106 +f 640/706/107 645/713/107 648/712/107 +f 634/714/109 642/708/109 633/715/109 +f 638/716/110 646/711/110 637/717/110 +f 649/718/96 652/719/96 650/720/96 +f 654/721/95 656/722/95 653/723/95 +f 652/719/105 653/723/105 656/722/105 +f 650/724/108 654/721/108 649/725/108 +f 657/726/102 660/727/102 659/728/102 +f 661/729/103 664/730/103 663/731/103 +f 665/732/104 668/733/104 667/734/104 +f 670/735/99 672/736/99 671/737/99 +f 674/738/100 676/739/100 675/740/100 +f 678/741/101 680/742/101 679/743/101 +f 660/727/97 669/744/97 659/728/97 +f 664/730/91 673/745/91 663/731/91 +f 668/733/92 677/746/92 667/734/92 +f 670/735/98 658/747/98 657/748/98 +f 674/738/93 662/749/93 661/750/93 +f 678/741/94 666/751/94 665/752/94 +f 683/753/127 682/754/127 681/755/127 +f 687/756/128 685/757/128 686/758/128 +f 683/753/116 686/758/116 685/757/116 +f 695/759/130 693/760/130 694/761/130 +f 691/762/131 690/763/131 689/764/131 +f 684/765/113 687/756/113 682/766/113 +f 691/762/118 694/761/118 693/760/118 +f 692/767/117 695/759/117 690/768/117 +f 703/769/135 701/770/135 702/771/135 +f 699/772/136 698/773/136 697/774/136 +f 699/772/122 702/771/122 701/770/122 +f 700/775/121 703/769/121 698/776/121 +f 711/777/139 709/778/139 710/779/139 +f 707/780/140 706/781/140 705/782/140 +f 707/780/126 710/779/126 709/778/126 +f 708/783/125 711/777/125 706/784/125 +f 714/785/111 715/786/111 713/787/111 +f 717/788/112 719/789/112 718/790/112 +f 715/786/132 718/790/132 713/787/132 +f 725/791/114 727/792/114 726/793/114 +f 722/794/115 723/795/115 721/796/115 +f 719/789/129 716/797/129 714/798/129 +f 723/795/134 726/793/134 721/796/134 +f 727/792/133 724/799/133 722/800/133 +f 733/801/119 735/802/119 734/803/119 +f 730/804/120 731/805/120 729/806/120 +f 731/805/138 734/803/138 729/806/138 +f 735/802/137 732/807/137 730/808/137 +f 741/809/123 743/810/123 742/811/123 +f 738/812/124 739/813/124 737/814/124 +f 739/813/142 742/811/142 737/814/142 +f 743/810/141 740/815/141 738/816/141 +f 3/1/1 4/817/1 2/2/1 +f 7/4/2 8/818/2 5/5/2 +f 3/7/3 5/819/3 8/8/3 +f 2/2/4 7/4/4 6/6/4 +f 4/10/5 8/820/5 7/11/5 +f 1/13/6 6/821/6 5/14/6 +f 10/16/5 18/822/5 20/17/5 +f 13/19/2 11/26/2 9/20/2 +f 14/21/2 9/20/2 10/22/2 +f 15/23/2 10/22/2 12/24/2 +f 16/25/2 12/24/2 11/26/2 +f 11/27/6 19/823/6 17/28/6 +f 16/30/6 24/824/6 23/31/6 +f 14/33/5 22/825/5 21/34/5 +f 12/36/3 20/826/3 19/37/3 +f 9/20/4 17/827/4 18/39/4 +f 13/19/4 21/828/4 24/40/4 +f 15/41/3 23/829/3 22/42/3 +f 19/44/1 20/47/1 24/45/1 +f 20/47/1 18/49/1 23/48/1 +f 18/49/1 17/51/1 22/50/1 +f 17/51/1 19/44/1 21/46/1 +f 27/52/1 28/64/1 26/53/1 +f 31/55/1 32/83/1 30/56/1 +f 35/58/1 36/830/1 34/59/1 +f 39/61/1 40/831/1 38/62/1 +f 28/64/7 27/52/7 59/65/7 +f 35/67/7 67/832/7 68/68/7 +f 28/70/8 60/833/8 58/71/8 +f 36/69/9 68/68/9 66/73/9 +f 27/52/10 25/91/10 57/75/10 +f 35/58/11 33/60/11 65/76/11 +f 30/78/12 62/834/12 61/79/12 +f 37/63/12 38/62/12 70/81/12 +f 32/83/13 31/90/13 63/84/13 +f 39/86/13 71/93/13 72/87/13 +f 30/56/8 32/83/8 64/85/8 +f 38/62/9 40/88/9 72/87/9 +f 29/80/10 61/79/10 63/84/10 +f 26/72/14 58/71/14 57/75/14 +f 37/92/11 69/835/11 71/93/11 +f 33/60/14 34/74/14 66/73/14 +f 41/94/15 43/98/15 86/95/15 +f 85/97/16 86/95/16 43/98/16 +f 42/100/17 87/103/17 85/101/17 +f 41/94/18 88/96/18 87/103/18 +f 49/104/19 51/836/19 78/105/19 +f 52/107/16 77/111/16 78/108/16 +f 50/110/20 79/112/20 77/111/20 +f 50/110/18 49/104/18 80/106/18 +f 47/113/15 82/837/15 84/114/15 +f 81/116/21 82/837/21 47/113/21 +f 48/117/17 46/838/17 83/118/17 +f 45/115/22 84/114/22 83/119/22 +f 55/121/19 74/125/19 76/122/19 +f 56/124/21 73/127/21 74/125/21 +f 56/124/20 54/128/20 75/126/20 +f 54/128/22 53/839/22 76/129/22 +f 96/130/6 104/840/6 103/131/6 +f 91/133/3 97/841/3 100/134/3 +f 90/136/4 99/147/4 98/137/4 +f 92/139/5 100/842/5 99/140/5 +f 89/142/6 98/843/6 97/143/6 +f 93/145/2 97/151/2 98/137/2 +f 94/146/2 98/137/2 99/147/2 +f 95/148/2 99/147/2 100/149/2 +f 96/150/2 100/149/2 97/151/2 +f 90/152/1 103/165/1 104/153/1 +f 94/155/5 102/844/5 101/156/5 +f 93/145/4 101/845/4 104/158/4 +f 95/159/3 103/846/3 102/160/3 +f 91/162/1 92/154/1 104/153/1 +f 89/164/1 102/166/1 103/165/1 +f 91/162/1 101/163/1 102/166/1 +f 118/168/4 120/847/4 122/169/4 +f 122/169/4 121/186/4 117/167/4 +f 121/186/4 119/848/4 117/167/4 +f 108/170/23 114/180/23 116/171/23 +f 110/172/2 116/171/2 115/173/2 +f 107/175/6 113/178/6 111/176/6 +f 109/174/24 115/173/24 113/178/24 +f 106/179/5 112/849/5 114/180/5 +f 111/182/3 113/850/3 115/173/3 +f 115/173/3 116/171/3 112/181/3 +f 116/171/3 114/851/3 112/181/3 +f 120/183/23 126/192/23 128/184/23 +f 122/169/2 128/184/2 127/185/2 +f 119/187/6 125/190/6 123/188/6 +f 121/186/24 127/185/24 125/190/24 +f 118/191/5 124/852/5 126/192/5 +f 123/194/3 125/853/3 127/185/3 +f 127/185/3 128/184/3 124/193/3 +f 128/184/3 126/854/3 124/193/3 +f 106/196/4 108/855/4 110/172/4 +f 110/172/4 109/174/4 105/195/4 +f 109/174/4 107/856/4 105/195/4 +f 129/199/4 130/857/4 131/858/4 +f 131/858/4 132/859/4 133/197/4 +f 133/197/4 134/860/4 135/861/4 +f 135/861/4 136/862/4 133/197/4 +f 136/862/4 137/198/4 133/197/4 +f 137/198/4 138/863/4 139/864/4 +f 139/864/4 140/865/4 129/199/4 +f 129/199/4 131/858/4 133/197/4 +f 137/198/4 139/864/4 129/199/4 +f 143/202/3 141/866/3 142/867/3 +f 142/867/3 152/868/3 143/202/3 +f 152/868/3 151/200/3 143/202/3 +f 151/200/3 150/869/3 149/870/3 +f 149/870/3 148/871/3 147/201/3 +f 147/201/3 146/872/3 145/873/3 +f 145/873/3 144/874/3 143/202/3 +f 151/200/3 149/870/3 147/201/3 +f 147/201/3 145/873/3 143/202/3 +f 185/203/1 188/875/1 187/204/1 +f 223/206/2 224/272/2 221/207/2 +f 177/209/3 181/876/3 184/210/3 +f 179/212/4 183/215/4 182/213/4 +f 180/211/5 184/210/5 183/215/5 +f 178/214/6 182/213/6 181/216/6 +f 195/218/25 194/241/25 190/219/25 +f 188/221/5 192/237/5 191/222/5 +f 186/224/6 190/234/6 189/225/6 +f 185/227/3 189/235/3 192/228/3 +f 187/204/4 191/220/4 190/219/4 +f 193/230/3 197/877/3 200/231/3 +f 194/233/24 193/245/24 189/225/24 +f 193/230/26 196/232/26 192/228/26 +f 196/236/23 195/243/23 191/222/23 +f 199/238/2 200/878/2 197/239/2 +f 195/218/4 199/238/4 198/240/4 +f 196/236/5 200/879/5 199/242/5 +f 194/233/6 198/880/6 197/244/6 +f 207/246/2 208/250/2 205/247/2 +f 203/249/3 205/247/3 208/250/3 +f 202/252/4 207/246/4 206/248/4 +f 201/253/6 206/248/6 210/254/6 +f 203/249/6 211/881/6 212/256/6 +f 212/257/6 210/882/6 206/248/6 +f 211/258/4 215/883/4 216/259/4 +f 210/261/3 214/264/3 213/262/3 +f 202/252/5 213/262/5 214/264/5 +f 216/259/5 215/883/5 204/251/5 +f 207/246/5 214/884/5 216/265/5 +f 216/265/1 214/884/1 210/266/1 +f 217/268/1 220/885/1 219/269/1 +f 217/271/3 221/207/3 224/272/3 +f 219/269/4 223/206/4 222/208/4 +f 220/274/27 224/272/27 223/206/27 +f 218/276/28 222/208/28 221/207/28 +f 226/278/2 228/282/2 227/279/2 +f 226/278/24 230/886/24 232/281/24 +f 227/279/23 231/284/23 229/283/23 +f 231/284/5 234/326/5 233/285/5 +f 319/286/4 243/300/4 233/287/4 +f 236/289/5 238/887/5 237/290/5 +f 240/292/6 242/888/6 241/293/6 +f 244/295/3 320/399/3 318/296/3 +f 244/298/6 246/301/6 245/299/6 +f 246/301/29 248/889/29 247/302/29 +f 248/303/1 250/306/1 249/304/1 +f 250/306/30 252/890/30 251/307/30 +f 251/308/2 252/891/2 232/309/2 +f 252/311/3 250/314/3 228/312/3 +f 250/314/3 248/316/3 227/315/3 +f 248/316/3 246/318/3 231/317/3 +f 246/318/3 244/295/3 234/297/3 +f 243/300/24 319/398/24 320/319/24 +f 242/320/3 240/892/3 238/321/3 +f 249/304/4 251/308/4 230/310/4 +f 247/305/4 249/304/4 226/323/4 +f 245/299/4 247/305/4 225/324/4 +f 243/300/4 245/299/4 229/325/4 +f 234/326/30 318/893/30 317/327/30 +f 237/290/4 239/294/4 241/293/4 +f 259/328/3 260/334/3 256/329/3 +f 258/331/4 257/335/4 253/332/4 +f 260/334/5 258/331/5 254/333/5 +f 257/335/6 259/894/6 255/336/6 +f 267/337/3 268/343/3 264/338/3 +f 266/340/4 265/344/4 261/341/4 +f 268/343/5 266/340/5 262/342/5 +f 265/344/6 267/895/6 263/345/6 +f 269/346/31 271/896/31 272/347/31 +f 273/349/32 275/897/32 276/350/32 +f 278/352/33 279/898/33 280/353/33 +f 282/355/34 283/899/34 284/356/34 +f 272/347/35 271/896/35 277/354/35 +f 276/350/36 275/897/36 281/357/36 +f 270/358/37 279/898/37 278/352/37 +f 274/360/38 283/899/38 282/355/38 +f 285/362/39 287/900/39 288/363/39 +f 290/365/40 291/901/40 292/366/40 +f 288/363/41 287/900/41 289/367/41 +f 286/368/42 291/901/42 290/365/42 +f 293/370/43 294/902/43 296/371/43 +f 297/373/44 298/903/44 300/374/44 +f 301/376/45 302/904/45 304/377/45 +f 306/379/46 305/388/46 308/380/46 +f 310/382/47 309/389/47 312/383/47 +f 314/385/48 313/390/48 316/386/48 +f 296/371/49 308/380/49 305/388/49 +f 300/374/50 312/383/50 309/389/50 +f 304/377/51 316/386/51 313/390/51 +f 306/379/52 307/381/52 294/391/52 +f 310/382/53 311/384/53 298/393/53 +f 314/385/54 315/387/54 302/395/54 +f 241/397/2 242/905/2 320/319/2 +f 242/320/3 236/322/3 318/296/3 +f 241/293/4 319/286/4 317/288/4 +f 317/327/1 318/893/1 236/400/1 +f 323/402/55 324/906/55 322/403/55 +f 327/405/56 328/907/56 325/406/56 +f 323/402/57 321/404/57 326/407/57 +f 335/408/58 336/908/58 333/409/58 +f 331/411/59 332/909/59 330/412/59 +f 324/414/60 328/907/60 327/405/60 +f 331/411/61 329/413/61 334/410/61 +f 332/416/62 336/908/62 335/408/62 +f 343/418/63 344/910/63 341/419/63 +f 339/421/64 340/911/64 338/422/64 +f 339/421/65 337/423/65 342/420/65 +f 340/424/66 344/910/66 343/418/66 +f 351/426/67 352/912/67 349/427/67 +f 347/429/68 348/913/68 346/430/68 +f 347/429/69 345/431/69 350/428/69 +f 348/432/70 352/912/70 351/426/70 +f 354/434/71 356/914/71 355/435/71 +f 357/437/72 360/915/72 359/438/72 +f 355/435/73 357/437/73 358/439/73 +f 365/440/74 368/916/74 367/441/74 +f 362/443/75 364/917/75 363/444/75 +f 359/438/76 360/915/76 356/446/76 +f 363/444/77 365/440/77 366/442/77 +f 367/441/78 368/916/78 364/448/78 +f 373/450/79 376/918/79 375/451/79 +f 370/453/80 372/919/80 371/454/80 +f 371/454/81 373/450/81 374/452/81 +f 375/451/82 376/918/82 372/456/82 +f 381/458/83 384/920/83 383/459/83 +f 378/461/84 380/921/84 379/462/84 +f 379/462/85 381/458/85 382/460/85 +f 383/459/86 384/920/86 380/464/86 +f 385/468/3 386/922/3 387/923/3 +f 387/923/3 388/924/3 389/466/3 +f 389/466/3 390/925/3 391/926/3 +f 391/926/3 392/927/3 389/466/3 +f 392/927/3 393/467/3 389/466/3 +f 393/467/3 394/928/3 395/929/3 +f 395/929/3 396/930/3 385/468/3 +f 385/468/3 387/923/3 389/466/3 +f 393/467/3 395/929/3 385/468/3 +f 399/471/4 397/931/4 398/932/4 +f 398/932/4 408/933/4 399/471/4 +f 408/933/4 407/469/4 399/471/4 +f 407/469/4 406/934/4 405/935/4 +f 405/935/4 404/936/4 403/470/4 +f 403/470/4 402/937/4 401/938/4 +f 401/938/4 400/939/4 399/471/4 +f 407/469/4 405/935/4 403/470/4 +f 403/470/4 401/938/4 399/471/4 +f 409/472/33 411/940/33 412/473/33 +f 413/475/34 415/941/34 416/476/34 +f 418/478/31 419/942/31 420/479/31 +f 422/481/32 423/943/32 424/482/32 +f 412/473/50 411/940/50 417/480/50 +f 416/476/51 415/941/51 421/483/51 +f 410/484/53 419/942/53 418/478/53 +f 414/486/54 423/943/54 422/481/54 +f 425/488/40 427/944/40 428/489/40 +f 430/491/39 431/945/39 432/492/39 +f 428/489/49 427/944/49 429/493/49 +f 426/494/52 431/945/52 430/491/52 +f 433/496/46 434/946/46 436/497/46 +f 437/499/47 438/947/47 440/500/47 +f 441/502/48 442/948/48 444/503/48 +f 446/505/43 445/514/43 448/506/43 +f 450/508/44 449/515/44 452/509/44 +f 454/511/45 453/516/45 456/512/45 +f 436/497/41 448/506/41 445/514/41 +f 440/500/35 452/509/35 449/515/35 +f 444/503/36 456/512/36 453/516/36 +f 446/505/42 447/507/42 434/517/42 +f 450/508/37 451/510/37 438/519/37 +f 454/511/38 455/513/38 442/521/38 +f 459/523/71 460/949/71 458/524/71 +f 463/526/72 464/950/72 461/527/72 +f 459/523/60 457/525/60 462/528/60 +f 471/529/74 472/951/74 469/530/74 +f 467/532/75 468/952/75 466/533/75 +f 460/535/57 464/950/57 463/526/57 +f 467/532/62 465/534/62 470/531/62 +f 468/537/61 472/951/61 471/529/61 +f 479/539/79 480/953/79 477/540/79 +f 475/542/80 476/954/80 474/543/80 +f 475/542/66 473/544/66 478/541/66 +f 476/545/65 480/953/65 479/539/65 +f 487/547/83 488/955/83 485/548/83 +f 483/550/84 484/956/84 482/551/84 +f 483/550/70 481/552/70 486/549/70 +f 484/553/69 488/955/69 487/547/69 +f 490/555/55 492/957/55 491/556/55 +f 493/558/56 496/958/56 495/559/56 +f 491/556/76 493/558/76 494/560/76 +f 501/561/58 504/959/58 503/562/58 +f 498/564/59 500/960/59 499/565/59 +f 495/559/73 496/958/73 492/567/73 +f 499/565/78 501/561/78 502/563/78 +f 503/562/77 504/959/77 500/569/77 +f 509/571/63 512/961/63 511/572/63 +f 506/574/64 508/962/64 507/575/64 +f 507/575/82 509/571/82 510/573/82 +f 511/572/81 512/961/81 508/577/81 +f 517/579/67 520/963/67 519/580/67 +f 514/582/68 516/964/68 515/583/68 +f 515/583/86 517/579/86 518/581/86 +f 519/580/85 520/963/85 516/585/85 +f 521/587/87 523/965/87 524/588/87 +f 525/590/88 527/966/88 528/591/88 +f 530/593/89 531/967/89 532/594/89 +f 534/596/90 535/968/90 536/597/90 +f 524/588/91 523/965/91 529/595/91 +f 528/591/92 527/966/92 533/598/92 +f 522/599/93 531/967/93 530/593/93 +f 526/601/94 535/968/94 534/596/94 +f 537/603/95 539/969/95 540/604/95 +f 542/606/96 543/970/96 544/607/96 +f 540/604/97 539/969/97 541/608/97 +f 538/609/98 543/970/98 542/606/98 +f 545/611/99 546/971/99 548/612/99 +f 549/614/100 550/972/100 552/615/100 +f 553/617/101 554/973/101 556/618/101 +f 558/620/102 557/629/102 560/621/102 +f 562/623/103 561/630/103 564/624/103 +f 566/626/104 565/631/104 568/627/104 +f 548/612/105 560/621/105 557/629/105 +f 552/615/106 564/624/106 561/630/106 +f 556/618/107 568/627/107 565/631/107 +f 558/620/108 559/622/108 546/632/108 +f 562/623/109 563/625/109 550/634/109 +f 566/626/110 567/628/110 554/636/110 +f 571/638/111 572/974/111 570/639/111 +f 575/641/112 576/975/112 573/642/112 +f 571/638/113 569/640/113 574/643/113 +f 583/644/114 584/976/114 581/645/114 +f 579/647/115 580/977/115 578/648/115 +f 572/650/116 576/975/116 575/641/116 +f 579/647/117 577/649/117 582/646/117 +f 580/652/118 584/976/118 583/644/118 +f 591/654/119 592/978/119 589/655/119 +f 587/657/120 588/979/120 586/658/120 +f 587/657/121 585/659/121 590/656/121 +f 588/660/122 592/978/122 591/654/122 +f 599/662/123 600/980/123 597/663/123 +f 595/665/124 596/981/124 594/666/124 +f 595/665/125 593/667/125 598/664/125 +f 596/668/126 600/980/126 599/662/126 +f 602/670/127 604/982/127 603/671/127 +f 605/673/128 608/983/128 607/674/128 +f 603/671/129 605/673/129 606/675/129 +f 613/676/130 616/984/130 615/677/130 +f 610/679/131 612/985/131 611/680/131 +f 607/674/132 608/983/132 604/682/132 +f 611/680/133 613/676/133 614/678/133 +f 615/677/134 616/984/134 612/684/134 +f 621/686/135 624/986/135 623/687/135 +f 618/689/136 620/987/136 619/690/136 +f 619/690/137 621/686/137 622/688/137 +f 623/687/138 624/986/138 620/692/138 +f 629/694/139 632/988/139 631/695/139 +f 626/697/140 628/989/140 627/698/140 +f 627/698/141 629/694/141 630/696/141 +f 631/695/142 632/988/142 628/700/142 +f 633/702/89 635/990/89 636/703/89 +f 637/705/90 639/991/90 640/706/90 +f 642/708/87 643/992/87 644/709/87 +f 646/711/88 647/993/88 648/712/88 +f 636/703/106 635/990/106 641/710/106 +f 640/706/107 639/991/107 645/713/107 +f 634/714/109 643/992/109 642/708/109 +f 638/716/110 647/993/110 646/711/110 +f 649/718/96 651/994/96 652/719/96 +f 654/721/95 655/995/95 656/722/95 +f 652/719/105 651/994/105 653/723/105 +f 650/724/108 655/995/108 654/721/108 +f 657/726/102 658/996/102 660/727/102 +f 661/729/103 662/997/103 664/730/103 +f 665/732/104 666/998/104 668/733/104 +f 670/735/99 669/744/99 672/736/99 +f 674/738/100 673/745/100 676/739/100 +f 678/741/101 677/746/101 680/742/101 +f 660/727/97 672/736/97 669/744/97 +f 664/730/91 676/739/91 673/745/91 +f 668/733/92 680/742/92 677/746/92 +f 670/735/98 671/737/98 658/747/98 +f 674/738/93 675/740/93 662/749/93 +f 678/741/94 679/743/94 666/751/94 +f 683/753/127 684/999/127 682/754/127 +f 687/756/128 688/1000/128 685/757/128 +f 683/753/116 681/755/116 686/758/116 +f 695/759/130 696/1001/130 693/760/130 +f 691/762/131 692/1002/131 690/763/131 +f 684/765/113 688/1000/113 687/756/113 +f 691/762/118 689/764/118 694/761/118 +f 692/767/117 696/1001/117 695/759/117 +f 703/769/135 704/1003/135 701/770/135 +f 699/772/136 700/1004/136 698/773/136 +f 699/772/122 697/774/122 702/771/122 +f 700/775/121 704/1003/121 703/769/121 +f 711/777/139 712/1005/139 709/778/139 +f 707/780/140 708/1006/140 706/781/140 +f 707/780/126 705/782/126 710/779/126 +f 708/783/125 712/1005/125 711/777/125 +f 714/785/111 716/1007/111 715/786/111 +f 717/788/112 720/1008/112 719/789/112 +f 715/786/132 717/788/132 718/790/132 +f 725/791/114 728/1009/114 727/792/114 +f 722/794/115 724/1010/115 723/795/115 +f 719/789/129 720/1008/129 716/797/129 +f 723/795/134 725/791/134 726/793/134 +f 727/792/133 728/1009/133 724/799/133 +f 733/801/119 736/1011/119 735/802/119 +f 730/804/120 732/1012/120 731/805/120 +f 731/805/138 733/801/138 734/803/138 +f 735/802/137 736/1011/137 732/807/137 +f 741/809/123 744/1013/123 743/810/123 +f 738/812/124 740/1014/124 739/813/124 +f 739/813/142 741/809/142 742/811/142 +f 743/810/141 744/1013/141 740/815/141 s 1 -f 242/525/45 243/526/51 241/527/45 -f 244/528/51 132/529/43 243/526/51 -f 240/530/52 241/531/45 239/532/52 -f 238/533/44 239/532/52 237/534/44 -f 125/535/53 237/534/44 126/536/53 -f 127/537/46 126/536/53 128/538/46 -f 129/539/54 128/538/46 130/540/54 -f 131/541/43 130/540/54 132/529/43 -f 223/542/46 232/543/53 224/544/53 -f 221/545/43 229/546/54 222/547/54 -f 228/548/51 230/549/43 221/545/43 -f 226/550/52 235/551/45 227/552/45 -f 224/544/53 233/553/44 225/554/44 -f 222/547/54 231/555/46 223/542/46 -f 227/556/45 236/557/51 228/548/51 -f 225/554/44 234/558/52 226/550/52 -f 242/525/45 244/528/51 243/526/51 -f 244/528/51 131/541/43 132/529/43 -f 240/530/52 242/559/45 241/531/45 -f 238/533/44 240/530/52 239/532/52 -f 125/535/53 238/533/44 237/534/44 -f 127/537/46 125/535/53 126/536/53 -f 129/539/54 127/537/46 128/538/46 -f 131/541/43 129/539/54 130/540/54 -f 223/542/46 231/555/46 232/543/53 -f 221/545/43 230/549/43 229/546/54 -f 228/548/51 236/557/51 230/549/43 -f 226/550/52 234/558/52 235/551/45 -f 224/544/53 232/543/53 233/553/44 -f 222/547/54 229/546/54 231/555/46 -f 227/556/45 235/560/45 236/557/51 -f 225/554/44 233/553/44 234/558/52 +f 135/1015/1 146/1016/143 147/1017/1 +f 131/1018/144 144/1019/6 132/1020/6 +f 138/1021/5 151/1022/145 139/1023/145 +f 135/1024/1 148/1025/146 136/1026/146 +f 132/1020/6 145/1027/147 133/1028/147 +f 139/1023/145 152/1029/148 140/1030/148 +f 129/1031/2 141/1032/149 130/1033/149 +f 136/1026/146 149/1034/150 137/1035/150 +f 133/1028/147 146/1016/143 134/1036/143 +f 140/1030/148 142/1037/2 129/1031/2 +f 130/1033/149 143/1038/144 131/1018/144 +f 137/1035/150 150/1039/5 138/1021/5 +f 176/1040/148 153/1041/2 164/1042/148 +f 166/1043/149 155/1044/144 154/1045/149 +f 173/1046/150 162/1047/5 161/1048/150 +f 170/1049/143 159/1050/1 158/1051/143 +f 167/1052/144 156/1053/6 155/1044/144 +f 174/1054/5 163/1055/145 162/1047/5 +f 171/1056/1 160/1057/146 159/1058/1 +f 168/1059/6 157/1060/147 156/1053/6 +f 175/1061/145 164/1042/148 163/1055/145 +f 165/1062/2 154/1045/149 153/1041/2 +f 172/1063/146 161/1048/150 160/1057/146 +f 169/1064/147 158/1051/143 157/1060/147 +f 391/1065/1 402/1066/146 403/1067/1 +f 387/1068/145 400/1069/5 388/1070/5 +f 394/1071/6 407/1072/144 395/1073/144 +f 391/1074/1 404/1075/143 392/1076/143 +f 388/1070/5 401/1077/150 389/1078/150 +f 395/1073/144 408/1079/149 396/1080/149 +f 385/1081/2 397/1082/148 386/1083/148 +f 392/1076/143 405/1084/147 393/1085/147 +f 389/1078/150 402/1066/146 390/1086/146 +f 396/1080/149 398/1087/2 385/1081/2 +f 386/1083/148 399/1088/145 387/1068/145 +f 393/1085/147 406/1089/6 394/1071/6 +f 135/1015/1 134/1036/143 146/1016/143 +f 131/1018/144 143/1038/144 144/1019/6 +f 138/1021/5 150/1039/5 151/1022/145 +f 135/1024/1 147/1090/1 148/1025/146 +f 132/1020/6 144/1019/6 145/1027/147 +f 139/1023/145 151/1022/145 152/1029/148 +f 129/1031/2 142/1037/2 141/1032/149 +f 136/1026/146 148/1025/146 149/1034/150 +f 133/1028/147 145/1027/147 146/1016/143 +f 140/1030/148 152/1029/148 142/1037/2 +f 130/1033/149 141/1032/149 143/1038/144 +f 137/1035/150 149/1034/150 150/1039/5 +f 176/1040/148 165/1062/2 153/1041/2 +f 166/1043/149 167/1052/144 155/1044/144 +f 173/1046/150 174/1054/5 162/1047/5 +f 170/1049/143 171/1091/1 159/1050/1 +f 167/1052/144 168/1059/6 156/1053/6 +f 174/1054/5 175/1061/145 163/1055/145 +f 171/1056/1 172/1063/146 160/1057/146 +f 168/1059/6 169/1064/147 157/1060/147 +f 175/1061/145 176/1040/148 164/1042/148 +f 165/1062/2 166/1043/149 154/1045/149 +f 172/1063/146 173/1046/150 161/1048/150 +f 169/1064/147 170/1049/143 158/1051/143 +f 391/1065/1 390/1086/146 402/1066/146 +f 387/1068/145 399/1088/145 400/1069/5 +f 394/1071/6 406/1089/6 407/1072/144 +f 391/1074/1 403/1092/1 404/1075/143 +f 388/1070/5 400/1069/5 401/1077/150 +f 395/1073/144 407/1072/144 408/1079/149 +f 385/1081/2 398/1087/2 397/1082/148 +f 392/1076/143 404/1075/143 405/1084/147 +f 389/1078/150 401/1077/150 402/1066/146 +f 396/1080/149 408/1079/149 398/1087/2 +f 386/1083/148 397/1082/148 399/1088/145 +f 393/1085/147 405/1084/147 406/1089/6 diff --git a/src/main/resources/assets/hbm/models/weapons/minigun.obj b/src/main/resources/assets/hbm/models/weapons/minigun.obj new file mode 100644 index 000000000..7cd89bcc0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/minigun.obj @@ -0,0 +1,5599 @@ +# Blender v2.79 (sub 0) OBJ File: 'minigun.blend' +# www.blender.org +o Circle +v 0.000000 1.500000 -2.000000 +v -0.574025 1.385819 -2.000000 +v -1.060660 1.060660 -2.000000 +v -1.385819 0.574025 -2.000000 +v -1.500000 -0.000000 -2.000000 +v -1.385819 -0.574025 -2.000000 +v -1.060660 -1.060660 -2.000000 +v -0.574025 -1.385819 -2.000000 +v 0.000000 -1.500000 -2.000000 +v 0.574025 -1.385819 -2.000000 +v 1.060660 -1.060660 -2.000000 +v 1.385819 -0.574025 -2.000000 +v 1.500000 -0.000000 -2.000000 +v 1.385819 0.574025 -2.000000 +v 1.060660 1.060660 -2.000000 +v 0.574024 1.385820 -2.000000 +v 0.000000 1.500000 -5.000000 +v -0.574025 1.385819 -5.000000 +v -1.060660 1.060660 -5.000000 +v -1.385819 0.574025 -5.000000 +v -1.500000 -0.000000 -5.000000 +v -1.385819 -0.574025 -5.000000 +v -1.060660 -1.060660 -5.000000 +v -0.574025 -1.385819 -5.000000 +v 0.000000 -1.500000 -5.000000 +v 0.574025 -1.385819 -5.000000 +v 1.060660 -1.060660 -5.000000 +v 1.385819 -0.574025 -5.000000 +v 1.500000 -0.000000 -5.000000 +v 1.385819 0.574025 -5.000000 +v 1.060660 1.060660 -5.000000 +v 0.574024 1.385820 -5.000000 +v 0.000000 1.250000 -5.500000 +v -0.478354 1.154850 -5.500000 +v -0.883883 0.883883 -5.500000 +v -1.154849 0.478354 -5.500000 +v -1.250000 0.000000 -5.500000 +v -1.154849 -0.478354 -5.500000 +v -0.883883 -0.883883 -5.500000 +v -0.478354 -1.154850 -5.500000 +v 0.000000 -1.250000 -5.500000 +v 0.478354 -1.154850 -5.500000 +v 0.883883 -0.883884 -5.500000 +v 1.154849 -0.478354 -5.500000 +v 1.250000 0.000000 -5.500000 +v 1.154849 0.478354 -5.500000 +v 0.883883 0.883884 -5.500000 +v 0.478354 1.154850 -5.500000 +v 0.000000 1.250000 -9.000000 +v -0.478354 1.154850 -9.000000 +v -0.883883 0.883883 -9.000000 +v -1.154849 0.478354 -9.000000 +v -1.250000 0.000000 -9.000000 +v -1.154849 -0.478354 -9.000000 +v -0.883883 -0.883883 -9.000000 +v -0.478354 -1.154850 -9.000000 +v 0.000000 -1.250000 -9.000000 +v 0.478354 -1.154850 -9.000000 +v 0.883883 -0.883884 -9.000000 +v 1.154849 -0.478354 -9.000000 +v 1.250000 0.000000 -9.000000 +v 1.154849 0.478354 -9.000000 +v 0.883883 0.883884 -9.000000 +v 0.478354 1.154850 -9.000000 +v 0.000000 1.000000 -9.500000 +v -0.382684 0.923880 -9.500000 +v -0.707107 0.707107 -9.500000 +v -0.923880 0.382684 -9.500000 +v -1.000000 -0.000000 -9.500000 +v -0.923880 -0.382684 -9.500000 +v -0.707107 -0.707107 -9.500000 +v -0.382684 -0.923880 -9.500000 +v -0.000000 -1.000000 -9.500000 +v 0.382683 -0.923880 -9.500000 +v 0.707107 -0.707107 -9.500000 +v 0.923879 -0.382684 -9.500000 +v 1.000000 -0.000000 -9.500000 +v 0.923879 0.382684 -9.500000 +v 0.707107 0.707107 -9.500000 +v 0.382683 0.923880 -9.500000 +v -0.750000 0.000000 -6.000000 +v -0.750000 1.500000 -6.000000 +v -0.750000 0.000000 -10.500000 +v -0.750000 1.500000 -10.500000 +v 0.750000 0.000000 -6.000000 +v 0.750000 1.500000 -6.000000 +v 0.750000 0.000000 -10.500000 +v 0.750000 1.500000 -10.500000 +v -0.750000 2.000000 -8.250000 +v 0.750000 2.000000 -8.250000 +v -0.375000 -0.750000 -10.500000 +v -0.375000 -0.750000 -6.000000 +v 0.375000 -0.750000 -10.500000 +v 0.375000 -0.750000 -6.000000 +v 0.000000 1.437500 -2.000000 +v -0.218750 1.378886 -2.000000 +v -0.378886 1.218750 -2.000000 +v -0.437500 1.000000 -2.000000 +v -0.378886 0.781250 -2.000000 +v -0.218750 0.621114 -2.000000 +v 0.000000 0.562500 -2.000000 +v 0.218750 0.621114 -2.000000 +v 0.378886 0.781250 -2.000000 +v 0.437500 1.000000 -2.000000 +v 0.378886 1.218750 -2.000000 +v 0.218750 1.378886 -2.000000 +v 0.000000 1.437500 2.000000 +v -0.218750 1.378886 2.000000 +v -0.378886 1.218750 2.000000 +v -0.437500 1.000000 2.000000 +v -0.378886 0.781250 2.000000 +v -0.218750 0.621114 2.000000 +v 0.000000 0.562500 2.000000 +v 0.218750 0.621114 2.000000 +v 0.378886 0.781250 2.000000 +v 0.437500 1.000000 2.000000 +v 0.378886 1.218750 2.000000 +v 0.218750 1.378886 2.000000 +v 0.000000 1.500000 2.250000 +v -0.250000 1.433012 2.250000 +v -0.433013 1.250000 2.250000 +v -0.500000 1.000000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.250000 0.566987 2.250000 +v 0.000000 0.500000 2.250000 +v 0.250000 0.566987 2.250000 +v 0.433012 0.750000 2.250000 +v 0.500000 1.000000 2.250000 +v 0.433013 1.250000 2.250000 +v 0.250000 1.433012 2.250000 +v 0.000000 1.500000 3.250000 +v -0.250000 1.433012 3.250000 +v -0.433013 1.250000 3.250000 +v -0.500000 1.000000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.250000 0.566987 3.250000 +v 0.000000 0.500000 3.250000 +v 0.250000 0.566987 3.250000 +v 0.433012 0.750000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.433013 1.250000 3.250000 +v 0.250000 1.433012 3.250000 +v 0.000000 1.437500 3.500000 +v -0.218750 1.378886 3.500000 +v -0.378886 1.218750 3.500000 +v -0.437500 1.000000 3.500000 +v -0.378886 0.781250 3.500000 +v -0.218750 0.621114 3.500000 +v 0.000000 0.562500 3.500000 +v 0.218750 0.621114 3.500000 +v 0.378886 0.781250 3.500000 +v 0.437500 1.000000 3.500000 +v 0.378886 1.218750 3.500000 +v 0.218750 1.378886 3.500000 +v 0.000000 1.437500 8.500000 +v -0.218750 1.378886 8.500000 +v -0.378886 1.218750 8.500000 +v -0.437500 1.000000 8.500000 +v -0.378886 0.781250 8.500000 +v -0.218750 0.621114 8.500000 +v 0.000000 0.562500 8.500000 +v 0.218750 0.621114 8.500000 +v 0.378886 0.781250 8.500000 +v 0.437500 1.000000 8.500000 +v 0.378886 1.218750 8.500000 +v 0.218750 1.378886 8.500000 +v 0.000000 1.500000 8.750000 +v -0.250000 1.433012 8.750000 +v -0.433013 1.250000 8.750000 +v -0.500000 1.000000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.250000 0.566987 8.750000 +v 0.000000 0.500000 8.750000 +v 0.250000 0.566987 8.750000 +v 0.433012 0.750000 8.750000 +v 0.500000 1.000000 8.750000 +v 0.433013 1.250000 8.750000 +v 0.250000 1.433012 8.750000 +v 0.000000 1.500000 11.250000 +v -0.250000 1.433012 11.250000 +v -0.433013 1.250000 11.250000 +v -0.500000 1.000000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.250000 0.566987 11.250000 +v 0.000000 0.500000 11.250000 +v 0.250000 0.566987 11.250000 +v 0.433012 0.750000 11.250000 +v 0.500000 1.000000 11.250000 +v 0.433013 1.250000 11.250000 +v 0.250000 1.433012 11.250000 +v 0.000000 1.437500 11.500000 +v -0.218750 1.378886 11.500000 +v -0.378886 1.218750 11.500000 +v -0.437500 1.000000 11.500000 +v -0.378886 0.781250 11.500000 +v -0.218750 0.621114 11.500000 +v 0.000000 0.562500 11.500000 +v 0.218750 0.621114 11.500000 +v 0.378886 0.781250 11.500000 +v 0.437500 1.000000 11.500000 +v 0.378886 1.218750 11.500000 +v 0.218750 1.378886 11.500000 +v 0.000000 1.437500 12.000000 +v -0.218750 1.378886 12.000000 +v -0.378886 1.218750 12.000000 +v -0.437500 1.000000 12.000000 +v -0.378886 0.781250 12.000000 +v -0.218750 0.621114 12.000000 +v 0.000000 0.562500 12.000000 +v 0.218750 0.621114 12.000000 +v 0.378886 0.781250 12.000000 +v 0.437500 1.000000 12.000000 +v 0.378886 1.218750 12.000000 +v 0.218750 1.378886 12.000000 +v 0.000000 1.312500 12.000000 +v -0.156250 1.270633 12.000000 +v -0.270633 1.156250 12.000000 +v -0.312500 1.000000 12.000000 +v -0.270633 0.843750 12.000000 +v -0.156250 0.729367 12.000000 +v 0.000000 0.687500 12.000000 +v 0.156250 0.729367 12.000000 +v 0.270633 0.843750 12.000000 +v 0.312500 1.000000 12.000000 +v 0.270633 1.156250 12.000000 +v 0.156250 1.270633 12.000000 +v 0.000000 1.312500 11.500000 +v -0.156250 1.270633 11.500000 +v -0.270633 1.156250 11.500000 +v -0.312500 1.000000 11.500000 +v -0.270633 0.843750 11.500000 +v -0.156250 0.729367 11.500000 +v 0.000000 0.687500 11.500000 +v 0.156250 0.729367 11.500000 +v 0.270633 0.843750 11.500000 +v 0.312500 1.000000 11.500000 +v 0.270633 1.156250 11.500000 +v 0.156250 1.270633 11.500000 +v 0.000000 1.625000 11.000000 +v -0.812500 1.407292 11.000000 +v -1.407291 0.812500 11.000000 +v -1.625000 0.000000 11.000000 +v -1.407291 -0.812500 11.000000 +v -0.812500 -1.407292 11.000000 +v -0.000000 -1.625000 11.000000 +v 0.812500 -1.407292 11.000000 +v 1.407290 -0.812500 11.000000 +v 1.625000 0.000000 11.000000 +v 1.407291 0.812500 11.000000 +v 0.812501 1.407292 11.000000 +v 0.000000 1.625000 10.000000 +v -0.812500 1.407292 10.000000 +v -1.407291 0.812500 10.000000 +v -1.625000 0.000000 10.000000 +v -1.407291 -0.812500 10.000000 +v -0.812500 -1.407292 10.000000 +v -0.000000 -1.625000 10.000000 +v 0.812500 -1.407292 10.000000 +v 1.407290 -0.812500 10.000000 +v 1.625000 0.000000 10.000000 +v 1.407291 0.812500 10.000000 +v 0.812501 1.407292 10.000000 +v -0.375000 2.500000 -11.250000 +v 0.375000 2.500000 -11.250000 +v -0.375000 1.750000 -12.000000 +v 0.375000 1.750000 -12.000000 +v -0.375000 0.750000 -10.500000 +v 0.375000 0.750000 -10.500000 +v -0.375000 1.750000 -7.750000 +v 0.375000 1.750000 -7.750000 +v -0.375000 4.000000 -11.250000 +v 0.375000 4.000000 -11.250000 +v -0.375000 4.000000 -7.750000 +v 0.375000 4.000000 -7.750000 +v -0.375000 4.000000 -8.250000 +v 0.375000 4.000000 -8.250000 +v -0.375000 2.500000 -8.250000 +v 0.375000 2.500000 -8.250000 +v -0.375000 4.000000 -10.750000 +v 0.375000 4.000000 -10.750000 +v -0.375000 2.500000 -10.750000 +v 0.375000 2.500000 -10.750000 +v 0.000000 3.875000 -8.250000 +v -0.265165 3.765165 -8.250000 +v -0.375000 3.500000 -8.250000 +v -0.265165 3.234835 -8.250000 +v 0.000000 3.125000 -8.250000 +v 0.265165 3.234835 -8.250000 +v 0.375000 3.500000 -8.250000 +v 0.265165 3.765165 -8.250000 +v 0.000000 3.875000 -10.750000 +v -0.265165 3.765165 -10.750000 +v -0.375000 3.500000 -10.750000 +v -0.265165 3.234835 -10.750000 +v 0.000000 3.125000 -10.750000 +v 0.265165 3.234835 -10.750000 +v 0.375000 3.500000 -10.750000 +v 0.265165 3.765165 -10.750000 +v -1.500000 0.250000 -5.750000 +v -1.500000 -0.750000 -8.250000 +v -1.500000 0.250000 -8.250000 +v 1.500000 0.250000 -5.750000 +v 1.500000 -0.750000 -8.250000 +v 1.500000 0.250000 -8.250000 +v 2.000000 0.250000 -8.000000 +v 2.000000 -0.750000 -8.000000 +v 2.000000 0.250000 -6.250000 +v -2.000000 -0.750000 -8.000000 +v -2.000000 0.250000 -6.250000 +v -2.000000 0.250000 -8.000000 +v -1.500000 0.750000 -6.250000 +v -1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -6.250000 +v 2.000000 0.750000 -7.750000 +v 2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -7.750000 +v -1.500000 -1.500000 -7.500000 +v -1.500000 -1.500000 -5.750000 +v 1.500000 -1.500000 -7.500000 +v 1.500000 -1.500000 -5.750000 +v 2.000000 -1.500000 -6.250000 +v 2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -6.250000 +v 1.125000 0.375000 -2.000000 +v 1.125000 -0.375000 -2.000000 +v 1.125000 0.375000 -5.750000 +v 1.125000 -0.375000 -5.750000 +v 1.875000 0.375000 -5.500000 +v 1.875000 0.375000 -2.250000 +v 1.875000 -0.375000 -2.250000 +v 1.875000 -0.375000 -5.500000 +v 2.375000 0.187500 -4.500000 +v 2.375000 0.187500 -3.250000 +v 2.375000 -0.187500 -3.250000 +v 2.375000 -0.187500 -4.500000 +v -1.125000 0.375000 -2.000000 +v -1.125000 -0.375000 -2.000000 +v -1.125000 0.375000 -5.750000 +v -1.125000 -0.375000 -5.750000 +v -1.875000 0.375000 -5.500000 +v -1.875000 0.375000 -2.250000 +v -1.875000 -0.375000 -2.250000 +v -1.875000 -0.375000 -5.500000 +v -2.375000 0.187500 -4.500000 +v -2.375000 0.187500 -3.250000 +v -2.375000 -0.187500 -3.250000 +v -2.375000 -0.187500 -4.500000 +v -1.223240 1.817343 -4.000000 +v -1.223240 1.817343 -3.000000 +v -0.840556 1.741222 -4.000000 +v -0.840556 1.741222 -3.000000 +v -0.516133 1.524449 -4.000000 +v -0.516133 1.524449 -3.000000 +v -0.299360 1.200026 -4.000000 +v -0.299360 1.200026 -3.000000 +v -0.223240 0.817343 -4.000000 +v -0.223240 0.817343 -3.000000 +v -0.299360 0.434659 -4.000000 +v -0.299360 0.434659 -3.000000 +v -0.516133 0.110236 -4.000000 +v -0.516133 0.110236 -3.000000 +v -0.840556 -0.106537 -4.000000 +v -0.840556 -0.106537 -3.000000 +v -1.223239 -0.182657 -4.000000 +v -1.223239 -0.182657 -3.000000 +v -1.605923 -0.106537 -4.000000 +v -1.605923 -0.106537 -3.000000 +v -1.930346 0.110236 -4.000000 +v -1.930346 0.110236 -3.000000 +v -2.147119 0.434659 -4.000000 +v -2.147119 0.434659 -3.000000 +v -2.223239 0.817343 -4.000000 +v -2.223239 0.817343 -3.000000 +v -2.147119 1.200026 -4.000000 +v -2.147119 1.200026 -3.000000 +v -1.930346 1.524450 -4.000000 +v -1.930346 1.524450 -3.000000 +v -1.605923 1.741222 -4.000000 +v -1.605923 1.741222 -3.000000 +v 1.223239 1.817343 -4.000000 +v 1.223239 1.817343 -3.000000 +v 1.605923 1.741222 -4.000000 +v 1.605923 1.741222 -3.000000 +v 1.930346 1.524450 -4.000000 +v 1.930346 1.524450 -3.000000 +v 2.147119 1.200026 -4.000000 +v 2.147119 1.200026 -3.000000 +v 2.223239 0.817343 -4.000000 +v 2.223239 0.817343 -3.000000 +v 2.147119 0.434659 -4.000000 +v 2.147119 0.434659 -3.000000 +v 1.930346 0.110236 -4.000000 +v 1.930346 0.110236 -3.000000 +v 1.605923 -0.106537 -4.000000 +v 1.605923 -0.106537 -3.000000 +v 1.223240 -0.182657 -4.000000 +v 1.223240 -0.182657 -3.000000 +v 0.840556 -0.106537 -4.000000 +v 0.840556 -0.106537 -3.000000 +v 0.516133 0.110236 -4.000000 +v 0.516133 0.110236 -3.000000 +v 0.299360 0.434659 -4.000000 +v 0.299360 0.434659 -3.000000 +v 0.223239 0.817343 -4.000000 +v 0.223239 0.817343 -3.000000 +v 0.299360 1.200027 -4.000000 +v 0.299360 1.200027 -3.000000 +v 0.516133 1.524450 -4.000000 +v 0.516133 1.524450 -3.000000 +v 0.840557 1.741223 -4.000000 +v 0.840557 1.741223 -3.000000 +v 1.500000 -0.500000 -0.750000 +v 1.500000 0.500000 -0.750000 +v 1.500000 -0.500000 -2.250000 +v 1.500000 0.500000 -2.250000 +v 2.000000 -0.500000 -0.750000 +v 2.000000 0.500000 -0.750000 +v 2.000000 -0.500000 -2.250000 +v 2.000000 0.500000 -2.250000 +v 2.000000 0.000000 -2.125000 +v 2.000000 0.265165 -2.015165 +v 2.000000 0.375000 -1.750000 +v 2.000000 0.265165 -1.484835 +v 2.000000 0.000000 -1.375000 +v 2.000000 -0.265165 -1.484835 +v 2.000000 -0.375000 -1.750000 +v 2.000000 -0.265165 -2.015165 +v 4.500000 0.000000 -2.125000 +v 4.500000 0.265165 -2.015165 +v 4.500000 0.375000 -1.750000 +v 4.500000 0.265165 -1.484835 +v 4.500000 0.000000 -1.375000 +v 4.500000 -0.265165 -1.484835 +v 4.500000 -0.375000 -1.750000 +v 4.500000 -0.265165 -2.015165 +v 2.000000 -0.250000 -0.250000 +v 2.000000 0.250000 -0.250000 +v 4.500000 0.500000 -0.750000 +v 4.500000 -0.500000 -0.750000 +v 4.500000 0.250000 -0.250000 +v 4.500000 -0.250000 -0.250000 +v 5.000000 0.500000 -0.750000 +v 5.000000 -0.500000 -0.750000 +v 4.500000 0.500000 -2.250000 +v 4.500000 -0.500000 -2.250000 +v 5.000000 0.500000 -1.750000 +v 5.000000 -0.500000 -1.750000 +v -0.500000 -1.000000 -2.500000 +v 0.500000 -1.000000 -2.500000 +v -0.500000 -1.000000 -6.500000 +v 0.500000 -1.000000 -6.500000 +v -0.500000 -2.000000 -5.500000 +v -0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -5.500000 +v 1.250000 0.000000 -8.000000 +v 1.250000 0.500000 -8.000000 +v 1.250000 0.000000 -9.750000 +v 1.250000 0.500000 -9.750000 +v 1.750000 0.000000 -8.000000 +v 1.750000 0.500000 -8.000000 +v 1.750000 0.000000 -9.750000 +v 1.750000 0.500000 -9.750000 +v -1.000000 1.250000 -6.500000 +v 1.250000 0.000000 -10.250000 +v 1.750000 0.000000 -10.250000 +v 1.000000 1.250000 -6.500000 +v 1.750000 -1.000000 -9.750000 +v 1.250000 -1.000000 -9.750000 +v 1.750000 -1.000000 -10.250000 +v 1.250000 -1.000000 -10.250000 +v -1.750000 0.000000 -8.000000 +v -1.750000 0.500000 -8.000000 +v -1.750000 0.000000 -9.750000 +v -1.750000 0.500000 -9.750000 +v -1.250000 0.000000 -8.000000 +v -1.250000 0.500000 -8.000000 +v -1.250000 0.000000 -9.750000 +v -1.250000 0.500000 -9.750000 +v -1.000000 1.250000 -7.750000 +v -1.750000 0.000000 -10.250000 +v -1.250000 0.000000 -10.250000 +v 1.000000 1.250000 -7.750000 +v -1.250000 -1.000000 -9.750000 +v -1.750000 -1.000000 -9.750000 +v -1.250000 -1.000000 -10.250000 +v -1.750000 -1.000000 -10.250000 +v 1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -9.750000 +v -1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -10.250000 +v -1.250000 -1.500000 -9.750000 +v 1.000000 0.750000 -6.500000 +v -1.250000 -1.500000 -10.250000 +v -1.000000 0.750000 -6.500000 +v -1.500000 -2.000000 -2.750000 +v 1.500000 -2.000000 -2.750000 +v -1.500000 -2.000000 -5.250000 +v 1.500000 -2.000000 -5.250000 +v -1.500000 -4.000000 -5.250000 +v -1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -5.250000 +v -1.500000 -1.970942 -3.082382 +v -1.500000 -2.345942 -3.082382 +v -1.500000 -1.970942 -3.957382 +v -1.500000 -2.345942 -3.957382 +v -2.000000 -1.970942 -3.082382 +v -2.000000 -2.345942 -3.082382 +v -2.000000 -1.970942 -3.957382 +v -2.000000 -2.345942 -3.957382 +v -2.500000 -1.470942 -3.082382 +v -2.875000 -1.470942 -3.082382 +v -2.500000 -1.470942 -3.957382 +v -2.875000 -1.470942 -3.957382 +v -2.500000 0.654058 -3.082382 +v -2.875000 0.654058 -3.082382 +v -2.500000 0.654058 -3.957382 +v -2.875000 0.654058 -3.957382 +v -2.000000 1.154058 -3.082382 +v -2.000000 1.154058 -3.957382 +v -2.000000 1.529058 -3.082382 +v -2.000000 1.529058 -3.957382 +v -0.750000 1.375000 -3.250000 +v 0.750000 1.375000 -3.250000 +v 1.750000 0.000000 -4.750000 +v 1.750000 0.000000 -3.000000 +v 1.616789 -0.669696 -4.750000 +v 1.616789 -0.669696 -3.000000 +v 1.237437 -1.237437 -4.750000 +v 1.237437 -1.237437 -3.000000 +v 0.669696 -1.616789 -4.750000 +v 0.669696 -1.616789 -3.000000 +v 0.000000 -1.750000 -4.750000 +v 0.000000 -1.750000 -3.000000 +v -0.669696 -1.616789 -4.750000 +v -0.669696 -1.616789 -3.000000 +v -1.237436 -1.237437 -4.750000 +v -1.237436 -1.237437 -3.000000 +v -1.616789 -0.669696 -4.750000 +v -1.616789 -0.669696 -3.000000 +v -1.750000 0.000000 -4.750000 +v -1.750000 0.000000 -3.000000 +v -0.750000 1.375000 -3.750000 +v 0.750000 1.375000 -3.750000 +v 0.750000 1.625000 -3.750000 +v -0.750000 1.625000 -3.750000 +v 0.750000 1.625000 -3.250000 +v -0.750000 1.625000 -3.250000 +v -0.000000 -1.437500 -2.000000 +v 0.218750 -1.378886 -2.000000 +v 0.378886 -1.218750 -2.000000 +v 0.437500 -1.000000 -2.000000 +v 0.378886 -0.781250 -2.000000 +v 0.218750 -0.621114 -2.000000 +v -0.000000 -0.562500 -2.000000 +v -0.218750 -0.621114 -2.000000 +v -0.378887 -0.781250 -2.000000 +v -0.437500 -1.000000 -2.000000 +v -0.378887 -1.218750 -2.000000 +v -0.218750 -1.378886 -2.000000 +v -0.000000 -1.437500 2.000000 +v 0.218750 -1.378886 2.000000 +v 0.378886 -1.218750 2.000000 +v 0.437500 -1.000000 2.000000 +v 0.378886 -0.781250 2.000000 +v 0.218750 -0.621114 2.000000 +v -0.000000 -0.562500 2.000000 +v -0.218750 -0.621114 2.000000 +v -0.378887 -0.781250 2.000000 +v -0.437500 -1.000000 2.000000 +v -0.378887 -1.218750 2.000000 +v -0.218750 -1.378886 2.000000 +v -0.000000 -1.500000 2.250000 +v 0.250000 -1.433012 2.250000 +v 0.433013 -1.250000 2.250000 +v 0.500000 -1.000000 2.250000 +v 0.433013 -0.750000 2.250000 +v 0.250000 -0.566987 2.250000 +v -0.000000 -0.500000 2.250000 +v -0.250000 -0.566987 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.500000 -1.000000 2.250000 +v -0.433013 -1.250000 2.250000 +v -0.250000 -1.433012 2.250000 +v -0.000000 -1.500000 3.250000 +v 0.250000 -1.433012 3.250000 +v 0.433013 -1.250000 3.250000 +v 0.500000 -1.000000 3.250000 +v 0.433013 -0.750000 3.250000 +v 0.250000 -0.566987 3.250000 +v -0.000000 -0.500000 3.250000 +v -0.250000 -0.566987 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.500000 -1.000000 3.250000 +v -0.433013 -1.250000 3.250000 +v -0.250000 -1.433012 3.250000 +v -0.000000 -1.437500 3.500000 +v 0.218750 -1.378886 3.500000 +v 0.378886 -1.218750 3.500000 +v 0.437500 -1.000000 3.500000 +v 0.378886 -0.781250 3.500000 +v 0.218750 -0.621114 3.500000 +v -0.000000 -0.562500 3.500000 +v -0.218750 -0.621114 3.500000 +v -0.378887 -0.781250 3.500000 +v -0.437500 -1.000000 3.500000 +v -0.378887 -1.218750 3.500000 +v -0.218750 -1.378886 3.500000 +v -0.000000 -1.437500 8.500000 +v 0.218750 -1.378886 8.500000 +v 0.378886 -1.218750 8.500000 +v 0.437500 -1.000000 8.500000 +v 0.378886 -0.781250 8.500000 +v 0.218750 -0.621114 8.500000 +v -0.000000 -0.562500 8.500000 +v -0.218750 -0.621114 8.500000 +v -0.378887 -0.781250 8.500000 +v -0.437500 -1.000000 8.500000 +v -0.378887 -1.218750 8.500000 +v -0.218750 -1.378886 8.500000 +v -0.000000 -1.500000 8.750000 +v 0.250000 -1.433012 8.750000 +v 0.433013 -1.250000 8.750000 +v 0.500000 -1.000000 8.750000 +v 0.433013 -0.750000 8.750000 +v 0.250000 -0.566987 8.750000 +v -0.000000 -0.500000 8.750000 +v -0.250000 -0.566987 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.500000 -1.000000 8.750000 +v -0.433013 -1.250000 8.750000 +v -0.250000 -1.433012 8.750000 +v -0.000000 -1.500000 11.250000 +v 0.250000 -1.433012 11.250000 +v 0.433013 -1.250000 11.250000 +v 0.500000 -1.000000 11.250000 +v 0.433013 -0.750000 11.250000 +v 0.250000 -0.566987 11.250000 +v -0.000000 -0.500000 11.250000 +v -0.250000 -0.566987 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.500000 -1.000000 11.250000 +v -0.433013 -1.250000 11.250000 +v -0.250000 -1.433012 11.250000 +v -0.000000 -1.437500 11.500000 +v 0.218750 -1.378886 11.500000 +v 0.378886 -1.218750 11.500000 +v 0.437500 -1.000000 11.500000 +v 0.378886 -0.781250 11.500000 +v 0.218750 -0.621114 11.500000 +v -0.000000 -0.562500 11.500000 +v -0.218750 -0.621114 11.500000 +v -0.378887 -0.781250 11.500000 +v -0.437500 -1.000000 11.500000 +v -0.378887 -1.218750 11.500000 +v -0.218750 -1.378886 11.500000 +v -0.000000 -1.437500 12.000000 +v 0.218750 -1.378886 12.000000 +v 0.378886 -1.218750 12.000000 +v 0.437500 -1.000000 12.000000 +v 0.378886 -0.781250 12.000000 +v 0.218750 -0.621114 12.000000 +v -0.000000 -0.562500 12.000000 +v -0.218750 -0.621114 12.000000 +v -0.378887 -0.781250 12.000000 +v -0.437500 -1.000000 12.000000 +v -0.378887 -1.218750 12.000000 +v -0.218750 -1.378886 12.000000 +v -0.000000 -1.312500 12.000000 +v 0.156250 -1.270633 12.000000 +v 0.270633 -1.156250 12.000000 +v 0.312500 -1.000000 12.000000 +v 0.270632 -0.843750 12.000000 +v 0.156250 -0.729367 12.000000 +v -0.000000 -0.687500 12.000000 +v -0.156250 -0.729367 12.000000 +v -0.270633 -0.843750 12.000000 +v -0.312500 -1.000000 12.000000 +v -0.270633 -1.156250 12.000000 +v -0.156250 -1.270633 12.000000 +v -0.000000 -1.312500 11.500000 +v 0.156250 -1.270633 11.500000 +v 0.270633 -1.156250 11.500000 +v 0.312500 -1.000000 11.500000 +v 0.270632 -0.843750 11.500000 +v 0.156250 -0.729367 11.500000 +v -0.000000 -0.687500 11.500000 +v -0.156250 -0.729367 11.500000 +v -0.270633 -0.843750 11.500000 +v -0.312500 -1.000000 11.500000 +v -0.270633 -1.156250 11.500000 +v -0.156250 -1.270633 11.500000 +v 1.244911 0.718750 -2.000000 +v 1.084775 0.878886 -2.000000 +v 0.866025 0.937500 -2.000000 +v 0.647275 0.878886 -2.000000 +v 0.487139 0.718750 -2.000000 +v 0.428525 0.500000 -2.000000 +v 0.487139 0.281250 -2.000000 +v 0.647275 0.121114 -2.000000 +v 0.866025 0.062500 -2.000000 +v 1.084775 0.121114 -2.000000 +v 1.244911 0.281250 -2.000000 +v 1.303525 0.500000 -2.000000 +v 1.244911 0.718750 2.000000 +v 1.084775 0.878886 2.000000 +v 0.866025 0.937500 2.000000 +v 0.647275 0.878886 2.000000 +v 0.487139 0.718750 2.000000 +v 0.428525 0.500000 2.000000 +v 0.487139 0.281250 2.000000 +v 0.647275 0.121114 2.000000 +v 0.866025 0.062500 2.000000 +v 1.084775 0.121114 2.000000 +v 1.244911 0.281250 2.000000 +v 1.303525 0.500000 2.000000 +v 1.299038 0.750000 2.250000 +v 1.116025 0.933012 2.250000 +v 0.866025 1.000000 2.250000 +v 0.616025 0.933012 2.250000 +v 0.433012 0.750000 2.250000 +v 0.366025 0.500000 2.250000 +v 0.433012 0.250000 2.250000 +v 0.616025 0.066987 2.250000 +v 0.866025 -0.000000 2.250000 +v 1.116025 0.066987 2.250000 +v 1.299038 0.249999 2.250000 +v 1.366025 0.500000 2.250000 +v 1.299038 0.750000 3.250000 +v 1.116025 0.933012 3.250000 +v 0.866025 1.000000 3.250000 +v 0.616025 0.933012 3.250000 +v 0.433012 0.750000 3.250000 +v 0.366025 0.500000 3.250000 +v 0.433012 0.250000 3.250000 +v 0.616025 0.066987 3.250000 +v 0.866025 -0.000000 3.250000 +v 1.116025 0.066987 3.250000 +v 1.299038 0.249999 3.250000 +v 1.366025 0.500000 3.250000 +v 1.244911 0.718750 3.500000 +v 1.084775 0.878886 3.500000 +v 0.866025 0.937500 3.500000 +v 0.647275 0.878886 3.500000 +v 0.487139 0.718750 3.500000 +v 0.428525 0.500000 3.500000 +v 0.487139 0.281250 3.500000 +v 0.647275 0.121114 3.500000 +v 0.866025 0.062500 3.500000 +v 1.084775 0.121114 3.500000 +v 1.244911 0.281250 3.500000 +v 1.303525 0.500000 3.500000 +v 1.244911 0.718750 8.500000 +v 1.084775 0.878886 8.500000 +v 0.866025 0.937500 8.500000 +v 0.647275 0.878886 8.500000 +v 0.487139 0.718750 8.500000 +v 0.428525 0.500000 8.500000 +v 0.487139 0.281250 8.500000 +v 0.647275 0.121114 8.500000 +v 0.866025 0.062500 8.500000 +v 1.084775 0.121114 8.500000 +v 1.244911 0.281250 8.500000 +v 1.303525 0.500000 8.500000 +v 1.299038 0.750000 8.750000 +v 1.116025 0.933012 8.750000 +v 0.866025 1.000000 8.750000 +v 0.616025 0.933012 8.750000 +v 0.433012 0.750000 8.750000 +v 0.366025 0.500000 8.750000 +v 0.433012 0.250000 8.750000 +v 0.616025 0.066987 8.750000 +v 0.866025 -0.000000 8.750000 +v 1.116025 0.066987 8.750000 +v 1.299038 0.249999 8.750000 +v 1.366025 0.500000 8.750000 +v 1.299038 0.750000 11.250000 +v 1.116025 0.933012 11.250000 +v 0.866025 1.000000 11.250000 +v 0.616025 0.933012 11.250000 +v 0.433012 0.750000 11.250000 +v 0.366025 0.500000 11.250000 +v 0.433012 0.250000 11.250000 +v 0.616025 0.066987 11.250000 +v 0.866025 -0.000000 11.250000 +v 1.116025 0.066987 11.250000 +v 1.299038 0.249999 11.250000 +v 1.366025 0.500000 11.250000 +v 1.244911 0.718750 11.500000 +v 1.084775 0.878886 11.500000 +v 0.866025 0.937500 11.500000 +v 0.647275 0.878886 11.500000 +v 0.487139 0.718750 11.500000 +v 0.428525 0.500000 11.500000 +v 0.487139 0.281250 11.500000 +v 0.647275 0.121114 11.500000 +v 0.866025 0.062500 11.500000 +v 1.084775 0.121114 11.500000 +v 1.244911 0.281250 11.500000 +v 1.303525 0.500000 11.500000 +v 1.244911 0.718750 12.000000 +v 1.084775 0.878886 12.000000 +v 0.866025 0.937500 12.000000 +v 0.647275 0.878886 12.000000 +v 0.487139 0.718750 12.000000 +v 0.428525 0.500000 12.000000 +v 0.487139 0.281250 12.000000 +v 0.647275 0.121114 12.000000 +v 0.866025 0.062500 12.000000 +v 1.084775 0.121114 12.000000 +v 1.244911 0.281250 12.000000 +v 1.303525 0.500000 12.000000 +v 1.136658 0.656250 12.000000 +v 1.022276 0.770633 12.000000 +v 0.866025 0.812500 12.000000 +v 0.709775 0.770633 12.000000 +v 0.595393 0.656250 12.000000 +v 0.553525 0.500000 12.000000 +v 0.595392 0.343750 12.000000 +v 0.709775 0.229367 12.000000 +v 0.866025 0.187500 12.000000 +v 1.022275 0.229367 12.000000 +v 1.136658 0.343750 12.000000 +v 1.178525 0.500000 12.000000 +v 1.136658 0.656250 11.500000 +v 1.022276 0.770633 11.500000 +v 0.866025 0.812500 11.500000 +v 0.709775 0.770633 11.500000 +v 0.595393 0.656250 11.500000 +v 0.553525 0.500000 11.500000 +v 0.595392 0.343750 11.500000 +v 0.709775 0.229367 11.500000 +v 0.866025 0.187500 11.500000 +v 1.022275 0.229367 11.500000 +v 1.136658 0.343750 11.500000 +v 1.178525 0.500000 11.500000 +v -1.244912 -0.718750 -2.000000 +v -1.084776 -0.878886 -2.000000 +v -0.866026 -0.937500 -2.000000 +v -0.647276 -0.878886 -2.000000 +v -0.487140 -0.718750 -2.000000 +v -0.428526 -0.500000 -2.000000 +v -0.487140 -0.281250 -2.000000 +v -0.647276 -0.121114 -2.000000 +v -0.866026 -0.062500 -2.000000 +v -1.084775 -0.121113 -2.000000 +v -1.244912 -0.281250 -2.000000 +v -1.303526 -0.500000 -2.000000 +v -1.244912 -0.718750 2.000000 +v -1.084776 -0.878886 2.000000 +v -0.866026 -0.937500 2.000000 +v -0.647276 -0.878886 2.000000 +v -0.487140 -0.718750 2.000000 +v -0.428526 -0.500000 2.000000 +v -0.487140 -0.281250 2.000000 +v -0.647276 -0.121114 2.000000 +v -0.866026 -0.062500 2.000000 +v -1.084775 -0.121113 2.000000 +v -1.244912 -0.281250 2.000000 +v -1.303526 -0.500000 2.000000 +v -1.299038 -0.750000 2.250000 +v -1.116026 -0.933012 2.250000 +v -0.866025 -1.000000 2.250000 +v -0.616026 -0.933012 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.366026 -0.500000 2.250000 +v -0.433013 -0.250000 2.250000 +v -0.616025 -0.066987 2.250000 +v -0.866025 0.000000 2.250000 +v -1.116025 -0.066987 2.250000 +v -1.299038 -0.249999 2.250000 +v -1.366025 -0.500000 2.250000 +v -1.299038 -0.750000 3.250000 +v -1.116026 -0.933012 3.250000 +v -0.866025 -1.000000 3.250000 +v -0.616026 -0.933012 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.366026 -0.500000 3.250000 +v -0.433013 -0.250000 3.250000 +v -0.616025 -0.066987 3.250000 +v -0.866025 0.000000 3.250000 +v -1.116025 -0.066987 3.250000 +v -1.299038 -0.249999 3.250000 +v -1.366025 -0.500000 3.250000 +v -1.244912 -0.718750 3.500000 +v -1.084776 -0.878886 3.500000 +v -0.866026 -0.937500 3.500000 +v -0.647276 -0.878886 3.500000 +v -0.487140 -0.718750 3.500000 +v -0.428526 -0.500000 3.500000 +v -0.487140 -0.281250 3.500000 +v -0.647276 -0.121114 3.500000 +v -0.866026 -0.062500 3.500000 +v -1.084775 -0.121113 3.500000 +v -1.244912 -0.281250 3.500000 +v -1.303526 -0.500000 3.500000 +v -1.244912 -0.718750 8.500000 +v -1.084776 -0.878886 8.500000 +v -0.866026 -0.937500 8.500000 +v -0.647276 -0.878886 8.500000 +v -0.487140 -0.718750 8.500000 +v -0.428526 -0.500000 8.500000 +v -0.487140 -0.281250 8.500000 +v -0.647276 -0.121114 8.500000 +v -0.866026 -0.062500 8.500000 +v -1.084775 -0.121113 8.500000 +v -1.244912 -0.281250 8.500000 +v -1.303526 -0.500000 8.500000 +v -1.299038 -0.750000 8.750000 +v -1.116026 -0.933012 8.750000 +v -0.866025 -1.000000 8.750000 +v -0.616026 -0.933012 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.366026 -0.500000 8.750000 +v -0.433013 -0.250000 8.750000 +v -0.616025 -0.066987 8.750000 +v -0.866025 0.000000 8.750000 +v -1.116025 -0.066987 8.750000 +v -1.299038 -0.249999 8.750000 +v -1.366025 -0.500000 8.750000 +v -1.299038 -0.750000 11.250000 +v -1.116026 -0.933012 11.250000 +v -0.866025 -1.000000 11.250000 +v -0.616026 -0.933012 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.366026 -0.500000 11.250000 +v -0.433013 -0.250000 11.250000 +v -0.616025 -0.066987 11.250000 +v -0.866025 0.000000 11.250000 +v -1.116025 -0.066987 11.250000 +v -1.299038 -0.249999 11.250000 +v -1.366025 -0.500000 11.250000 +v -1.244912 -0.718750 11.500000 +v -1.084776 -0.878886 11.500000 +v -0.866026 -0.937500 11.500000 +v -0.647276 -0.878886 11.500000 +v -0.487140 -0.718750 11.500000 +v -0.428526 -0.500000 11.500000 +v -0.487140 -0.281250 11.500000 +v -0.647276 -0.121114 11.500000 +v -0.866026 -0.062500 11.500000 +v -1.084775 -0.121113 11.500000 +v -1.244912 -0.281250 11.500000 +v -1.303526 -0.500000 11.500000 +v -1.244912 -0.718750 12.000000 +v -1.084776 -0.878886 12.000000 +v -0.866026 -0.937500 12.000000 +v -0.647276 -0.878886 12.000000 +v -0.487140 -0.718750 12.000000 +v -0.428526 -0.500000 12.000000 +v -0.487140 -0.281250 12.000000 +v -0.647276 -0.121114 12.000000 +v -0.866026 -0.062500 12.000000 +v -1.084775 -0.121113 12.000000 +v -1.244912 -0.281250 12.000000 +v -1.303526 -0.500000 12.000000 +v -1.136659 -0.656250 12.000000 +v -1.022276 -0.770633 12.000000 +v -0.866026 -0.812500 12.000000 +v -0.709776 -0.770633 12.000000 +v -0.595393 -0.656250 12.000000 +v -0.553526 -0.500000 12.000000 +v -0.595393 -0.343750 12.000000 +v -0.709775 -0.229367 12.000000 +v -0.866026 -0.187500 12.000000 +v -1.022276 -0.229367 12.000000 +v -1.136659 -0.343750 12.000000 +v -1.178526 -0.500000 12.000000 +v -1.136659 -0.656250 11.500000 +v -1.022276 -0.770633 11.500000 +v -0.866026 -0.812500 11.500000 +v -0.709776 -0.770633 11.500000 +v -0.595393 -0.656250 11.500000 +v -0.553526 -0.500000 11.500000 +v -0.595393 -0.343750 11.500000 +v -0.709775 -0.229367 11.500000 +v -0.866026 -0.187500 11.500000 +v -1.022276 -0.229367 11.500000 +v -1.136659 -0.343750 11.500000 +v -1.178526 -0.500000 11.500000 +v 1.244911 -0.718750 -2.000000 +v 1.303525 -0.500000 -2.000000 +v 1.244911 -0.281250 -2.000000 +v 1.084775 -0.121114 -2.000000 +v 0.866025 -0.062500 -2.000000 +v 0.647275 -0.121114 -2.000000 +v 0.487139 -0.281250 -2.000000 +v 0.428525 -0.500000 -2.000000 +v 0.487139 -0.718750 -2.000000 +v 0.647275 -0.878886 -2.000000 +v 0.866025 -0.937500 -2.000000 +v 1.084775 -0.878886 -2.000000 +v 1.244911 -0.718750 2.000000 +v 1.303525 -0.500000 2.000000 +v 1.244911 -0.281250 2.000000 +v 1.084775 -0.121114 2.000000 +v 0.866025 -0.062500 2.000000 +v 0.647275 -0.121114 2.000000 +v 0.487139 -0.281250 2.000000 +v 0.428525 -0.500000 2.000000 +v 0.487139 -0.718750 2.000000 +v 0.647275 -0.878886 2.000000 +v 0.866025 -0.937500 2.000000 +v 1.084775 -0.878886 2.000000 +v 1.299038 -0.750000 2.250000 +v 1.366025 -0.500000 2.250000 +v 1.299038 -0.250000 2.250000 +v 1.116025 -0.066987 2.250000 +v 0.866025 0.000000 2.250000 +v 0.616025 -0.066987 2.250000 +v 0.433012 -0.250000 2.250000 +v 0.366025 -0.500000 2.250000 +v 0.433012 -0.750000 2.250000 +v 0.616025 -0.933013 2.250000 +v 0.866024 -1.000000 2.250000 +v 1.116025 -0.933013 2.250000 +v 1.299038 -0.750000 3.250000 +v 1.366025 -0.500000 3.250000 +v 1.299038 -0.250000 3.250000 +v 1.116025 -0.066987 3.250000 +v 0.866025 0.000000 3.250000 +v 0.616025 -0.066987 3.250000 +v 0.433012 -0.250000 3.250000 +v 0.366025 -0.500000 3.250000 +v 0.433012 -0.750000 3.250000 +v 0.616025 -0.933013 3.250000 +v 0.866024 -1.000000 3.250000 +v 1.116025 -0.933013 3.250000 +v 1.244911 -0.718750 3.500000 +v 1.303525 -0.500000 3.500000 +v 1.244911 -0.281250 3.500000 +v 1.084775 -0.121114 3.500000 +v 0.866025 -0.062500 3.500000 +v 0.647275 -0.121114 3.500000 +v 0.487139 -0.281250 3.500000 +v 0.428525 -0.500000 3.500000 +v 0.487139 -0.718750 3.500000 +v 0.647275 -0.878886 3.500000 +v 0.866025 -0.937500 3.500000 +v 1.084775 -0.878886 3.500000 +v 1.244911 -0.718750 8.500000 +v 1.303525 -0.500000 8.500000 +v 1.244911 -0.281250 8.500000 +v 1.084775 -0.121114 8.500000 +v 0.866025 -0.062500 8.500000 +v 0.647275 -0.121114 8.500000 +v 0.487139 -0.281250 8.500000 +v 0.428525 -0.500000 8.500000 +v 0.487139 -0.718750 8.500000 +v 0.647275 -0.878886 8.500000 +v 0.866025 -0.937500 8.500000 +v 1.084775 -0.878886 8.500000 +v 1.299038 -0.750000 8.750000 +v 1.366025 -0.500000 8.750000 +v 1.299038 -0.250000 8.750000 +v 1.116025 -0.066987 8.750000 +v 0.866025 0.000000 8.750000 +v 0.616025 -0.066987 8.750000 +v 0.433012 -0.250000 8.750000 +v 0.366025 -0.500000 8.750000 +v 0.433012 -0.750000 8.750000 +v 0.616025 -0.933013 8.750000 +v 0.866024 -1.000000 8.750000 +v 1.116025 -0.933013 8.750000 +v 1.299038 -0.750000 11.250000 +v 1.366025 -0.500000 11.250000 +v 1.299038 -0.250000 11.250000 +v 1.116025 -0.066987 11.250000 +v 0.866025 0.000000 11.250000 +v 0.616025 -0.066987 11.250000 +v 0.433012 -0.250000 11.250000 +v 0.366025 -0.500000 11.250000 +v 0.433012 -0.750000 11.250000 +v 0.616025 -0.933013 11.250000 +v 0.866024 -1.000000 11.250000 +v 1.116025 -0.933013 11.250000 +v 1.244911 -0.718750 11.500000 +v 1.303525 -0.500000 11.500000 +v 1.244911 -0.281250 11.500000 +v 1.084775 -0.121114 11.500000 +v 0.866025 -0.062500 11.500000 +v 0.647275 -0.121114 11.500000 +v 0.487139 -0.281250 11.500000 +v 0.428525 -0.500000 11.500000 +v 0.487139 -0.718750 11.500000 +v 0.647275 -0.878886 11.500000 +v 0.866025 -0.937500 11.500000 +v 1.084775 -0.878886 11.500000 +v 1.244911 -0.718750 12.000000 +v 1.303525 -0.500000 12.000000 +v 1.244911 -0.281250 12.000000 +v 1.084775 -0.121114 12.000000 +v 0.866025 -0.062500 12.000000 +v 0.647275 -0.121114 12.000000 +v 0.487139 -0.281250 12.000000 +v 0.428525 -0.500000 12.000000 +v 0.487139 -0.718750 12.000000 +v 0.647275 -0.878886 12.000000 +v 0.866025 -0.937500 12.000000 +v 1.084775 -0.878886 12.000000 +v 1.136658 -0.656250 12.000000 +v 1.178525 -0.500000 12.000000 +v 1.136658 -0.343750 12.000000 +v 1.022275 -0.229367 12.000000 +v 0.866025 -0.187500 12.000000 +v 0.709775 -0.229367 12.000000 +v 0.595392 -0.343750 12.000000 +v 0.553525 -0.500000 12.000000 +v 0.595392 -0.656250 12.000000 +v 0.709775 -0.770633 12.000000 +v 0.866025 -0.812500 12.000000 +v 1.022275 -0.770633 12.000000 +v 1.136658 -0.656250 11.500000 +v 1.178525 -0.500000 11.500000 +v 1.136658 -0.343750 11.500000 +v 1.022275 -0.229367 11.500000 +v 0.866025 -0.187500 11.500000 +v 0.709775 -0.229367 11.500000 +v 0.595392 -0.343750 11.500000 +v 0.553525 -0.500000 11.500000 +v 0.595392 -0.656250 11.500000 +v 0.709775 -0.770633 11.500000 +v 0.866025 -0.812500 11.500000 +v 1.022275 -0.770633 11.500000 +v -1.244911 0.718750 -2.000000 +v -1.303525 0.500000 -2.000000 +v -1.244912 0.281250 -2.000000 +v -1.084775 0.121114 -2.000000 +v -0.866026 0.062500 -2.000000 +v -0.647275 0.121114 -2.000000 +v -0.487139 0.281250 -2.000000 +v -0.428525 0.500000 -2.000000 +v -0.487139 0.718750 -2.000000 +v -0.647275 0.878886 -2.000000 +v -0.866025 0.937500 -2.000000 +v -1.084775 0.878886 -2.000000 +v -1.244911 0.718750 2.000000 +v -1.303525 0.500000 2.000000 +v -1.244912 0.281250 2.000000 +v -1.084775 0.121114 2.000000 +v -0.866026 0.062500 2.000000 +v -0.647275 0.121114 2.000000 +v -0.487139 0.281250 2.000000 +v -0.428525 0.500000 2.000000 +v -0.487139 0.718750 2.000000 +v -0.647275 0.878886 2.000000 +v -0.866025 0.937500 2.000000 +v -1.084775 0.878886 2.000000 +v -1.299038 0.750000 2.250000 +v -1.366025 0.500000 2.250000 +v -1.299038 0.250000 2.250000 +v -1.116025 0.066988 2.250000 +v -0.866025 -0.000000 2.250000 +v -0.616025 0.066988 2.250000 +v -0.433013 0.250000 2.250000 +v -0.366025 0.500000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.616025 0.933013 2.250000 +v -0.866025 1.000000 2.250000 +v -1.116025 0.933013 2.250000 +v -1.299038 0.750000 3.250000 +v -1.366025 0.500000 3.250000 +v -1.299038 0.250000 3.250000 +v -1.116025 0.066988 3.250000 +v -0.866025 -0.000000 3.250000 +v -0.616025 0.066988 3.250000 +v -0.433013 0.250000 3.250000 +v -0.366025 0.500000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.616025 0.933013 3.250000 +v -0.866025 1.000000 3.250000 +v -1.116025 0.933013 3.250000 +v -1.244911 0.718750 3.500000 +v -1.303525 0.500000 3.500000 +v -1.244912 0.281250 3.500000 +v -1.084775 0.121114 3.500000 +v -0.866026 0.062500 3.500000 +v -0.647275 0.121114 3.500000 +v -0.487139 0.281250 3.500000 +v -0.428525 0.500000 3.500000 +v -0.487139 0.718750 3.500000 +v -0.647275 0.878886 3.500000 +v -0.866025 0.937500 3.500000 +v -1.084775 0.878886 3.500000 +v -1.244911 0.718750 8.500000 +v -1.303525 0.500000 8.500000 +v -1.244912 0.281250 8.500000 +v -1.084775 0.121114 8.500000 +v -0.866026 0.062500 8.500000 +v -0.647275 0.121114 8.500000 +v -0.487139 0.281250 8.500000 +v -0.428525 0.500000 8.500000 +v -0.487139 0.718750 8.500000 +v -0.647275 0.878886 8.500000 +v -0.866025 0.937500 8.500000 +v -1.084775 0.878886 8.500000 +v -1.299038 0.750000 8.750000 +v -1.366025 0.500000 8.750000 +v -1.299038 0.250000 8.750000 +v -1.116025 0.066988 8.750000 +v -0.866025 -0.000000 8.750000 +v -0.616025 0.066988 8.750000 +v -0.433013 0.250000 8.750000 +v -0.366025 0.500000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.616025 0.933013 8.750000 +v -0.866025 1.000000 8.750000 +v -1.116025 0.933013 8.750000 +v -1.299038 0.750000 11.250000 +v -1.366025 0.500000 11.250000 +v -1.299038 0.250000 11.250000 +v -1.116025 0.066988 11.250000 +v -0.866025 -0.000000 11.250000 +v -0.616025 0.066988 11.250000 +v -0.433013 0.250000 11.250000 +v -0.366025 0.500000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.616025 0.933013 11.250000 +v -0.866025 1.000000 11.250000 +v -1.116025 0.933013 11.250000 +v -1.244911 0.718750 11.500000 +v -1.303525 0.500000 11.500000 +v -1.244912 0.281250 11.500000 +v -1.084775 0.121114 11.500000 +v -0.866026 0.062500 11.500000 +v -0.647275 0.121114 11.500000 +v -0.487139 0.281250 11.500000 +v -0.428525 0.500000 11.500000 +v -0.487139 0.718750 11.500000 +v -0.647275 0.878886 11.500000 +v -0.866025 0.937500 11.500000 +v -1.084775 0.878886 11.500000 +v -1.244911 0.718750 12.000000 +v -1.303525 0.500000 12.000000 +v -1.244912 0.281250 12.000000 +v -1.084775 0.121114 12.000000 +v -0.866026 0.062500 12.000000 +v -0.647275 0.121114 12.000000 +v -0.487139 0.281250 12.000000 +v -0.428525 0.500000 12.000000 +v -0.487139 0.718750 12.000000 +v -0.647275 0.878886 12.000000 +v -0.866025 0.937500 12.000000 +v -1.084775 0.878886 12.000000 +v -1.136658 0.656250 12.000000 +v -1.178525 0.500000 12.000000 +v -1.136659 0.343750 12.000000 +v -1.022275 0.229367 12.000000 +v -0.866025 0.187500 12.000000 +v -0.709775 0.229367 12.000000 +v -0.595392 0.343750 12.000000 +v -0.553525 0.500000 12.000000 +v -0.595393 0.656250 12.000000 +v -0.709775 0.770633 12.000000 +v -0.866025 0.812500 12.000000 +v -1.022275 0.770633 12.000000 +v -1.136658 0.656250 11.500000 +v -1.178525 0.500000 11.500000 +v -1.136659 0.343750 11.500000 +v -1.022275 0.229367 11.500000 +v -0.866025 0.187500 11.500000 +v -0.709775 0.229367 11.500000 +v -0.595392 0.343750 11.500000 +v -0.553525 0.500000 11.500000 +v -0.595393 0.656250 11.500000 +v -0.709775 0.770633 11.500000 +v -0.866025 0.812500 11.500000 +v -1.022275 0.770633 11.500000 +vt 0.205104 0.294129 +vt 0.205104 0.205871 +vt 0.242265 0.205871 +vt 0.592105 0.390625 +vt 0.532895 0.359375 +vt 0.532895 0.265625 +vt 0.125000 0.781250 +vt 0.171053 0.812500 +vt 0.125000 0.812500 +vt 0.414474 0.148438 +vt 0.473684 0.242188 +vt 0.414474 0.242188 +vt 0.592105 -0.000000 +vt 0.651316 0.031250 +vt 0.651316 0.125000 +vt 0.710526 0.148438 +vt 0.769737 0.242188 +vt 0.710526 0.242188 +vt 0.651316 0.218750 +vt 0.532895 0.171875 +vt 0.651316 0.171875 +vt 0.651316 0.265625 +vt 0.184211 0.812500 +vt 0.171053 0.812500 +vt 0.184211 0.781250 +vt 0.532895 0.125000 +vt 0.264746 0.027479 +vt 0.276304 0.093750 +vt 0.236842 0.187471 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.689948 0.292980 +vt 0.726974 0.242210 +vt 0.764000 0.394520 +vt 0.689948 0.496105 +vt 0.726974 0.445335 +vt 0.764000 0.496105 +vt 0.496711 0.640625 +vt 0.509868 0.546875 +vt 0.496711 0.500000 +vt 0.608553 0.437500 +vt 0.628289 0.390625 +vt 0.628289 0.437500 +vt 0.569079 0.437500 +vt 0.608553 0.390625 +vt 0.509868 0.546875 +vt 0.496711 0.640625 +vt 0.496711 0.500000 +vt 0.608553 0.546875 +vt 0.588816 0.640625 +vt 0.588816 0.546875 +vt 0.509868 0.687500 +vt 0.496711 0.687500 +vt 0.509868 0.640625 +vt 0.529605 0.546875 +vt 0.529605 0.640625 +vt 0.588816 0.687500 +vt 0.575658 0.640625 +vt 0.555921 0.640625 +vt 0.575658 0.546875 +vt 0.575658 0.640625 +vt 0.509868 0.687500 +vt 0.509868 0.640625 +vt 0.476974 0.640625 +vt 0.476974 0.500000 +vt 0.575658 0.640625 +vt 0.588816 0.546875 +vt 0.575658 0.546875 +vt 0.569079 0.437500 +vt 0.401316 0.218750 +vt 0.322368 0.156250 +vt 0.401316 0.156250 +vt 0.414474 0.218750 +vt 0.401316 0.250000 +vt 0.296053 0.250000 +vt 0.309211 0.265625 +vt 0.309211 0.328125 +vt 0.401316 0.109375 +vt 0.309211 0.218750 +vt 0.322368 0.250000 +vt 0.309211 0.250000 +vt 0.401316 0.500000 +vt 0.414474 0.390625 +vt 0.414474 0.500000 +vt 0.322368 0.218750 +vt 0.309211 0.156250 +vt 0.414474 0.328125 +vt 0.414474 0.265625 +vt 0.427632 0.250000 +vt 0.322368 0.109375 +vt 0.322368 0.359375 +vt 0.322368 0.500000 +vt 0.309211 0.390625 +vt 0.322368 0.390625 +vt 0.401316 0.359375 +vt 0.401316 0.390625 +vt 0.414474 0.359375 +vt 0.322368 -0.000000 +vt 0.309211 0.031250 +vt 0.414474 0.156250 +vt 0.414474 0.109375 +vt 0.019737 0.753906 +vt 0.046053 0.789062 +vt 0.019737 0.800781 +vt 0.125000 0.800781 +vt 0.105263 0.753906 +vt 0.125000 0.753906 +vt 0.000000 0.753906 +vt -0.000000 0.800781 +vt 0.111842 0.687500 +vt 0.019737 0.734375 +vt 0.013158 0.687500 +vt 0.013158 0.867188 +vt 0.105263 0.820312 +vt 0.111842 0.867188 +vt 0.046053 0.769531 +vt 0.078947 0.789062 +vt 0.105263 0.734375 +vt 0.019737 0.820312 +vt 0.105263 0.800781 +vt 0.078947 0.765625 +vt 0.078947 0.789062 +vt 0.105263 0.753906 +vt 0.105263 0.800781 +vt 0.019737 0.753906 +vt -0.000000 0.800781 +vt 0.000000 0.753906 +vt 0.125000 0.753906 +vt 0.125000 0.800781 +vt 0.105263 0.734375 +vt 0.013158 0.687500 +vt 0.111842 0.687500 +vt 0.019737 0.820312 +vt 0.111842 0.867188 +vt 0.013158 0.867188 +vt 0.046053 0.789062 +vt 0.078947 0.765625 +vt 0.046053 0.769531 +vt 0.019737 0.734375 +vt 0.105263 0.820312 +vt 0.019737 0.800781 +vt 0.946511 0.187500 +vt 0.939054 0.230254 +vt 0.903051 0.144746 +vt 0.858679 0.131639 +vt 0.891942 0.164362 +vt 0.878164 0.243361 +vt 0.939054 0.105254 +vt 0.903051 0.105254 +vt 0.903051 0.019746 +vt 0.858679 0.006639 +vt 0.891941 0.039361 +vt 0.878164 0.118361 +vt 0.164474 0.906250 +vt 0.125000 0.843750 +vt 0.164474 0.843750 +vt 0.125000 0.906250 +vt 0.111842 0.843750 +vt 0.125000 0.937500 +vt 0.164474 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.812500 +vt 0.164474 0.937500 +vt 0.184211 0.859375 +vt 0.250000 0.828125 +vt 0.263158 0.828125 +vt 0.250000 0.859375 +vt 0.269737 0.937500 +vt 0.309211 1.000000 +vt 0.269737 1.000000 +vt 0.184211 0.921875 +vt 0.250000 0.984375 +vt 0.184211 0.984375 +vt 0.250000 0.890625 +vt 0.184211 0.890625 +vt 0.250000 0.921875 +vt 0.269737 0.843750 +vt 0.309211 0.906250 +vt 0.296053 0.843750 +vt 0.309211 0.843750 +vt 0.269737 0.812500 +vt 0.296053 0.906250 +vt 0.309211 0.937500 +vt 0.269737 0.906250 +vt 0.671053 0.148438 +vt 0.493421 0.750000 +vt 0.414474 0.812500 +vt 0.414474 0.750000 +vt 0.519737 0.812500 +vt 0.519737 0.750000 +vt 0.388158 0.750000 +vt 0.388158 0.812500 +vt 0.414474 0.875000 +vt 0.493421 0.812500 +vt 0.519737 0.875000 +vt 0.414474 0.687500 +vt 0.171053 0.750000 +vt 0.125000 0.718750 +vt 0.171053 0.718750 +vt 0.125000 0.687500 +vt 0.171053 0.687500 +vt 0.171053 0.781250 +vt 0.125000 0.750000 +vt 0.342105 0.781250 +vt 0.328947 0.750000 +vt 0.342105 0.750000 +vt 0.171053 0.718750 +vt 0.184211 0.718750 +vt 0.184211 0.750000 +vt 0.210526 0.812500 +vt 0.230263 0.390625 +vt 0.243421 0.468750 +vt 0.230263 0.468750 +vt 0.223684 0.781250 +vt 0.210526 0.781250 +vt 0.223684 0.750000 +vt 0.184211 0.687500 +vt 0.210526 0.718750 +vt 0.210526 0.781250 +vt 0.210526 0.750000 +vt 0.388158 0.750000 +vt 0.342105 0.718750 +vt 0.388158 0.718750 +vt 0.328947 0.718750 +vt 0.342105 0.718750 +vt 0.388158 0.812500 +vt 0.342105 0.812500 +vt 0.342105 0.687500 +vt 0.388158 0.781250 +vt 0.342105 0.812500 +vt 0.328947 0.812500 +vt 0.328947 0.781250 +vt 0.302632 0.718750 +vt 0.309211 0.468750 +vt 0.296053 0.390625 +vt 0.309211 0.390625 +vt 0.296053 0.359375 +vt 0.243421 0.390625 +vt 0.243421 0.359375 +vt 0.302632 0.687500 +vt 0.328947 0.687500 +vt 0.302632 0.750000 +vt 0.302632 0.781250 +vt 0.289474 0.718750 +vt 0.296053 0.468750 +vt 0.289474 0.687500 +vt 0.302632 0.687500 +vt 0.289474 0.781250 +vt 0.223684 0.812500 +vt 0.210526 0.687500 +vt 0.223684 0.687500 +vt 0.223684 0.718750 +vt 0.302632 0.781250 +vt 0.289474 0.750000 +vt 0.243421 0.500000 +vt 0.296053 0.500000 +vt 0.618421 0.687500 +vt 0.684211 0.875000 +vt 0.618421 0.875000 +vt 0.736842 0.875000 +vt 0.802632 0.687500 +vt 0.802632 0.875000 +vt 0.684211 0.562500 +vt 0.684211 0.687500 +vt 0.618421 1.000000 +vt 0.565789 0.687500 +vt 0.835526 0.531250 +vt 0.825658 0.562500 +vt 0.825658 0.531250 +vt 0.868421 0.531250 +vt 0.858553 0.562500 +vt 0.858553 0.531250 +vt 0.835526 0.562500 +vt 0.802632 0.562500 +vt 0.802632 0.531250 +vt 0.835526 0.640625 +vt 0.825658 0.578125 +vt 0.802632 0.625000 +vt 0.802632 0.578125 +vt 0.858553 0.640625 +vt 0.835526 0.773438 +vt 0.825658 0.640625 +vt 0.802632 0.773438 +vt 0.802632 0.640625 +vt 0.825658 0.789062 +vt 0.802632 0.835938 +vt 0.802632 0.789062 +vt 0.858553 0.773438 +vt 0.835526 0.851562 +vt 0.868421 0.625000 +vt 0.868421 0.578125 +vt 0.868421 0.640625 +vt 0.858553 0.851562 +vt 0.868421 0.789062 +vt 0.868421 0.835938 +vt 0.825658 0.625000 +vt 0.825658 0.773438 +vt 0.825658 0.835938 +vt 0.684211 0.890625 +vt 0.723684 0.875000 +vt 0.723684 0.890625 +vt 0.723684 0.921875 +vt 0.684211 0.937500 +vt 0.684211 0.921875 +vt 0.799894 0.379950 +vt 0.824715 0.321000 +vt 0.859817 0.321000 +vt 0.859817 0.430375 +vt 0.874696 0.453987 +vt 0.888129 0.531009 +vt 0.513158 0.242188 +vt 0.473684 0.148438 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.076772 0.572282 +vt 0.090991 0.572282 +vt 0.083882 0.601529 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.242265 0.294129 +vt 0.233740 0.307657 +vt 0.223684 0.312408 +vt 0.213628 0.307658 +vt 0.199407 0.273883 +vt 0.197407 0.250000 +vt 0.199407 0.226117 +vt 0.213628 0.192342 +vt 0.223684 0.187592 +vt 0.233740 0.192343 +vt 0.247961 0.226117 +vt 0.249961 0.250000 +vt 0.247961 0.273883 +vt 0.651316 0.359375 +vt 0.532895 0.031250 +vt 0.769737 0.148438 +vt 0.532895 0.218750 +vt 0.221741 0.180337 +vt 0.208939 0.160021 +vt 0.200384 0.129615 +vt 0.197381 0.093750 +vt 0.200384 0.057884 +vt 0.208939 0.027479 +vt 0.221741 0.007163 +vt 0.236842 0.000029 +vt 0.251943 0.007163 +vt 0.273300 0.057885 +vt 0.273300 0.129616 +vt 0.264746 0.160021 +vt 0.251943 0.180337 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.748351 0.431686 +vt 0.726974 0.445290 +vt 0.705597 0.431686 +vt 0.689948 0.394520 +vt 0.684220 0.343750 +vt 0.705597 0.255814 +vt 0.748351 0.255814 +vt 0.764000 0.292980 +vt 0.769728 0.343750 +vt 0.726974 0.648415 +vt 0.705597 0.634811 +vt 0.689948 0.597645 +vt 0.684220 0.546875 +vt 0.705597 0.458939 +vt 0.748351 0.458939 +vt 0.769728 0.546875 +vt 0.764000 0.597645 +vt 0.748351 0.634811 +vt 0.509868 0.640625 +vt 0.569079 0.390625 +vt 0.608553 0.640625 +vt 0.575658 0.687500 +vt 0.555921 0.546875 +vt 0.575658 0.687500 +vt 0.588816 0.640625 +vt 0.608553 0.500000 +vt 0.608553 0.500000 +vt 0.414474 0.250000 +vt 0.296053 0.359375 +vt 0.250000 0.359375 +vt 0.250000 0.296875 +vt 0.269737 0.250000 +vt 0.453947 0.250000 +vt 0.427632 0.359375 +vt 0.473684 0.296875 +vt 0.473684 0.359375 +vt 0.309211 0.109375 +vt 0.309211 0.500000 +vt 0.309211 0.359375 +vt 0.401316 -0.000000 +vt 0.414474 0.031250 +vt 0.414474 0.093750 +vt 0.309211 0.093750 +vt 0.930795 0.243361 +vt 0.921053 0.247964 +vt 0.911310 0.243361 +vt 0.903051 0.230254 +vt 0.897532 0.210638 +vt 0.895594 0.187500 +vt 0.897532 0.164362 +vt 0.911310 0.131639 +vt 0.921053 0.127036 +vt 0.930795 0.131639 +vt 0.939054 0.144746 +vt 0.944573 0.164362 +vt 0.944573 0.210638 +vt 0.868421 0.247964 +vt 0.844901 0.210638 +vt 0.858679 0.243361 +vt 0.850419 0.230254 +vt 0.842963 0.187500 +vt 0.844901 0.164362 +vt 0.850419 0.144746 +vt 0.868421 0.127036 +vt 0.878164 0.131639 +vt 0.886423 0.144746 +vt 0.893879 0.187500 +vt 0.891942 0.210638 +vt 0.886423 0.230254 +vt 0.930795 0.118361 +vt 0.921053 0.122964 +vt 0.911310 0.118361 +vt 0.897532 0.085639 +vt 0.895594 0.062500 +vt 0.897532 0.039362 +vt 0.911310 0.006639 +vt 0.921053 0.002036 +vt 0.930795 0.006639 +vt 0.939054 0.019746 +vt 0.944573 0.039362 +vt 0.946511 0.062500 +vt 0.944573 0.085638 +vt 0.868421 0.122964 +vt 0.858679 0.118361 +vt 0.850419 0.105254 +vt 0.844901 0.085638 +vt 0.842963 0.062500 +vt 0.844901 0.039362 +vt 0.850419 0.019746 +vt 0.868421 0.002036 +vt 0.878164 0.006639 +vt 0.886423 0.019746 +vt 0.893879 0.062500 +vt 0.891941 0.085638 +vt 0.886423 0.105254 +vt 0.111842 0.906250 +vt 0.164474 0.812500 +vt 0.184211 0.828125 +vt 0.171053 0.828125 +vt 0.171053 0.921875 +vt 0.263158 0.921875 +vt 0.309211 0.812500 +vt 0.671053 0.242188 +vt 0.519737 0.687500 +vt 0.210526 0.687500 +vt 0.388158 0.687500 +vt 0.302632 0.812500 +vt 0.289474 0.812500 +vt 0.736842 0.687500 +vt 0.618421 0.562500 +vt 0.684211 1.000000 +vt 0.565789 0.875000 +vt 0.868421 0.562500 +vt 0.868421 0.773438 +vt 0.684211 0.875000 +vt 0.723684 0.937500 +vt 0.888129 0.421634 +vt 0.796403 0.421634 +vt 0.809836 0.344612 +vt 0.842266 0.312709 +vt 0.874696 0.344612 +vt 0.884638 0.379950 +vt 0.884638 0.489325 +vt 0.796403 0.531009 +vt 0.799894 0.489325 +vt 0.809836 0.453987 +vt 0.824715 0.430375 +vt 0.842266 0.422084 +vt 0.513158 0.148438 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.092091 0.582031 +vt 0.090991 0.591780 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.605469 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.078947 0.175781 +vt -0.000000 0.210938 +vt -0.000000 0.175781 +vt 0.078947 0.492188 +vt 0.000000 0.527344 +vt 0.000000 0.492188 +vt 0.078947 0.210938 +vt -0.000000 0.246094 +vt 0.078947 0.527344 +vt 0.000000 0.562500 +vt 0.078947 0.281250 +vt -0.000000 0.316406 +vt -0.000000 0.281250 +vt 0.078947 0.246094 +vt 0.078947 0.000000 +vt 0.000000 0.035156 +vt 0.000000 0.000000 +vt 0.078947 0.316406 +vt -0.000000 0.351562 +vt 0.078947 0.035156 +vt 0.000000 0.070312 +vt 0.078947 0.351562 +vt -0.000000 0.386719 +vt 0.078947 0.070312 +vt 0.000000 0.105469 +vt 0.078947 0.386719 +vt 0.000000 0.421875 +vt 0.078947 0.105469 +vt -0.000000 0.140625 +vt 0.078947 0.421875 +vt 0.000000 0.457031 +vt 0.078947 0.140625 +vt 0.078947 0.457031 +vt 0.092105 0.210938 +vt 0.092105 0.246094 +vt 0.092105 0.281250 +vt 0.092105 0.316406 +vt 0.092105 0.351562 +vt 0.092105 0.417969 +vt 0.092105 0.421875 +vt 0.092105 0.488281 +vt 0.092105 0.492188 +vt 0.092105 0.527344 +vt 0.078947 0.562500 +vt 0.092105 0.000000 +vt 0.092105 0.066406 +vt 0.092105 0.101562 +vt 0.092105 0.105469 +vt 0.092105 0.140625 +vt 0.092105 0.175781 +vt 0.092105 0.312500 +vt 0.184211 0.343750 +vt 0.092105 0.343750 +vt 0.092105 0.062500 +vt 0.184211 0.093750 +vt 0.092105 0.093750 +vt 0.184211 0.375000 +vt 0.092105 0.375000 +vt 0.184211 0.125000 +vt 0.092105 0.125000 +vt 0.184211 0.406250 +vt 0.092105 0.406250 +vt 0.184211 0.156250 +vt 0.092105 0.156250 +vt 0.184211 0.437500 +vt 0.092105 0.437500 +vt 0.184211 0.187500 +vt 0.092105 0.187500 +vt 0.184211 0.468750 +vt 0.092105 0.468750 +vt 0.184211 0.218750 +vt 0.092105 0.218750 +vt 0.184211 0.500000 +vt 0.092105 0.500000 +vt 0.092105 0.250000 +vt 0.184211 0.281250 +vt 0.092105 0.281250 +vt 0.184211 0.250000 +vt 0.184211 0.031250 +vt 0.092105 0.031250 +vt 0.184211 0.312500 +vt 0.184211 0.062500 +vt 0.197368 0.183594 +vt 0.197368 0.191406 +vt 0.197368 0.222656 +vt 0.197368 0.253906 +vt 0.197368 0.285156 +vt 0.197368 0.339844 +vt 0.197368 0.371094 +vt 0.197368 0.378906 +vt 0.197368 0.410156 +vt 0.197368 0.464844 +vt 0.197368 0.496094 +vt 0.184211 0.000000 +vt 0.197368 0.027344 +vt 0.197368 0.058594 +vt 0.197368 0.066406 +vt 0.197368 0.121094 +vt 0.197368 0.128906 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.656250 +vt 0.194079 0.640625 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.769737 0.218750 +vt 0.796053 0.164062 +vt 0.796053 0.218750 +vt 0.769737 0.492188 +vt 0.796053 0.437500 +vt 0.796053 0.492188 +vt 0.769737 0.656250 +vt 0.796053 0.601562 +vt 0.796053 0.656250 +vt 0.769737 0.164062 +vt 0.796053 0.109375 +vt 0.769737 0.437500 +vt 0.796053 0.382812 +vt 0.769737 0.328125 +vt 0.796053 0.273438 +vt 0.796053 0.328125 +vt 0.769737 0.601562 +vt 0.796053 0.546875 +vt 0.769737 0.109375 +vt 0.796053 0.054688 +vt 0.769737 0.382812 +vt 0.769737 0.273438 +vt 0.769737 0.546875 +vt 0.769737 0.054688 +vt 0.796053 -0.000000 +vt 0.480263 0.406250 +vt 0.414474 0.421875 +vt 0.414474 0.406250 +vt 0.480263 0.375000 +vt 0.414474 0.390625 +vt 0.414474 0.375000 +vt 0.480263 0.468750 +vt 0.414474 0.484375 +vt 0.414474 0.468750 +vt 0.480263 0.437500 +vt 0.414474 0.453125 +vt 0.414474 0.437500 +vt 0.480263 0.421875 +vt 0.480263 0.390625 +vt 0.480263 0.484375 +vt 0.414474 0.500000 +vt 0.480263 0.453125 +vt 1.000000 0.187500 +vt 0.973684 0.210938 +vt 0.973684 0.187500 +vt 1.000000 0.210938 +vt 0.973684 0.234375 +vt 1.000000 0.234375 +vt 0.973684 0.257812 +vt 1.000000 0.257812 +vt 0.973684 0.281250 +vt 1.000000 0.281250 +vt 0.973684 0.304688 +vt 1.000000 0.304688 +vt 0.973684 0.328125 +vt 1.000000 0.328125 +vt 0.973684 0.351562 +vt 1.000000 0.351562 +vt 0.973684 0.375000 +vt 1.000000 -0.000000 +vt 0.973684 0.023438 +vt 0.973684 -0.000000 +vt 1.000000 0.023438 +vt 0.973684 0.046875 +vt 1.000000 0.046875 +vt 0.973684 0.070312 +vt 1.000000 0.070312 +vt 0.973684 0.093750 +vt 1.000000 0.093750 +vt 0.973684 0.117188 +vt 1.000000 0.117188 +vt 0.973684 0.140625 +vt 1.000000 0.140625 +vt 0.973684 0.164062 +vt 1.000000 0.164062 +vt 0.973684 0.187500 +vt 0.947368 0.210938 +vt 0.947368 0.187500 +vt 0.973684 0.210938 +vt 0.947368 0.234375 +vt 0.973684 0.234375 +vt 0.947368 0.257812 +vt 0.973684 0.257812 +vt 0.947368 0.281250 +vt 0.973684 0.281250 +vt 0.947368 0.304688 +vt 0.973684 0.304688 +vt 0.947368 0.328125 +vt 0.973684 0.328125 +vt 0.947368 0.351562 +vt 0.973684 0.351562 +vt 0.947368 0.375000 +vt 0.973684 0.000000 +vt 0.947368 0.023438 +vt 0.947368 0.000000 +vt 0.973684 0.023438 +vt 0.947368 0.046875 +vt 0.973684 0.070312 +vt 0.947368 0.070312 +vt 0.947368 0.093750 +vt 0.973684 0.093750 +vt 0.947368 0.117188 +vt 0.973684 0.117188 +vt 0.947368 0.140625 +vt 0.973684 0.140625 +vt 0.947368 0.164062 +vt 0.973684 0.164062 +vt 0.375000 0.843750 +vt 0.309211 0.828125 +vt 0.375000 0.828125 +vt 0.375000 0.937500 +vt 0.309211 0.921875 +vt 0.375000 0.921875 +vt 0.375000 0.906250 +vt 0.309211 0.890625 +vt 0.375000 0.890625 +vt 0.375000 0.875000 +vt 0.309211 0.859375 +vt 0.375000 0.859375 +vt 0.309211 0.812500 +vt 0.375000 0.812500 +vt 0.309211 0.906250 +vt 0.309211 0.875000 +vt 0.309211 0.843750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.842105 -0.000000 +vt 0.796053 0.039062 +vt 0.796053 0.000000 +vt 0.842105 0.039062 +vt 0.796053 0.078125 +vt 0.842105 0.078125 +vt 0.796053 0.117188 +vt 0.842105 0.117188 +vt 0.796053 0.156250 +vt 0.842105 0.156250 +vt 0.796053 0.195312 +vt 0.842105 0.195312 +vt 0.796053 0.234375 +vt 0.842105 0.234375 +vt 0.796053 0.273438 +vt 0.842105 0.273438 +vt 0.796053 0.312500 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.625000 +vt 0.121711 0.609375 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.640625 +vt 0.194079 0.625000 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.365132 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.332237 0.609375 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.121711 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.092105 0.242188 +vt 0.092105 0.277344 +vt 0.092105 0.312500 +vt 0.092105 0.347656 +vt 0.092105 0.382812 +vt 0.092105 0.386719 +vt 0.092105 0.453125 +vt 0.092105 0.457031 +vt 0.092105 0.523438 +vt 0.092105 0.558594 +vt 0.092105 0.035156 +vt 0.092105 0.070312 +vt 0.092105 0.136719 +vt 0.092105 0.171875 +vt 0.092105 0.207031 +vt 0.197368 0.160156 +vt 0.197368 0.214844 +vt 0.197368 0.246094 +vt 0.197368 0.277344 +vt 0.197368 0.308594 +vt 0.197368 0.316406 +vt 0.197368 0.347656 +vt 0.197368 0.402344 +vt 0.197368 0.433594 +vt 0.197368 0.441406 +vt 0.197368 0.472656 +vt 0.197368 0.003906 +vt 0.197368 0.035156 +vt 0.197368 0.089844 +vt 0.197368 0.097656 +vt 0.197368 0.152344 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.769737 -0.000000 +vt 0.480263 0.500000 +vt 1.000000 0.375000 +vt 0.973684 0.375000 +vt 0.973684 0.046875 +vt 0.309211 0.937500 +vt 0.842105 0.312500 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.338816 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.371711 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vn -0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.9762 0.2169 +vn 0.0000 0.9762 -0.2169 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 1.0000 0.0000 +vn -0.4082 0.4082 -0.8165 +vn 0.0000 -0.7071 -0.7071 +vn 0.4082 0.4082 -0.8165 +vn -0.7071 0.0000 0.7071 +vn 0.4472 0.0000 -0.8944 +vn 0.3333 -0.6667 -0.6667 +vn -0.4472 0.0000 -0.8944 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.4472 -0.8944 +vn 0.5774 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.3333 -0.6667 -0.6667 +vn 0.8944 0.0000 0.4472 +vn 0.3162 0.0000 -0.9487 +vn 0.3162 0.0000 0.9487 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.8944 0.0000 -0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn -0.3511 -0.9363 0.0000 +vn -0.3511 0.9363 0.0000 +vn -0.8944 0.0000 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn -0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8263 0.3423 -0.4472 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.9701 -0.0000 -0.2425 +vn -0.8402 0.4851 -0.2425 +vn -0.4851 0.8402 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.4851 0.8402 -0.2425 +vn 0.8402 0.4851 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn 0.8402 -0.4851 -0.2425 +vn 0.4851 -0.8402 -0.2425 +vn -0.0000 -0.9701 -0.2425 +vn -0.4851 -0.8402 -0.2425 +vn -0.8402 -0.4851 -0.2425 +vn 0.0000 0.9701 0.2425 +vn -0.4851 0.8402 0.2425 +vn 0.4851 0.8402 0.2425 +vn 0.8402 0.4851 0.2425 +vn 0.9701 -0.0000 0.2425 +vn 0.8402 -0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn -0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn -0.9701 -0.0000 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.0000 -0.7071 0.7071 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 -0.1951 0.0000 +s off +f 79/1/1 75/2/1 71/3/1 +f 90/4/2 86/5/2 85/6/2 +f 460/7/3 461/8/3 459/9/3 +f 89/10/4 86/11/4 90/12/4 +f 89/13/3 84/14/3 83/15/3 +f 84/16/5 90/17/5 88/18/5 +f 93/19/6 92/20/6 91/21/6 +f 85/6/7 93/19/7 87/22/7 +f 461/23/3 462/24/3 468/25/3 +f 83/15/8 92/20/8 81/26/8 +f 11/27/9 13/28/9 1/29/9 +f 203/30/9 226/31/9 214/32/9 +f 214/32/9 225/33/9 213/34/9 +f 213/34/9 224/35/9 212/36/9 +f 212/36/9 223/37/9 211/38/9 +f 211/38/9 222/39/9 210/40/9 +f 209/41/9 222/42/9 221/43/9 +f 209/44/9 220/45/9 208/46/9 +f 208/46/9 219/47/9 207/48/9 +f 207/48/9 218/49/9 206/50/9 +f 206/50/9 217/51/9 205/52/9 +f 204/53/9 217/54/9 216/55/9 +f 203/30/9 216/56/9 215/57/9 +f 237/58/9 227/59/9 231/60/9 +f 259/61/1 257/62/1 253/63/1 +f 243/64/9 245/65/9 247/66/9 +f 273/67/3 277/68/3 269/69/3 +f 266/70/10 263/71/10 264/72/10 +f 268/73/11 265/74/11 266/70/11 +f 278/75/2 274/76/2 270/77/2 +f 263/78/1 272/79/1 264/80/1 +f 274/76/12 275/81/12 273/82/12 +f 276/83/1 277/84/1 275/85/1 +f 271/86/12 280/87/12 272/79/12 +f 279/88/9 282/89/9 280/87/9 +f 282/90/12 277/91/12 278/92/12 +f 270/77/9 273/93/9 269/94/9 +f 279/95/3 263/96/3 281/97/3 +f 280/87/2 264/80/2 272/79/2 +f 267/98/3 269/69/3 277/68/3 +f 278/75/2 270/77/2 268/73/2 +f 301/99/1 303/100/1 300/101/1 +f 310/102/13 312/103/13 301/99/13 +f 305/104/2 315/105/2 316/106/2 +f 303/100/14 319/107/14 300/101/14 +f 305/108/15 313/109/15 315/110/15 +f 320/111/16 309/112/16 326/113/16 +f 304/114/17 306/115/17 303/100/17 +f 317/116/3 318/117/3 310/118/3 +f 306/115/18 321/119/18 303/100/18 +f 300/101/19 310/102/19 301/99/19 +f 314/120/12 316/106/12 313/109/12 +f 322/121/20 307/122/20 302/123/20 +f 302/123/21 311/124/21 299/125/21 +f 301/99/22 313/109/22 304/114/22 +f 307/122/23 314/120/23 302/123/23 +f 309/112/24 311/124/24 317/126/24 +f 322/127/6 321/119/6 323/128/6 +f 308/129/25 319/107/25 325/130/25 +f 320/111/9 302/123/9 299/125/9 +f 333/131/26 336/132/26 332/133/26 +f 329/134/27 334/135/27 330/136/27 +f 328/137/28 332/133/28 327/138/28 +f 330/139/6 333/140/6 328/141/6 +f 327/142/12 331/143/12 329/144/12 +f 337/145/2 335/146/2 336/132/2 +f 334/147/29 337/145/29 333/140/29 +f 332/148/30 335/146/30 331/143/30 +f 331/149/31 338/150/31 334/135/31 +f 348/151/32 345/152/32 344/153/32 +f 346/154/33 341/155/33 342/156/33 +f 344/153/34 340/157/34 339/158/34 +f 345/159/6 342/160/6 340/161/6 +f 343/162/12 339/163/12 341/164/12 +f 347/165/3 349/166/3 348/151/3 +f 345/159/35 350/167/35 346/168/35 +f 343/162/36 348/151/36 344/169/36 +f 346/154/37 347/165/37 343/170/37 +f 360/171/9 356/172/9 372/173/9 +f 365/174/1 373/175/1 381/176/1 +f 388/177/9 412/178/9 404/179/9 +f 397/180/1 405/181/1 413/182/1 +f 416/183/3 417/184/3 415/185/3 +f 418/186/1 421/187/1 417/184/1 +f 422/188/2 419/189/2 421/190/2 +f 421/191/6 415/185/6 417/184/6 +f 418/186/12 420/192/12 422/188/12 +f 439/193/16 416/183/16 415/185/16 +f 442/194/38 446/195/38 444/196/38 +f 441/197/3 448/198/3 442/199/3 +f 420/200/1 442/201/1 419/202/1 +f 439/193/9 443/203/9 440/204/9 +f 443/203/39 441/205/39 420/200/39 +f 446/206/20 443/203/20 444/196/20 +f 447/207/40 450/208/40 448/209/40 +f 442/210/6 450/208/6 446/206/6 +f 441/197/12 449/211/12 447/212/12 +f 446/206/2 449/211/2 445/213/2 +f 83/214/1 84/16/1 88/18/1 +f 455/215/6 457/216/6 456/217/6 +f 454/218/14 455/215/14 453/219/14 +f 451/220/9 457/216/9 452/221/9 +f 452/222/2 458/223/2 454/224/2 +f 451/225/3 455/215/3 456/217/3 +f 466/226/2 463/227/2 465/228/2 +f 465/228/6 459/229/6 461/230/6 +f 462/231/12 464/232/12 466/226/12 +f 482/233/10 484/234/10 478/235/10 +f 466/236/2 465/237/2 469/238/2 +f 468/25/3 472/239/3 461/23/3 +f 491/240/2 470/241/2 496/242/2 +f 474/243/1 473/244/1 494/245/1 +f 461/246/9 471/247/9 465/237/9 +f 469/238/1 474/248/1 468/25/1 +f 465/237/2 473/249/2 469/238/2 +f 476/250/3 477/251/3 475/252/3 +f 477/253/3 478/254/3 484/234/3 +f 482/233/2 479/255/2 481/256/2 +f 481/257/6 475/252/6 477/251/6 +f 478/235/12 480/258/12 482/233/12 +f 471/247/41 494/245/41 473/249/41 +f 482/259/2 481/260/2 485/261/2 +f 484/234/3 488/262/3 477/253/3 +f 498/263/3 483/264/3 493/265/3 +f 493/266/1 486/267/1 491/268/1 +f 477/253/9 487/269/9 481/270/9 +f 485/261/1 490/271/1 484/234/1 +f 481/260/2 489/272/2 485/261/2 +f 490/271/42 495/273/42 488/262/42 +f 470/241/12 483/264/12 467/274/12 +f 487/275/9 488/276/9 495/273/9 +f 489/277/12 472/278/12 474/243/12 +f 471/279/9 472/280/9 492/281/9 +f 495/273/9 472/280/9 487/275/9 +f 490/282/1 489/277/1 497/283/1 +f 494/245/1 489/277/1 474/243/1 +f 492/281/6 497/283/6 494/245/6 +f 466/226/10 468/25/10 462/231/10 +f 496/284/9 467/274/9 498/285/9 +f 500/286/12 501/287/12 499/288/12 +f 503/289/6 505/290/6 504/291/6 +f 500/286/2 506/292/2 502/293/2 +f 501/287/3 504/294/3 499/288/3 +f 502/293/1 503/289/1 501/287/1 +f 499/288/9 505/295/9 500/286/9 +f 510/296/1 513/297/1 509/298/1 +f 507/299/9 512/300/9 508/301/9 +f 508/301/6 514/302/6 510/296/6 +f 509/298/12 511/303/12 507/304/12 +f 512/300/42 518/305/42 514/302/42 +f 513/306/43 515/307/43 511/308/43 +f 516/309/3 522/310/3 518/305/3 +f 517/311/2 519/312/2 515/313/2 +f 521/314/41 523/315/41 519/316/41 +f 520/317/44 526/318/44 522/310/44 +f 515/319/9 512/300/9 511/320/9 +f 515/321/9 520/317/9 516/309/9 +f 525/322/9 519/323/9 523/324/9 +f 514/302/1 517/325/1 513/306/1 +f 521/326/1 518/305/1 522/310/1 +f 522/310/1 524/327/1 521/314/1 +f 549/328/1 547/329/1 550/330/1 +f 552/331/9 528/332/9 551/333/9 +f 551/333/12 550/330/12 552/331/12 +f 531/334/1 535/335/1 539/336/1 +f 536/337/9 534/338/9 530/339/9 +f 85/340/9 86/11/9 82/341/9 +f 661/342/9 684/343/9 672/344/9 +f 672/344/9 683/345/9 671/346/9 +f 671/346/9 682/347/9 670/348/9 +f 670/348/9 681/349/9 669/350/9 +f 669/350/9 680/351/9 668/352/9 +f 667/353/9 680/354/9 679/355/9 +f 667/356/9 678/357/9 666/358/9 +f 666/358/9 677/359/9 665/360/9 +f 665/360/9 676/361/9 664/362/9 +f 664/362/9 675/363/9 663/364/9 +f 662/365/9 675/366/9 674/367/9 +f 661/342/9 674/368/9 673/369/9 +f 695/370/9 685/371/9 689/372/9 +f 805/373/9 828/374/9 816/375/9 +f 816/375/9 827/376/9 815/377/9 +f 815/377/9 826/378/9 814/379/9 +f 814/379/9 825/380/9 813/381/9 +f 812/382/9 825/383/9 824/384/9 +f 811/385/9 824/386/9 823/387/9 +f 811/388/9 822/389/9 810/390/9 +f 810/390/9 821/391/9 809/392/9 +f 809/392/9 820/393/9 808/394/9 +f 808/394/9 819/395/9 807/396/9 +f 807/396/9 818/397/9 806/398/9 +f 805/373/9 818/399/9 817/400/9 +f 839/401/9 829/402/9 833/403/9 +f 949/404/9 972/405/9 960/406/9 +f 960/406/9 971/407/9 959/408/9 +f 959/408/9 970/409/9 958/410/9 +f 957/411/9 970/412/9 969/413/9 +f 957/411/9 968/414/9 956/415/9 +f 955/416/9 968/417/9 967/418/9 +f 955/419/9 966/420/9 954/421/9 +f 954/421/9 965/422/9 953/423/9 +f 953/423/9 964/424/9 952/425/9 +f 952/425/9 963/426/9 951/427/9 +f 950/428/9 963/429/9 962/430/9 +f 949/404/9 962/431/9 961/432/9 +f 977/433/9 981/434/9 973/435/9 +f 1093/436/9 1116/437/9 1104/438/9 +f 1104/438/9 1115/439/9 1103/440/9 +f 1103/440/9 1114/441/9 1102/442/9 +f 1101/443/9 1114/444/9 1113/445/9 +f 1100/446/9 1113/447/9 1112/448/9 +f 1099/449/9 1112/450/9 1111/451/9 +f 1099/452/9 1110/453/9 1098/454/9 +f 1098/454/9 1109/455/9 1097/456/9 +f 1097/456/9 1108/457/9 1096/458/9 +f 1096/458/9 1107/459/9 1095/460/9 +f 1095/460/9 1106/461/9 1094/462/9 +f 1093/436/9 1106/463/9 1105/464/9 +f 1127/465/9 1117/466/9 1121/467/9 +f 1237/468/9 1260/469/9 1248/470/9 +f 1248/470/9 1259/471/9 1247/472/9 +f 1247/472/9 1258/473/9 1246/474/9 +f 1245/475/9 1258/476/9 1257/477/9 +f 1245/475/9 1256/478/9 1244/479/9 +f 1243/480/9 1256/481/9 1255/482/9 +f 1243/483/9 1254/484/9 1242/485/9 +f 1242/485/9 1253/486/9 1241/487/9 +f 1241/487/9 1252/488/9 1240/489/9 +f 1240/489/9 1251/490/9 1239/491/9 +f 1238/492/9 1251/493/9 1250/494/9 +f 1238/492/9 1249/495/9 1237/468/9 +f 1271/496/9 1261/497/9 1265/498/9 +f 67/499/1 66/500/1 65/501/1 +f 65/501/1 80/502/1 67/499/1 +f 80/502/1 79/1/1 67/499/1 +f 79/1/1 78/503/1 77/504/1 +f 77/504/1 76/505/1 79/1/1 +f 76/505/1 75/2/1 79/1/1 +f 75/2/1 74/506/1 71/3/1 +f 74/506/1 73/507/1 71/3/1 +f 73/507/1 72/508/1 71/3/1 +f 71/3/1 70/509/1 69/510/1 +f 69/510/1 68/511/1 67/499/1 +f 71/3/1 69/510/1 67/499/1 +f 67/499/1 79/1/1 71/3/1 +f 85/6/2 87/22/2 90/4/2 +f 87/22/2 88/512/2 90/4/2 +f 460/7/3 462/231/3 461/8/3 +f 89/10/4 82/341/4 86/11/4 +f 83/15/3 81/26/3 89/13/3 +f 81/26/3 82/513/3 89/13/3 +f 84/16/5 89/514/5 90/17/5 +f 93/19/6 94/515/6 92/20/6 +f 85/6/7 94/515/7 93/19/7 +f 83/15/8 91/21/8 92/20/8 +f 1/29/9 2/516/9 3/517/9 +f 3/517/9 4/518/9 1/29/9 +f 4/518/9 5/519/9 1/29/9 +f 5/519/9 6/520/9 7/521/9 +f 7/521/9 8/522/9 9/523/9 +f 9/523/9 10/524/9 11/27/9 +f 11/27/9 12/525/9 13/28/9 +f 13/28/9 14/526/9 1/29/9 +f 14/526/9 15/527/9 1/29/9 +f 15/527/9 16/528/9 1/29/9 +f 5/519/9 7/521/9 1/29/9 +f 7/521/9 9/523/9 1/29/9 +f 9/523/9 11/27/9 1/29/9 +f 203/30/9 215/529/9 226/31/9 +f 214/32/9 226/530/9 225/33/9 +f 213/34/9 225/531/9 224/35/9 +f 212/36/9 224/532/9 223/37/9 +f 211/38/9 223/533/9 222/39/9 +f 209/41/9 210/40/9 222/42/9 +f 209/44/9 221/534/9 220/45/9 +f 208/46/9 220/535/9 219/47/9 +f 207/48/9 219/536/9 218/49/9 +f 206/50/9 218/537/9 217/51/9 +f 204/53/9 205/52/9 217/54/9 +f 203/30/9 204/53/9 216/56/9 +f 227/59/9 228/538/9 229/539/9 +f 229/539/9 230/540/9 227/59/9 +f 230/540/9 231/60/9 227/59/9 +f 231/60/9 232/541/9 233/542/9 +f 233/542/9 234/543/9 235/544/9 +f 235/544/9 236/545/9 237/58/9 +f 237/58/9 238/546/9 227/59/9 +f 231/60/9 233/542/9 235/544/9 +f 235/544/9 237/58/9 231/60/9 +f 253/63/1 252/547/1 251/548/1 +f 251/548/1 262/549/1 261/550/1 +f 261/550/1 260/551/1 259/61/1 +f 259/61/1 258/552/1 257/62/1 +f 257/62/1 256/553/1 255/554/1 +f 255/554/1 254/555/1 257/62/1 +f 254/555/1 253/63/1 257/62/1 +f 253/63/1 251/548/1 261/550/1 +f 261/550/1 259/61/1 253/63/1 +f 239/556/9 240/557/9 241/558/9 +f 241/558/9 242/559/9 243/64/9 +f 243/64/9 244/560/9 245/65/9 +f 245/65/9 246/561/9 247/66/9 +f 247/66/9 248/562/9 239/556/9 +f 248/562/9 249/563/9 239/556/9 +f 249/563/9 250/564/9 239/556/9 +f 239/556/9 241/558/9 247/66/9 +f 241/558/9 243/64/9 247/66/9 +f 273/67/3 275/565/3 277/68/3 +f 266/70/10 265/74/10 263/71/10 +f 268/73/11 267/566/11 265/74/11 +f 278/75/2 276/83/2 274/76/2 +f 263/78/1 271/567/1 272/79/1 +f 274/76/12 276/83/12 275/81/12 +f 276/83/1 278/75/1 277/84/1 +f 271/86/12 279/568/12 280/87/12 +f 279/88/9 281/569/9 282/89/9 +f 282/90/12 281/570/12 277/91/12 +f 270/77/9 274/76/9 273/93/9 +f 279/95/3 271/571/3 263/96/3 +f 280/87/2 282/89/2 264/80/2 +f 277/68/3 281/97/3 267/98/3 +f 281/97/3 263/96/3 267/98/3 +f 263/96/3 265/572/3 267/98/3 +f 266/573/2 264/80/2 268/73/2 +f 264/80/2 282/89/2 268/73/2 +f 282/89/2 278/75/2 268/73/2 +f 301/99/1 304/114/1 303/100/1 +f 310/102/13 318/574/13 312/103/13 +f 316/106/2 307/575/2 305/104/2 +f 307/575/2 323/576/2 324/577/2 +f 306/578/2 307/575/2 324/577/2 +f 306/578/2 305/104/2 307/575/2 +f 303/100/14 321/119/14 319/107/14 +f 305/108/15 304/114/15 313/109/15 +f 320/111/16 299/125/16 309/112/16 +f 304/114/17 305/108/17 306/115/17 +f 310/118/3 308/579/3 309/580/3 +f 308/579/3 325/581/3 309/580/3 +f 325/581/3 326/582/3 309/580/3 +f 309/580/3 317/116/3 310/118/3 +f 306/115/18 324/583/18 321/119/18 +f 300/101/19 308/129/19 310/102/19 +f 315/105/12 313/109/12 316/106/12 +f 313/109/12 312/103/12 314/120/12 +f 312/103/12 318/117/12 317/116/12 +f 317/116/12 311/124/12 312/103/12 +f 311/124/12 314/120/12 312/103/12 +f 322/121/20 323/584/20 307/122/20 +f 302/123/21 314/120/21 311/124/21 +f 301/99/22 312/103/22 313/109/22 +f 307/122/23 316/585/23 314/120/23 +f 309/112/24 299/125/24 311/124/24 +f 322/127/6 320/586/6 319/107/6 +f 320/586/6 326/587/6 319/107/6 +f 326/587/6 325/588/6 319/107/6 +f 319/107/6 321/119/6 322/127/6 +f 321/119/6 324/589/6 323/128/6 +f 308/129/25 300/101/25 319/107/25 +f 320/111/9 322/121/9 302/123/9 +f 333/131/26 337/145/26 336/132/26 +f 329/134/27 331/149/27 334/135/27 +f 328/137/28 333/131/28 332/133/28 +f 330/139/6 334/147/6 333/140/6 +f 327/142/12 332/148/12 331/143/12 +f 337/145/2 338/150/2 335/146/2 +f 334/147/29 338/150/29 337/145/29 +f 332/148/30 336/132/30 335/146/30 +f 331/149/31 335/146/31 338/150/31 +f 348/151/32 349/166/32 345/152/32 +f 346/154/33 343/170/33 341/155/33 +f 344/153/34 345/152/34 340/157/34 +f 345/159/6 346/168/6 342/160/6 +f 343/162/12 344/169/12 339/163/12 +f 347/165/3 350/167/3 349/166/3 +f 345/159/35 349/166/35 350/167/35 +f 343/162/36 347/165/36 348/151/36 +f 346/154/37 350/167/37 347/165/37 +f 356/172/9 354/590/9 352/591/9 +f 352/591/9 382/592/9 380/593/9 +f 380/593/9 378/594/9 376/595/9 +f 376/595/9 374/596/9 372/173/9 +f 372/173/9 370/597/9 368/598/9 +f 368/598/9 366/599/9 364/600/9 +f 364/600/9 362/601/9 360/171/9 +f 360/171/9 358/602/9 356/172/9 +f 356/172/9 352/591/9 372/173/9 +f 352/591/9 380/593/9 372/173/9 +f 380/593/9 376/595/9 372/173/9 +f 372/173/9 368/598/9 364/600/9 +f 364/600/9 360/171/9 372/173/9 +f 381/176/1 351/603/1 357/604/1 +f 351/603/1 353/605/1 357/604/1 +f 353/605/1 355/606/1 357/604/1 +f 357/604/1 359/607/1 365/174/1 +f 359/607/1 361/608/1 365/174/1 +f 361/608/1 363/609/1 365/174/1 +f 365/174/1 367/610/1 369/611/1 +f 369/611/1 371/612/1 365/174/1 +f 371/612/1 373/175/1 365/174/1 +f 373/175/1 375/613/1 381/176/1 +f 375/613/1 377/614/1 381/176/1 +f 377/614/1 379/615/1 381/176/1 +f 381/176/1 357/604/1 365/174/1 +f 388/177/9 386/616/9 412/178/9 +f 386/616/9 384/617/9 412/178/9 +f 384/617/9 414/618/9 412/178/9 +f 412/178/9 410/619/9 408/620/9 +f 408/620/9 406/621/9 412/178/9 +f 406/621/9 404/179/9 412/178/9 +f 404/179/9 402/622/9 400/623/9 +f 400/623/9 398/624/9 396/625/9 +f 396/625/9 394/626/9 392/627/9 +f 392/627/9 390/628/9 388/177/9 +f 404/179/9 400/623/9 396/625/9 +f 396/625/9 392/627/9 404/179/9 +f 392/627/9 388/177/9 404/179/9 +f 413/182/1 383/629/1 385/630/1 +f 385/630/1 387/631/1 389/632/1 +f 389/632/1 391/633/1 397/180/1 +f 391/633/1 393/634/1 397/180/1 +f 393/634/1 395/635/1 397/180/1 +f 397/180/1 399/636/1 405/181/1 +f 399/636/1 401/637/1 405/181/1 +f 401/637/1 403/638/1 405/181/1 +f 405/181/1 407/639/1 409/640/1 +f 409/640/1 411/641/1 413/182/1 +f 413/182/1 385/630/1 389/632/1 +f 405/181/1 409/640/1 413/182/1 +f 413/182/1 389/632/1 397/180/1 +f 416/183/3 418/186/3 417/184/3 +f 418/186/1 422/642/1 421/187/1 +f 422/188/2 420/192/2 419/189/2 +f 421/191/6 419/643/6 415/185/6 +f 418/186/12 416/183/12 420/192/12 +f 439/193/16 440/204/16 416/183/16 +f 444/196/38 439/193/38 419/644/38 +f 439/193/38 415/645/38 419/644/38 +f 419/644/38 442/194/38 444/196/38 +f 441/197/3 447/212/3 448/198/3 +f 420/200/1 441/205/1 442/201/1 +f 439/193/9 444/196/9 443/203/9 +f 416/646/39 440/204/39 420/200/39 +f 440/204/39 443/203/39 420/200/39 +f 443/203/39 445/647/39 441/205/39 +f 446/206/20 445/213/20 443/203/20 +f 447/207/40 449/211/40 450/208/40 +f 442/210/6 448/648/6 450/208/6 +f 441/197/12 445/213/12 449/211/12 +f 446/206/2 450/208/2 449/211/2 +f 88/18/1 87/649/1 83/214/1 +f 87/649/1 93/19/1 83/214/1 +f 93/19/1 91/21/1 83/214/1 +f 455/215/6 458/223/6 457/216/6 +f 454/218/14 458/223/14 455/215/14 +f 451/220/9 456/217/9 457/216/9 +f 452/222/2 457/216/2 458/223/2 +f 451/225/3 453/650/3 455/215/3 +f 466/226/2 464/232/2 463/227/2 +f 465/228/6 463/227/6 459/229/6 +f 462/231/12 460/7/12 464/232/12 +f 482/233/10 485/261/10 484/234/10 +f 468/25/3 474/248/3 472/239/3 +f 491/240/2 486/267/2 470/241/2 +f 461/246/9 472/651/9 471/247/9 +f 469/238/1 473/249/1 474/248/1 +f 465/237/2 471/247/2 473/249/2 +f 476/250/3 478/235/3 477/251/3 +f 482/233/2 480/258/2 479/255/2 +f 481/257/6 479/652/6 475/252/6 +f 478/235/12 476/250/12 480/258/12 +f 471/247/41 492/281/41 494/245/41 +f 484/234/3 490/271/3 488/262/3 +f 498/263/3 467/274/3 483/264/3 +f 493/266/1 483/264/1 486/267/1 +f 477/253/9 488/262/9 487/269/9 +f 485/261/1 489/272/1 490/271/1 +f 481/260/2 487/653/2 489/272/2 +f 490/271/42 497/283/42 495/273/42 +f 470/241/12 486/267/12 483/264/12 +f 489/277/12 487/654/12 472/278/12 +f 495/273/9 492/281/9 472/280/9 +f 494/245/1 497/283/1 489/277/1 +f 492/281/6 495/273/6 497/283/6 +f 466/226/10 469/238/10 468/25/10 +f 496/284/9 470/241/9 467/274/9 +f 500/286/12 502/293/12 501/287/12 +f 503/289/6 506/655/6 505/290/6 +f 500/286/2 505/656/2 506/292/2 +f 501/287/3 503/657/3 504/294/3 +f 502/293/1 506/655/1 503/289/1 +f 499/288/9 504/658/9 505/295/9 +f 510/296/1 514/302/1 513/297/1 +f 507/299/9 511/659/9 512/300/9 +f 508/301/6 512/300/6 514/302/6 +f 509/298/12 513/297/12 511/303/12 +f 512/300/42 516/309/42 518/305/42 +f 513/306/43 517/325/43 515/307/43 +f 516/309/3 520/317/3 522/310/3 +f 517/311/2 521/326/2 519/312/2 +f 521/314/41 524/327/41 523/315/41 +f 520/317/44 525/322/44 526/318/44 +f 515/319/9 516/309/9 512/300/9 +f 515/321/9 519/660/9 520/317/9 +f 525/322/9 520/317/9 519/323/9 +f 514/302/1 518/305/1 517/325/1 +f 521/326/1 517/311/1 518/305/1 +f 522/310/1 526/318/1 524/327/1 +f 549/328/1 548/661/1 547/329/1 +f 552/331/9 527/662/9 528/332/9 +f 551/333/12 549/328/12 550/330/12 +f 545/663/1 529/664/1 531/334/1 +f 531/334/1 533/665/1 535/335/1 +f 535/335/1 537/666/1 539/336/1 +f 539/336/1 541/667/1 531/334/1 +f 541/667/1 543/668/1 531/334/1 +f 543/668/1 545/663/1 531/334/1 +f 534/338/9 532/669/9 530/339/9 +f 530/339/9 546/670/9 544/671/9 +f 544/671/9 542/672/9 530/339/9 +f 542/672/9 540/673/9 530/339/9 +f 540/673/9 538/674/9 530/339/9 +f 538/674/9 536/337/9 530/339/9 +f 82/341/9 81/675/9 85/340/9 +f 81/675/9 92/20/9 85/340/9 +f 92/20/9 94/515/9 85/340/9 +f 661/342/9 673/676/9 684/343/9 +f 672/344/9 684/677/9 683/345/9 +f 671/346/9 683/678/9 682/347/9 +f 670/348/9 682/679/9 681/349/9 +f 669/350/9 681/680/9 680/351/9 +f 667/353/9 668/352/9 680/354/9 +f 667/356/9 679/681/9 678/357/9 +f 666/358/9 678/682/9 677/359/9 +f 665/360/9 677/683/9 676/361/9 +f 664/362/9 676/684/9 675/363/9 +f 662/365/9 663/364/9 675/366/9 +f 661/342/9 662/365/9 674/368/9 +f 685/371/9 686/685/9 687/686/9 +f 687/686/9 688/687/9 685/371/9 +f 688/687/9 689/372/9 685/371/9 +f 689/372/9 690/688/9 691/689/9 +f 691/689/9 692/690/9 693/691/9 +f 693/691/9 694/692/9 695/370/9 +f 695/370/9 696/693/9 685/371/9 +f 689/372/9 691/689/9 693/691/9 +f 693/691/9 695/370/9 689/372/9 +f 805/373/9 817/694/9 828/374/9 +f 816/375/9 828/695/9 827/376/9 +f 815/377/9 827/696/9 826/378/9 +f 814/379/9 826/697/9 825/380/9 +f 812/382/9 813/381/9 825/383/9 +f 811/385/9 812/382/9 824/386/9 +f 811/388/9 823/698/9 822/389/9 +f 810/390/9 822/699/9 821/391/9 +f 809/392/9 821/700/9 820/393/9 +f 808/394/9 820/701/9 819/395/9 +f 807/396/9 819/702/9 818/397/9 +f 805/373/9 806/398/9 818/399/9 +f 829/402/9 830/703/9 831/704/9 +f 831/704/9 832/705/9 829/402/9 +f 832/705/9 833/403/9 829/402/9 +f 833/403/9 834/706/9 835/707/9 +f 835/707/9 836/708/9 837/709/9 +f 837/709/9 838/710/9 839/401/9 +f 839/401/9 840/711/9 829/402/9 +f 833/403/9 835/707/9 837/709/9 +f 837/709/9 839/401/9 833/403/9 +f 949/404/9 961/712/9 972/405/9 +f 960/406/9 972/713/9 971/407/9 +f 959/408/9 971/714/9 970/409/9 +f 957/411/9 958/410/9 970/412/9 +f 957/411/9 969/715/9 968/414/9 +f 955/416/9 956/415/9 968/417/9 +f 955/419/9 967/716/9 966/420/9 +f 954/421/9 966/717/9 965/422/9 +f 953/423/9 965/718/9 964/424/9 +f 952/425/9 964/719/9 963/426/9 +f 950/428/9 951/427/9 963/429/9 +f 949/404/9 950/428/9 962/431/9 +f 973/435/9 974/720/9 977/433/9 +f 974/720/9 975/721/9 977/433/9 +f 975/721/9 976/722/9 977/433/9 +f 977/433/9 978/723/9 979/724/9 +f 979/724/9 980/725/9 981/434/9 +f 981/434/9 982/726/9 983/727/9 +f 983/727/9 984/728/9 973/435/9 +f 977/433/9 979/724/9 981/434/9 +f 981/434/9 983/727/9 973/435/9 +f 1093/436/9 1105/729/9 1116/437/9 +f 1104/438/9 1116/730/9 1115/439/9 +f 1103/440/9 1115/731/9 1114/441/9 +f 1101/443/9 1102/442/9 1114/444/9 +f 1100/446/9 1101/443/9 1113/447/9 +f 1099/449/9 1100/446/9 1112/450/9 +f 1099/452/9 1111/732/9 1110/453/9 +f 1098/454/9 1110/733/9 1109/455/9 +f 1097/456/9 1109/734/9 1108/457/9 +f 1096/458/9 1108/735/9 1107/459/9 +f 1095/460/9 1107/736/9 1106/461/9 +f 1093/436/9 1094/462/9 1106/463/9 +f 1117/466/9 1118/737/9 1121/467/9 +f 1118/737/9 1119/738/9 1121/467/9 +f 1119/738/9 1120/739/9 1121/467/9 +f 1121/467/9 1122/740/9 1123/741/9 +f 1123/741/9 1124/742/9 1125/743/9 +f 1125/743/9 1126/744/9 1127/465/9 +f 1127/465/9 1128/745/9 1117/466/9 +f 1121/467/9 1123/741/9 1125/743/9 +f 1125/743/9 1127/465/9 1121/467/9 +f 1237/468/9 1249/746/9 1260/469/9 +f 1248/470/9 1260/747/9 1259/471/9 +f 1247/472/9 1259/748/9 1258/473/9 +f 1245/475/9 1246/474/9 1258/476/9 +f 1245/475/9 1257/749/9 1256/478/9 +f 1243/480/9 1244/479/9 1256/481/9 +f 1243/483/9 1255/750/9 1254/484/9 +f 1242/485/9 1254/751/9 1253/486/9 +f 1241/487/9 1253/752/9 1252/488/9 +f 1240/489/9 1252/753/9 1251/490/9 +f 1238/492/9 1239/491/9 1251/493/9 +f 1238/492/9 1250/754/9 1249/495/9 +f 1261/497/9 1262/755/9 1265/498/9 +f 1262/755/9 1263/756/9 1265/498/9 +f 1263/756/9 1264/757/9 1265/498/9 +f 1265/498/9 1266/758/9 1267/759/9 +f 1267/759/9 1268/760/9 1269/761/9 +f 1269/761/9 1270/762/9 1271/496/9 +f 1271/496/9 1272/763/9 1261/497/9 +f 1265/498/9 1267/759/9 1269/761/9 +f 1269/761/9 1271/496/9 1265/498/9 +s 1 +f 30/764/45 15/765/43 14/766/45 +f 23/767/42 8/768/46 7/769/42 +f 31/770/43 16/771/47 15/765/43 +f 24/772/46 9/773/6 8/768/46 +f 17/774/12 2/775/48 1/776/12 +f 32/777/47 1/776/12 16/771/47 +f 25/778/6 10/779/49 9/780/6 +f 18/781/48 3/782/44 2/775/48 +f 26/783/49 11/784/41 10/779/49 +f 19/785/44 4/786/50 3/782/44 +f 27/787/41 12/788/51 11/784/41 +f 20/789/50 5/790/3 4/786/50 +f 28/791/51 13/792/2 12/788/51 +f 21/793/3 6/794/52 5/790/3 +f 29/795/2 14/766/45 13/792/2 +f 22/796/52 7/769/42 6/794/52 +f 47/797/53 32/777/54 31/770/53 +f 48/798/54 17/774/55 32/777/54 +f 33/799/55 18/781/56 17/774/55 +f 34/800/56 19/785/57 18/781/56 +f 35/801/57 20/789/58 19/785/57 +f 20/789/58 37/802/37 21/793/37 +f 37/803/37 22/796/59 21/793/37 +f 22/796/59 39/804/60 23/767/60 +f 39/805/60 24/772/61 23/767/60 +f 40/806/61 25/807/62 24/772/61 +f 41/808/62 26/783/63 25/778/62 +f 26/783/63 43/809/64 27/787/64 +f 27/787/64 44/810/65 28/791/65 +f 44/811/65 29/795/31 28/791/65 +f 45/812/31 30/764/66 29/795/31 +f 46/813/66 31/770/53 30/764/66 +f 35/814/44 52/815/50 36/816/50 +f 43/817/41 60/818/51 44/819/51 +f 36/816/50 53/820/3 37/821/3 +f 44/819/51 61/822/2 45/823/2 +f 37/821/3 54/824/52 38/825/52 +f 45/823/2 62/826/45 46/827/45 +f 38/825/52 55/828/42 39/829/42 +f 46/827/45 63/830/43 47/831/43 +f 39/829/42 56/832/46 40/833/46 +f 47/831/43 64/834/47 48/835/47 +f 40/833/46 57/836/6 41/837/6 +f 33/838/12 50/839/48 34/840/48 +f 48/835/47 49/841/12 33/838/12 +f 41/808/6 58/842/49 42/843/49 +f 34/840/48 51/844/44 35/814/44 +f 42/843/49 59/845/41 43/817/41 +f 62/826/66 79/846/53 63/830/53 +f 79/847/53 64/834/54 63/830/53 +f 80/848/54 49/841/55 64/834/54 +f 65/849/55 50/839/56 49/841/55 +f 66/850/56 51/844/57 50/839/56 +f 51/844/57 68/851/58 52/815/58 +f 52/815/58 69/852/37 53/820/37 +f 69/853/37 54/824/59 53/820/37 +f 70/854/59 55/828/60 54/824/59 +f 55/828/60 72/855/61 56/832/61 +f 56/832/61 73/856/62 57/836/62 +f 57/857/62 74/858/63 58/842/63 +f 58/842/63 75/859/64 59/845/64 +f 75/860/64 60/818/65 59/845/64 +f 60/818/65 77/861/31 61/822/31 +f 77/862/31 62/826/66 61/822/31 +f 96/863/67 107/864/12 95/865/12 +f 97/866/68 108/867/67 96/863/67 +f 98/868/3 109/869/68 97/866/68 +f 99/870/69 110/871/3 98/868/3 +f 100/872/70 111/873/69 99/870/69 +f 101/874/6 112/875/70 100/872/70 +f 102/876/71 113/877/6 101/878/6 +f 103/879/72 114/880/71 102/876/71 +f 104/881/2 115/882/72 103/879/72 +f 105/883/73 116/884/2 104/881/2 +f 106/885/74 117/886/73 105/883/73 +f 95/865/12 118/887/74 106/885/74 +f 110/871/75 121/888/76 109/869/76 +f 109/869/76 120/889/77 108/867/77 +f 108/867/77 119/890/78 107/864/78 +f 118/887/79 119/890/78 130/891/79 +f 117/886/80 130/891/79 129/892/80 +f 116/884/81 129/892/80 128/893/81 +f 115/882/82 128/893/81 127/894/82 +f 114/880/83 127/894/82 126/895/83 +f 113/877/84 126/895/83 125/896/84 +f 113/897/84 124/898/85 112/875/85 +f 111/873/86 124/898/85 123/899/86 +f 111/873/86 122/900/75 110/871/75 +f 120/889/67 131/901/12 119/890/12 +f 121/888/68 132/902/67 120/889/67 +f 122/900/3 133/903/68 121/888/68 +f 123/899/69 134/904/3 122/900/3 +f 124/898/70 135/905/69 123/899/69 +f 125/906/6 136/907/70 124/898/70 +f 126/895/71 137/908/6 125/896/6 +f 127/894/72 138/909/71 126/895/71 +f 128/893/2 139/910/72 127/894/72 +f 129/892/73 140/911/2 128/893/2 +f 130/891/74 141/912/73 129/892/73 +f 119/890/12 142/913/74 130/891/74 +f 131/901/87 144/914/88 143/915/87 +f 131/901/87 154/916/89 142/913/89 +f 142/913/89 153/917/90 141/912/90 +f 141/912/90 152/918/91 140/911/91 +f 140/911/91 151/919/92 139/910/92 +f 139/910/92 150/920/93 138/909/93 +f 138/909/93 149/921/94 137/908/94 +f 136/907/95 149/922/94 148/923/95 +f 136/907/95 147/924/96 135/905/96 +f 134/904/97 147/924/96 146/925/97 +f 133/903/98 146/925/97 145/926/98 +f 132/902/88 145/926/98 144/914/88 +f 144/914/67 155/927/12 143/915/12 +f 145/926/68 156/928/67 144/914/67 +f 146/925/3 157/929/68 145/926/68 +f 147/924/69 158/930/3 146/925/3 +f 148/923/70 159/931/69 147/924/69 +f 149/922/6 160/932/70 148/923/70 +f 150/920/71 161/933/6 149/921/6 +f 151/919/72 162/934/71 150/920/71 +f 152/918/2 163/935/72 151/919/72 +f 153/917/73 164/936/2 152/918/2 +f 154/916/74 165/937/73 153/917/73 +f 143/915/12 166/938/74 154/916/74 +f 164/936/81 177/939/80 176/940/81 +f 165/937/80 178/941/79 177/939/80 +f 155/927/78 178/941/79 166/938/79 +f 156/928/77 167/942/78 155/927/78 +f 157/929/76 168/943/77 156/928/77 +f 158/930/75 169/944/76 157/929/76 +f 158/930/75 171/945/86 170/946/75 +f 160/932/85 171/945/86 159/931/86 +f 161/947/84 172/948/85 160/932/85 +f 162/934/83 173/949/84 161/933/84 +f 162/934/83 175/950/82 174/951/83 +f 163/935/82 176/940/81 175/950/82 +f 168/943/67 179/952/12 167/942/12 +f 169/944/68 180/953/67 168/943/67 +f 170/946/3 181/954/68 169/944/68 +f 171/945/69 182/955/3 170/946/3 +f 172/948/70 183/956/69 171/945/69 +f 173/957/6 184/958/70 172/948/70 +f 174/951/71 185/959/6 173/949/6 +f 175/950/72 186/960/71 174/951/71 +f 176/940/2 187/961/72 175/950/72 +f 177/939/73 188/962/2 176/940/2 +f 178/941/74 189/963/73 177/939/73 +f 167/942/12 190/964/74 178/941/74 +f 190/964/89 191/965/87 202/966/89 +f 180/953/88 191/965/87 179/952/87 +f 181/954/98 192/967/88 180/953/88 +f 181/954/98 194/968/97 193/969/98 +f 183/956/96 194/968/97 182/955/97 +f 183/956/96 196/970/95 195/971/96 +f 185/972/94 196/970/95 184/958/95 +f 185/959/94 198/973/93 197/974/94 +f 187/961/92 198/973/93 186/960/93 +f 188/962/91 199/975/92 187/961/92 +f 189/963/90 200/976/91 188/962/91 +f 189/963/90 202/966/89 201/977/90 +f 192/967/67 203/30/12 191/965/12 +f 193/969/68 204/53/67 192/967/67 +f 194/968/3 205/52/68 193/969/68 +f 195/971/69 206/50/3 194/968/3 +f 196/970/70 207/48/69 195/971/69 +f 197/978/6 208/46/70 196/970/70 +f 198/973/71 209/41/6 197/974/6 +f 199/975/72 210/40/71 198/973/71 +f 200/976/2 211/38/72 199/975/72 +f 201/977/73 212/36/2 200/976/2 +f 202/966/74 213/34/73 201/977/73 +f 191/965/12 214/32/74 202/966/74 +f 216/56/71 227/979/6 215/57/6 +f 217/54/72 228/980/71 216/55/71 +f 218/537/2 229/981/72 217/51/72 +f 219/536/73 230/982/2 218/49/2 +f 220/535/74 231/983/73 219/47/73 +f 221/534/12 232/984/74 220/45/74 +f 222/42/67 233/985/12 221/43/12 +f 223/533/68 234/986/67 222/39/67 +f 224/532/3 235/987/68 223/37/68 +f 225/531/69 236/988/3 224/35/3 +f 226/530/70 237/989/69 225/33/69 +f 215/529/6 238/990/70 226/31/70 +f 253/991/68 242/992/3 241/993/68 +f 260/994/2 249/995/73 248/996/2 +f 257/997/6 246/998/71 245/999/6 +f 254/1000/3 243/1001/69 242/992/3 +f 261/1002/73 250/1003/74 249/995/73 +f 251/1004/12 240/1005/67 239/1006/12 +f 258/1007/71 247/1008/72 246/998/71 +f 255/1009/69 244/1010/70 243/1001/69 +f 262/1011/74 239/1006/12 250/1003/74 +f 252/1012/67 241/993/68 240/1005/67 +f 259/1013/72 248/996/2 247/1008/72 +f 256/1014/70 245/1015/6 244/1010/70 +f 297/1016/2 290/1017/43 289/1018/2 +f 295/1019/6 288/1020/41 287/1021/6 +f 293/1022/3 286/1023/42 285/1024/3 +f 291/1025/12 284/1026/44 283/1027/12 +f 298/1028/43 283/1027/12 290/1017/43 +f 296/1029/41 289/1018/2 288/1020/41 +f 294/1030/42 287/1031/6 286/1023/42 +f 292/1032/44 285/1024/3 284/1026/44 +f 352/1033/12 353/1034/47 351/1035/12 +f 354/1036/47 355/1037/43 353/1034/47 +f 356/1038/43 357/1039/45 355/1037/43 +f 358/1040/45 359/1041/2 357/1039/45 +f 360/1042/2 361/1043/51 359/1041/2 +f 362/1044/51 363/1045/41 361/1043/51 +f 364/1046/41 365/1047/49 363/1045/41 +f 366/1048/49 367/1049/6 365/1047/49 +f 368/1050/6 369/1051/46 367/1052/6 +f 370/1053/46 371/1054/42 369/1051/46 +f 372/1055/42 373/1056/52 371/1054/42 +f 374/1057/52 375/1058/3 373/1056/52 +f 376/1059/3 377/1060/50 375/1058/3 +f 378/1061/50 379/1062/44 377/1060/50 +f 380/1063/44 381/1064/48 379/1062/44 +f 382/1065/48 351/1035/12 381/1064/48 +f 384/1066/12 385/1067/47 383/1068/12 +f 386/1069/47 387/1070/43 385/1067/47 +f 388/1071/43 389/1072/45 387/1070/43 +f 390/1073/45 391/1074/2 389/1072/45 +f 392/1075/2 393/1076/51 391/1074/2 +f 394/1077/51 395/1078/41 393/1076/51 +f 396/1079/41 397/1080/49 395/1078/41 +f 398/1081/49 399/1082/6 397/1080/49 +f 400/1083/6 401/1084/46 399/1085/6 +f 402/1086/46 403/1087/42 401/1084/46 +f 403/1087/42 406/1088/52 405/1089/52 +f 406/1088/52 407/1090/3 405/1089/52 +f 408/1091/3 409/1092/50 407/1090/3 +f 410/1093/50 411/1094/44 409/1092/50 +f 412/1095/44 413/1096/48 411/1094/44 +f 414/1097/48 383/1068/12 413/1096/48 +f 423/1098/1 438/1099/14 430/1100/14 +f 429/1101/6 436/1102/99 428/1103/99 +f 427/1104/9 434/1105/21 426/1106/21 +f 425/1107/12 432/1108/10 424/1109/10 +f 430/1100/14 437/1110/6 429/1111/6 +f 428/1103/99 435/1112/9 427/1104/9 +f 426/1106/21 433/1113/12 425/1107/12 +f 424/1109/10 431/1114/1 423/1098/1 +f 555/1115/72 566/1116/71 554/1117/71 +f 554/1117/71 565/1118/6 553/1119/6 +f 530/1120/100 531/1121/51 529/1122/100 +f 532/1123/51 533/1124/41 531/1121/51 +f 534/1125/41 535/1126/49 533/1124/41 +f 536/1127/49 537/1128/6 535/1126/49 +f 538/1129/6 539/1130/46 537/1128/6 +f 540/1131/46 541/1132/42 539/1130/46 +f 542/1133/42 543/1134/52 541/1132/42 +f 544/1135/52 545/1136/101 543/1134/52 +f 556/1137/2 567/1138/72 555/1115/72 +f 557/1139/73 568/1140/2 556/1137/2 +f 558/1141/74 569/1142/73 557/1139/73 +f 559/1143/12 570/1144/74 558/1141/74 +f 560/1145/67 571/1146/12 559/1147/12 +f 561/1148/68 572/1149/67 560/1145/67 +f 562/1150/3 573/1151/68 561/1148/68 +f 563/1152/69 574/1153/3 562/1150/3 +f 564/1154/70 575/1155/69 563/1152/69 +f 553/1119/6 576/1156/70 564/1154/70 +f 568/1140/81 579/1157/82 567/1138/82 +f 567/1138/82 578/1158/83 566/1116/83 +f 566/1116/83 577/1159/84 565/1118/84 +f 576/1156/85 577/1159/84 588/1160/85 +f 575/1155/86 588/1160/85 587/1161/86 +f 574/1153/75 587/1161/86 586/1162/75 +f 574/1153/75 585/1163/76 573/1151/76 +f 572/1149/77 585/1163/76 584/1164/77 +f 571/1146/78 584/1164/77 583/1165/78 +f 571/1166/78 582/1167/79 570/1144/79 +f 569/1142/80 582/1167/79 581/1168/80 +f 569/1142/80 580/1169/81 568/1140/81 +f 578/1158/71 589/1170/6 577/1159/6 +f 579/1157/72 590/1171/71 578/1158/71 +f 580/1169/2 591/1172/72 579/1157/72 +f 581/1168/73 592/1173/2 580/1169/2 +f 582/1167/74 593/1174/73 581/1168/73 +f 583/1175/12 594/1176/74 582/1167/74 +f 584/1164/67 595/1177/12 583/1165/12 +f 585/1163/68 596/1178/67 584/1164/67 +f 586/1162/3 597/1179/68 585/1163/68 +f 587/1161/69 598/1180/3 586/1162/3 +f 588/1160/70 599/1181/69 587/1161/69 +f 577/1159/6 600/1182/70 588/1160/70 +f 589/1170/94 602/1183/93 601/1184/94 +f 589/1170/94 612/1185/95 600/1182/95 +f 600/1182/95 611/1186/96 599/1181/96 +f 599/1181/96 610/1187/97 598/1180/97 +f 598/1180/97 609/1188/98 597/1179/98 +f 597/1179/98 608/1189/88 596/1178/88 +f 596/1178/88 607/1190/87 595/1177/87 +f 594/1176/89 607/1191/87 606/1192/89 +f 594/1176/89 605/1193/90 593/1174/90 +f 592/1173/91 605/1193/90 604/1194/91 +f 591/1172/92 604/1194/91 603/1195/92 +f 590/1171/93 603/1195/92 602/1183/93 +f 602/1183/71 613/1196/6 601/1184/6 +f 603/1195/72 614/1197/71 602/1183/71 +f 604/1194/2 615/1198/72 603/1195/72 +f 605/1193/73 616/1199/2 604/1194/2 +f 606/1192/74 617/1200/73 605/1193/73 +f 607/1191/12 618/1201/74 606/1192/74 +f 608/1189/67 619/1202/12 607/1190/12 +f 609/1188/68 620/1203/67 608/1189/67 +f 610/1187/3 621/1204/68 609/1188/68 +f 611/1186/69 622/1205/3 610/1187/3 +f 612/1185/70 623/1206/69 611/1186/69 +f 601/1184/6 624/1207/70 612/1185/70 +f 622/1205/75 635/1208/86 634/1209/75 +f 623/1206/86 636/1210/85 635/1208/86 +f 624/1207/85 625/1211/84 636/1210/85 +f 613/1196/84 626/1212/83 625/1211/84 +f 614/1197/83 627/1213/82 626/1212/83 +f 616/1199/81 627/1213/82 615/1198/82 +f 617/1200/80 628/1214/81 616/1199/81 +f 618/1201/79 629/1215/80 617/1200/80 +f 619/1216/78 630/1217/79 618/1201/79 +f 620/1203/77 631/1218/78 619/1202/78 +f 620/1203/77 633/1219/76 632/1220/77 +f 621/1204/76 634/1209/75 633/1219/76 +f 626/1212/71 637/1221/6 625/1211/6 +f 627/1213/72 638/1222/71 626/1212/71 +f 628/1214/2 639/1223/72 627/1213/72 +f 629/1215/73 640/1224/2 628/1214/2 +f 630/1217/74 641/1225/73 629/1215/73 +f 631/1226/12 642/1227/74 630/1217/74 +f 632/1220/67 643/1228/12 631/1218/12 +f 633/1219/68 644/1229/67 632/1220/67 +f 634/1209/3 645/1230/68 633/1219/68 +f 635/1208/69 646/1231/3 634/1209/3 +f 636/1210/70 647/1232/69 635/1208/69 +f 625/1211/6 648/1233/70 636/1210/70 +f 648/1233/95 649/1234/94 660/1235/95 +f 638/1222/93 649/1234/94 637/1221/94 +f 639/1223/92 650/1236/93 638/1222/93 +f 639/1223/92 652/1237/91 651/1238/92 +f 641/1225/90 652/1237/91 640/1224/91 +f 641/1225/90 654/1239/89 653/1240/90 +f 643/1241/87 654/1239/89 642/1227/89 +f 644/1229/88 655/1242/87 643/1228/87 +f 645/1230/98 656/1243/88 644/1229/88 +f 646/1231/97 657/1244/98 645/1230/98 +f 647/1232/96 658/1245/97 646/1231/97 +f 648/1233/95 659/1246/96 647/1232/96 +f 650/1236/71 661/342/6 649/1234/6 +f 651/1238/72 662/365/71 650/1236/71 +f 652/1237/2 663/364/72 651/1238/72 +f 653/1240/73 664/362/2 652/1237/2 +f 654/1239/74 665/360/73 653/1240/73 +f 655/1247/12 666/358/74 654/1239/74 +f 656/1243/67 667/353/12 655/1242/12 +f 657/1244/68 668/352/67 656/1243/67 +f 658/1245/3 669/350/68 657/1244/68 +f 659/1246/69 670/348/3 658/1245/3 +f 660/1235/70 671/346/69 659/1246/69 +f 649/1234/6 672/344/70 660/1235/70 +f 674/368/67 685/1248/12 673/369/12 +f 675/366/68 686/1249/67 674/367/67 +f 676/684/3 687/1250/68 675/363/68 +f 677/683/69 688/1251/3 676/361/3 +f 678/682/70 689/1252/69 677/359/69 +f 679/681/6 690/1253/70 678/357/70 +f 680/354/71 691/1254/6 679/355/6 +f 681/680/72 692/1255/71 680/351/71 +f 682/679/2 693/1256/72 681/349/72 +f 683/678/73 694/1257/2 682/347/2 +f 684/677/74 695/1258/73 683/345/73 +f 673/676/12 696/1259/74 684/343/74 +f 698/1260/74 709/1261/73 697/1262/73 +f 699/1263/12 710/1264/74 698/1260/74 +f 700/1265/67 711/1266/12 699/1263/12 +f 701/1267/68 712/1268/67 700/1265/67 +f 702/1269/3 713/1270/68 701/1267/68 +f 703/1271/69 714/1272/3 702/1269/3 +f 704/1273/70 715/1274/69 703/1275/69 +f 705/1276/6 716/1277/70 704/1273/70 +f 706/1278/71 717/1279/6 705/1276/6 +f 707/1280/72 718/1281/71 706/1278/71 +f 708/1282/2 719/1283/72 707/1280/72 +f 697/1262/73 720/1284/2 708/1282/2 +f 712/1268/77 723/1285/78 711/1266/78 +f 711/1266/78 722/1286/79 710/1264/79 +f 710/1264/79 721/1287/80 709/1261/80 +f 720/1284/81 721/1287/80 732/1288/81 +f 719/1283/82 732/1288/81 731/1289/82 +f 718/1281/83 731/1289/82 730/1290/83 +f 717/1279/84 730/1290/83 729/1291/84 +f 716/1277/85 729/1291/84 728/1292/85 +f 715/1274/86 728/1292/85 727/1293/86 +f 715/1294/86 726/1295/75 714/1272/75 +f 714/1272/75 725/1296/76 713/1270/76 +f 713/1270/76 724/1297/77 712/1268/77 +f 722/1286/74 733/1298/73 721/1287/73 +f 723/1285/12 734/1299/74 722/1286/74 +f 724/1297/67 735/1300/12 723/1285/12 +f 725/1296/68 736/1301/67 724/1297/67 +f 726/1295/3 737/1302/68 725/1296/68 +f 727/1303/69 738/1304/3 726/1295/3 +f 728/1292/70 739/1305/69 727/1293/69 +f 729/1291/6 740/1306/70 728/1292/70 +f 730/1290/71 741/1307/6 729/1291/6 +f 731/1289/72 742/1308/71 730/1290/71 +f 732/1288/2 743/1309/72 731/1289/72 +f 721/1287/73 744/1310/2 732/1288/2 +f 733/1298/90 746/1311/89 745/1312/90 +f 733/1298/90 756/1313/91 744/1310/91 +f 744/1310/91 755/1314/92 743/1309/92 +f 743/1309/92 754/1315/93 742/1308/93 +f 742/1308/93 753/1316/94 741/1307/94 +f 741/1307/94 752/1317/95 740/1306/95 +f 740/1306/95 751/1318/96 739/1305/96 +f 738/1304/97 751/1319/96 750/1320/97 +f 738/1304/97 749/1321/98 737/1302/98 +f 736/1301/88 749/1321/98 748/1322/88 +f 735/1300/87 748/1322/88 747/1323/87 +f 734/1299/89 747/1323/87 746/1311/89 +f 746/1311/74 757/1324/73 745/1312/73 +f 747/1323/12 758/1325/74 746/1311/74 +f 748/1322/67 759/1326/12 747/1323/12 +f 749/1321/68 760/1327/67 748/1322/67 +f 750/1320/3 761/1328/68 749/1321/68 +f 751/1319/69 762/1329/3 750/1320/3 +f 752/1317/70 763/1330/69 751/1318/69 +f 753/1316/6 764/1331/70 752/1317/70 +f 754/1315/71 765/1332/6 753/1316/6 +f 755/1314/72 766/1333/71 754/1315/71 +f 756/1313/2 767/1334/72 755/1314/72 +f 745/1312/73 768/1335/2 756/1313/2 +f 767/1334/82 778/1336/83 766/1333/83 +f 767/1334/82 780/1337/81 779/1338/82 +f 757/1324/80 780/1337/81 768/1335/81 +f 758/1325/79 769/1339/80 757/1324/80 +f 759/1326/78 770/1340/79 758/1325/79 +f 760/1327/77 771/1341/78 759/1326/78 +f 761/1328/76 772/1342/77 760/1327/77 +f 761/1328/76 774/1343/75 773/1344/76 +f 763/1345/86 774/1343/75 762/1329/75 +f 764/1331/85 775/1346/86 763/1330/86 +f 764/1331/85 777/1347/84 776/1348/85 +f 766/1333/83 777/1347/84 765/1332/84 +f 770/1340/74 781/1349/73 769/1339/73 +f 771/1341/12 782/1350/74 770/1340/74 +f 772/1342/67 783/1351/12 771/1341/12 +f 773/1344/68 784/1352/67 772/1342/67 +f 774/1343/3 785/1353/68 773/1344/68 +f 775/1354/69 786/1355/3 774/1343/3 +f 776/1348/70 787/1356/69 775/1346/69 +f 777/1347/6 788/1357/70 776/1348/70 +f 778/1336/71 789/1358/6 777/1347/6 +f 779/1338/72 790/1359/71 778/1336/71 +f 780/1337/2 791/1360/72 779/1338/72 +f 769/1339/73 792/1361/2 780/1337/2 +f 792/1361/91 793/1362/90 804/1363/91 +f 782/1350/89 793/1362/90 781/1349/90 +f 782/1350/89 795/1364/87 794/1365/89 +f 784/1352/88 795/1364/87 783/1351/87 +f 784/1352/88 797/1366/98 796/1367/88 +f 786/1355/97 797/1366/98 785/1353/98 +f 786/1355/97 799/1368/96 798/1369/97 +f 787/1356/96 800/1370/95 799/1371/96 +f 789/1358/94 800/1370/95 788/1357/95 +f 789/1358/94 802/1372/93 801/1373/94 +f 790/1359/93 803/1374/92 802/1372/93 +f 792/1361/91 803/1374/92 791/1360/92 +f 794/1365/74 805/373/73 793/1362/73 +f 795/1364/12 806/398/74 794/1365/74 +f 796/1367/67 807/396/12 795/1364/12 +f 797/1366/68 808/394/67 796/1367/67 +f 798/1369/3 809/392/68 797/1366/68 +f 799/1368/69 810/390/3 798/1369/3 +f 800/1370/70 811/385/69 799/1371/69 +f 801/1373/6 812/382/70 800/1370/70 +f 802/1372/71 813/381/6 801/1373/6 +f 803/1374/72 814/379/71 802/1372/71 +f 804/1363/2 815/377/72 803/1374/72 +f 793/1362/73 816/375/2 804/1363/2 +f 818/399/70 829/1375/69 817/400/69 +f 819/702/6 830/1376/70 818/397/70 +f 820/701/71 831/1377/6 819/395/6 +f 821/700/72 832/1378/71 820/393/71 +f 822/699/2 833/1379/72 821/391/72 +f 823/698/73 834/1380/2 822/389/2 +f 824/386/74 835/1381/73 823/387/73 +f 825/383/12 836/1382/74 824/384/74 +f 826/697/67 837/1383/12 825/380/12 +f 827/696/68 838/1384/67 826/378/67 +f 828/695/3 839/1385/68 827/376/68 +f 817/694/69 840/1386/3 828/374/3 +f 843/1387/6 854/1388/70 842/1389/70 +f 842/1389/70 853/1390/69 841/1391/69 +f 844/1392/71 855/1393/6 843/1387/6 +f 845/1394/72 856/1395/71 844/1392/71 +f 846/1396/2 857/1397/72 845/1394/72 +f 847/1398/73 858/1399/2 846/1396/2 +f 848/1400/74 859/1401/73 847/1402/73 +f 849/1403/12 860/1404/74 848/1400/74 +f 850/1405/67 861/1406/12 849/1403/12 +f 851/1407/68 862/1408/67 850/1405/67 +f 852/1409/3 863/1410/68 851/1407/68 +f 841/1391/69 864/1411/3 852/1409/3 +f 856/1395/83 867/1412/84 855/1393/84 +f 855/1393/84 866/1413/85 854/1388/85 +f 854/1388/85 865/1414/86 853/1390/86 +f 853/1390/86 876/1415/75 864/1411/75 +f 863/1410/76 876/1415/75 875/1416/76 +f 863/1410/76 874/1417/77 862/1408/77 +f 862/1408/77 873/1418/78 861/1406/78 +f 860/1404/79 873/1418/78 872/1419/79 +f 860/1404/79 871/1420/80 859/1401/80 +f 859/1421/80 870/1422/81 858/1399/81 +f 857/1397/82 870/1422/81 869/1423/82 +f 857/1397/82 868/1424/83 856/1395/83 +f 866/1413/70 877/1425/69 865/1414/69 +f 867/1412/6 878/1426/70 866/1413/70 +f 868/1424/71 879/1427/6 867/1412/6 +f 869/1423/72 880/1428/71 868/1424/71 +f 870/1422/2 881/1429/72 869/1423/72 +f 871/1430/73 882/1431/2 870/1422/2 +f 872/1419/74 883/1432/73 871/1420/73 +f 873/1418/12 884/1433/74 872/1419/74 +f 874/1417/67 885/1434/12 873/1418/12 +f 875/1416/68 886/1435/67 874/1417/67 +f 876/1415/3 887/1436/68 875/1416/68 +f 865/1414/69 888/1437/3 876/1415/3 +f 877/1425/96 890/1438/95 889/1439/96 +f 877/1425/96 900/1440/97 888/1437/97 +f 888/1437/97 899/1441/98 887/1436/98 +f 887/1436/98 898/1442/88 886/1435/88 +f 886/1435/88 897/1443/87 885/1434/87 +f 885/1434/87 896/1444/89 884/1433/89 +f 884/1433/89 895/1445/90 883/1432/90 +f 883/1446/90 894/1447/91 882/1431/91 +f 882/1431/91 893/1448/92 881/1429/92 +f 880/1428/93 893/1448/92 892/1449/93 +f 879/1427/94 892/1449/93 891/1450/94 +f 878/1426/95 891/1450/94 890/1438/95 +f 890/1438/70 901/1451/69 889/1439/69 +f 891/1450/6 902/1452/70 890/1438/70 +f 892/1449/71 903/1453/6 891/1450/6 +f 893/1448/72 904/1454/71 892/1449/71 +f 894/1447/2 905/1455/72 893/1448/72 +f 895/1456/73 906/1457/2 894/1447/2 +f 896/1444/74 907/1458/73 895/1445/73 +f 897/1443/12 908/1459/74 896/1444/74 +f 898/1442/67 909/1460/12 897/1443/12 +f 899/1441/68 910/1461/67 898/1442/67 +f 900/1440/3 911/1462/68 899/1441/68 +f 889/1439/69 912/1463/3 900/1440/3 +f 911/1462/76 922/1464/77 910/1461/77 +f 911/1462/76 924/1465/75 923/1466/76 +f 901/1451/86 924/1465/75 912/1463/75 +f 902/1452/85 913/1467/86 901/1451/86 +f 903/1453/84 914/1468/85 902/1452/85 +f 903/1453/84 916/1469/83 915/1470/84 +f 905/1455/82 916/1469/83 904/1454/83 +f 905/1455/82 918/1471/81 917/1472/82 +f 907/1473/80 918/1471/81 906/1457/81 +f 908/1459/79 919/1474/80 907/1458/80 +f 908/1459/79 921/1475/78 920/1476/79 +f 910/1461/77 921/1475/78 909/1460/78 +f 914/1468/70 925/1477/69 913/1467/69 +f 915/1470/6 926/1478/70 914/1468/70 +f 916/1469/71 927/1479/6 915/1470/6 +f 917/1472/72 928/1480/71 916/1469/71 +f 918/1471/2 929/1481/72 917/1472/72 +f 919/1482/73 930/1483/2 918/1471/2 +f 920/1476/74 931/1484/73 919/1474/73 +f 921/1475/12 932/1485/74 920/1476/74 +f 922/1464/67 933/1486/12 921/1475/12 +f 923/1466/68 934/1487/67 922/1464/67 +f 924/1465/3 935/1488/68 923/1466/68 +f 913/1467/69 936/1489/3 924/1465/3 +f 936/1489/97 937/1490/96 948/1491/97 +f 925/1477/96 938/1492/95 937/1490/96 +f 926/1478/95 939/1493/94 938/1492/95 +f 928/1480/93 939/1493/94 927/1479/94 +f 928/1480/93 941/1494/92 940/1495/93 +f 930/1483/91 941/1494/92 929/1481/92 +f 930/1483/91 943/1496/90 942/1497/91 +f 931/1484/90 944/1498/89 943/1499/90 +f 933/1486/87 944/1498/89 932/1485/89 +f 933/1486/87 946/1500/88 945/1501/87 +f 935/1488/98 946/1500/88 934/1487/88 +f 936/1489/97 947/1502/98 935/1488/98 +f 938/1492/70 949/404/69 937/1490/69 +f 939/1493/6 950/428/70 938/1492/70 +f 940/1495/71 951/427/6 939/1493/6 +f 941/1494/72 952/425/71 940/1495/71 +f 942/1497/2 953/423/72 941/1494/72 +f 943/1496/73 954/421/2 942/1497/2 +f 944/1498/74 955/416/73 943/1499/73 +f 945/1501/12 956/415/74 944/1498/74 +f 946/1500/67 957/411/12 945/1501/12 +f 947/1502/68 958/410/67 946/1500/67 +f 948/1491/3 959/408/68 947/1502/68 +f 937/1490/69 960/406/3 948/1491/3 +f 962/431/74 973/1503/73 961/432/73 +f 963/429/12 974/1504/74 962/430/74 +f 964/719/67 975/1505/12 963/426/12 +f 965/718/68 976/1506/67 964/424/67 +f 966/717/3 977/1507/68 965/422/68 +f 967/716/69 978/1508/3 966/420/3 +f 968/417/70 979/1509/69 967/418/69 +f 969/715/6 980/1510/70 968/414/70 +f 970/412/71 981/1511/6 969/413/6 +f 971/714/72 982/1512/71 970/409/71 +f 972/713/2 983/1513/72 971/407/72 +f 961/712/73 984/1514/2 972/405/2 +f 986/1515/2 997/1516/72 985/1517/72 +f 987/1518/73 998/1519/2 986/1515/2 +f 988/1520/74 999/1521/73 987/1518/73 +f 989/1522/12 1000/1523/74 988/1520/74 +f 990/1524/67 1001/1525/12 989/1522/12 +f 991/1526/68 1002/1527/67 990/1524/67 +f 992/1528/3 1003/1529/68 991/1530/68 +f 993/1531/69 1004/1532/3 992/1528/3 +f 994/1533/70 1005/1534/69 993/1531/69 +f 995/1535/6 1006/1536/70 994/1533/70 +f 996/1537/71 1007/1538/6 995/1535/6 +f 985/1517/72 1008/1539/71 996/1537/71 +f 1000/1523/79 1011/1540/80 999/1521/80 +f 999/1521/80 1010/1541/81 998/1519/81 +f 997/1516/82 1010/1541/81 1009/1542/82 +f 997/1516/82 1020/1543/83 1008/1539/83 +f 1007/1538/84 1020/1543/83 1019/1544/84 +f 1007/1538/84 1018/1545/85 1006/1536/85 +f 1006/1536/85 1017/1546/86 1005/1534/86 +f 1004/1532/75 1017/1546/86 1016/1547/75 +f 1003/1529/76 1016/1547/75 1015/1548/76 +f 1002/1527/77 1015/1549/76 1014/1550/77 +f 1002/1527/77 1013/1551/78 1001/1525/78 +f 1001/1525/78 1012/1552/79 1000/1523/79 +f 1010/1541/2 1021/1553/72 1009/1542/72 +f 1011/1540/73 1022/1554/2 1010/1541/2 +f 1012/1552/74 1023/1555/73 1011/1540/73 +f 1013/1551/12 1024/1556/74 1012/1552/74 +f 1014/1550/67 1025/1557/12 1013/1551/12 +f 1015/1549/68 1026/1558/67 1014/1550/67 +f 1016/1547/3 1027/1559/68 1015/1548/68 +f 1017/1546/69 1028/1560/3 1016/1547/3 +f 1018/1545/70 1029/1561/69 1017/1546/69 +f 1019/1544/6 1030/1562/70 1018/1545/70 +f 1020/1543/71 1031/1563/6 1019/1544/6 +f 1009/1542/72 1032/1564/71 1020/1543/71 +f 1022/1554/91 1033/1565/92 1021/1553/92 +f 1021/1553/92 1044/1566/93 1032/1564/93 +f 1032/1564/93 1043/1567/94 1031/1563/94 +f 1031/1563/94 1042/1568/95 1030/1562/95 +f 1030/1562/95 1041/1569/96 1029/1561/96 +f 1029/1561/96 1040/1570/97 1028/1560/97 +f 1028/1560/97 1039/1571/98 1027/1559/98 +f 1027/1572/98 1038/1573/88 1026/1558/88 +f 1025/1557/87 1038/1573/88 1037/1574/87 +f 1024/1556/89 1037/1574/87 1036/1575/89 +f 1023/1555/90 1036/1575/89 1035/1576/90 +f 1022/1554/91 1035/1576/90 1034/1577/91 +f 1034/1577/2 1045/1578/72 1033/1565/72 +f 1035/1576/73 1046/1579/2 1034/1577/2 +f 1036/1575/74 1047/1580/73 1035/1576/73 +f 1037/1574/12 1048/1581/74 1036/1575/74 +f 1038/1573/67 1049/1582/12 1037/1574/12 +f 1039/1583/68 1050/1584/67 1038/1573/67 +f 1040/1570/3 1051/1585/68 1039/1571/68 +f 1041/1569/69 1052/1586/3 1040/1570/3 +f 1042/1568/70 1053/1587/69 1041/1569/69 +f 1043/1567/6 1054/1588/70 1042/1568/70 +f 1044/1566/71 1055/1589/6 1043/1567/6 +f 1033/1565/72 1056/1590/71 1044/1566/71 +f 1054/1588/85 1067/1591/84 1066/1592/85 +f 1055/1589/84 1068/1593/83 1067/1591/84 +f 1045/1578/82 1068/1593/83 1056/1590/83 +f 1046/1579/81 1057/1594/82 1045/1578/82 +f 1047/1580/80 1058/1595/81 1046/1579/81 +f 1048/1581/79 1059/1596/80 1047/1580/80 +f 1049/1582/78 1060/1597/79 1048/1581/79 +f 1049/1582/78 1062/1598/77 1061/1599/78 +f 1051/1600/76 1062/1598/77 1050/1584/77 +f 1052/1586/75 1063/1601/76 1051/1585/76 +f 1052/1586/75 1065/1602/86 1064/1603/75 +f 1054/1588/85 1065/1602/86 1053/1587/86 +f 1058/1595/2 1069/1604/72 1057/1594/72 +f 1059/1596/73 1070/1605/2 1058/1595/2 +f 1060/1597/74 1071/1606/73 1059/1596/73 +f 1061/1599/12 1072/1607/74 1060/1597/74 +f 1062/1598/67 1073/1608/12 1061/1599/12 +f 1063/1609/68 1074/1610/67 1062/1598/67 +f 1064/1603/3 1075/1611/68 1063/1601/68 +f 1065/1602/69 1076/1612/3 1064/1603/3 +f 1066/1592/70 1077/1613/69 1065/1602/69 +f 1067/1591/6 1078/1614/70 1066/1592/70 +f 1068/1593/71 1079/1615/6 1067/1591/6 +f 1057/1594/72 1080/1616/71 1068/1593/71 +f 1080/1616/93 1081/1617/92 1092/1618/93 +f 1069/1604/92 1082/1619/91 1081/1617/92 +f 1070/1605/91 1083/1620/90 1082/1619/91 +f 1072/1607/89 1083/1620/90 1071/1606/90 +f 1073/1608/87 1084/1621/89 1072/1607/89 +f 1073/1608/87 1086/1622/88 1085/1623/87 +f 1074/1610/88 1087/1624/98 1086/1622/88 +f 1076/1612/97 1087/1625/98 1075/1611/98 +f 1077/1613/96 1088/1626/97 1076/1612/97 +f 1078/1614/95 1089/1627/96 1077/1613/96 +f 1079/1615/94 1090/1628/95 1078/1614/95 +f 1080/1616/93 1091/1629/94 1079/1615/94 +f 1082/1619/2 1093/436/72 1081/1617/72 +f 1083/1620/73 1094/462/2 1082/1619/2 +f 1084/1621/74 1095/460/73 1083/1620/73 +f 1085/1623/12 1096/458/74 1084/1621/74 +f 1086/1622/67 1097/456/12 1085/1623/12 +f 1087/1624/68 1098/454/67 1086/1622/67 +f 1088/1626/3 1099/449/68 1087/1625/68 +f 1089/1627/69 1100/446/3 1088/1626/3 +f 1090/1628/70 1101/443/69 1089/1627/69 +f 1091/1629/6 1102/442/70 1090/1628/70 +f 1092/1618/71 1103/440/6 1091/1629/6 +f 1081/1617/72 1104/438/71 1092/1618/71 +f 1106/463/3 1117/1630/68 1105/464/68 +f 1107/736/69 1118/1631/3 1106/461/3 +f 1108/735/70 1119/1632/69 1107/459/69 +f 1109/734/6 1120/1633/70 1108/457/70 +f 1110/733/71 1121/1634/6 1109/455/6 +f 1111/732/72 1122/1635/71 1110/453/71 +f 1112/450/2 1123/1636/72 1111/451/72 +f 1113/447/73 1124/1637/2 1112/448/2 +f 1114/444/74 1125/1638/73 1113/445/73 +f 1115/731/12 1126/1639/74 1114/441/74 +f 1116/730/67 1127/1640/12 1115/439/12 +f 1105/729/68 1128/1641/67 1116/437/67 +f 1131/1642/69 1142/1643/3 1130/1644/3 +f 1130/1644/3 1141/1645/68 1129/1646/68 +f 1132/1647/70 1143/1648/69 1131/1642/69 +f 1133/1649/6 1144/1650/70 1132/1647/70 +f 1134/1651/71 1145/1652/6 1133/1649/6 +f 1135/1653/72 1146/1654/71 1134/1651/71 +f 1136/1655/2 1147/1656/72 1135/1657/72 +f 1137/1658/73 1148/1659/2 1136/1655/2 +f 1138/1660/74 1149/1661/73 1137/1658/73 +f 1139/1662/12 1150/1663/74 1138/1660/74 +f 1140/1664/67 1151/1665/12 1139/1662/12 +f 1129/1646/68 1152/1666/67 1140/1664/67 +f 1144/1650/85 1155/1667/86 1143/1648/86 +f 1143/1648/86 1154/1668/75 1142/1643/75 +f 1142/1643/75 1153/1669/76 1141/1645/76 +f 1152/1666/77 1153/1669/76 1164/1670/77 +f 1151/1665/78 1164/1670/77 1163/1671/78 +f 1151/1665/78 1162/1672/79 1150/1663/79 +f 1150/1663/79 1161/1673/80 1149/1661/80 +f 1148/1659/81 1161/1673/80 1160/1674/81 +f 1147/1656/82 1160/1674/81 1159/1675/82 +f 1147/1676/82 1158/1677/83 1146/1654/83 +f 1145/1652/84 1158/1677/83 1157/1678/84 +f 1145/1652/84 1156/1679/85 1144/1650/85 +f 1154/1668/3 1165/1680/68 1153/1669/68 +f 1155/1667/69 1166/1681/3 1154/1668/3 +f 1156/1679/70 1167/1682/69 1155/1667/69 +f 1157/1678/6 1168/1683/70 1156/1679/70 +f 1158/1677/71 1169/1684/6 1157/1678/6 +f 1159/1685/72 1170/1686/71 1158/1677/71 +f 1160/1674/2 1171/1687/72 1159/1675/72 +f 1161/1673/73 1172/1688/2 1160/1674/2 +f 1162/1672/74 1173/1689/73 1161/1673/73 +f 1163/1671/12 1174/1690/74 1162/1672/74 +f 1164/1670/67 1175/1691/12 1163/1671/12 +f 1153/1669/68 1176/1692/67 1164/1670/67 +f 1165/1680/98 1178/1693/97 1177/1694/98 +f 1165/1680/98 1188/1695/88 1176/1692/88 +f 1176/1692/88 1187/1696/87 1175/1691/87 +f 1175/1691/87 1186/1697/89 1174/1690/89 +f 1174/1690/89 1185/1698/90 1173/1689/90 +f 1173/1689/90 1184/1699/91 1172/1688/91 +f 1172/1688/91 1183/1700/92 1171/1687/92 +f 1171/1701/92 1182/1702/93 1170/1686/93 +f 1169/1684/94 1182/1702/93 1181/1703/94 +f 1168/1683/95 1181/1703/94 1180/1704/95 +f 1167/1682/96 1180/1704/95 1179/1705/96 +f 1166/1681/97 1179/1705/96 1178/1693/97 +f 1178/1693/3 1189/1706/68 1177/1694/68 +f 1179/1705/69 1190/1707/3 1178/1693/3 +f 1180/1704/70 1191/1708/69 1179/1705/69 +f 1181/1703/6 1192/1709/70 1180/1704/70 +f 1182/1702/71 1193/1710/6 1181/1703/6 +f 1183/1711/72 1194/1712/71 1182/1702/71 +f 1184/1699/2 1195/1713/72 1183/1700/72 +f 1185/1698/73 1196/1714/2 1184/1699/2 +f 1186/1697/74 1197/1715/73 1185/1698/73 +f 1187/1696/12 1198/1716/74 1186/1697/74 +f 1188/1695/67 1199/1717/12 1187/1696/12 +f 1177/1694/68 1200/1718/67 1188/1695/67 +f 1198/1716/79 1211/1719/78 1210/1720/79 +f 1199/1717/78 1212/1721/77 1211/1719/78 +f 1189/1706/76 1212/1721/77 1200/1718/77 +f 1190/1707/75 1201/1722/76 1189/1706/76 +f 1191/1708/86 1202/1723/75 1190/1707/75 +f 1192/1709/85 1203/1724/86 1191/1708/86 +f 1193/1710/84 1204/1725/85 1192/1709/85 +f 1194/1712/83 1205/1726/84 1193/1710/84 +f 1195/1727/82 1206/1728/83 1194/1712/83 +f 1196/1714/81 1207/1729/82 1195/1713/82 +f 1196/1714/81 1209/1730/80 1208/1731/81 +f 1198/1716/79 1209/1730/80 1197/1715/80 +f 1202/1723/3 1213/1732/68 1201/1722/68 +f 1203/1724/69 1214/1733/3 1202/1723/3 +f 1204/1725/70 1215/1734/69 1203/1724/69 +f 1205/1726/6 1216/1735/70 1204/1725/70 +f 1206/1728/71 1217/1736/6 1205/1726/6 +f 1207/1737/72 1218/1738/71 1206/1728/71 +f 1208/1731/2 1219/1739/72 1207/1729/72 +f 1209/1730/73 1220/1740/2 1208/1731/2 +f 1210/1720/74 1221/1741/73 1209/1730/73 +f 1211/1719/12 1222/1742/74 1210/1720/74 +f 1212/1721/67 1223/1743/12 1211/1719/12 +f 1201/1722/68 1224/1744/67 1212/1721/67 +f 1224/1744/88 1225/1745/98 1236/1746/88 +f 1213/1732/98 1226/1747/97 1225/1745/98 +f 1214/1733/97 1227/1748/96 1226/1747/97 +f 1215/1734/96 1228/1749/95 1227/1748/96 +f 1216/1735/95 1229/1750/94 1228/1749/95 +f 1218/1738/93 1229/1750/94 1217/1736/94 +f 1219/1751/92 1230/1752/93 1218/1738/93 +f 1220/1740/91 1231/1753/92 1219/1739/92 +f 1221/1741/90 1232/1754/91 1220/1740/91 +f 1221/1741/90 1234/1755/89 1233/1756/90 +f 1223/1743/87 1234/1755/89 1222/1742/89 +f 1223/1743/87 1236/1746/88 1235/1757/87 +f 1226/1747/3 1237/468/68 1225/1745/68 +f 1227/1748/69 1238/492/3 1226/1747/3 +f 1228/1749/70 1239/491/69 1227/1748/69 +f 1229/1750/6 1240/489/70 1228/1749/70 +f 1230/1752/71 1241/487/6 1229/1750/6 +f 1231/1758/72 1242/485/71 1230/1752/71 +f 1232/1754/2 1243/480/72 1231/1753/72 +f 1233/1756/73 1244/479/2 1232/1754/2 +f 1234/1755/74 1245/475/73 1233/1756/73 +f 1235/1757/12 1246/474/74 1234/1755/74 +f 1236/1746/67 1247/472/12 1235/1757/12 +f 1225/1745/68 1248/470/67 1236/1746/67 +f 1250/754/2 1261/1759/72 1249/495/72 +f 1251/493/73 1262/1760/2 1250/494/2 +f 1252/753/74 1263/1761/73 1251/490/73 +f 1253/752/12 1264/1762/74 1252/488/74 +f 1254/751/67 1265/1763/12 1253/486/12 +f 1255/750/68 1266/1764/67 1254/484/67 +f 1256/481/3 1267/1765/68 1255/482/68 +f 1257/749/69 1268/1766/3 1256/478/3 +f 1258/476/70 1269/1767/69 1257/477/69 +f 1259/748/6 1270/1768/70 1258/473/70 +f 1260/747/71 1271/1769/6 1259/471/6 +f 1249/746/72 1272/1770/71 1260/469/71 +f 30/764/45 31/770/43 15/765/43 +f 23/767/42 24/772/46 8/768/46 +f 31/770/43 32/777/47 16/771/47 +f 24/772/46 25/807/6 9/773/6 +f 17/774/12 18/781/48 2/775/48 +f 32/777/47 17/774/12 1/776/12 +f 25/778/6 26/783/49 10/779/49 +f 18/781/48 19/785/44 3/782/44 +f 26/783/49 27/787/41 11/784/41 +f 19/785/44 20/789/50 4/786/50 +f 27/787/41 28/791/51 12/788/51 +f 20/789/50 21/793/3 5/790/3 +f 28/791/51 29/795/2 13/792/2 +f 21/793/3 22/796/52 6/794/52 +f 29/795/2 30/764/45 14/766/45 +f 22/796/52 23/767/42 7/769/42 +f 47/797/53 48/1771/54 32/777/54 +f 48/798/54 33/1772/55 17/774/55 +f 33/799/55 34/1773/56 18/781/56 +f 34/800/56 35/1774/57 19/785/57 +f 35/801/57 36/1775/58 20/789/58 +f 20/789/58 36/1776/58 37/802/37 +f 37/803/37 38/1777/59 22/796/59 +f 22/796/59 38/1778/59 39/804/60 +f 39/805/60 40/1779/61 24/772/61 +f 40/806/61 41/1780/62 25/807/62 +f 41/808/62 42/843/63 26/783/63 +f 26/783/63 42/1781/63 43/809/64 +f 27/787/64 43/1782/64 44/810/65 +f 44/811/65 45/1783/31 29/795/31 +f 45/812/31 46/1784/66 30/764/66 +f 46/813/66 47/1785/53 31/770/53 +f 35/814/44 51/844/44 52/815/50 +f 43/817/41 59/845/41 60/818/51 +f 36/816/50 52/815/50 53/820/3 +f 44/819/51 60/818/51 61/822/2 +f 37/821/3 53/820/3 54/824/52 +f 45/823/2 61/822/2 62/826/45 +f 38/825/52 54/824/52 55/828/42 +f 46/827/45 62/826/45 63/830/43 +f 39/829/42 55/828/42 56/832/46 +f 47/831/43 63/830/43 64/834/47 +f 40/833/46 56/832/46 57/836/6 +f 33/838/12 49/841/12 50/839/48 +f 48/835/47 64/834/47 49/841/12 +f 41/808/6 57/857/6 58/842/49 +f 34/840/48 50/839/48 51/844/44 +f 42/843/49 58/842/49 59/845/41 +f 62/826/66 78/1786/66 79/846/53 +f 79/847/53 80/1787/54 64/834/54 +f 80/848/54 65/1788/55 49/841/55 +f 65/849/55 66/1789/56 50/839/56 +f 66/850/56 67/1790/57 51/844/57 +f 51/844/57 67/1791/57 68/851/58 +f 52/815/58 68/1792/58 69/852/37 +f 69/853/37 70/1793/59 54/824/59 +f 70/854/59 71/1794/60 55/828/60 +f 55/828/60 71/1795/60 72/855/61 +f 56/832/61 72/1796/61 73/856/62 +f 57/857/62 73/1797/62 74/858/63 +f 58/842/63 74/1798/63 75/859/64 +f 75/860/64 76/1799/65 60/818/65 +f 60/818/65 76/1800/65 77/861/31 +f 77/862/31 78/1801/66 62/826/66 +f 96/863/67 108/867/67 107/864/12 +f 97/866/68 109/869/68 108/867/67 +f 98/868/3 110/871/3 109/869/68 +f 99/870/69 111/873/69 110/871/3 +f 100/872/70 112/875/70 111/873/69 +f 101/874/6 113/897/6 112/875/70 +f 102/876/71 114/880/71 113/877/6 +f 103/879/72 115/882/72 114/880/71 +f 104/881/2 116/884/2 115/882/72 +f 105/883/73 117/886/73 116/884/2 +f 106/885/74 118/887/74 117/886/73 +f 95/865/12 107/864/12 118/887/74 +f 110/871/75 122/900/75 121/888/76 +f 109/869/76 121/888/76 120/889/77 +f 108/867/77 120/889/77 119/890/78 +f 118/887/79 107/864/78 119/890/78 +f 117/886/80 118/887/79 130/891/79 +f 116/884/81 117/886/80 129/892/80 +f 115/882/82 116/884/81 128/893/81 +f 114/880/83 115/882/82 127/894/82 +f 113/877/84 114/880/83 126/895/83 +f 113/897/84 125/906/84 124/898/85 +f 111/873/86 112/875/85 124/898/85 +f 111/873/86 123/899/86 122/900/75 +f 120/889/67 132/902/67 131/901/12 +f 121/888/68 133/903/68 132/902/67 +f 122/900/3 134/904/3 133/903/68 +f 123/899/69 135/905/69 134/904/3 +f 124/898/70 136/907/70 135/905/69 +f 125/906/6 137/1802/6 136/907/70 +f 126/895/71 138/909/71 137/908/6 +f 127/894/72 139/910/72 138/909/71 +f 128/893/2 140/911/2 139/910/72 +f 129/892/73 141/912/73 140/911/2 +f 130/891/74 142/913/74 141/912/73 +f 119/890/12 131/901/12 142/913/74 +f 131/901/87 132/902/88 144/914/88 +f 131/901/87 143/915/87 154/916/89 +f 142/913/89 154/916/89 153/917/90 +f 141/912/90 153/917/90 152/918/91 +f 140/911/91 152/918/91 151/919/92 +f 139/910/92 151/919/92 150/920/93 +f 138/909/93 150/920/93 149/921/94 +f 136/907/95 137/1802/94 149/922/94 +f 136/907/95 148/923/95 147/924/96 +f 134/904/97 135/905/96 147/924/96 +f 133/903/98 134/904/97 146/925/97 +f 132/902/88 133/903/98 145/926/98 +f 144/914/67 156/928/67 155/927/12 +f 145/926/68 157/929/68 156/928/67 +f 146/925/3 158/930/3 157/929/68 +f 147/924/69 159/931/69 158/930/3 +f 148/923/70 160/932/70 159/931/69 +f 149/922/6 161/947/6 160/932/70 +f 150/920/71 162/934/71 161/933/6 +f 151/919/72 163/935/72 162/934/71 +f 152/918/2 164/936/2 163/935/72 +f 153/917/73 165/937/73 164/936/2 +f 154/916/74 166/938/74 165/937/73 +f 143/915/12 155/927/12 166/938/74 +f 164/936/81 165/937/80 177/939/80 +f 165/937/80 166/938/79 178/941/79 +f 155/927/78 167/942/78 178/941/79 +f 156/928/77 168/943/77 167/942/78 +f 157/929/76 169/944/76 168/943/77 +f 158/930/75 170/946/75 169/944/76 +f 158/930/75 159/931/86 171/945/86 +f 160/932/85 172/948/85 171/945/86 +f 161/947/84 173/957/84 172/948/85 +f 162/934/83 174/951/83 173/949/84 +f 162/934/83 163/935/82 175/950/82 +f 163/935/82 164/936/81 176/940/81 +f 168/943/67 180/953/67 179/952/12 +f 169/944/68 181/954/68 180/953/67 +f 170/946/3 182/955/3 181/954/68 +f 171/945/69 183/956/69 182/955/3 +f 172/948/70 184/958/70 183/956/69 +f 173/957/6 185/972/6 184/958/70 +f 174/951/71 186/960/71 185/959/6 +f 175/950/72 187/961/72 186/960/71 +f 176/940/2 188/962/2 187/961/72 +f 177/939/73 189/963/73 188/962/2 +f 178/941/74 190/964/74 189/963/73 +f 167/942/12 179/952/12 190/964/74 +f 190/964/89 179/952/87 191/965/87 +f 180/953/88 192/967/88 191/965/87 +f 181/954/98 193/969/98 192/967/88 +f 181/954/98 182/955/97 194/968/97 +f 183/956/96 195/971/96 194/968/97 +f 183/956/96 184/958/95 196/970/95 +f 185/972/94 197/978/94 196/970/95 +f 185/959/94 186/960/93 198/973/93 +f 187/961/92 199/975/92 198/973/93 +f 188/962/91 200/976/91 199/975/92 +f 189/963/90 201/977/90 200/976/91 +f 189/963/90 190/964/89 202/966/89 +f 192/967/67 204/53/67 203/30/12 +f 193/969/68 205/52/68 204/53/67 +f 194/968/3 206/50/3 205/52/68 +f 195/971/69 207/48/69 206/50/3 +f 196/970/70 208/46/70 207/48/69 +f 197/978/6 209/44/6 208/46/70 +f 198/973/71 210/40/71 209/41/6 +f 199/975/72 211/38/72 210/40/71 +f 200/976/2 212/36/2 211/38/72 +f 201/977/73 213/34/73 212/36/2 +f 202/966/74 214/32/74 213/34/73 +f 191/965/12 203/30/12 214/32/74 +f 216/56/71 228/1803/71 227/979/6 +f 217/54/72 229/1804/72 228/980/71 +f 218/537/2 230/1805/2 229/981/72 +f 219/536/73 231/1806/73 230/982/2 +f 220/535/74 232/1807/74 231/983/73 +f 221/534/12 233/1808/12 232/984/74 +f 222/42/67 234/1809/67 233/985/12 +f 223/533/68 235/1810/68 234/986/67 +f 224/532/3 236/1811/3 235/987/68 +f 225/531/69 237/1812/69 236/988/3 +f 226/530/70 238/1813/70 237/989/69 +f 215/529/6 227/1814/6 238/990/70 +f 253/991/68 254/1000/3 242/992/3 +f 260/994/2 261/1002/73 249/995/73 +f 257/997/6 258/1007/71 246/998/71 +f 254/1000/3 255/1009/69 243/1001/69 +f 261/1002/73 262/1011/74 250/1003/74 +f 251/1004/12 252/1012/67 240/1005/67 +f 258/1007/71 259/1013/72 247/1008/72 +f 255/1009/69 256/1014/70 244/1010/70 +f 262/1011/74 251/1004/12 239/1006/12 +f 252/1012/67 253/991/68 241/993/68 +f 259/1013/72 260/994/2 248/996/2 +f 256/1014/70 257/1815/6 245/1015/6 +f 297/1016/2 298/1028/43 290/1017/43 +f 295/1019/6 296/1029/41 288/1020/41 +f 293/1022/3 294/1030/42 286/1023/42 +f 291/1025/12 292/1032/44 284/1026/44 +f 298/1028/43 291/1025/12 283/1027/12 +f 296/1029/41 297/1016/2 289/1018/2 +f 294/1030/42 295/1816/6 287/1031/6 +f 292/1032/44 293/1022/3 285/1024/3 +f 352/1033/12 354/1036/47 353/1034/47 +f 354/1036/47 356/1038/43 355/1037/43 +f 356/1038/43 358/1040/45 357/1039/45 +f 358/1040/45 360/1042/2 359/1041/2 +f 360/1042/2 362/1044/51 361/1043/51 +f 362/1044/51 364/1046/41 363/1045/41 +f 364/1046/41 366/1048/49 365/1047/49 +f 366/1048/49 368/1817/6 367/1049/6 +f 368/1050/6 370/1053/46 369/1051/46 +f 370/1053/46 372/1055/42 371/1054/42 +f 372/1055/42 374/1057/52 373/1056/52 +f 374/1057/52 376/1059/3 375/1058/3 +f 376/1059/3 378/1061/50 377/1060/50 +f 378/1061/50 380/1063/44 379/1062/44 +f 380/1063/44 382/1065/48 381/1064/48 +f 382/1065/48 352/1033/12 351/1035/12 +f 384/1066/12 386/1069/47 385/1067/47 +f 386/1069/47 388/1071/43 387/1070/43 +f 388/1071/43 390/1073/45 389/1072/45 +f 390/1073/45 392/1075/2 391/1074/2 +f 392/1075/2 394/1077/51 393/1076/51 +f 394/1077/51 396/1079/41 395/1078/41 +f 396/1079/41 398/1081/49 397/1080/49 +f 398/1081/49 400/1818/6 399/1082/6 +f 400/1083/6 402/1086/46 401/1084/46 +f 402/1086/46 404/1819/42 403/1087/42 +f 403/1087/42 404/1819/42 406/1088/52 +f 406/1088/52 408/1091/3 407/1090/3 +f 408/1091/3 410/1093/50 409/1092/50 +f 410/1093/50 412/1095/44 411/1094/44 +f 412/1095/44 414/1097/48 413/1096/48 +f 414/1097/48 384/1066/12 383/1068/12 +f 423/1098/1 431/1114/1 438/1099/14 +f 429/1101/6 437/1820/6 436/1102/99 +f 427/1104/9 435/1112/9 434/1105/21 +f 425/1107/12 433/1113/12 432/1108/10 +f 430/1100/14 438/1099/14 437/1110/6 +f 428/1103/99 436/1102/99 435/1112/9 +f 426/1106/21 434/1105/21 433/1113/12 +f 424/1109/10 432/1108/10 431/1114/1 +f 555/1115/72 567/1138/72 566/1116/71 +f 554/1117/71 566/1116/71 565/1118/6 +f 530/1120/100 532/1123/51 531/1121/51 +f 532/1123/51 534/1125/41 533/1124/41 +f 534/1125/41 536/1127/49 535/1126/49 +f 536/1127/49 538/1129/6 537/1128/6 +f 538/1129/6 540/1131/46 539/1130/46 +f 540/1131/46 542/1133/42 541/1132/42 +f 542/1133/42 544/1135/52 543/1134/52 +f 544/1135/52 546/1821/101 545/1136/101 +f 556/1137/2 568/1140/2 567/1138/72 +f 557/1139/73 569/1142/73 568/1140/2 +f 558/1141/74 570/1144/74 569/1142/73 +f 559/1143/12 571/1166/12 570/1144/74 +f 560/1145/67 572/1149/67 571/1146/12 +f 561/1148/68 573/1151/68 572/1149/67 +f 562/1150/3 574/1153/3 573/1151/68 +f 563/1152/69 575/1155/69 574/1153/3 +f 564/1154/70 576/1156/70 575/1155/69 +f 553/1119/6 565/1118/6 576/1156/70 +f 568/1140/81 580/1169/81 579/1157/82 +f 567/1138/82 579/1157/82 578/1158/83 +f 566/1116/83 578/1158/83 577/1159/84 +f 576/1156/85 565/1118/84 577/1159/84 +f 575/1155/86 576/1156/85 588/1160/85 +f 574/1153/75 575/1155/86 587/1161/86 +f 574/1153/75 586/1162/75 585/1163/76 +f 572/1149/77 573/1151/76 585/1163/76 +f 571/1146/78 572/1149/77 584/1164/77 +f 571/1166/78 583/1175/78 582/1167/79 +f 569/1142/80 570/1144/79 582/1167/79 +f 569/1142/80 581/1168/80 580/1169/81 +f 578/1158/71 590/1171/71 589/1170/6 +f 579/1157/72 591/1172/72 590/1171/71 +f 580/1169/2 592/1173/2 591/1172/72 +f 581/1168/73 593/1174/73 592/1173/2 +f 582/1167/74 594/1176/74 593/1174/73 +f 583/1175/12 595/1822/12 594/1176/74 +f 584/1164/67 596/1178/67 595/1177/12 +f 585/1163/68 597/1179/68 596/1178/67 +f 586/1162/3 598/1180/3 597/1179/68 +f 587/1161/69 599/1181/69 598/1180/3 +f 588/1160/70 600/1182/70 599/1181/69 +f 577/1159/6 589/1170/6 600/1182/70 +f 589/1170/94 590/1171/93 602/1183/93 +f 589/1170/94 601/1184/94 612/1185/95 +f 600/1182/95 612/1185/95 611/1186/96 +f 599/1181/96 611/1186/96 610/1187/97 +f 598/1180/97 610/1187/97 609/1188/98 +f 597/1179/98 609/1188/98 608/1189/88 +f 596/1178/88 608/1189/88 607/1190/87 +f 594/1176/89 595/1822/87 607/1191/87 +f 594/1176/89 606/1192/89 605/1193/90 +f 592/1173/91 593/1174/90 605/1193/90 +f 591/1172/92 592/1173/91 604/1194/91 +f 590/1171/93 591/1172/92 603/1195/92 +f 602/1183/71 614/1197/71 613/1196/6 +f 603/1195/72 615/1198/72 614/1197/71 +f 604/1194/2 616/1199/2 615/1198/72 +f 605/1193/73 617/1200/73 616/1199/2 +f 606/1192/74 618/1201/74 617/1200/73 +f 607/1191/12 619/1216/12 618/1201/74 +f 608/1189/67 620/1203/67 619/1202/12 +f 609/1188/68 621/1204/68 620/1203/67 +f 610/1187/3 622/1205/3 621/1204/68 +f 611/1186/69 623/1206/69 622/1205/3 +f 612/1185/70 624/1207/70 623/1206/69 +f 601/1184/6 613/1196/6 624/1207/70 +f 622/1205/75 623/1206/86 635/1208/86 +f 623/1206/86 624/1207/85 636/1210/85 +f 624/1207/85 613/1196/84 625/1211/84 +f 613/1196/84 614/1197/83 626/1212/83 +f 614/1197/83 615/1198/82 627/1213/82 +f 616/1199/81 628/1214/81 627/1213/82 +f 617/1200/80 629/1215/80 628/1214/81 +f 618/1201/79 630/1217/79 629/1215/80 +f 619/1216/78 631/1226/78 630/1217/79 +f 620/1203/77 632/1220/77 631/1218/78 +f 620/1203/77 621/1204/76 633/1219/76 +f 621/1204/76 622/1205/75 634/1209/75 +f 626/1212/71 638/1222/71 637/1221/6 +f 627/1213/72 639/1223/72 638/1222/71 +f 628/1214/2 640/1224/2 639/1223/72 +f 629/1215/73 641/1225/73 640/1224/2 +f 630/1217/74 642/1227/74 641/1225/73 +f 631/1226/12 643/1241/12 642/1227/74 +f 632/1220/67 644/1229/67 643/1228/12 +f 633/1219/68 645/1230/68 644/1229/67 +f 634/1209/3 646/1231/3 645/1230/68 +f 635/1208/69 647/1232/69 646/1231/3 +f 636/1210/70 648/1233/70 647/1232/69 +f 625/1211/6 637/1221/6 648/1233/70 +f 648/1233/95 637/1221/94 649/1234/94 +f 638/1222/93 650/1236/93 649/1234/94 +f 639/1223/92 651/1238/92 650/1236/93 +f 639/1223/92 640/1224/91 652/1237/91 +f 641/1225/90 653/1240/90 652/1237/91 +f 641/1225/90 642/1227/89 654/1239/89 +f 643/1241/87 655/1247/87 654/1239/89 +f 644/1229/88 656/1243/88 655/1242/87 +f 645/1230/98 657/1244/98 656/1243/88 +f 646/1231/97 658/1245/97 657/1244/98 +f 647/1232/96 659/1246/96 658/1245/97 +f 648/1233/95 660/1235/95 659/1246/96 +f 650/1236/71 662/365/71 661/342/6 +f 651/1238/72 663/364/72 662/365/71 +f 652/1237/2 664/362/2 663/364/72 +f 653/1240/73 665/360/73 664/362/2 +f 654/1239/74 666/358/74 665/360/73 +f 655/1247/12 667/356/12 666/358/74 +f 656/1243/67 668/352/67 667/353/12 +f 657/1244/68 669/350/68 668/352/67 +f 658/1245/3 670/348/3 669/350/68 +f 659/1246/69 671/346/69 670/348/3 +f 660/1235/70 672/344/70 671/346/69 +f 649/1234/6 661/342/6 672/344/70 +f 674/368/67 686/1823/67 685/1248/12 +f 675/366/68 687/1824/68 686/1249/67 +f 676/684/3 688/1825/3 687/1250/68 +f 677/683/69 689/1826/69 688/1251/3 +f 678/682/70 690/1827/70 689/1252/69 +f 679/681/6 691/1828/6 690/1253/70 +f 680/354/71 692/1829/71 691/1254/6 +f 681/680/72 693/1830/72 692/1255/71 +f 682/679/2 694/1831/2 693/1256/72 +f 683/678/73 695/1832/73 694/1257/2 +f 684/677/74 696/1833/74 695/1258/73 +f 673/676/12 685/1834/12 696/1259/74 +f 698/1260/74 710/1264/74 709/1261/73 +f 699/1263/12 711/1266/12 710/1264/74 +f 700/1265/67 712/1268/67 711/1266/12 +f 701/1267/68 713/1270/68 712/1268/67 +f 702/1269/3 714/1272/3 713/1270/68 +f 703/1271/69 715/1294/69 714/1272/3 +f 704/1273/70 716/1277/70 715/1274/69 +f 705/1276/6 717/1279/6 716/1277/70 +f 706/1278/71 718/1281/71 717/1279/6 +f 707/1280/72 719/1283/72 718/1281/71 +f 708/1282/2 720/1284/2 719/1283/72 +f 697/1262/73 709/1261/73 720/1284/2 +f 712/1268/77 724/1297/77 723/1285/78 +f 711/1266/78 723/1285/78 722/1286/79 +f 710/1264/79 722/1286/79 721/1287/80 +f 720/1284/81 709/1261/80 721/1287/80 +f 719/1283/82 720/1284/81 732/1288/81 +f 718/1281/83 719/1283/82 731/1289/82 +f 717/1279/84 718/1281/83 730/1290/83 +f 716/1277/85 717/1279/84 729/1291/84 +f 715/1274/86 716/1277/85 728/1292/85 +f 715/1294/86 727/1303/86 726/1295/75 +f 714/1272/75 726/1295/75 725/1296/76 +f 713/1270/76 725/1296/76 724/1297/77 +f 722/1286/74 734/1299/74 733/1298/73 +f 723/1285/12 735/1300/12 734/1299/74 +f 724/1297/67 736/1301/67 735/1300/12 +f 725/1296/68 737/1302/68 736/1301/67 +f 726/1295/3 738/1304/3 737/1302/68 +f 727/1303/69 739/1835/69 738/1304/3 +f 728/1292/70 740/1306/70 739/1305/69 +f 729/1291/6 741/1307/6 740/1306/70 +f 730/1290/71 742/1308/71 741/1307/6 +f 731/1289/72 743/1309/72 742/1308/71 +f 732/1288/2 744/1310/2 743/1309/72 +f 721/1287/73 733/1298/73 744/1310/2 +f 733/1298/90 734/1299/89 746/1311/89 +f 733/1298/90 745/1312/90 756/1313/91 +f 744/1310/91 756/1313/91 755/1314/92 +f 743/1309/92 755/1314/92 754/1315/93 +f 742/1308/93 754/1315/93 753/1316/94 +f 741/1307/94 753/1316/94 752/1317/95 +f 740/1306/95 752/1317/95 751/1318/96 +f 738/1304/97 739/1835/96 751/1319/96 +f 738/1304/97 750/1320/97 749/1321/98 +f 736/1301/88 737/1302/98 749/1321/98 +f 735/1300/87 736/1301/88 748/1322/88 +f 734/1299/89 735/1300/87 747/1323/87 +f 746/1311/74 758/1325/74 757/1324/73 +f 747/1323/12 759/1326/12 758/1325/74 +f 748/1322/67 760/1327/67 759/1326/12 +f 749/1321/68 761/1328/68 760/1327/67 +f 750/1320/3 762/1329/3 761/1328/68 +f 751/1319/69 763/1345/69 762/1329/3 +f 752/1317/70 764/1331/70 763/1330/69 +f 753/1316/6 765/1332/6 764/1331/70 +f 754/1315/71 766/1333/71 765/1332/6 +f 755/1314/72 767/1334/72 766/1333/71 +f 756/1313/2 768/1335/2 767/1334/72 +f 745/1312/73 757/1324/73 768/1335/2 +f 767/1334/82 779/1338/82 778/1336/83 +f 767/1334/82 768/1335/81 780/1337/81 +f 757/1324/80 769/1339/80 780/1337/81 +f 758/1325/79 770/1340/79 769/1339/80 +f 759/1326/78 771/1341/78 770/1340/79 +f 760/1327/77 772/1342/77 771/1341/78 +f 761/1328/76 773/1344/76 772/1342/77 +f 761/1328/76 762/1329/75 774/1343/75 +f 763/1345/86 775/1354/86 774/1343/75 +f 764/1331/85 776/1348/85 775/1346/86 +f 764/1331/85 765/1332/84 777/1347/84 +f 766/1333/83 778/1336/83 777/1347/84 +f 770/1340/74 782/1350/74 781/1349/73 +f 771/1341/12 783/1351/12 782/1350/74 +f 772/1342/67 784/1352/67 783/1351/12 +f 773/1344/68 785/1353/68 784/1352/67 +f 774/1343/3 786/1355/3 785/1353/68 +f 775/1354/69 787/1836/69 786/1355/3 +f 776/1348/70 788/1357/70 787/1356/69 +f 777/1347/6 789/1358/6 788/1357/70 +f 778/1336/71 790/1359/71 789/1358/6 +f 779/1338/72 791/1360/72 790/1359/71 +f 780/1337/2 792/1361/2 791/1360/72 +f 769/1339/73 781/1349/73 792/1361/2 +f 792/1361/91 781/1349/90 793/1362/90 +f 782/1350/89 794/1365/89 793/1362/90 +f 782/1350/89 783/1351/87 795/1364/87 +f 784/1352/88 796/1367/88 795/1364/87 +f 784/1352/88 785/1353/98 797/1366/98 +f 786/1355/97 798/1369/97 797/1366/98 +f 786/1355/97 787/1836/96 799/1368/96 +f 787/1356/96 788/1357/95 800/1370/95 +f 789/1358/94 801/1373/94 800/1370/95 +f 789/1358/94 790/1359/93 802/1372/93 +f 790/1359/93 791/1360/92 803/1374/92 +f 792/1361/91 804/1363/91 803/1374/92 +f 794/1365/74 806/398/74 805/373/73 +f 795/1364/12 807/396/12 806/398/74 +f 796/1367/67 808/394/67 807/396/12 +f 797/1366/68 809/392/68 808/394/67 +f 798/1369/3 810/390/3 809/392/68 +f 799/1368/69 811/388/69 810/390/3 +f 800/1370/70 812/382/70 811/385/69 +f 801/1373/6 813/381/6 812/382/70 +f 802/1372/71 814/379/71 813/381/6 +f 803/1374/72 815/377/72 814/379/71 +f 804/1363/2 816/375/2 815/377/72 +f 793/1362/73 805/373/73 816/375/2 +f 818/399/70 830/1837/70 829/1375/69 +f 819/702/6 831/1838/6 830/1376/70 +f 820/701/71 832/1839/71 831/1377/6 +f 821/700/72 833/1840/72 832/1378/71 +f 822/699/2 834/1841/2 833/1379/72 +f 823/698/73 835/1842/73 834/1380/2 +f 824/386/74 836/1843/74 835/1381/73 +f 825/383/12 837/1844/12 836/1382/74 +f 826/697/67 838/1845/67 837/1383/12 +f 827/696/68 839/1846/68 838/1384/67 +f 828/695/3 840/1847/3 839/1385/68 +f 817/694/69 829/1848/69 840/1386/3 +f 843/1387/6 855/1393/6 854/1388/70 +f 842/1389/70 854/1388/70 853/1390/69 +f 844/1392/71 856/1395/71 855/1393/6 +f 845/1394/72 857/1397/72 856/1395/71 +f 846/1396/2 858/1399/2 857/1397/72 +f 847/1398/73 859/1421/73 858/1399/2 +f 848/1400/74 860/1404/74 859/1401/73 +f 849/1403/12 861/1406/12 860/1404/74 +f 850/1405/67 862/1408/67 861/1406/12 +f 851/1407/68 863/1410/68 862/1408/67 +f 852/1409/3 864/1411/3 863/1410/68 +f 841/1391/69 853/1390/69 864/1411/3 +f 856/1395/83 868/1424/83 867/1412/84 +f 855/1393/84 867/1412/84 866/1413/85 +f 854/1388/85 866/1413/85 865/1414/86 +f 853/1390/86 865/1414/86 876/1415/75 +f 863/1410/76 864/1411/75 876/1415/75 +f 863/1410/76 875/1416/76 874/1417/77 +f 862/1408/77 874/1417/77 873/1418/78 +f 860/1404/79 861/1406/78 873/1418/78 +f 860/1404/79 872/1419/79 871/1420/80 +f 859/1421/80 871/1430/80 870/1422/81 +f 857/1397/82 858/1399/81 870/1422/81 +f 857/1397/82 869/1423/82 868/1424/83 +f 866/1413/70 878/1426/70 877/1425/69 +f 867/1412/6 879/1427/6 878/1426/70 +f 868/1424/71 880/1428/71 879/1427/6 +f 869/1423/72 881/1429/72 880/1428/71 +f 870/1422/2 882/1431/2 881/1429/72 +f 871/1430/73 883/1446/73 882/1431/2 +f 872/1419/74 884/1433/74 883/1432/73 +f 873/1418/12 885/1434/12 884/1433/74 +f 874/1417/67 886/1435/67 885/1434/12 +f 875/1416/68 887/1436/68 886/1435/67 +f 876/1415/3 888/1437/3 887/1436/68 +f 865/1414/69 877/1425/69 888/1437/3 +f 877/1425/96 878/1426/95 890/1438/95 +f 877/1425/96 889/1439/96 900/1440/97 +f 888/1437/97 900/1440/97 899/1441/98 +f 887/1436/98 899/1441/98 898/1442/88 +f 886/1435/88 898/1442/88 897/1443/87 +f 885/1434/87 897/1443/87 896/1444/89 +f 884/1433/89 896/1444/89 895/1445/90 +f 883/1446/90 895/1456/90 894/1447/91 +f 882/1431/91 894/1447/91 893/1448/92 +f 880/1428/93 881/1429/92 893/1448/92 +f 879/1427/94 880/1428/93 892/1449/93 +f 878/1426/95 879/1427/94 891/1450/94 +f 890/1438/70 902/1452/70 901/1451/69 +f 891/1450/6 903/1453/6 902/1452/70 +f 892/1449/71 904/1454/71 903/1453/6 +f 893/1448/72 905/1455/72 904/1454/71 +f 894/1447/2 906/1457/2 905/1455/72 +f 895/1456/73 907/1473/73 906/1457/2 +f 896/1444/74 908/1459/74 907/1458/73 +f 897/1443/12 909/1460/12 908/1459/74 +f 898/1442/67 910/1461/67 909/1460/12 +f 899/1441/68 911/1462/68 910/1461/67 +f 900/1440/3 912/1463/3 911/1462/68 +f 889/1439/69 901/1451/69 912/1463/3 +f 911/1462/76 923/1466/76 922/1464/77 +f 911/1462/76 912/1463/75 924/1465/75 +f 901/1451/86 913/1467/86 924/1465/75 +f 902/1452/85 914/1468/85 913/1467/86 +f 903/1453/84 915/1470/84 914/1468/85 +f 903/1453/84 904/1454/83 916/1469/83 +f 905/1455/82 917/1472/82 916/1469/83 +f 905/1455/82 906/1457/81 918/1471/81 +f 907/1473/80 919/1482/80 918/1471/81 +f 908/1459/79 920/1476/79 919/1474/80 +f 908/1459/79 909/1460/78 921/1475/78 +f 910/1461/77 922/1464/77 921/1475/78 +f 914/1468/70 926/1478/70 925/1477/69 +f 915/1470/6 927/1479/6 926/1478/70 +f 916/1469/71 928/1480/71 927/1479/6 +f 917/1472/72 929/1481/72 928/1480/71 +f 918/1471/2 930/1483/2 929/1481/72 +f 919/1482/73 931/1849/73 930/1483/2 +f 920/1476/74 932/1485/74 931/1484/73 +f 921/1475/12 933/1486/12 932/1485/74 +f 922/1464/67 934/1487/67 933/1486/12 +f 923/1466/68 935/1488/68 934/1487/67 +f 924/1465/3 936/1489/3 935/1488/68 +f 913/1467/69 925/1477/69 936/1489/3 +f 936/1489/97 925/1477/96 937/1490/96 +f 925/1477/96 926/1478/95 938/1492/95 +f 926/1478/95 927/1479/94 939/1493/94 +f 928/1480/93 940/1495/93 939/1493/94 +f 928/1480/93 929/1481/92 941/1494/92 +f 930/1483/91 942/1497/91 941/1494/92 +f 930/1483/91 931/1849/90 943/1496/90 +f 931/1484/90 932/1485/89 944/1498/89 +f 933/1486/87 945/1501/87 944/1498/89 +f 933/1486/87 934/1487/88 946/1500/88 +f 935/1488/98 947/1502/98 946/1500/88 +f 936/1489/97 948/1491/97 947/1502/98 +f 938/1492/70 950/428/70 949/404/69 +f 939/1493/6 951/427/6 950/428/70 +f 940/1495/71 952/425/71 951/427/6 +f 941/1494/72 953/423/72 952/425/71 +f 942/1497/2 954/421/2 953/423/72 +f 943/1496/73 955/419/73 954/421/2 +f 944/1498/74 956/415/74 955/416/73 +f 945/1501/12 957/411/12 956/415/74 +f 946/1500/67 958/410/67 957/411/12 +f 947/1502/68 959/408/68 958/410/67 +f 948/1491/3 960/406/3 959/408/68 +f 937/1490/69 949/404/69 960/406/3 +f 962/431/74 974/1850/74 973/1503/73 +f 963/429/12 975/1851/12 974/1504/74 +f 964/719/67 976/1852/67 975/1505/12 +f 965/718/68 977/1853/68 976/1506/67 +f 966/717/3 978/1854/3 977/1507/68 +f 967/716/69 979/1855/69 978/1508/3 +f 968/417/70 980/1856/70 979/1509/69 +f 969/715/6 981/1857/6 980/1510/70 +f 970/412/71 982/1858/71 981/1511/6 +f 971/714/72 983/1859/72 982/1512/71 +f 972/713/2 984/1860/2 983/1513/72 +f 961/712/73 973/1861/73 984/1514/2 +f 986/1515/2 998/1519/2 997/1516/72 +f 987/1518/73 999/1521/73 998/1519/2 +f 988/1520/74 1000/1523/74 999/1521/73 +f 989/1522/12 1001/1525/12 1000/1523/74 +f 990/1524/67 1002/1527/67 1001/1525/12 +f 991/1526/68 1003/1862/68 1002/1527/67 +f 992/1528/3 1004/1532/3 1003/1529/68 +f 993/1531/69 1005/1534/69 1004/1532/3 +f 994/1533/70 1006/1536/70 1005/1534/69 +f 995/1535/6 1007/1538/6 1006/1536/70 +f 996/1537/71 1008/1539/71 1007/1538/6 +f 985/1517/72 997/1516/72 1008/1539/71 +f 1000/1523/79 1012/1552/79 1011/1540/80 +f 999/1521/80 1011/1540/80 1010/1541/81 +f 997/1516/82 998/1519/81 1010/1541/81 +f 997/1516/82 1009/1542/82 1020/1543/83 +f 1007/1538/84 1008/1539/83 1020/1543/83 +f 1007/1538/84 1019/1544/84 1018/1545/85 +f 1006/1536/85 1018/1545/85 1017/1546/86 +f 1004/1532/75 1005/1534/86 1017/1546/86 +f 1003/1529/76 1004/1532/75 1016/1547/75 +f 1002/1527/77 1003/1862/76 1015/1549/76 +f 1002/1527/77 1014/1550/77 1013/1551/78 +f 1001/1525/78 1013/1551/78 1012/1552/79 +f 1010/1541/2 1022/1554/2 1021/1553/72 +f 1011/1540/73 1023/1555/73 1022/1554/2 +f 1012/1552/74 1024/1556/74 1023/1555/73 +f 1013/1551/12 1025/1557/12 1024/1556/74 +f 1014/1550/67 1026/1558/67 1025/1557/12 +f 1015/1549/68 1027/1572/68 1026/1558/67 +f 1016/1547/3 1028/1560/3 1027/1559/68 +f 1017/1546/69 1029/1561/69 1028/1560/3 +f 1018/1545/70 1030/1562/70 1029/1561/69 +f 1019/1544/6 1031/1563/6 1030/1562/70 +f 1020/1543/71 1032/1564/71 1031/1563/6 +f 1009/1542/72 1021/1553/72 1032/1564/71 +f 1022/1554/91 1034/1577/91 1033/1565/92 +f 1021/1553/92 1033/1565/92 1044/1566/93 +f 1032/1564/93 1044/1566/93 1043/1567/94 +f 1031/1563/94 1043/1567/94 1042/1568/95 +f 1030/1562/95 1042/1568/95 1041/1569/96 +f 1029/1561/96 1041/1569/96 1040/1570/97 +f 1028/1560/97 1040/1570/97 1039/1571/98 +f 1027/1572/98 1039/1583/98 1038/1573/88 +f 1025/1557/87 1026/1558/88 1038/1573/88 +f 1024/1556/89 1025/1557/87 1037/1574/87 +f 1023/1555/90 1024/1556/89 1036/1575/89 +f 1022/1554/91 1023/1555/90 1035/1576/90 +f 1034/1577/2 1046/1579/2 1045/1578/72 +f 1035/1576/73 1047/1580/73 1046/1579/2 +f 1036/1575/74 1048/1581/74 1047/1580/73 +f 1037/1574/12 1049/1582/12 1048/1581/74 +f 1038/1573/67 1050/1584/67 1049/1582/12 +f 1039/1583/68 1051/1600/68 1050/1584/67 +f 1040/1570/3 1052/1586/3 1051/1585/68 +f 1041/1569/69 1053/1587/69 1052/1586/3 +f 1042/1568/70 1054/1588/70 1053/1587/69 +f 1043/1567/6 1055/1589/6 1054/1588/70 +f 1044/1566/71 1056/1590/71 1055/1589/6 +f 1033/1565/72 1045/1578/72 1056/1590/71 +f 1054/1588/85 1055/1589/84 1067/1591/84 +f 1055/1589/84 1056/1590/83 1068/1593/83 +f 1045/1578/82 1057/1594/82 1068/1593/83 +f 1046/1579/81 1058/1595/81 1057/1594/82 +f 1047/1580/80 1059/1596/80 1058/1595/81 +f 1048/1581/79 1060/1597/79 1059/1596/80 +f 1049/1582/78 1061/1599/78 1060/1597/79 +f 1049/1582/78 1050/1584/77 1062/1598/77 +f 1051/1600/76 1063/1609/76 1062/1598/77 +f 1052/1586/75 1064/1603/75 1063/1601/76 +f 1052/1586/75 1053/1587/86 1065/1602/86 +f 1054/1588/85 1066/1592/85 1065/1602/86 +f 1058/1595/2 1070/1605/2 1069/1604/72 +f 1059/1596/73 1071/1606/73 1070/1605/2 +f 1060/1597/74 1072/1607/74 1071/1606/73 +f 1061/1599/12 1073/1608/12 1072/1607/74 +f 1062/1598/67 1074/1610/67 1073/1608/12 +f 1063/1609/68 1075/1863/68 1074/1610/67 +f 1064/1603/3 1076/1612/3 1075/1611/68 +f 1065/1602/69 1077/1613/69 1076/1612/3 +f 1066/1592/70 1078/1614/70 1077/1613/69 +f 1067/1591/6 1079/1615/6 1078/1614/70 +f 1068/1593/71 1080/1616/71 1079/1615/6 +f 1057/1594/72 1069/1604/72 1080/1616/71 +f 1080/1616/93 1069/1604/92 1081/1617/92 +f 1069/1604/92 1070/1605/91 1082/1619/91 +f 1070/1605/91 1071/1606/90 1083/1620/90 +f 1072/1607/89 1084/1621/89 1083/1620/90 +f 1073/1608/87 1085/1623/87 1084/1621/89 +f 1073/1608/87 1074/1610/88 1086/1622/88 +f 1074/1610/88 1075/1863/98 1087/1624/98 +f 1076/1612/97 1088/1626/97 1087/1625/98 +f 1077/1613/96 1089/1627/96 1088/1626/97 +f 1078/1614/95 1090/1628/95 1089/1627/96 +f 1079/1615/94 1091/1629/94 1090/1628/95 +f 1080/1616/93 1092/1618/93 1091/1629/94 +f 1082/1619/2 1094/462/2 1093/436/72 +f 1083/1620/73 1095/460/73 1094/462/2 +f 1084/1621/74 1096/458/74 1095/460/73 +f 1085/1623/12 1097/456/12 1096/458/74 +f 1086/1622/67 1098/454/67 1097/456/12 +f 1087/1624/68 1099/452/68 1098/454/67 +f 1088/1626/3 1100/446/3 1099/449/68 +f 1089/1627/69 1101/443/69 1100/446/3 +f 1090/1628/70 1102/442/70 1101/443/69 +f 1091/1629/6 1103/440/6 1102/442/70 +f 1092/1618/71 1104/438/71 1103/440/6 +f 1081/1617/72 1093/436/72 1104/438/71 +f 1106/463/3 1118/1864/3 1117/1630/68 +f 1107/736/69 1119/1865/69 1118/1631/3 +f 1108/735/70 1120/1866/70 1119/1632/69 +f 1109/734/6 1121/1867/6 1120/1633/70 +f 1110/733/71 1122/1868/71 1121/1634/6 +f 1111/732/72 1123/1869/72 1122/1635/71 +f 1112/450/2 1124/1870/2 1123/1636/72 +f 1113/447/73 1125/1871/73 1124/1637/2 +f 1114/444/74 1126/1872/74 1125/1638/73 +f 1115/731/12 1127/1873/12 1126/1639/74 +f 1116/730/67 1128/1874/67 1127/1640/12 +f 1105/729/68 1117/1875/68 1128/1641/67 +f 1131/1642/69 1143/1648/69 1142/1643/3 +f 1130/1644/3 1142/1643/3 1141/1645/68 +f 1132/1647/70 1144/1650/70 1143/1648/69 +f 1133/1649/6 1145/1652/6 1144/1650/70 +f 1134/1651/71 1146/1654/71 1145/1652/6 +f 1135/1653/72 1147/1676/72 1146/1654/71 +f 1136/1655/2 1148/1659/2 1147/1656/72 +f 1137/1658/73 1149/1661/73 1148/1659/2 +f 1138/1660/74 1150/1663/74 1149/1661/73 +f 1139/1662/12 1151/1665/12 1150/1663/74 +f 1140/1664/67 1152/1666/67 1151/1665/12 +f 1129/1646/68 1141/1645/68 1152/1666/67 +f 1144/1650/85 1156/1679/85 1155/1667/86 +f 1143/1648/86 1155/1667/86 1154/1668/75 +f 1142/1643/75 1154/1668/75 1153/1669/76 +f 1152/1666/77 1141/1645/76 1153/1669/76 +f 1151/1665/78 1152/1666/77 1164/1670/77 +f 1151/1665/78 1163/1671/78 1162/1672/79 +f 1150/1663/79 1162/1672/79 1161/1673/80 +f 1148/1659/81 1149/1661/80 1161/1673/80 +f 1147/1656/82 1148/1659/81 1160/1674/81 +f 1147/1676/82 1159/1685/82 1158/1677/83 +f 1145/1652/84 1146/1654/83 1158/1677/83 +f 1145/1652/84 1157/1678/84 1156/1679/85 +f 1154/1668/3 1166/1681/3 1165/1680/68 +f 1155/1667/69 1167/1682/69 1166/1681/3 +f 1156/1679/70 1168/1683/70 1167/1682/69 +f 1157/1678/6 1169/1684/6 1168/1683/70 +f 1158/1677/71 1170/1686/71 1169/1684/6 +f 1159/1685/72 1171/1701/72 1170/1686/71 +f 1160/1674/2 1172/1688/2 1171/1687/72 +f 1161/1673/73 1173/1689/73 1172/1688/2 +f 1162/1672/74 1174/1690/74 1173/1689/73 +f 1163/1671/12 1175/1691/12 1174/1690/74 +f 1164/1670/67 1176/1692/67 1175/1691/12 +f 1153/1669/68 1165/1680/68 1176/1692/67 +f 1165/1680/98 1166/1681/97 1178/1693/97 +f 1165/1680/98 1177/1694/98 1188/1695/88 +f 1176/1692/88 1188/1695/88 1187/1696/87 +f 1175/1691/87 1187/1696/87 1186/1697/89 +f 1174/1690/89 1186/1697/89 1185/1698/90 +f 1173/1689/90 1185/1698/90 1184/1699/91 +f 1172/1688/91 1184/1699/91 1183/1700/92 +f 1171/1701/92 1183/1711/92 1182/1702/93 +f 1169/1684/94 1170/1686/93 1182/1702/93 +f 1168/1683/95 1169/1684/94 1181/1703/94 +f 1167/1682/96 1168/1683/95 1180/1704/95 +f 1166/1681/97 1167/1682/96 1179/1705/96 +f 1178/1693/3 1190/1707/3 1189/1706/68 +f 1179/1705/69 1191/1708/69 1190/1707/3 +f 1180/1704/70 1192/1709/70 1191/1708/69 +f 1181/1703/6 1193/1710/6 1192/1709/70 +f 1182/1702/71 1194/1712/71 1193/1710/6 +f 1183/1711/72 1195/1727/72 1194/1712/71 +f 1184/1699/2 1196/1714/2 1195/1713/72 +f 1185/1698/73 1197/1715/73 1196/1714/2 +f 1186/1697/74 1198/1716/74 1197/1715/73 +f 1187/1696/12 1199/1717/12 1198/1716/74 +f 1188/1695/67 1200/1718/67 1199/1717/12 +f 1177/1694/68 1189/1706/68 1200/1718/67 +f 1198/1716/79 1199/1717/78 1211/1719/78 +f 1199/1717/78 1200/1718/77 1212/1721/77 +f 1189/1706/76 1201/1722/76 1212/1721/77 +f 1190/1707/75 1202/1723/75 1201/1722/76 +f 1191/1708/86 1203/1724/86 1202/1723/75 +f 1192/1709/85 1204/1725/85 1203/1724/86 +f 1193/1710/84 1205/1726/84 1204/1725/85 +f 1194/1712/83 1206/1728/83 1205/1726/84 +f 1195/1727/82 1207/1737/82 1206/1728/83 +f 1196/1714/81 1208/1731/81 1207/1729/82 +f 1196/1714/81 1197/1715/80 1209/1730/80 +f 1198/1716/79 1210/1720/79 1209/1730/80 +f 1202/1723/3 1214/1733/3 1213/1732/68 +f 1203/1724/69 1215/1734/69 1214/1733/3 +f 1204/1725/70 1216/1735/70 1215/1734/69 +f 1205/1726/6 1217/1736/6 1216/1735/70 +f 1206/1728/71 1218/1738/71 1217/1736/6 +f 1207/1737/72 1219/1751/72 1218/1738/71 +f 1208/1731/2 1220/1740/2 1219/1739/72 +f 1209/1730/73 1221/1741/73 1220/1740/2 +f 1210/1720/74 1222/1742/74 1221/1741/73 +f 1211/1719/12 1223/1743/12 1222/1742/74 +f 1212/1721/67 1224/1744/67 1223/1743/12 +f 1201/1722/68 1213/1732/68 1224/1744/67 +f 1224/1744/88 1213/1732/98 1225/1745/98 +f 1213/1732/98 1214/1733/97 1226/1747/97 +f 1214/1733/97 1215/1734/96 1227/1748/96 +f 1215/1734/96 1216/1735/95 1228/1749/95 +f 1216/1735/95 1217/1736/94 1229/1750/94 +f 1218/1738/93 1230/1752/93 1229/1750/94 +f 1219/1751/92 1231/1758/92 1230/1752/93 +f 1220/1740/91 1232/1754/91 1231/1753/92 +f 1221/1741/90 1233/1756/90 1232/1754/91 +f 1221/1741/90 1222/1742/89 1234/1755/89 +f 1223/1743/87 1235/1757/87 1234/1755/89 +f 1223/1743/87 1224/1744/88 1236/1746/88 +f 1226/1747/3 1238/492/3 1237/468/68 +f 1227/1748/69 1239/491/69 1238/492/3 +f 1228/1749/70 1240/489/70 1239/491/69 +f 1229/1750/6 1241/487/6 1240/489/70 +f 1230/1752/71 1242/485/71 1241/487/6 +f 1231/1758/72 1243/483/72 1242/485/71 +f 1232/1754/2 1244/479/2 1243/480/72 +f 1233/1756/73 1245/475/73 1244/479/2 +f 1234/1755/74 1246/474/74 1245/475/73 +f 1235/1757/12 1247/472/12 1246/474/74 +f 1236/1746/67 1248/470/67 1247/472/12 +f 1225/1745/68 1237/468/68 1248/470/67 +f 1250/754/2 1262/1876/2 1261/1759/72 +f 1251/493/73 1263/1877/73 1262/1760/2 +f 1252/753/74 1264/1878/74 1263/1761/73 +f 1253/752/12 1265/1879/12 1264/1762/74 +f 1254/751/67 1266/1880/67 1265/1763/12 +f 1255/750/68 1267/1881/68 1266/1764/67 +f 1256/481/3 1268/1882/3 1267/1765/68 +f 1257/749/69 1269/1883/69 1268/1766/3 +f 1258/476/70 1270/1884/70 1269/1767/69 +f 1259/748/6 1271/1885/6 1270/1768/70 +f 1260/747/71 1272/1886/71 1271/1769/6 +f 1249/746/72 1261/1887/72 1272/1770/71 diff --git a/src/main/resources/assets/hbm/textures/models/machines/derrick.png b/src/main/resources/assets/hbm/textures/models/machines/derrick.png index c962d2c70b28b91f84f379c471eeae02698c0267..e71af257a581cb073783c981b7860a1100ef88fd 100644 GIT binary patch literal 2119 zcmV-N2)Or&P)!E%~F7{~uug03Ak6YY$#?ZH!C!;_ib@&@%idg&wd+>?*s z^wys82)*Xqr1juBQl>%(g&v&UA|Me3b`gFvOb{fZAOHQn{k~mLa3rJA$V>8mN-18v zc!9rv|7P;{`}gn4vEM06cKu$rx3{^Rx0=U?`1$?&H)^#ST-VLyZ&A=R4FF)1D0h$(=@K~O5tMJY4GWE%A?8i^K-ua=H}+8tFX)pmx0t2Zre6A zO@n1wp(efZ;qs7)50CQQjIt_xm;Yw#dHL~F4bGGt*Db3QE|!B0KAX)v0QmIjQ)pjY zG9hb)kH_OgnZK<0_U&6pv2iV6)^LNfAZ;?4WZI-8Q8*)s!ufHb>)~)1+Mg%;`bdAyJD5;PVzi{ShNSOL>hmKFKAldzJe3msL9-%Fb+L=KXoL*z zH}luqw(Z2embnOa zG5QNkY@4upI5YaLec7JUe{9>%%(sd5rJ~>l4;pfp(RW=4X>;t=zE4yv(wB;&5JB5$ zH1e1~|MKNap?#=m)X`|H-eK;m)3;J;Yx%zJas0zqCh%!LY zBXpo3O?p<8!Dk04t-@IkAhKAX`6JB{qVf% z|4~#5FBzp%IBSmMlzdE+y$>R@d8IQr@O+c%&y~M_|K7W}xZvA6oelut>gvj?*Xsa) z$Hzx>yIlZ)uIv2&FPBRUheMp7pYsLS)Fape05>-`UfllYj*r{_@#Dv>_@I;qPr}8; z1(?C-^ZDM#$cnTE&$3xPv`OuBI?#2Ut2{{DK2Z#Z!>!*@N`q$|#qQIj``735IXayV zY}*DQ1e8)Zj>8i-s;YugidL(|kJWWOyDyLc|M-4DLW5^LdNnCbvAV8<5CQ-&3-TKv7TC_Om+N;-qfN~hBSr4)u?fKm!dDfj87Y4V`0)oSr|8IV@t zvgWlZrF`9S9GIpFN-2K)_`&x*Jv{*cn$0F}@)?(xm-(J>04WtN^C%P6^#V2*o9=G6i+;b4UatpLRkw~2O{MUJ_yaIXDF`8a+u7L}0HELRqucF*5CT?2^5xi0XAJP7N7x}re0P5 z|CB5v2LP{Ly~_2xgGi}xk@ev?*qy2Txp7_B(d~9YDdo{PE1ocA6GA`;!E(72b?O{x z6)szbEh;bYTvN@I&6;`{kW%3?bBIdWG0WvrxG$Gh;SA9kH`!X6V=08fMP=TiVu_;H z!-ER1#imO*K2(J`jy`*+;v^Nd-o2eX;$^{qT{cJ*XwoM-`~TsEV!fwfA;O_2@2XDZ3 zZM@ZLN!2YYtinYRtcMQ<0~m$@LI@AgSToKBN61_cKZ(?;Wm%a8PMW5n-|vGE0!`ES z7<9j%X3e;1n$R>2gb?)meJSevuIp|sg;RLkoebl)r@<-I!waKuf6!&yHdnQ6+qk~I z#$+-HZI3!ODa+-OFIgUw6+wj;#^6BM=**~>mzQ|``gLe~@R%}EsA^dhQTH)tHxP_^ z@3EhEYV~kw4W7pQ@VNhR$i+~^`Qe4>hs*NRplW`2$*AUs=Y(ue4XWmcXH1-r&GQLC zr#3&lP~9>h+SngHe86Nf+3USYsn_d#aU3T!Kb(zco6qN1EEasM8(TzE=ze(cd7vzH z`S9?7U%!5Zwg-~#IET2(8&pDMC+$e50}#5GK>^qRP)0#Mz;Cc^?Dua^%{zzKv5K| zRx8wMHGWYliUL9iEX(5SilU%atD)cT!!%8prpfaJQJAKQhldAvp2rv0b@@7_G_;K^ zpFe+&?QRz0ZpszuA+5q?p1o0Ir1ask%n&_AA{Fj0MJ7!_mOWQ3JCO>{`{A)c^0?DO xQnDE4ECOkLcttiuDqQsF5}EGwaB2h<{tv^!`N)h|wdMc-002ovPDHLkV1m!OOG7ab;p0_RxyBP6luD9hKeH53(tt80cRIeLXxEu@e2gV zBFG|(0Qn3NrO1>&Ll7rM;EgvyR#EK0YX^>V`dBn0}R;S+6IhXzmEW0 zTU!{=@AY~APreQah5;Z3BK~g?hXDc*T8IdkVMh4PX7d004}LHvAHaucfV{ikN>NMC_nZs_22yeal!?QxWG4+!nPfwuu@S`Bmrg_j4q?#m z2h(Lido?U*RxXqnQRz)Bt{s8{Y(D=vQ*Jm4^%H5PNYGS235JAz#bYA)g|eVUResfE zcl}_4#*0JM0ed`97@e|!3PL_Q3OE5Phz@64ar} zFjJg!s0l(eN8UE8fy*2^EN1d=I^|yT!_0)JA(|U;A&iTYM`(tRWXzyH=mX$fHRg}x zk7&5UB-(%Vj$XZ|ox{J`=URaozCHNTMPky+9R2dGveRs}rI#hlu3lWxg12g$InewRhWfk3Pye~JzBSPlN zYH5s+3~04>A#%prS6H~k@qp?4n@&sP0neWGVvL&V`7W6=so?>U>Ue<7`Br zY3=cVO(z%Y@emww#UvT!BFw`Bz?-I8S=(Y+A!NZ}!TjPa%D>rki3hBhmc|2oJzsGm zxXdq-lQ^k{6Nj34JRtIA`3N2`oqyBGX(cgAhMq}yK;_mEAjXWTC>MCstsvohGB?42 z_~0ox*=kX53je0l(s+P~kY!n|bewAc_)J%ZsY`Vk)R!o<8z>4V-4_Gl> z;sGnBOFUr3bcqM7n39((@c@#&4ygc8;sG%t^4YV;4}?%g2$`{3xCzTiu=|#rcDx-W z_jh8=<==E#8V~T=TvqkPAQK6b9q|B1o`*C}ge!TheuB*5-*j>j4~S7v%tlM+JOvL3 zPC%7ZYS2QH)+hd0laBlr_6LN*+&unGr%OCw#dL`Wte7tGfECjv9Qi`RkO(cfa(03O{p4M2JMCg$60FQbUa{hZ?Cps7Q@G~bQ(;M zmRpo!c45B3O#Th0rSX8?^ByTta}(>I6JsCjW-hB_6P1y2JxkOqY1Tis=#$ zSTQZVKS0FN#QMqf+3%GsBi-?@N>TX5_4|g+?+-8#H=F;D{@`81jG_pSI&i`df3!J| zFIam#AeO|lOp-Ee60JQRFiHL<(c0qyW@Vz5%269c7XS}1wzjrY2WK3o7iKq~S#u{N~!ctBPDCIU2TzdxWVzgA9KlK%Y9{?rm4Ves95 z{+E>)xTW!ce!pK^Fp{$liBrroRLd}zm=lm>P2;cbPY|S(za*I%pZ@Eo+_-Ur>(}3T zDd&6;SpptJRtcO!gJ#c`89L+>+)Zg3Cf&s^X7HFa`SqL zQ>=jUQ9Php8I4uXNqB&oRqy~y{=sEgzz{+KEdnl-j@aV?g}+HRo6TRtBV_q{(A|$d zF#jCWfrFWr z0aWB49UbxH@ng)4X0y5Yi08;ZZ@Lh8K$0JIRD>^Gdm91Xdh2a|^{c^|20c&ydD4Zz z1A6@)@%jHTHR<;UG#U*CgPwo>|AG`wIaU67(}jC~z}=5N2>F?S7G7%w-v8sTo0;+9 zNF4u9-}*aqnL~9ni4$KE5Bt!vFvjov*) z7=?;lR|@G*3#{N}Vscg)4X#5*HmIie_()6?NX{Ivxz5^iuh9D2hTc&BY^jq54iiccWfU2H$T2pTLv9Yk}oy>xR5pZYCaT&^zkR0VAoa44`=fOz8Y$VIYOl1 ze@}M0;s+4I>jKB|fEdQs`4ybQOwuhV#^ieZRQ^EU`0xW0fos>k1i*0U^)ky`8OA!t z(a{liKl;G#eEf;G=ppG#aYji0#@-=0Nxl~KxE?0w0afh}xxi?CFs=R4ctF2Dz&p+H zdVVlsagF`!18uw>KZ_rH_G<>$-oECmmr>Iy^?YAgQ{H^@Eq?KfpQlBL`9$phJpM`h z6EYSsL!NP7tFiV=;{jK%?uLa))&KGL2NcS%i0=;&PKU;o@ZPd{?+^Io<2x4dgh!7a zvGDr`vW!nYzGD(%;M&`7RiyhXs@?69 z-ah~|n+?p2JZ^7QAlqk$DhquHe0ZcpA{0Bmn> zrT&9Z9set@Y>kcothJz8`vq!5YmWywaU37F*?D~jfP07cdGNoFK!k3$OQ+jG3+3?e z0S_NN1fbPw^2JHV_jRQIW@Z1QLX_i|vGK#%YeCblj7hZg`-Go8dycAdCC^jFoI>01 zKH*}@`-HR1Q53~Y{#RdpH66cq|32@%`!4tH-RHR7W^Zo~Eef7KJ?4!!u5#|ka5aP~Z4S~Yay0xXLMT)leL^Eg*szd+sqj6E-? z@CCT){rS`Qd%Zq_mJT{}Aj`8<{SmdbJLdoZZXW9}xaPRe9&&fbV_(`!t(P8aq35+HDN)cme+FCqL%)?b~!Z zoutj9ct-VBd_UTt7;)l-+W60!2TW@}?f8Yj19n?YPP$#xjDv#%uHU$hs`A^fy-usy zK-Jj)@|W4)KR}1dFMs)z#!gJW>ixH{xT?l*SorI~Dxb0OFNq1yIbI@Skao(?!UH5| z$S58_7?e1F%XwMcvox4w(gGgfLGZ=+8_g!&ZU+&eeca~cq|42l*Eu*i;N+xBr_)7M z>7I1BdbO3FzBStaLBC)2Ka^DB_@6)TjgOxtG2uDK*M5IMtP(Yvt(0W7TD$D;@AI>J z_sKKI`?qf+K&R6|GDmZ#foZ@aCg2(U{=nacVqS?-Mm%BsOJTwb9AAGtz&SMVw|1L6 z{ro9E{po+xY_`~WeTO^~KL7l4j@!q)arF)M8qH*C%#^L|Et;)e1n73lB(E%~d((*X z38P>%n%<`rGi*1U4G)-hp0(c}U_jAxg$GPJ&)V+~5a8(O$>jGDSNI=4dK{%CJOL;42YqNm zp~j%!!#QDC_yS-x?u~cQfpOe!lV!qS(1%4P9~Qy`CY|U10L_t(BA)7J8vp33YX6(MB_j}*>`}dna&Y3yC<=prEyYB0{=e})geO_E-j|cz&;uhv- z>;Qld4FC{8NC12ygLw}JZ~PIa77jw-Cr;?fE%50ni!&&P=seCaGx&gWmf-gvCV!lS zJ^M13Fu>3CgM|Vq{?b<^v1Z@>M8rc6BBazIW(GfRGK0NOB%$cG>xEji4o{;koccD` z<8h02Ex)L*GS!v~5dIp8Be>5wVNu!J#B9FridlQJssDF6$7dSAm!4F2q!mONwq&P@V6dXwp6F1*X0-x zbXKrDT$u4(({3+`R?KWNVF)i?|4Kc#aC*9&b5NJcj={QK9)Eq9pHgR=t8^-&Y zo$ji%|8}e2vCn%(MGvJ*$bUW#-v7}BRmBnMs|8-9It{S?~U`pL*fW@<0ls zsI1z5T0IV;)&nU!!`XY8$sts8eG3(7@Y50NH#B*{b+hYA%?V61g^Pc?3ZY@A7<#1! zb*Cl0Y4UEnn!o1`ZDNhRLV3@m$d4EK2C`dc`}#5}Ro@=2qx5+z?3W~O_YdvG!OHt_@nX8Fj1MDQ>J|Mi|NY4pm+_*>e1BW7Ar|a zvWQoS(zENoaLJ{;5y%nUJz^kvC;BaY33X z#M{>Lfl|%5J#3t8=SqqnD<2U-9o!!WA-xhvW3llhixs|WQI`dOvK@wBNxmlW?!}R^ z$BLL--|A8c9p1~ zM*jqVK?qx$@vWur+uub;a%N%^*(W|uw-|p6Dd=z6ru*?)mKV3*vnOM>iK`G#_4`fy zT1Vpcq-+vqDD#9a+Fsj~i9l-ez9`4Y%xfhPA+=>hmS=P@P}hxhMr94|D$|Ml#EGJK zH-;;U4M{ZvF5g){s7s9fYjmQLc@ckg%siHN4tKfXma(i#`92yP5UuEkoRSMu#ISi8 z8{q@ubM4nxv})i^_^J&M=1x@{Wya)_pc(6)-rPW)XrqJpi34$vs(X={^ToKDC@Htt zN*8f_)e>G?nbhL78bLqz)e#}w;>3qCd>mM)E-9>qv|Nx+e+?fmaw=GtS>}f7s+3>q zVl(e|E6o*=D~$0yuRq%v8yjmsf(k_Xh?oarTKS26Q@CX<{aYk|O{Kk51BRFtt-myq z8ZC0<_Q8=*Yw$2I!MthxecRiTp&Q!~b8}Hq{|u1=d*xG5f@v0(e-#z^LJBR|hUlKY zyMbP$y1q^B%Vg`F1cs40IHTF9*6a-b!HuPpcU_;R_U=Ppt5m>Mmcyxv7z%tlPB?~q zU@gRW>yNg_+pVkD#B}u-VkWgAS|jCamgBlB-(pRyUl_g^bJN7@Ap;Wadf4V5!Mrc8 z6)3;|UGIdXk7d#0^~fXcX=8PDj|a|dc2DArKA8@MSUU?|I`ZS3lv1cP=a;gS&a8YUhnQ;YsYl4`>fm+)0j zg}hBTT9Rmz0I}ZnX3qSByHZXvDq=6c`aynDHeJ3oR!l6X_2ChtM~zj=51Go_9?hH& zREc}g8hGjc0AVj9)Y?xNua^OUHrm)CDty`!^kHoJR1+IhjnZVv40 z-@OslJ~QcADL8vx3sbw`7?~vX<8^n|z}jj{uZpfveFOs!A%%(D8@ra9WGr^0?>#G$ zhTD?|r(Qswt<6%rv*4~L@NiF{|1r=CLj{CqsX<4t`>C?sG~7L5bX<=qE?`vNC0$D3 z{t-ng)=;m%r@E6QK=kK&H*zXA5cXTzGFV%X3~q{39E*5 zwo2Ys!_ZewHLHIEOO2ej`CY8>unS zTv|NrxoSDSG5KM9u;5teFq7GoU|C~)YkBYl0-&DDOX3I2tpF%sUcPCcu|QI@DL%wB zq;F1cehj%AA0I;Mb88?K*buucCAoF{YuyRJy4out67OvnU=nVP;saFGaS%Y2v30m( zAWu4idXiv(Hff`5zVdFlEBM+V7F=*lPz*R^wGI)(?cY2}CK>hmc6dPass+RV7fyVH85CE3MGMpOPJcO?(-UI}Irmxd{HS7df_1kg?6qoh9ZjFim z>+RqiE*HvuzJ#^>Q(~ZfD~kdgvI!FYD*KO+SUYS}(J{dwHx}+q zV71=I(CVcZBEhgK-+b)|Dlqk~)w?!EDD}jNTUU>QacA;%52CE*UDMC50G~_spqcZe z(np&$0;T$rlj&l}wh;sicU>Zas_!o`pdRI1sdB;Z8+UP1r*UJhD04cKLXKT#JnRlk z?6l%x_IffRID7O`ysv(jxpM1ULY4fkLd!mwR>Kb&Rp264j7UM-ia>S_ZQ2HP?!R$- zL2FI);4Zh)J2(Ye4K17V*T2{$TPn@vt$}6AOrYFDYm~J|RfUbkH2L~%FvuW2lDVz) zOF}oJ3}C{xFN^XG9yf~0joT|i#0t@-@--zO5UUN;{$+Vb2fG8A*3vckH2=ihFVczT zIcC9@EK=NTWo4}k&SaKhZHAhZ8VLpU!nvXYdEn+yJc1#OM8b&duJKFpf*RvmfbuSt zG?I|#>Sd^a?XEytp?DvL`t<+A8r}(+$+wp8C2j)#U`?Q`A~wyEQ8g*byMxCHqXF67 zv_fmj^}3)t=L1ZCiXv4HJw+3`0wycR6O1`2J@nXGV-Kc>3n_1W)@+>X#kH8O8_b@1 z_{m#-T2!IBNhy0!oar2MFJ~&~wC3=EJ_K>_IOmqi&$64cu-TcmD;+ zh6JnD?A_B`h&iDW0Rj54%|cDJ2=(X(e=a0sCYE1W>rYMvA$)Zsm{@<@(rPPSSc$}N(L)9M|R1xGIOxlFuJ;QY1N zC*6+MzUsUPDd#CL`xVW0JzA7y#Mh<1on8+tHNCK`HeOkHQY}U2jp$&191xfITx?14N$NjwR|Nx`aczXFdhDVef$x1?&6OAV9$XDN1j%GUb9BV#(+tq>K3dz{ zX{{RGzlCtupSP9z*8bzph)tjaO7o#4x&kckaBD7jNgyK!O!tg|iyiJjMuq{}w%j2w ztCb#lcX^}hx#Q-Z9g~15i(ahIC;*%c5^n>A$WMY*134*-Kg`~U zg2u``Sp^s%cLOi)>c{}VZSe4c+Xk?AXQNuf!X@h$W*%ee+oofMif1U2Wm%cuJWj^1 zZyF!)%5ZxYLG@oZRU~bXHnyB1Fg;u7k~c|0wvQfV)B`xh{JnKPOpHbbWTNa}$5%xP zY-Nymn)fFbv@{xT7WBVNa&=ImV!>c|i@~1P`h9O;Ex>dS*(^dn<_JWyu20^K_N#AY z7(~ANPFiTCwNOMS)AT_pD~1XL^hwoqKCu*t0j&+asuq-QmMzvTO$C~#4~Ol1Cm+C7 zm#*%sq{I(O)({YBwUk<8RqNrXTBY`ZeHGoq1n)Xycb>{BLc(|2;A%gk;lX@p{n0~1 zqqW~;-Tf0BfB2r{I%W`na}kQ|Jt{wQdQsOcG3(xq#|KWQarPNo@oQa(+N}!*-0D>E zB$;OQY*39;oh~XMP-(ujZP2@9d%4m%Tyk=4e`ij5ZT@bWtC&}2geh2|WSn1yXsGMI zcygoZ?vsF!$z1)=j_{CsF@4_ZQk#C*X41dh~tQYZa*TFazI&D=rd;eg4?3 zKGuujS>9BF#4T6yP_F^o10bTNtY@2)HEDvNk_x6>^f1JH$SZB|*uX03ABGl28=`}z zE7Ggp#6qWXfp%8hXWdC7$WrIwj`ztO`>A%7_Zo-APpwPoiqYUyL?q%C={}Gol>+_` zIl%MG0GY~kmQS~=2&%t}wx$*biL;Lfo*_+L67kyD`5o<S)Ei28#kY0M+@@^={Ac&Mqe4AMf=~TsCcPJ(KmRO(fyh$By zCfXPB2*qOs0tKw-PRPnRVC-cHG;9B@;6G?1A`pA!0Ha$M=>{i^v`Y#wIJ@x?Q9Gc_ zJ;2$(Gms+{6#`t$3!Eit?+5*Iyyid{NK1 zO^18~8}ZM2xZs?{us{Nn5x?CS_!C}GH+r0na#m9phbTai|F7c;v1l+_Cq(wl- zURkP*?C44*fc2Nj3I6I}Aro;UGEs zXkJO3QkngEb}WB)BiiVbAOeD)#4<&H8Q*ibbjK3v7~tIZ;GBsOM`tH*8DQQX|5q9U z%R3ST0Op@OGencW!2rPhIM&yRTx-ori~*jTvcaqR#o+JAm9qLLU?J@CCIkZ{3A z5f>qcoSS;a7>aHDRqy+@1o&}^An>oPru!TnjToUT5&UlM#oQF00Mv3Zh4+Y%M@F-x zbfH+(EAyrFYy)sdBAEHqx8VierSZa@J4^_+B6czkG~#VTWICZq!e%j!hTXbH0dU`< z3JAlquSJnQr){bpPoF{q{nF}{$BaV92!756wJZ;pXhCD*CD`OExN2&f94bZC(ZqwF zctgl1tceA6;W%4p_=~+2#f&a-c>fGp!cR4iB(};ml2vY199W)ooGp`&{a?Lk6ZQ-M zS0N!{hTU#b1{+zFBxDh`-~o4SYlWF~a56$x73_)pmJp!it7!O>3 zB@-i}-TULf8ZMGrcj49srX&PIKN!j66sWtL=h6D5oHs>syskgZ>{>^VaAqdX^OkUHC|fv z%>7s(i8cbsoUMZw_Ubo~GjSF7qscW@!&R?*winvn%;>w2ZS_5=ksr~}X9oTzJDX)& z4J7>%LPu6iNU6t7WKt~E!%(Z>c)t%g{{EHU&bXm4`a$ZQuZWZ%8k)(7(K3ntsCWEY cS6jEC@8wKlC}tm6U|SKeIBR{T(iENaKMA|ybpQYW literal 0 HcmV?d00001 From 84d25284648ef86c4427e85ea7205edca2338bd0 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 18 Aug 2024 15:17:20 -0500 Subject: [PATCH 19/23] kms (fix cutting off of refinery gui) --- src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 95aed769b..958de4111 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -28,7 +28,7 @@ public class GUIMachineRefinery extends GuiInfoContainer { super(new ContainerMachineRefinery(invPlayer, tedf)); refinery = tedf; - this.xSize = 209; + this.xSize = 210; this.ySize = 231; } From 9ee553fe147df992edc288af6d3abf067ae62d13 Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 19 Aug 2024 12:25:24 +1000 Subject: [PATCH 20/23] Fix pumpjack tank sync --- .../machine/oil/TileEntityMachinePumpjack.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index dd804d1ca..7d836a45f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -112,12 +112,10 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } @Override - public void sendUpdate() { - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("indicator", this.indicator); - data.setFloat("speed", this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); - this.networkPack(data, 25); + public void networkPack(NBTTagCompound nbt, int range) { + nbt.setFloat("speed", this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); + + super.networkPack(nbt, range); } @Override From 680678b5b2745ae8f0be7c1c6ea45e148d283074 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 Aug 2024 16:38:29 +0200 Subject: [PATCH 21/23] :b:attery --- changelog | 17 ++------------ .../java/com/hbm/handler/ArmorModHandler.java | 7 ++++-- .../container/ContainerArmorTable.java | 21 +++++++++--------- .../com/hbm/inventory/gui/GUIArmorTable.java | 11 ++++----- .../com/hbm/items/armor/ItemArmorMod.java | 1 + .../com/hbm/items/armor/ItemModBattery.java | 13 +++++++++++ .../java/com/hbm/main/CraftingManager.java | 4 ++-- .../gui/machine/gui_armor_modifier.png | Bin 3019 -> 3083 bytes .../textures/items/arc_electrode_burnt.png | Bin 447 -> 0 bytes .../hbm/textures/items/arc_electrode_desh.png | Bin 537 -> 0 bytes .../textures/items/ingot_beskar_double.png | Bin 0 -> 276 bytes .../textures/items/ingot_beskar_single.png | Bin 0 -> 231 bytes 12 files changed, 40 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ItemModBattery.java delete mode 100644 src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png diff --git a/changelog b/changelog index b99450d57..a3f93e205 100644 --- a/changelog +++ b/changelog @@ -1,16 +1,3 @@ -## Changed -* To address certain balancing concerns, the RF to HE conversion rate is now 2:5. The HE to RF rate however is still 5:1 - * Because of this, using chains of converters as batteries becomes exponentially lossy with size, therefore the input decay has been removed - * Input decay can still be configured if desired - * No input decay also means that converters are no longer infinite energy sinks -* Power converter recipes have been updated -* Soldering stations will no longer work if the recipe requires no input fluid while fluid is present - * While this does complicate using the soldering station manually, as switching from milgrade to standard ICs requires emptying the solderer with a siphon, it does make automating easier, since soldering stations will no longer treat incomplete milgrade circuits as ICs -* Cement is now edible -* Derricks have been remodeled, the port configuration has changed so existing derricks need to be replaced -* Derricks no longer spawn oil spills -* Metal deco blocks are now crafted in batches of 4, as well as recycled in batches of 4. Each block is therefore still worth 25% of an ingot, but recycling your own deco blocks is no longer lossy - ## Fixed -* Fixed some machines not sending fluid gauge syncs properly -* Fixed refinery GUI crashing when invalid input is used \ No newline at end of file +* Fixed pumpjack gauges not syncing properly +* Fixed some concrete variants not being revertable into uncolored concrete \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index 9beabfb46..f7b8780ca 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -18,6 +18,9 @@ public class ArmorModHandler { public static final int cladding = 5; public static final int kevlar = 6; public static final int extra = 7; + public static final int battery = 8; + + public static final int MOD_SLOTS = 9; public static final UUID[] UUIDs = new UUID[] { UUID.fromString("8d6e5c77-133e-4056-9c80-a9e42a1a0b65"), @@ -146,7 +149,7 @@ public class ArmorModHandler { public static ItemStack[] pryMods(ItemStack armor) { - ItemStack[] slots = new ItemStack[8]; + ItemStack[] slots = new ItemStack[MOD_SLOTS]; if(!hasMods(armor)) return slots; @@ -154,7 +157,7 @@ public class ArmorModHandler { NBTTagCompound nbt = armor.getTagCompound(); NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); - for(int i = 0; i < 8; i++) { + for(int i = 0; i < MOD_SLOTS; i++) { NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + i); diff --git a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java index f8da90d3d..d63fcad3b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java @@ -19,20 +19,21 @@ import net.minecraft.util.IIcon; public class ContainerArmorTable extends Container { - public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, 8); + public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, ArmorModHandler.MOD_SLOTS); public IInventory armor = new InventoryCraftResult(); public ContainerArmorTable(InventoryPlayer inventory) { EntityPlayer player = inventory.player; this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.helmet_only, 26 + 22, 27)); // helmet only - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.legs_only, 98 + 22, 27)); // leggins only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.boots_only, 134 + 22, 45)); // boots only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.servos, 134 + 22, 81)); //servos/frame this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.cladding, 98 + 22, 99)); //radiation cladding - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.extra, 26 + 22, 99)); //special parts + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.battery, 8 + 22, 63)); //special parts this.addSlotToContainer(new Slot(armor, 0, 44 + 22, 63) { @@ -48,7 +49,7 @@ public class ContainerArmorTable extends Container { if(stack != null) { ItemStack[] mods = ArmorModHandler.pryMods(stack); - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { if(mods != null) upgrades.setInventorySlotContents(i, mods[i]); @@ -65,7 +66,7 @@ public class ContainerArmorTable extends Container { //if the armor piece is taken, absorb all armor pieces - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { ItemStack mod = upgrades.getStackInSlot(i); @@ -126,19 +127,19 @@ public class ContainerArmorTable extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 8) { - if(par2 != 8 || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, 9, 13, false)) - if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) + if(par2 <= ArmorModHandler.MOD_SLOTS) { + if(par2 != ArmorModHandler.MOD_SLOTS || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, ArmorModHandler.MOD_SLOTS + 1, ArmorModHandler.MOD_SLOTS + 5, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS + 5, this.inventorySlots.size(), true)) return null; var4.onPickupFromSlot(p_82846_1_, var5); } else { if(var5.getItem() instanceof ItemArmor) { - if(!this.mergeItemStack(var5, 8, 9, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS, ArmorModHandler.MOD_SLOTS + 1, false)) return null; - } else if(this.inventorySlots.get(8) != null && var5.getItem() instanceof ItemArmorMod) { + } else if(this.inventorySlots.get(ArmorModHandler.MOD_SLOTS) != null && var5.getItem() instanceof ItemArmorMod) { ItemArmorMod mod = (ItemArmorMod)var5.getItem(); int slot = mod.type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index e255586cf..250b9711f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -46,15 +46,16 @@ public class GUIArmorTable extends GuiInfoContainer { "armorMod.type.cladding", "armorMod.type.insert", "armorMod.type.special", + "armorMod.type.battery", "armorMod.insertHere" }; - for(int i = 0; i < 9; ++i) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS + 1; ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { - this.drawCreativeTabHoveringText((i < 8 ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); + this.drawCreativeTabHoveringText((i < ArmorModHandler.MOD_SLOTS ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); } } } @@ -75,7 +76,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 22, guiTop, 0, 0, this.xSize - 22, this.ySize); this.drawTexturedModalRect(guiLeft, guiTop + 31, 176, 96, 22, 100); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(armor != null) { @@ -89,7 +90,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 41 + 22, guiTop + 60, 176, 52, 22, 22); } - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { Slot slot = this.inventorySlots.getSlot(i); drawIndicator(i, slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); } @@ -98,7 +99,7 @@ public class GUIArmorTable extends GuiInfoContainer { private void drawIndicator(int index, int x, int y) { ItemStack mod = this.inventorySlots.getSlot(index).getStack(); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(mod == null) return; diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 505028648..cc6666e4f 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -64,6 +64,7 @@ public class ItemArmorMod extends Item { case ArmorModHandler.cladding: list.add(" " + I18nUtil.resolveKey("armorMod.type.cladding")); break; case ArmorModHandler.kevlar: list.add(" " + I18nUtil.resolveKey("armorMod.type.insert")); break; case ArmorModHandler.extra: list.add(" " + I18nUtil.resolveKey("armorMod.type.special")); break; + case ArmorModHandler.battery: list.add(" " + I18nUtil.resolveKey("armorMod.type.battery")); break; } } diff --git a/src/main/java/com/hbm/items/armor/ItemModBattery.java b/src/main/java/com/hbm/items/armor/ItemModBattery.java new file mode 100644 index 000000000..22193e17b --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModBattery.java @@ -0,0 +1,13 @@ +package com.hbm.items.armor; + +import com.hbm.handler.ArmorModHandler; + +public class ItemModBattery extends ItemArmorMod { + + public double mod; + + public ItemModBattery(double mod) { + super(ArmorModHandler.battery, true, true, true, true); + this.mod = mod; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index f3ba05a9c..ae3372886 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -408,8 +408,8 @@ public class CraftingManager { String dyeName = "dye" + dyes[15 - i]; addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName }); } - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored }); - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored_ext }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored, 1, OreDictionary.WILDCARD_VALUE) }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored_ext, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK }); diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png index 2834d35692c00f5e8c4c9b7a9743de6cbf4eeebe..b1c313de45bab564e34038ad667a6b3c2b1aea6b 100644 GIT binary patch delta 2797 zcmXYzc{CL28^_-nlQql;Stf%@mXZ*Ln6XB(Bvj~!NH;rU%QmB%JzJx4Wh+W{Wv7@> zqsB6wl-*b+BV$~24Knym=ic|6_dMr3=lh;#`Tp^KD2LOfvbFKuR%XVIQ3b3iOz6Ch zEO{+i?y=E3IS-naWji)MY+UK<1RWH8)|seowra>Fwv*7hdfjw-*|1w5_ngOuvB=rphbc7#x4@4Fg!=thQ z_FKLPt6>nc5P2aS)d3-iyPGeunE1H(Ax>ejKys2#f?L3PvivAy0w+G3ZNhj z0SGr>L;^$tuS2mYA(P1;$ye(}Uc1yl8KgOE`{-1;At(m~UpJvu z-!58u--hlh76aEr_E}+)bQJXC``GXEll$H|(_;-W z7HwHmYZJ78j8N+pN1kmrqoR?tOU5Z8eou&`vHi}pl#6N$Yas^P@UaVlV%ehT*xfyi z8bvA}`lIM`0sCIf8J~u==)J&}4$eOH5-Hasv}wp+RHIxGitP;&Ir>4lv@Y&`G~7BD z;5BY-cj!!06$p3CWFe#adPh)sq9f3h7#ifLSZ-w=no#k}MBakY(scYAuS#wz&?s9! zHS`0qplJ=NNBo!$d2O(Tj)KT^c5k*zObPiUq~4{bn&QFw$wWsev71gL4Ud~9DjMn? zz@AVQ|3Oj(B~lQe{6Piqo_UO#aKb<6FIG5xAIuD29F7QIUtlcT^&R30oR?Kdr_^`{ zDso3c)KD!9=JpxeR}guJ!8^BA>gFZ)YR&pXjmSO5awyd4zpphQ+pem|pz6L)bj;;F zv^+bcmQu9{2qNSj&vjfs`AIz$YYuW>4@A_Ccm@v1MISE=p79>LH;(S;OtRwe|~)VkO3^;>47^G>9@HmA9J%x9R{jngPutCd=IJ{S@G;5 zuf^|i(A!thGvdJhWI7%}qEILu_=#Grpdv=}WH^#udQDm&Bq(v<$FbK_X(@dSP@0PL z=62MhU&TZ(%(FB|PYP7U&sHh2o_AJ|zdX|g4pj%e{DuNsn1v~tsB(u4S6_*=Und_? zW*XT3FwHW1=?}~GUP3<2E%8vxWpUDm&9qd9^hXgMTq4bYyinO7REtZr z?>I)=JDZOUxu~TK{9D#^zK6Ycu?;ZC{LVzdsF9|2Ico_sTJ!w@jS2M@h0ud-GhU14 z3PxIk3hLS)Z{88=sTcK-sY4Jdn6fmaLRswKfGQR}%BL}~=tStm_Ibw7eE**KkO1Y% z^6{S`)FRQ~3^>7c{L{n+rz1I;GNfD1j83Q}pOuyX3vI2;H|OZ+$UZA<=Pu<&CX{V4 zfEf#{OWNQH{s5{^oGa*s z`+Ie={i;$%4pSz+oEzHMN=(Zq@$leFs+O$#Y;*mR&15=}Q$#{7BQInaom_Y0^Nnj7rI#Adqlf*OfRe(FIaJT)qdD{S~%>0#$6pM8>RtQQ_FM^9eV6J8W1IO0`%vleM^}kxwD$7$eBs)=KcXgxhp(M zAF5{$S1KznJG_J?PEZs{J{IDxI^_gyQ@iWWLA3?j&*%>HfxoEx6ZX&+y5*; zo0dr5l?T(k)IF#cI;XknPf% zO}T!hi9TWaajs|inE;aOg&iQXpgc3Q%gxj1?Mrpc5F37Q^?SW2mcE-k6`@Z(N8V`F zfpOz!_4-X1{jGds1@gW z-P9SMXH_$2V_YdphHfVQqqi)!3_$ne! zEm*J+Z^vv*Oz>RXTbum zf46$A#@WqqF#%v#Dl03OdS-(w4iRSmeK82WhPG8>;(lq9X{v$}33|5c~NSW`&WRlTu(`;qMD1?9c=E#35;ny>l&m?j}f(_nEBoM?m9AS4)a7TR4 z53pyr{8b$(mR(6go=BW;tb!gzRzh(F^sFBGKdfLuB0}gSv0hNf-0{GI-bWN)i>Z@` zcXB0ZHdqiSTY%pv)ptRQb6#pw(ZR{d2_?ce?S}o!2WEfjG3BK&Bvu0=Ww9e%UD^m; mJs&^;ZR%hosp(WMQOG5S zblgUN9s<1eG>FLU2Heb%()jqQ|I zv~2y=g^4i;bo(j$N{4dKnka!_ddCi0FRQ`3robEX)v3Wjy5HU=L}R^8mkWB#C`XDV zo4+<^Nv{38*I8#?IKa7a5(D(`}|)Bs{(JW=*kZQ-flWkfQ|3yNzYPu8zaN z(J6PwGT~_l05YU%)+|=*)Q{D<{E^rKs<|wv^lce+gbhfwOD?lP1Z|QAggWM2Fry>; zMhWQW3akj)b6X(P`-|w$0e9DPr7e2TpaFLo`#v;D!kH4V+CI^SjkSQ=6LI(m*NkLA zOISns2f*76=)N1#l*3z~)>c-mu;NfJ&p(etmQvRsaqo^p8$$830`@HV?c+%vl4$^n zP$KAR-B6hQ#43GYNqj!FQd(47MX$hr<3`M+c9vrV51WOkGcqiDuR! z!V0Gts&L};aOtwYkB43m=cA=;>rDw``s>@#y-w@g?| zBGh2t##?s9mTq+G*gG2cbSZ9ie0+Smtt<=5m8A!-v(_Mfl~`c6TJ2k+elC;0y%gHXr%K+EltFDJ%ho^I z%Ur`T!JO9X=Y8E()TD(@^`FU8uPGLEu~luIHK3t3e;Dr z1^Be-Hm?M~V3b_B24oah-C!)fYZ(68 z^0zZFUb>^Iz^#g=#H94}^yC$WitdQ6MTN%JUyfWb)zNPC@=dg$g_vWp^9Ibo`?B`3 z)ULWWGjW-WMD-09j=87YPda|qqW_mh>)ja}fs**~Kxb#?JB7pC7{mUi$>a9|S$>R7 zN&RAPF>#Fy zglE+NHiDbOXsO0j$=psO1FGLEM__Zr#g-eVaA)}WUa6{g5iC1drZo3udQ#&aA$;y) zT_9n#foUm3a#KgX^(>%151Cj@l5~p2eFAoxFfO^8pR1|_8gKsek5kXb8`7vxgdtyLQ26g7(uVAX>_lQ>`D!VAmNN(QFZo9niz+ zBfP0!v$J;|b%KK1}t6Tfz@x`azi|o3~Z!>+`sG{Y}n!redKKpBcS$*TZfn z!+FpUp28p6f(;36HeKP5m6ZP8Ap54NRkxht#8Uj~s6j#7Sk^3w>&oOHpe+BE%X;mJ z4TT$hv=z0MTvz!q!JFki?#f94)J9+R65fK8lA}E+X_YblkaL2^_N{JaEvghs`If`L z^*Z^WE`wUt8XdA8WqUi0dND(Pm38H2>W9-LjhV3% z8Ejup>_^Clvd@5MQ6*Ep6#^dK_y|cDcrx6(E*KB)9}&$8<5#^oX4+tMcNrO2N2$(D zE!EEm!Xr;Dvg^H7py0S}m5ky={Mp6=#KN_RP?wwu3R^9Ks6{D%g_~xuvk}DSFEzX*=N;zHea~AJopbgGs$&~f}VhNR*-pv zi_M_kKA=6Au8CjwtEDw$bX#5UmT!KYKUryl%j%VUakQ`x%&4m3pLZT74m?p2LihAb-!X2NOGQA#U{~6`eW^)oO&B@{lA|T@d-uxLpDq z^PxqCnGaSKLHR+NLQ`(_Q>h0-s3kubpM3_Q`@px;NpPfe!uH33a=2RZkI4U-|3;xe z(ZE-j)(ekRPU~z|Okh9|{$YPm48DnV5w7TGp*GgS4|EL2Cj>m_li>7W_%5$S;HG8> zUD5v6pbeqUzo5Xq)FXBK@m)uBu-=1xX_N?ctwc^P#qC4*Q;PsC?s5dA0bhApYI-p6Lcek4!CW2P1i zaiPEdKmRt1f2xx3#cIh^&8tUcFX_2JKnDyEO`yOnWC5#nEcv`%T1@J(WF^E8R~*x1 zk%-TS(!asc^f@@n{vVNqKPu-CQ4ZHclu562Sx}@d{WC4JQ+|)o!%Fuz6xKNYS}teW z5xkCMI5q1~kwzfZBtfQSM?7S?SSUk(r=UY0RY0gyx2+)eoXa~^dg$32kd6cPE_T)X Hd@lV5vY8Wv diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png deleted file mode 100644 index 5d278eded669175dc1744e7343df8d69b1570121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLtVP)@7kwJ=Ds0ls1J>L)rTF<$=o$tHn+{3vS7_oSs zr*Jq-KA(?zn2kaXg+dez20=uqR4Rx>A{f(34*31F8VJBTHHB`s3yZ~qcDoI|7P2tI zk>K^f?Qq~M8bvyrg(!-M$K!uH*m60^#2Ea7fV<=ku969mf=i_mBuQew3LH=C$;-J> zXx357J;G!#pxkW1Q+>mEBB|y#R6v?F)5`uKKh%jgk`)|zN`QM002ovPDHLkV1f@g!MFeb diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png deleted file mode 100644 index 007f2a98eaeb55118735cdc9d8ee950ec7c50913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)z_r3RgGcSLK(kF%pvv83HZd`;CCWJAB zn|3XV+C;dBNLnU{E~21~=)!OzYGkMsu5{5R$dsTK{YeT%PLMh-CUoY_obGGYB4*x& z3m+f%+;h(5ULazeQ3_*PW5z$huXhJ{r^%-)|5nrn&0&-J<2*HfA1o3>i3Hllr)Z)! zcwAe_=JP#pTa!@6z^bc7Qzio)1^m!xwwyZ)ucr&y*Bf9V0L0S7=5~1tleR@CD4?qU z07izIPqIY)!J=wo5ZlRM^Z8 z4RWp8V1Fm znqR4FLCdanll$|}S&Fi5YEG2cG(l$hjm9&J`HuJmekx@TD!R((Y;<$~fyXh9^=GBk X&t>oUbcpL9&|3_iu6{1-oD!Mv7C&dPn?Am8Hnui8NAL;o)A zHLrJ_mT{8!HN8pB=-7cMZU&8|JVK@HbBm{GG^Sth`82`%{oil{28-tc$#?jf(%1xj z9oLpxPhzduyH28$<4jG1%I$5umt5PXOk%pAvh^C{Da*%K>ba{p1x-J2y(<36pEB3~ bLjF_E%fc>l&OS>)-eB-_^>bP0l+XkK^7U0Y literal 0 HcmV?d00001 From b8d24b5c2de7b8916f455fc51a8bbb8e2a61ac12 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 20 Aug 2024 16:30:15 +0200 Subject: [PATCH 22/23] battery packs --- .../java/api/hbm/energymk2/IBatteryItem.java | 2 +- .../com/hbm/blocks/generic/HEVBattery.java | 2 +- .../java/com/hbm/handler/ArmorModHandler.java | 20 ++++++++++++++- src/main/java/com/hbm/items/ModItems.java | 3 +++ .../com/hbm/items/armor/ArmorFSBPowered.java | 24 ++++++++++-------- .../java/com/hbm/items/armor/ArmorHEV.java | 2 +- .../java/com/hbm/items/food/ItemPancake.java | 2 +- .../com/hbm/items/machine/ItemBattery.java | 9 ++++--- .../hbm/items/machine/ItemSelfcharger.java | 2 +- .../com/hbm/items/special/ItemGlitch.java | 2 +- .../com/hbm/items/special/ItemPotatos.java | 2 +- .../com/hbm/items/tool/ItemFusionCore.java | 2 +- .../hbm/items/tool/ItemSwordAbilityPower.java | 2 +- .../hbm/items/tool/ItemToolAbilityPower.java | 2 +- .../weapon/gununified/ItemEnergyGunBase.java | 6 ++--- src/main/java/com/hbm/lib/Library.java | 2 +- .../bomb/TileEntityNukeBalefire.java | 4 +-- .../tileentity/machine/TileEntityCharger.java | 4 +-- .../machine/TileEntityMachineDiesel.java | 2 +- .../storage/TileEntityMachineBattery.java | 2 +- src/main/java/com/hbm/util/BobMathUtil.java | 11 ++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ .../hbm/textures/items/armor_battery.png | Bin 367 -> 403 bytes .../hbm/textures/items/armor_battery_base.png | Bin 0 -> 367 bytes 25 files changed, 77 insertions(+), 34 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/armor_battery_base.png diff --git a/src/main/java/api/hbm/energymk2/IBatteryItem.java b/src/main/java/api/hbm/energymk2/IBatteryItem.java index 19202cfa1..d0d5931b7 100644 --- a/src/main/java/api/hbm/energymk2/IBatteryItem.java +++ b/src/main/java/api/hbm/energymk2/IBatteryItem.java @@ -10,7 +10,7 @@ public interface IBatteryItem { public void setCharge(ItemStack stack, long i); public void dischargeBattery(ItemStack stack, long i); public long getCharge(ItemStack stack); - public long getMaxCharge(); + public long getMaxCharge(ItemStack stack); public long getChargeRate(); public long getDischargeRate(); diff --git a/src/main/java/com/hbm/blocks/generic/HEVBattery.java b/src/main/java/com/hbm/blocks/generic/HEVBattery.java index e65f03038..388728e79 100644 --- a/src/main/java/com/hbm/blocks/generic/HEVBattery.java +++ b/src/main/java/com/hbm/blocks/generic/HEVBattery.java @@ -67,7 +67,7 @@ public class HEVBattery extends Block { if(st.getItem() instanceof IBatteryItem) { - long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); long charge = ((IBatteryItem) st.getItem()).getCharge(st); long newcharge = Math.min(charge + 150000, maxcharge); diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index f7b8780ca..04877a1df 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -134,7 +134,7 @@ public class ArmorModHandler { } /** - * Does what the name implies + * Does what the name implies. Returns true if the stack has NBT and that NBT has the MOD_COMPOUND_KEY tag. * @param armor * @return */ @@ -171,4 +171,22 @@ public class ArmorModHandler { return slots; } + + public static ItemStack pryMod(ItemStack armor, int slot) { + + if(!hasMods(armor)) + return null; + + NBTTagCompound nbt = armor.getTagCompound(); + NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); + NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + slot); + ItemStack stack = ItemStack.loadItemStackFromNBT(cmp); + + if(stack != null) + return stack; + + removeMod(armor, slot); + + return null; + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f3309fb32..d20976e44 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2174,6 +2174,7 @@ public class ModItems { public static Item card_aos; public static Item card_qos; public static Item australium_iii; + public static Item armor_battery; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3353,6 +3354,7 @@ public class ModItems { card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); + armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -7388,6 +7390,7 @@ public class ModItems { GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 0daddf0fb..d5368b5f3 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -2,6 +2,7 @@ package com.hbm.items.armor; import java.util.List; +import com.hbm.handler.ArmorModHandler; import com.hbm.util.BobMathUtil; import api.hbm.energymk2.IBatteryItem; @@ -30,9 +31,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); - + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(getMaxCharge(stack))); super.addInformation(stack, player, list, ext); } @@ -72,7 +71,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", this.maxPower - i); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack) - i); } if(stack.stackTagCompound.getLong("charge") < 0) @@ -84,10 +83,10 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ArmorFSBPowered) { if(stack.hasTagCompound()) { - return stack.stackTagCompound.getLong("charge"); + return Math.min(stack.stackTagCompound.getLong("charge"), getMaxCharge(stack)); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ArmorFSBPowered) stack.getItem()).maxPower); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); return stack.stackTagCompound.getLong("charge"); } } @@ -97,18 +96,23 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @Override public boolean showDurabilityBar(ItemStack stack) { - - return getCharge(stack) < maxPower; + return getCharge(stack) < getMaxCharge(stack); } @Override public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (double) getCharge(stack) / (double) maxPower; + return 1 - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { + if(ArmorModHandler.hasMods(stack)) { + ItemStack mod = ArmorModHandler.pryMod(stack, ArmorModHandler.battery); + if(mod != null && mod.getItem() instanceof ItemModBattery) { + return (long) (maxPower * ((ItemModBattery) mod.getItem()).mod); + } + } return maxPower; } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index df2666d68..5aa336fa9 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -108,7 +108,7 @@ public class ArmorHEV extends ArmorFSBPowered { ItemStack armor = player.inventory.armorInventory[i]; ArmorFSBPowered item = ((ArmorFSBPowered) player.inventory.armorInventory[i].getItem()); - c += (double) item.getCharge(armor) / (double) item.getMaxCharge(); + c += (double) item.getCharge(armor) / (double) item.getMaxCharge(armor); } int aX = (int) (70 / scale); diff --git a/src/main/java/com/hbm/items/food/ItemPancake.java b/src/main/java/com/hbm/items/food/ItemPancake.java index 784ee8995..2498e393c 100644 --- a/src/main/java/com/hbm/items/food/ItemPancake.java +++ b/src/main/java/com/hbm/items/food/ItemPancake.java @@ -30,7 +30,7 @@ public class ItemPancake extends ItemFood { continue; if(st.getItem() instanceof IBatteryItem) { - ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge()); + ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge(st)); } } } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index cefa97fce..fe31ec3b9 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -105,14 +105,17 @@ public class ItemBattery extends Item implements IBatteryItem { return 0; } - public long getMaxCharge() { + @Override + public long getMaxCharge(ItemStack stack) { return maxCharge; } + @Override public long getChargeRate() { return chargeRate; } + @Override public long getDischargeRate() { return dischargeRate; } @@ -134,7 +137,7 @@ public class ItemBattery extends Item implements IBatteryItem { if(item instanceof ItemBattery) { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge(stack)); return stack.copy(); } @@ -146,7 +149,7 @@ public class ItemBattery extends Item implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java index 67c05fb7b..419f5401d 100644 --- a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java +++ b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java @@ -38,7 +38,7 @@ public class ItemSelfcharger extends Item implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return charge; } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 715eacd17..4145b0fbf 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -241,7 +241,7 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void setCharge(ItemStack stack, long i) { } @Override public void dischargeBattery(ItemStack stack, long i) { } @Override public long getCharge(ItemStack stack) { return 200; } - @Override public long getMaxCharge() { return 200; } + @Override public long getMaxCharge(ItemStack stack) { return 200; } @Override public long getChargeRate() { return 0; } @Override public long getDischargeRate() { return 200; } } diff --git a/src/main/java/com/hbm/items/special/ItemPotatos.java b/src/main/java/com/hbm/items/special/ItemPotatos.java index 69aefa465..46c636689 100644 --- a/src/main/java/com/hbm/items/special/ItemPotatos.java +++ b/src/main/java/com/hbm/items/special/ItemPotatos.java @@ -28,7 +28,7 @@ public class ItemPotatos extends ItemBattery { if(p.getHeldItem() == stack) { - float pitch = (float)getCharge(stack) / (float)this.getMaxCharge() * 0.5F + 0.5F; + float pitch = (float)getCharge(stack) / (float)this.getMaxCharge(stack) * 0.5F + 0.5F; world.playSoundAtEntity(p, "hbm:potatos.random", 1.0F, pitch); setTimer(stack, 200 + itemRand.nextInt(100)); diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index 473f6f62b..b72ee8d4f 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -33,7 +33,7 @@ public class ItemFusionCore extends Item { if(st.getItem() instanceof IBatteryItem) { - long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); long charge = ((IBatteryItem) st.getItem()).getCharge(st); long newcharge = Math.min(charge + this.charge, maxcharge); diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 674fb7572..943dfd7ab 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -106,7 +106,7 @@ public class ItemSwordAbilityPower extends ItemSwordAbility implements IBatteryI } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index 52b8686b4..c0c025d35 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -102,7 +102,7 @@ public class ItemToolAbilityPower extends ItemToolAbility implements IBatteryIte } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index d93a73f4a..554f5a6ea 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -181,7 +181,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override @@ -236,7 +236,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return mainConfig.maxCharge; } @@ -266,7 +266,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge(stack)); list.add(stack); } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 6da55124b..828433470 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -243,7 +243,7 @@ public class Library { IBatteryItem battery = (IBatteryItem) slots[index].getItem(); - long batMax = battery.getMaxCharge(); + long batMax = battery.getMaxCharge(slots[index]); long batCharge = battery.getCharge(slots[index]); long batRate = battery.getChargeRate(); long toCharge = Math.min(Math.min(power, batRate), batMax - batCharge); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 51bef052f..db18d4bfb 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -103,12 +103,12 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU public int getBattery() { if(slots[1] != null && slots[1].getItem() == ModItems.battery_spark && - ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge(slots[1])) { return 1; } if(slots[1] != null && slots[1].getItem() == ModItems.battery_trixite && - ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge(slots[1])) { return 2; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index e747c3a5d..6df1f8bf9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -47,7 +47,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - charge += Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + charge += Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); } } } @@ -127,7 +127,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - long toCharge = Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); toCharge = Math.min(toCharge, power / 5); battery.chargeBattery(stack, toCharge); power -= toCharge; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 85ebe4747..d36cb4336 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -111,7 +111,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen } } if(i == 2) { - if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge()) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge(stack)) { return true; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 665d18317..f61193726 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -141,7 +141,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(i == 0 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) { return true; } - if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) { + if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge(itemStack)) { return true; } } diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index dde5fe762..3330cda22 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -206,4 +206,15 @@ public class BobMathUtil { double delta = (beta - alpha + 180) % 360 - 180; return delta < -180 ? delta + 360 : delta; } + + /** Soft peak sine */ + public static double sps(double x) { + return Math.sin(Math.PI / 2D * Math.cos(x)); + } + + /** Square wave sine, make sure squarination is [0;1] */ + public static double sws(double x, double squarination) { + double s = Math.sin(x); + return Math.pow(Math.abs(s), 2 - squarination) / s; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f14a5d786..49512628c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -119,6 +119,7 @@ armorMod.chestplates=Brustplatten armorMod.helmets=Helme armorMod.leggings=Beinschienen armorMod.insertHere=Rüstung zum Modifizieren einlegen... +armorMod.type.battery=Batterie armorMod.type.boots=Stiefel armorMod.type.chestplate=Brustplatte armorMod.type.cladding=Beschläge @@ -1188,6 +1189,7 @@ item.arc_electrode_burnt.graphite.name=Geschmolzene Graphitelektrode item.arc_electrode_burnt.lanthanium.name=Geschmolzene Lanthanelektrode item.arc_electrode_burnt.saturnite.name=Geschmolzene Saturnitelektrode item.arc_electrode_desh.name=Desh-Elektrode +item.armor_battery.name=Powerrüstung-Akkusatz item.armor_polish.name=ShiningArmorâ„¢ Rüstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel item.asbestos_cloth.name=Hitzeschutzanzugsstoff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c9f28f764..caa5b6145 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -174,6 +174,7 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings +armorMod.type.battery=Battery armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -1900,6 +1901,7 @@ item.arc_electrode_burnt.graphite.name=Molten Graphite Electrode item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode item.arc_electrode_desh.name=Desh Electrode +item.armor_battery.name=Power Armor Battery Pack item.armor_polish.name=ShiningArmorâ„¢ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery.png b/src/main/resources/assets/hbm/textures/items/armor_battery.png index ad4e8b8af75b426746dd384cb3cb0faa78a80a20..86a0cb9a15a2cf609a9ddea0cc58b4a8ae88c072 100644 GIT binary patch delta 360 zcmV-u0hj*o0+R!fG=EA-L_t(IjbmV-CiwGi>HkMp`~Q=ohY7~$-?;1l<6FxZ-ap;Q z(7$mP(S|U>H0#%wF(}TEX882!E5qBe4-6L@yHFGs`nxgydAIccv*)iE zMg@-^Lr2CXI9qVhHWUN;H}3lX^l#ktztG=}5r6Ii_uzv69&uhM8kTo2 zL3Jx%Jj1H`K8BAUzcQpwsAY&u|I1M5@5Tss!Ks}m;A({=gc%}BW6%s-$Pm_41mS#I z$iTo5gX#rj@b1N1hEp%zVlnV9R3wJs9aJ8x0SpWb4DVjPgJ>2P!fK$9xDW#a15z}i zYZek0f?x?@Tw!+LHh>hs!oa}5@E&R-+=)mwze935P6JLIS;QzPUO-Y3Mlpbafq`M? z+6j!v67IpM1|qwVfdLW7D4OsAWCMl7g&3Akt0P)3UH|}3^?7?}lPsYC0000K~WSeS4Vt~$5x?~(rE+iRYBl+jF*4$!GCS7@TN~s2L%IUWT2i%`2pzIYk zm8L0anzjJfWk!+bc{iYfROU9I>$(68y3B81S6nX^2qC(9bOQh$R(DJeA9tFeTp`bM ztCJ9d7vJZcS3PU=PCy*Tj#8@k^=$zFqA0R1tqE-YMV4hic}RV<2^2yQhGB2-PW=L{ WBXbsJLV)1_0000lG^l+tMf>{UVFd5o8T@xgq)HQ~kk46=;b@TLYj07@w{8jUPN z6h+oM8{G4}FDZ%wpC@iF*GMUydV(ZL>S7@TN~s2L%IUWT2i%`2pzIYkm8L0anzjJf zWk!+bc{iYfROU9I>$(68y3B81S6nX^2qC(9bOQh$R(DJeA9tFeTp`bMtCJ9d7vJZc zS8Mc6Kpe-8QmXg$Z2 Date: Tue, 20 Aug 2024 23:18:54 +0200 Subject: [PATCH 23/23] more battery packs --- src/main/java/com/hbm/items/ModItems.java | 6 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/models/machines/derrick.obj | 2 +- .../assets/hbm/models/weapons/carbine.obj | 2634 +++++++++++++++++ .../hbm/textures/items/armor_battery_mk2.png | Bin 0 -> 370 bytes .../hbm/textures/items/armor_battery_mk3.png | Bin 0 -> 403 bytes 7 files changed, 2645 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/carbine.obj create mode 100644 src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png create mode 100644 src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d20976e44..b7789ba87 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2175,6 +2175,8 @@ public class ModItems { public static Item card_qos; public static Item australium_iii; public static Item armor_battery; + public static Item armor_battery_mk2; + public static Item armor_battery_mk3; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3355,6 +3357,8 @@ public class ModItems { card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); + armor_battery_mk2 = new ItemModBattery(1.5D).setUnlocalizedName("armor_battery_mk2").setTextureName(RefStrings.MODID + ":armor_battery_mk2"); + armor_battery_mk3 = new ItemModBattery(2D).setUnlocalizedName("armor_battery_mk3").setTextureName(RefStrings.MODID + ":armor_battery_mk3"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -7391,6 +7395,8 @@ public class ModItems { GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk2, armor_battery_mk2.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk3, armor_battery_mk3.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 49512628c..026f86d95 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1190,6 +1190,8 @@ item.arc_electrode_burnt.lanthanium.name=Geschmolzene Lanthanelektrode item.arc_electrode_burnt.saturnite.name=Geschmolzene Saturnitelektrode item.arc_electrode_desh.name=Desh-Elektrode item.armor_battery.name=Powerrüstung-Akkusatz +item.armor_battery_mk2.name=Powerrüstung-Akkusatz Mk2 +item.armor_battery_mk3.name=Powerrüstung-Akkusatz Mk3 item.armor_polish.name=ShiningArmorâ„¢ Rüstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel item.asbestos_cloth.name=Hitzeschutzanzugsstoff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index caa5b6145..53e2aff13 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1902,6 +1902,8 @@ item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode item.arc_electrode_desh.name=Desh Electrode item.armor_battery.name=Power Armor Battery Pack +item.armor_battery_mk2.name=Power Armor Battery Pack Mk2 +item.armor_battery_mk3.name=Power Armor Battery Pack Mk3 item.armor_polish.name=ShiningArmorâ„¢ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth diff --git a/src/main/resources/assets/hbm/models/machines/derrick.obj b/src/main/resources/assets/hbm/models/machines/derrick.obj index e3b02a297..8b2b01979 100644 --- a/src/main/resources/assets/hbm/models/machines/derrick.obj +++ b/src/main/resources/assets/hbm/models/machines/derrick.obj @@ -767,7 +767,7 @@ vt 0.306452 0.431818 vt 0.258065 0.045455 vt 0.306452 0.113636 vt 0.580645 0.045455 -vt 0.540323 0.125000 +vt 0.532258 0.113636 vt 0.580645 0.500000 vt 0.532258 0.431818 vt 0.258065 0.500000 diff --git a/src/main/resources/assets/hbm/models/weapons/carbine.obj b/src/main/resources/assets/hbm/models/weapons/carbine.obj new file mode 100644 index 000000000..d11ea138d --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/carbine.obj @@ -0,0 +1,2634 @@ +# Blender v2.79 (sub 0) OBJ File: 'carbine.blend' +# www.blender.org +o Cylinder +v -0.000000 1.187500 4.375000 +v -0.000000 1.187500 8.000000 +v 0.093750 1.162380 4.375000 +v 0.093750 1.162380 8.000000 +v 0.162380 1.093750 4.375000 +v 0.162380 1.093750 8.000000 +v 0.187500 1.000000 4.375000 +v 0.187500 1.000000 8.000000 +v 0.162380 0.906250 4.375000 +v 0.162380 0.906250 8.000000 +v 0.093750 0.837620 4.375000 +v 0.093750 0.837620 8.000000 +v 0.000000 0.812500 4.375000 +v 0.000000 0.812500 8.000000 +v -0.093750 0.837620 4.375000 +v -0.093750 0.837620 8.000000 +v -0.162380 0.906250 4.375000 +v -0.162380 0.906250 8.000000 +v -0.187500 1.000000 4.375000 +v -0.187500 1.000000 8.000000 +v -0.162380 1.093750 4.375000 +v -0.162380 1.093750 8.000000 +v -0.093750 1.162380 4.375000 +v -0.093750 1.162380 8.000000 +v -0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v -0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v -0.062500 1.108253 7.000000 +v -0.000000 1.125000 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v -0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +v -0.250000 1.000000 4.375000 +v 0.250000 1.000000 4.375000 +v -0.125000 1.375000 4.375000 +v 0.125000 1.375000 4.375000 +v -0.250000 1.000000 5.000000 +v 0.250000 1.000000 5.000000 +v -0.250000 0.750000 5.250000 +v 0.250000 0.750000 5.250000 +v -0.250000 0.500000 5.000000 +v 0.250000 0.500000 5.000000 +v -0.250000 0.500000 4.125000 +v 0.250000 0.500000 4.125000 +v -0.250000 0.312500 3.500000 +v 0.250000 0.312500 3.500000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v -0.250000 0.312500 1.375000 +v 0.250000 0.312500 1.375000 +v -0.250000 1.125000 4.375000 +v 0.250000 1.125000 4.375000 +v -0.125000 1.375000 1.500000 +v 0.125000 1.375000 1.500000 +v -0.250000 1.125000 1.500000 +v 0.250000 1.125000 1.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v 0.250000 1.000000 1.500000 +v -0.250000 1.000000 1.500000 +v -0.250000 0.625000 1.375000 +v 0.250000 0.625000 1.375000 +v 0.062500 1.312500 4.375000 +v -0.187500 1.125000 3.500000 +v -0.062500 1.312500 4.375000 +v 0.062500 1.312500 1.500000 +v -0.187500 1.125000 1.500000 +v -0.062500 1.312500 1.500000 +v -0.187500 1.000000 3.500000 +v -0.187500 1.000000 1.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.125000 1.500000 +v 0.187500 1.000000 3.500000 +v 0.187500 1.000000 1.500000 +v 0.250000 0.375000 3.625000 +v 0.125000 1.375000 3.625000 +v 0.250000 1.125000 3.625000 +v -0.250000 0.375000 3.625000 +v -0.250000 1.125000 3.625000 +v -0.125000 1.375000 3.625000 +v 0.062500 1.312500 3.625000 +v 0.250000 0.375000 3.375000 +v -0.062500 1.312500 3.625000 +v 0.125000 1.375000 3.375000 +v 0.250000 1.125000 3.375000 +v -0.250000 0.375000 3.375000 +v -0.250000 1.125000 3.375000 +v -0.125000 1.375000 3.375000 +v 0.062500 1.312500 3.375000 +v -0.062500 1.312500 3.375000 +v 0.312500 0.312500 3.625000 +v 0.312500 1.125000 3.625000 +v 0.312500 0.312500 3.375000 +v 0.312500 1.125000 3.375000 +v 0.125000 1.437500 3.625000 +v -0.125000 1.437500 3.625000 +v 0.062500 1.375000 3.625000 +v -0.062500 1.375000 3.625000 +v 0.125000 1.437500 3.375000 +v -0.125000 1.437500 3.375000 +v 0.062500 1.375000 3.375000 +v -0.062500 1.375000 3.375000 +v -0.312500 0.312500 3.625000 +v -0.312500 1.125000 3.625000 +v -0.312500 0.312500 3.375000 +v -0.312500 1.125000 3.375000 +v 0.250000 0.250000 3.625000 +v 0.250000 0.250000 3.375000 +v -0.250000 0.250000 3.625000 +v -0.250000 0.250000 3.375000 +v 0.250000 0.312500 2.375000 +v 0.125000 1.375000 2.375000 +v 0.250000 1.125000 2.375000 +v -0.250000 0.312500 2.375000 +v -0.250000 1.125000 2.375000 +v -0.125000 1.375000 2.375000 +v 0.062500 1.312500 2.375000 +v 0.250000 0.312500 1.875000 +v -0.062500 1.312500 2.375000 +v 0.125000 1.375000 1.875000 +v 0.250000 1.125000 1.875000 +v -0.250000 0.312500 1.875000 +v -0.250000 1.125000 1.875000 +v -0.125000 1.375000 1.875000 +v 0.062500 1.312500 1.875000 +v -0.062500 1.312500 1.875000 +v 0.312500 0.312500 2.375000 +v 0.312500 1.125000 2.375000 +v 0.312500 0.312500 1.875000 +v 0.312500 1.125000 1.875000 +v 0.125000 1.437500 2.375000 +v -0.125000 1.437500 2.375000 +v 0.062500 1.375000 2.375000 +v -0.062500 1.375000 2.375000 +v 0.125000 1.437500 1.875000 +v -0.125000 1.437500 1.875000 +v 0.062500 1.375000 1.875000 +v -0.062500 1.375000 1.875000 +v -0.312500 0.312500 2.375000 +v -0.312500 1.125000 2.375000 +v -0.312500 0.312500 1.875000 +v -0.312500 1.125000 1.875000 +v 0.250000 0.250000 2.375000 +v 0.250000 0.250000 1.875000 +v -0.250000 0.250000 2.375000 +v -0.250000 0.250000 1.875000 +v -0.250000 0.437500 -0.500000 +v -0.125000 0.312500 -0.500000 +v 0.125000 0.312500 -0.500000 +v 0.250000 0.437500 -0.500000 +v -0.125000 1.062500 -1.000000 +v -0.250000 0.937500 -1.000000 +v 0.250000 0.937500 -1.000000 +v 0.125000 1.062500 -1.000000 +v -0.125000 0.312500 -1.750000 +v -0.250000 0.437500 -1.750000 +v 0.250000 0.437500 -1.750000 +v 0.125000 0.312500 -1.750000 +v -0.250000 0.937500 -1.750000 +v -0.125000 1.062500 -1.750000 +v 0.125000 1.062500 -1.750000 +v 0.250000 0.937500 -1.750000 +v -0.000000 1.125000 1.437500 +v -0.062500 1.108253 1.437500 +v -0.108253 1.062500 1.437500 +v -0.125000 1.000000 1.437500 +v -0.108253 0.937500 1.437500 +v -0.062500 0.891747 1.437500 +v -0.000000 0.875000 1.437500 +v 0.062500 0.891747 1.437500 +v 0.108253 0.937500 1.437500 +v 0.125000 1.000000 1.437500 +v 0.108253 1.062500 1.437500 +v 0.062500 1.108253 1.437500 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v -0.000000 1.187500 1.437500 +v -0.000000 1.125000 1.937500 +v -0.062500 1.108253 1.937500 +v -0.108253 1.062500 1.937500 +v -0.125000 1.000000 1.937500 +v -0.108253 0.937500 1.937500 +v -0.062500 0.891747 1.937500 +v -0.000000 0.875000 1.937500 +v 0.062500 0.891747 1.937500 +v 0.108253 0.937500 1.937500 +v 0.125000 1.000000 1.937500 +v 0.108253 1.062500 1.937500 +v 0.062500 1.108253 1.937500 +v -0.093750 1.162380 1.562500 +v -0.162380 1.093750 1.562500 +v -0.187500 1.000000 1.562500 +v -0.162380 0.906250 1.562500 +v -0.093750 0.837620 1.562500 +v 0.000000 0.812500 1.562500 +v 0.093750 0.837620 1.562500 +v 0.162380 0.906250 1.562500 +v 0.187500 1.000000 1.562500 +v 0.162380 1.093750 1.562500 +v 0.093750 1.162380 1.562500 +v -0.000000 1.187500 1.562500 +v 0.125000 1.000000 1.500000 +v 0.125000 1.125000 1.500000 +v -0.125000 1.125000 1.500000 +v -0.125000 1.000000 1.500000 +v 0.312500 1.000000 1.625000 +v 0.312500 1.000000 -1.000000 +v 0.312500 0.875000 1.625000 +v 0.312500 0.625000 1.375000 +v 0.312500 0.375000 1.375000 +v 0.187500 0.250000 1.375000 +v -0.187500 0.250000 1.375000 +v -0.312500 0.375000 1.375000 +v -0.312500 0.625000 1.375000 +v -0.312500 0.875000 1.625000 +v -0.312500 1.000000 1.625000 +v -0.312500 1.000000 -1.000000 +v 0.312500 0.625000 -0.750000 +v 0.312500 0.375000 -0.750000 +v 0.187500 0.250000 -0.750000 +v -0.187500 0.250000 -0.750000 +v -0.312500 0.375000 -0.750000 +v -0.312500 0.625000 -0.750000 +v 0.250000 1.000000 1.625000 +v 0.250000 0.875000 1.625000 +v 0.250000 0.625000 1.375000 +v 0.250000 0.375000 1.375000 +v -0.250000 0.375000 1.375000 +v -0.250000 0.625000 1.375000 +v -0.250000 0.875000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.187500 0.312500 1.375000 +v -0.187500 0.312500 1.375000 +v -0.093750 1.162380 1.125000 +v -0.162380 1.093750 1.125000 +v -0.187500 1.000000 1.125000 +v -0.162380 0.906250 1.125000 +v -0.093750 0.837620 1.125000 +v 0.000000 0.812500 1.125000 +v 0.093750 0.837620 1.125000 +v 0.162380 0.906250 1.125000 +v 0.187500 1.000000 1.125000 +v 0.162380 1.093750 1.125000 +v 0.093750 1.162380 1.125000 +v -0.000000 1.187500 1.125000 +v -0.093750 1.162380 0.125000 +v -0.162380 1.093750 0.125000 +v -0.187500 1.000000 0.125000 +v -0.162380 0.906250 0.125000 +v -0.093750 0.837620 0.125000 +v 0.000000 0.812500 0.125000 +v 0.093750 0.837620 0.125000 +v 0.162380 0.906250 0.125000 +v 0.187500 1.000000 0.125000 +v 0.162380 1.093750 0.125000 +v 0.093750 1.162380 0.125000 +v -0.000000 1.187500 0.125000 +v 0.187500 1.000000 1.500000 +v -0.187500 1.000000 1.500000 +v 0.187500 1.000000 0.125000 +v -0.187500 1.000000 0.125000 +v -0.000000 1.250000 0.125000 +v -0.125000 1.216506 0.125000 +v -0.216506 1.125000 0.125000 +v -0.250000 1.000000 0.125000 +v -0.216506 0.875000 0.125000 +v -0.125000 0.783494 0.125000 +v -0.000000 0.750000 0.125000 +v 0.125000 0.783494 0.125000 +v 0.216506 0.875000 0.125000 +v 0.250000 1.000000 0.125000 +v 0.216506 1.125000 0.125000 +v 0.125000 1.216506 0.125000 +v -0.125000 1.216506 -0.125000 +v -0.000000 1.250000 -0.125000 +v -0.216506 1.125000 -0.125000 +v -0.250000 1.000000 -0.125000 +v 0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v -0.093750 0.837620 1.375000 +v -0.162380 0.906250 1.375000 +v -0.187500 1.000000 1.375000 +v 0.250000 1.000000 -0.125000 +v 0.216506 1.125000 -0.125000 +v 0.125000 1.216506 -0.125000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.000000 1.312500 1.375000 +v -0.156250 1.270633 1.375000 +v -0.270633 1.156250 1.375000 +v -0.312500 1.000000 1.375000 +v -0.093750 0.837620 1.125000 +v 0.000000 0.812500 1.125000 +v 0.093750 0.837620 1.125000 +v 0.162380 0.906250 1.125000 +v 0.187500 1.000000 1.125000 +v 0.312500 1.000000 1.375000 +v 0.270633 1.156250 1.375000 +v 0.156250 1.270633 1.375000 +v -0.162380 0.906250 1.125000 +v -0.187500 1.000000 1.125000 +v -0.156250 1.270633 1.125000 +v 0.000000 1.312500 1.125000 +v -0.270633 1.156250 1.125000 +v -0.312500 1.000000 1.125000 +v 0.312500 1.000000 1.125000 +v 0.270633 1.156250 1.125000 +v 0.156250 1.270633 1.125000 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v -0.000000 1.187500 1.437500 +v -0.093750 1.162380 1.375000 +v -0.162380 1.093750 1.375000 +v -0.187500 1.000000 1.375000 +v -0.162380 0.906250 1.375000 +v -0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v 0.093750 0.837620 1.375000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.162380 1.093750 1.375000 +v 0.093750 1.162380 1.375000 +v -0.000000 1.187500 1.375000 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v -0.187500 1.000000 0.125000 +v -0.162380 0.906250 0.125000 +v -0.093750 0.837620 0.125000 +v 0.000000 0.812500 0.125000 +v 0.093750 0.837620 0.125000 +v 0.162380 0.906250 0.125000 +v 0.187500 1.000000 0.125000 +v -0.250000 1.000000 7.875000 +v -0.216506 0.875000 7.875000 +v -0.125000 0.783494 7.875000 +v -0.000000 0.750000 7.875000 +v 0.125000 0.783494 7.875000 +v 0.216506 0.875000 7.875000 +v 0.250000 1.000000 7.875000 +v -0.000000 1.250000 6.125000 +v -0.125000 1.216506 6.125000 +v -0.216506 1.125000 6.125000 +v -0.250000 1.000000 6.125000 +v -0.216506 0.875000 6.125000 +v -0.125000 0.783494 6.125000 +v -0.000000 0.750000 6.125000 +v 0.125000 0.783494 6.125000 +v 0.216506 0.875000 6.125000 +v 0.250000 1.000000 6.125000 +v 0.216506 1.125000 6.125000 +v 0.125000 1.216506 6.125000 +v -0.250000 1.000000 7.500000 +v -0.216506 0.875000 7.500000 +v -0.125000 0.783494 7.500000 +v -0.000000 0.750000 7.500000 +v 0.125000 0.783494 7.500000 +v 0.216506 0.875000 7.500000 +v 0.250000 1.000000 7.500000 +v 0.216506 1.125000 5.250000 +v 0.250000 1.000000 5.375000 +v 0.216506 0.875000 5.500000 +v -0.125000 1.387500 7.500000 +v 0.125000 1.387500 7.500000 +v 0.125000 1.387500 7.875000 +v -0.125000 1.387500 7.875000 +v 0.187500 1.387500 7.875000 +v 0.187500 1.387500 7.500000 +v -0.187500 1.387500 7.875000 +v -0.187500 1.387500 7.500000 +v 0.187500 1.000000 7.875000 +v 0.162380 0.906250 7.875000 +v 0.093750 0.837620 7.875000 +v 0.000000 0.812500 7.875000 +v -0.093750 0.837620 7.875000 +v -0.162380 0.906250 7.875000 +v -0.187500 1.000000 7.875000 +v 0.187500 1.000000 7.500000 +v 0.162380 0.906250 7.500000 +v 0.093750 0.837620 7.500000 +v 0.000000 0.812500 7.500000 +v -0.093750 0.837620 7.500000 +v -0.162380 0.906250 7.500000 +v -0.187500 1.000000 7.500000 +v 0.125000 0.783494 5.500000 +v -0.000000 0.750000 5.500000 +v -0.125000 0.783494 5.500000 +v -0.216506 0.875000 5.500000 +v -0.250000 1.000000 5.375000 +v -0.216506 1.125000 5.250000 +v -0.312500 1.691561 7.881433 +v -0.312500 1.691561 7.506433 +v 0.250000 1.687500 7.875000 +v 0.312500 1.687500 7.875000 +v 0.312500 1.687500 7.500000 +v 0.250000 1.687500 7.500000 +v -0.250000 1.691561 7.506433 +v -0.250000 1.691561 7.881433 +v 0.062500 1.125000 7.500000 +v 0.062500 1.125000 7.875000 +v 0.062500 1.387500 7.875000 +v 0.062500 1.387500 7.500000 +v -0.062500 1.387500 7.875000 +v -0.062500 1.125000 7.875000 +v -0.062500 1.125000 7.500000 +v -0.062500 1.387500 7.500000 +v 0.062500 1.250000 7.875000 +v 0.062500 1.250000 7.500000 +v -0.062500 1.250000 7.875000 +v -0.062500 1.250000 7.500000 +v 0.062500 1.250000 7.812500 +v 0.062500 1.250000 7.562500 +v -0.062500 1.250000 7.812500 +v -0.062500 1.250000 7.562500 +v 0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.812500 +v 0.062500 1.437500 7.812500 +v 0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.750000 +v 0.031250 1.562500 7.750000 +v -0.000000 1.187500 5.250000 +v 0.093750 1.162380 5.250000 +v 0.162380 1.093750 5.250000 +v 0.187500 1.000000 5.375000 +v 0.162380 0.906250 5.500000 +v 0.093750 0.837620 5.500000 +v 0.000000 0.812500 5.500000 +v -0.093750 0.837620 5.500000 +v -0.162380 0.906250 5.500000 +v -0.187500 1.000000 5.375000 +v -0.162380 1.093750 5.250000 +v -0.093750 1.162380 5.250000 +v -0.000000 1.187500 6.125000 +v 0.093750 1.162380 6.125000 +v 0.162380 1.093750 6.125000 +v 0.187500 1.000000 6.125000 +v 0.162380 0.906250 6.125000 +v 0.093750 0.837620 6.125000 +v 0.000000 0.812500 6.125000 +v -0.093750 0.837620 6.125000 +v -0.162380 0.906250 6.125000 +v -0.187500 1.000000 6.125000 +v -0.162380 1.093750 6.125000 +v -0.093750 1.162380 6.125000 +v -0.000000 1.250000 4.875000 +v 0.125000 1.216506 4.875000 +v 0.216506 1.125000 4.875000 +v -0.216506 1.125000 4.875000 +v -0.125000 1.216506 4.875000 +v 0.093750 1.162380 4.875000 +v -0.000000 1.187500 4.875000 +v 0.162380 1.093750 4.875000 +v -0.093750 1.162380 4.875000 +v -0.162380 1.093750 4.875000 +v -0.000000 1.250000 4.437500 +v -0.125000 1.216506 4.437500 +v -0.216506 1.125000 4.437500 +v -0.250000 1.000000 4.437500 +v 0.312500 1.000000 4.500000 +v 0.312500 0.500100 4.500000 +v 0.312500 1.000000 4.750000 +v 0.312500 0.500100 4.750000 +v 0.250000 1.000000 4.437500 +v 0.216506 1.125000 4.437500 +v 0.125000 1.216506 4.437500 +v -0.000000 1.187500 4.437500 +v 0.093750 1.162380 4.437500 +v 0.162380 1.093750 4.437500 +v 0.187500 1.000000 4.437500 +v -0.250000 1.000000 4.500000 +v -0.250000 0.500000 4.500000 +v 0.250000 1.000000 4.500000 +v -0.187500 1.000000 4.437500 +v -0.162380 1.093750 4.437500 +v -0.093750 1.162380 4.437500 +v -0.125000 1.216506 4.812500 +v -0.000000 1.250000 4.812500 +v -0.216506 1.125000 4.812500 +v -0.250000 1.000000 4.812500 +v 0.250000 0.500000 4.500000 +v 0.250000 1.000000 4.812500 +v 0.216506 1.125000 4.812500 +v 0.125000 1.216506 4.812500 +v 0.093750 1.162380 4.812500 +v -0.000000 1.187500 4.812500 +v 0.162380 1.093750 4.812500 +v 0.187500 1.000000 4.812500 +v -0.250000 1.000000 4.750000 +v -0.250000 0.500000 4.750000 +v 0.250000 1.000000 4.750000 +v 0.250000 0.500000 4.750000 +v -0.187500 1.000000 4.812500 +v -0.162380 1.093750 4.812500 +v -0.093750 1.162380 4.812500 +v -0.312500 0.500100 4.750000 +v -0.312500 1.000000 4.750000 +v -0.312500 0.500100 4.500000 +v -0.312500 1.000000 4.500000 +v 0.250000 0.437600 4.750000 +v 0.250000 0.437600 4.500000 +v -0.250000 0.437600 4.750000 +v -0.250000 0.437600 4.500000 +v 0.187500 0.437600 4.750000 +v 0.187500 0.437600 4.500000 +v 0.125000 0.437600 4.750000 +v 0.125000 0.437600 4.500000 +v 0.187500 0.187600 4.750000 +v 0.187500 0.187600 4.500000 +v 0.125000 0.187600 4.750000 +v 0.125000 0.187600 4.500000 +v 0.187500 0.062600 4.687500 +v 0.187500 0.062600 4.562500 +v 0.125000 0.062600 4.687500 +v 0.125000 0.062600 4.562500 +v -0.125000 0.437600 4.750000 +v -0.125000 0.437600 4.500000 +v -0.187500 0.437600 4.750000 +v -0.187500 0.437600 4.500000 +v -0.125000 0.187600 4.750000 +v -0.125000 0.187600 4.500000 +v -0.187500 0.187600 4.750000 +v -0.187500 0.187600 4.500000 +v -0.125000 0.062600 4.687500 +v -0.125000 0.062600 4.562500 +v -0.187500 0.062600 4.687500 +v -0.187500 0.062600 4.562500 +v -0.250000 0.156350 4.656250 +v -0.250000 0.218850 4.656250 +v -0.250000 0.156350 4.593750 +v -0.250000 0.218850 4.593750 +v 0.250000 0.156350 4.656250 +v 0.250000 0.218850 4.656250 +v 0.250000 0.156350 4.593750 +v 0.250000 0.218850 4.593750 +v 0.125000 1.000000 1.125000 +v 0.500000 1.000000 1.125000 +v 0.125000 1.000000 1.000000 +v 0.500000 1.000000 1.000000 +v 0.125000 1.062500 1.125000 +v 0.500000 1.062500 1.125000 +v 0.125000 1.062500 1.000000 +v 0.500000 1.062500 1.000000 +v 0.312500 1.000000 1.250000 +v 0.312500 0.875000 1.250000 +v 0.312500 1.000000 -0.875000 +v 0.312500 0.875000 -0.875000 +v 0.437500 0.875000 1.250000 +v 0.437500 1.000000 1.250000 +v 0.437500 0.875000 0.000000 +v 0.437500 1.000000 0.000000 +v 0.500000 0.906250 1.125000 +v 0.500000 1.156250 1.125000 +v 0.500000 0.906250 1.000000 +v 0.500000 1.156250 1.000000 +v 0.750000 0.968750 1.125000 +v 0.750000 1.093750 1.125000 +v 0.750000 0.968750 1.000000 +v 0.750000 1.093750 1.000000 +v 0.625000 0.906250 1.000000 +v 0.625000 1.156250 1.000000 +v 0.625000 0.906250 1.125000 +v 0.625000 1.156250 1.125000 +v -0.125000 1.000000 1.125000 +v -0.500000 1.000000 1.125000 +v -0.125000 1.000000 1.000000 +v -0.500000 1.000000 1.000000 +v -0.125000 1.062500 1.125000 +v -0.500000 1.062500 1.125000 +v -0.125000 1.062500 1.000000 +v -0.500000 1.062500 1.000000 +v -0.500000 0.906250 1.125000 +v -0.500000 1.156250 1.125000 +v -0.500000 0.906250 1.000000 +v -0.500000 1.156250 1.000000 +v -0.750000 0.968750 1.125000 +v -0.750000 1.093750 1.125000 +v -0.750000 0.968750 1.000000 +v -0.750000 1.093750 1.000000 +v -0.625000 0.906250 1.000000 +v -0.625000 1.156250 1.000000 +v -0.625000 0.906250 1.125000 +v -0.625000 1.156250 1.125000 +v 0.687500 0.875000 0.000000 +v 0.687500 1.000000 0.000000 +v 0.562500 0.875000 -0.500000 +v 0.562500 1.000000 -0.500000 +v 0.687500 1.000000 0.000000 +v 0.562500 1.000000 0.000000 +v 0.687500 1.062500 0.000000 +v 0.562500 1.062500 0.000000 +v 0.625000 1.000000 -0.062500 +v 0.562500 1.000000 -0.062500 +v 0.625000 1.062500 -0.062500 +v 0.562500 1.062500 -0.062500 +v -0.312500 1.000000 1.250000 +v -0.312500 0.875000 1.250000 +v -0.312500 1.000000 -0.875000 +v -0.312500 0.875000 -0.875000 +v -0.437500 0.875000 1.250000 +v -0.437500 1.000000 1.250000 +v -0.437500 0.875000 0.000000 +v -0.437500 1.000000 0.000000 +v -0.687500 0.875000 0.000000 +v -0.687500 1.000000 0.000000 +v -0.562500 0.875000 -0.500000 +v -0.562500 1.000000 -0.500000 +v -0.687500 1.000000 0.000000 +v -0.562500 1.000000 0.000000 +v -0.687500 1.062500 0.000000 +v -0.562500 1.062500 0.000000 +v -0.625000 1.000000 -0.062500 +v -0.562500 1.000000 -0.062500 +v -0.625000 1.062500 -0.062500 +v -0.562500 1.062500 -0.062500 +v 0.125000 0.187500 -2.000000 +v 0.250000 0.312500 -2.000000 +v 0.250000 0.812500 -2.000000 +v 0.125000 0.937500 -2.000000 +v -0.250000 0.312500 -2.000000 +v -0.125000 0.187500 -2.000000 +v -0.125000 0.937500 -2.000000 +v -0.250000 0.812500 -2.000000 +v 0.125000 -0.062500 -2.500000 +v 0.250000 0.062500 -2.500000 +v 0.250000 0.562500 -2.750000 +v 0.125000 0.687500 -2.750000 +v -0.250000 0.062500 -2.500000 +v -0.125000 -0.062500 -2.500000 +v -0.125000 0.687500 -2.750000 +v -0.250000 0.562500 -2.750000 +v 0.250000 0.687500 -3.000000 +v 0.125000 0.812500 -3.000000 +v -0.125000 0.812500 -3.000000 +v -0.250000 0.687500 -3.000000 +v 0.250000 0.812500 -3.500000 +v 0.125000 0.937500 -3.500000 +v -0.125000 0.937500 -3.500000 +v -0.250000 0.812500 -3.500000 +v 0.250000 0.812500 -7.750000 +v 0.125000 0.937500 -7.750000 +v -0.125000 0.937500 -7.750000 +v -0.250000 0.812500 -7.750000 +v 0.125000 -0.937500 -3.125000 +v 0.250000 -0.812500 -3.125000 +v -0.250000 -0.812500 -3.125000 +v -0.125000 -0.937500 -3.125000 +v 0.125000 -0.687500 -4.000000 +v 0.250000 -0.562500 -4.000000 +v -0.250000 -0.562500 -4.000000 +v -0.125000 -0.687500 -4.000000 +v 0.125000 -0.812500 -5.000000 +v 0.250000 -0.687500 -5.000000 +v -0.250000 -0.687500 -5.000000 +v -0.125000 -0.812500 -5.000000 +v 0.125000 -1.687500 -7.375000 +v 0.250000 -1.562500 -7.375000 +v -0.250000 -1.562500 -7.375000 +v -0.125000 -1.687500 -7.375000 +v 0.125000 -1.687500 -7.875000 +v 0.250000 -1.562500 -7.875000 +v -0.250000 -1.562500 -7.875000 +v -0.125000 -1.687500 -7.875000 +v 0.125000 -1.437500 -8.125000 +v 0.250000 -1.437500 -8.000000 +v -0.250000 -1.437500 -8.000000 +v -0.125000 -1.437500 -8.125000 +v 0.125000 0.562500 -8.125000 +v 0.250000 0.562500 -8.000000 +v -0.250000 0.562500 -8.000000 +v -0.125000 0.562500 -8.125000 +v 0.312500 0.875000 -1.000000 +v -0.312500 0.875000 -1.000000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v -0.187500 1.125000 3.500000 +v -0.187500 1.000000 3.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.000000 3.500000 +v 0.250000 1.000000 1.375000 +v 0.250000 1.125000 1.375000 +v -0.250000 1.125000 1.375000 +v -0.250000 1.000000 1.375000 +v -0.187500 1.125000 1.375000 +v -0.187500 1.000000 1.375000 +v 0.187500 1.000000 1.375000 +v 0.187500 1.125000 1.375000 +v 0.312500 1.000000 -1.000000 +v -0.312500 1.000000 -1.000000 +v 0.312500 1.000000 -0.125000 +v -0.312500 1.000000 -0.125000 +v 0.312500 1.125000 -1.000000 +v -0.312500 1.125000 -1.000000 +v 0.312500 1.125000 -0.125000 +v -0.312500 1.125000 -0.125000 +v 0.187500 1.250000 -0.875000 +v -0.187500 1.250000 -0.875000 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.375000 -0.125000 +v -0.187500 1.375000 -0.125000 +v 0.187500 1.375000 -0.625000 +v -0.187500 1.375000 -0.625000 +v 0.187500 1.437500 -0.125000 +v -0.187500 1.437500 -0.125000 +v -0.125000 1.437500 -0.125000 +v -0.125000 1.437500 -0.625000 +v 0.125000 1.437500 -0.125000 +v 0.125000 1.437500 -0.625000 +v 0.187500 1.562500 -0.625000 +v -0.187500 1.562500 -0.625000 +v -0.125000 1.562500 -0.625000 +v 0.125000 1.562500 -0.625000 +v 0.000000 1.687500 -0.250000 +v -0.088388 1.650888 -0.250000 +v -0.125000 1.562500 -0.250000 +v -0.000000 1.437500 -0.312500 +v 0.000000 1.437500 -0.250000 +v 0.125000 1.562500 -0.250000 +v 0.088388 1.650888 -0.250000 +v 0.000000 1.656250 -0.250000 +v -0.066291 1.628791 -0.250000 +v -0.093750 1.562500 -0.250000 +v -0.066291 1.496209 -0.250000 +v 0.000000 1.468750 -0.250000 +v 0.066291 1.496209 -0.250000 +v 0.093750 1.562500 -0.250000 +v 0.066291 1.628791 -0.250000 +v -0.125000 1.437500 -0.250000 +v 0.125000 1.437500 -0.250000 +v 0.000000 1.687500 -0.312500 +v -0.088388 1.650888 -0.312500 +v -0.125000 1.562500 -0.312500 +v 0.125000 1.562500 -0.312500 +v 0.088388 1.650888 -0.312500 +v 0.000000 1.656250 -0.312500 +v -0.066291 1.628791 -0.312500 +v -0.093750 1.562500 -0.312500 +v -0.066291 1.496209 -0.312500 +v 0.000000 1.468750 -0.312500 +v 0.066291 1.496209 -0.312500 +v 0.093750 1.562500 -0.312500 +v 0.066291 1.628791 -0.312500 +v -0.125000 1.437500 -0.312500 +v 0.125000 1.437500 -0.312500 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.250000 -0.750000 +v -0.187500 1.250000 -0.750000 +v 0.125000 1.375000 -0.187500 +v -0.125000 1.375000 -0.187500 +v 0.125000 1.375000 -0.562500 +v -0.125000 1.375000 -0.562500 +v 0.187500 1.525888 -0.411612 +v 0.187500 1.562500 -0.500000 +v 0.187500 1.525888 -0.588388 +v 0.187500 1.437500 -0.625000 +v 0.187500 1.437500 -0.375000 +v 0.187500 1.349112 -0.411612 +v 0.187500 1.312500 -0.500000 +v 0.187500 1.349112 -0.588388 +v 0.250000 1.437500 -0.625000 +v 0.250000 1.349112 -0.588388 +v 0.250000 1.312500 -0.500000 +v 0.250000 1.349112 -0.411612 +v 0.250000 1.437500 -0.375000 +v 0.250000 1.562500 -0.500000 +v 0.250000 1.525888 -0.588388 +v 0.250000 1.525888 -0.411612 +v -0.250000 1.525888 -0.411612 +v -0.250000 1.562500 -0.500000 +v -0.250000 1.525888 -0.588388 +v -0.250000 1.437500 -0.625000 +v -0.250000 1.437500 -0.375000 +v -0.250000 1.349112 -0.411612 +v -0.250000 1.312500 -0.500000 +v -0.250000 1.349112 -0.588388 +v -0.187500 1.437500 -0.625000 +v -0.187500 1.349112 -0.588388 +v -0.187500 1.312500 -0.500000 +v -0.187500 1.349112 -0.411612 +v -0.187500 1.437500 -0.375000 +v -0.187500 1.562500 -0.500000 +v -0.187500 1.525888 -0.588388 +v -0.187500 1.525888 -0.411612 +v 0.187500 0.875000 1.125000 +v -0.187500 0.875000 1.125000 +v 0.187500 0.875000 0.125000 +v -0.187500 0.875000 0.125000 +v -0.187500 -1.375000 1.125000 +v 0.187500 -1.375000 1.125000 +v -0.187500 -1.375000 0.125000 +v 0.187500 -1.375000 0.125000 +v 0.000000 1.000000 0.187500 +v -0.062500 0.983253 0.187500 +v -0.108253 0.937500 0.187500 +v -0.125000 0.875000 0.187500 +v -0.108253 0.812500 0.187500 +v -0.062500 0.766747 0.187500 +v -0.000000 0.750000 0.187500 +v 0.062500 0.766747 0.187500 +v 0.108253 0.812500 0.187500 +v 0.125000 0.875000 0.187500 +v 0.108253 0.937500 0.187500 +v 0.062500 0.983253 0.187500 +v 0.000000 1.000000 0.812500 +v -0.062500 0.983253 0.812500 +v -0.108253 0.937500 0.812500 +v -0.125000 0.875000 0.812500 +v -0.108253 0.812500 0.812500 +v -0.062500 0.766747 0.812500 +v -0.000000 0.750000 0.812500 +v 0.062500 0.766747 0.812500 +v 0.108253 0.812500 0.812500 +v 0.125000 0.875000 0.812500 +v 0.108253 0.937500 0.812500 +v 0.062500 0.983253 0.812500 +v 0.000000 0.968750 1.000000 +v -0.046875 0.956190 1.000000 +v -0.081190 0.921875 1.000000 +v -0.093750 0.875000 1.000000 +v -0.081190 0.828125 1.000000 +v -0.046875 0.793810 1.000000 +v -0.000000 0.781250 1.000000 +v 0.046875 0.793810 1.000000 +v 0.081190 0.828125 1.000000 +v 0.093750 0.875000 1.000000 +v 0.081190 0.921875 1.000000 +v 0.046875 0.956190 1.000000 +v 0.000000 0.906250 1.062500 +v -0.015625 0.902063 1.062500 +v -0.027063 0.890625 1.062500 +v -0.031250 0.875000 1.062500 +v -0.027063 0.859375 1.062500 +v -0.015625 0.847937 1.062500 +v 0.000000 0.843750 1.062500 +v 0.015625 0.847937 1.062500 +v 0.027063 0.859375 1.062500 +v 0.031250 0.875000 1.062500 +v 0.027063 0.890625 1.062500 +v 0.015625 0.902063 1.062500 +v -0.125000 0.875000 1.125000 +v -0.062500 0.750000 1.125000 +v 0.062500 0.750000 1.125000 +v 0.125000 0.875000 1.125000 +v -0.125000 0.875000 0.125000 +v -0.062500 0.750000 0.125000 +v 0.062500 0.750000 0.125000 +v 0.125000 0.875000 0.125000 +v -0.125000 0.250000 0.000000 +v 0.125000 0.250000 0.000000 +v -0.125000 0.250000 -0.750000 +v 0.125000 0.250000 -0.750000 +v -0.125000 0.000000 -0.750000 +v -0.125000 0.000000 0.000000 +v 0.125000 0.000000 0.000000 +v 0.125000 0.000000 -0.750000 +v -0.062500 0.312500 -1.750000 +v 0.062500 0.312500 -1.750000 +v -0.062500 -0.062500 -1.750000 +v 0.062500 -0.062500 -1.750000 +v -0.062500 -0.312500 -1.500000 +v 0.062500 -0.312500 -1.500000 +v -0.062500 -0.312500 -0.875000 +v 0.062500 -0.312500 -0.875000 +v -0.062500 -0.125000 -0.687500 +v 0.062500 -0.125000 -0.687500 +v -0.062500 0.000000 -0.625000 +v 0.062500 0.000000 -0.625000 +v -0.062500 0.312500 -1.687500 +v 0.062500 0.312500 -1.687500 +v -0.062500 -0.062500 -1.687500 +v 0.062500 -0.062500 -1.687500 +v -0.062500 -0.250000 -1.500000 +v 0.062500 -0.250000 -1.500000 +v -0.062500 -0.250000 -0.875000 +v 0.062500 -0.250000 -0.875000 +v -0.062500 -0.125000 -0.750000 +v 0.062500 -0.125000 -0.750000 +v -0.062500 0.000000 -0.687500 +v 0.062500 0.000000 -0.687500 +v -0.062500 0.312500 -1.562500 +v 0.062500 0.312500 -1.562500 +v -0.062500 0.312500 -1.312500 +v 0.062500 0.312500 -1.312500 +v -0.062500 0.187500 -1.500000 +v 0.062500 0.187500 -1.500000 +v -0.062500 0.187500 -1.375000 +v 0.062500 0.187500 -1.375000 +v -0.062500 0.000000 -1.500000 +v 0.062500 0.000000 -1.500000 +v -0.062500 0.000000 -1.375000 +v 0.062500 0.000000 -1.375000 +v -0.062500 -0.187500 -1.312500 +v 0.062500 -0.187500 -1.312500 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.2588 -0.9659 0.0000 +vn -0.2588 -0.9659 0.0000 +vn -0.9659 -0.2588 -0.0000 +vn 0.9659 -0.2588 0.0000 +vn 0.9872 0.1592 0.0000 +vn -0.9231 0.3846 0.0000 +vn -0.9249 -0.3802 0.0000 +vn -0.9872 0.1592 0.0000 +vn 0.9249 0.3802 0.0000 +vn 0.9231 -0.3846 0.0000 +vn 0.0000 -0.0212 0.9998 +vn 0.0000 0.0212 -0.9998 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.9701 0.2425 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 -0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.9701 0.0000 -0.2425 +vn 0.8321 0.0000 -0.5547 +vn 0.7071 0.0000 -0.7071 +vn -0.9701 0.0000 -0.2425 +vn -0.8321 0.0000 -0.5547 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9701 0.2425 +vn -0.8944 0.4472 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9894 0.1452 +vn 0.1602 0.9871 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9522 0.3054 0.0000 +vn -0.1602 0.9871 0.0000 +vn -0.9522 0.3054 0.0000 +vn -0.9732 0.2298 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9637 0.2669 0.0000 +vn 0.1222 0.9925 0.0000 +vn -0.1222 0.9925 0.0000 +vn -0.9637 0.2669 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9523 0.3051 0.0000 +vn -0.9414 -0.3297 0.0706 +vn -0.8629 -0.5054 0.0000 +vn -0.3595 0.9099 -0.2070 +vn 0.9523 0.3051 0.0000 +vn 0.9414 -0.3297 0.0706 +vn 0.8994 0.4225 -0.1123 +vn -0.9232 0.3569 -0.1429 +vn -0.9129 -0.3651 0.1826 +vn 0.3954 -0.8912 0.2222 +vn 0.8629 -0.5054 0.0000 +vn 0.3595 0.9099 -0.2070 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9915 0.1299 0.0000 +vn -0.7768 0.6297 0.0000 +vn 0.9915 0.1299 0.0000 +vn -0.8911 -0.4538 0.0000 +vn 0.8911 -0.4538 0.0000 +vn 0.0000 -0.7689 -0.6394 +vn 0.2869 -0.6590 -0.6953 +vn 0.3536 -0.6124 -0.7071 +vn -0.0447 -0.7380 -0.6733 +vn -0.2869 -0.6590 -0.6953 +vn 0.0407 -0.7592 -0.6496 +vn 0.3057 -0.7078 -0.6369 +vn 0.4000 -0.6928 -0.6000 +vn 0.0000 -0.8000 -0.6000 +vn 0.7768 0.6297 0.0000 +vn -0.4192 0.9051 0.0712 +vn -0.9552 0.2954 0.0181 +vn -0.3954 -0.8912 0.2222 +vn -0.3568 -0.8355 0.4178 +vn 0.3568 -0.8355 0.4178 +vn 0.3688 0.8568 -0.3605 +vn 0.9129 -0.3651 0.1826 +vn 0.9232 0.3569 -0.1429 +vn -0.8994 0.4225 -0.1123 +vn -0.3688 0.8568 -0.3605 +vn 0.4192 0.9051 0.0712 +vn -0.3607 0.8769 0.3178 +vn 0.9552 0.2954 0.0181 +vn 0.3163 -0.6961 0.6445 +vn -0.9268 -0.3007 0.2251 +vn -0.3163 -0.6961 0.6445 +vn 0.9268 -0.3007 0.2251 +vn -0.9066 0.3929 0.1537 +vn 0.9066 0.3929 0.1537 +vn 0.3607 0.8769 0.3178 +vn -0.3711 0.9219 0.1112 +vn -0.9123 0.4062 0.0530 +vn 0.9123 0.4062 0.0530 +vn 0.3711 0.9219 0.1112 +vn -0.3416 0.8756 -0.3416 +vn -0.8727 0.4330 -0.2257 +vn 0.3416 0.8756 -0.3416 +vn 0.3335 -0.8970 0.2902 +vn -0.8515 -0.4669 0.2386 +vn -0.3335 -0.8970 0.2902 +vn 0.8515 -0.4669 0.2386 +vn 0.4002 -0.9135 -0.0737 +vn -0.4002 -0.9135 -0.0737 +vn 0.9405 -0.3390 -0.0241 +vn 0.3851 -0.8955 0.2233 +vn -0.9313 -0.3548 0.0821 +vn -0.3851 -0.8955 0.2233 +vn 0.9313 -0.3548 0.0821 +vn 0.3654 -0.9172 0.1589 +vn -0.9063 -0.4149 0.0807 +vn -0.3654 -0.9172 0.1589 +vn 0.9063 -0.4149 0.0807 +vn 0.3416 -0.8756 -0.3416 +vn -0.3416 -0.8756 -0.3416 +vn 0.8727 -0.4330 -0.2257 +vn 0.3416 -0.3416 -0.8756 +vn -0.8727 -0.2257 -0.4330 +vn -0.3416 -0.3416 -0.8756 +vn 0.8727 -0.2257 -0.4330 +vn 0.3416 0.3416 -0.8756 +vn -0.3416 0.3416 -0.8756 +vn 0.8727 0.2257 -0.4330 +vn -0.9405 -0.3390 -0.0241 +vn 0.8727 0.4330 -0.2257 +vn -0.8727 0.2257 -0.4330 +vn -0.9808 0.1951 0.0000 +vn 0.9808 0.1951 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -0.9967 0.0814 +vn -0.9967 -0.0000 0.0814 +vn 0.8632 0.4983 0.0814 +vn 0.0000 0.9967 0.0814 +vn 0.4983 -0.8632 0.0814 +vn -0.8632 -0.4983 0.0814 +vn 0.4983 0.8632 0.0814 +vn -0.4983 0.8632 0.0814 +vn 0.8632 -0.4983 0.0814 +vn -0.4983 -0.8632 0.0814 +vn -0.8632 0.4983 0.0814 +vn 0.9967 -0.0000 0.0814 +vn -0.4494 -0.7784 0.4382 +vn -0.7784 -0.4494 0.4382 +vn 0.0000 0.8989 0.4382 +vn 0.4494 0.7784 0.4382 +vn -0.4494 0.7784 0.4382 +vn 0.8989 -0.0000 0.4382 +vn 0.7784 -0.4494 0.4382 +vn -0.8989 -0.0000 0.4382 +vn -0.7784 0.4494 0.4382 +vn 0.4494 -0.7784 0.4382 +vn -0.0000 -0.8989 0.4382 +vn 0.7784 0.4494 0.4382 +vn -0.2172 -0.3762 0.9007 +vn -0.3762 -0.2172 0.9007 +vn 0.0000 0.4344 0.9007 +vn 0.2172 0.3762 0.9007 +vn -0.3762 0.2172 0.9007 +vn -0.2172 0.3762 0.9007 +vn 0.4344 -0.0000 0.9007 +vn 0.3762 -0.2172 0.9007 +vn 0.3762 0.2172 0.9007 +vn 0.2172 -0.3762 0.9007 +vn 0.0000 -0.4344 0.9007 +vn -0.4344 0.0000 0.9007 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.5847 0.8112 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.1602 0.9871 +vn 0.0000 -0.8507 0.5257 +vn 0.9732 0.2298 0.0000 +vn -0.3536 -0.6124 -0.7071 +vn -0.8727 -0.4330 -0.2257 +s off +f 10//1 34//1 33//1 +f 8//1 35//1 34//1 +f 6//1 36//1 35//1 +f 4//1 25//1 36//1 +f 24//1 25//1 2//1 +f 24//1 27//1 26//1 +f 22//1 28//1 27//1 +f 20//1 29//1 28//1 +f 18//1 30//1 29//1 +f 14//1 30//1 16//1 +f 14//1 32//1 31//1 +f 10//1 32//1 12//1 +f 41//1 45//1 38//1 +f 50//1 67//1 49//1 +f 79//1 81//1 67//1 +f 146//2 134//2 137//2 +f 88//2 70//2 72//2 +f 64//3 86//3 76//3 +f 86//4 80//4 83//4 +f 74//2 85//2 64//2 +f 71//5 80//5 74//5 +f 87//6 90//6 88//6 +f 73//5 88//5 72//5 +f 75//3 89//3 63//3 +f 63//2 87//2 73//2 +f 110//2 98//2 101//2 +f 91//1 108//1 93//1 +f 97//1 114//1 99//1 +f 92//1 113//1 97//1 +f 118//2 105//2 106//2 +f 104//2 118//2 106//2 +f 96//1 114//1 112//1 +f 117//2 100//2 105//2 +f 102//2 122//2 103//2 +f 94//1 120//1 119//1 +f 122//2 104//2 103//2 +f 96//1 120//1 95//1 +f 100//2 110//2 101//2 +f 92//1 108//1 111//1 +f 123//1 107//1 91//1 +f 124//2 126//2 102//2 +f 127//1 144//1 129//1 +f 133//1 150//1 135//1 +f 128//1 149//1 133//1 +f 154//2 141//2 142//2 +f 140//2 154//2 142//2 +f 132//1 150//1 148//1 +f 153//2 136//2 141//2 +f 157//2 139//2 138//2 +f 131//1 155//1 130//1 +f 158//2 140//2 139//2 +f 132//1 156//1 131//1 +f 136//2 146//2 137//2 +f 128//1 144//1 147//1 +f 159//1 143//1 127//1 +f 160//2 162//2 138//2 +f 83//2 69//2 84//2 +f 190//2 200//2 189//2 +f 179//2 201//2 190//2 +f 179//2 191//2 202//2 +f 181//2 191//2 180//2 +f 182//2 192//2 181//2 +f 183//2 193//2 182//2 +f 184//2 194//2 183//2 +f 184//2 196//2 195//2 +f 186//2 196//2 185//2 +f 186//2 198//2 197//2 +f 188//2 198//2 187//2 +f 189//2 199//2 188//2 +f 88//2 227//2 228//2 +f 83//2 230//2 86//2 +f 229//2 84//2 82//2 +f 213//2 209//2 205//2 +f 239//4 247//4 238//4 +f 237//5 245//5 236//5 +f 235//6 243//6 234//6 +f 238//7 246//7 237//7 +f 236//8 244//8 235//8 +f 248//2 243//2 245//2 +f 243//9 712//9 711//9 +f 711//2 242//2 232//2 +f 234//1 252//1 235//1 +f 233//10 251//10 234//10 +f 231//1 250//1 233//1 +f 240//1 256//1 241//1 +f 239//10 255//10 240//10 +f 238//1 254//1 239//1 +f 236//1 258//1 237//1 +f 258//1 238//1 237//1 +f 235//1 257//1 236//1 +f 231//3 285//3 283//3 +f 232//3 286//3 285//3 +f 295//1 297//1 287//1 +f 307//1 312//1 313//1 +f 326//2 328//2 321//2 +f 312//5 331//5 322//5 +f 303//11 318//11 319//11 +f 305//12 318//12 304//12 +f 306//7 317//7 305//7 +f 307//13 325//13 306//13 +f 311//14 321//14 312//14 +f 316//5 326//5 307//5 +f 303//8 320//8 311//8 +f 335//1 337//1 341//1 +f 396//2 416//2 397//2 +f 395//2 417//2 396//2 +f 395//2 419//2 418//2 +f 394//2 420//2 419//2 +f 393//2 421//2 420//2 +f 392//2 422//2 421//2 +f 373//1 415//1 372//1 +f 374//1 414//1 373//1 +f 375//1 413//1 374//1 +f 376//1 412//1 375//1 +f 410//1 376//1 377//1 +f 409//1 377//1 378//1 +f 397//15 405//15 378//15 +f 409//1 405//1 403//1 +f 403//16 434//16 402//16 +f 406//2 416//2 402//2 +f 407//17 430//17 408//17 +f 422//2 408//2 401//2 +f 391//18 407//18 408//18 +f 407//1 415//1 404//1 +f 447//1 438//1 445//1 +f 433//3 431//3 432//3 +f 435//3 429//3 436//3 +f 406//2 434//2 433//2 +f 404//19 435//19 436//19 +f 406//20 432//20 405//20 +f 407//21 436//21 429//21 +f 408//22 435//22 401//22 +f 405//1 431//1 403//1 +f 445//4 440//4 446//4 +f 448//3 445//3 446//3 +f 445//1 438//1 409//1 +f 440//3 403//3 402//3 +f 446//2 440//2 402//2 +f 443//2 446//2 437//2 +f 447//1 441//1 404//1 +f 447//6 444//6 441//6 +f 448//2 443//2 422//2 +f 441//3 401//3 404//3 +f 453//23 460//23 456//23 +f 451//4 454//4 452//4 +f 450//6 456//6 449//6 +f 452//2 453//2 450//2 +f 449//1 455//1 451//1 +f 458//3 460//3 457//3 +f 454//24 457//24 453//24 +f 456//25 459//25 455//25 +f 455//26 458//26 454//26 +f 471//8 493//8 472//8 +f 425//2 469//2 468//2 +f 424//2 468//2 467//2 +f 423//2 467//2 466//2 +f 423//2 465//2 400//2 +f 475//1 388//1 389//1 +f 390//1 475//1 389//1 +f 379//1 474//1 390//1 +f 380//1 473//1 379//1 +f 381//1 484//1 380//1 +f 382//1 483//1 381//1 +f 383//1 482//1 382//1 +f 384//1 481//1 383//1 +f 385//1 480//1 384//1 +f 386//1 479//1 385//1 +f 477//1 386//1 387//1 +f 476//1 387//1 388//1 +f 486//2 492//2 490//2 +f 485//2 490//2 491//2 +f 489//2 491//2 493//2 +f 488//2 493//2 494//2 +f 428//27 494//27 471//27 +f 461//12 490//12 462//12 +f 472//11 491//11 461//11 +f 462//7 492//7 463//7 +f 463//28 487//28 398//28 +f 503//2 508//2 504//2 +f 505//2 508//2 507//2 +f 495//2 507//2 506//2 +f 496//2 506//2 515//2 +f 497//2 515//2 514//2 +f 498//2 514//2 513//2 +f 511//2 520//2 540//2 +f 531//1 529//1 541//1 +f 526//1 521//1 522//1 +f 523//1 526//1 522//1 +f 517//1 524//1 523//1 +f 516//1 525//1 517//1 +f 518//1 534//1 516//1 +f 519//1 533//1 518//1 +f 539//5 542//5 540//5 +f 502//8 540//8 500//8 +f 537//7 541//7 535//7 +f 536//4 537//4 535//4 +f 502//6 499//6 501//6 +f 528//1 535//1 529//1 +f 537//2 510//2 511//2 +f 512//3 501//3 499//3 +f 528//3 538//3 536//3 +f 530//1 502//1 501//1 +f 512//2 500//2 520//2 +f 561//29 563//29 559//29 +f 549//29 551//29 547//29 +f 544//2 550//2 546//2 +f 543//6 548//6 544//6 +f 545//1 547//1 543//1 +f 546//4 549//4 545//4 +f 551//5 554//5 552//5 +f 550//4 553//4 549//4 +f 548//30 554//30 550//30 +f 547//6 552//6 548//6 +f 556//2 562//2 558//2 +f 555//6 560//6 556//6 +f 557//1 559//1 555//1 +f 558//4 561//4 557//4 +f 563//5 566//5 564//5 +f 562//4 565//4 561//4 +f 560//30 566//30 562//30 +f 559//6 564//6 560//6 +f 568//4 569//4 567//4 +f 570//2 573//2 569//2 +f 574//6 571//6 573//6 +f 572//1 567//1 571//1 +f 573//5 567//5 569//5 +f 570//3 572//3 574//3 +f 243//6 711//6 232//6 +f 575//5 578//5 576//5 +f 582//3 579//3 580//3 +f 606//5 603//5 604//5 +f 578//2 581//2 582//2 +f 592//4 593//4 591//4 +f 576//1 579//1 575//1 +f 587//6 590//6 588//6 +f 583//3 590//3 585//3 +f 584//1 588//1 583//1 +f 584//5 589//5 587//5 +f 589//1 624//1 590//1 +f 598//6 595//6 597//6 +f 598//2 597//2 599//2 +f 597//31 601//31 599//31 +f 594//3 602//3 600//3 +f 600//32 596//32 598//32 +f 599//5 591//5 593//5 +f 606//2 609//2 605//2 +f 607//3 610//3 608//3 +f 592//1 591//1 601//1 +f 613//6 612//6 611//6 +f 607//1 604//1 603//1 +f 615//4 618//4 617//4 +f 620//2 614//2 619//2 +f 621//33 617//33 619//33 +f 622//3 614//3 620//3 +f 616//34 620//34 618//34 +f 611//5 619//5 613//5 +f 622//1 616//1 621//1 +f 623//35 626//35 624//35 +f 625//5 589//5 586//5 +f 590//3 626//3 585//3 +f 625//36 585//36 626//36 +f 627//1 630//1 628//1 +f 634//2 631//2 632//2 +f 630//4 632//4 628//4 +f 627//37 633//37 629//37 +f 630//3 633//3 634//3 +f 642//4 639//4 640//4 +f 642//3 635//3 637//3 +f 640//1 636//1 635//1 +f 636//5 641//5 638//5 +f 644//1 641//1 642//1 +f 646//38 643//38 644//38 +f 641//5 645//5 638//5 +f 642//3 646//3 644//3 +f 637//39 645//39 646//39 +f 650//1 647//1 648//1 +f 651//2 654//2 652//2 +f 652//6 650//6 648//6 +f 653//40 647//40 649//40 +f 650//3 653//3 649//3 +f 239//4 242//4 248//4 +f 241//3 256//3 284//3 +f 718//1 716//1 714//1 +f 719//1 713//1 715//1 +f 713//6 722//6 715//6 +f 720//5 721//5 713//5 +f 719//4 727//4 720//4 +f 714//5 726//5 718//5 +f 716//4 724//4 714//4 +f 715//3 728//3 719//3 +f 717//3 723//3 716//3 +f 718//6 725//6 717//6 +f 735//41 737//41 739//41 +f 729//6 735//6 731//6 +f 744//5 741//5 742//5 +f 732//4 734//4 730//4 +f 730//2 733//2 729//2 +f 740//3 737//3 738//3 +f 736//42 738//42 734//42 +f 734//43 737//43 733//43 +f 732//1 731//1 739//1 +f 747//3 750//3 748//3 +f 743//6 745//6 741//6 +f 750//2 751//2 743//2 +f 747//1 746//1 742//1 +f 743//2 748//2 750//2 +f 746//4 744//4 742//4 +f 747//44 752//44 746//44 +f 748//6 753//6 747//6 +f 745//44 754//44 749//44 +f 750//4 749//4 754//4 +f 752//2 748//2 744//2 +f 760//1 769//1 768//1 +f 755//1 763//1 762//1 +f 755//1 769//1 761//1 +f 771//1 767//1 759//1 +f 770//1 765//1 757//1 +f 757//1 763//1 756//1 +f 782//2 775//2 786//2 +f 774//2 779//2 780//2 +f 784//2 775//2 783//2 +f 784//2 772//2 776//2 +f 772//2 778//2 773//2 +f 778//2 774//2 773//2 +f 800//4 795//4 797//4 +f 810//6 806//6 804//6 +f 794//45 788//45 792//45 +f 793//46 787//46 789//46 +f 793//47 790//47 794//47 +f 792//25 787//25 791//25 +f 816//4 811//4 813//4 +f 826//6 822//6 820//6 +f 887//3 828//3 883//3 +f 831//5 834//5 832//5 +f 827//6 834//6 829//6 +f 832//1 885//1 884//1 +f 830//4 831//4 828//4 +f 833//2 888//2 889//2 +f 843//2 841//2 837//2 +f 829//3 886//3 827//3 +f 890//45 885//45 886//45 +f 888//46 883//46 884//46 +f 889//3 884//3 885//3 +f 895//5 897//5 896//5 +f 892//6 898//6 894//6 +f 893//4 896//4 891//4 +f 894//2 895//2 893//2 +f 891//1 897//1 892//1 +f 913//4 899//4 901//4 +f 912//6 902//6 900//6 +f 917//4 903//4 905//4 +f 916//6 906//6 904//6 +f 915//4 901//4 903//4 +f 902//6 916//6 904//6 +f 921//4 907//4 909//4 +f 908//6 922//6 910//6 +f 919//4 905//4 907//4 +f 906//6 920//6 908//6 +f 930//6 924//6 926//6 +f 927//4 925//4 923//4 +f 931//4 929//4 927//4 +f 934//6 928//6 930//6 +f 932//6 934//6 936//6 +f 933//4 931//4 935//4 +f 10//1 8//1 34//1 +f 8//1 6//1 35//1 +f 6//1 4//1 36//1 +f 4//1 2//1 25//1 +f 24//1 26//1 25//1 +f 24//1 22//1 27//1 +f 22//1 20//1 28//1 +f 20//1 18//1 29//1 +f 18//1 16//1 30//1 +f 14//1 31//1 30//1 +f 14//1 12//1 32//1 +f 10//1 33//1 32//1 +f 38//1 37//1 41//1 +f 37//1 39//1 41//1 +f 39//1 40//1 41//1 +f 41//1 42//1 43//1 +f 43//1 44//1 45//1 +f 45//1 46//1 47//1 +f 47//1 48//1 45//1 +f 48//1 38//1 45//1 +f 41//1 43//1 45//1 +f 50//1 68//1 67//1 +f 68//1 52//1 79//1 +f 81//1 51//1 67//1 +f 68//1 79//1 67//1 +f 146//2 145//2 134//2 +f 88//2 82//2 70//2 +f 64//3 85//3 86//3 +f 86//4 85//4 80//4 +f 74//2 80//2 85//2 +f 71//5 83//5 80//5 +f 87//6 89//6 90//6 +f 73//5 87//5 88//5 +f 75//3 90//3 89//3 +f 63//2 89//2 87//2 +f 110//2 109//2 98//2 +f 91//1 107//1 108//1 +f 97//1 113//1 114//1 +f 92//1 111//1 113//1 +f 118//2 117//2 105//2 +f 104//2 116//2 118//2 +f 96//1 99//1 114//1 +f 117//2 115//2 100//2 +f 102//2 121//2 122//2 +f 94//1 95//1 120//1 +f 122//2 116//2 104//2 +f 96//1 112//1 120//1 +f 100//2 115//2 110//2 +f 92//1 93//1 108//1 +f 91//1 94//1 123//1 +f 94//1 119//1 125//1 +f 123//1 94//1 125//1 +f 121//2 102//2 126//2 +f 102//2 98//2 124//2 +f 98//2 109//2 124//2 +f 127//1 143//1 144//1 +f 133//1 149//1 150//1 +f 128//1 147//1 149//1 +f 154//2 153//2 141//2 +f 140//2 152//2 154//2 +f 132//1 135//1 150//1 +f 153//2 151//2 136//2 +f 157//2 158//2 139//2 +f 131//1 156//1 155//1 +f 158//2 152//2 140//2 +f 132//1 148//1 156//1 +f 136//2 151//2 146//2 +f 128//1 129//1 144//1 +f 127//1 130//1 159//1 +f 130//1 155//1 161//1 +f 159//1 130//1 161//1 +f 157//2 138//2 162//2 +f 138//2 134//2 160//2 +f 134//2 145//2 160//2 +f 83//2 71//2 69//2 +f 190//2 201//2 200//2 +f 179//2 202//2 201//2 +f 179//2 180//2 191//2 +f 181//2 192//2 191//2 +f 182//2 193//2 192//2 +f 183//2 194//2 193//2 +f 184//2 195//2 194//2 +f 184//2 185//2 196//2 +f 186//2 197//2 196//2 +f 186//2 187//2 198//2 +f 188//2 199//2 198//2 +f 189//2 200//2 199//2 +f 88//2 90//2 227//2 +f 83//2 229//2 230//2 +f 82//2 88//2 228//2 +f 229//2 83//2 84//2 +f 82//2 228//2 229//2 +f 205//2 204//2 213//2 +f 204//2 203//2 213//2 +f 203//2 214//2 213//2 +f 213//2 212//2 211//2 +f 211//2 210//2 209//2 +f 209//2 208//2 207//2 +f 207//2 206//2 205//2 +f 213//2 211//2 209//2 +f 209//2 207//2 205//2 +f 239//4 248//4 247//4 +f 237//5 246//5 245//5 +f 235//6 244//6 243//6 +f 238//7 247//7 246//7 +f 236//8 245//8 244//8 +f 243//2 244//2 245//2 +f 245//2 246//2 248//2 +f 246//2 247//2 248//2 +f 243//9 248//9 712//9 +f 711//2 712//2 242//2 +f 234//1 251//1 252//1 +f 233//10 250//10 251//10 +f 231//1 249//1 250//1 +f 240//1 255//1 256//1 +f 239//10 254//10 255//10 +f 238//1 253//1 254//1 +f 236//1 257//1 258//1 +f 258//1 253//1 238//1 +f 235//1 252//1 257//1 +f 283//3 249//3 231//3 +f 231//3 232//3 285//3 +f 232//3 242//3 286//3 +f 287//1 288//1 289//1 +f 289//1 290//1 291//1 +f 291//1 292//1 293//1 +f 293//1 294//1 295//1 +f 295//1 296//1 297//1 +f 297//1 298//1 287//1 +f 287//1 289//1 295//1 +f 289//1 291//1 295//1 +f 291//1 293//1 295//1 +f 303//1 311//1 312//1 +f 312//1 322//1 323//1 +f 323//1 324//1 312//1 +f 324//1 313//1 312//1 +f 313//1 314//1 307//1 +f 314//1 315//1 307//1 +f 315//1 316//1 307//1 +f 307//1 306//1 305//1 +f 305//1 304//1 303//1 +f 303//1 312//1 305//1 +f 305//1 312//1 307//1 +f 321//2 320//2 319//2 +f 319//2 318//2 321//2 +f 318//2 317//2 321//2 +f 317//2 325//2 326//2 +f 326//2 330//2 329//2 +f 329//2 327//2 326//2 +f 327//2 328//2 326//2 +f 328//2 333//2 321//2 +f 333//2 332//2 321//2 +f 332//2 331//2 321//2 +f 317//2 326//2 321//2 +f 312//5 321//5 331//5 +f 303//11 304//11 318//11 +f 305//12 317//12 318//12 +f 306//7 325//7 317//7 +f 307//13 326//13 325//13 +f 311//14 320//14 321//14 +f 316//5 330//5 326//5 +f 303//8 319//8 320//8 +f 345//1 334//1 335//1 +f 335//1 336//1 337//1 +f 337//1 338//1 341//1 +f 338//1 339//1 341//1 +f 339//1 340//1 341//1 +f 341//1 342//1 345//1 +f 342//1 343//1 345//1 +f 343//1 344//1 345//1 +f 345//1 335//1 341//1 +f 396//2 417//2 416//2 +f 395//2 418//2 417//2 +f 395//2 394//2 419//2 +f 394//2 393//2 420//2 +f 393//2 392//2 421//2 +f 392//2 391//2 422//2 +f 373//1 414//1 415//1 +f 374//1 413//1 414//1 +f 375//1 412//1 413//1 +f 376//1 411//1 412//1 +f 410//1 411//1 376//1 +f 409//1 410//1 377//1 +f 397//15 406//15 405//15 +f 409//1 378//1 405//1 +f 403//16 431//16 434//16 +f 406//2 397//2 416//2 +f 407//17 429//17 430//17 +f 422//2 391//2 408//2 +f 391//18 372//18 407//18 +f 407//1 372//1 415//1 +f 447//1 442//1 438//1 +f 433//3 434//3 431//3 +f 435//3 430//3 429//3 +f 406//2 402//2 434//2 +f 404//19 401//19 435//19 +f 406//20 433//20 432//20 +f 407//21 404//21 436//21 +f 408//22 430//22 435//22 +f 405//1 432//1 431//1 +f 445//4 439//4 440//4 +f 448//3 447//3 445//3 +f 409//1 403//1 445//1 +f 403//1 439//1 445//1 +f 440//3 439//3 403//3 +f 402//2 416//2 446//2 +f 416//2 437//2 446//2 +f 443//2 448//2 446//2 +f 404//1 415//1 447//1 +f 415//1 442//1 447//1 +f 447//6 448//6 444//6 +f 422//2 401//2 448//2 +f 401//2 444//2 448//2 +f 441//3 444//3 401//3 +f 453//23 457//23 460//23 +f 451//4 455//4 454//4 +f 450//6 453//6 456//6 +f 452//2 454//2 453//2 +f 449//1 456//1 455//1 +f 458//3 459//3 460//3 +f 454//24 458//24 457//24 +f 456//25 460//25 459//25 +f 455//26 459//26 458//26 +f 471//8 494//8 493//8 +f 425//2 426//2 469//2 +f 424//2 425//2 468//2 +f 423//2 424//2 467//2 +f 423//2 466//2 465//2 +f 475//1 476//1 388//1 +f 390//1 474//1 475//1 +f 379//1 473//1 474//1 +f 380//1 484//1 473//1 +f 381//1 483//1 484//1 +f 382//1 482//1 483//1 +f 383//1 481//1 482//1 +f 384//1 480//1 481//1 +f 385//1 479//1 480//1 +f 386//1 478//1 479//1 +f 477//1 478//1 386//1 +f 476//1 477//1 387//1 +f 486//2 487//2 492//2 +f 485//2 486//2 490//2 +f 489//2 485//2 491//2 +f 488//2 489//2 493//2 +f 428//27 488//27 494//27 +f 461//12 491//12 490//12 +f 472//11 493//11 491//11 +f 462//7 490//7 492//7 +f 463//28 492//28 487//28 +f 503//2 509//2 508//2 +f 505//2 504//2 508//2 +f 495//2 505//2 507//2 +f 496//2 495//2 506//2 +f 497//2 496//2 515//2 +f 498//2 497//2 514//2 +f 520//2 500//2 540//2 +f 540//2 542//2 511//2 +f 542//2 537//2 511//2 +f 529//1 535//1 541//1 +f 541//1 539//1 531//1 +f 539//1 502//1 531//1 +f 526//1 527//1 521//1 +f 523//1 524//1 526//1 +f 517//1 525//1 524//1 +f 516//1 534//1 525//1 +f 518//1 533//1 534//1 +f 519//1 532//1 533//1 +f 539//5 541//5 542//5 +f 502//8 539//8 540//8 +f 537//7 542//7 541//7 +f 536//4 538//4 537//4 +f 502//6 500//6 499//6 +f 528//1 536//1 535//1 +f 537//2 538//2 510//2 +f 512//3 530//3 501//3 +f 528//3 510//3 538//3 +f 530//1 531//1 502//1 +f 512//2 499//2 500//2 +f 561//29 565//29 563//29 +f 549//29 553//29 551//29 +f 544//2 548//2 550//2 +f 543//6 547//6 548//6 +f 545//1 549//1 547//1 +f 546//4 550//4 549//4 +f 551//5 553//5 554//5 +f 550//4 554//4 553//4 +f 548//30 552//30 554//30 +f 547//6 551//6 552//6 +f 556//2 560//2 562//2 +f 555//6 559//6 560//6 +f 557//1 561//1 559//1 +f 558//4 562//4 561//4 +f 563//5 565//5 566//5 +f 562//4 566//4 565//4 +f 560//30 564//30 566//30 +f 559//6 563//6 564//6 +f 568//4 570//4 569//4 +f 570//2 574//2 573//2 +f 574//6 572//6 571//6 +f 572//1 568//1 567//1 +f 573//5 571//5 567//5 +f 570//3 568//3 572//3 +f 232//6 231//6 243//6 +f 231//6 233//6 234//6 +f 243//6 231//6 234//6 +f 575//5 577//5 578//5 +f 582//3 581//3 579//3 +f 606//5 605//5 603//5 +f 578//2 577//2 581//2 +f 592//4 594//4 593//4 +f 576//1 580//1 579//1 +f 587//6 589//6 590//6 +f 583//3 588//3 590//3 +f 584//1 587//1 588//1 +f 584//5 586//5 589//5 +f 589//1 623//1 624//1 +f 598//6 596//6 595//6 +f 599//2 593//2 594//2 +f 594//2 600//2 599//2 +f 600//2 598//2 599//2 +f 597//31 595//31 601//31 +f 594//3 592//3 602//3 +f 600//32 602//32 596//32 +f 599//5 601//5 591//5 +f 606//2 610//2 609//2 +f 607//3 609//3 610//3 +f 601//1 595//1 596//1 +f 596//1 602//1 601//1 +f 602//1 592//1 601//1 +f 613//6 614//6 612//6 +f 607//1 608//1 604//1 +f 615//4 616//4 618//4 +f 614//2 613//2 619//2 +f 619//2 617//2 618//2 +f 618//2 620//2 619//2 +f 621//33 615//33 617//33 +f 622//3 612//3 614//3 +f 616//34 622//34 620//34 +f 611//5 621//5 619//5 +f 616//1 615//1 621//1 +f 621//1 611//1 612//1 +f 612//1 622//1 621//1 +f 623//35 625//35 626//35 +f 625//5 623//5 589//5 +f 590//3 624//3 626//3 +f 625//36 586//36 585//36 +f 627//1 629//1 630//1 +f 634//2 633//2 631//2 +f 630//4 634//4 632//4 +f 627//37 631//37 633//37 +f 630//3 629//3 633//3 +f 642//4 641//4 639//4 +f 642//3 640//3 635//3 +f 640//1 639//1 636//1 +f 636//5 639//5 641//5 +f 644//1 643//1 641//1 +f 646//38 645//38 643//38 +f 641//5 643//5 645//5 +f 642//3 637//3 646//3 +f 637//39 638//39 645//39 +f 650//1 649//1 647//1 +f 651//2 653//2 654//2 +f 652//6 654//6 650//6 +f 653//40 651//40 647//40 +f 650//3 654//3 653//3 +f 239//4 240//4 241//4 +f 241//4 242//4 239//4 +f 242//4 712//4 248//4 +f 284//3 286//3 241//3 +f 286//3 242//3 241//3 +f 718//1 717//1 716//1 +f 719//1 720//1 713//1 +f 713//6 721//6 722//6 +f 720//5 727//5 721//5 +f 719//4 728//4 727//4 +f 714//5 724//5 726//5 +f 716//4 723//4 724//4 +f 715//3 722//3 728//3 +f 717//3 725//3 723//3 +f 718//6 726//6 725//6 +f 735//41 733//41 737//41 +f 729//6 733//6 735//6 +f 744//5 743//5 741//5 +f 732//4 736//4 734//4 +f 730//2 734//2 733//2 +f 740//3 739//3 737//3 +f 736//42 740//42 738//42 +f 734//43 738//43 737//43 +f 731//1 735//1 739//1 +f 739//1 740//1 732//1 +f 740//1 736//1 732//1 +f 747//3 749//3 750//3 +f 743//6 751//6 745//6 +f 750//2 754//2 751//2 +f 742//1 741//1 749//1 +f 741//1 745//1 749//1 +f 749//1 747//1 742//1 +f 743//2 744//2 748//2 +f 746//4 752//4 744//4 +f 747//44 753//44 752//44 +f 745//44 751//44 754//44 +f 752//2 753//2 748//2 +f 760//1 761//1 769//1 +f 755//1 756//1 763//1 +f 755//1 762//1 769//1 +f 771//1 760//1 767//1 +f 760//1 768//1 767//1 +f 767//1 766//1 759//1 +f 770//1 759//1 765//1 +f 759//1 766//1 765//1 +f 765//1 764//1 757//1 +f 757//1 764//1 763//1 +f 758//2 781//2 782//2 +f 782//2 783//2 775//2 +f 786//2 758//2 782//2 +f 781//2 758//2 780//2 +f 758//2 785//2 780//2 +f 785//2 774//2 780//2 +f 784//2 776//2 775//2 +f 784//2 777//2 772//2 +f 772//2 777//2 778//2 +f 778//2 779//2 774//2 +f 797//4 798//4 802//4 +f 802//4 801//4 800//4 +f 800//4 799//4 795//4 +f 795//4 796//4 797//4 +f 797//4 802//4 800//4 +f 804//6 803//6 809//6 +f 809//6 808//6 810//6 +f 810//6 807//6 806//6 +f 806//6 805//6 804//6 +f 804//6 809//6 810//6 +f 794//45 790//45 788//45 +f 793//46 791//46 787//46 +f 793//47 789//47 790//47 +f 792//25 788//25 787//25 +f 813//4 814//4 818//4 +f 818//4 817//4 816//4 +f 816//4 815//4 811//4 +f 811//4 812//4 813//4 +f 813//4 818//4 816//4 +f 820//6 819//6 825//6 +f 825//6 824//6 826//6 +f 826//6 823//6 822//6 +f 822//6 821//6 820//6 +f 820//6 825//6 826//6 +f 887//3 830//3 828//3 +f 831//5 833//5 834//5 +f 827//6 832//6 834//6 +f 832//1 827//1 885//1 +f 827//1 886//1 885//1 +f 828//1 831//1 884//1 +f 831//1 832//1 884//1 +f 884//1 883//1 828//1 +f 830//4 833//4 831//4 +f 833//2 830//2 888//2 +f 830//2 887//2 888//2 +f 829//2 834//2 889//2 +f 834//2 833//2 889//2 +f 889//2 890//2 829//2 +f 837//2 836//2 835//2 +f 835//2 846//2 837//2 +f 846//2 845//2 837//2 +f 845//2 844//2 843//2 +f 843//2 842//2 841//2 +f 841//2 840//2 839//2 +f 839//2 838//2 841//2 +f 838//2 837//2 841//2 +f 845//2 843//2 837//2 +f 829//3 890//3 886//3 +f 890//45 889//45 885//45 +f 888//46 887//46 883//46 +f 889//3 888//3 884//3 +f 895//5 898//5 897//5 +f 892//6 897//6 898//6 +f 893//4 895//4 896//4 +f 894//2 898//2 895//2 +f 891//1 896//1 897//1 +f 913//4 911//4 899//4 +f 912//6 914//6 902//6 +f 917//4 915//4 903//4 +f 916//6 918//6 906//6 +f 915//4 913//4 901//4 +f 902//6 914//6 916//6 +f 921//4 919//4 907//4 +f 908//6 920//6 922//6 +f 919//4 917//4 905//4 +f 906//6 918//6 920//6 +f 930//6 928//6 924//6 +f 927//4 929//4 925//4 +f 931//4 933//4 929//4 +f 934//6 932//6 928//6 +s 1 +f 2//3 3//48 1//3 +f 4//48 5//49 3//48 +f 6//49 7//6 5//49 +f 8//6 9//50 7//6 +f 10//50 11//28 9//50 +f 12//28 13//5 11//28 +f 14//5 15//27 13//5 +f 16//27 17//51 15//27 +f 18//51 19//4 17//51 +f 20//4 21//52 19//4 +f 22//52 23//53 21//52 +f 24//53 1//3 23//53 +f 29//49 40//6 28//6 +f 36//27 47//51 35//51 +f 26//28 38//5 25//5 +f 33//52 44//53 32//53 +f 30//48 41//49 29//49 +f 25//5 48//27 36//27 +f 27//50 37//28 26//28 +f 34//4 45//52 33//52 +f 31//3 42//48 30//48 +f 28//6 39//50 27//50 +f 35//51 46//4 34//4 +f 32//53 43//3 31//3 +f 49//3 54//54 50//3 +f 53//54 56//1 54//54 +f 55//1 58//55 56//1 +f 57//55 60//56 58//55 +f 59//56 62//56 60//56 +f 52//57 82//58 79//58 +f 61//56 66//5 62//56 +f 73//59 72//46 70//57 +f 69//60 71//45 74//61 +f 73//59 50//6 63//6 +f 67//62 64//4 49//4 +f 63//6 50//6 60//6 +f 57//4 55//4 53//4 +f 81//63 69//60 51//60 +f 79//58 84//63 81//63 +f 107//64 110//65 108//65 +f 111//66 110//65 115//66 +f 111//66 117//58 113//58 +f 113//58 118//63 114//63 +f 114//63 116//67 112//67 +f 120//68 116//67 122//68 +f 120//68 121//69 119//69 +f 121//69 125//70 119//69 +f 107//64 124//71 109//64 +f 123//71 126//70 124//71 +f 143//64 146//65 144//65 +f 147//66 146//65 151//66 +f 147//66 153//58 149//58 +f 149//58 154//63 150//63 +f 150//63 152//67 148//67 +f 156//68 152//67 158//68 +f 156//68 157//69 155//69 +f 157//69 161//70 155//69 +f 143//64 160//71 145//64 +f 159//71 162//70 160//71 +f 168//72 172//73 163//74 +f 170//63 176//75 167//58 +f 169//76 173//77 178//78 +f 172//73 662//79 659//80 +f 174//81 166//82 165//71 +f 170//63 178//78 177//83 +f 172//73 164//70 163//74 +f 176//75 168//72 167//58 +f 164//70 174//81 165//71 +f 190//27 203//5 179//5 +f 180//28 205//50 181//50 +f 187//52 212//4 188//4 +f 184//48 209//3 185//3 +f 181//50 206//6 182//6 +f 188//4 213//51 189//51 +f 185//3 210//53 186//53 +f 182//6 207//49 183//49 +f 189//51 214//27 190//27 +f 179//5 204//28 180//28 +f 186//53 211//52 187//52 +f 183//49 208//48 184//48 +f 197//28 220//5 196//5 +f 194//51 217//4 193//4 +f 201//48 224//49 200//49 +f 191//53 226//3 202//3 +f 198//50 221//28 197//28 +f 195//27 218//51 194//51 +f 202//3 225//48 201//48 +f 192//52 215//53 191//53 +f 199//6 222//50 198//50 +f 196//5 219//27 195//27 +f 193//4 216//52 192//52 +f 200//49 223//6 199//6 +f 272//52 261//4 260//52 +f 279//6 268//49 267//6 +f 276//5 265//28 264//5 +f 273//4 262//51 261//4 +f 280//49 269//48 268//49 +f 282//3 259//53 270//3 +f 277//28 266//50 265//28 +f 274//51 263//27 262//51 +f 281//48 270//3 269//48 +f 271//53 260//52 259//53 +f 278//50 267//6 266//50 +f 275//27 264//5 263//27 +f 289//52 302//84 290//84 +f 296//85 309//49 297//49 +f 298//48 309//49 310//48 +f 287//3 299//53 288//53 +f 298//48 300//3 287//3 +f 288//53 301//52 289//52 +f 314//53 329//52 315//52 +f 322//85 332//49 323//49 +f 315//52 330//84 316//84 +f 323//49 333//48 324//48 +f 324//48 328//3 313//3 +f 313//3 327//53 314//53 +f 348//4 337//51 336//4 +f 355//49 344//48 343//49 +f 357//3 334//53 345//3 +f 352//28 341//50 340//28 +f 349//51 338//27 337//51 +f 356//48 345//3 344//48 +f 346//53 335//52 334//53 +f 353//50 342//6 341//50 +f 350//27 339//5 338//27 +f 347//52 336//4 335//52 +f 354//6 343//49 342//6 +f 351//5 340//28 339//5 +f 362//53 368//3 361//3 +f 360//48 366//49 359//49 +f 363//52 369//53 362//53 +f 361//3 367//48 360//48 +f 359//49 365//85 358//85 +f 364//84 370//52 363//52 +f 394//5 376//28 375//5 +f 395//28 377//50 376//28 +f 396//50 378//14 377//50 +f 391//13 373//51 372//13 +f 392//51 374//27 373//51 +f 393//27 375//5 374//27 +f 424//5 384//27 425//27 +f 427//86 381//52 428//87 +f 399//88 389//49 388//6 +f 423//28 385//5 424//5 +f 426//89 382//4 427//86 +f 400//90 386//28 423//28 +f 425//27 383//51 426//89 +f 428//87 381//52 380//53 +f 485//3 380//53 379//3 +f 400//90 388//6 387//50 +f 399//91 463//92 398//93 +f 427//94 471//95 470//96 +f 426//97 470//96 469//98 +f 399//91 465//95 464//99 +f 486//48 379//3 390//48 +f 496//53 517//3 495//3 +f 497//52 516//53 496//53 +f 504//49 521//85 503//85 +f 498//84 518//52 497//52 +f 505//48 522//49 504//49 +f 495//3 523//48 505//48 +f 390//48 389//49 398//100 +f 662//79 669//101 670//102 +f 171//103 659//80 660//104 +f 171//103 655//105 174//81 +f 178//78 658//106 177//83 +f 174//81 656//107 173//77 +f 173//77 657//108 178//78 +f 175//109 661//110 662//79 +f 177//83 661//110 176//75 +f 666//111 673//112 669//101 +f 657//108 666//111 658//106 +f 656//107 665//113 657//108 +f 660//104 663//114 655//105 +f 660//104 667//115 668//116 +f 655//105 664//117 656//107 +f 658//106 669//101 661//110 +f 659//80 670//102 667//115 +f 669//101 674//118 670//102 +f 666//111 671//119 672//120 +f 672//120 677//121 673//112 +f 673//112 678//122 674//118 +f 672//120 675//123 676//124 +f 676//124 681//125 677//121 +f 677//121 682//126 678//122 +f 675//123 680//127 676//124 +f 668//116 683//128 663//114 +f 668//116 685//129 686//130 +f 663//114 684//131 664//117 +f 686//130 687//132 683//128 +f 685//129 690//133 686//130 +f 684//131 687//132 688//134 +f 690//133 691//135 687//132 +f 690//133 693//136 694//137 +f 687//132 692//138 688//134 +f 694//137 695//139 691//135 +f 694//137 697//140 698//141 +f 691//135 696//142 692//138 +f 698//141 699//143 695//139 +f 697//140 702//144 698//141 +f 695//139 700//145 696//142 +f 702//144 703//146 699//143 +f 702//144 705//147 706//148 +f 699//143 704//149 700//145 +f 706//148 707//150 703//146 +f 705//147 710//151 706//148 +f 703//146 708//152 704//149 +f 674//118 689//153 670//102 +f 684//131 665//113 664//117 +f 708//152 680//127 679//154 +f 681//125 709//155 682//126 +f 707//150 681//125 680//127 +f 675//123 704//149 679//154 +f 688//134 671//119 665//113 +f 692//138 696//142 704//149 +f 679//154 704//149 708//152 +f 705//147 682//126 709//155 +f 705//147 678//122 682//126 +f 693//136 705//147 697//140 +f 685//129 670//102 689//153 +f 756//42 774//156 757//156 +f 764//6 778//8 763//8 +f 757//156 785//4 770//4 +f 765//41 779//6 764//6 +f 771//6 775//157 760//157 +f 766//3 780//41 765//41 +f 767//42 781//3 766//3 +f 768//4 782//42 767//42 +f 760//157 776//41 761//41 +f 769//7 783//4 768//4 +f 761//41 772//3 755//3 +f 755//3 773//42 756//42 +f 762//5 784//7 769//7 +f 763//8 777//5 762//5 +f 800//10 807//1 799//1 +f 801//5 806//10 800//10 +f 796//3 809//43 797//43 +f 797//43 803//2 798//2 +f 802//9 805//5 801//5 +f 798//2 804//9 802//9 +f 795//158 808//3 796//3 +f 799//1 810//158 795//158 +f 816//10 823//1 815//1 +f 817//5 822//10 816//10 +f 812//3 825//43 813//43 +f 813//43 819//2 814//2 +f 818//9 821//5 817//5 +f 814//2 820//9 818//9 +f 811//158 824//3 812//3 +f 815//1 826//158 811//158 +f 842//28 853//159 841//5 +f 839//51 850//160 838//4 +f 846//48 857//161 845//49 +f 836//53 847//162 835//3 +f 843//50 854//163 842//28 +f 840//27 851//164 839//51 +f 835//3 858//165 846//48 +f 837//52 848//166 836//53 +f 844//6 855//167 843//50 +f 841//5 852//168 840//27 +f 838//4 849//169 837//52 +f 845//49 856//170 844//6 +f 851//164 864//171 863//172 +f 858//165 859//173 870//174 +f 849//169 860//175 848//166 +f 855//167 868//176 867//177 +f 853//159 864//171 852//168 +f 849//169 862//178 861//179 +f 857//161 868//176 856//170 +f 853//159 866//180 865//181 +f 851//164 862//178 850//160 +f 858//165 869//182 857//161 +f 848//166 859//173 847//162 +f 855//167 866//180 854//163 +f 863//172 876//183 875//184 +f 870//174 871//185 882//186 +f 860//175 873//187 872//188 +f 867//177 880//189 879//190 +f 865//181 876//183 864//171 +f 862//178 873//187 861//179 +f 868//176 881//191 880//189 +f 865//181 878//192 877//193 +f 862//178 875//184 874//194 +f 870//174 881//191 869//182 +f 860//175 871//185 859//173 +f 867//177 878//192 866//180 +f 875//184 879//190 871//185 +f 902//195 899//2 900//2 +f 904//196 901//195 902//195 +f 906//55 903//196 904//196 +f 908//197 905//55 906//55 +f 910//29 907//197 908//197 +f 912//1 913//198 914//198 +f 916//54 917//199 918//199 +f 917//199 920//200 918//199 +f 920//200 921//24 922//24 +f 915//54 914//198 913//198 +f 929//201 926//29 925//29 +f 924//30 927//202 923//30 +f 928//202 931//195 927//202 +f 933//203 930//201 929//201 +f 936//204 933//203 935//204 +f 936//204 931//195 932//195 +f 2//3 4//48 3//48 +f 4//48 6//49 5//49 +f 6//49 8//6 7//6 +f 8//6 10//50 9//50 +f 10//50 12//28 11//28 +f 12//28 14//5 13//5 +f 14//5 16//27 15//27 +f 16//27 18//51 17//51 +f 18//51 20//4 19//4 +f 20//4 22//52 21//52 +f 22//52 24//53 23//53 +f 24//53 2//3 1//3 +f 29//49 41//49 40//6 +f 36//27 48//27 47//51 +f 26//28 37//28 38//5 +f 33//52 45//52 44//53 +f 30//48 42//48 41//49 +f 25//5 38//5 48//27 +f 27//50 39//50 37//28 +f 34//4 46//4 45//52 +f 31//3 43//3 42//48 +f 28//6 40//6 39//50 +f 35//51 47//51 46//4 +f 32//53 44//53 43//3 +f 49//3 53//54 54//54 +f 53//54 55//1 56//1 +f 55//1 57//55 58//55 +f 57//55 59//56 60//56 +f 59//56 61//56 62//56 +f 52//57 70//57 82//58 +f 61//56 65//5 66//5 +f 70//57 52//57 73//59 +f 52//57 68//205 73//59 +f 74//61 67//62 51//60 +f 51//60 69//60 74//61 +f 73//59 68//205 50//6 +f 67//62 74//61 64//4 +f 50//6 54//6 58//6 +f 54//6 56//6 58//6 +f 58//6 60//6 50//6 +f 60//6 62//6 63//6 +f 62//6 66//6 78//6 +f 63//6 62//6 75//6 +f 78//6 75//6 62//6 +f 53//4 49//4 57//4 +f 49//4 64//4 59//4 +f 59//4 64//4 61//4 +f 64//4 76//4 61//4 +f 76//4 77//4 61//4 +f 77//4 65//4 61//4 +f 59//4 57//4 49//4 +f 81//63 84//63 69//60 +f 79//58 82//58 84//63 +f 107//64 109//64 110//65 +f 111//66 108//65 110//65 +f 111//66 115//66 117//58 +f 113//58 117//58 118//63 +f 114//63 118//63 116//67 +f 120//68 112//67 116//67 +f 120//68 122//68 121//69 +f 121//69 126//70 125//70 +f 107//64 123//71 124//71 +f 123//71 125//70 126//70 +f 143//64 145//64 146//65 +f 147//66 144//65 146//65 +f 147//66 151//66 153//58 +f 149//58 153//58 154//63 +f 150//63 154//63 152//67 +f 156//68 148//67 152//67 +f 156//68 158//68 157//69 +f 157//69 162//70 161//70 +f 143//64 159//71 160//71 +f 159//71 161//70 162//70 +f 168//72 175//109 172//73 +f 170//63 177//83 176//75 +f 169//76 166//82 173//77 +f 172//73 175//109 662//79 +f 174//81 173//77 166//82 +f 170//63 169//76 178//78 +f 172//73 171//103 164//70 +f 176//75 175//109 168//72 +f 164//70 171//103 174//81 +f 190//27 214//27 203//5 +f 180//28 204//28 205//50 +f 187//52 211//52 212//4 +f 184//48 208//48 209//3 +f 181//50 205//50 206//6 +f 188//4 212//4 213//51 +f 185//3 209//3 210//53 +f 182//6 206//6 207//49 +f 189//51 213//51 214//27 +f 179//5 203//5 204//28 +f 186//53 210//53 211//52 +f 183//49 207//49 208//48 +f 197//28 221//28 220//5 +f 194//51 218//51 217//4 +f 201//48 225//48 224//49 +f 191//53 215//53 226//3 +f 198//50 222//50 221//28 +f 195//27 219//27 218//51 +f 202//3 226//3 225//48 +f 192//52 216//52 215//53 +f 199//6 223//6 222//50 +f 196//5 220//5 219//27 +f 193//4 217//4 216//52 +f 200//49 224//49 223//6 +f 272//52 273//4 261//4 +f 279//6 280//49 268//49 +f 276//5 277//28 265//28 +f 273//4 274//51 262//51 +f 280//49 281//48 269//48 +f 282//3 271//53 259//53 +f 277//28 278//50 266//50 +f 274//51 275//27 263//27 +f 281//48 282//3 270//3 +f 271//53 272//52 260//52 +f 278//50 279//6 267//6 +f 275//27 276//5 264//5 +f 289//52 301//52 302//84 +f 296//85 308//85 309//49 +f 298//48 297//49 309//49 +f 287//3 300//3 299//53 +f 298//48 310//48 300//3 +f 288//53 299//53 301//52 +f 314//53 327//53 329//52 +f 322//85 331//85 332//49 +f 315//52 329//52 330//84 +f 323//49 332//49 333//48 +f 324//48 333//48 328//3 +f 313//3 328//3 327//53 +f 348//4 349//51 337//51 +f 355//49 356//48 344//48 +f 357//3 346//53 334//53 +f 352//28 353//50 341//50 +f 349//51 350//27 338//27 +f 356//48 357//3 345//3 +f 346//53 347//52 335//52 +f 353//50 354//6 342//6 +f 350//27 351//5 339//5 +f 347//52 348//4 336//4 +f 354//6 355//49 343//49 +f 351//5 352//28 340//28 +f 362//53 369//53 368//3 +f 360//48 367//48 366//49 +f 363//52 370//52 369//53 +f 361//3 368//3 367//48 +f 359//49 366//49 365//85 +f 364//84 371//84 370//52 +f 394//5 395//28 376//28 +f 395//28 396//50 377//50 +f 396//50 397//14 378//14 +f 391//13 392//51 373//51 +f 392//51 393//27 374//27 +f 393//27 394//5 375//5 +f 424//5 385//5 384//27 +f 427//86 382//4 381//52 +f 399//88 398//100 389//49 +f 423//28 386//28 385//5 +f 426//89 383//51 382//4 +f 400//90 387//50 386//28 +f 425//27 384//27 383//51 +f 380//53 489//53 428//87 +f 489//53 488//42 428//87 +f 485//3 489//53 380//53 +f 400//90 399//88 388//6 +f 399//91 464//99 463//92 +f 427//94 428//206 471//95 +f 426//97 427//94 470//96 +f 399//91 400//206 465//95 +f 486//48 485//3 379//3 +f 496//53 516//53 517//3 +f 497//52 518//52 516//53 +f 504//49 522//49 521//85 +f 498//84 519//84 518//52 +f 505//48 523//48 522//49 +f 495//3 517//3 523//48 +f 487//41 486//48 398//100 +f 486//48 390//48 398//100 +f 662//79 661//110 669//101 +f 171//103 172//73 659//80 +f 171//103 660//104 655//105 +f 178//78 657//108 658//106 +f 174//81 655//105 656//107 +f 173//77 656//107 657//108 +f 175//109 176//75 661//110 +f 177//83 658//106 661//110 +f 666//111 672//120 673//112 +f 657//108 665//113 666//111 +f 656//107 664//117 665//113 +f 660//104 668//116 663//114 +f 660//104 659//80 667//115 +f 655//105 663//114 664//117 +f 658//106 666//111 669//101 +f 659//80 662//79 670//102 +f 669//101 673//112 674//118 +f 666//111 665//113 671//119 +f 672//120 676//124 677//121 +f 673//112 677//121 678//122 +f 672//120 671//119 675//123 +f 676//124 680//127 681//125 +f 677//121 681//125 682//126 +f 675//123 679//154 680//127 +f 668//116 686//130 683//128 +f 668//116 667//115 685//129 +f 663//114 683//128 684//131 +f 686//130 690//133 687//132 +f 685//129 689//153 690//133 +f 684//131 683//128 687//132 +f 690//133 694//137 691//135 +f 690//133 689//153 693//136 +f 687//132 691//135 692//138 +f 694//137 698//141 695//139 +f 694//137 693//136 697//140 +f 691//135 695//139 696//142 +f 698//141 702//144 699//143 +f 697//140 701//207 702//144 +f 695//139 699//143 700//145 +f 702//144 706//148 703//146 +f 702//144 701//207 705//147 +f 699//143 703//146 704//149 +f 706//148 710//151 707//150 +f 705//147 709//155 710//151 +f 703//146 707//150 708//152 +f 674//118 678//122 689//153 +f 684//131 688//134 665//113 +f 708//152 707//150 680//127 +f 681//125 710//151 709//155 +f 707//150 710//151 681//125 +f 688//134 675//123 671//119 +f 700//145 704//149 696//142 +f 704//149 675//123 692//138 +f 675//123 688//134 692//138 +f 693//136 689//153 678//122 +f 678//122 705//147 693//136 +f 705//147 701//207 697//140 +f 685//129 667//115 670//102 +f 756//42 773//42 774//156 +f 764//6 779//6 778//8 +f 757//156 774//156 785//4 +f 765//41 780//41 779//6 +f 771//6 786//6 775//157 +f 766//3 781//3 780//41 +f 767//42 782//42 781//3 +f 768//4 783//4 782//42 +f 760//157 775//157 776//41 +f 769//7 784//7 783//4 +f 761//41 776//41 772//3 +f 755//3 772//3 773//42 +f 762//5 777//5 784//7 +f 763//8 778//8 777//5 +f 800//10 806//10 807//1 +f 801//5 805//5 806//10 +f 796//3 808//3 809//43 +f 797//43 809//43 803//2 +f 802//9 804//9 805//5 +f 798//2 803//2 804//9 +f 795//158 810//158 808//3 +f 799//1 807//1 810//158 +f 816//10 822//10 823//1 +f 817//5 821//5 822//10 +f 812//3 824//3 825//43 +f 813//43 825//43 819//2 +f 818//9 820//9 821//5 +f 814//2 819//2 820//9 +f 811//158 826//158 824//3 +f 815//1 823//1 826//158 +f 842//28 854//163 853//159 +f 839//51 851//164 850//160 +f 846//48 858//165 857//161 +f 836//53 848//166 847//162 +f 843//50 855//167 854//163 +f 840//27 852//168 851//164 +f 835//3 847//162 858//165 +f 837//52 849//169 848//166 +f 844//6 856//170 855//167 +f 841//5 853//159 852//168 +f 838//4 850//160 849//169 +f 845//49 857//161 856//170 +f 851//164 852//168 864//171 +f 858//165 847//162 859//173 +f 849//169 861//179 860//175 +f 855//167 856//170 868//176 +f 853//159 865//181 864//171 +f 849//169 850//160 862//178 +f 857//161 869//182 868//176 +f 853//159 854//163 866//180 +f 851//164 863//172 862//178 +f 858//165 870//174 869//182 +f 848//166 860//175 859//173 +f 855//167 867//177 866//180 +f 863//172 864//171 876//183 +f 870//174 859//173 871//185 +f 860//175 861//179 873//187 +f 867//177 868//176 880//189 +f 865//181 877//193 876//183 +f 862//178 874//194 873//187 +f 868//176 869//182 881//191 +f 865//181 866//180 878//192 +f 862//178 863//172 875//184 +f 870//174 882//186 881//191 +f 860//175 872//188 871//185 +f 867//177 879//190 878//192 +f 871//185 872//188 875//184 +f 872//188 873//187 875//184 +f 873//187 874//194 875//184 +f 875//184 876//183 877//193 +f 877//193 878//192 879//190 +f 879//190 880//189 881//191 +f 881//191 882//186 879//190 +f 882//186 871//185 879//190 +f 875//184 877//193 879//190 +f 902//195 901//195 899//2 +f 904//196 903//196 901//195 +f 906//55 905//55 903//196 +f 908//197 907//197 905//55 +f 910//29 909//29 907//197 +f 912//1 911//1 913//198 +f 916//54 915//54 917//199 +f 917//199 919//200 920//200 +f 920//200 919//200 921//24 +f 915//54 916//54 914//198 +f 929//201 930//201 926//29 +f 924//30 928//202 927//202 +f 928//202 932//195 931//195 +f 933//203 934//203 930//201 +f 936//204 934//203 933//203 +f 936//204 935//204 931//195 diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png new file mode 100644 index 0000000000000000000000000000000000000000..699a5b4e200255f23477fe8303e6ac5355c0ba05 GIT binary patch literal 370 zcmV-&0ge8NP)DwDV(@6Fkj9x`Vaaglr6VC%$TSKHj{US>Qjhm<{a99SG+qKVf%6u^LdHS<8R#c`;A0qR*Tudiuu6S&XIEd4QK34Cb&JUZJJJf z0{iwnL{XGrX3NZ~Qb0sDNfN)H@s8p#u1?QT6eSKWP7p`;U}jY*$g-?TCZZMra}WD! z3;=kz=^>7|-T@I=t##+3hzMaAHhdz2G)-#-K12inptXiErlrs|{FOjNssti}F{V>p z&>2|~0f1Hqtu=^fX?LI=L5av(U)U#rF-Cc@2BCi?x8%+%EF;YG+>ieaKW6=UrU$ag QrvLx|07*qoM6N<$f*VYkBLDyZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png new file mode 100644 index 0000000000000000000000000000000000000000..96cc82109263eb7af14002382e8e4cc14498beac GIT binary patch literal 403 zcmV;E0c`$>P)NklBb5Qd*6-q~n&V?!Z+6~@9JKxaZD6(q)AU}0inWkG$x z*236X+CV{KBKiXe)W(FuMk+s0&H`==8z5N=yn|CfFuv8BotbB5cL)Ac-Db`_-JhCi zY9hWdu4A4b^0ewjjO$DcnemHD$s%j#ivX08KOrKT72RgeyuQ7&ym=%-0D$$w2(^QH z;N5a1)XBJxd93Bp`UB%SMntnB0J!A}v2==9x?k{eeG>x2_qHfFw}JN|!33>pHAuFk zB9=~t0GDLgJwECAoea>63xGx;VQeKwK9nUDbE_+%v$p3kyK&Z^;JezM2EbO5j`nC( zy%5lEI26$KbdX?4MMrzX(tv?I_^ToS9j!x$wvt#<{n{PAuCTO!CmIDg)e8F(qXLaW xA_N@#B}*y*=HnM)Bw!rSR+5G7tBGsJ>JuV8biJ^c_r?GK002ovPDHLkV1iNps+#}+ literal 0 HcmV?d00001