From e5b93da9e419ff3fd9643a974f38e3d5a1d4ce2e Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 20 Nov 2025 21:43:57 +0100 Subject: [PATCH] old man yaoi --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../machine/fusion/MachineFusionCoupler.java | 41 + .../machine/fusion/MachineFusionTorus.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../tileentity/RenderFusionCoupler.java | 63 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../TileEntityMachineLargeTurbine.java | 4 +- .../fusion/TileEntityFusionCoupler.java | 119 ++ .../fusion/TileEntityFusionKlystron.java | 40 + .../machine/fusion/TileEntityFusionMHDT.java | 40 + .../machine/fusion/TileEntityFusionTorus.java | 40 + .../assets/hbm/models/fusion/coupler.obj | 1119 +++++++++++++++++ .../hbm/textures/models/fusion/coupler.png | Bin 0 -> 2601 bytes 14 files changed, 1473 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/fusion/MachineFusionCoupler.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderFusionCoupler.java create mode 100644 src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java create mode 100644 src/main/resources/assets/hbm/models/fusion/coupler.obj create mode 100644 src/main/resources/assets/hbm/textures/models/fusion/coupler.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index bcbf5b79a..4824aa7da 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -11,6 +11,7 @@ import com.hbm.blocks.machine.albion.*; import com.hbm.blocks.machine.fusion.MachineFusionBoiler; import com.hbm.blocks.machine.fusion.MachineFusionBreeder; import com.hbm.blocks.machine.fusion.MachineFusionCollector; +import com.hbm.blocks.machine.fusion.MachineFusionCoupler; import com.hbm.blocks.machine.fusion.MachineFusionKlystron; import com.hbm.blocks.machine.fusion.MachineFusionMHDT; import com.hbm.blocks.machine.fusion.MachineFusionTorus; @@ -2068,6 +2069,7 @@ public class ModBlocks { fusion_collector = new MachineFusionCollector().setBlockName("fusion_collector").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fusion_boiler = new MachineFusionBoiler().setBlockName("fusion_boiler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fusion_mhdt = new MachineFusionMHDT().setBlockName("fusion_mhdt").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + fusion_coupler = new MachineFusionCoupler().setBlockName("fusion_coupler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3460,6 +3462,7 @@ public class ModBlocks { register(fusion_collector); register(fusion_boiler); register(fusion_mhdt); + register(fusion_coupler); register(watz_element); register(watz_cooler); diff --git a/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionCoupler.java b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionCoupler.java new file mode 100644 index 000000000..e9ddafbe1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionCoupler.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.machine.fusion; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.machine.fusion.TileEntityFusionCoupler; + +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.world.World; + +public class MachineFusionCoupler extends BlockDummyable implements ITooltipProvider { + + public MachineFusionCoupler() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityFusionCoupler(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 1, 1, 1, 1 }; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionTorus.java b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionTorus.java index 26e111207..578e23738 100644 --- a/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionTorus.java +++ b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionTorus.java @@ -116,7 +116,7 @@ public class MachineFusionTorus extends BlockDummyable implements ITooltipProvid int ex = ix - layer.length / 2; int ez = iz - layer.length / 2; - if(!world.getBlock(x + ex, y + iy, z + ez).canPlaceBlockAt(world, x + ex, y + iy, z + ez)) { + if(layout[l][ix][iz] > 0 && !world.getBlock(x + ex, y + iy, z + ez).canPlaceBlockAt(world, x + ex, y + iy, z + ez)) { return false; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a7ce72e8c..2bc949055 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -432,6 +432,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCollector.class, new RenderFusionCollector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBoiler.class, new RenderFusionBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionMHDT.class, new RenderFusionMHDT()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCoupler.class, new RenderFusionCoupler()); //Watz ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index ed44eea47..216245cdc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -254,6 +254,7 @@ public class ResourceManager { public static final IModelCustom fusion_collector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/collector.obj")).asVBO(); public static final IModelCustom fusion_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/boiler.obj")).asVBO(); public static final IModelCustom fusion_mhdt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/mhdt.obj")).asVBO(); + public static final IModelCustom fusion_coupler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/coupler.obj")).asVBO(); //ICF public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO(); @@ -711,6 +712,7 @@ public class ResourceManager { public static final ResourceLocation fusion_collector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/collector.png"); public static final ResourceLocation fusion_boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/boiler.png"); public static final ResourceLocation fusion_mhdt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/mhdt.png"); + public static final ResourceLocation fusion_coupler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/coupler.png"); //ICF public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFusionCoupler.java b/src/main/java/com/hbm/render/tileentity/RenderFusionCoupler.java new file mode 100644 index 000000000..8fc58ef01 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFusionCoupler.java @@ -0,0 +1,63 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderFusionCoupler extends TileEntitySpecialRenderer 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); + + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fusion_coupler_tex); + ResourceManager.fusion_coupler.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.fusion_coupler); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(6, 6, 6); + GL11.glRotated(90, 0, 1, 0); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fusion_coupler_tex); + ResourceManager.fusion_coupler.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 157d0e59b..e0598f326 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -421,6 +421,7 @@ public class TileMappings { put(TileEntityFusionCollector.class, "tileentity_fusion_collector"); put(TileEntityFusionBoiler.class, "tileentity_fusion_boiler"); put(TileEntityFusionMHDT.class, "tileentity_fusion_mhdt"); + put(TileEntityFusionCoupler.class, "tileentity_fusion_coupler"); } private static void putNetwork() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index a4655c162..44605c73a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -163,13 +163,15 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync)); if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F, 20); audio.startSound(); } float turbineSpeed = this.fanAcceleration / 15F; audio.updateVolume(getVolume(0.4f * turbineSpeed)); audio.updatePitch(0.25F + 0.75F * turbineSpeed); + audio.keepAlive(); + } else { this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java new file mode 100644 index 000000000..5dac7ba5f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java @@ -0,0 +1,119 @@ +package com.hbm.tileentity.machine.fusion; + +import java.util.Map.Entry; + +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.uninos.GenNode; +import com.hbm.uninos.UniNodespace; +import com.hbm.uninos.networkproviders.KlystronNetwork; +import com.hbm.uninos.networkproviders.KlystronNetworkProvider; +import com.hbm.uninos.networkproviders.PlasmaNetworkProvider; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityFusionCoupler extends TileEntityLoadedBase implements IFusionPowerReceiver { + + protected GenNode klystronNode; + protected GenNode plasmaNode; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + // christ on the cross why didn't i just make a baseclass to shove this crap into + if(klystronNode == null || klystronNode.expired) { + klystronNode = UniNodespace.getNode(worldObj, xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ, KlystronNetworkProvider.THE_PROVIDER); + + if(klystronNode == null) { + klystronNode = new GenNode(KlystronNetworkProvider.THE_PROVIDER, + new BlockPos(xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ)) + .setConnections(new DirPos(xCoord + rot.offsetX * 2, yCoord + 2, zCoord + rot.offsetZ * 2, rot)); + + UniNodespace.createNode(worldObj, klystronNode); + } + } + + if(plasmaNode == null || plasmaNode.expired) { + plasmaNode = UniNodespace.getNode(worldObj, xCoord - rot.offsetX, yCoord + 2, zCoord - rot.offsetZ, PlasmaNetworkProvider.THE_PROVIDER); + + if(plasmaNode == null) { + plasmaNode = new GenNode(PlasmaNetworkProvider.THE_PROVIDER, + new BlockPos(xCoord - rot.offsetX, yCoord + 2, zCoord - rot.offsetZ)) + .setConnections(new DirPos(xCoord - rot.offsetX * 2, yCoord + 2, zCoord - rot.offsetZ * 2, rot.getOpposite())); + + UniNodespace.createNode(worldObj, plasmaNode); + } + } + + if(klystronNode.net != null) klystronNode.net.addProvider(this); + if(plasmaNode.net != null) plasmaNode.net.addReceiver(this); + } + } + + @Override public boolean receivesFusionPower() { return true; } + + @Override + public void receiveFusionPower(long fusionPower, double neutronPower) { + + // more copy pasted crap code ! ! ! + if(klystronNode != null && klystronNode.net != null) { + KlystronNetwork net = (KlystronNetwork) klystronNode.net; + + for(Object o : net.receiverEntries.entrySet()) { + Entry e = (Entry) o; + if(e.getKey() instanceof TileEntityFusionTorus) { + TileEntityFusionTorus torus = (TileEntityFusionTorus) e.getKey(); + + if(torus.isLoaded() && !torus.isInvalid()) { + torus.klystronEnergy += fusionPower; + break; + } + } + } + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + if(this.klystronNode != null) UniNodespace.destroyNode(worldObj, klystronNode); + if(this.plasmaNode != null) UniNodespace.destroyNode(worldObj, plasmaNode); + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 4, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionKlystron.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionKlystron.java index 812946dd9..fe497cd3b 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionKlystron.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionKlystron.java @@ -8,6 +8,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIFusionKlystron; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.uninos.GenNode; @@ -48,6 +50,8 @@ public class TileEntityFusionKlystron extends TileEntityMachineBase implements I public FluidTank compair; + private AudioWrapper audio; + public TileEntityFusionKlystron() { super(1); @@ -139,6 +143,27 @@ public class TileEntityFusionKlystron extends TileEntityMachineBase implements I this.fan -= 360F; this.prevFan -= 360F; } + + if(this.fanSpeed > 0 && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 2.5, zCoord + 0.5) < 30 * 30) { + + float speed = this.fanSpeed / 5F; + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.fel", xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, getVolume(speed), 15F, speed, 20); + audio.startSound(); + } else { + audio.updateVolume(getVolume(speed)); + audio.updatePitch(speed); + audio.keepAlive(); + } + + } else { + + if(audio != null) { + if(audio.isPlaying()) audio.stopSound(); + audio = null; + } + } } } @@ -153,10 +178,25 @@ public class TileEntityFusionKlystron extends TileEntityMachineBase implements I }; } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + @Override public void invalidate() { super.invalidate(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + if(!worldObj.isRemote) { if(this.klystronNode != null) UniNodespace.destroyNode(worldObj, klystronNode); } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java index 1a40e8465..b286656e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine.fusion; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.uninos.GenNode; import com.hbm.uninos.UniNodespace; @@ -36,6 +38,8 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg public static final int COOLANT_USE = 50; public FluidTank[] tanks; + + private AudioWrapper audio; public TileEntityFusionMHDT() { this.tanks = new FluidTank[2]; @@ -94,6 +98,27 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg this.rotor -= 360F; this.prevRotor -= 360F; } + + if(this.rotorSpeed > 0 && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 2.5, zCoord + 0.5) < 30 * 30) { + + float speed = this.rotorSpeed / 15F; + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord + 0.5F, yCoord + 1.5F, zCoord + 0.5F, getVolume(speed), 20F, speed, 20); + audio.startSound(); + } else { + audio.updateVolume(getVolume(speed)); + audio.updatePitch(speed); + audio.keepAlive(); + } + + } else { + + if(audio != null) { + if(audio.isPlaying()) audio.stopSound(); + audio = null; + } + } } } @@ -149,10 +174,25 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg this.tanks[1].writeToNBT(nbt, "t1"); } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + @Override public void invalidate() { super.invalidate(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + if(!worldObj.isRemote) { if(this.plasmaNode != null) UniNodespace.destroyNode(worldObj, plasmaNode); } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java index 24be38ed9..a09de51d1 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java @@ -10,7 +10,9 @@ import com.hbm.inventory.gui.GUIFusionTorus; import com.hbm.inventory.recipes.FusionRecipe; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.module.machine.ModuleMachineFusion; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.machine.albion.TileEntityCooledBase; @@ -54,6 +56,8 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP public float prevMagnet; public float magnetSpeed; public static final float MAGNET_ACCELERATION = 0.25F; + + private AudioWrapper audio; public TileEntityFusionTorus() { super(3); @@ -205,6 +209,27 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP this.magnet -= 360F; this.prevMagnet -= 360F; } + + if(this.magnetSpeed > 0 && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 2.5, zCoord + 0.5) < 50 * 50) { + + float speed = this.magnetSpeed / 30F; + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.fusionReactorRunning", xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, getVolume(speed), 30F, speed, 20); + audio.startSound(); + } else { + audio.updateVolume(getVolume(speed)); + audio.updatePitch(speed); + audio.keepAlive(); + } + + } else { + + if(audio != null) { + if(audio.isPlaying()) audio.stopSound(); + audio = null; + } + } } } @@ -228,10 +253,25 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP return node; } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + @Override public void invalidate() { super.invalidate(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + if(!worldObj.isRemote) { for(GenNode node : klystronNodes) if(node != null) UniNodespace.destroyNode(worldObj, node); for(GenNode node : plasmaNodes) if(node != null) UniNodespace.destroyNode(worldObj, node); diff --git a/src/main/resources/assets/hbm/models/fusion/coupler.obj b/src/main/resources/assets/hbm/models/fusion/coupler.obj new file mode 100644 index 000000000..3190ff89f --- /dev/null +++ b/src/main/resources/assets/hbm/models/fusion/coupler.obj @@ -0,0 +1,1119 @@ +# Blender v2.79 (sub 0) OBJ File: 'coupler.blend' +# www.blender.org +o Coupler +v -1.500000 2.500000 1.500001 +v -1.500000 3.250000 1.299039 +v -1.500000 3.799038 0.750001 +v -1.500000 4.000000 0.000001 +v -1.500000 3.799038 -0.749999 +v -1.500000 3.250000 -1.299037 +v -1.500000 2.500000 -1.499999 +v -1.500000 1.750000 -1.299038 +v -1.500000 1.200962 -0.750000 +v -1.500000 1.000000 -0.000000 +v -1.500000 1.200961 0.750000 +v -1.500000 1.749999 1.299038 +v -1.250000 3.250000 1.299039 +v -1.250000 2.500000 1.500001 +v -1.250000 3.799038 0.750001 +v -1.250000 4.000000 0.000001 +v -1.250000 3.799038 -0.749999 +v -1.250000 3.250000 -1.299037 +v -1.250000 2.500000 -1.499999 +v -1.250000 1.750000 -1.299037 +v -1.250000 1.200962 -0.750000 +v -1.250000 1.000000 0.000000 +v -1.250000 1.200961 0.750000 +v -1.250000 1.749999 1.299038 +v -1.250000 1.999999 0.866026 +v -1.250000 1.633974 0.500000 +v -1.250000 1.500000 0.000000 +v -1.250000 1.633975 -0.500000 +v -1.250000 2.000000 -0.866025 +v -1.250000 2.500000 -0.999999 +v -1.250000 3.000000 -0.866025 +v -1.250000 3.366025 -0.499999 +v -1.250000 3.500000 0.000001 +v -1.250000 3.366026 0.500001 +v -1.250000 3.000000 0.866026 +v -1.250000 2.500000 1.000000 +v -1.000000 1.999999 0.866026 +v -1.000000 1.633974 0.500000 +v -1.000000 1.500000 0.000000 +v -1.000000 1.633975 -0.500000 +v -1.000000 2.000000 -0.866025 +v -1.000000 2.500000 -0.999999 +v -1.000000 3.000000 -0.866025 +v -1.000000 3.366025 -0.499999 +v -1.000000 3.500000 0.000001 +v -1.000000 3.366026 0.500001 +v -1.000000 3.000000 0.866026 +v -1.000000 2.500000 1.000000 +v -1.500000 2.500000 1.000000 +v -1.500000 3.000000 0.866026 +v -1.500000 3.366025 0.500000 +v -1.500000 3.500000 0.000000 +v -1.500000 3.366025 -0.500000 +v -1.500000 3.000000 -0.866025 +v -1.500000 2.500000 -1.000000 +v -1.500000 2.000000 -0.866025 +v -1.500000 1.633975 -0.500000 +v -1.500000 1.500000 -0.000000 +v -1.500000 1.633974 0.500000 +v -1.500000 1.999999 0.866025 +v -1.500000 2.500000 0.750000 +v -1.500000 2.875000 0.649519 +v -1.500000 3.149519 0.375000 +v -1.500000 3.250000 0.000000 +v -1.500000 3.149519 -0.375000 +v -1.500000 2.875000 -0.649518 +v -1.500000 2.500000 -0.750000 +v -1.500000 2.125000 -0.649519 +v -1.500000 1.850481 -0.375000 +v -1.500000 1.750000 0.000000 +v -1.500000 1.850481 0.375000 +v -1.500000 2.125000 0.649519 +v -1.375000 3.000000 0.866026 +v -1.375000 2.500000 1.000000 +v -1.375000 3.366025 0.500000 +v -1.375000 3.500000 0.000000 +v -1.375000 3.366025 -0.500000 +v -1.375000 3.000000 -0.866025 +v -1.375000 2.500000 -1.000000 +v -1.375000 2.000000 -0.866025 +v -1.375000 1.633975 -0.500000 +v -1.375000 1.500000 -0.000000 +v -1.375000 1.633974 0.500000 +v -1.375000 1.999999 0.866025 +v -1.375000 2.875000 0.649519 +v -1.375000 2.500000 0.750000 +v -1.375000 3.149519 0.375000 +v -1.375000 3.250000 0.000000 +v -1.375000 3.149519 -0.375000 +v -1.375000 2.875000 -0.649518 +v -1.375000 2.500000 -0.750000 +v -1.375000 2.125000 -0.649519 +v -1.375000 1.850481 -0.375000 +v -1.375000 1.750000 0.000000 +v -1.375000 1.850481 0.375000 +v -1.375000 2.125000 0.649519 +v -1.500000 2.500000 0.000000 +v 1.500000 2.500000 -1.500000 +v 1.500000 3.250000 -1.299038 +v 1.500000 3.799038 -0.750000 +v 1.500000 4.000000 0.000000 +v 1.500000 3.799038 0.750000 +v 1.500000 3.250000 1.299038 +v 1.500000 2.500000 1.500000 +v 1.500000 1.750000 1.299038 +v 1.500000 1.200962 0.750000 +v 1.500000 1.000000 0.000001 +v 1.500000 1.200961 -0.749999 +v 1.500000 1.749999 -1.299038 +v 1.250000 3.250000 -1.299038 +v 1.250000 2.500000 -1.500000 +v 1.250000 3.799038 -0.750000 +v 1.250000 4.000000 -0.000000 +v 1.250000 3.799038 0.750000 +v 1.250000 3.250000 1.299038 +v 1.250000 2.500000 1.500000 +v 1.250000 1.750000 1.299038 +v 1.250000 1.200962 0.750000 +v 1.250000 1.000000 0.000000 +v 1.250000 1.200961 -0.749999 +v 1.250000 1.749999 -1.299038 +v 1.250000 1.999999 -0.866025 +v 1.250000 1.633974 -0.500000 +v 1.250000 1.500000 0.000000 +v 1.250000 1.633975 0.500000 +v 1.250000 2.000000 0.866025 +v 1.250000 2.500000 1.000000 +v 1.250000 3.000000 0.866025 +v 1.250000 3.366025 0.500000 +v 1.250000 3.500000 -0.000000 +v 1.250000 3.366026 -0.500000 +v 1.250000 3.000000 -0.866025 +v 1.250000 2.500000 -1.000000 +v 1.000000 1.999999 -0.866025 +v 1.000000 1.633974 -0.500000 +v 1.000000 1.500000 0.000000 +v 1.000000 1.633975 0.500000 +v 1.000000 2.000000 0.866025 +v 1.000000 2.500000 1.000000 +v 1.000000 3.000000 0.866025 +v 1.000000 3.366025 0.500000 +v 1.000000 3.500000 -0.000000 +v 1.000000 3.366026 -0.500000 +v 1.000000 3.000000 -0.866025 +v 1.000000 2.500000 -1.000000 +v 1.500000 2.500000 -1.000000 +v 1.500000 3.000000 -0.866025 +v 1.500000 3.366025 -0.500000 +v 1.500000 3.500000 0.000000 +v 1.500000 3.366025 0.500000 +v 1.500000 3.000000 0.866026 +v 1.500000 2.500000 1.000000 +v 1.500000 2.000000 0.866026 +v 1.500000 1.633975 0.500000 +v 1.500000 1.500000 0.000001 +v 1.500000 1.633974 -0.499999 +v 1.500000 1.999999 -0.866025 +v 1.500000 2.500000 -0.750000 +v 1.500000 2.875000 -0.649519 +v 1.500000 3.149519 -0.375000 +v 1.500000 3.250000 0.000000 +v 1.500000 3.149519 0.375000 +v 1.500000 2.875000 0.649519 +v 1.500000 2.500000 0.750000 +v 1.500000 2.125000 0.649519 +v 1.500000 1.850481 0.375000 +v 1.500000 1.750000 0.000001 +v 1.500000 1.850481 -0.374999 +v 1.500000 2.125000 -0.649519 +v 1.375000 3.000000 -0.866025 +v 1.375000 2.500000 -1.000000 +v 1.375000 3.366025 -0.500000 +v 1.375000 3.500000 0.000000 +v 1.375000 3.366025 0.500000 +v 1.375000 3.000000 0.866026 +v 1.375000 2.500000 1.000000 +v 1.375000 2.000000 0.866026 +v 1.375000 1.633975 0.500000 +v 1.375000 1.500000 0.000001 +v 1.375000 1.633974 -0.499999 +v 1.375000 1.999999 -0.866025 +v 1.375000 2.875000 -0.649519 +v 1.375000 2.500000 -0.750000 +v 1.375000 3.149519 -0.375000 +v 1.375000 3.250000 0.000000 +v 1.375000 3.149519 0.375000 +v 1.375000 2.875000 0.649519 +v 1.375000 2.500000 0.750000 +v 1.375000 2.125000 0.649519 +v 1.375000 1.850481 0.375000 +v 1.375000 1.750000 0.000001 +v 1.375000 1.850481 -0.374999 +v 1.375000 2.125000 -0.649519 +v 1.500000 2.500000 0.000000 +v -1.000000 2.500000 -1.500000 +v 1.000000 2.500000 -1.500000 +v -1.000000 1.750000 -1.299038 +v 1.000000 1.750000 -1.299038 +v -1.000000 1.200962 -0.750000 +v 1.000000 1.200962 -0.750000 +v -1.000000 1.000000 0.000000 +v 1.000000 1.000000 0.000000 +v -1.000000 1.200962 0.750000 +v 1.000000 1.200962 0.750000 +v -1.000000 1.750000 1.299038 +v 1.000000 1.750000 1.299038 +v -1.000000 2.500000 1.500000 +v 1.000000 2.500000 1.500000 +v -1.000000 3.250000 1.299039 +v 1.000000 3.250000 1.299039 +v -1.000000 3.799038 0.750001 +v 1.000000 3.799038 0.750001 +v -1.000000 4.000000 0.000001 +v 1.000000 4.000000 0.000001 +v -1.000000 3.799038 -0.749999 +v 1.000000 3.799038 -0.749999 +v -1.000000 3.250001 -1.299037 +v 1.000000 3.250001 -1.299037 +v -1.500000 0.000000 1.000000 +v 1.500000 0.000000 1.000000 +v -1.500000 0.000000 -1.000000 +v 1.500000 0.000000 -1.000000 +v -1.500000 0.250000 -1.000000 +v -1.500000 0.250000 1.000000 +v 1.500000 0.250000 1.000000 +v 1.500000 0.250000 -1.000000 +v -1.125000 0.250000 0.250000 +v 1.125000 0.250000 0.250000 +v -1.125000 0.250000 -0.250000 +v 1.125000 0.250000 -0.250000 +v -1.125000 1.625000 0.250000 +v 1.125000 1.625000 0.250000 +v -1.125000 1.625000 -0.250000 +v 1.125000 1.625000 -0.250000 +vt 0.181818 0.216867 +vt 0.227273 0.277108 +vt 0.181818 0.289157 +vt 0.227273 0.301205 +vt 0.181818 0.361446 +vt 0.227273 0.373494 +vt 0.181818 0.433735 +vt 0.227273 0.445783 +vt 0.181818 0.506024 +vt 0.227273 0.518072 +vt 0.181818 0.578313 +vt 0.227273 0.590361 +vt 0.181818 0.650602 +vt 0.227273 0.662651 +vt 0.181818 0.722892 +vt 0.227273 0.734940 +vt 0.181818 0.795181 +vt 0.227273 0.855422 +vt 0.181818 0.867470 +vt 0.181818 -0.000000 +vt 0.227273 0.060241 +vt 0.181818 0.072289 +vt 0.227273 0.132530 +vt 0.181818 0.144578 +vt 0.227273 0.156627 +vt 0.159091 0.650602 +vt 0.113636 0.590361 +vt 0.159091 0.578313 +vt 0.113636 0.518072 +vt 0.159091 0.506024 +vt 0.113636 0.445783 +vt 0.159091 0.433735 +vt 0.113636 0.373494 +vt 0.159091 0.361446 +vt 0.113636 0.301205 +vt 0.159091 0.289157 +vt 0.113636 0.228916 +vt 0.159091 0.216867 +vt 0.113636 0.156627 +vt 0.159091 0.144578 +vt 0.159091 0.072289 +vt 0.113636 0.132530 +vt 0.113636 0.084337 +vt 0.159091 -0.000000 +vt 0.113636 0.060241 +vt 0.113636 0.012048 +vt 0.159091 0.795181 +vt 0.113636 0.855422 +vt 0.113636 0.807229 +vt 0.113636 0.734940 +vt 0.159091 0.722892 +vt 0.113636 0.662651 +vt 0.102273 0.590361 +vt 0.079545 0.632530 +vt 0.079545 0.596386 +vt 0.102273 0.566265 +vt 0.079545 0.524096 +vt 0.102273 0.518072 +vt 0.102273 0.493976 +vt 0.079545 0.451807 +vt 0.102273 0.445783 +vt 0.102273 0.373494 +vt 0.079545 0.415663 +vt 0.079545 0.379518 +vt 0.102273 0.349398 +vt 0.079545 0.307229 +vt 0.102273 0.301205 +vt 0.102273 0.228916 +vt 0.079545 0.271084 +vt 0.079545 0.234940 +vt 0.102273 0.204819 +vt 0.079545 0.162651 +vt 0.102273 0.156627 +vt 0.102273 0.132530 +vt 0.079545 0.090361 +vt 0.102273 0.084337 +vt 0.102273 0.060241 +vt 0.079545 0.018072 +vt 0.102273 0.012048 +vt 0.102273 0.807229 +vt 0.079545 0.849398 +vt 0.079545 0.813253 +vt 0.102273 0.783133 +vt 0.079545 0.740964 +vt 0.102273 0.734940 +vt 0.102273 0.710843 +vt 0.079545 0.668675 +vt 0.102273 0.662651 +vt 0.068182 0.307229 +vt 0.068182 0.343374 +vt 0.000000 0.325301 +vt 0.068182 0.379518 +vt 0.068182 0.415663 +vt 0.000000 0.397590 +vt 0.068182 0.451807 +vt 0.068182 0.487952 +vt 0.000000 0.469880 +vt 0.068182 0.524096 +vt 0.068182 0.560241 +vt 0.000000 0.542169 +vt 0.068182 0.596386 +vt 0.068182 0.632530 +vt 0.000000 0.614458 +vt 0.068182 0.668675 +vt 0.068182 0.704819 +vt 0.000000 0.686747 +vt 0.068182 0.740964 +vt 0.068182 0.777108 +vt 0.000000 0.759036 +vt 0.068182 0.813253 +vt 0.068182 0.849398 +vt 0.000000 0.831325 +vt 0.068182 0.018072 +vt 0.068182 0.054217 +vt 0.000000 0.036145 +vt 0.068182 0.090361 +vt 0.068182 0.126506 +vt 0.000000 0.108434 +vt 0.068182 0.162651 +vt 0.068182 0.198795 +vt 0.000000 0.180723 +vt 0.068182 0.234940 +vt 0.068182 0.271084 +vt 0.000000 0.253012 +vt 0.545455 0.638554 +vt 0.590909 0.578313 +vt 0.590909 0.650602 +vt 0.545455 0.566265 +vt 0.590909 0.506024 +vt 0.545455 0.493976 +vt 0.590909 0.433735 +vt 0.545455 0.421687 +vt 0.590909 0.361446 +vt 0.545455 0.349398 +vt 0.590909 0.289157 +vt 0.545455 0.277108 +vt 0.590909 0.216867 +vt 0.545455 0.204819 +vt 0.590909 0.144578 +vt 0.545455 0.132530 +vt 0.590909 0.072289 +vt 0.545455 0.012048 +vt 0.590909 0.000000 +vt 0.590909 0.867470 +vt 0.545455 0.807229 +vt 0.590909 0.795181 +vt 0.545455 0.734940 +vt 0.590909 0.722892 +vt 0.545455 0.710843 +vt 0.613636 0.216867 +vt 0.659091 0.277108 +vt 0.613636 0.289157 +vt 0.659091 0.349398 +vt 0.613636 0.361446 +vt 0.659091 0.421687 +vt 0.613636 0.433735 +vt 0.659091 0.493976 +vt 0.613636 0.506024 +vt 0.659091 0.566265 +vt 0.613636 0.578313 +vt 0.659091 0.638554 +vt 0.613636 0.650602 +vt 0.613636 0.722892 +vt 0.659091 0.662651 +vt 0.659091 0.710843 +vt 0.613636 0.795181 +vt 0.659091 0.734940 +vt 0.659091 0.783133 +vt 0.613636 0.867470 +vt 0.659091 0.807229 +vt 0.659091 0.855422 +vt 0.613636 0.072289 +vt 0.659091 0.012048 +vt 0.659091 0.060241 +vt 0.659091 0.132530 +vt 0.613636 0.144578 +vt 0.659091 0.204819 +vt 0.670455 0.228916 +vt 0.693182 0.271084 +vt 0.670455 0.277108 +vt 0.670455 0.301205 +vt 0.693182 0.343374 +vt 0.670455 0.349398 +vt 0.670455 0.373494 +vt 0.693182 0.415663 +vt 0.670455 0.421687 +vt 0.670455 0.493976 +vt 0.693182 0.451807 +vt 0.693182 0.487952 +vt 0.670455 0.566265 +vt 0.693182 0.524096 +vt 0.693182 0.560241 +vt 0.670455 0.590361 +vt 0.693182 0.632530 +vt 0.670455 0.638554 +vt 0.670455 0.662651 +vt 0.693182 0.704819 +vt 0.670455 0.710843 +vt 0.670455 0.734940 +vt 0.693182 0.777108 +vt 0.670455 0.783133 +vt 0.670455 0.807229 +vt 0.693182 0.849398 +vt 0.670455 0.855422 +vt 0.670455 0.012048 +vt 0.693182 0.054217 +vt 0.670455 0.060241 +vt 0.670455 0.084337 +vt 0.693182 0.126506 +vt 0.670455 0.132530 +vt 0.670455 0.156627 +vt 0.693182 0.198795 +vt 0.670455 0.204819 +vt 0.704545 0.560241 +vt 0.704545 0.524096 +vt 0.772727 0.542169 +vt 0.704545 0.487952 +vt 0.704545 0.451807 +vt 0.772727 0.469880 +vt 0.704545 0.415663 +vt 0.704545 0.379518 +vt 0.772727 0.397590 +vt 0.704545 0.343374 +vt 0.704545 0.307229 +vt 0.772727 0.325301 +vt 0.704545 0.271084 +vt 0.704545 0.234940 +vt 0.772727 0.253012 +vt 0.704545 0.198795 +vt 0.704545 0.162651 +vt 0.772727 0.180723 +vt 0.704545 0.126506 +vt 0.704545 0.090361 +vt 0.772727 0.108434 +vt 0.704545 0.054217 +vt 0.704545 0.018072 +vt 0.772727 0.036145 +vt 0.704545 0.849398 +vt 0.704545 0.813253 +vt 0.772727 0.831325 +vt 0.704545 0.777108 +vt 0.704545 0.740964 +vt 0.772727 0.759036 +vt 0.704545 0.704819 +vt 0.704545 0.668675 +vt 0.772727 0.686747 +vt 0.704545 0.632530 +vt 0.704545 0.596386 +vt 0.772727 0.614458 +vt 0.522727 0.156627 +vt 0.477273 0.216867 +vt 0.477273 0.144578 +vt 0.522727 0.228916 +vt 0.477273 0.289157 +vt 0.250000 0.204819 +vt 0.295455 0.144578 +vt 0.295455 0.216867 +vt 0.522727 0.012048 +vt 0.477273 0.072289 +vt 0.477273 -0.000000 +vt 0.250000 0.132530 +vt 0.295455 0.072289 +vt 0.522727 0.807229 +vt 0.477273 0.867470 +vt 0.477273 0.795181 +vt 0.250000 0.060241 +vt 0.295455 0.000000 +vt 0.522727 0.734940 +vt 0.477273 0.722892 +vt 0.250000 0.855422 +vt 0.295455 0.795181 +vt 0.295455 0.867470 +vt 0.522727 0.662651 +vt 0.477273 0.650602 +vt 0.250000 0.734940 +vt 0.250000 0.783133 +vt 0.522727 0.590361 +vt 0.477273 0.578313 +vt 0.250000 0.662651 +vt 0.295455 0.722892 +vt 0.250000 0.710843 +vt 0.522727 0.518072 +vt 0.477273 0.506024 +vt 0.250000 0.590361 +vt 0.295455 0.650602 +vt 0.250000 0.638554 +vt 0.522727 0.445783 +vt 0.477273 0.433735 +vt 0.250000 0.518072 +vt 0.295455 0.578313 +vt 0.250000 0.566265 +vt 0.522727 0.373494 +vt 0.477273 0.361446 +vt 0.250000 0.445783 +vt 0.295455 0.506024 +vt 0.250000 0.493976 +vt 0.250000 0.301205 +vt 0.295455 0.361446 +vt 0.250000 0.349398 +vt 0.250000 0.373494 +vt 0.295455 0.433735 +vt 0.250000 0.421687 +vt 0.522727 0.132530 +vt 0.522727 0.084337 +vt 0.522727 0.301205 +vt 0.250000 0.228916 +vt 0.295455 0.289157 +vt 0.250000 0.277108 +vt 0.977273 0.000000 +vt 0.795455 0.289157 +vt 0.795455 0.000000 +vt 0.795455 0.313253 +vt 0.977273 0.602410 +vt 0.795455 0.602410 +vt 0.977273 0.289157 +vt 0.795455 0.626506 +vt 0.977273 0.626506 +vt 1.000000 0.602410 +vt 0.977273 0.313253 +vt 1.000000 0.313253 +vt 0.772727 0.313253 +vt 0.772727 0.602410 +vt 0.500000 1.000000 +vt 0.295455 0.867470 +vt 0.500000 0.867470 +vt 0.250000 1.000000 +vt 0.045455 0.867470 +vt 0.250000 0.867470 +vt 0.295455 1.000000 +vt 0.045455 1.000000 +vt -0.000000 0.867470 +vt 0.227273 0.228916 +vt 0.227273 0.349398 +vt 0.227273 0.421687 +vt 0.227273 0.493976 +vt 0.227273 0.566265 +vt 0.227273 0.638554 +vt 0.227273 0.710843 +vt 0.227273 0.783133 +vt 0.227273 0.807229 +vt 0.227273 0.012048 +vt 0.227273 0.084337 +vt 0.227273 0.204819 +vt 0.113636 0.638554 +vt 0.113636 0.566265 +vt 0.113636 0.493976 +vt 0.113636 0.421687 +vt 0.113636 0.349398 +vt 0.113636 0.277108 +vt 0.113636 0.204819 +vt 0.159091 0.867470 +vt 0.113636 0.783133 +vt 0.113636 0.710843 +vt 0.102273 0.638554 +vt 0.079545 0.560241 +vt 0.079545 0.487952 +vt 0.102273 0.421687 +vt 0.079545 0.343374 +vt 0.102273 0.277108 +vt 0.079545 0.198795 +vt 0.079545 0.126506 +vt 0.079545 0.054217 +vt 0.102273 0.855422 +vt 0.079545 0.777108 +vt 0.079545 0.704819 +vt 0.545455 0.590361 +vt 0.545455 0.518072 +vt 0.545455 0.445783 +vt 0.545455 0.373494 +vt 0.545455 0.301205 +vt 0.545455 0.228916 +vt 0.545455 0.156627 +vt 0.545455 0.084337 +vt 0.545455 0.060241 +vt 0.545455 0.855422 +vt 0.545455 0.783133 +vt 0.545455 0.662651 +vt 0.659091 0.228916 +vt 0.659091 0.301205 +vt 0.659091 0.373494 +vt 0.659091 0.445783 +vt 0.659091 0.518072 +vt 0.659091 0.590361 +vt 0.613636 0.000000 +vt 0.659091 0.084337 +vt 0.659091 0.156627 +vt 0.693182 0.234940 +vt 0.693182 0.307229 +vt 0.693182 0.379518 +vt 0.670455 0.445783 +vt 0.670455 0.518072 +vt 0.693182 0.596386 +vt 0.693182 0.668675 +vt 0.693182 0.740964 +vt 0.693182 0.813253 +vt 0.693182 0.018072 +vt 0.693182 0.090361 +vt 0.693182 0.162651 +vt 0.522727 0.204819 +vt 0.522727 0.277108 +vt 0.250000 0.156627 +vt 0.522727 0.060241 +vt 0.250000 0.084337 +vt 0.522727 0.855422 +vt 0.250000 0.012048 +vt 0.522727 0.783133 +vt 0.250000 0.807229 +vt 0.522727 0.710843 +vt 0.522727 0.638554 +vt 0.522727 0.566265 +vt 0.522727 0.493976 +vt 0.522727 0.421687 +vt 0.522727 0.349398 +vt -0.000000 1.000000 +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.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn -0.0000 -0.5000 0.8660 +vn -0.0000 0.5000 0.8660 +vn -0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn -0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 -0.8660 +s off +f 14/1/1 35/2/1 13/3/1 +f 35/4/1 15/5/1 13/3/1 +f 34/6/1 16/7/1 15/5/1 +f 33/8/1 17/9/1 16/7/1 +f 32/10/1 18/11/1 17/9/1 +f 31/12/1 19/13/1 18/11/1 +f 30/14/1 20/15/1 19/13/1 +f 29/16/1 21/17/1 20/15/1 +f 21/17/1 27/18/1 22/19/1 +f 22/20/1 26/21/1 23/22/1 +f 23/22/1 25/23/1 24/24/1 +f 25/25/1 14/1/1 24/24/1 +f 7/26/2 54/27/2 6/28/2 +f 6/28/2 53/29/2 5/30/2 +f 5/30/2 52/31/2 4/32/2 +f 4/32/2 51/33/2 3/34/2 +f 3/34/2 50/35/2 2/36/2 +f 2/36/2 49/37/2 1/38/2 +f 1/38/2 60/39/2 12/40/2 +f 11/41/2 60/42/2 59/43/2 +f 10/44/2 59/45/2 58/46/2 +f 9/47/2 58/48/2 57/49/2 +f 9/47/2 56/50/2 8/51/2 +f 8/51/2 55/52/2 7/26/2 +f 78/53/2 91/54/2 90/55/2 +f 78/56/2 89/57/2 77/58/2 +f 77/59/2 88/60/2 76/61/2 +f 75/62/2 88/63/2 87/64/2 +f 75/65/2 85/66/2 73/67/2 +f 74/68/2 85/69/2 86/70/2 +f 74/71/2 96/72/2 84/73/2 +f 84/74/2 95/75/2 83/76/2 +f 83/77/2 94/78/2 82/79/2 +f 81/80/2 94/81/2 93/82/2 +f 81/83/2 92/84/2 80/85/2 +f 80/86/2 91/87/2 79/88/2 +f 62/89/2 63/90/2 97/91/2 +f 63/92/2 64/93/2 97/94/2 +f 64/95/2 65/96/2 97/97/2 +f 65/98/2 66/99/2 97/100/2 +f 66/101/2 67/102/2 97/103/2 +f 67/104/2 68/105/2 97/106/2 +f 68/107/2 69/108/2 97/109/2 +f 69/110/2 70/111/2 97/112/2 +f 70/113/2 71/114/2 97/115/2 +f 71/116/2 72/117/2 97/118/2 +f 72/119/2 61/120/2 97/121/2 +f 61/122/2 62/123/2 97/124/2 +f 133/125/2 110/126/2 111/127/2 +f 132/128/2 112/129/2 110/126/2 +f 131/130/2 113/131/2 112/129/2 +f 130/132/2 114/133/2 113/131/2 +f 129/134/2 115/135/2 114/133/2 +f 128/136/2 116/137/2 115/135/2 +f 127/138/2 117/139/2 116/137/2 +f 126/140/2 118/141/2 117/139/2 +f 118/141/2 124/142/2 119/143/2 +f 119/144/2 123/145/2 120/146/2 +f 120/146/2 122/147/2 121/148/2 +f 122/149/2 111/127/2 121/148/2 +f 104/150/1 151/151/1 103/152/1 +f 103/152/1 150/153/1 102/154/1 +f 102/154/1 149/155/1 101/156/1 +f 101/156/1 148/157/1 100/158/1 +f 100/158/1 147/159/1 99/160/1 +f 99/160/1 146/161/1 98/162/1 +f 109/163/1 146/164/1 157/165/1 +f 108/166/1 157/167/1 156/168/1 +f 107/169/1 156/170/1 155/171/1 +f 106/172/1 155/173/1 154/174/1 +f 106/172/1 153/175/1 105/176/1 +f 105/176/1 152/177/1 104/150/1 +f 176/178/1 187/179/1 175/180/1 +f 175/181/1 186/182/1 174/183/1 +f 174/184/1 185/185/1 173/186/1 +f 172/187/1 185/188/1 184/189/1 +f 170/190/1 184/191/1 182/192/1 +f 170/193/1 183/194/1 171/195/1 +f 171/196/1 193/197/1 181/198/1 +f 181/199/1 192/200/1 180/201/1 +f 180/202/1 191/203/1 179/204/1 +f 179/205/1 190/206/1 178/207/1 +f 178/208/1 189/209/1 177/210/1 +f 177/211/1 188/212/1 176/213/1 +f 159/214/1 160/215/1 194/216/1 +f 160/217/1 161/218/1 194/219/1 +f 161/220/1 162/221/1 194/222/1 +f 162/223/1 163/224/1 194/225/1 +f 163/226/1 164/227/1 194/228/1 +f 164/229/1 165/230/1 194/231/1 +f 165/232/1 166/233/1 194/234/1 +f 166/235/1 167/236/1 194/237/1 +f 167/238/1 168/239/1 194/240/1 +f 168/241/1 169/242/1 194/243/1 +f 169/244/1 158/245/1 194/246/1 +f 158/247/1 159/248/1 194/249/1 +f 138/250/1 208/251/1 206/252/1 +f 139/253/1 210/254/1 208/251/1 +f 48/255/2 205/256/2 207/257/2 +f 136/258/1 204/259/1 202/260/1 +f 37/261/2 203/262/2 205/256/2 +f 135/263/1 202/264/1 200/265/1 +f 38/266/2 201/267/2 203/262/2 +f 134/268/1 200/265/1 198/269/1 +f 39/270/2 199/271/2 201/272/2 +f 145/273/1 198/269/1 196/274/1 +f 41/275/2 199/271/2 40/276/2 +f 144/277/1 196/274/1 218/278/1 +f 42/279/2 197/280/2 41/281/2 +f 143/282/1 218/278/1 216/283/1 +f 43/284/2 195/285/2 42/286/2 +f 142/287/1 216/283/1 214/288/1 +f 44/289/2 217/290/2 43/291/2 +f 141/292/1 214/288/1 212/293/1 +f 45/294/2 215/295/2 44/296/2 +f 47/297/2 211/298/2 46/299/2 +f 46/300/2 213/301/2 45/302/2 +f 138/303/1 204/259/1 137/304/1 +f 140/305/1 212/293/1 210/254/1 +f 48/306/2 209/307/2 47/308/2 +f 221/309/3 220/310/3 219/311/3 +f 225/312/4 223/313/4 224/314/4 +f 222/315/1 225/312/1 220/310/1 +f 219/316/2 223/313/2 221/317/2 +f 221/318/5 226/319/5 222/320/5 +f 220/321/6 224/314/6 219/322/6 +f 233/323/5 230/324/5 229/325/5 +f 232/326/6 227/327/6 228/328/6 +f 234/329/1 228/328/1 230/324/1 +f 231/330/2 229/331/2 227/327/2 +f 14/1/1 36/332/1 35/2/1 +f 35/4/1 34/333/1 15/5/1 +f 34/6/1 33/334/1 16/7/1 +f 33/8/1 32/335/1 17/9/1 +f 32/10/1 31/336/1 18/11/1 +f 31/12/1 30/337/1 19/13/1 +f 30/14/1 29/338/1 20/15/1 +f 29/16/1 28/339/1 21/17/1 +f 21/17/1 28/340/1 27/18/1 +f 22/20/1 27/341/1 26/21/1 +f 23/22/1 26/342/1 25/23/1 +f 25/25/1 36/343/1 14/1/1 +f 7/26/2 55/344/2 54/27/2 +f 6/28/2 54/345/2 53/29/2 +f 5/30/2 53/346/2 52/31/2 +f 4/32/2 52/347/2 51/33/2 +f 3/34/2 51/348/2 50/35/2 +f 2/36/2 50/349/2 49/37/2 +f 1/38/2 49/350/2 60/39/2 +f 11/41/2 12/40/2 60/42/2 +f 10/44/2 11/41/2 59/45/2 +f 9/47/2 10/351/2 58/48/2 +f 9/47/2 57/352/2 56/50/2 +f 8/51/2 56/353/2 55/52/2 +f 78/53/2 79/354/2 91/54/2 +f 78/56/2 90/355/2 89/57/2 +f 77/59/2 89/356/2 88/60/2 +f 75/62/2 76/357/2 88/63/2 +f 75/65/2 87/358/2 85/66/2 +f 74/68/2 73/359/2 85/69/2 +f 74/71/2 86/360/2 96/72/2 +f 84/74/2 96/361/2 95/75/2 +f 83/77/2 95/362/2 94/78/2 +f 81/80/2 82/363/2 94/81/2 +f 81/83/2 93/364/2 92/84/2 +f 80/86/2 92/365/2 91/87/2 +f 133/125/2 132/366/2 110/126/2 +f 132/128/2 131/367/2 112/129/2 +f 131/130/2 130/368/2 113/131/2 +f 130/132/2 129/369/2 114/133/2 +f 129/134/2 128/370/2 115/135/2 +f 128/136/2 127/371/2 116/137/2 +f 127/138/2 126/372/2 117/139/2 +f 126/140/2 125/373/2 118/141/2 +f 118/141/2 125/374/2 124/142/2 +f 119/144/2 124/375/2 123/145/2 +f 120/146/2 123/376/2 122/147/2 +f 122/149/2 133/377/2 111/127/2 +f 104/150/1 152/378/1 151/151/1 +f 103/152/1 151/379/1 150/153/1 +f 102/154/1 150/380/1 149/155/1 +f 101/156/1 149/381/1 148/157/1 +f 100/158/1 148/382/1 147/159/1 +f 99/160/1 147/383/1 146/161/1 +f 109/163/1 98/162/1 146/164/1 +f 108/166/1 109/163/1 157/167/1 +f 107/169/1 108/166/1 156/170/1 +f 106/172/1 107/384/1 155/173/1 +f 106/172/1 154/385/1 153/175/1 +f 105/176/1 153/386/1 152/177/1 +f 176/178/1 188/387/1 187/179/1 +f 175/181/1 187/388/1 186/182/1 +f 174/184/1 186/389/1 185/185/1 +f 172/187/1 173/390/1 185/188/1 +f 170/190/1 172/391/1 184/191/1 +f 170/193/1 182/392/1 183/194/1 +f 171/196/1 183/393/1 193/197/1 +f 181/199/1 193/394/1 192/200/1 +f 180/202/1 192/395/1 191/203/1 +f 179/205/1 191/396/1 190/206/1 +f 178/208/1 190/397/1 189/209/1 +f 177/211/1 189/398/1 188/212/1 +f 138/250/1 139/399/1 208/251/1 +f 139/253/1 140/400/1 210/254/1 +f 48/255/2 37/401/2 205/256/2 +f 136/258/1 137/402/1 204/259/1 +f 37/261/2 38/403/2 203/262/2 +f 135/263/1 136/404/1 202/264/1 +f 38/266/2 39/405/2 201/267/2 +f 134/268/1 135/406/1 200/265/1 +f 39/270/2 40/407/2 199/271/2 +f 145/273/1 134/408/1 198/269/1 +f 41/275/2 197/280/2 199/271/2 +f 144/277/1 145/409/1 196/274/1 +f 42/279/2 195/285/2 197/280/2 +f 143/282/1 144/410/1 218/278/1 +f 43/284/2 217/290/2 195/285/2 +f 142/287/1 143/411/1 216/283/1 +f 44/289/2 215/295/2 217/290/2 +f 141/292/1 142/412/1 214/288/1 +f 45/294/2 213/301/2 215/295/2 +f 47/297/2 209/307/2 211/298/2 +f 46/300/2 211/298/2 213/301/2 +f 138/303/1 206/252/1 204/259/1 +f 140/305/1 141/413/1 212/293/1 +f 48/306/2 207/257/2 209/307/2 +f 221/309/3 222/315/3 220/310/3 +f 225/312/4 226/319/4 223/313/4 +f 222/315/1 226/319/1 225/312/1 +f 219/316/2 224/314/2 223/313/2 +f 221/318/5 223/313/5 226/319/5 +f 220/321/6 225/312/6 224/314/6 +f 233/323/5 234/329/5 230/324/5 +f 232/326/6 231/330/6 227/327/6 +f 234/329/1 232/326/1 228/328/1 +f 231/330/2 233/414/2 229/331/2 +s 1 +f 5/30/7 18/11/8 6/28/8 +f 12/40/9 14/1/6 1/38/6 +f 2/36/10 15/5/11 3/34/11 +f 10/351/3 21/17/12 22/19/3 +f 6/28/8 19/13/5 7/26/5 +f 3/34/11 16/7/4 4/32/4 +f 11/41/13 22/20/3 23/22/13 +f 7/26/5 20/15/14 8/51/14 +f 4/32/4 17/9/7 5/30/7 +f 12/40/9 23/22/13 24/24/9 +f 1/38/6 13/3/10 2/36/10 +f 9/47/12 20/15/14 21/17/12 +f 26/342/13 37/261/9 25/23/9 +f 32/335/7 45/294/4 44/296/7 +f 30/14/5 41/281/14 29/338/14 +f 27/341/3 38/266/13 26/21/13 +f 33/334/4 46/300/11 45/302/4 +f 31/12/8 42/286/5 30/337/5 +f 28/340/12 39/270/3 27/18/3 +f 35/4/10 46/299/11 34/333/11 +f 25/25/9 48/255/6 36/343/6 +f 32/10/7 43/291/8 31/336/8 +f 29/16/14 40/276/12 28/339/12 +f 36/332/6 47/308/10 35/2/10 +f 68/107/14 93/364/12 69/108/12 +f 54/345/9 77/58/13 53/29/13 +f 49/350/5 84/73/8 60/39/8 +f 67/104/5 92/365/14 68/105/14 +f 53/346/13 76/61/3 52/31/3 +f 60/42/8 83/76/7 59/43/7 +f 66/101/8 91/54/5 67/102/5 +f 52/347/3 75/62/12 51/33/12 +f 59/45/7 82/79/4 58/46/4 +f 65/98/7 90/355/8 66/99/8 +f 51/348/12 73/67/14 50/35/14 +f 72/119/9 86/360/6 61/120/6 +f 61/122/6 85/69/10 62/123/10 +f 55/344/6 78/53/9 54/27/9 +f 69/110/12 94/81/3 70/111/3 +f 62/89/10 87/358/11 63/90/11 +f 56/353/10 79/88/6 55/52/6 +f 70/113/3 95/362/13 71/114/13 +f 63/92/11 88/63/4 64/93/4 +f 57/352/11 80/85/10 56/50/10 +f 71/116/13 96/361/9 72/117/9 +f 50/349/14 74/68/5 49/37/5 +f 64/95/4 89/356/7 65/96/7 +f 58/48/4 81/80/11 57/49/11 +f 102/154/11 115/135/10 103/152/10 +f 98/162/5 121/148/14 111/127/5 +f 99/160/8 112/129/7 100/158/7 +f 107/384/3 118/141/13 119/143/3 +f 103/152/10 116/137/6 104/150/6 +f 100/158/7 113/131/4 101/156/4 +f 108/166/12 119/144/3 120/146/12 +f 105/176/9 116/137/6 117/139/9 +f 101/156/4 114/133/11 102/154/11 +f 109/163/14 120/146/12 121/148/14 +f 98/162/5 110/126/8 99/160/8 +f 106/172/13 117/139/9 118/141/13 +f 123/376/12 134/268/14 122/147/14 +f 130/132/4 141/292/11 129/369/11 +f 127/138/6 138/250/9 126/372/9 +f 124/375/3 135/263/12 123/145/12 +f 131/130/7 142/287/4 130/368/4 +f 128/136/10 139/253/6 127/371/6 +f 125/374/13 136/258/3 124/142/3 +f 132/128/8 143/282/7 131/367/7 +f 122/149/14 145/273/5 133/377/5 +f 129/134/11 140/305/10 128/370/10 +f 126/140/9 137/304/13 125/373/13 +f 133/125/5 144/277/8 132/366/8 +f 165/232/9 190/397/13 166/233/13 +f 151/379/14 174/183/12 150/153/12 +f 146/164/6 181/198/10 157/165/10 +f 164/229/6 189/398/9 165/230/9 +f 150/380/12 173/186/3 149/155/3 +f 157/167/10 180/201/11 156/168/11 +f 163/226/10 188/387/6 164/227/6 +f 149/381/3 172/187/13 148/157/13 +f 156/170/11 179/204/4 155/171/4 +f 162/223/11 187/388/10 163/224/10 +f 148/382/13 170/190/9 147/159/9 +f 169/244/14 183/393/5 158/245/5 +f 158/247/5 182/392/8 159/248/8 +f 152/378/5 175/180/14 151/151/14 +f 166/235/13 191/396/3 167/236/3 +f 159/214/8 184/191/7 160/215/7 +f 153/386/8 176/213/5 152/177/5 +f 167/238/3 192/395/12 168/239/12 +f 160/217/7 185/188/4 161/218/4 +f 154/385/7 177/210/8 153/175/8 +f 168/241/12 193/394/14 169/242/14 +f 147/383/9 171/195/6 146/161/6 +f 161/220/4 186/389/11 162/221/11 +f 155/173/4 178/207/7 154/174/7 +f 196/274/5 197/280/14 195/285/5 +f 198/269/14 199/271/12 197/280/14 +f 200/265/12 201/272/3 199/271/12 +f 202/260/3 203/262/13 201/267/3 +f 204/259/13 205/256/9 203/262/13 +f 206/252/9 207/257/6 205/256/9 +f 208/251/6 209/307/10 207/257/6 +f 209/307/10 212/293/11 211/298/11 +f 212/293/11 213/301/4 211/298/11 +f 214/288/4 215/295/7 213/301/4 +f 216/283/7 217/290/8 215/295/7 +f 218/278/8 195/285/5 217/290/8 +f 5/30/7 17/9/7 18/11/8 +f 12/40/9 24/24/9 14/1/6 +f 2/36/10 13/3/10 15/5/11 +f 10/351/3 9/47/12 21/17/12 +f 6/28/8 18/11/8 19/13/5 +f 3/34/11 15/5/11 16/7/4 +f 11/41/13 10/44/3 22/20/3 +f 7/26/5 19/13/5 20/15/14 +f 4/32/4 16/7/4 17/9/7 +f 12/40/9 11/41/13 23/22/13 +f 1/38/6 14/1/6 13/3/10 +f 9/47/12 8/51/14 20/15/14 +f 26/342/13 38/403/13 37/261/9 +f 32/335/7 33/8/4 45/294/4 +f 30/14/5 42/279/5 41/281/14 +f 27/341/3 39/405/3 38/266/13 +f 33/334/4 34/6/11 46/300/11 +f 31/12/8 43/284/8 42/286/5 +f 28/340/12 40/407/12 39/270/3 +f 35/4/10 47/297/10 46/299/11 +f 25/25/9 37/401/9 48/255/6 +f 32/10/7 44/289/7 43/291/8 +f 29/16/14 41/275/14 40/276/12 +f 36/332/6 48/306/6 47/308/10 +f 68/107/14 92/84/14 93/364/12 +f 54/345/9 78/56/9 77/58/13 +f 49/350/5 74/71/5 84/73/8 +f 67/104/5 91/87/5 92/365/14 +f 53/346/13 77/59/13 76/61/3 +f 60/42/8 84/74/8 83/76/7 +f 66/101/8 90/55/8 91/54/5 +f 52/347/3 76/357/3 75/62/12 +f 59/45/7 83/77/7 82/79/4 +f 65/98/7 89/57/7 90/355/8 +f 51/348/12 75/65/12 73/67/14 +f 72/119/9 96/72/9 86/360/6 +f 61/122/6 86/70/6 85/69/10 +f 55/344/6 79/354/6 78/53/9 +f 69/110/12 93/82/12 94/81/3 +f 62/89/10 85/66/10 87/358/11 +f 56/353/10 80/86/10 79/88/6 +f 70/113/3 94/78/3 95/362/13 +f 63/92/11 87/64/11 88/63/4 +f 57/352/11 81/83/11 80/85/10 +f 71/116/13 95/75/13 96/361/9 +f 50/349/14 73/359/14 74/68/5 +f 64/95/4 88/60/4 89/356/7 +f 58/48/4 82/363/4 81/80/11 +f 102/154/11 114/133/11 115/135/10 +f 98/162/5 109/163/14 121/148/14 +f 99/160/8 110/126/8 112/129/7 +f 107/384/3 106/172/13 118/141/13 +f 103/152/10 115/135/10 116/137/6 +f 100/158/7 112/129/7 113/131/4 +f 108/166/12 107/169/3 119/144/3 +f 105/176/9 104/150/6 116/137/6 +f 101/156/4 113/131/4 114/133/11 +f 109/163/14 108/166/12 120/146/12 +f 98/162/5 111/127/5 110/126/8 +f 106/172/13 105/176/9 117/139/9 +f 123/376/12 135/406/12 134/268/14 +f 130/132/4 142/412/4 141/292/11 +f 127/138/6 139/399/6 138/250/9 +f 124/375/3 136/404/3 135/263/12 +f 131/130/7 143/411/7 142/287/4 +f 128/136/10 140/400/10 139/253/6 +f 125/374/13 137/402/13 136/258/3 +f 132/128/8 144/410/8 143/282/7 +f 122/149/14 134/408/14 145/273/5 +f 129/134/11 141/413/11 140/305/10 +f 126/140/9 138/303/9 137/304/13 +f 133/125/5 145/409/5 144/277/8 +f 165/232/9 189/209/9 190/397/13 +f 151/379/14 175/181/14 174/183/12 +f 146/164/6 171/196/6 181/198/10 +f 164/229/6 188/212/6 189/398/9 +f 150/380/12 174/184/12 173/186/3 +f 157/167/10 181/199/10 180/201/11 +f 163/226/10 187/179/10 188/387/6 +f 149/381/3 173/390/3 172/187/13 +f 156/170/11 180/202/11 179/204/4 +f 162/223/11 186/182/11 187/388/10 +f 148/382/13 172/391/13 170/190/9 +f 169/244/14 193/197/14 183/393/5 +f 158/247/5 183/194/5 182/392/8 +f 152/378/5 176/178/5 175/180/14 +f 166/235/13 190/206/13 191/396/3 +f 159/214/8 182/192/8 184/191/7 +f 153/386/8 177/211/8 176/213/5 +f 167/238/3 191/203/3 192/395/12 +f 160/217/7 184/189/7 185/188/4 +f 154/385/7 178/208/7 177/210/8 +f 168/241/12 192/200/12 193/394/14 +f 147/383/9 170/193/9 171/195/6 +f 161/220/4 185/185/4 186/389/11 +f 155/173/4 179/205/4 178/207/7 +f 196/274/5 198/269/14 197/280/14 +f 198/269/14 200/265/12 199/271/12 +f 200/265/12 202/264/3 201/272/3 +f 202/260/3 204/259/13 203/262/13 +f 204/259/13 206/252/9 205/256/9 +f 206/252/9 208/251/6 207/257/6 +f 208/251/6 210/254/10 209/307/10 +f 209/307/10 210/254/10 212/293/11 +f 212/293/11 214/288/4 213/301/4 +f 214/288/4 216/283/7 215/295/7 +f 216/283/7 218/278/8 217/290/8 +f 218/278/8 196/274/5 195/285/5 diff --git a/src/main/resources/assets/hbm/textures/models/fusion/coupler.png b/src/main/resources/assets/hbm/textures/models/fusion/coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0a1186b87e00396d296ec0707905edeb18a6d7 GIT binary patch literal 2601 zcma)8dpK0<9v-oonlLsE6UCY-*~}nGh7)62ZJX^fQ-s+j<9^A#V~SiNV^3i;*t^2G z7ILRaA*PsezuyLlY>rLO_OLMQsJ2MPrtvCo@83me;4moh3|`m9Y=QJs?Nmv>S+Ib>r`-$==~9~D(z$y zm8!Hj2MNV(7?)Xax-|G2t+u$hc5Yi49#Z`1Vg#Y6tbJl;UPZo`*JL`)|`UCaf;^a#-qOv5U4qA+CEPZc$(Qg8{U{KE9!B4(?nc6o> zu8LS439fk?{9_QUX%}VvPd=O|H7KmM$I7DhAI0rR7Dk&K5>TsnZw~R(Povx3on8na zN*=VJJhguG@vtR)VO>kchmO<_q$73zpGq`7nI1J)W31GhK3uLhwt1^JuYg@Xb1E<5 zuywv-j;V*n4TA@)*{{>QcOq(P>RR6(u9Ry<=@=Yc4sV^eBREw$(>kzMg$dgX&T4z8 zdL6M!8+ImO!`)1v=Y6BfVqaWHqS@yt`lHBTJI(E5*7-Lw1*JAn$=?sxuApSz45-X znI~<`vU`7tkS%7Vt3}z_U zx-(|Lx>vHVJv?VYD$!XNscT&oWj~ZZxS$rTUz6F*m|F{QTrHHu9fc_w_**nT9*YZ> zBdsLGx=Mgvr;9a1RCTI%Ylc_Rv~JI#E50Wi{AaJl=6?#z87|DX&$?ZFBicqJ=loV} z%83Rt!KQykgCTs)?BVt%_pYt!_B6+%NI%l>u?e4jOzg@d^Tx+%we|I-Yr8w$e1+c} z><~FIb*NmnXu$ZKlvL8;2M1-e$g=|>_J^SU@ek&b`YP+afSWgjJ^*W;r)YAc#i@Ij zF82)OQcvv}c8atzOD10nnAniox3&GHTk>;QeIw6<;sYcf%eh=Wyi^9WTMIjDo-Fv{ zZ*TH5VtL);d_cgZM4#)?iUQMAkd$88-$xo~_1!L3@SUU8eXVYI2-Rho)#6JvQ%Wt zLv92<I799jLqcat zv|ri0z7#&C*E`dql3RM%u3-JR`eMhS5fk=7{`Fqc{eMmsLBQP1@$Lo{Ozv>hwi(EC zxJQ|Op<}4ZEm5b!Ww&}r@Yqaj6ECC6S=YNXNeTUqp2H+t5?kIxTF%F^9-}bD?<0Uk zWdt7dW&ll6lmuBcMjap9ZRN&^sv0CsewfpT?tpF1b_h30n6D#Tp@TmQRjF@MyhrmZ zXTll%pM#^HBOMEim}+U@^5AwG55GZ?6EFiUa6y10yRoIsMP9z~bmbeSz7Zkhl5BgM z%b5ewN@zx4sFa&~_^G?tKd_~{o-uw%`KgmVBpVeJ9{hz~z$CI0p3@&Oi6?Z8Ai;#g@Zb|7 z;=O_wFuxD~Z)BIk&qP8CM`O-zbhc$8 z*a;;sRPS-HP0G+2ui7)?%56y!1f8_wVR*rE>*G%}nBIr8x`_eXX);&N;$WiHKzd0kaS` zMG`V;j__d>P4Ed=&TMgY^-_Cix=DDcsVU%}i5hO>IHz$Xf`BxrVWnHokqn4z)rujK zfV>(lA%G3rK1G(c4m{3deq}@v>n|rQW-(+Y4FWftdR1py$I=J$7HX-iYPY$8K9V5y zqKL3Hv@gwqtBwbwv~#x#Xmg7p>2FOZ?=HSG8o#)Fm)`rFXRo;Bd*P0y3KlQ6^7?hO z*$GYlPMA?1l-hIc(nIadgtOU9dW6FIDx@I#g5E^@k!Mpb(e5r8TOu}$Q z9|^fpw-fCFz1u)bXff+Z=$Ief3s6VKqZ-|ZE;%?r;qj^(HP!jit}8#;-5t;ryISM} zIO_f3wl^1&21qf($%p$R0d4aF(92ru2@63%rE0nA z*9mc2Ntw3QvY4Fix9794c_lQbOY4CQ%B(=gu!ZwJY4)ny+lDAp5cKr)Og*-rMx*`E zj@vW+bj#AO^7vSs`3)K#>~)MN=pUgr)YYXZiybly;vD%+FS`sya#x1v&of`SFczu# zp)IT?n{PCbQPzg&jGV1#;c&`>LVTQZr@9>fhBG@+b_a!-_z-FoY65~^z=83PeXI2m ze}0P3u=8ksm|}Y#;p_r|ijlfG6vh~SYc*9euXSFDW~ma|PlTXz-#HDktW=^B`d}po zn}^>suSKvM4stFO0P#gd4+&-j zK4!wQOQDPqVt8mn0h4Yu_@Iui6B3t+#cF67idf>Vc5r$}Ex6)h9B8Gy)tybyp{6|U rXE^({bKbkSF@Iqn%&MX;Ypxgvmf154>J$B;e?OSnc`LAtM34CwQw6NJ literal 0 HcmV?d00001