diff --git a/changelog b/changelog index db178b44d..31bdeeb83 100644 --- a/changelog +++ b/changelog @@ -1,32 +1,10 @@ ## Added -* PWR Heatsink - * Increases the core heat capacity by 5% per block - * Makes cooling channels and heat exchangers slightly less effective (each heatsink counts as one quarter of a fuel rod in the heat calculation) +* New medium sized electricity pylons + * Come in wood and steel flavor + * The regular ones don't connect to cable blocks, the variants with transformers do (i.e. they act like substations for huge pylons) ## Changed -* All launch pad blocks can now accept items, not just ports -* Removed the old watz pellets and titanium filter -* Removed copper panels, cast copper plates now take its place in most use-cases -* Removed generator bodies and rotors, recipes use 6 dense gold wires per generator instead -* Removed reinforced turbine shafts, most turbines now use HSS pipes instead -* Removed the steam batteries (why did we even have those?) -* Removed some old remap items (from back when the ZIRNOX rods got remapped) -* Large and small shells have been merged into a single item which uses material autogen - * A copper variant for shells has been added which is used for artillery shells - * Shells are now only directly craftable via anvil, however they can be cast using the crucible as well -* Most instances of the expensive steel pipes as well as the decorative pipes which need tons of microcrafting have been replaced with a new pipe item - * The new pipes also use autogen, being available in different materials - * Some of the recipes that used the small shells now use pipes instead -* Tenfolded the throughout of powered condensers -* Regular and combo filters now work for blistering agents (like mustard gas or air pollution) -* Wires now render two faces instead of one, making them appear equally thick from any viewed angle -* Slag taps can now be toggled and filtered -* Foundry channels now have twice the throughput (2 ingots) -* RBMK ReaSim and steam connectors now have tooltips explaining how they work, as there is no other ingame documentation on them +* Condensers now need cast plates instead of welded plates +* Tweaked the substation recipe, it now yields two substations -## Fixed -* Fixed crash caused by invalid default loot pool configuration -* Fixed enchantment glint not rendering on upscaled items like certain swords or tier 2 pickaxes -* Fixed wire connections becoming invisible when pointing straight down, wires should now rotate correctly -* Fixed connection issue allowing channels to output into slag taps sideways -* Fixed the strand caster sometimes voiding small amounts of material +## Fixed \ 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 bbd2bff36..17ca86aa7 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -773,6 +773,10 @@ public class ModBlocks { public static Block red_cable_gauge; public static Block red_connector; public static Block red_pylon; + public static Block red_pylon_medium_wood; + public static Block red_pylon_medium_wood_transformer; + public static Block red_pylon_medium_steel; + public static Block red_pylon_medium_steel_transformer; public static Block red_pylon_large; public static Block substation; public static Block cable_switch; @@ -1922,6 +1926,10 @@ public class ModBlocks { red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood_transformer = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel_transformer = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3196,6 +3204,10 @@ public class ModBlocks { GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); + register(red_pylon_medium_wood); + register(red_pylon_medium_wood_transformer); + register(red_pylon_medium_steel); + register(red_pylon_medium_steel_transformer); GameRegistry.registerBlock(red_pylon_large, ItemBlockBase.class, red_pylon_large.getUnlocalizedName()); GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/PylonMedium.java b/src/main/java/com/hbm/blocks/network/PylonMedium.java new file mode 100644 index 000000000..d36921a67 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/PylonMedium.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.network; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.network.TileEntityPylonBase; +import com.hbm.tileentity.network.TileEntityPylonMedium; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class PylonMedium extends BlockDummyable implements ITooltipProvider { + + public PylonMedium(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityPylonMedium(); + return null; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Triple"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "45m"); + } + + @Override + public int[] getDimensions() { + return new int[] {6, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int m) { + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityPylonBase) ((TileEntityPylonBase)te).disconnectAll(); + super.breakBlock(world, x, y, z, b, m); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFEL.java b/src/main/java/com/hbm/inventory/container/ContainerFEL.java index db7cd4949..c80e69e44 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFEL.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFEL.java @@ -3,7 +3,6 @@ package com.hbm.inventory.container; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityFEL; -import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -49,7 +48,7 @@ public class ContainerFEL extends Container { } } else { - if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(rStack.getItem() instanceof api.hbm.energymk2.IBatteryItem || rStack.getItem() == ModItems.battery_creative) { if(!this.mergeItemStack(stack, 0, 1, false)) return null; } else { if(!this.mergeItemStack(stack, 1, 2, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index ed084a881..c8380834b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -6,7 +6,7 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 6bbf3510a..950a00d7d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineChemplant; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index feb3de896..51513c094 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -6,7 +6,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java index 3e751f88e..c10e47ae7 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBlades; import com.hbm.tileentity.machine.TileEntityMachineShredder; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index 5fb979fe9..d2e12fa98 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -5,7 +5,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; 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 e4cc0a9a5..8a295eea5 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -458,14 +458,12 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new OreDictStack(ANY_CONCRETE.any(), 6), - new OreDictStack(STEEL.ingot(), 4), - new ComparableStack(ModBlocks.steel_scaffold, 2), - new ComparableStack(ModItems.plate_polymer, 8), - new ComparableStack(ModItems.coil_copper, 2), - new ComparableStack(ModItems.coil_copper_torus, 2) + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(STEEL.ingot(), 8), + new ComparableStack(ModItems.plate_polymer, 12), + new ComparableStack(ModItems.coil_copper, 8) }, - new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); + new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d0beabbc7..6b984dd85 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -147,8 +147,6 @@ public class ClientProxy extends ServerProxy { registerBlockRenderer(); Jars.initJars(); - - //SoundUtil.addSoundCategory("ntmMachines"); } private void registerClientEventHandler(Object handler) { @@ -337,6 +335,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation()); //chargers diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 04b67bc0d..a3896a2fe 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -279,6 +279,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS }); @@ -960,7 +964,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); - addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateWelded() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateCast() }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 677b69c92..08ba66b2d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -385,6 +385,7 @@ public class ResourceManager { //Network public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj")); + public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj")); public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); @@ -782,6 +783,8 @@ public class ResourceManager { //Electricity public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png"); + public static final ResourceLocation pylon_medium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium.png"); + public static final ResourceLocation pylon_medium_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium_steel.png"); public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index f7ffccd91..dca78271c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -4,7 +4,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; import com.hbm.tileentity.network.TileEntityPylonBase; -import com.hbm.tileentity.network.TileEntityPylonBase.ConnectionType; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -15,63 +14,6 @@ import net.minecraft.world.World; public abstract class RenderPylonBase extends TileEntitySpecialRenderer { - //TODO: adapt this into a more generic form for multi wire pylons - /*@Deprecated - public void renderSingleLine(TileEntityPylonBase pyl, double x, double y, double z) { - - for(int i = 0; i < pyl.connected.size(); i++) { - - int[] wire = pyl.connected.get(i); - TileEntity tile = pyl.getWorldObj().getTileEntity(wire[0], wire[1], wire[2]); - - if(tile instanceof TileEntityPylonBase) { - TileEntityPylonBase pylon = (TileEntityPylonBase) tile; - Vec3 myOffset = pyl.getMountPos()[0]; - Vec3 theirOffset = pylon.getMountPos()[0]; - - double conX0 = pyl.xCoord + myOffset.xCoord; - double conY0 = pyl.yCoord + myOffset.yCoord; - double conZ0 = pyl.zCoord + myOffset.zCoord; - double conX1 = pylon.xCoord + theirOffset.xCoord; - double conY1 = pylon.yCoord + theirOffset.yCoord; - double conZ1 = pylon.zCoord + theirOffset.zCoord; - - double wX = (conX1 - conX0) / 2D; - double wY = (conY1 - conY0) / 2D; - double wZ = (conZ1 - conZ0) / 2D; - - float count = 10; - Vec3 delta = Vec3.createVectorHelper(conX1 - conX0, conY1 - conY0, conZ1 - conZ0); - double hang = delta.lengthVector() / 15D; - - for(float j = 0; j < count; j++) { - - float k = j + 1; - - double ja = j + 0.5D; - double ix = conX0 + delta.xCoord / (double)(count * 2) * ja; - double iy = conY0 + delta.yCoord / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5) * hang; - double iz = conZ0 + delta.zCoord / (double)(count * 2) * ja; - - //pylon.getWorldObj().spawnParticle("reddust", ix, iy, iz, 0.01 + j * 0.1, 0, 0); - - int brightness = pyl.getWorldObj().getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); - int lX = brightness % 65536; - int lY = brightness / 65536; - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); - - drawLineSegment( - x + myOffset.xCoord + (wX * j / count), - y + myOffset.yCoord + (wY * j / count) - Math.sin(j / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * j / count), - x + myOffset.xCoord + (wX * k / count), - y + myOffset.yCoord + (wY * k / count) - Math.sin(k / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * k / count)); - } - } - } - }*/ - /** * The closest we have to a does-all solution. It will figure out if it needs to draw multiple lines, * iterate through all the mounting points, try to find the matching mounting points and then draw the lines. @@ -95,7 +37,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { Vec3[] m1 = pyl.getMountPos(); Vec3[] m2 = pylon.getMountPos(); - int lineCount = Math.max(pyl.getConnectionType() == ConnectionType.QUAD ? 4 : 1, pylon.getConnectionType() == ConnectionType.QUAD ? 4 : 1); + int lineCount = Math.min(m1.length, m2.length); for(int line = 0; line < lineCount; line++) { @@ -227,12 +169,16 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { double iZ = Math.cos(yaw) * Math.cos(newPitch) * girth; double iX = Math.sin(yaw) * Math.cos(newPitch) * girth; double iY = Math.sin(newPitch) * girth; - double jZ = Math.cos(newYaw) * Math.cos(newPitch) * girth; - double jX = Math.sin(newYaw) * Math.cos(newPitch) * girth; + double jZ = Math.cos(newYaw) * girth; + double jX = Math.sin(newYaw) * girth; double length = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); int wrap = (int) Math.ceil(length * 8); - if(deltaX + deltaZ < 0) wrap *= -1; + if(deltaX + deltaZ < 0) { + wrap *= -1; + jZ *= -1; + jX *= -1; + } tessellator.setColorOpaque_I(0xffffff); tessellator.addVertexWithUV(x + iX, y + iY, z + iZ, 0, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java index 8df4d64fb..a70616ce7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java @@ -35,5 +35,4 @@ public class RenderPylonLarge extends RenderPylonBase { this.renderLinesGeneric(pyl, x, y, z); GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java new file mode 100644 index 000000000..c37cd2881 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java @@ -0,0 +1,87 @@ +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 com.hbm.tileentity.network.TileEntityPylonMedium; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPylonMedium extends RenderPylonBase implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityPylonMedium pyl = (TileEntityPylonMedium)tile; + + + if(tile.getBlockType() == ModBlocks.red_pylon_medium_steel || tile.getBlockType() == ModBlocks.red_pylon_medium_steel_transformer) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + if(pyl.hasTransformer()) ResourceManager.pylon_medium.renderPart("Transformer"); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + this.renderLinesGeneric(pyl, x, y, z); + GL11.glPopMatrix(); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer) + }; + } + + @Override + public Item getItemForRenderer() { return Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood); } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(1, -5, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommonWithStack(ItemStack stack) { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glTranslated(0.75, 0, 0); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + ResourceManager.pylon_medium.renderPart("Transformer"); + } + }; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index b5fe97b8e..ca90591b5 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -382,6 +382,7 @@ public class TileMappings { put(TileEntityConnector.class, "tileentity_connector_redwire"); put(TileEntityPylon.class, "tileentity_pylon_redwire"); + put(TileEntityPylonMedium.class, "tileentity_pylon_medium"); put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 49da2622f..080001df1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -156,6 +156,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public static enum ConnectionType { SINGLE, + TRIPLE, QUAD //more to follow } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java index f0ef0c3d5..03b588ed0 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java @@ -37,5 +37,4 @@ public class TileEntityPylonLarge extends TileEntityPylonBase { public double getMaxWireLength() { return 100; } - } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java new file mode 100644 index 000000000..fd7cb146f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java @@ -0,0 +1,59 @@ +package com.hbm.tileentity.network; + +import com.hbm.blocks.ModBlocks; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPylonMedium extends TileEntityPylonBase { + + @Override + public ConnectionType getConnectionType() { + return ConnectionType.TRIPLE; + } + + @Override + public Vec3[] getMountPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + double height = 7.5D; + + return new Vec3[] { + Vec3.createVectorHelper(0.5, height, 0.5), + Vec3.createVectorHelper(0.5 + dir.offsetX, height, 0.5 + dir.offsetZ), + Vec3.createVectorHelper(0.5 + dir.offsetX * 2, height, 0.5 + dir.offsetZ * 2), + }; + } + + @Override + public double getMaxWireLength() { + return 45; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return this.hasTransformer() ? ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite() == dir : false; + } + + @Override + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + if(this.hasTransformer()) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite(); + node.addConnection(new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir)); + } + return node; + } + + public boolean hasTransformer() { + Block block = this.getBlockType(); + return block == ModBlocks.red_pylon_medium_wood_transformer || block == ModBlocks.red_pylon_medium_steel_transformer; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2a1bfc4be..2c3be2817 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4482,6 +4482,10 @@ tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (Färbbar) tile.red_connector.name=Stromverbindungsstück tile.red_pylon.name=Strommasten tile.red_pylon_large.name=Hochspannungsmasten +tile.red_pylon_medium_steel.name=Stählerner mittelgroßer Strommasten +tile.red_pylon_medium_steel_transformer.name=Stählerner mittelgroßer Strommasten mit Transformator +tile.red_pylon_medium_wood.name=Hölzerner mittelgroßer Strommasten +tile.red_pylon_medium_wood_transformer.name=Hölzerner mittelgroßer Strommasten mit Transformator tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel tile.reinforced_brick.name=Verstärkter Stein tile.reinforced_brick_stairs.name=Verstärkte Steintreppe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7d74c5a94..32a776667 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5537,8 +5537,12 @@ tile.red_cable_gauge.name=Power Gauge tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector -tile.red_pylon.name=Electricity Pole +tile.red_pylon.name=Electricity Pylon tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_medium_steel.name=Medium Steel Electicity Pylon +tile.red_pylon_medium_steel_transformer.name=Medium Steel Electicity Pylon with Transformer +tile.red_pylon_medium_wood.name=Medium Wooden Electicity Pylon +tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electicity Pylon with Transformer tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs diff --git a/src/main/resources/assets/hbm/models/network/pylon_medium.obj b/src/main/resources/assets/hbm/models/network/pylon_medium.obj new file mode 100644 index 000000000..750e781b9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/network/pylon_medium.obj @@ -0,0 +1,1023 @@ +# Blender v2.79 (sub 0) OBJ File: 'pylon_medium.blend' +# www.blender.org +o Transformer +v -0.187500 0.312500 -0.250000 +v 0.187500 0.312500 -0.250000 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.687500 -0.250000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.250000 5.500000 -0.125000 +v 0.250000 5.500000 -0.125000 +v -0.250000 6.500000 -0.125000 +v 0.250000 6.500000 -0.125000 +v -0.250000 6.500000 -0.625000 +v -0.250000 5.500000 -0.625000 +v 0.250000 5.500000 -0.625000 +v 0.250000 6.500000 -0.625000 +v -0.062500 1.000000 -0.125000 +v 0.062500 1.000000 -0.125000 +v -0.062500 1.000000 -0.187500 +v 0.062500 1.000000 -0.187500 +v -0.062500 5.500000 -0.125000 +v 0.062500 5.500000 -0.125000 +v -0.062500 5.500000 -0.187500 +v 0.062500 5.500000 -0.187500 +v -0.062500 6.500000 -0.125000 +v 0.062500 6.500000 -0.125000 +v -0.062500 6.500000 -0.187500 +v 0.062500 6.500000 -0.187500 +v -0.062500 6.937500 -0.125000 +v 0.062500 6.937500 -0.125000 +v -0.062500 6.875000 -0.187500 +v 0.062500 6.875000 -0.187500 +v -0.187500 5.562500 0.187500 +v 0.187500 5.562500 0.187500 +v -0.187500 5.562500 -0.125000 +v 0.187500 5.562500 -0.125000 +v -0.187500 5.687500 -0.125000 +v -0.187500 5.687500 0.187500 +v 0.187500 5.687500 0.187500 +v 0.187500 5.687500 -0.125000 +v -0.187500 6.312500 0.187500 +v 0.187500 6.312500 0.187500 +v -0.187500 6.312500 -0.125000 +v 0.187500 6.312500 -0.125000 +v -0.187500 6.437500 -0.125000 +v -0.187500 6.437500 0.187500 +v 0.187500 6.437500 0.187500 +v 0.187500 6.437500 -0.125000 +vt 0.846154 0.312500 +vt 0.692308 0.437500 +vt 0.692308 0.312500 +vt 0.730769 0.265625 +vt 0.615385 0.218750 +vt 0.730769 0.218750 +vt 0.538462 0.218750 +vt 0.615385 0.265625 +vt 0.538462 0.265625 +vt 0.807692 0.265625 +vt 0.807692 0.218750 +vt 0.615385 0.296875 +vt 0.730769 0.296875 +vt 0.730769 0.187500 +vt 0.615385 0.187500 +vt 0.538462 0.437500 +vt 0.384615 0.312500 +vt 0.538462 0.312500 +vt 0.384615 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.250000 +vt 0.384615 0.250000 +vt 1.000000 0.437500 +vt 0.846154 0.437500 +vt 0.057692 0.562500 +vt 0.019231 0.000000 +vt 0.057692 0.000000 +vt 0.019231 0.562500 +vt -0.000000 0.000000 +vt 0.076923 0.562500 +vt 0.076923 0.000000 +vt 0.057692 0.859375 +vt 0.019231 0.812500 +vt 0.057692 0.812500 +vt 0.019231 0.859375 +vt 0.000000 0.812500 +vt 0.076923 0.812500 +vt 0.057692 0.867188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.384615 0.437500 +vt 1.000000 0.312500 +vt -0.000000 0.562500 +vt 0.000000 0.867188 +vt 0.076923 0.867188 +vt 0.019231 0.867188 +vt 0.903846 0.437500 +vt 0.903846 0.531250 +vt 0.903846 0.437500 +vt 1.000000 0.492188 +vt 0.903846 0.531250 +vt 1.000000 0.492188 +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 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +s off +f 10/1/1 11/2/1 9/3/1 +f 5/4/2 7/5/2 6/6/2 +f 2/7/3 8/8/3 4/9/3 +f 3/10/4 6/6/4 1/11/4 +f 4/12/5 5/4/5 3/13/5 +f 1/14/6 7/5/6 2/15/6 +f 13/16/2 15/17/2 14/18/2 +f 12/19/5 13/16/5 11/20/5 +f 9/21/6 15/17/6 10/22/6 +f 10/1/3 16/23/3 12/24/3 +f 11/2/4 14/18/4 9/3/4 +f 23/25/2 20/26/2 19/27/2 +f 24/28/3 18/29/3 20/26/3 +f 21/30/4 19/27/4 17/31/4 +f 31/32/2 28/33/2 27/34/2 +f 32/35/3 26/36/3 28/33/3 +f 25/37/4 31/32/4 27/34/4 +f 29/38/7 32/35/7 31/32/7 +f 35/39/6 34/40/6 33/41/6 +f 39/42/5 37/43/5 38/44/5 +f 43/45/6 42/46/6 41/47/6 +f 34/40/1 38/44/1 33/41/1 +f 36/48/3 39/42/3 34/40/3 +f 33/41/4 37/49/4 35/50/4 +f 47/51/5 45/52/5 46/53/5 +f 42/46/1 46/53/1 41/47/1 +f 44/54/3 47/51/3 42/46/3 +f 41/47/4 45/55/4 43/56/4 +f 10/1/1 12/24/1 11/2/1 +f 5/4/2 8/8/2 7/5/2 +f 2/7/3 7/5/3 8/8/3 +f 3/10/4 5/4/4 6/6/4 +f 4/12/5 8/8/5 5/4/5 +f 1/14/6 6/6/6 7/5/6 +f 13/16/2 16/57/2 15/17/2 +f 12/19/5 16/57/5 13/16/5 +f 9/21/6 14/18/6 15/17/6 +f 10/1/3 15/58/3 16/23/3 +f 11/2/4 13/16/4 14/18/4 +f 23/25/2 24/28/2 20/26/2 +f 24/28/3 22/59/3 18/29/3 +f 21/30/4 23/25/4 19/27/4 +f 31/32/2 32/35/2 28/33/2 +f 32/35/3 30/60/3 26/36/3 +f 25/37/4 29/61/4 31/32/4 +f 29/38/7 30/62/7 32/35/7 +f 35/39/6 36/63/6 34/40/6 +f 39/42/5 40/64/5 37/43/5 +f 43/45/6 44/65/6 42/46/6 +f 34/40/1 39/42/1 38/44/1 +f 36/48/3 40/66/3 39/42/3 +f 33/41/4 38/44/4 37/49/4 +f 47/51/5 48/67/5 45/52/5 +f 42/46/1 47/51/1 46/53/1 +f 44/54/3 48/68/3 47/51/3 +f 41/47/4 46/53/4 45/55/4 +o Pylon +v -0.250000 0.000000 0.250000 +v 0.250000 0.000000 0.250000 +v -0.250000 0.000000 -0.250000 +v 0.250000 0.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 1.000000 -0.250000 +v -0.125000 1.000000 0.125000 +v 0.125000 1.000000 0.125000 +v -0.125000 1.000000 -0.125000 +v 0.125000 1.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.062500 -0.125000 +v -0.125000 7.062500 0.125000 +v 0.125000 7.062500 0.125000 +v 0.125000 7.062500 -0.125000 +v -0.187500 7.062500 -0.187500 +v -0.187500 7.062500 0.187500 +v 0.187500 7.062500 0.187500 +v 0.187500 7.062500 -0.187500 +v -0.187500 7.187500 -0.187500 +v -0.187500 7.187500 0.187500 +v 0.187500 7.187500 0.187500 +v 0.187500 7.187500 -0.187500 +v -0.125000 7.187500 0.125000 +v 0.125000 7.187500 0.125000 +v -0.125000 7.187500 -0.125000 +v 0.125000 7.187500 -0.125000 +v -0.125000 7.250000 -0.125000 +v -0.125000 7.250000 0.125000 +v 0.125000 7.250000 0.125000 +v 0.125000 7.250000 -0.125000 +v -0.187500 7.250000 -0.187500 +v -0.187500 7.250000 0.187500 +v 0.187500 7.250000 0.187500 +v 0.187500 7.250000 -0.187500 +v -0.187500 7.375000 -0.187500 +v -0.187500 7.375000 0.187500 +v 0.187500 7.375000 0.187500 +v 0.187500 7.375000 -0.187500 +v -0.125000 7.375000 0.125000 +v 0.125000 7.375000 0.125000 +v -0.125000 7.375000 -0.125000 +v 0.125000 7.375000 -0.125000 +v -0.125000 7.437500 -0.125000 +v -0.125000 7.437500 0.125000 +v 0.125000 7.437500 0.125000 +v 0.125000 7.437500 -0.125000 +v -0.062500 7.437500 -0.062500 +v -0.062500 7.437500 0.062500 +v 0.062500 7.437500 0.062500 +v 0.062500 7.437500 -0.062500 +v -0.062500 7.562500 -0.062500 +v -0.062500 7.562500 0.062500 +v 0.062500 7.562500 0.062500 +v 0.062500 7.562500 -0.062500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 6.750000 2.125000 +v 0.125000 6.750000 2.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 6.750000 0.125000 +v 0.125000 6.750000 0.125000 +v -0.062500 5.750000 0.125000 +v 0.062500 5.750000 0.125000 +v -0.062500 6.000000 0.125000 +v 0.062500 6.000000 0.125000 +v -0.062500 6.750000 1.125000 +v 0.062500 6.750000 1.125000 +v -0.062500 6.750000 0.875000 +v 0.062500 6.750000 0.875000 +v -0.125000 7.000000 1.125000 +v 0.125000 7.000000 1.125000 +v -0.125000 7.000000 0.875000 +v 0.125000 7.000000 0.875000 +v -0.125000 7.062500 0.875000 +v -0.125000 7.062500 1.125000 +v 0.125000 7.062500 1.125000 +v 0.125000 7.062500 0.875000 +v -0.187500 7.062500 0.812500 +v -0.187500 7.062500 1.187500 +v 0.187500 7.062500 1.187500 +v 0.187500 7.062500 0.812500 +v -0.187500 7.187500 0.812500 +v -0.187500 7.187500 1.187500 +v 0.187500 7.187500 1.187500 +v 0.187500 7.187500 0.812500 +v -0.125000 7.187500 1.125000 +v 0.125000 7.187500 1.125000 +v -0.125000 7.187500 0.875000 +v 0.125000 7.187500 0.875000 +v -0.125000 7.250000 0.875000 +v -0.125000 7.250000 1.125000 +v 0.125000 7.250000 1.125000 +v 0.125000 7.250000 0.875000 +v -0.187500 7.250000 0.812500 +v -0.187500 7.250000 1.187500 +v 0.187500 7.250000 1.187500 +v 0.187500 7.250000 0.812500 +v -0.187500 7.375000 0.812500 +v -0.187500 7.375000 1.187500 +v 0.187500 7.375000 1.187500 +v 0.187500 7.375000 0.812500 +v -0.125000 7.375000 1.125000 +v 0.125000 7.375000 1.125000 +v -0.125000 7.375000 0.875000 +v 0.125000 7.375000 0.875000 +v -0.125000 7.437500 0.875000 +v -0.125000 7.437500 1.125000 +v 0.125000 7.437500 1.125000 +v 0.125000 7.437500 0.875000 +v -0.062500 7.437500 0.937500 +v -0.062500 7.437500 1.062500 +v 0.062500 7.437500 1.062500 +v 0.062500 7.437500 0.937500 +v -0.062500 7.562500 0.937500 +v -0.062500 7.562500 1.062500 +v 0.062500 7.562500 1.062500 +v 0.062500 7.562500 0.937500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 7.000000 1.875000 +v 0.125000 7.000000 1.875000 +v -0.125000 7.062500 1.875000 +v -0.125000 7.062500 2.125000 +v 0.125000 7.062500 2.125000 +v 0.125000 7.062500 1.875000 +v -0.187500 7.062500 1.812500 +v -0.187500 7.062500 2.187500 +v 0.187500 7.062500 2.187500 +v 0.187500 7.062500 1.812500 +v -0.187500 7.187500 1.812500 +v -0.187500 7.187500 2.187500 +v 0.187500 7.187500 2.187500 +v 0.187500 7.187500 1.812500 +v -0.125000 7.187500 2.125000 +v 0.125000 7.187500 2.125000 +v -0.125000 7.187500 1.875000 +v 0.125000 7.187500 1.875000 +v -0.125000 7.250000 1.875000 +v -0.125000 7.250000 2.125000 +v 0.125000 7.250000 2.125000 +v 0.125000 7.250000 1.875000 +v -0.187500 7.250000 1.812500 +v -0.187500 7.250000 2.187500 +v 0.187500 7.250000 2.187500 +v 0.187500 7.250000 1.812500 +v -0.187500 7.375000 1.812500 +v -0.187500 7.375000 2.187500 +v 0.187500 7.375000 2.187500 +v 0.187500 7.375000 1.812500 +v -0.125000 7.375000 2.125000 +v 0.125000 7.375000 2.125000 +v -0.125000 7.375000 1.875000 +v 0.125000 7.375000 1.875000 +v -0.125000 7.437500 1.875000 +v -0.125000 7.437500 2.125000 +v 0.125000 7.437500 2.125000 +v 0.125000 7.437500 1.875000 +v -0.062500 7.437500 1.937500 +v -0.062500 7.437500 2.062500 +v 0.062500 7.437500 2.062500 +v 0.062500 7.437500 1.937500 +v -0.062500 7.562500 1.937500 +v -0.062500 7.562500 2.062500 +v 0.062500 7.562500 2.062500 +v 0.062500 7.562500 1.937500 +vt 0.538462 -0.000000 +vt 0.384615 0.062500 +vt 0.384615 -0.000000 +vt 0.538462 0.062500 +vt 0.384615 0.187500 +vt 0.846154 0.062500 +vt 0.692308 0.187500 +vt 0.692308 0.062500 +vt 0.538462 0.187500 +vt 1.000000 0.062500 +vt 0.846154 0.187500 +vt 0.230769 0.000000 +vt 0.153846 0.750000 +vt 0.153846 0.000000 +vt 0.384615 0.250000 +vt 0.538462 0.250000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.384615 0.000000 +vt 0.307692 0.750000 +vt 0.307692 0.000000 +vt 0.076923 0.750000 +vt 0.076923 0.000000 +vt 0.230769 0.750000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.750000 +vt 0.384615 0.781250 +vt 0.384615 0.750000 +vt 0.615385 0.750000 +vt 0.692308 0.500000 +vt 0.692308 0.750000 +vt 0.461538 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.750000 +vt 0.615385 0.500000 +vt 0.961538 0.875000 +vt 0.923077 0.781250 +vt 0.961538 0.781250 +vt 0.769231 0.656250 +vt 1.000000 0.531250 +vt 1.000000 0.562500 +vt 1.000000 0.906250 +vt 0.961538 0.781250 +vt 1.000000 0.781250 +vt 1.000000 0.781250 +vt 0.692308 0.687500 +vt 0.692308 0.656250 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 1.000000 0.187500 +vt 0.384615 0.750000 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.781250 +vt 0.384615 0.500000 +vt 0.923077 0.875000 +vt 0.692308 0.656250 +vt 0.961538 0.906250 +vt 0.923077 0.781250 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.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 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +s off +f 51/69/8 50/70/8 49/71/8 +f 52/72/9 54/73/9 50/70/9 +f 49/74/10 55/75/10 51/76/10 +f 51/76/11 56/77/11 52/72/11 +f 50/78/12 53/79/12 49/74/12 +f 59/80/11 64/81/11 60/82/11 +f 53/83/13 56/77/13 55/84/13 +f 84/85/9 87/86/9 82/87/9 +f 58/88/12 61/89/12 57/90/12 +f 60/82/9 62/91/9 58/92/9 +f 57/90/10 63/93/10 59/80/10 +f 81/94/10 85/95/10 83/96/10 +f 69/97/8 76/98/8 72/99/8 +f 68/100/9 71/101/9 66/102/9 +f 65/103/10 69/104/10 67/105/10 +f 67/106/11 72/99/11 68/107/11 +f 66/108/12 70/109/12 65/110/12 +f 76/111/9 79/112/9 75/113/9 +f 71/114/8 74/115/8 70/109/8 +f 72/116/8 75/113/8 71/101/8 +f 70/117/8 73/118/8 69/104/8 +f 85/119/8 92/120/8 88/121/8 +f 74/122/10 77/123/10 73/118/10 +f 73/124/11 80/125/11 76/98/11 +f 75/126/12 78/127/12 74/115/12 +f 83/128/11 88/121/11 84/129/11 +f 82/130/12 86/131/12 81/132/12 +f 92/133/9 95/134/9 91/135/9 +f 87/136/8 90/137/8 86/131/8 +f 88/138/8 91/135/8 87/86/8 +f 86/139/8 89/140/8 85/95/8 +f 90/141/10 93/142/10 89/140/10 +f 89/143/11 96/144/11 92/120/11 +f 91/145/12 94/146/12 90/137/12 +f 82/130/13 78/127/13 79/147/13 +f 84/85/13 79/112/13 80/148/13 +f 83/128/13 80/125/13 77/149/13 +f 81/94/13 77/123/13 78/150/13 +f 100/151/9 103/152/9 98/153/9 +f 97/154/10 101/155/10 99/156/10 +f 99/157/11 104/158/11 100/159/11 +f 98/160/12 102/161/12 97/162/12 +f 98/160/13 94/146/13 95/163/13 +f 100/151/13 95/134/13 96/164/13 +f 99/157/13 96/144/13 93/165/13 +f 97/154/13 93/142/13 94/166/13 +f 102/167/13 105/168/13 101/155/13 +f 108/169/9 111/170/9 107/171/9 +f 101/172/13 108/173/13 104/158/13 +f 103/174/13 106/175/13 102/161/13 +f 104/176/13 107/171/13 103/152/13 +f 110/177/13 112/178/13 109/179/13 +f 106/180/10 109/181/10 105/168/10 +f 105/182/11 112/183/11 108/173/11 +f 107/184/12 110/185/12 106/175/12 +f 113/186/12 116/187/12 114/188/12 +f 116/189/9 118/190/9 114/191/9 +f 114/188/13 117/192/13 113/186/13 +f 113/186/10 119/193/10 115/194/10 +f 115/194/8 120/195/8 116/189/8 +f 127/196/14 124/197/14 123/198/14 +f 128/199/9 122/200/9 124/201/9 +f 126/202/15 121/203/15 122/204/15 +f 125/205/10 123/206/10 121/207/10 +f 148/208/9 151/209/9 146/210/9 +f 145/211/10 149/212/10 147/213/10 +f 133/214/8 140/215/8 136/216/8 +f 132/217/9 135/218/9 130/219/9 +f 129/220/10 133/221/10 131/222/10 +f 131/223/11 136/216/11 132/224/11 +f 130/225/12 134/226/12 129/227/12 +f 140/228/9 143/229/9 139/230/9 +f 135/231/8 138/232/8 134/226/8 +f 136/233/8 139/230/8 135/218/8 +f 134/234/8 137/235/8 133/221/8 +f 149/236/8 156/237/8 152/238/8 +f 138/239/10 141/240/10 137/235/10 +f 137/241/11 144/242/11 140/215/11 +f 139/243/12 142/244/12 138/232/12 +f 147/245/11 152/238/11 148/246/11 +f 146/247/12 150/248/12 145/249/12 +f 156/250/9 159/251/9 155/252/9 +f 151/253/8 154/254/8 150/248/8 +f 152/255/8 155/252/8 151/209/8 +f 150/256/8 153/257/8 149/212/8 +f 154/258/10 157/259/10 153/257/10 +f 153/260/11 160/261/11 156/237/11 +f 155/262/12 158/263/12 154/254/12 +f 146/247/13 142/244/13 143/264/13 +f 148/208/13 143/229/13 144/265/13 +f 147/245/13 144/242/13 141/266/13 +f 145/211/13 141/240/13 142/267/13 +f 164/268/9 167/269/9 162/270/9 +f 161/271/10 165/272/10 163/273/10 +f 163/274/11 168/275/11 164/276/11 +f 162/277/12 166/278/12 161/279/12 +f 162/277/13 158/263/13 159/280/13 +f 164/268/13 159/251/13 160/281/13 +f 163/274/13 160/261/13 157/282/13 +f 161/271/13 157/259/13 158/283/13 +f 166/284/13 169/285/13 165/272/13 +f 172/286/9 175/287/9 171/288/9 +f 165/289/13 172/290/13 168/275/13 +f 167/291/13 170/292/13 166/278/13 +f 168/293/13 171/288/13 167/269/13 +f 174/294/13 176/295/13 173/296/13 +f 170/297/10 173/298/10 169/285/10 +f 169/299/11 176/300/11 172/290/11 +f 171/301/12 174/302/12 170/292/12 +f 196/303/9 199/304/9 194/305/9 +f 193/306/10 197/307/10 195/308/10 +f 181/309/8 188/310/8 184/311/8 +f 180/312/9 183/313/9 178/314/9 +f 177/315/10 181/316/10 179/317/10 +f 179/318/11 184/311/11 180/319/11 +f 178/320/12 182/321/12 177/322/12 +f 188/323/9 191/324/9 187/325/9 +f 183/326/8 186/327/8 182/321/8 +f 184/328/8 187/325/8 183/313/8 +f 182/329/8 185/330/8 181/316/8 +f 197/331/8 204/332/8 200/333/8 +f 186/334/10 189/335/10 185/330/10 +f 185/336/11 192/337/11 188/310/11 +f 187/338/12 190/339/12 186/327/12 +f 195/340/11 200/333/11 196/341/11 +f 194/342/12 198/343/12 193/344/12 +f 204/345/9 207/346/9 203/347/9 +f 199/348/8 202/349/8 198/343/8 +f 200/350/8 203/347/8 199/304/8 +f 198/351/8 201/352/8 197/307/8 +f 202/353/10 205/354/10 201/352/10 +f 201/355/11 208/356/11 204/332/11 +f 203/357/12 206/358/12 202/349/12 +f 194/342/13 190/339/13 191/359/13 +f 196/303/13 191/324/13 192/360/13 +f 195/340/13 192/337/13 189/361/13 +f 193/306/13 189/335/13 190/362/13 +f 212/363/9 215/364/9 210/365/9 +f 209/366/10 213/367/10 211/368/10 +f 211/369/11 216/370/11 212/371/11 +f 210/372/12 214/373/12 209/374/12 +f 210/372/13 206/358/13 207/375/13 +f 212/363/13 207/346/13 208/376/13 +f 211/369/13 208/356/13 205/377/13 +f 209/366/13 205/354/13 206/378/13 +f 214/379/13 217/380/13 213/367/13 +f 220/381/9 223/382/9 219/383/9 +f 213/384/13 220/385/13 216/370/13 +f 215/386/13 218/387/13 214/373/13 +f 216/388/13 219/383/13 215/364/13 +f 222/389/13 224/390/13 221/391/13 +f 218/392/10 221/393/10 217/380/10 +f 217/394/11 224/395/11 220/385/11 +f 219/396/12 222/397/12 218/387/12 +f 51/69/8 52/72/8 50/70/8 +f 52/72/9 56/77/9 54/73/9 +f 49/74/10 53/79/10 55/75/10 +f 51/76/11 55/75/11 56/77/11 +f 50/78/12 54/398/12 53/79/12 +f 59/80/11 63/93/11 64/81/11 +f 53/83/13 54/73/13 56/77/13 +f 84/85/9 88/138/9 87/86/9 +f 58/88/12 62/399/12 61/89/12 +f 60/82/9 64/81/9 62/91/9 +f 57/90/10 61/89/10 63/93/10 +f 81/94/10 86/139/10 85/95/10 +f 69/97/8 73/124/8 76/98/8 +f 68/100/9 72/116/9 71/101/9 +f 65/103/10 70/117/10 69/104/10 +f 67/106/11 69/97/11 72/99/11 +f 66/108/12 71/114/12 70/109/12 +f 76/111/9 80/148/9 79/112/9 +f 71/114/8 75/126/8 74/115/8 +f 72/116/8 76/111/8 75/113/8 +f 70/117/8 74/122/8 73/118/8 +f 85/119/8 89/143/8 92/120/8 +f 74/122/10 78/150/10 77/123/10 +f 73/124/11 77/149/11 80/125/11 +f 75/126/12 79/147/12 78/127/12 +f 83/128/11 85/119/11 88/121/11 +f 82/130/12 87/136/12 86/131/12 +f 92/133/9 96/164/9 95/134/9 +f 87/136/8 91/145/8 90/137/8 +f 88/138/8 92/133/8 91/135/8 +f 86/139/8 90/141/8 89/140/8 +f 90/141/10 94/166/10 93/142/10 +f 89/143/11 93/165/11 96/144/11 +f 91/145/12 95/163/12 94/146/12 +f 82/130/13 81/132/13 78/127/13 +f 84/85/13 82/87/13 79/112/13 +f 83/128/13 84/129/13 80/125/13 +f 81/94/13 83/96/13 77/123/13 +f 100/151/9 104/176/9 103/152/9 +f 97/154/10 102/167/10 101/155/10 +f 99/157/11 101/172/11 104/158/11 +f 98/160/12 103/174/12 102/161/12 +f 98/160/13 97/162/13 94/146/13 +f 100/151/13 98/153/13 95/134/13 +f 99/157/13 100/159/13 96/144/13 +f 97/154/13 99/156/13 93/142/13 +f 102/167/13 106/180/13 105/168/13 +f 108/169/9 112/178/9 111/170/9 +f 101/172/13 105/182/13 108/173/13 +f 103/174/13 107/184/13 106/175/13 +f 104/176/13 108/169/13 107/171/13 +f 110/177/13 111/170/13 112/178/13 +f 106/180/10 110/400/10 109/181/10 +f 105/182/11 109/401/11 112/183/11 +f 107/184/12 111/402/12 110/185/12 +f 113/186/12 115/403/12 116/187/12 +f 116/189/9 120/195/9 118/190/9 +f 114/188/13 118/404/13 117/192/13 +f 113/186/10 117/192/10 119/193/10 +f 115/194/8 119/193/8 120/195/8 +f 127/196/14 128/405/14 124/197/14 +f 128/199/9 126/406/9 122/200/9 +f 126/202/15 125/407/15 121/203/15 +f 125/205/10 127/408/10 123/206/10 +f 148/208/9 152/255/9 151/209/9 +f 145/211/10 150/256/10 149/212/10 +f 133/214/8 137/241/8 140/215/8 +f 132/217/9 136/233/9 135/218/9 +f 129/220/10 134/234/10 133/221/10 +f 131/223/11 133/214/11 136/216/11 +f 130/225/12 135/231/12 134/226/12 +f 140/228/9 144/265/9 143/229/9 +f 135/231/8 139/243/8 138/232/8 +f 136/233/8 140/228/8 139/230/8 +f 134/234/8 138/239/8 137/235/8 +f 149/236/8 153/260/8 156/237/8 +f 138/239/10 142/267/10 141/240/10 +f 137/241/11 141/266/11 144/242/11 +f 139/243/12 143/264/12 142/244/12 +f 147/245/11 149/236/11 152/238/11 +f 146/247/12 151/253/12 150/248/12 +f 156/250/9 160/281/9 159/251/9 +f 151/253/8 155/262/8 154/254/8 +f 152/255/8 156/250/8 155/252/8 +f 150/256/8 154/258/8 153/257/8 +f 154/258/10 158/283/10 157/259/10 +f 153/260/11 157/282/11 160/261/11 +f 155/262/12 159/280/12 158/263/12 +f 146/247/13 145/249/13 142/244/13 +f 148/208/13 146/210/13 143/229/13 +f 147/245/13 148/246/13 144/242/13 +f 145/211/13 147/213/13 141/240/13 +f 164/268/9 168/293/9 167/269/9 +f 161/271/10 166/284/10 165/272/10 +f 163/274/11 165/289/11 168/275/11 +f 162/277/12 167/291/12 166/278/12 +f 162/277/13 161/279/13 158/263/13 +f 164/268/13 162/270/13 159/251/13 +f 163/274/13 164/276/13 160/261/13 +f 161/271/13 163/273/13 157/259/13 +f 166/284/13 170/297/13 169/285/13 +f 172/286/9 176/295/9 175/287/9 +f 165/289/13 169/299/13 172/290/13 +f 167/291/13 171/301/13 170/292/13 +f 168/293/13 172/286/13 171/288/13 +f 174/294/13 175/287/13 176/295/13 +f 170/297/10 174/409/10 173/298/10 +f 169/299/11 173/410/11 176/300/11 +f 171/301/12 175/411/12 174/302/12 +f 196/303/9 200/350/9 199/304/9 +f 193/306/10 198/351/10 197/307/10 +f 181/309/8 185/336/8 188/310/8 +f 180/312/9 184/328/9 183/313/9 +f 177/315/10 182/329/10 181/316/10 +f 179/318/11 181/309/11 184/311/11 +f 178/320/12 183/326/12 182/321/12 +f 188/323/9 192/360/9 191/324/9 +f 183/326/8 187/338/8 186/327/8 +f 184/328/8 188/323/8 187/325/8 +f 182/329/8 186/334/8 185/330/8 +f 197/331/8 201/355/8 204/332/8 +f 186/334/10 190/362/10 189/335/10 +f 185/336/11 189/361/11 192/337/11 +f 187/338/12 191/359/12 190/339/12 +f 195/340/11 197/331/11 200/333/11 +f 194/342/12 199/348/12 198/343/12 +f 204/345/9 208/376/9 207/346/9 +f 199/348/8 203/357/8 202/349/8 +f 200/350/8 204/345/8 203/347/8 +f 198/351/8 202/353/8 201/352/8 +f 202/353/10 206/378/10 205/354/10 +f 201/355/11 205/377/11 208/356/11 +f 203/357/12 207/375/12 206/358/12 +f 194/342/13 193/344/13 190/339/13 +f 196/303/13 194/305/13 191/324/13 +f 195/340/13 196/341/13 192/337/13 +f 193/306/13 195/308/13 189/335/13 +f 212/363/9 216/388/9 215/364/9 +f 209/366/10 214/379/10 213/367/10 +f 211/369/11 213/384/11 216/370/11 +f 210/372/12 215/386/12 214/373/12 +f 210/372/13 209/374/13 206/358/13 +f 212/363/13 210/365/13 207/346/13 +f 211/369/13 212/371/13 208/356/13 +f 209/366/13 211/368/13 205/354/13 +f 214/379/13 218/392/13 217/380/13 +f 220/381/9 224/390/9 223/382/9 +f 213/384/13 217/394/13 220/385/13 +f 215/386/13 219/396/13 218/387/13 +f 216/388/13 220/381/13 219/383/13 +f 222/389/13 223/382/13 224/390/13 +f 218/392/10 222/412/10 221/393/10 +f 217/394/11 221/413/11 224/395/11 +f 219/396/12 223/414/12 222/397/12 diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png index 415008e70..84abea964 100644 Binary files a/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png and b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png new file mode 100644 index 000000000..0665da1e7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png differ