diff --git a/changelog b/changelog index 53a3e52b4..2c8db44ed 100644 --- a/changelog +++ b/changelog @@ -7,4 +7,8 @@ ## Fixed * Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases -* Fixed 528 coltan deposit config misspelling \ No newline at end of file +* Fixed 528 coltan deposit config misspelling +* Potentially fixed a performance issue caused by transmission networks not being deleted when they have no active links +* Fixed multi output recipe objects not deserializing right, causing the precision assembler config to not load +* Fixed pedestal recipes not using the correct register option, making custom config files wipe all clay tablets +* Fixed custom fluids breaking when using the `/ntmreload` command \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index f983c90ed..aed5ef93c 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -70,7 +70,12 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + /** For custom fluids */ public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { + setupCustom(name, color, p, f, r, symbol, texName, tint, id, displayName); + } + + public FluidType setupCustom(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { this.stringId = name; this.color = color; this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); @@ -85,6 +90,7 @@ public class FluidType { this.id = id; Fluids.register(this, id); + return this; } public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 9d8b6109e..494973163 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -817,7 +817,9 @@ public class Fluids { String texture = obj.get("texture").getAsString(); int temperature = obj.get("temperature").getAsInt(); - FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + FluidType type = fluidMigration.get(name); + if(type == null) type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + else type.setupCustom(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); customFluids.add(type); } @@ -881,13 +883,16 @@ public class Fluids { ex.printStackTrace(); } } + + private static HashMap fluidMigration = new HashMap(); // since reloading would create new fluid instances, and those break existing machines public static void reloadFluids(){ File folder = MainRegistry.configHbmDir; File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); if(!customTypes.exists()) initDefaultFluids(customTypes); - for(FluidType type : customFluids){ + for(FluidType type : customFluids) { + fluidMigration.put(type.getName(), type); idMapping.remove(type.getID()); registerOrder.remove(type); nameMapping.remove(type.getName()); @@ -895,7 +900,7 @@ public class Fluids { } customFluids.clear(); - for(FluidType type : foreignFluids){ + for(FluidType type : foreignFluids) { idMapping.remove(type.getID()); registerOrder.remove(type); nameMapping.remove(type.getName()); diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index 76dcbcd1a..69a0fab4e 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -172,7 +172,7 @@ public class PedestalRecipes extends SerializableRecipe { rec.recipeSet = obj.get("set").getAsInt(); } - this.recipes.add(rec); + this.register(rec); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 0394807eb..6bc4d93e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -327,6 +327,7 @@ public abstract class GenericRecipes extends Serializab @Override public void deserialize(JsonArray array) { for(JsonElement element : array) { + if(element.isJsonPrimitive()) continue; // the array we get includes the "multi" tag, which is also the only primitive ChanceOutput output = new ChanceOutput(); output.deserialize(element.getAsJsonArray()); pool.add(output); diff --git a/src/main/java/com/hbm/items/machine/ItemBatteryPack.java b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java index ba4f95f75..ffd134962 100644 --- a/src/main/java/com/hbm/items/machine/ItemBatteryPack.java +++ b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java @@ -29,20 +29,34 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { } public static enum EnumBatteryPack { - REDSTONE ("battery_redstone", 100L), - LEAD ("battery_lead", 1_000L), - LITHIUM ("battery_lithium", 10_000L), - SODIUM ("battery_sodium", 50_000L), - SCHRABIDIUM ("battery_schrabidium", 250_000L), - QUANTUM ("battery_quantum", 1_000_000L); + BATTERY_REDSTONE ("battery_redstone", 100L, false), + BATTERY_LEAD ("battery_lead", 1_000L, false), + BATTERY_LITHIUM ("battery_lithium", 10_000L, false), + BATTERY_SODIUM ("battery_sodium", 50_000L, false), + BATTERY_SCHRABIDIUM ("battery_schrabidium", 250_000L, false), + BATTERY_QUANTUM ("battery_quantum", 1_000_000L, 20 * 60 * 60), + + CAPACITOR_COPPER ("capacitor_copper", 1_000L, true), + CAPACITOR_GOLD ("capacitor_gold", 10_000L, true), + CAPACITOR_NIOBIUM ("capacitor_niobium", 100_000L, true), + CAPACITOR_TANTALUM ("capacitor_tantalum", 500_000L, true), + CAPACITOR_BISMUTH ("capacitor_bismuth", 2_500_000L, true), + CAPACITOR_SPARK ("capacitor_spark", 10_000_000L, true); public ResourceLocation texture; public long capacity; public long chargeRate; public long dischargeRate; - private EnumBatteryPack(String tex, long dischargeRate) { - this(tex, dischargeRate * 20 * 60 * 15, dischargeRate * 10, dischargeRate); + private EnumBatteryPack(String tex, long dischargeRate, boolean capacitor) { + this(tex, + capacitor ? (dischargeRate * 20 * 30) : (dischargeRate * 20 * 60 * 15), + capacitor ? dischargeRate : dischargeRate * 10, + dischargeRate); + } + + private EnumBatteryPack(String tex, long dischargeRate, long duration) { + this(tex, dischargeRate * duration, dischargeRate * 10, dischargeRate); } private EnumBatteryPack(String tex, long capacity, long chargeRate, long dischargeRate) { @@ -51,6 +65,8 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { this.chargeRate = chargeRate; this.dischargeRate = dischargeRate; } + + public boolean isCapacitor() { return this.ordinal() > BATTERY_QUANTUM.ordinal(); } } @Override @@ -124,7 +140,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { if(itemstack.hasTagCompound()) charge = getCharge(itemstack); - list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE (" + (charge * 1000 / maxCharge / 10D) + "%)"); list.add(EnumChatFormatting.YELLOW + "Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java index bde3cbeac..1351bdb2d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java +++ b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java @@ -22,7 +22,7 @@ public class ItemRenderBatteryPack extends ItemRenderBase { EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage()); GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture); - ResourceManager.battery_socket.renderPart("Battery"); + ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery"); GL11.glShadeModel(GL11.GL_FLAT); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java index 66a69928d..20a63dbf1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java @@ -41,7 +41,7 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II if(socket.renderPack >= 0) { EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack); bindTexture(pack.texture); - ResourceManager.battery_socket.renderPart("Battery"); + ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery"); } GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java index f354405f6..6538ea15f 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java @@ -17,11 +17,14 @@ import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.Nodespace; import api.hbm.energymk2.Nodespace.PowerNode; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; 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; import net.minecraftforge.common.util.ForgeDirection; @@ -276,4 +279,29 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal); } } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/java/com/hbm/uninos/UniNodespace.java b/src/main/java/com/hbm/uninos/UniNodespace.java index 35daa8856..1007bfddc 100644 --- a/src/main/java/com/hbm/uninos/UniNodespace.java +++ b/src/main/java/com/hbm/uninos/UniNodespace.java @@ -78,6 +78,7 @@ public class UniNodespace { for(NodeNet net : activeNodeNets) net.resetTrackers(); //reset has to be done before everything else for(NodeNet net : activeNodeNets) net.update(); + activeNodeNets.removeIf((net) -> { return net.links.size() <= 0; }); // reap empty networks } /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 77b08a69e..b567812b9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -322,6 +322,7 @@ container.autocrafter=Automatische Werkbank container.barrel=Fass container.bat9000=Big-Ass Tank 9000 container.battery=Energiespeicher +container.batterySocket=Batteriesockel container.bombMulti=Mehrzweckbombe container.casingBag=Hülsentasche container.catalyticReformer=Katalytischer Reformer @@ -1315,6 +1316,18 @@ item.battery_lithium.name=Lithium-Ionen-Batterie item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle +item.battery_pack.battery_lead.name=Bleisäure-Akku +item.battery_pack.battery_lithium.name=Lithium-Ionen-Akku +item.battery_pack.battery_quantum.name=Quantenakku +item.battery_pack.battery_redstone.name=Redstoneakku +item.battery_pack.battery_schrabidium.name=Schrabidiumakku +item.battery_pack.battery_sodium.name=Natrium-Eisen-Akku +item.battery_pack.capacitor_bismuth.name=Bismutkondensator +item.battery_pack.capacitor_copper.name=Kupferkondensator +item.battery_pack.capacitor_gold.name=Goldkondensator +item.battery_pack.capacitor_niobium.name=Niobkondensator +item.battery_pack.capacitor_spark.name=Spark-Kondensator +item.battery_pack.capacitor_tantalum.name=Tantalkondensator item.battery_potato.name=Katoffelbatterie item.battery_potatos.name=PotatOS item.battery_red_cell.name=Redstone-Energiezelle @@ -4458,6 +4471,7 @@ tile.machine_autosaw.suspended=Angehalten tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock +tile.machine_battery_socket.name=Batteriesockel tile.machine_boiler.name=Boiler tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 567bd333d..765ea3545 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -727,6 +727,7 @@ container.autocrafter=Automatic Crafting Table container.barrel=Barrel container.bat9000=Big-Ass Tank 9000 container.battery=Energy Storage +container.batterySocket=Battery Socket container.bombMulti=Multi Purpose Bomb container.casingBag=Bullet Casing Bag container.catalyticReformer=Catalytic Reformer @@ -2073,6 +2074,18 @@ item.battery_lithium.name=Lithium-Ion Battery item.battery_lithium_cell.name=Lithium-Ion Power Cell item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_pack.battery_lead.name=Lead-Acid Battery +item.battery_pack.battery_lithium.name=Lithium-Ion Battery +item.battery_pack.battery_quantum.name=Quantum Battery +item.battery_pack.battery_redstone.name=Redstone Battery +item.battery_pack.battery_schrabidium.name=Schrabidium Battery +item.battery_pack.battery_sodium.name=Sodium-Iron Battery +item.battery_pack.capacitor_bismuth.name=Bismuth Capacitor +item.battery_pack.capacitor_copper.name=Copper Capacitor +item.battery_pack.capacitor_gold.name=Gold Capacitor +item.battery_pack.capacitor_niobium.name=Niobium Capacitor +item.battery_pack.capacitor_spark.name=Spark Capacitor +item.battery_pack.capacitor_tantalum.name=Tantalum Capacitor item.battery_potato.name=Potato Battery item.battery_potatos.name=PotatOS item.battery_red_cell.name=Redstone Power Cell @@ -5719,6 +5732,7 @@ tile.machine_autosaw.suspended=Suspended tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block +tile.machine_battery_socket.name=Battery Socket tile.machine_boiler.name=Boiler tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater diff --git a/src/main/resources/assets/hbm/models/machines/battery.obj b/src/main/resources/assets/hbm/models/machines/battery.obj index c37a7ffbc..932762be7 100644 --- a/src/main/resources/assets/hbm/models/machines/battery.obj +++ b/src/main/resources/assets/hbm/models/machines/battery.obj @@ -1,5 +1,121 @@ # Blender v2.79 (sub 0) OBJ File: 'battery.blend' # www.blender.org +o Capacitor +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v -0.875000 0.125000 -0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 1.875000 -0.875000 +v -0.875000 1.875000 0.875000 +v 0.875000 1.875000 0.875000 +v 0.875000 1.875000 -0.875000 +v -0.750000 0.250000 0.750000 +v 0.750000 0.250000 0.750000 +v -0.750000 0.250000 -0.750000 +v 0.750000 0.250000 -0.750000 +v -0.750000 1.750000 -0.750000 +v -0.750000 1.750000 0.750000 +v 0.750000 1.750000 0.750000 +v 0.750000 1.750000 -0.750000 +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v -0.875000 0.125000 -0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 1.875000 -0.875000 +v -0.875000 1.875000 0.875000 +v 0.875000 1.875000 0.875000 +v 0.875000 1.875000 -0.875000 +vt 0.269231 0.000000 +vt 0.000000 0.333333 +vt 0.000000 0.000000 +vt 0.000000 0.666667 +vt 0.269231 1.000000 +vt 0.000000 1.000000 +vt 0.269231 0.333333 +vt -0.000000 0.666667 +vt -0.000000 0.333333 +vt 0.538462 0.333333 +vt 0.269231 0.666667 +vt 0.269231 0.333333 +vt 0.538462 0.333333 +vt 0.269231 0.666667 +vt 0.769231 -0.000000 +vt 0.538462 0.285714 +vt 0.538462 -0.000000 +vt 0.538462 0.571429 +vt 0.769231 0.857143 +vt 0.538462 0.857143 +vt 0.769231 0.285714 +vt 0.769231 0.285714 +vt 0.538462 0.571429 +vt 0.538462 0.285714 +vt 1.000000 0.285714 +vt 0.769231 0.571429 +vt 1.000000 0.285714 +vt 0.769231 0.571429 +vt 0.000000 0.333333 +vt 0.269231 0.000000 +vt 0.000000 0.000000 +vt 0.269231 1.000000 +vt 0.000000 0.666667 +vt 0.000000 1.000000 +vt -0.000000 0.666667 +vt 0.269231 0.333333 +vt -0.000000 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 +vt 0.269231 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 +vt 0.538462 0.666667 +vt 0.538462 0.666667 +vt 1.000000 0.571429 +vt 1.000000 0.571429 +vt 0.538462 0.666667 +vt 0.538462 0.666667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 1/7/3 5/8/3 3/9/3 +f 3/10/4 8/11/4 4/12/4 +f 2/13/5 6/14/5 1/7/5 +f 4/12/6 7/4/6 2/2/6 +f 11/15/1 10/16/1 9/17/1 +f 15/18/2 13/19/2 14/20/2 +f 12/21/6 15/18/6 10/16/6 +f 9/22/3 13/23/3 11/24/3 +f 11/25/4 16/26/4 12/21/4 +f 10/27/5 14/28/5 9/22/5 +f 18/29/2 19/30/2 17/31/2 +f 21/32/1 23/33/1 22/34/1 +f 21/35/6 17/36/6 19/37/6 +f 24/38/5 19/39/5 20/40/5 +f 22/41/4 18/42/4 17/36/4 +f 23/33/3 20/40/3 18/29/3 +f 3/1/1 4/12/1 2/2/1 +f 7/4/2 8/11/2 5/5/2 +f 1/7/3 6/14/3 5/8/3 +f 3/10/4 5/43/4 8/11/4 +f 2/13/5 7/44/5 6/14/5 +f 4/12/6 8/11/6 7/4/6 +f 11/15/1 12/21/1 10/16/1 +f 15/18/2 16/26/2 13/19/2 +f 12/21/6 16/26/6 15/18/6 +f 9/22/3 14/28/3 13/23/3 +f 11/25/4 13/45/4 16/26/4 +f 10/27/5 15/46/5 14/28/5 +f 18/29/2 20/40/2 19/30/2 +f 21/32/1 24/38/1 23/33/1 +f 21/35/6 22/41/6 17/36/6 +f 24/38/5 21/47/5 19/39/5 +f 22/41/4 23/48/4 18/42/4 +f 23/33/3 24/38/3 20/40/3 o Battery v 0.687500 1.875000 -0.875000 v 0.875000 1.875000 -0.687500 @@ -268,158 +384,158 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 s off -f 8/1/1 14/2/1 22/3/1 -f 35/4/2 26/5/2 3/6/2 -f 20/7/3 3/8/3 26/9/3 -f 20/10/4 16/11/4 10/12/4 -f 24/13/4 15/14/4 26/15/4 -f 10/16/5 12/17/5 17/18/5 -f 10/16/2 8/1/2 7/19/2 -f 12/20/3 18/21/3 17/22/3 -f 22/23/6 20/24/6 19/25/6 -f 14/26/7 16/11/7 15/27/7 -f 16/11/8 8/1/8 9/28/8 -f 27/29/7 25/30/7 30/31/7 -f 29/32/9 23/33/9 28/34/9 -f 15/35/2 6/36/2 14/37/2 -f 27/29/4 36/38/4 44/39/4 -f 14/40/1 2/41/1 29/42/1 -f 42/43/10 38/44/10 33/45/10 -f 30/46/6 28/34/6 27/47/6 -f 1/48/7 24/13/7 23/33/7 -f 24/13/8 6/36/8 5/49/8 -f 40/50/3 4/51/3 44/52/3 -f 11/53/2 32/54/2 18/55/2 -f 32/54/5 34/56/5 37/57/5 -f 35/58/1 30/31/1 47/59/1 -f 34/60/3 38/44/3 37/61/3 -f 42/43/6 40/62/6 39/63/6 -f 19/64/7 35/65/7 22/66/7 -f 37/67/4 39/68/4 36/69/4 -f 48/70/10 44/52/10 4/51/10 -f 47/71/9 43/72/9 46/73/9 -f 41/74/1 33/75/1 31/76/1 -f 48/70/6 46/73/6 45/77/6 -f 60/78/9 56/79/9 57/80/9 -f 52/81/1 56/79/1 54/82/1 -f 60/83/4 58/84/4 62/85/4 -f 64/86/10 54/82/10 59/87/10 -f 58/84/8 52/81/8 61/88/8 -f 58/84/7 56/89/7 55/90/7 -f 54/91/6 60/78/6 59/92/6 -f 64/86/3 50/93/3 49/94/3 -f 52/95/2 62/96/2 61/97/2 -f 62/96/5 50/98/5 63/99/5 -f 76/100/9 72/101/9 73/102/9 -f 68/103/1 72/101/1 70/104/1 -f 76/105/4 74/106/4 78/107/4 -f 80/108/10 70/104/10 75/109/10 -f 74/106/8 68/103/8 77/110/8 -f 74/106/7 72/111/7 71/112/7 -f 70/113/6 76/100/6 75/114/6 -f 80/108/3 66/115/3 65/116/3 -f 68/117/2 78/118/2 77/119/2 -f 78/118/5 66/120/5 79/121/5 -f 22/3/1 11/122/1 12/123/1 -f 12/123/1 7/124/1 8/1/1 -f 8/1/1 13/125/1 14/2/1 -f 14/2/1 21/126/1 22/3/1 -f 22/3/1 12/123/1 8/1/1 -f 35/4/2 36/127/2 26/5/2 -f 20/7/3 21/128/3 3/8/3 -f 10/12/4 17/129/4 18/130/4 -f 18/130/4 19/131/4 20/10/4 -f 20/10/4 15/132/4 16/11/4 -f 16/11/4 9/28/4 10/12/4 -f 10/12/4 18/130/4 20/10/4 -f 26/15/4 27/133/4 28/134/4 -f 28/134/4 23/135/4 24/13/4 -f 24/13/4 5/49/4 15/14/4 -f 15/14/4 20/136/4 26/15/4 -f 26/15/4 28/134/4 24/13/4 -f 10/16/5 7/19/5 12/17/5 -f 10/16/2 9/28/2 8/1/2 -f 12/20/3 11/137/3 18/21/3 -f 22/23/6 21/138/6 20/24/6 -f 14/26/7 13/125/7 16/11/7 -f 16/11/8 13/125/8 8/1/8 -f 27/29/7 43/72/7 25/30/7 -f 29/32/9 1/48/9 23/33/9 -f 15/35/2 5/49/2 6/36/2 -f 44/39/4 45/139/4 46/140/4 -f 46/140/4 43/141/4 27/29/4 -f 27/29/4 26/5/4 36/38/4 -f 36/38/4 40/142/4 44/39/4 -f 44/39/4 46/140/4 27/29/4 -f 29/42/1 30/143/1 3/144/1 -f 3/144/1 21/145/1 14/40/1 -f 14/40/1 6/36/1 2/41/1 -f 2/41/1 1/146/1 29/42/1 -f 29/42/1 3/144/1 14/40/1 -f 42/43/10 39/63/10 38/44/10 -f 30/46/6 29/32/6 28/34/6 -f 1/48/7 2/41/7 24/13/7 -f 24/13/8 2/41/8 6/36/8 -f 40/50/3 41/147/3 4/51/3 -f 11/53/2 31/148/2 32/54/2 -f 32/54/5 31/148/5 34/56/5 -f 47/59/1 48/149/1 4/150/1 -f 4/150/1 41/151/1 35/58/1 -f 35/58/1 3/6/1 30/31/1 -f 30/31/1 25/152/1 47/59/1 -f 47/59/1 4/150/1 35/58/1 -f 34/60/3 33/45/3 38/44/3 -f 42/43/6 41/153/6 40/62/6 -f 19/64/7 36/154/7 35/65/7 -f 36/69/4 19/64/4 18/55/4 -f 18/55/4 32/155/4 37/67/4 -f 37/67/4 38/156/4 39/68/4 -f 39/68/4 40/157/4 36/69/4 -f 36/69/4 18/55/4 37/67/4 -f 48/70/10 45/77/10 44/52/10 -f 47/71/9 25/30/9 43/72/9 -f 31/76/1 11/53/1 22/66/1 -f 22/66/1 35/158/1 41/74/1 -f 41/74/1 42/159/1 33/75/1 -f 33/75/1 34/160/1 31/76/1 -f 31/76/1 22/66/1 41/74/1 -f 48/70/6 47/71/6 46/73/6 -f 60/78/9 53/161/9 56/79/9 -f 54/82/1 49/94/1 50/98/1 -f 50/98/1 51/162/1 52/81/1 -f 52/81/1 55/90/1 56/79/1 -f 56/79/1 53/161/1 54/82/1 -f 54/82/1 50/98/1 52/81/1 -f 62/85/4 63/163/4 64/164/4 -f 64/164/4 59/165/4 60/83/4 -f 60/83/4 57/166/4 58/84/4 -f 58/84/4 61/88/4 62/85/4 -f 62/85/4 64/164/4 60/83/4 -f 64/86/10 49/94/10 54/82/10 -f 58/84/8 55/90/8 52/81/8 -f 58/84/7 57/167/7 56/89/7 -f 54/91/6 53/161/6 60/78/6 -f 64/86/3 63/168/3 50/93/3 -f 52/95/2 51/162/2 62/96/2 -f 62/96/5 51/162/5 50/98/5 -f 76/100/9 69/169/9 72/101/9 -f 70/104/1 65/116/1 66/120/1 -f 66/120/1 67/170/1 68/103/1 -f 68/103/1 71/112/1 72/101/1 -f 72/101/1 69/169/1 70/104/1 -f 70/104/1 66/120/1 68/103/1 -f 78/107/4 79/171/4 80/172/4 -f 80/172/4 75/173/4 76/105/4 -f 76/105/4 73/174/4 74/106/4 -f 74/106/4 77/110/4 78/107/4 -f 78/107/4 80/172/4 76/105/4 -f 80/108/10 65/116/10 70/104/10 -f 74/106/8 71/112/8 68/103/8 -f 74/106/7 73/175/7 72/111/7 -f 70/113/6 69/169/6 76/100/6 -f 80/108/3 79/176/3 66/115/3 -f 68/117/2 67/170/2 78/118/2 -f 78/118/5 67/170/5 66/120/5 +f 32/49/7 38/50/7 46/51/7 +f 59/52/8 50/53/8 27/54/8 +f 44/55/9 27/56/9 50/57/9 +f 44/58/10 40/59/10 34/60/10 +f 48/61/10 39/62/10 50/63/10 +f 34/64/11 36/65/11 41/66/11 +f 34/64/8 32/49/8 31/67/8 +f 36/68/9 42/69/9 41/70/9 +f 46/71/12 44/72/12 43/73/12 +f 38/74/13 40/59/13 39/75/13 +f 40/59/14 32/49/14 33/76/14 +f 51/77/13 49/78/13 54/79/13 +f 53/80/15 47/81/15 52/82/15 +f 39/83/8 30/84/8 38/85/8 +f 51/77/10 60/86/10 68/87/10 +f 38/88/7 26/89/7 53/90/7 +f 66/91/16 62/92/16 57/93/16 +f 54/94/12 52/82/12 51/95/12 +f 25/96/13 48/61/13 47/81/13 +f 48/61/14 30/84/14 29/97/14 +f 64/98/9 28/99/9 68/100/9 +f 35/101/8 56/102/8 42/103/8 +f 56/102/11 58/104/11 61/105/11 +f 59/106/7 54/79/7 71/107/7 +f 58/108/9 62/92/9 61/109/9 +f 66/91/12 64/110/12 63/111/12 +f 43/112/13 59/113/13 46/114/13 +f 61/115/10 63/116/10 60/117/10 +f 72/118/16 68/100/16 28/99/16 +f 71/119/15 67/120/15 70/121/15 +f 65/122/7 57/123/7 55/124/7 +f 72/118/12 70/121/12 69/125/12 +f 84/126/15 80/127/15 81/128/15 +f 76/129/7 80/127/7 78/130/7 +f 84/131/10 82/132/10 86/133/10 +f 88/134/16 78/130/16 83/135/16 +f 82/132/14 76/129/14 85/136/14 +f 82/132/13 80/137/13 79/138/13 +f 78/139/12 84/126/12 83/140/12 +f 88/134/9 74/141/9 73/142/9 +f 76/143/8 86/144/8 85/145/8 +f 86/144/11 74/146/11 87/147/11 +f 100/148/15 96/149/15 97/150/15 +f 92/151/7 96/149/7 94/152/7 +f 100/153/10 98/154/10 102/155/10 +f 104/156/16 94/152/16 99/157/16 +f 98/154/14 92/151/14 101/158/14 +f 98/154/13 96/159/13 95/160/13 +f 94/161/12 100/148/12 99/162/12 +f 104/156/9 90/163/9 89/164/9 +f 92/165/8 102/166/8 101/167/8 +f 102/166/11 90/168/11 103/169/11 +f 46/51/7 35/170/7 36/171/7 +f 36/171/7 31/172/7 32/49/7 +f 32/49/7 37/173/7 38/50/7 +f 38/50/7 45/174/7 46/51/7 +f 46/51/7 36/171/7 32/49/7 +f 59/52/8 60/175/8 50/53/8 +f 44/55/9 45/176/9 27/56/9 +f 34/60/10 41/177/10 42/178/10 +f 42/178/10 43/179/10 44/58/10 +f 44/58/10 39/180/10 40/59/10 +f 40/59/10 33/76/10 34/60/10 +f 34/60/10 42/178/10 44/58/10 +f 50/63/10 51/181/10 52/182/10 +f 52/182/10 47/183/10 48/61/10 +f 48/61/10 29/97/10 39/62/10 +f 39/62/10 44/184/10 50/63/10 +f 50/63/10 52/182/10 48/61/10 +f 34/64/11 31/67/11 36/65/11 +f 34/64/8 33/76/8 32/49/8 +f 36/68/9 35/185/9 42/69/9 +f 46/71/12 45/186/12 44/72/12 +f 38/74/13 37/173/13 40/59/13 +f 40/59/14 37/173/14 32/49/14 +f 51/77/13 67/120/13 49/78/13 +f 53/80/15 25/96/15 47/81/15 +f 39/83/8 29/97/8 30/84/8 +f 68/87/10 69/187/10 70/188/10 +f 70/188/10 67/189/10 51/77/10 +f 51/77/10 50/53/10 60/86/10 +f 60/86/10 64/190/10 68/87/10 +f 68/87/10 70/188/10 51/77/10 +f 53/90/7 54/191/7 27/192/7 +f 27/192/7 45/193/7 38/88/7 +f 38/88/7 30/84/7 26/89/7 +f 26/89/7 25/194/7 53/90/7 +f 53/90/7 27/192/7 38/88/7 +f 66/91/16 63/111/16 62/92/16 +f 54/94/12 53/80/12 52/82/12 +f 25/96/13 26/89/13 48/61/13 +f 48/61/14 26/89/14 30/84/14 +f 64/98/9 65/195/9 28/99/9 +f 35/101/8 55/196/8 56/102/8 +f 56/102/11 55/196/11 58/104/11 +f 71/107/7 72/197/7 28/198/7 +f 28/198/7 65/199/7 59/106/7 +f 59/106/7 27/54/7 54/79/7 +f 54/79/7 49/200/7 71/107/7 +f 71/107/7 28/198/7 59/106/7 +f 58/108/9 57/93/9 62/92/9 +f 66/91/12 65/201/12 64/110/12 +f 43/112/13 60/202/13 59/113/13 +f 60/117/10 43/112/10 42/103/10 +f 42/103/10 56/203/10 61/115/10 +f 61/115/10 62/204/10 63/116/10 +f 63/116/10 64/205/10 60/117/10 +f 60/117/10 42/103/10 61/115/10 +f 72/118/16 69/125/16 68/100/16 +f 71/119/15 49/78/15 67/120/15 +f 55/124/7 35/101/7 46/114/7 +f 46/114/7 59/206/7 65/122/7 +f 65/122/7 66/207/7 57/123/7 +f 57/123/7 58/208/7 55/124/7 +f 55/124/7 46/114/7 65/122/7 +f 72/118/12 71/119/12 70/121/12 +f 84/126/15 77/209/15 80/127/15 +f 78/130/7 73/142/7 74/146/7 +f 74/146/7 75/210/7 76/129/7 +f 76/129/7 79/138/7 80/127/7 +f 80/127/7 77/209/7 78/130/7 +f 78/130/7 74/146/7 76/129/7 +f 86/133/10 87/211/10 88/212/10 +f 88/212/10 83/213/10 84/131/10 +f 84/131/10 81/214/10 82/132/10 +f 82/132/10 85/136/10 86/133/10 +f 86/133/10 88/212/10 84/131/10 +f 88/134/16 73/142/16 78/130/16 +f 82/132/14 79/138/14 76/129/14 +f 82/132/13 81/215/13 80/137/13 +f 78/139/12 77/209/12 84/126/12 +f 88/134/9 87/216/9 74/141/9 +f 76/143/8 75/210/8 86/144/8 +f 86/144/11 75/210/11 74/146/11 +f 100/148/15 93/217/15 96/149/15 +f 94/152/7 89/164/7 90/168/7 +f 90/168/7 91/218/7 92/151/7 +f 92/151/7 95/160/7 96/149/7 +f 96/149/7 93/217/7 94/152/7 +f 94/152/7 90/168/7 92/151/7 +f 102/155/10 103/219/10 104/220/10 +f 104/220/10 99/221/10 100/153/10 +f 100/153/10 97/222/10 98/154/10 +f 98/154/10 101/158/10 102/155/10 +f 102/155/10 104/220/10 100/153/10 +f 104/156/16 89/164/16 94/152/16 +f 98/154/14 95/160/14 92/151/14 +f 98/154/13 97/223/13 96/159/13 +f 94/161/12 93/217/12 100/148/12 +f 104/156/9 103/224/9 90/163/9 +f 92/165/8 91/218/8 102/166/8 +f 102/166/11 91/218/11 90/168/11 o Socket v -1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000 @@ -822,199 +938,199 @@ vn -0.7099 0.7043 0.0000 vn 0.7099 -0.7043 0.0000 vn -0.7071 -0.7071 0.0000 s off -f 83/177/11 82/178/11 81/179/11 -f 88/180/12 103/181/12 86/182/12 -f 83/177/13 92/183/13 84/184/13 -f 82/178/14 90/185/14 81/179/14 -f 84/184/15 91/186/15 82/178/15 -f 81/179/12 89/187/12 83/177/12 -f 87/188/16 90/189/16 85/190/16 -f 85/190/16 91/186/16 86/191/16 -f 86/191/16 92/192/16 88/193/16 -f 88/193/16 89/194/16 87/188/16 -f 94/195/15 95/196/15 93/197/15 -f 97/198/12 99/199/12 98/200/12 -f 103/181/16 101/201/16 102/202/16 -f 95/196/16 98/200/16 93/197/16 -f 96/203/13 97/198/13 95/196/13 -f 93/197/14 99/204/14 94/205/14 -f 85/206/15 101/201/15 87/207/15 -f 87/208/14 104/209/14 88/210/14 -f 86/211/13 102/202/13 85/212/13 -f 106/213/15 107/214/15 105/215/15 -f 109/216/12 111/217/12 110/218/12 -f 107/214/16 110/218/16 105/215/16 -f 108/219/13 109/216/13 107/214/13 -f 105/215/14 111/220/14 106/221/14 -f 114/222/12 115/223/12 113/224/12 -f 117/225/15 119/226/15 118/227/15 -f 115/223/16 118/227/16 113/224/16 -f 116/228/14 117/225/14 115/223/14 -f 113/224/13 119/229/13 114/230/13 -f 122/231/12 123/232/12 121/233/12 -f 125/234/15 127/235/15 126/236/15 -f 123/232/16 126/236/16 121/233/16 -f 124/237/14 125/234/14 123/232/14 -f 121/233/13 127/238/13 122/239/13 -f 130/240/13 131/241/13 129/242/13 -f 133/243/14 135/244/14 134/245/14 -f 131/241/16 134/245/16 129/242/16 -f 132/246/12 133/243/12 131/241/12 -f 129/242/15 135/247/15 130/248/15 -f 138/249/13 139/250/13 137/251/13 -f 141/252/14 143/253/14 142/254/14 -f 139/250/16 142/254/16 137/251/16 -f 140/255/12 141/252/12 139/250/12 -f 137/251/15 143/256/15 138/257/15 -f 146/258/14 147/259/14 145/260/14 -f 149/261/13 151/262/13 150/263/13 -f 147/259/16 150/263/16 145/260/16 -f 148/264/15 149/261/15 147/259/15 -f 145/260/12 151/265/12 146/266/12 -f 154/267/14 155/268/14 153/269/14 -f 157/270/13 159/271/13 158/272/13 -f 155/268/16 158/272/16 153/269/16 -f 156/273/15 157/270/15 155/268/15 -f 153/269/12 159/274/12 154/275/12 -f 162/276/13 177/277/13 161/278/13 -f 176/279/16 174/280/16 175/281/16 -f 172/282/16 170/283/16 171/284/16 -f 168/285/13 173/286/13 169/287/13 -f 167/288/14 171/289/14 166/290/14 -f 169/287/15 172/282/15 167/288/15 -f 166/291/12 170/292/12 168/285/12 -f 163/293/14 175/294/14 164/295/14 -f 161/278/15 176/279/15 163/293/15 -f 164/296/12 174/297/12 162/276/12 -f 179/298/13 193/299/13 178/300/13 -f 192/301/16 190/302/16 191/303/16 -f 188/304/16 186/305/16 187/306/16 -f 184/307/13 189/308/13 185/309/13 -f 183/310/14 187/311/14 182/312/14 -f 185/309/15 188/304/15 183/310/15 -f 182/313/12 186/314/12 184/307/12 -f 180/315/14 191/316/14 181/317/14 -f 178/300/15 192/301/15 180/315/15 -f 181/318/12 190/319/12 179/298/12 -f 194/320/16 195/321/16 165/322/16 -f 194/320/17 198/323/17 196/324/17 -f 197/325/15 200/326/15 198/323/15 -f 195/321/18 201/327/18 165/322/18 -f 202/328/12 203/329/12 201/327/12 -f 206/330/16 207/331/16 205/332/16 -f 206/330/17 210/333/17 208/334/17 -f 209/335/15 212/336/15 210/333/15 -f 207/331/18 213/337/18 205/332/18 -f 214/338/12 215/339/12 213/337/12 -f 169/287/11 166/340/11 168/341/11 -f 185/309/11 182/342/11 184/343/11 -f 180/315/11 179/344/11 178/300/11 -f 163/293/11 162/345/11 161/278/11 -f 218/346/15 219/347/15 220/348/15 -f 220/348/19 226/349/19 228/350/19 -f 221/351/12 224/352/12 223/353/12 -f 223/353/20 227/354/20 225/355/20 -f 226/349/11 227/354/11 228/350/11 -f 230/356/15 231/357/15 232/358/15 -f 232/358/19 238/359/19 240/360/19 -f 233/361/12 236/362/12 235/363/12 -f 235/363/20 239/364/20 237/365/20 -f 238/359/11 239/364/11 240/360/11 -f 83/177/11 84/184/11 82/178/11 -f 88/180/12 104/209/12 103/181/12 -f 83/177/13 89/366/13 92/183/13 -f 82/178/14 91/367/14 90/185/14 -f 84/184/15 92/192/15 91/186/15 -f 81/179/12 90/368/12 89/187/12 -f 87/188/16 89/194/16 90/189/16 -f 85/190/16 90/189/16 91/186/16 -f 86/191/16 91/186/16 92/192/16 -f 88/193/16 92/192/16 89/194/16 -f 94/195/15 96/369/15 95/196/15 -f 97/198/12 100/370/12 99/199/12 -f 103/181/16 104/209/16 101/201/16 -f 95/196/16 97/198/16 98/200/16 -f 96/203/13 100/371/13 97/198/13 -f 93/197/14 98/200/14 99/204/14 -f 85/206/15 102/202/15 101/201/15 -f 87/208/14 101/201/14 104/209/14 -f 86/211/13 103/181/13 102/202/13 -f 106/213/15 108/372/15 107/214/15 -f 109/216/12 112/373/12 111/217/12 -f 107/214/16 109/216/16 110/218/16 -f 108/219/13 112/374/13 109/216/13 -f 105/215/14 110/218/14 111/220/14 -f 114/222/12 116/375/12 115/223/12 -f 117/225/15 120/376/15 119/226/15 -f 115/223/16 117/225/16 118/227/16 -f 116/228/14 120/377/14 117/225/14 -f 113/224/13 118/227/13 119/229/13 -f 122/231/12 124/378/12 123/232/12 -f 125/234/15 128/379/15 127/235/15 -f 123/232/16 125/234/16 126/236/16 -f 124/237/14 128/380/14 125/234/14 -f 121/233/13 126/236/13 127/238/13 -f 130/240/13 132/381/13 131/241/13 -f 133/243/14 136/382/14 135/244/14 -f 131/241/16 133/243/16 134/245/16 -f 132/246/12 136/383/12 133/243/12 -f 129/242/15 134/245/15 135/247/15 -f 138/249/13 140/384/13 139/250/13 -f 141/252/14 144/385/14 143/253/14 -f 139/250/16 141/252/16 142/254/16 -f 140/255/12 144/386/12 141/252/12 -f 137/251/15 142/254/15 143/256/15 -f 146/258/14 148/387/14 147/259/14 -f 149/261/13 152/388/13 151/262/13 -f 147/259/16 149/261/16 150/263/16 -f 148/264/15 152/389/15 149/261/15 -f 145/260/12 150/263/12 151/265/12 -f 154/267/14 156/390/14 155/268/14 -f 157/270/13 160/391/13 159/271/13 -f 155/268/16 157/270/16 158/272/16 -f 156/273/15 160/392/15 157/270/15 -f 153/269/12 158/272/12 159/274/12 -f 162/276/13 174/297/13 177/277/13 -f 176/279/16 177/277/16 174/280/16 -f 172/282/16 173/286/16 170/283/16 -f 168/285/13 170/292/13 173/286/13 -f 167/288/14 172/282/14 171/289/14 -f 169/287/15 173/286/15 172/282/15 -f 166/291/12 171/393/12 170/292/12 -f 163/293/14 176/279/14 175/294/14 -f 161/278/15 177/277/15 176/279/15 -f 164/296/12 175/394/12 174/297/12 -f 179/298/13 190/319/13 193/299/13 -f 192/301/16 193/299/16 190/302/16 -f 188/304/16 189/308/16 186/305/16 -f 184/307/13 186/314/13 189/308/13 -f 183/310/14 188/304/14 187/311/14 -f 185/309/15 189/308/15 188/304/15 -f 182/313/12 187/395/12 186/314/12 -f 180/315/14 192/301/14 191/316/14 -f 178/300/15 193/299/15 192/301/15 -f 181/318/12 191/396/12 190/319/12 -f 194/320/16 196/324/16 195/321/16 -f 194/320/17 197/325/17 198/323/17 -f 197/325/15 199/397/15 200/326/15 -f 195/321/18 202/328/18 201/327/18 -f 202/328/12 204/398/12 203/329/12 -f 206/330/16 208/334/16 207/331/16 -f 206/330/17 209/335/17 210/333/17 -f 209/335/15 211/399/15 212/336/15 -f 207/331/18 214/338/18 213/337/18 -f 214/338/12 216/400/12 215/339/12 -f 169/287/11 167/288/11 166/340/11 -f 185/309/11 183/310/11 182/342/11 -f 180/315/11 181/401/11 179/344/11 -f 163/293/11 164/402/11 162/345/11 -f 218/346/15 217/403/15 219/347/15 -f 220/348/19 219/347/19 226/349/19 -f 221/351/12 222/404/12 224/352/12 -f 223/353/20 224/352/20 227/354/20 -f 226/349/11 225/355/11 227/354/11 -f 230/356/15 229/405/15 231/357/15 -f 232/358/19 231/357/19 238/359/19 -f 233/361/12 234/406/12 236/362/12 -f 235/363/20 236/362/20 239/364/20 -f 238/359/11 237/365/11 239/364/11 +f 107/225/17 106/226/17 105/227/17 +f 112/228/18 127/229/18 110/230/18 +f 107/225/19 116/231/19 108/232/19 +f 106/226/20 114/233/20 105/227/20 +f 108/232/21 115/234/21 106/226/21 +f 105/227/18 113/235/18 107/225/18 +f 111/236/22 114/237/22 109/238/22 +f 109/238/22 115/234/22 110/239/22 +f 110/239/22 116/240/22 112/241/22 +f 112/241/22 113/242/22 111/236/22 +f 118/243/21 119/244/21 117/245/21 +f 121/246/18 123/247/18 122/248/18 +f 127/229/22 125/249/22 126/250/22 +f 119/244/22 122/248/22 117/245/22 +f 120/251/19 121/246/19 119/244/19 +f 117/245/20 123/252/20 118/253/20 +f 109/254/21 125/249/21 111/255/21 +f 111/256/20 128/257/20 112/258/20 +f 110/259/19 126/250/19 109/260/19 +f 130/261/21 131/262/21 129/263/21 +f 133/264/18 135/265/18 134/266/18 +f 131/262/22 134/266/22 129/263/22 +f 132/267/19 133/264/19 131/262/19 +f 129/263/20 135/268/20 130/269/20 +f 138/270/18 139/271/18 137/272/18 +f 141/273/21 143/274/21 142/275/21 +f 139/271/22 142/275/22 137/272/22 +f 140/276/20 141/273/20 139/271/20 +f 137/272/19 143/277/19 138/278/19 +f 146/279/18 147/280/18 145/281/18 +f 149/282/21 151/283/21 150/284/21 +f 147/280/22 150/284/22 145/281/22 +f 148/285/20 149/282/20 147/280/20 +f 145/281/19 151/286/19 146/287/19 +f 154/288/19 155/289/19 153/290/19 +f 157/291/20 159/292/20 158/293/20 +f 155/289/22 158/293/22 153/290/22 +f 156/294/18 157/291/18 155/289/18 +f 153/290/21 159/295/21 154/296/21 +f 162/297/19 163/298/19 161/299/19 +f 165/300/20 167/301/20 166/302/20 +f 163/298/22 166/302/22 161/299/22 +f 164/303/18 165/300/18 163/298/18 +f 161/299/21 167/304/21 162/305/21 +f 170/306/20 171/307/20 169/308/20 +f 173/309/19 175/310/19 174/311/19 +f 171/307/22 174/311/22 169/308/22 +f 172/312/21 173/309/21 171/307/21 +f 169/308/18 175/313/18 170/314/18 +f 178/315/20 179/316/20 177/317/20 +f 181/318/19 183/319/19 182/320/19 +f 179/316/22 182/320/22 177/317/22 +f 180/321/21 181/318/21 179/316/21 +f 177/317/18 183/322/18 178/323/18 +f 186/324/19 201/325/19 185/326/19 +f 200/327/22 198/328/22 199/329/22 +f 196/330/22 194/331/22 195/332/22 +f 192/333/19 197/334/19 193/335/19 +f 191/336/20 195/337/20 190/338/20 +f 193/335/21 196/330/21 191/336/21 +f 190/339/18 194/340/18 192/333/18 +f 187/341/20 199/342/20 188/343/20 +f 185/326/21 200/327/21 187/341/21 +f 188/344/18 198/345/18 186/324/18 +f 203/346/19 217/347/19 202/348/19 +f 216/349/22 214/350/22 215/351/22 +f 212/352/22 210/353/22 211/354/22 +f 208/355/19 213/356/19 209/357/19 +f 207/358/20 211/359/20 206/360/20 +f 209/357/21 212/352/21 207/358/21 +f 206/361/18 210/362/18 208/355/18 +f 204/363/20 215/364/20 205/365/20 +f 202/348/21 216/349/21 204/363/21 +f 205/366/18 214/367/18 203/346/18 +f 218/368/22 219/369/22 189/370/22 +f 218/368/23 222/371/23 220/372/23 +f 221/373/21 224/374/21 222/371/21 +f 219/369/24 225/375/24 189/370/24 +f 226/376/18 227/377/18 225/375/18 +f 230/378/22 231/379/22 229/380/22 +f 230/378/23 234/381/23 232/382/23 +f 233/383/21 236/384/21 234/381/21 +f 231/379/24 237/385/24 229/380/24 +f 238/386/18 239/387/18 237/385/18 +f 193/335/17 190/388/17 192/389/17 +f 209/357/17 206/390/17 208/391/17 +f 204/363/17 203/392/17 202/348/17 +f 187/341/17 186/393/17 185/326/17 +f 242/394/21 243/395/21 244/396/21 +f 244/396/25 250/397/25 252/398/25 +f 245/399/18 248/400/18 247/401/18 +f 247/401/26 251/402/26 249/403/26 +f 250/397/17 251/402/17 252/398/17 +f 254/404/21 255/405/21 256/406/21 +f 256/406/25 262/407/25 264/408/25 +f 257/409/18 260/410/18 259/411/18 +f 259/411/26 263/412/26 261/413/26 +f 262/407/17 263/412/17 264/408/17 +f 107/225/17 108/232/17 106/226/17 +f 112/228/18 128/257/18 127/229/18 +f 107/225/19 113/414/19 116/231/19 +f 106/226/20 115/415/20 114/233/20 +f 108/232/21 116/240/21 115/234/21 +f 105/227/18 114/416/18 113/235/18 +f 111/236/22 113/242/22 114/237/22 +f 109/238/22 114/237/22 115/234/22 +f 110/239/22 115/234/22 116/240/22 +f 112/241/22 116/240/22 113/242/22 +f 118/243/21 120/417/21 119/244/21 +f 121/246/18 124/418/18 123/247/18 +f 127/229/22 128/257/22 125/249/22 +f 119/244/22 121/246/22 122/248/22 +f 120/251/19 124/419/19 121/246/19 +f 117/245/20 122/248/20 123/252/20 +f 109/254/21 126/250/21 125/249/21 +f 111/256/20 125/249/20 128/257/20 +f 110/259/19 127/229/19 126/250/19 +f 130/261/21 132/420/21 131/262/21 +f 133/264/18 136/421/18 135/265/18 +f 131/262/22 133/264/22 134/266/22 +f 132/267/19 136/422/19 133/264/19 +f 129/263/20 134/266/20 135/268/20 +f 138/270/18 140/423/18 139/271/18 +f 141/273/21 144/424/21 143/274/21 +f 139/271/22 141/273/22 142/275/22 +f 140/276/20 144/425/20 141/273/20 +f 137/272/19 142/275/19 143/277/19 +f 146/279/18 148/426/18 147/280/18 +f 149/282/21 152/427/21 151/283/21 +f 147/280/22 149/282/22 150/284/22 +f 148/285/20 152/428/20 149/282/20 +f 145/281/19 150/284/19 151/286/19 +f 154/288/19 156/429/19 155/289/19 +f 157/291/20 160/430/20 159/292/20 +f 155/289/22 157/291/22 158/293/22 +f 156/294/18 160/431/18 157/291/18 +f 153/290/21 158/293/21 159/295/21 +f 162/297/19 164/432/19 163/298/19 +f 165/300/20 168/433/20 167/301/20 +f 163/298/22 165/300/22 166/302/22 +f 164/303/18 168/434/18 165/300/18 +f 161/299/21 166/302/21 167/304/21 +f 170/306/20 172/435/20 171/307/20 +f 173/309/19 176/436/19 175/310/19 +f 171/307/22 173/309/22 174/311/22 +f 172/312/21 176/437/21 173/309/21 +f 169/308/18 174/311/18 175/313/18 +f 178/315/20 180/438/20 179/316/20 +f 181/318/19 184/439/19 183/319/19 +f 179/316/22 181/318/22 182/320/22 +f 180/321/21 184/440/21 181/318/21 +f 177/317/18 182/320/18 183/322/18 +f 186/324/19 198/345/19 201/325/19 +f 200/327/22 201/325/22 198/328/22 +f 196/330/22 197/334/22 194/331/22 +f 192/333/19 194/340/19 197/334/19 +f 191/336/20 196/330/20 195/337/20 +f 193/335/21 197/334/21 196/330/21 +f 190/339/18 195/441/18 194/340/18 +f 187/341/20 200/327/20 199/342/20 +f 185/326/21 201/325/21 200/327/21 +f 188/344/18 199/442/18 198/345/18 +f 203/346/19 214/367/19 217/347/19 +f 216/349/22 217/347/22 214/350/22 +f 212/352/22 213/356/22 210/353/22 +f 208/355/19 210/362/19 213/356/19 +f 207/358/20 212/352/20 211/359/20 +f 209/357/21 213/356/21 212/352/21 +f 206/361/18 211/443/18 210/362/18 +f 204/363/20 216/349/20 215/364/20 +f 202/348/21 217/347/21 216/349/21 +f 205/366/18 215/444/18 214/367/18 +f 218/368/22 220/372/22 219/369/22 +f 218/368/23 221/373/23 222/371/23 +f 221/373/21 223/445/21 224/374/21 +f 219/369/24 226/376/24 225/375/24 +f 226/376/18 228/446/18 227/377/18 +f 230/378/22 232/382/22 231/379/22 +f 230/378/23 233/383/23 234/381/23 +f 233/383/21 235/447/21 236/384/21 +f 231/379/24 238/386/24 237/385/24 +f 238/386/18 240/448/18 239/387/18 +f 193/335/17 191/336/17 190/388/17 +f 209/357/17 207/358/17 206/390/17 +f 204/363/17 205/449/17 203/392/17 +f 187/341/17 188/450/17 186/393/17 +f 242/394/21 241/451/21 243/395/21 +f 244/396/25 243/395/25 250/397/25 +f 245/399/18 246/452/18 248/400/18 +f 247/401/26 248/400/26 251/402/26 +f 250/397/17 249/403/17 251/402/17 +f 254/404/21 253/453/21 255/405/21 +f 256/406/25 255/405/25 262/407/25 +f 257/409/18 258/454/18 260/410/18 +f 259/411/26 260/410/26 263/412/26 +f 262/407/17 261/413/17 263/412/17 diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png new file mode 100644 index 000000000..50e443456 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png new file mode 100644 index 000000000..211e15c11 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png new file mode 100644 index 000000000..7626bef4a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png new file mode 100644 index 000000000..ab17e66c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png new file mode 100644 index 000000000..0e11f3ed4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_niobium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png new file mode 100644 index 000000000..88dc96a41 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_spark.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png b/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png new file mode 100644 index 000000000..4a8390971 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/capacitor_tantalum.png differ