diff --git a/src/main/java/api/hbm/conveyor/IConveyorBelt.java b/src/main/java/api/hbm/conveyor/IConveyorBelt.java new file mode 100644 index 000000000..075d37e79 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IConveyorBelt.java @@ -0,0 +1,10 @@ +package api.hbm.conveyor; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public interface IConveyorBelt { + + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed); + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos); +} diff --git a/src/main/java/api/hbm/conveyor/IConveyorItem.java b/src/main/java/api/hbm/conveyor/IConveyorItem.java new file mode 100644 index 000000000..9748cdbe6 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IConveyorItem.java @@ -0,0 +1,8 @@ +package api.hbm.conveyor; + +import net.minecraft.item.ItemStack; + +public interface IConveyorItem { + + public ItemStack getItemStack(); +} diff --git a/src/main/java/api/hbm/conveyor/IEnterableBlock.java b/src/main/java/api/hbm/conveyor/IEnterableBlock.java new file mode 100644 index 000000000..a97e55191 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IEnterableBlock.java @@ -0,0 +1,20 @@ +package api.hbm.conveyor; + +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IEnterableBlock { + + /** + * Returns true of the moving item can enter from the given side. When this happens, the IConveyorItem will call onEnter and despawn + * @param world + * @param x + * @param y + * @param z + * @param dir + * @param entity + * @return + */ + public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); + public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); +} diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 663ed8c7b..a935a42c2 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -74,11 +74,17 @@ public interface IEnergyConnector extends ILoadedTile { red = true; } - if(particleDebug) { + if(particleDebug) {// NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "bluedust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java index 601730d3e..002dca53f 100644 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ b/src/main/java/api/hbm/energy/IEnergyUser.java @@ -87,9 +87,15 @@ public interface IEnergyUser extends IEnergyConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "greendust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index 9ec663305..634412cbf 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -62,9 +62,16 @@ public interface IFluidConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "bluedust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 402b8ceb4..92c86e7c6 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -48,9 +48,16 @@ public interface IFluidUser extends IFluidConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "greendust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/com/hbm/blocks/IBlockMultiPass.java b/src/main/java/com/hbm/blocks/IBlockMultiPass.java index 91d91a14b..da8739558 100644 --- a/src/main/java/com/hbm/blocks/IBlockMultiPass.java +++ b/src/main/java/com/hbm/blocks/IBlockMultiPass.java @@ -1,8 +1,6 @@ package com.hbm.blocks; import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; public interface IBlockMultiPass { diff --git a/src/main/java/com/hbm/blocks/IBlockSideRotation.java b/src/main/java/com/hbm/blocks/IBlockSideRotation.java new file mode 100644 index 000000000..d24282cce --- /dev/null +++ b/src/main/java/com/hbm/blocks/IBlockSideRotation.java @@ -0,0 +1,14 @@ +package com.hbm.blocks; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.world.IBlockAccess; + +public interface IBlockSideRotation { + + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + public static int getRenderType() { + return renderID; + } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ab66cda75..f6e6a1e25 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -583,16 +583,11 @@ public class ModBlocks { public static final int guiID_capsule = 93; public static Block crate_iron; - public static final int guiID_crate_iron = 46; - public static Block crate_steel; - public static final int guiID_crate_steel = 47; - + public static Block crate_desh; public static Block crate_tungsten; - public static final int guiID_crate_tungsten = 103; - public static Block safe; - public static final int guiID_safe = 70; + public static Block mass_storage; public static Block nuke_gadget; public static final int guiID_nuke_gadget = 3; @@ -627,6 +622,8 @@ public class ModBlocks { public static Block cel_prime_battery; public static Block cel_prime_port; public static Block cel_prime_tanks; + + public static Block furnace_iron; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -751,6 +748,12 @@ public class ModBlocks { public static Block fluid_duct_neo; public static Block conveyor; + public static Block conveyor_double; + public static Block conveyor_triple; + public static Block conveyor_chute; + public static Block conveyor_lift; + public static Block crane_extractor; + public static Block crane_inserter; public static Block chain; @@ -1052,6 +1055,8 @@ public class ModBlocks { public static Block machine_storage_drum; public static final int guiID_storage_drum = 118; + public static Block machine_autocrafter; + public static Block anvil_iron; public static Block anvil_lead; public static Block anvil_steel; @@ -1093,6 +1098,7 @@ public class ModBlocks { public static final int guiID_fritz = 122; public static Block turret_brandon; public static final int guiID_brandon = 122; + public static Block turret_arty; public static Block rbmk_rod; public static Block rbmk_rod_mod; @@ -1782,6 +1788,8 @@ public class ModBlocks { semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); + furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1896,9 +1904,16 @@ public class ModBlocks { gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); - conveyor = new BlockConveyor(Material.iron).setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); + conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); + conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); + conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_lift = new BlockConveyorLift().setBlockName("conveyor_lift").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); @@ -2067,6 +2082,7 @@ public class ModBlocks { turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); @@ -2112,8 +2128,10 @@ public class ModBlocks { crate_jungle = new BlockJungleCrate(Material.rock).setBlockName("crate_jungle").setStepSound(Block.soundTypeStone).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_jungle"); crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); + crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); @@ -2123,7 +2141,7 @@ public class ModBlocks { machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); - machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_flare"); + machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2169,6 +2187,8 @@ public class ModBlocks { machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setCreativeTab(MainRegistry.machineTab); + anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); @@ -2818,6 +2838,7 @@ public class ModBlocks { GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); + GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); //Wall-mounted Explosives GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); @@ -2906,8 +2927,10 @@ public class ModBlocks { //Crates GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName()); GameRegistry.registerBlock(crate_steel, crate_steel.getUnlocalizedName()); + GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName()); GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName()); GameRegistry.registerBlock(safe, safe.getUnlocalizedName()); + GameRegistry.registerBlock(mass_storage, mass_storage.getUnlocalizedName()); //Junk GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); @@ -2918,6 +2941,8 @@ public class ModBlocks { //GameRegistry.registerBlock(observer_off, observer_off.getUnlocalizedName()); //GameRegistry.registerBlock(observer_on, observer_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); + GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); GameRegistry.registerBlock(anvil_steel, ItemBlockBase.class, anvil_steel.getUnlocalizedName()); @@ -2933,6 +2958,7 @@ public class ModBlocks { GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); + GameRegistry.registerBlock(furnace_iron, furnace_iron.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); @@ -3043,9 +3069,16 @@ public class ModBlocks { GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_neo, ItemBlockBase.class, fluid_duct_neo.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); - GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); + GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); + GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_lift, conveyor_lift.getUnlocalizedName()); + + GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); GameRegistry.registerBlock(ladder_iron, ladder_iron.getUnlocalizedName()); GameRegistry.registerBlock(ladder_gold, ladder_gold.getUnlocalizedName()); @@ -3111,7 +3144,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_well, machine_well.getUnlocalizedName()); GameRegistry.registerBlock(machine_pumpjack, machine_pumpjack.getUnlocalizedName()); GameRegistry.registerBlock(machine_fracking_tower, machine_fracking_tower.getUnlocalizedName()); - GameRegistry.registerBlock(machine_flare, machine_flare.getUnlocalizedName()); + GameRegistry.registerBlock(machine_flare, ItemBlockBase.class, machine_flare.getUnlocalizedName()); GameRegistry.registerBlock(machine_refinery, machine_refinery.getUnlocalizedName()); GameRegistry.registerBlock(machine_fraction_tower, machine_fraction_tower.getUnlocalizedName()); GameRegistry.registerBlock(fraction_spacer, fraction_spacer.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/DetMiner.java b/src/main/java/com/hbm/blocks/bomb/DetMiner.java index 4bc5e01eb..baa130baa 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/DetMiner.java @@ -54,5 +54,4 @@ public class DetMiner extends BlockPillar implements IBomb { this.explode(world, x, y, z); } } - } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 5a2c04ff5..b73c26c91 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -277,8 +277,6 @@ public class LaunchPad extends BlockContainer implements IBomb { MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); return BombReturnCode.LAUNCHED; } - - return BombReturnCode.ERROR_MISSING_COMPONENT; } if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index 21d6ed749..e648823ee 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.machine.ZirnoxDestroyed; import com.hbm.blocks.machine.rbmk.RBMKDebris; import cpw.mods.fml.relauncher.Side; @@ -55,7 +56,7 @@ public class BlockLayering extends Block { public boolean canPlaceBlockAt(World world, int x, int y, int z) { Block block = world.getBlock(x, y - 1, z); - if(block instanceof RBMKDebris) + if(block instanceof RBMKDebris || block instanceof ZirnoxDestroyed) return true; return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java index b5e389ba3..5b4b330f7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java @@ -1,11 +1,13 @@ package com.hbm.blocks.generic; import java.util.List; +import java.util.Random; import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.ITooltipProvider; import net.minecraft.block.Block; +import net.minecraft.block.IGrowable; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -17,7 +19,7 @@ import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.util.ForgeDirection; -public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, ITooltipProvider { +public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowable, ITooltipProvider { public BlockNTMFlower() { super(Material.plants, EnumFlowerType.class, true, true); @@ -97,6 +99,24 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IToolt return meta; } + /* grow condition */ + @Override + public boolean func_149851_a(World world, int x, int y, int z, boolean b) { + return true; + } + + /* chance */ + @Override + public boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_) { + return true; + } + + /* grow */ + @Override + public void func_149853_b(World world, Random rand, int x, int y, int z) { + this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + } + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 93b95e163..e06d18d0c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -143,7 +143,7 @@ public class BlockOre extends Block { case 31: return ModItems.ammo_nuke_low; case 32: - return ModItems.gun_mirv_ammo; + return ModItems.ammo_mirv; case 33: return ModItems.gun_defabricator_ammo; case 34: diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 91c44cfd1..306698713 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -8,6 +8,8 @@ import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateDesh; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; @@ -56,10 +58,18 @@ public class BlockStorageCrate extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_side"); } + if(this == ModBlocks.crate_desh) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_side"); + } if(this == ModBlocks.safe) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":safe_front"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":safe_side"); } + if(this == ModBlocks.mass_storage) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + } } @Override @@ -74,14 +84,11 @@ public class BlockStorageCrate extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - if(this == ModBlocks.crate_iron) - return new TileEntityCrateIron(); - if(this == ModBlocks.crate_steel) - return new TileEntityCrateSteel(); - if(this == ModBlocks.crate_tungsten) - return new TileEntityCrateTungsten(); - if(this == ModBlocks.safe) - return new TileEntitySafe(); + if(this == ModBlocks.crate_iron) return new TileEntityCrateIron(); + if(this == ModBlocks.crate_steel) return new TileEntityCrateSteel(); + if(this == ModBlocks.crate_desh) return new TileEntityCrateDesh(); + if(this == ModBlocks.crate_tungsten) return new TileEntityCrateTungsten(); + if(this == ModBlocks.safe) return new TileEntitySafe(); return null; } @@ -143,17 +150,8 @@ public class BlockStorageCrate extends BlockContainer { } else if(!player.isSneaking()) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityCrateIron && ((TileEntityCrateIron) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_iron, world, x, y, z); - } - if(entity instanceof TileEntityCrateSteel && ((TileEntityCrateSteel) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_steel, world, x, y, z); - } - if(entity instanceof TileEntityCrateTungsten && ((TileEntityCrateTungsten) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_tungsten, world, x, y, z); - } - if(entity instanceof TileEntitySafe && ((TileEntitySafe) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_safe, world, x, y, z); + if(entity instanceof TileEntityCrateBase && ((TileEntityCrateBase) entity).canAccess(player)) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; } else { diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java new file mode 100644 index 000000000..7e9c27ef3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -0,0 +1,214 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemLock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockMassStorage extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + public BlockMassStorage() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + if(this == ModBlocks.safe) + return metadata == 0 && side == 3 ? this.iconTop : (side == metadata ? this.iconTop : this.blockIcon); + + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMassStorage(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { + return false; + + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMassStorage && ((TileEntityMassStorage) entity).canAccess(player)) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + private static boolean dropInv = true; + + @Override + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { + + if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { + + ItemStack drop = new ItemStack(this); + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + NBTTagCompound nbt = new NBTTagCompound(); + + if(inv != null) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(stack == null) + continue; + + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + nbt.setTag("slot" + i, slot); + } + } + + if(inv instanceof TileEntityLockableBase) { + TileEntityLockableBase lockable = (TileEntityLockableBase) inv; + + if(lockable.isLocked()) { + nbt.setInteger("lock", lockable.getPins()); + nbt.setDouble("lockMod", lockable.getMod()); + } + } + + if(inv instanceof TileEntityMassStorage) { + TileEntityMassStorage storage = (TileEntityMassStorage) inv; + nbt.setInteger("stack", storage.getStockpile()); + } + + if(!nbt.hasNoTags()) { + drop.stackTagCompound = nbt; + } + + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); + } + + dropInv = false; + boolean flag = world.setBlockToAir(x, y, z); + dropInv = true; + + return flag; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + if(inv != null && stack.hasTagCompound()) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + inv.setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); + } + + if(inv instanceof TileEntityMassStorage) { + TileEntityMassStorage storage = (TileEntityMassStorage) inv; + + if(stack.stackTagCompound.hasKey("lock")) { + storage.setPins(stack.stackTagCompound.getInteger("lock")); + storage.setMod(stack.stackTagCompound.getDouble("lockMod")); + storage.lock(); + } + + storage.setStockpile(stack.stackTagCompound.getInteger("stack")); + } + } + + super.onBlockPlacedBy(world, x, y, z, player, stack); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(dropInv) { + ISidedInventory sided = (ISidedInventory) world.getTileEntity(x, y, z); + Random rand = world.rand; + + if(sided != null) { + for(int i1 = 0; i1 < sided.getSizeInventory(); ++i1) { + + if(i1 == 1) continue; //do NOT drop the filter item + + ItemStack itemstack = sided.getStackInSlot(i1); + + if(itemstack != null) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index 1f50fcfc3..e3e706707 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -74,7 +74,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { TileEntityDeuteriumTower tower = (TileEntityDeuteriumTower) te; List text = new ArrayList(); - text.add((tower.power < tower.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); + text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java new file mode 100644 index 000000000..608963f7c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java @@ -0,0 +1,38 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class FurnaceIron extends BlockDummyable { + + public FurnaceIron() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityFurnaceIron(); + return new TileEntityProxyCombo(true, false, false); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java b/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java index c680a1949..14a57c952 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java @@ -8,6 +8,7 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineAssemfac extends BlockDummyable { @@ -36,4 +37,27 @@ public class MachineAssemfac extends BlockDummyable { public int getOffset() { return 3; } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + this.safeRem = true; + + this.makeExtra(world, x + dir.offsetX * 3 + rot.offsetX * 2, y, z + dir.offsetZ * 3 + rot.offsetZ * 2); + this.makeExtra(world, x + dir.offsetX * 3 - rot.offsetX * 3, y, z + dir.offsetZ * 3 - rot.offsetZ * 3); + this.makeExtra(world, x - dir.offsetX * 4 + rot.offsetX * 2, y, z - dir.offsetZ * 4 + rot.offsetZ * 2); + this.makeExtra(world, x - dir.offsetX * 4 - rot.offsetX * 3, y, z - dir.offsetZ * 4 - rot.offsetZ * 3); + + this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * 2, y, z + rot.offsetZ * 3 + dir.offsetZ * 2); + this.makeExtra(world, x + rot.offsetX * 3 - dir.offsetX * 3, y, z + rot.offsetZ * 3 - dir.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * 2, y, z - rot.offsetZ * 4 + dir.offsetZ * 2); + this.makeExtra(world, x - rot.offsetX * 4 - dir.offsetX * 3, y, z - rot.offsetZ * 4 - dir.offsetZ * 3); + + this.safeRem = false; + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java new file mode 100644 index 000000000..f4fabf399 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -0,0 +1,114 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class MachineAutocrafter extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + @SideOnly(Side.CLIENT) + private IIcon iconBottom; + + public MachineAutocrafter() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineAutocrafter(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMachineAutocrafter) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + private final Random field_149933_a = new Random(); + + @Override + public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { + ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + + if(tileentityfurnace != null) { + + for(int i1 = 10; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.field_149933_a.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; + entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; + p_149749_1_.spawnEntityInWorld(entityitem); + } + } + } + + p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + } + + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index ca0a23746..648f9a3b6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -7,8 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticCracker; import com.hbm.util.I18nUtil; @@ -56,7 +55,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver if(!world.isRemote && !player.isSneaking()) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -68,7 +67,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver return false; TileEntityMachineCatalyticCracker cracker = (TileEntityMachineCatalyticCracker) te; - FluidType type = Fluids.fromID(player.getHeldItem().getItemDamage()); + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index c174e28e2..b31340f09 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -1,13 +1,20 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; +import com.hbm.util.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class MachineCondenser extends BlockContainer { +public class MachineCondenser extends BlockContainer implements ILookOverlay { public MachineCondenser(Material mat) { super(mat); @@ -17,4 +24,22 @@ public class MachineCondenser extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityCondenser(); } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCondenser)) + return; + + TileEntityCondenser condenser = (TileEntityCondenser) te; + + List text = new ArrayList(); + + for(int i = 0; i < condenser.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase()) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index a8e6f18bf..f0d3d2d43 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -63,7 +63,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv TileEntityDeuteriumExtractor extractor = (TileEntityDeuteriumExtractor) te; List text = new ArrayList(); - text.add((extractor.power < extractor.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); + text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase()) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java index b15d1dc59..ecc409fa8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java @@ -5,7 +5,7 @@ import java.util.Random; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineDiesel; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index 10aaaa6aa..b8705ead5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -6,8 +6,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFractionTower; import com.hbm.util.I18nUtil; @@ -55,7 +54,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay if(!world.isRemote && !player.isSneaking()) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -71,7 +70,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay if(world.getTileEntity(pos[0], pos[1] - 3, pos[2]) instanceof TileEntityMachineFractionTower) { player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "You can only change the type in the bottom segment!")); } else { - FluidType type = Fluids.fromID(player.getHeldItem().getItemDamage()); + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 520ec209e..8aa2f243e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -1,176 +1,68 @@ package com.hbm.blocks.machine; -import java.util.Random; +import java.util.List; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineGasFlare extends BlockContainer implements IMultiblock { +public class MachineGasFlare extends BlockDummyable implements ITooltipProvider { - private final Random field_149933_a = new Random(); - private Random rand; - private static boolean keepInventory; - - public MachineGasFlare(Material p_i45386_1_) { - super(p_i45386_1_); - rand = new Random(); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_flare); - } - - @Override - public int getRenderType() { - return -1; + public MachineGasFlare(Material mat) { + super(mat); } @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityMachineGasFlare(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + return null; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineGasFlare entity = (TileEntityMachineGasFlare) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_flare, world, x, y, z); - } - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, ModBlocks.guiID_machine_flare); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineGasFlare(); + public int[] getDimensions() { + return new int[] {11, 0, 1, 1, 1, 1}; } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineGasFlare tileentityfurnace = (TileEntityMachineGasFlare)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + public int getOffset() { + return 1; + } - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.flareDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.flareDimension, ModBlocks.dummy_block_flare); + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } - DummyBlockFlare.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_flare); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_flare); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_flare); - TileEntity te3 = world.getTileEntity(x + 1, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_flare); - TileEntity te4 = world.getTileEntity(x - 1, y, z); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockFlare.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + list.add(EnumChatFormatting.GOLD + "Can burn fluids and vent gasses"); + list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); + list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); + list.add(""); + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java index 78754095c..54fab6acb 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java @@ -5,7 +5,7 @@ import java.util.Random; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index d393dc138..cf06998cc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -1,15 +1,23 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityTowerLarge; +import com.hbm.tileentity.machine.TileEntityTowerSmall; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineTowerLarge extends BlockDummyable { +public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { public MachineTowerLarge(Material mat) { super(mat); @@ -52,4 +60,26 @@ public class MachineTowerLarge extends BlockDummyable { this.makeExtra(world, x + dr2.offsetX * 4 + rot.offsetX * -3, y, z + dr2.offsetZ * 4 + rot.offsetZ * -3); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityTowerLarge)) + return; + + TileEntityTowerLarge tower = (TileEntityTowerLarge) te; + + List text = new ArrayList(); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index 42b4d5af7..ac1dd989e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -1,15 +1,22 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityTowerSmall; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineTowerSmall extends BlockDummyable { +public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { public MachineTowerSmall(Material mat) { super(mat); @@ -49,4 +56,26 @@ public class MachineTowerSmall extends BlockDummyable { this.makeExtra(world, x + dr2.offsetX * 2, y, z + dr2.offsetZ * 2); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityTowerSmall)) + return; + + TileEntityTowerSmall tower = (TileEntityTowerSmall) te; + + List text = new ArrayList(); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index cdc203283..c7da8fe6c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -7,11 +7,10 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -73,32 +72,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -118,32 +117,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -163,32 +162,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -208,32 +207,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; diff --git a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java index 68d9f6a80..62f397474 100644 --- a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java +++ b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java @@ -13,6 +13,7 @@ import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityZirnoxDestroyed; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -47,13 +48,29 @@ public class ZirnoxDestroyed extends BlockDummyable { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - - ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - - if(rand.nextInt(4) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ) == Blocks.air) { - world.setBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ, ModBlocks.gas_meltdown); + + Block block = world.getBlock(x, y + 1, z); + + if(block == Blocks.air) { + if(rand.nextInt(10) == 0) + world.setBlock(x, y + 1, z, ModBlocks.gas_meltdown); + + } else if(block == ModBlocks.foam_layer || block == ModBlocks.block_foam) { + if(rand.nextInt(25) == 0) { + int pos[] = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityZirnoxDestroyed) + ((TileEntityZirnoxDestroyed)te).onFire = false; + } + } } - + + if(rand.nextInt(10) == 0 && world.getBlock(x, y + 1, z) == Blocks.air) + world.setBlock(x, y + 1, z, ModBlocks.gas_meltdown); + super.updateTick(world, x, y, z, rand); } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 7e9d8dd9c..0480adc74 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -8,6 +8,7 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -36,12 +37,17 @@ public class RBMKDebrisBurning extends RBMKDebris { } ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); + Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(rand.nextInt(7) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + if(rand.nextInt(10) == 0 && block == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - if(rand.nextInt(100) == 0) { + //Foam helps stop the fire; Boron smothers it. 1.66% chance every 100-120 seconds for one side + int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam || + block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 10 : 100; + + if(rand.nextInt(chance) == 0) { world.setBlock(x, y, z, ModBlocks.pribris); } else { world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 599da3790..e2bfa0972 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -13,6 +13,7 @@ import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -49,12 +50,16 @@ public class RBMKDebrisRadiating extends RBMKDebrisBurning { } ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - - if(rand.nextInt(5) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + if(rand.nextInt(10) == 0 && block == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - if(rand.nextInt(1000) == 0) { + //Boron sand helps stop the fission reaction; 0.66% chance every 20-40 ticks for one side + int chance = block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 25 : 1000; + + if(rand.nextInt(chance) == 0) { int meta = world.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index a1dbd97b8..b4e6afad0 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -1,43 +1,116 @@ package com.hbm.blocks.network; import com.hbm.entity.item.EntityMovingItem; +import com.hbm.lib.RefStrings; +import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockConveyor extends Block { +public class BlockConveyor extends Block implements IConveyorBelt { - public BlockConveyor(Material p_i45394_1_) { - super(p_i45394_1_); + @SideOnly(Side.CLIENT) + protected IIcon sideIcon; + + public BlockConveyor() { + super(Material.iron); } @Override - public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + if((metadata == 2 || metadata == 3) && (side == 4 || side == 5)) + return this.sideIcon; + if((metadata == 4 || metadata == 5) && (side == 2 || side == 3)) + return this.sideIcon; + return super.getIcon(side, metadata); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed); + //snapping point + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + //snapping point + speed + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); + //delta to get to that point + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + //the effective destination towards "dest" after taking speed into consideration + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; + } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(!world.isRemote) { - + if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) { - + EntityMovingItem item = new EntityMovingItem(world); - item.setItemStack(((EntityItem)entity).getEntityItem()); - item.setPositionAndRotation(x + 0.5, y + 0.125, z + 0.5, 0, 0); + item.setItemStack(((EntityItem) entity).getEntityItem().copy()); + Vec3 pos = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos); + item.setPositionAndRotation(snap.xCoord, snap.yCoord, snap.zCoord, 0, 0); world.spawnEntityInWorld(item); - + entity.setDead(); } } } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType() { @@ -53,37 +126,32 @@ public class BlockConveyor extends Block { public boolean renderAsNormalBlock() { return false; } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); - } - + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F); + } + @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y, z + 1); - } - + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.25, z + 1); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } - } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java new file mode 100644 index 000000000..efa52f5a0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java @@ -0,0 +1,67 @@ +package com.hbm.blocks.network; + +import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorChute extends BlockConveyor { + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt) { + speed *= 5; + } else if(itemPos.yCoord > y + 0.25) { + speed *= 3; + } + + return super.getTravelLocation(world, x, y, z, itemPos, speed); + } + + @Override + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + return ForgeDirection.UP; + } + + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5); + } else { + return super.getClosestSnappingPosition(world, x, y, z, itemPos); + } + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java b/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java new file mode 100644 index 000000000..b83cb95cb --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorDouble extends BlockConveyor { + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + posZ += itemPos.zCoord > posZ ? 0.25 : -0.25; + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + posX += itemPos.xCoord > posX ? 0.25 : -0.25; + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java new file mode 100644 index 000000000..6bea6da24 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java @@ -0,0 +1,77 @@ +package com.hbm.blocks.network; + +import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorLift extends BlockConveyor { + + @Override + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(!top) { + return ForgeDirection.DOWN; + } + + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(!top) { + return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5); + } else { + return super.getClosestSnappingPosition(world, x, y, z, itemPos); + } + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(top) + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + else + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(top) + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.5, z + 1); + else + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java b/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java new file mode 100644 index 000000000..06327a90d --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorTriple extends BlockConveyor { + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + posZ += (itemPos.zCoord > posZ + 0.15 ? 0.3125 : itemPos.zCoord < posZ - 0.15 ? -0.3125 : 0); + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + posX += (itemPos.xCoord > posX + 0.15 ? 0.3125 : itemPos.xCoord < posX - 0.15 ? -0.3125 : 0); + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java new file mode 100644 index 000000000..3c82a62f8 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -0,0 +1,154 @@ +package com.hbm.blocks.network; + +import java.util.Random; + +import com.hbm.blocks.IBlockSideRotation; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.test.TestConductor; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation { + + @SideOnly(Side.CLIENT) protected IIcon iconSide; + @SideOnly(Side.CLIENT) protected IIcon iconIn; + @SideOnly(Side.CLIENT) protected IIcon iconSideIn; + @SideOnly(Side.CLIENT) protected IIcon iconOut; + @SideOnly(Side.CLIENT) protected IIcon iconSideOut; + + @SideOnly(Side.CLIENT) protected IIcon iconDirectional; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalDown; + + public BlockCraneBase(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crane_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":crane_side"); + this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_in"); + this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_in"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_out"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_out"); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public IIcon getIcon(int side, int metadata) { + + if(side == 0 || side == 1) { + if(side == metadata) { + return this.iconOut; + } + if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { + return this.iconIn; + } + + return side == 1 ? this.iconDirectional : this.blockIcon; + } + + if(side == metadata) { + return this.iconSideOut; + } + if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { + return this.iconSideIn; + } + + if(metadata == 0) { + return this.iconDirectionalUp; + } + if(metadata == 1) { + return this.iconDirectionalDown; + } + + return this.iconSide; + } + + public static int renderIDClassic = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return IBlockSideRotation.getRenderType(); + } + + private final Random rand = new Random(); + public void dropContents(World world, int x, int y, int z, Block block, int meta, int start, int end) { + ISidedInventory tileentityfurnace = (ISidedInventory) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + + for(int i1 = start; i1 < end; ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java new file mode 100644 index 000000000..51d754aa4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneExtractor; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class CraneExtractor extends BlockCraneBase { + + public CraneExtractor() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCraneExtractor(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); + this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); + this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); + } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 0; + if(meta == 3) return 3; + if(meta == 4) return 2; + if(meta == 5) return 1; + } + + return 0; + } + + @Override + public boolean canConnectRedstone(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + this.dropContents(world, x, y, z, block, meta, 9, 20); + super.breakBlock(world, x, y, z, block, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java new file mode 100644 index 000000000..4a78bb8e3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -0,0 +1,201 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneInserter; + +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IEnterableBlock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class CraneInserter extends BlockCraneBase implements IEnterableBlock { + + public CraneInserter() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCraneInserter(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top"); + this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up"); + this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down"); + } + + @Override + public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + ForgeDirection orientation = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return orientation == dir; + } + + @Override + public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + TileEntity te = world.getTileEntity(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(entity == null || entity.getItemStack() == null || entity.getItemStack().stackSize <= 0) { + return; + } + + ItemStack toAdd = entity.getItemStack().copy(); + + int[] access = null; + + if(te instanceof ISidedInventory) { + ISidedInventory sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(te instanceof IInventory) { + IInventory inv = (IInventory) te; + + addToInventory(inv, access, toAdd, dir.ordinal()); + + /*int limit = inv.getInventoryStackLimit(); + + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit)) { + + int stackLimit = Math.min(stack.getMaxStackSize(), limit); + int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); + + stack.stackSize += amount; + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return; + } + } + } + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack == null && inv.isItemValidForSlot(index, stack)) { + + int amount = Math.min(toAdd.stackSize, limit); + + ItemStack newStack = toAdd.copy(); + newStack.stackSize = amount; + inv.setInventorySlotContents(index, newStack); + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return; + } + } + }*/ + } + + if(toAdd != null && toAdd.stackSize > 0) { + addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, dir.ordinal()); + } + if(toAdd != null && toAdd.stackSize > 0) { + EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); + world.spawnEntityInWorld(drop); + } + } + + public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) { + + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int limit = inv.getInventoryStackLimit(); + + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit) + && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { + + int stackLimit = Math.min(stack.getMaxStackSize(), limit); + int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); + + stack.stackSize += amount; + toAdd.stackSize -= amount; + inv.markDirty(); + + if(toAdd.stackSize == 0) { + return null; + } + } + } + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack == null && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { + + int amount = Math.min(toAdd.stackSize, limit); + + ItemStack newStack = toAdd.copy(); + newStack.stackSize = amount; + inv.setInventorySlotContents(index, newStack); + toAdd.stackSize -= amount; + inv.markDirty(); + + if(toAdd.stackSize == 0) { + return null; + } + } + } + + return toAdd; + } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 3; + if(meta == 3) return 0; + if(meta == 4) return 1; + if(meta == 5) return 2; + } + + return 0; + } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + return Container.calcRedstoneFromInventory((TileEntityCraneInserter)world.getTileEntity(x, y, z)); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + this.dropContents(world, x, y, z, block, meta, 0, 21); + super.breakBlock(world, x, y, z, block, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/turret/TurretArty.java b/src/main/java/com/hbm/blocks/turret/TurretArty.java new file mode 100644 index 000000000..b23775fa1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/turret/TurretArty.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.turret; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TurretArty extends BlockDummyable { + + public TurretArty(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityTurretArty(); + + return new TileEntityProxyCombo(true, true, false); + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 2, 1, 2, 1 }; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/turret/TurretCIWS.java b/src/main/java/com/hbm/blocks/turret/TurretCIWS.java index 7efcf0b06..b88899123 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretCIWS.java +++ b/src/main/java/com/hbm/blocks/turret/TurretCIWS.java @@ -3,7 +3,6 @@ package com.hbm.blocks.turret; import java.util.List; import com.hbm.config.WeaponConfig; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.turret.TileEntityTurretCIWS; @@ -50,22 +49,6 @@ public class TurretCIWS extends TurretBase { Math.cos(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI)); vector.normalize(); - - if(!world.isRemote) { - - rayShot(world, vector, x + vector.xCoord * 2.5 + 0.5, y + vector.yCoord * 2.5 + 0.5, z + vector.zCoord * 2.5 + 0.5, 100, 10.0F, WeaponConfig.ciwsHitrate); - - EntityGasFlameFX smoke = new EntityGasFlameFX(world); - smoke.posX = x + vector.xCoord * 2.5 + 0.5; - smoke.posY = y + vector.yCoord * 2.5 + 1.5; - smoke.posZ = z + vector.zCoord * 2.5 + 0.5; - - smoke.motionX = vector.xCoord * 0.25; - smoke.motionY = vector.yCoord * 0.25; - smoke.motionZ = vector.zCoord * 0.25; - - world.spawnEntityInWorld(smoke); - } world.playSoundEffect(x, y, z, "hbm:weapon.ciwsFiringLoop", 1.0F, 1.25F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java index d4b80e9b6..3ccb43269 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java +++ b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java @@ -25,7 +25,11 @@ public class TurretChekhov extends BlockDummyable { if(meta >= 12) return new TileEntityTurretChekhov(); - return new TileEntityProxyCombo(true, true, false); + + if(meta >= 6) + return new TileEntityProxyCombo(true, true, false); + + return null; } @Override diff --git a/src/main/java/com/hbm/blocks/turret/TurretHeavy.java b/src/main/java/com/hbm/blocks/turret/TurretHeavy.java index ba442e277..43a75441c 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHeavy.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHeavy.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBullet; import com.hbm.tileentity.turret.TileEntityTurretHeavy; @@ -51,12 +50,6 @@ public class TurretHeavy extends TurretBase { bullet.damage = rand.nextInt(26) + 15; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX fx = new EntityGasFlameFX(world); - fx.posX = x + vector.xCoord * 2.2 + 0.5; - fx.posY = y + vector.yCoord * 2.2 + 1; - fx.posZ = z + vector.zCoord * 2.2 + 0.5; - world.spawnEntityInWorld(fx); } world.playSoundEffect(x, y, z, "hbm:weapon.defabShoot", 1.0F, 0.75F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretRocket.java b/src/main/java/com/hbm/blocks/turret/TurretRocket.java index b300f1801..a5639863a 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretRocket.java +++ b/src/main/java/com/hbm/blocks/turret/TurretRocket.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityRocket; import com.hbm.tileentity.turret.TileEntityTurretRocket; @@ -49,12 +48,6 @@ public class TurretRocket extends TurretBase { bullet.motionZ = vector.zCoord * 3; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX fx = new EntityGasFlameFX(world); - fx.posX = x + vector.xCoord * 1 + 0.5; - fx.posY = y + vector.yCoord * 1 + 1; - fx.posZ = z + vector.zCoord * 1 + 0.5; - world.spawnEntityInWorld(fx); } world.playSoundEffect(x, y, z, "hbm:weapon.rpgShoot", 1.0F, 0.75F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java b/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java index b4a8ff633..0b3f8551e 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java +++ b/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityAAShell; import com.hbm.tileentity.turret.TileEntityTurretSpitfire; @@ -51,17 +50,6 @@ public class TurretSpitfire extends TurretBase { bullet.speedOverride = 3; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX smoke = new EntityGasFlameFX(world); - smoke.posX = x + vector.xCoord * 4 + 0.5; - smoke.posY = y + vector.yCoord * 4 + 1; - smoke.posZ = z + vector.zCoord * 4 + 0.5; - - smoke.motionX = vector.xCoord * 0.25; - smoke.motionY = vector.yCoord * 0.25; - smoke.motionZ = vector.zCoord * 0.25; - - world.spawnEntityInWorld(smoke); } world.playSoundEffect(x, y, z, "hbm:entity.oldExplosion", 1.0F, 0.5F); diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 60b32cff9..3200633b5 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -93,7 +93,7 @@ public class GeneralConfig { final String CATEGORY_LBSM = CommonConfig.CATEGORY_LBSM; - config.addCustomCategoryComment(CATEGORY_528, + config.addCustomCategoryComment(CATEGORY_LBSM, "Will most likely break standard progression!\n" + "However, the game gets generally easier and more enjoyable for casual players.\n" + "Progression-braking recipes are usually not too severe, so the mode is generally server-friendly!"); @@ -109,7 +109,7 @@ public class GeneralConfig { enableLBSMUnlockAnvil = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeUnlockAnvil", "When enabled, all anvil recipes are available at tier 1", true); enableLBSMSimpleCrafting = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleCrafting", "When enabled, some uncraftable or more expansive items get simple crafting recipes. Scorched uranium also becomes washable", true); enableLBSMSimpleMedicineRecipes = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleMedicine", "When enabled, makes some medicine recipes (line ones that require bismuth) much more affordable", true); - schrabRate = CommonConfig.createConfigInt(config, CATEGORY_528, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); + schrabRate = CommonConfig.createConfigInt(config, CATEGORY_LBSM, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); if(enable528) enableLBSM = false; } diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 6287f6f28..0658d4f7a 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -101,6 +101,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_plate, 1), new Object[] { "C C", "DXD", "CFC", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_plate, 'F', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_legs, 1), new Object[] { "CCC", "DXD", "C C", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_boots, 1), new Object[] { "C C", "DXD", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_boots }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3, 'D', ModBlocks.machine_diesel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_legs, 1), new Object[] { "M M", "S S", "W W", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_boots, 1), new Object[] { "W W", "S S", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot() }); //Bismuth fursui- I mean armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index d7875c8ac..752b13e54 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -136,9 +136,9 @@ public class MineralRecipes { addBillet(ModItems.billet_zirconium, ModItems.ingot_zirconium, ModItems.nugget_zirconium, ZR.nugget()); addBillet(ModItems.billet_bismuth, ModItems.ingot_bismuth, ModItems.nugget_bismuth); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 3), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233", "nuggetUranium233" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyU233", "tinyU233" })); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 6), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyU233" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium_fuel, 6), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u235 }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium235" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU235" })); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 107db72cd..0911db267 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -7,6 +7,8 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.CraftingManager; @@ -115,7 +117,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_biometry, 1), new Object[] { "CC ", "GGS", "SSS", 'C', ModItems.circuit_copper, 'S', STEEL.plate(), 'G', GOLD.plate(), 'I', PB.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate(), 'G', GOLD.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate(), 'B', ModItems.ingot_beryllium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); @@ -147,8 +148,16 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_tools), new Object[] { Items.book, Items.gold_nugget, KEY_GREEN }); //Carts - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY) }); + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); + CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + + for(EnumCartBase base : EnumCartBase.values()) { + + if(EnumMinecart.DESTROYER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.POWDER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.POWDER), new Object[] { "PPP", "PCP", "PPP", 'P', Items.gunpowder, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.SEMTEX.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.SEMTEX), new Object[] { "S", "C", 'S', ModBlocks.semtex, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + } net.minecraft.item.crafting.CraftingManager.getInstance().addRecipe(DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE), new Object[] { "C", "S", 'C', ModBlocks.crate_steel, 'S', Items.minecart }).func_92100_c(); //Configged diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index dca056ea8..b11c1091a 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -150,21 +150,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); - //Legacy ammo recycling - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44, 1), new Object[] { ModItems.gun_revolver_nopip_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44_pip, 1), new Object[] { ModItems.gun_revolver_pip_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50bmg, 1), new Object[] { ModItems.gun_calamity_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_5mm, 1), new Object[] { ModItems.gun_lacunae_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { ModItems.gun_rpg_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 1), new Object[] { ModItems.gun_mp40_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 1), new Object[] { ModItems.gun_uzi_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 1), new Object[] { ModItems.gun_uboinik_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 1), new Object[] { ModItems.gun_lever_action_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge_slug, 1), new Object[] { ModItems.gun_bolt_action_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_high, 1), new Object[] { ModItems.gun_fatman_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_mirv_high, 1), new Object[] { ModItems.gun_mirv_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_stinger_rocket, 1), new Object[] { ModItems.gun_stinger_ammo }); - //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); @@ -395,8 +380,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', ModItems.circuit_targeting_tier2, 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); //Nuke parts - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gadget_explosive8, 1), new Object[] { "EEE", "EPE", "EEE", 'E', ModItems.gadget_explosive, 'P', AL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.man_explosive8, 1), new Object[] { "EEE", "ESE", "EEE", 'E', ModItems.man_explosive, 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); //Custom nuke rods diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java index 226d28bf3..941b82c5b 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java @@ -1,6 +1,7 @@ package com.hbm.entity.cart; -import net.minecraft.entity.item.EntityMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -14,16 +15,16 @@ import net.minecraft.world.World; * @author hbm * */ -public abstract class EntityMinecartContainerBase extends EntityMinecart implements IInventory { +public abstract class EntityMinecartContainerBase extends EntityMinecartNTM implements IInventory { protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; - public EntityMinecartContainerBase(World p_i1712_1_) { - super(p_i1712_1_); + public EntityMinecartContainerBase(World world) { + super(world); } - public EntityMinecartContainerBase(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartContainerBase(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -102,11 +103,6 @@ public abstract class EntityMinecartContainerBase extends EntityMinecart impleme public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } - - @Override - public int getMinecartType() { - return -1; - } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java index 78c19770f..8eaaff942 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java @@ -1,11 +1,11 @@ package com.hbm.entity.cart; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityLockableBase; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -21,8 +21,8 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { super(world); } - public EntityMinecartCrate(World world, double x, double y, double z, ItemStack stack) { - super(world, x, y, z); + public EntityMinecartCrate(World world, double x, double y, double z, EnumCartBase type, ItemStack stack) { + super(world, x, y, z, type); if(stack.hasTagCompound()) { for(int i = 0; i < getSizeInventory(); i++) { setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); @@ -54,7 +54,7 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { @Override public void killMinecart(DamageSource p_94095_1_) { this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE); + ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.VANILLA, EnumMinecart.CRATE); NBTTagCompound nbt = new NBTTagCompound(); @@ -82,6 +82,6 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { @Override public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE); + return ItemModMinecart.createCartItem(EnumCartBase.VANILLA, EnumMinecart.CRATE); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index 81e01ecbc..7c3aa7d1c 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -3,29 +3,33 @@ package com.hbm.entity.cart; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityMinecartDestroyer extends EntityMinecartContainerBase { - public EntityMinecartDestroyer(World p_i1712_1_) { - super(p_i1712_1_); + public EntityMinecartDestroyer(World world) { + super(world); } - public EntityMinecartDestroyer(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartDestroyer(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -121,19 +125,14 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { } @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.DESTROYER); } @Override - public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER); + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_destroyer_tex); + ResourceManager.cart_destroyer.renderAll(); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java new file mode 100644 index 000000000..8071538bd --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java @@ -0,0 +1,89 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public abstract class EntityMinecartNTM extends EntityMinecart { + + public static final int cart_base_id = 23; + + public EntityMinecartNTM(World p_i1712_1_) { + super(p_i1712_1_); + } + + public EntityMinecartNTM(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z); + this.setBase(type); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(cart_base_id, new Integer(0)); //EnumCartBase + } + + public void setBase(EnumCartBase type) { + this.dataWatcher.updateObject(cart_base_id, type.ordinal()); + } + + public EnumCartBase getBase() { + return EnumCartBase.values()[this.dataWatcher.getWatchableObjectInt(cart_base_id)]; + } + + @Override + public int getMinecartType() { + return -1; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + + @Override + public void killMinecart(DamageSource p_94095_1_) { + this.setDead(); + ItemStack itemstack = getCartItem(); + + if(this.func_95999_t() != null) { + itemstack.setStackDisplayName(this.func_95999_t()); + } + + this.entityDropItem(itemstack, 0.0F); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("base", this.dataWatcher.getWatchableObjectInt(cart_base_id)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(23, nbt.getInteger("base")); + } + + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java index c45c67367..c48734f4f 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java @@ -1,60 +1,24 @@ package com.hbm.entity.cart; -import com.hbm.inventory.OreDictManager.DictFrame; -import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; import net.minecraft.world.World; -public class EntityMinecartOre extends EntityMinecart { +public class EntityMinecartOre extends EntityMinecartNTM { public EntityMinecartOre(World p_i1712_1_) { super(p_i1712_1_); } - public EntityMinecartOre(World world, double x, double y, double z) { - super(world, x, y, z); - } - - @Override - public int getMinecartType() { - return -1; - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public AxisAlignedBB getCollisionBox(Entity entity) { - return entity.boundingBox; - } - - @Override - public AxisAlignedBB getBoundingBox() { - return this.boundingBox; - } - - @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public EntityMinecartOre(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY); + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.EMPTY); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java new file mode 100644 index 000000000..3657640d7 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java @@ -0,0 +1,35 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartPowder extends EntityMinecartNTM { + + public EntityMinecartPowder(World world) { + super(world); + } + + public EntityMinecartPowder(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.POWDER); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_powder_tex); + ResourceManager.cart_powder.renderPart("Powder"); + } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java new file mode 100644 index 000000000..74a45ad23 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java @@ -0,0 +1,37 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartSemtex extends EntityMinecartNTM { + + public EntityMinecartSemtex(World world) { + super(world); + } + + public EntityMinecartSemtex(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.SEMTEX); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_semtex_top); + ResourceManager.cart_powder.renderPart("SemtexTop"); + renderer.bindTexture(ResourceManager.cart_semtex_side); + ResourceManager.cart_powder.renderPart("SemtexSide"); + } +} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java new file mode 100644 index 000000000..3ad54fc6e --- /dev/null +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -0,0 +1,294 @@ +package com.hbm.entity.effect; + +import java.util.ArrayList; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +/* + * Toroidial Convection Simulation Explosion Effect + * Tor Ex + */ +public class EntityNukeTorex extends Entity { + + public double coreHeight = 3; + public double convectionHeight = 3; + public double torusWidth = 3; + public double rollerSize = 1; + public double heat = 1; + public ArrayList cloudlets = new ArrayList(); + public static int cloudletLife = 200; + + public EntityNukeTorex(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + @Override + protected void entityInit() { } + + @Override + public void onUpdate() { + this.ticksExisted++; + + int maxAge = 90 * 20; + + if(worldObj.isRemote) { + + double range = (torusWidth - rollerSize) * 0.25; + + if(this.ticksExisted + cloudletLife * 2 < maxAge) { + + int toSpawn = (int) Math.ceil(10 * getSimulationSpeed()); + + for(int i = 0; i < toSpawn; i++) { + double y = posY + rand.nextGaussian() - 3; //this.ticksExisted < 60 ? this.posY + this.coreHeight : posY + rand.nextGaussian() - 3; + Cloudlet cloud = new Cloudlet(posX + rand.nextGaussian() * range, y, posZ + rand.nextGaussian() * range, (float)(rand.nextDouble() * 2D * Math.PI), 0); + cloud.setScale(1F + this.ticksExisted * 0.001F, 5F); + cloudlets.add(cloud); + } + } + + int cloudCount = ticksExisted * 3; + if(ticksExisted < 200) { + for(int i = 0; i < cloudCount; i++) { + Vec3 vec = Vec3.createVectorHelper((ticksExisted + rand.nextDouble()) * 2, 0, 0); + float rot = (float) (Math.PI * 2 * rand.nextDouble()); + vec.rotateAroundY(rot); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0) + .setScale(5F, 2F) + .setMotion(0)); + } + } + + for(Cloudlet cloud : cloudlets) { + cloud.update(); + } + + coreHeight += 0.15; + torusWidth += 0.05; + rollerSize = torusWidth * 0.35; + convectionHeight = coreHeight + rollerSize; + + int maxHeat = 50; + heat = maxHeat - Math.pow((maxHeat * this.ticksExisted) / maxAge, 1); + + cloudlets.removeIf(x -> x.isDead); + } + + if(!worldObj.isRemote && this.ticksExisted > maxAge) { + this.setDead(); + } + } + + public double getSimulationSpeed() { + + if(EntityNukeTorex.this.ticksExisted > 45 * 20) { + int timeLeft = 1600 - EntityNukeTorex.this.ticksExisted; + return MathHelper.clamp_double((double) timeLeft / 900D, 0, 1); + } + + return 1.0D; + } + + public class Cloudlet { + + public double posX; + public double posY; + public double posZ; + public double prevPosX; + public double prevPosY; + public double prevPosZ; + public double motionX; + public double motionY; + public double motionZ; + public int age; + public float angle; + public boolean isDead = false; + float rangeMod = 1.0F; + public float colorMod = 1.0F; + public Vec3 color; + public Vec3 prevColor; + + public Cloudlet(double posX, double posY, double posZ, float angle, int age) { + this.posX = posX; + this.posY = posY; + this.posZ = posZ; + this.age = age; + this.angle = angle; + this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; + this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + + this.updateColor(); + } + + private void update() { + + age++; + + if(age > cloudletLife) { + this.isDead = true; + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); + double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); + double simPosZ = EntityNukeTorex.this.posZ + 0D; + + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + + double mult = this.motionMult * getSimulationSpeed(); + + this.posX += this.motionX * mult; + this.posY += this.motionY * mult; + this.posZ += this.motionZ * mult; + + this.updateColor(); + } + + /* simulated on a 2D-plane along the X/Y axis */ + private Vec3 getConvectionMotion(double simPosX, double simPosZ) { + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + return motion; + } + + private Vec3 getLiftMotion(double simPosX, double simPosZ) { + double scale = MathHelper.clamp_double(1D - (simPosX - (EntityNukeTorex.this.posX + torusWidth)), 0, 1); + + Vec3 motion = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, (EntityNukeTorex.this.posY + convectionHeight) - this.posY, EntityNukeTorex.this.posZ - this.posZ); + + motion = motion.normalize(); + motion.xCoord *= scale; + motion.yCoord *= scale; + motion.zCoord *= scale; + + return motion; + } + + private void updateColor() { + this.prevColor = this.color; + + double exX = EntityNukeTorex.this.posX; + double exY = EntityNukeTorex.this.posY + EntityNukeTorex.this.coreHeight; + double exZ = EntityNukeTorex.this.posZ; + + double distX = exX - posX; + double distY = exY - posY; + double distZ = exZ - posZ; + + double distSq = distX * distX + distY * distY + distZ * distZ; + distSq /= EntityNukeTorex.this.heat; + double dist = Math.sqrt(distSq); + + dist = Math.max(dist, 1); + double col = 2D / dist; + + this.color = Vec3.createVectorHelper( + Math.max(col * 2, 0.25), + Math.max(col * 1.5, 0.25), + Math.max(col * 0.5, 0.25) + ); + } + + public Vec3 getInterpPos(float interp) { + return Vec3.createVectorHelper( + prevPosX + (posX - prevPosX) * interp, + prevPosY + (posY - prevPosY) * interp, + prevPosZ + (posZ - prevPosZ) * interp); + } + + public Vec3 getInterpColor(float interp) { + return Vec3.createVectorHelper( + prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp, + prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp, + prevColor.zCoord + (color.zCoord - prevColor.zCoord) * interp); + } + + public float getAlpha() { + return 1F - ((float)age / (float)cloudletLife); + } + + private float startingScale = 1; + private float growingScale = 5F; + + public float getScale() { + return startingScale + ((float)age / (float)cloudletLife) * growingScale; + } + + public Cloudlet setScale(float start, float grow) { + this.startingScale = start; + this.growingScale = grow; + return this; + } + + private double motionMult = 1F; + + public Cloudlet setMotion(double mult) { + this.motionMult = mult; + return this; + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } +} diff --git a/src/main/java/com/hbm/entity/item/EntitytemWaste.java b/src/main/java/com/hbm/entity/item/EntityItemWaste.java similarity index 64% rename from src/main/java/com/hbm/entity/item/EntitytemWaste.java rename to src/main/java/com/hbm/entity/item/EntityItemWaste.java index 64cf56896..8f307c96b 100644 --- a/src/main/java/com/hbm/entity/item/EntitytemWaste.java +++ b/src/main/java/com/hbm/entity/item/EntityItemWaste.java @@ -5,17 +5,17 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.world.World; -public class EntitytemWaste extends EntityItem { +public class EntityItemWaste extends EntityItem { - public EntitytemWaste(World world) { + public EntityItemWaste(World world) { super(world); } - public EntitytemWaste(World world, double x, double y, double z) { + public EntityItemWaste(World world, double x, double y, double z) { super(world, x, y, z); } - public EntitytemWaste(World world, double x, double y, double z, ItemStack stack) { + public EntityItemWaste(World world, double x, double y, double z, ItemStack stack) { super(world, x, y, z, stack); } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index ebe787a53..cac247fb5 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -1,7 +1,14 @@ package com.hbm.entity.item; -import com.hbm.blocks.ModBlocks; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IEnterableBlock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -9,145 +16,237 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class EntityMovingItem extends Entity { +public class EntityMovingItem extends Entity implements IConveyorItem { + + private int turnProgress; + private double syncPosX; + private double syncPosY; + private double syncPosZ; + @SideOnly(Side.CLIENT) + private double velocityX; + @SideOnly(Side.CLIENT) + private double velocityY; + @SideOnly(Side.CLIENT) + private double velocityZ; public EntityMovingItem(World p_i1582_1_) { super(p_i1582_1_); - this.setSize(0.5F, 0.25F); - this.noClip = true; + this.setSize(0.375F, 0.375F); + this.noClip = true; } - - public void setItemStack(ItemStack stack) { - - this.getDataWatcher().updateObject(10, stack); - this.getDataWatcher().setObjectWatched(10); - } - - public ItemStack getItemStack() { - - ItemStack stack = this.getDataWatcher().getWatchableObjectItemStack(10); - return stack == null ? new ItemStack(Blocks.stone) : stack; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean interactFirst(EntityPlayer player) { - + + public void setItemStack(ItemStack stack) { + this.getDataWatcher().updateObject(10, stack); + this.getDataWatcher().setObjectWatched(10); + } + + public ItemStack getItemStack() { + + ItemStack stack = this.getDataWatcher().getWatchableObjectItemStack(10); + return stack == null ? new ItemStack(Blocks.stone) : stack; + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean interactFirst(EntityPlayer player) { + if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) { this.setDead(); } - - return false; - } - - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(!worldObj.isRemote) { - this.setDead(); - worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, this.getItemStack())); - } - return true; - } - - public boolean canAttackWithItem() { - return true; - } - - public boolean hitByEntity(Entity attacker) { - - if(attacker instanceof EntityPlayer) { - } - - this.setDead(); - - return false; - } - - protected boolean canTriggerWalking() { - return true; - } - - private int schedule = 0; - - public void onUpdate() { - - if(!worldObj.isRemote) { - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) != ModBlocks.conveyor) { - this.setDead(); - EntityItem item = new EntityItem(worldObj, posX, posY, posZ, this.getItemStack()); - item.motionX = this.motionX * 3; - item.motionY = 0.1; - item.motionZ = this.motionZ * 3; - item.velocityChanged = true; - worldObj.spawnEntityInWorld(item); - return; - } - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) == ModBlocks.conveyor) { - - if(schedule <= 0) { - ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ))); - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) + 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { - dir = ForgeDirection.DOWN; - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) - 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { - dir = ForgeDirection.UP; - } - - double speed = 0.1; - - schedule = (int) (1 / speed); - motionX = -speed * dir.offsetX; - motionY = -speed * dir.offsetY; - motionZ = -speed * dir.offsetZ; - - this.velocityChanged = true; - } - this.lastTickPosX = this.prevPosX = this.posX; - this.lastTickPosY = this.prevPosY = this.posY; - this.lastTickPosZ = this.prevPosZ = this.posZ; - - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); - schedule--; - } - } + return false; + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + this.setDead(); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, this.getItemStack())); + } + return true; + } + + public boolean canAttackWithItem() { + return true; + } + + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + } + + this.setDead(); + + return false; + } + + protected boolean canTriggerWalking() { + return true; + } + + private int schedule = 0; + + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + + if(!worldObj.isRemote) { + + int blockX = (int) Math.floor(posX); + int blockY = (int) Math.floor(posY); + int blockZ = (int) Math.floor(posZ); + + Block b = worldObj.getBlock(blockX, blockY, blockZ); + + if(!(b instanceof IConveyorBelt)) { + this.setDead(); + EntityItem item = new EntityItem(worldObj, posX + motionX * 2, posY + motionY * 2, posZ + motionZ * 2, this.getItemStack()); + item.motionX = this.motionX * 2; + item.motionY = 0.1; + item.motionZ = this.motionZ * 2; + item.velocityChanged = true; + worldObj.spawnEntityInWorld(item); + return; + } else { + + Vec3 target = ((IConveyorBelt) b).getTravelLocation(worldObj, blockX, blockY, blockZ, Vec3.createVectorHelper(posX, posY, posZ), 0.0625); + //this.worldObj.spawnParticle("reddust", target.xCoord, target.yCoord, target.zCoord, 0, 0, 0); + this.motionX = target.xCoord - posX; + this.motionY = target.yCoord - posY; + this.motionZ = target.zCoord - posZ; + } + + /*if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) == ModBlocks.conveyor) { + + if(schedule <= 0) { + ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ))); + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY) + 1, (int) Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { + dir = ForgeDirection.DOWN; + } + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY) - 1, (int) Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { + dir = ForgeDirection.UP; + } + + double speed = 0.0625; + + schedule = (int) (1 / speed); + motionX = -speed * dir.offsetX; + motionY = -speed * dir.offsetY; + motionZ = -speed * dir.offsetZ; + + this.velocityChanged = true; + } + + schedule--; + }*/ + + BlockPos lastPos = new BlockPos(posX, posY, posZ); + this.moveEntity(motionX, motionY, motionZ); + BlockPos newPos = new BlockPos(posX, posY, posZ); + + if(!lastPos.equals(newPos)) { + + Block newBlock = worldObj.getBlock(newPos.getX(), newPos.getY(), newPos.getZ()); + + if(newBlock instanceof IEnterableBlock) { + + ForgeDirection dir = ForgeDirection.UNKNOWN; + + if(lastPos.getX() > newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.POS_X; + else if(lastPos.getX() < newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.NEG_X; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() > newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.POS_Y; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() < newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.NEG_Y; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() > newPos.getZ()) dir = Library.POS_Z; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() < newPos.getZ()) dir = Library.NEG_Z; + + IEnterableBlock enterable = (IEnterableBlock) newBlock; + + if(enterable.canEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this)) { + + enterable.onEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this); + this.setDead(); + } + } else { + + if(!newBlock.getMaterial().isSolid()) { + + newBlock = worldObj.getBlock(newPos.getX(), newPos.getY() - 1, newPos.getZ()); + + if(newBlock instanceof IEnterableBlock) { + + IEnterableBlock enterable = (IEnterableBlock) newBlock; + if(enterable.canEnter(worldObj, newPos.getX(), newPos.getY() - 1, newPos.getZ(), ForgeDirection.UP, this)) { + enterable.onEnter(worldObj, newPos.getX(), newPos.getY() - 1, newPos.getZ(), ForgeDirection.UP, this); + this.setDead(); + } + } + } + } + } + } + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) { + this.velocityX = this.motionX = p_70016_1_; + this.velocityY = this.motionY = p_70016_3_; + this.velocityZ = this.motionZ = p_70016_5_; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree + 2; //use 4-ply for extra smoothness + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } @Override - protected void entityInit() { - this.getDataWatcher().addObjectByDataType(10, 5); - } + protected void entityInit() { + this.getDataWatcher().addObjectByDataType(10, 5); + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { - NBTTagCompound compound = nbt.getCompoundTag("Item"); - this.setItemStack(ItemStack.loadItemStackFromNBT(compound)); + NBTTagCompound compound = nbt.getCompoundTag("Item"); + this.setItemStack(ItemStack.loadItemStackFromNBT(compound)); - ItemStack stack = getDataWatcher().getWatchableObjectItemStack(10); - - schedule = nbt.getInteger("schedule"); + ItemStack stack = getDataWatcher().getWatchableObjectItemStack(10); - if (stack == null || stack.stackSize <= 0) - this.setDead(); + schedule = nbt.getInteger("schedule"); + + if(stack == null || stack.stackSize <= 0) + this.setDead(); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { - if (this.getItemStack() != null) - nbt.setTag("Item", this.getItemStack().writeToNBT(new NBTTagCompound())); - - nbt.setInteger("schedule", schedule); - } + if(this.getItemStack() != null) + nbt.setTag("Item", this.getItemStack().writeToNBT(new NBTTagCompound())); + nbt.setInteger("schedule", schedule); + } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 1a02f2fc6..820bdfc3b 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.GeneralConfig; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBombletZeta; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityRocketHoming; @@ -14,6 +13,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.LoopedEntitySoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -106,8 +106,8 @@ public class EntityBomber extends Entity implements IChunkLoader { if(this.health <= 0) { motionY -= 0.025; - for(int i = 0; i < 10; i++) - this.worldObj.spawnEntityInWorld(new EntityGasFlameFX(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0)); + for(int i = 0; i < 10; i++) + ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); if(worldObj.getBlock((int)posX, (int)posY, (int)posZ).isNormalCube() && !worldObj.isRemote) { this.setDead(); diff --git a/src/main/java/com/hbm/entity/missile/EntityCarrier.java b/src/main/java/com/hbm/entity/missile/EntityCarrier.java index 405b6dbc7..9f1d6934a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityCarrier.java +++ b/src/main/java/com/hbm/entity/missile/EntityCarrier.java @@ -1,17 +1,20 @@ package com.hbm.entity.missile; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemSatChip; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.satellites.Satellite; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -41,48 +44,33 @@ public class EntityCarrier extends EntityThrowable { if(!worldObj.isRemote) { for(int i = 0; i < 10; i++) { - EntityGasFlameFX fx = new EntityGasFlameFX(worldObj); - fx.posY = posY - 0.25D; - fx.posX = posX + rand.nextGaussian() * 0.75D; - fx.posZ = posZ + rand.nextGaussian() * 0.75D; - fx.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); } if(this.dataWatcher.getWatchableObjectInt(8) == 1) for(int i = 0; i < 2; i++) { - EntityGasFlameFX fx1 = new EntityGasFlameFX(worldObj); - fx1.posY = posY - 0.25D; - fx1.posX = posX + rand.nextGaussian() * 0.15D + 2.5D; - fx1.posZ = posZ + rand.nextGaussian() * 0.15D; - fx1.motionY = -0.2D; + NBTTagCompound d1 = new NBTTagCompound(); + d1.setString("type", "gasfire"); + d1.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d1, posX + rand.nextGaussian() * 0.75D + 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx1); - - EntityGasFlameFX fx2 = new EntityGasFlameFX(worldObj); - fx2.posY = posY - 0.25D; - fx2.posX = posX + rand.nextGaussian() * 0.15D - 2.5D; - fx2.posZ = posZ + rand.nextGaussian() * 0.15D; - fx2.motionY = -0.2D; + NBTTagCompound d2 = new NBTTagCompound(); + d2.setString("type", "gasfire"); + d2.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d2, posX + rand.nextGaussian() * 0.75D - 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx2); - - EntityGasFlameFX fx3 = new EntityGasFlameFX(worldObj); - fx3.posY = posY - 0.25D; - fx3.posX = posX + rand.nextGaussian() * 0.15D; - fx3.posZ = posZ + rand.nextGaussian() * 0.15D + 2.5D; - fx3.motionY = -0.2D; + NBTTagCompound d3 = new NBTTagCompound(); + d3.setString("type", "gasfire"); + d3.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d3, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D + 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx3); - - EntityGasFlameFX fx4 = new EntityGasFlameFX(worldObj); - fx4.posY = posY - 0.25D; - fx4.posX = posX + rand.nextGaussian() * 0.15D; - fx4.posZ = posZ + rand.nextGaussian() * 0.15D - 2.5D; - fx4.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx4); + NBTTagCompound d4 = new NBTTagCompound(); + d4.setString("type", "gasfire"); + d4.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d4, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D - 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java index b7261ef09..b32840bc2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java +++ b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java @@ -1,8 +1,8 @@ package com.hbm.entity.missile; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; +import com.hbm.util.ParticleUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -66,17 +66,8 @@ public class EntityMinerRocket extends Entity { } } - if(dataWatcher.getWatchableObjectInt(16) != 1) { - - if(ticksExisted % 2 == 0) { - EntityGasFlameFX fx = new EntityGasFlameFX(worldObj); - fx.posY = posY - 0.5D; - fx.posX = posX; - fx.posZ = posZ; - fx.motionY = -1D; - - worldObj.spawnEntityInWorld(fx); - } + if(dataWatcher.getWatchableObjectInt(16) != 1 && !worldObj.isRemote && ticksExisted % 2 == 0) { + ParticleUtil.spawnGasFlame(worldObj, posX, posY - 0.5, posZ, 0.0, -1.0, 0.0); } if(dataWatcher.getWatchableObjectInt(16) == 2 && posY > 300) diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java deleted file mode 100644 index a0812bd94..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntityGasFlameFX extends EntityModFX -{ - float smokeParticleScale; - public int particleAge; - public int maxAge; - private static final String __OBFID = "CL_00000924"; - - public EntityGasFlameFX(World world) { - super(world, 0, 0, 0); - } - - public EntityGasFlameFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityGasFlameFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 30) - { - maxAge = rand.nextInt(13) + 30; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY += 0.0075D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java new file mode 100644 index 000000000..1585ade7b --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -0,0 +1,176 @@ +package com.hbm.entity.projectile; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.items.weapon.ItemAmmoArty; +import com.hbm.items.weapon.ItemAmmoArty.ArtilleryShell; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; + +public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoader { + + private Ticket loaderTicket; + + private int turnProgress; + private double syncPosX; + private double syncPosY; + private double syncPosZ; + private double syncYaw; + private double syncPitch; + @SideOnly(Side.CLIENT) + private double velocityX; + @SideOnly(Side.CLIENT) + private double velocityY; + @SideOnly(Side.CLIENT) + private double velocityZ; + + private double targetX; + private double targetY; + private double targetZ; + private boolean shouldWhistle = false; + private boolean didWhistle = false; + + public EntityArtilleryShell(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + public EntityArtilleryShell setType(int type) { + this.dataWatcher.updateObject(10, type); + return this; + } + + public ArtilleryShell getType() { + try { + return ItemAmmoArty.types[this.dataWatcher.getWatchableObjectInt(10)]; + } catch(Exception ex) { + return ItemAmmoArty.types[0]; + } + } + + public void setTarget(int x, int y, int z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; + } + + public void setWhistle(boolean whistle) { + this.shouldWhistle = whistle; + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + super.onUpdate(); + + if(!didWhistle && this.shouldWhistle) { + double speed = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + double deltaX = this.posX - this.targetX; + double deltaZ = this.posZ - this.targetZ; + double dist = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ); + + if(speed * 18 > dist) { + worldObj.playSoundEffect(this.targetX, this.targetY, this.targetZ, "hbm:turret.mortarWhistle", 5.0F, 1.0F); + this.didWhistle = true; + } + } + + } else { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + double d = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + d / (double) this.turnProgress); + this.rotationPitch = (float)((double)this.rotationPitch + (this.syncPitch - (double)this.rotationPitch) / (double)this.turnProgress); + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) { + this.velocityX = this.motionX = p_70016_1_; + this.velocityY = this.motionY = p_70016_3_; + this.velocityZ = this.motionZ = p_70016_5_; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.syncYaw = yaw; + this.syncPitch = pitch; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(!worldObj.isRemote) { + /*Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + this.worldObj.newExplosion(this, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, false); + this.setDead();*/ + + this.getType().onImpact(this, mop); + } + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + } + + @Override + protected float getAirDrag() { + return 1.0F; + } + + @Override + public double getGravityVelocity() { + return 9.81 * 0.05; + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBullet.java b/src/main/java/com/hbm/entity/projectile/EntityBullet.java index ee6300933..acabc493d 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBullet.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBullet.java @@ -762,11 +762,6 @@ public class EntityBullet extends Entity implements IProjectile { if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 - && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); this.setDead(); diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java index 7c5fa0031..6ed531ce3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java @@ -483,11 +483,6 @@ public class EntityCombineBall extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java index 09e0e9cf3..0c889a8c3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java @@ -507,11 +507,6 @@ public class EntityDischarge extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityFire.java b/src/main/java/com/hbm/entity/projectile/EntityFire.java index cee78465b..a0d6ad316 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityFire.java +++ b/src/main/java/com/hbm/entity/projectile/EntityFire.java @@ -484,11 +484,6 @@ public class EntityFire extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityLN2.java b/src/main/java/com/hbm/entity/projectile/EntityLN2.java index 0c0e3ab6d..56d283091 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityLN2.java +++ b/src/main/java/com/hbm/entity/projectile/EntityLN2.java @@ -481,11 +481,6 @@ public class EntityLN2 extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java index 5d98e6a42..c92fb2ae6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java @@ -121,11 +121,12 @@ public class EntityRBMKDebris extends EntityDebrisBase { } } - if(this.getType() == DebrisType.FUEL) { - List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10)); + if(this.getType() == DebrisType.FUEL || this.getType() == DebrisType.GRAPHITE) { + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(2.5, 2.5, 2.5)); + int level = this.getType() == DebrisType.FUEL ? 9 : 4; for(EntityLivingBase e : entities) { - e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 9)); + e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, level)); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocket.java b/src/main/java/com/hbm/entity/projectile/EntityRocket.java index 2d2ae1eb1..9adaeaa04 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocket.java @@ -559,11 +559,6 @@ public class EntityRocket extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java index 7cbec714a..c2974df2f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java @@ -557,11 +557,6 @@ public class EntitySchrab extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java new file mode 100644 index 000000000..cfbfabc17 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -0,0 +1,311 @@ +package com.hbm.entity.projectile; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +/** + * Near-identical copy of EntityThrowable but deobfuscated & untangled + * @author hbm + * + */ +public abstract class EntityThrowableNT extends Entity implements IProjectile { + + private int stuckBlockX = -1; + private int stuckBlockY = -1; + private int stuckBlockZ = -1; + private Block stuckBlock; + protected boolean inGround; + public int throwableShake; + private EntityLivingBase thrower; + private String throwerName; + private int ticksInGround; + private int ticksInAir; + + public EntityThrowableNT(World world) { + super(world); + this.setSize(0.25F, 0.25F); + } + + @Override + protected void entityInit() { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double dist) { + + double perimeter = this.boundingBox.getAverageEdgeLength() * 4.0D; + perimeter *= 64.0D; + return dist < perimeter * perimeter; + } + + public EntityThrowableNT(World world, EntityLivingBase thrower) { + super(world); + this.thrower = thrower; + this.setSize(0.25F, 0.25F); + this.setLocationAndAngles(thrower.posX, thrower.posY + (double) thrower.getEyeHeight(), thrower.posZ, thrower.rotationYaw, thrower.rotationPitch); + this.posX -= (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); + this.posY -= 0.1D; + this.posZ -= (double) (MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); + this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + float velocity = 0.4F; + this.motionX = (double) (-MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI) * velocity); + this.motionZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI) * velocity); + this.motionY = (double) (-MathHelper.sin((this.rotationPitch + this.throwAngle()) / 180.0F * (float) Math.PI) * velocity); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, this.throwForce(), 1.0F); + } + + public EntityThrowableNT(World world, double x, double y, double z) { + super(world); + this.ticksInGround = 0; + this.setSize(0.25F, 0.25F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + protected float throwForce() { + return 1.5F; + } + + protected float throwAngle() { + return 0.0F; + } + + @Override + public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { + float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); + motionX /= (double) throwLen; + motionY /= (double) throwLen; + motionZ /= (double) throwLen; + motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX *= (double) velocity; + motionY *= (double) velocity; + motionZ *= (double) velocity; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + float hyp = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(motionY, (double) hyp) * 180.0D / Math.PI); + this.ticksInGround = 0; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double x, double y, double z) { + this.motionX = x; + this.motionY = y; + this.motionZ = z; + + if(this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { + float hyp = MathHelper.sqrt_double(x * x + z * z); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(x, z) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(y, (double) hyp) * 180.0D / Math.PI); + } + } + + @Override + public void onUpdate() { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + super.onUpdate(); + + if(this.throwableShake > 0) { + --this.throwableShake; + } + + if(this.inGround) { + if(this.worldObj.getBlock(this.stuckBlockX, this.stuckBlockY, this.stuckBlockZ) == this.stuckBlock) { + ++this.ticksInGround; + + if(this.groundDespawn() > 0 && this.ticksInGround == this.groundDespawn()) { + this.setDead(); + } + + return; + } + + this.inGround = false; + this.motionX *= (double) (this.rand.nextFloat() * 0.2F); + this.motionY *= (double) (this.rand.nextFloat() * 0.2F); + this.motionZ *= (double) (this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } else { + ++this.ticksInAir; + } + + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if(mop != null) { + nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + } + + if(!this.worldObj.isRemote) { + + Entity hitEntity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double nearest = 0.0D; + EntityLivingBase thrower = this.getThrower(); + + for(int j = 0; j < list.size(); ++j) { + Entity entity = (Entity) list.get(j); + + if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= 5)) { + double hitbox = 0.3F; + AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); + MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); + + if(hitMop != null) { + double dist = pos.distanceTo(hitMop.hitVec); + + if(dist < nearest || nearest == 0.0D) { + hitEntity = entity; + nearest = dist; + } + } + } + } + + if(hitEntity != null) { + mop = new MovingObjectPosition(hitEntity); + } + } + + if(mop != null) { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { + this.setInPortal(); + } else { + this.onImpact(mop); + } + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + ; + } + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float drag = this.getAirDrag(); + double gravity = this.getGravityVelocity(); + + if(this.isInWater()) { + for(int i = 0; i < 4; ++i) { + float f = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double) f, this.posY - this.motionY * (double) f, this.posZ - this.motionZ * (double) f, this.motionX, this.motionY, this.motionZ); + } + + drag = this.getWaterDrag(); + } + + this.motionX *= (double) drag; + this.motionY *= (double) drag; + this.motionZ *= (double) drag; + this.motionY -= gravity; + this.setPosition(this.posX, this.posY, this.posZ); + } + + public double getGravityVelocity() { + return 0.03D; + } + + protected abstract void onImpact(MovingObjectPosition mop); + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setShort("xTile", (short) this.stuckBlockX); + nbt.setShort("yTile", (short) this.stuckBlockY); + nbt.setShort("zTile", (short) this.stuckBlockZ); + nbt.setByte("inTile", (byte) Block.getIdFromBlock(this.stuckBlock)); + nbt.setByte("shake", (byte) this.throwableShake); + nbt.setByte("inGround", (byte) (this.inGround ? 1 : 0)); + + if((this.throwerName == null || this.throwerName.length() == 0) && this.thrower != null && this.thrower instanceof EntityPlayer) { + this.throwerName = this.thrower.getCommandSenderName(); + } + + nbt.setString("ownerName", this.throwerName == null ? "" : this.throwerName); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + this.stuckBlockX = nbt.getShort("xTile"); + this.stuckBlockY = nbt.getShort("yTile"); + this.stuckBlockZ = nbt.getShort("zTile"); + this.stuckBlock = Block.getBlockById(nbt.getByte("inTile") & 255); + this.throwableShake = nbt.getByte("shake") & 255; + this.inGround = nbt.getByte("inGround") == 1; + this.throwerName = nbt.getString("ownerName"); + + if(this.throwerName != null && this.throwerName.length() == 0) { + this.throwerName = null; + } + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + public EntityLivingBase getThrower() { + if(this.thrower == null && this.throwerName != null && this.throwerName.length() > 0) { + this.thrower = this.worldObj.getPlayerEntityByName(this.throwerName); + } + return this.thrower; + } + + /* ================================== Additional Getters =====================================*/ + + protected float getAirDrag() { + return 0.99F; + } + + protected float getWaterDrag() { + return 0.8F; + } + + protected int groundDespawn() { + return 1200; + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java b/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java index 4e3280db9..155667459 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java @@ -116,10 +116,11 @@ public class EntityZirnoxDebris extends EntityDebrisBase { } if(this.getType() == DebrisType.ELEMENT || this.getType() == DebrisType.GRAPHITE) { - List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10)); - + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(2.5, 2.5, 2.5)); + + int level = this.getType() == DebrisType.ELEMENT ? 7 : 4; for(EntityLivingBase e : entities) { - e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 4)); + e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, level)); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 12b7f6840..fd0f431f1 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,12 +3,12 @@ package com.hbm.explosion; import java.util.List; import java.util.Random; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; @@ -57,11 +57,7 @@ public class ExplosionLarge { vec.rotateAroundY(rand.nextInt(360)); for(int i = 0; i < count; i++) { - EntityGasFlameFX fx = new EntityGasFlameFX(world, x, y, z, 0.0, 0.0, 0.0); - fx.motionY = 0; - fx.motionX = vec.xCoord; - fx.motionZ = vec.zCoord; - world.spawnEntityInWorld(fx); + ParticleUtil.spawnGasFlame(world, x, y, z, vec.xCoord, 0.0, vec.zCoord); vec.rotateAroundY(360 / count); } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java index 4131b4852..a36975d17 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java @@ -2,50 +2,197 @@ package com.hbm.explosion; import java.util.ArrayList; import java.util.List; -import java.util.Random; - -import com.hbm.interfaces.Untested; import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ExplosionNukeRay { - - List affectedBlocks = new ArrayList(); + + List affectedBlocks = new ArrayList<>(); int posX; int posY; int posZ; - Random rand = new Random(); World world; + int strength; + int length; + int processed; + + int gspNumMax; + int gspNum; + double gspX; + double gspY; + + public boolean isAusf3Complete = false; + + /*[[unused]] int count; int speed; - int processed; - int length; int startY; int startCir; - public boolean isAusf3Complete = false; - + Random rand = new Random(); private double overrideRange = 0; - + */ + public ExplosionNukeRay(World world, int x, int y, int z, int strength, int count, int speed, int length) { this.world = world; this.posX = x; this.posY = y; this.posZ = z; this.strength = strength; - this.count = count; - this.speed = speed; this.length = length; //Ausf3, must be double - //this.startY = strength; //Mk 4.5, must be int32 + + // Total number of points + this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); + this.gspNum = 1; + + // The beginning of the generalized spiral points + this.gspX = Math.PI; + this.gspY = 0.0; + + + /*[[unused]] + // this.startY = strength; this.startY = 0; this.startCir = 0; + + this.count = count; + this.speed = speed; //starts at around 80, becomes 8 at length 500 this.overrideRange = Math.max((Math.log(length) * 4 - 2.5D) * 10, 0); + */ + } + + // Raise one generalized spiral points + private void generateGspUp(){ + if (this.gspNum < this.gspNumMax) { + int k = this.gspNum + 1; + double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); + this.gspX = Math.acos(hk); + + double prev_lon = this.gspY; + double lon = prev_lon + 3.6 / Math.sqrt(this.gspNumMax) / Math.sqrt(1.0 - hk * hk); + this.gspY = lon % (Math.PI * 2); + } else { + this.gspX = 0.0; + this.gspY = 0.0; + } + this.gspNum++; + } + + // Get Cartesian coordinates for spherical coordinates + private Vec3 getSpherical2cartesian(){ + double dx = Math.sin(this.gspX) * Math.cos(this.gspY); + double dz = Math.sin(this.gspX) * Math.sin(this.gspY); + double dy = Math.cos(this.gspX); + return Vec3.createVectorHelper(dx, dy, dz); + } + + //currently used by mk4 + public void collectTipMk4_5(int count) { + + int amountProcessed = 0; + + while (this.gspNumMax >= this.gspNum){ + // Get Cartesian coordinates for spherical coordinates + Vec3 vec = this.getSpherical2cartesian(); + + int length = (int)Math.ceil(strength); + float res = strength; + FloatTriplet lastPos = null; + + for(int i = 0; i < length; i ++) { + + if(i > this.length) + break; + + float x0 = (float) (posX + (vec.xCoord * i)); + float y0 = (float) (posY + (vec.yCoord * i)); + float z0 = (float) (posZ + (vec.zCoord * i)); + + double fac = 100 - ((double) i) / ((double) length) * 100; + fac *= 0.07D; + + if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) + res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); + else + res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); + + if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { + lastPos = new FloatTriplet(x0, y0, z0); + } + + if(res <= 0 || i + 1 >= this.length) { + if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { + affectedBlocks.add(lastPos); + } + break; + } + } + // Raise one generalized spiral points + this.generateGspUp(); + + amountProcessed++; + if(amountProcessed >= count) { + return; + } + } + isAusf3Complete = true; + } + + public void processTip(int count) { + + int processedBlocks = 0; + int braker = 0; + + for(int l = 0; l < Integer.MAX_VALUE; l++) { + + if(processedBlocks >= count) + return; + + if(braker >= count * 50) + return; + + if(l > affectedBlocks.size() - 1) + break; + + if(affectedBlocks.isEmpty()) + return; + + int in = affectedBlocks.size() - 1; + + float x = affectedBlocks.get(in).xCoord; + float y = affectedBlocks.get(in).yCoord; + float z = affectedBlocks.get(in).zCoord; + + world.setBlock((int)x, (int)y, (int)z, Blocks.air); + + Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); + double pX = vec.xCoord / vec.lengthVector(); + double pY = vec.yCoord / vec.lengthVector(); + double pZ = vec.zCoord / vec.lengthVector(); + + for(int i = 0; i < vec.lengthVector(); i ++) { + int x0 = (int)(posX + pX * i); + int y0 = (int)(posY + pY * i); + int z0 = (int)(posZ + pZ * i); + + if(!world.isAirBlock(x0, y0, z0)) { + world.setBlock(x0, y0, z0, Blocks.air); + processedBlocks++; + } + + braker++; + } + + affectedBlocks.remove(in); + } + + processed += count; } /*public void processBunch(int count) { @@ -102,58 +249,7 @@ public class ExplosionNukeRay { } } }*/ - - public void processTip(int count) { - - int processedBlocks = 0; - int braker = 0; - - for(int l = 0; l < Integer.MAX_VALUE; l++) { - - if(processedBlocks >= count) - return; - - if(braker >= count * 50) - return; - - if(l > affectedBlocks.size() - 1) - break; - - if(affectedBlocks.isEmpty()) - return; - - int in = affectedBlocks.size() - 1; - - float x = affectedBlocks.get(in).xCoord; - float y = affectedBlocks.get(in).yCoord; - float z = affectedBlocks.get(in).zCoord; - - world.setBlock((int)x, (int)y, (int)z, Blocks.air); - - Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); - double pX = vec.xCoord / vec.lengthVector(); - double pY = vec.yCoord / vec.lengthVector(); - double pZ = vec.zCoord / vec.lengthVector(); - - for(int i = 0; i < vec.lengthVector(); i ++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); - - if(!world.isAirBlock(x0, y0, z0)) { - world.setBlock(x0, y0, z0, Blocks.air); - processedBlocks++; - } - - braker++; - } - - affectedBlocks.remove(in); - } - - processed += count; - } - +/* @Untested //override range public void collectTip(int count) { @@ -169,7 +265,7 @@ public class ExplosionNukeRay { int length = (int)Math.ceil(strength); float res = strength; - + FloatTriplet lastPos = null; for(int i = 0; i < length; i ++) { @@ -185,21 +281,19 @@ public class ExplosionNukeRay { res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 1.25); else res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - /* - * Blast resistance calculations are still done to preserve the general shape, - * but if the blast were to be stopped within this range we go through with it anyway. - * There is currently no blast resistance limit on this, could change in the future. - */ + + //Blast resistance calculations are still done to preserve the general shape, + //but if the blast were to be stopped within this range we go through with it anyway. + //There is currently no blast resistance limit on this, could change in the future. boolean inOverrideRange = this.overrideRange >= length; if((res > 0 || inOverrideRange) && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { lastPos = new FloatTriplet(x0, y0, z0); } - /* - * Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range - */ + + // Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range + if((res <= 0 && !inOverrideRange) || i + 1 >= this.length) { if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); @@ -208,7 +302,8 @@ public class ExplosionNukeRay { } } } - +*/ + /* public void collectTipExperimental(int count) { for(int k = 0; k < count; k++) { @@ -223,7 +318,7 @@ public class ExplosionNukeRay { int length = (int)Math.ceil(strength); float res = strength; - + FloatTriplet lastPos = null; for(int i = 0; i < length; i ++) { @@ -246,7 +341,7 @@ public class ExplosionNukeRay { if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { lastPos = new FloatTriplet(x0, y0, z0); } - + if(res <= 0 || i + 1 >= this.length) { if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); @@ -255,7 +350,7 @@ public class ExplosionNukeRay { } } } - + */ /*public void collectTipAusf3(int count) { int amountProcessed = 0; @@ -328,94 +423,6 @@ public class ExplosionNukeRay { isAusf3Complete = true; }*/ - - //currently used by mk4 - public void collectTipMk4_5(int count) { - - int amountProcessed = 0; - - double bow = Math.PI * this.strength; - double bowCount = Math.ceil(bow); - - //Axial - //StartY starts at this.length - for(int v = startY; v <= bowCount; v++) { - - float part = (float) (Math.PI/bow); - float rot = part * -v; - - Vec3 heightVec = Vec3.createVectorHelper(0, -strength, 0); - heightVec.rotateAroundZ(rot); - - double y = heightVec.yCoord; - - double sectionRad = Math.sqrt(Math.pow(strength, 2) - Math.pow(y, 2)); - double circumference = 2 * Math.PI * sectionRad; - - //if(y < 2 && y > -2) - // circumference *= 1.25D; - - //circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(sectionRad, y, 0); - vec = vec.normalize(); - /*if(y > 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - /*if(y < 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = v; - startCir = startCir + 1; - return; - } - } - } - - isAusf3Complete = true; - } //Dysfunctional, punches hole into ground /*public void collectTipAusf3(int count) { diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 2e991b86e..d9e29cc43 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -28,6 +28,9 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int totalDashCount = 0; public int stamina = 0; + public static final int plinkCooldownLength = 10; + public int plinkCooldown = 0; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } @@ -103,6 +106,15 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int getDashCount() { return this.totalDashCount; } + + public static void plink(EntityPlayer player, String sound, float volume, float pitch) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.plinkCooldown <= 0) { + player.worldObj.playSoundAtEntity(player, sound, volume, pitch); + props.plinkCooldown = props.plinkCooldownLength; + } + } @Override public void init(Entity entity, World world) { } diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index d4a314b4a..f98f4ba0b 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -110,7 +110,6 @@ public class BobmazonOfferFactory { weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 20 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 35 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 80 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 15 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap, 4), Requirement.ASSEMBLY, 25 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 90 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.det_cord, 16), Requirement.ASSEMBLY, 50 * inflation)); @@ -247,7 +246,7 @@ public class BobmazonOfferFactory { new ItemStack(Items.dye, 64) ), Requirement.HIDDEN, 64)); - special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the heard to reach spots", 0x00ff00, 0x008000, + special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the hard to reach spots", 0x00ff00, 0x008000, new ItemStack(ModItems.gun_calamity), new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 8b9a13761..06b4a9c7e 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -83,8 +83,9 @@ public class EntityEffectHandler { handleRadiation(entity); handleDigamma(entity); handleLungDisease(entity); - + handleDashing(entity); + handlePlinking(entity); } private static void handleContamination(EntityLivingBase entity) { @@ -517,4 +518,15 @@ public class EntityEffectHandler { } } + + private static void handlePlinking(Entity entity) { + + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)entity; + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.plinkCooldown > 0) + props.plinkCooldown--; + } + } } diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index c7ca18eae..be29e2440 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -14,12 +14,11 @@ public class FuelHandler implements IFuelHandler { int single = 200; - if(fuel.getItem().equals(ModItems.solid_fuel)) - return single * 16; - if(fuel.getItem().equals(ModItems.solid_fuel_presto)) - return single * 40; - if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) - return single * 200; + if(fuel.getItem().equals(ModItems.solid_fuel)) return single * 16; + if(fuel.getItem().equals(ModItems.solid_fuel_presto)) return single * 40; + if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) return single * 200; + if(fuel.getItem().equals(ModItems.rocket_fuel)) return single * 32; + if(fuel.getItem().equals(ModItems.biomass)) return 800; if(fuel.getItem().equals(ModItems.biomass_compressed)) diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 37f742247..2a93686ba 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -10,6 +10,7 @@ import com.hbm.inventory.container.*; import com.hbm.inventory.gui.*; import com.hbm.inventory.inv.InventoryLeadBox; import com.hbm.items.ModItems; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -17,6 +18,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.turret.*; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -28,15 +30,39 @@ public class GUIHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof IGUIProvider) { + return ((IGUIProvider) entity).provideContainer(ID, player, world, x, y, z); + } + + Block block = world.getBlock(x, y, z); + + if(block instanceof IGUIProvider) { + return ((IGUIProvider) block).provideContainer(ID, player, world, x, y, z); + } + + //notice: stop doing this, unless you absolutely have to \/ + + if(entity instanceof TileEntityCrateIron) { return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new ContainerSafe(player.inventory, (TileEntitySafe) entity); } + if(entity instanceof TileEntityMassStorage) { return new ContainerMassStorage(player.inventory, (TileEntityMassStorage) entity); } + + if(entity instanceof TileEntityMachineAutocrafter) { return new ContainerAutocrafter(player.inventory, (TileEntityMachineAutocrafter) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } + if(entity instanceof TileEntityMachineAssemfac) { return new ContainerAssemfac(player.inventory, (TileEntityMachineAssemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new ContainerChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityElectrolyser) { return new ContainerElectrolyser(player.inventory, (TileEntityElectrolyser) entity); } if(entity instanceof TileEntityRBMKHeater) { return new ContainerRBMKHeater(player.inventory, (TileEntityRBMKHeater) entity); } + //notice: stop doing this completely, period \/ + switch(ID) { case ModBlocks.guiID_test_difurnace: { if(entity instanceof TileEntityDiFurnace) { @@ -353,20 +379,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new ContainerMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -486,13 +498,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new ContainerSafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new ContainerMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -710,13 +715,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new ContainerTurretBase(player.inventory, (TileEntityTurretChekhov) entity); @@ -873,14 +871,38 @@ public class GUIHandler implements IGuiHandler { public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof IGUIProvider) { + return ((IGUIProvider) entity).provideGUI(ID, player, world, x, y, z); + } + + Block block = world.getBlock(x, y, z); + + if(block instanceof IGUIProvider) { + return ((IGUIProvider) block).provideGUI(ID, player, world, x, y, z); + } + + //stop doing this unless you absolutely have to \/ + + if(entity instanceof TileEntityCrateIron) { return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new GUICrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new GUISafe(player.inventory, (TileEntitySafe) entity); } + if(entity instanceof TileEntityMassStorage) { return new GUIMassStorage(player.inventory, (TileEntityMassStorage) entity); } + + if(entity instanceof TileEntityMachineAutocrafter) { return new GUIAutocrafter(player.inventory, (TileEntityMachineAutocrafter) entity); } + if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } + if(entity instanceof TileEntityMachineAssemfac) { return new GUIAssemfac(player.inventory, (TileEntityMachineAssemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new GUIChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityElectrolyser) { return new GUIElectrolyser(player.inventory, (TileEntityElectrolyser) entity); } if(entity instanceof TileEntityRBMKHeater) { return new GUIRBMKHeater(player.inventory, (TileEntityRBMKHeater) entity); } + //stop doing this, period \/ + switch(ID) { case ModBlocks.guiID_test_difurnace: { if(entity instanceof TileEntityDiFurnace) { @@ -1197,20 +1219,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new GUIMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -1323,13 +1331,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new GUISafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new GUIMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -1547,13 +1548,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new GUITurretChekhov(player.inventory, (TileEntityTurretChekhov) entity); diff --git a/src/main/java/com/hbm/handler/MultiblockHandler.java b/src/main/java/com/hbm/handler/MultiblockHandler.java index 1054e7030..6ea5d6636 100644 --- a/src/main/java/com/hbm/handler/MultiblockHandler.java +++ b/src/main/java/com/hbm/handler/MultiblockHandler.java @@ -63,10 +63,10 @@ public class MultiblockHandler { public static final int[] pumpjackDimensionEast = new int[] { 0, 6, 4, 0, 1, 1 }; public static final int[] pumpjackDimensionSouth = new int[] { 1, 1, 4, 0, 0, 6 }; public static final int[] pumpjackDimensionWest = new int[] { 6, 0, 4, 0, 1, 1 }; - public static final int[] turbofanDimensionNorth = new int[] { 1, 1, 2, 0, 4, 4 }; - public static final int[] turbofanDimensionEast = new int[] { 4, 4, 2, 0, 1, 1 }; - public static final int[] turbofanDimensionSouth = new int[] { 1, 1, 2, 0, 4, 4 }; - public static final int[] turbofanDimensionWest = new int[] { 4, 4, 2, 0, 1, 1 }; + public static final int[] turbofanDimensionNorth = new int[] { 1, 1, 2, 0, 3, 3 }; + public static final int[] turbofanDimensionEast = new int[] { 3, 3, 2, 0, 1, 1 }; + public static final int[] turbofanDimensionSouth = new int[] { 1, 1, 2, 0, 3, 3 }; + public static final int[] turbofanDimensionWest = new int[] { 3, 3, 2, 0, 1, 1 }; public static final int[] AMSLimiterDimensionNorth = new int[] { 0, 0, 5, 0, 2, 2 }; public static final int[] AMSLimiterDimensionEast = new int[] { 2, 2, 5, 0, 0, 0 }; public static final int[] AMSLimiterDimensionSouth = new int[] { 0, 0, 5, 0, 2, 2 }; diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index babf7af38..77eb41b7d 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -97,7 +97,7 @@ public abstract class ToolAbility { int meta = world.getBlockMetadata(x, y, z); int refMeta = world.getBlockMetadata(refX, refY, refZ); - if(b != ref) + if(!isSameBlock(b, ref)) return; if(meta != refMeta) @@ -122,6 +122,14 @@ public abstract class ToolAbility { } } } + + private boolean isSameBlock(Block b1, Block b2) { + + if(b1 == b2) return true; + if((b1 == Blocks.redstone_ore && b2 == Blocks.lit_redstone_ore) || (b1 == Blocks.lit_redstone_ore && b2 == Blocks.redstone_ore)) return true; + + return false; + } @Override public String getName() { diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 3e5dd4028..cbd5ad9bd 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -523,7 +523,6 @@ public class GunFatmanFactory { .addAttrib(ExAttrib.NOPARTICLE) .addAttrib(ExAttrib.NOSOUND) .addAttrib(ExAttrib.NODROP) - .addAttrib(ExAttrib.NOHURT) .overrideResolution(64); exp.doExplosionA(); exp.doExplosionB(false); diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index 6d781fa7f..f533fc02c 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -10,6 +10,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -35,7 +36,7 @@ public class AssemblerRecipeHandler extends TemplateRecipeHandler { input = new ArrayList(); ComparableStack comp = new ComparableStack(result); - ItemStack template = new ItemStack(ModItems.assembly_template, 1, AssemblerRecipes.recipeList.indexOf(comp)); + ItemStack template = ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template), comp); for(int i = 0; i < Math.min(in.size(), 12); i++) { input.add(new PositionedStack(in.get(i), 30 + (i % 4) * 18, 6 + (i / 4) * 18)); diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index 194d572d0..8fdda9e8a 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -1,18 +1,27 @@ package com.hbm.handler.nei; +import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; + import java.awt.Rectangle; import java.util.ArrayList; import java.util.Arrays; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.handler.nei.AnvilRecipeHandler.RecipeSet; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @@ -22,16 +31,19 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; - PositionedStack result1; - PositionedStack result2; - PositionedStack result3; + List output = new ArrayList(); + boolean isHighSpeed; + int centNumber; - public SmeltingSet(ItemStack input, ItemStack result1, ItemStack result2, ItemStack result3) { + public SmeltingSet(ItemStack input, ItemStack[] results, boolean isHighSpeed, int centNumber) { input.stackSize = 1; - this.input = new PositionedStack(input, 25, 35 - 11); - this.result1 = new PositionedStack(result1, 128, 26 - 11); - this.result2 = new PositionedStack(result2, 128, 44 - 11); - this.result3 = new PositionedStack(result3, 146, 35 - 11); + this.input = new PositionedStack(input, 52 - 5, 35 - 11); + this.isHighSpeed = isHighSpeed; + this.centNumber = centNumber; + + for(byte i = 0; i < results.length; i++) { + this.output.add(new PositionedStack(results[i], i % 2 == 0 ? 134 - 5 : 152 - 5, i < 2 ? 26 - 11 : 44 - 11 )); + } } @Override @@ -43,14 +55,13 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public List getOtherStacks() { List stacks = new ArrayList(); stacks.add(fuels.get((cycleticks / 48) % fuels.size()).stack); - stacks.add(result2); - stacks.add(result3); + stacks.addAll(output); return stacks; } @Override public PositionedStack getResult() { - return result1; + return output.get(0); } } @@ -70,12 +81,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return GUIMachineGasCent.texture.toString(); - } - - @Override - public Class getGuiClass() { - return GUIMachineGasCent.class; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_centrifuge_gas.png"; } @Override @@ -93,7 +99,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { if((outputId.equals("gascentprocessing")) && getClass() == GasCentrifugeRecipeHandler.class) { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } else { super.loadCraftingRecipes(outputId, results); @@ -104,9 +110,9 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public void loadCraftingRecipes(ItemStack result) { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[1], result) - || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[2], result)) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + if(NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[0], result) || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[1], result) + || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[2], result) || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[3], result)) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } @@ -124,7 +130,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } @@ -135,11 +141,42 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public void drawExtras(int recipe) { drawProgressBar(3, 51 - 45, 176, 0, 16, 34, 480, 7); - drawProgressBar(69, 26, 208, 0, 33, 12, 200, 0); + + SmeltingSet set = (SmeltingSet) this.arecipes.get(recipe); + + drawProgressBar(79 - 5, 28 - 11, 208, 0, 44, 37, set.isHighSpeed ? 150 - 70 : 150, 0); + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + String centrifuges = set.centNumber + " G. Cents"; + fontRenderer.drawString(centrifuges, (50 - fontRenderer.getStringWidth(centrifuges) / 2), 21 - 11, 65280); } + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); @Override public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(69, 26, 32, 12), "gascentprocessing")); + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(79 - 5, 26 - 11, 44, 40), "gascentprocessing")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(70 - 5, 36 - 11, 36, 12), "gascentprocessing")); + + guiGui.add(GUIMachineGasCent.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawBackground(int recipe) { + super.drawBackground(recipe); + + SmeltingSet set = (SmeltingSet) this.arecipes.get(recipe); + + if(set.isHighSpeed) + drawTexturedModalRect(30 - 5, 35 - 11, 192, 0, 16, 16); } } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index eb48756dc..8d396fafe 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -336,7 +336,7 @@ public class HazardRegistry { HazardSystem.register(pile_rod_uranium, makeData(RADIATION, u * billet * 3)); HazardSystem.register(pile_rod_pu239, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet + pu239 * billet + u * billet : purg * billet + pu239 * billet + wst * billet)); - HazardSystem.register(pile_rod_plutonium, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet * 3 : purg * billet * 2 + wst * billet)); + HazardSystem.register(pile_rod_plutonium, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet * 2 + u * billet : purg * billet * 2 + wst * billet)); HazardSystem.register(pile_rod_source, makeData(RADIATION, rabe * billet * 3)); registerBreedingRodRadiation(BreedingRodType.TRITIUM, 0.001F); @@ -442,12 +442,7 @@ public class HazardRegistry { HazardSystem.register(ModItems.crystal_trixite, makeData(RADIATION, trx * crystal)); //nuke parts - HazardSystem.register(gadget_explosive, makeData(EXPLOSIVE, 1F)); - HazardSystem.register(gadget_explosive8, makeData(EXPLOSIVE, 8F)); HazardSystem.register(boy_propellant, makeData(EXPLOSIVE, 2F)); - HazardSystem.register(boy_igniter, makeData(EXPLOSIVE, 1F)); - HazardSystem.register(man_explosive, makeData(EXPLOSIVE, 2F)); - HazardSystem.register(man_explosive8, makeData(EXPLOSIVE, 16F)); HazardSystem.register(gadget_core, makeData(RADIATION, pu239 * nugget * 10)); HazardSystem.register(boy_target, makeData(RADIATION, u235 * ingot * 2)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 9b1fea100..06bf60ac5 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -10,6 +10,7 @@ import static com.hbm.items.ModItems.*; import static com.hbm.blocks.ModBlocks.*; import static com.hbm.inventory.OreDictManager.DictFrame.*; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; import com.hbm.hazard.HazardData; @@ -294,33 +295,33 @@ public class OreDictManager { /* * RADIOACTIVE */ - U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); - U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); - U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); - U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); - TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); - PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); - PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); - PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); - PU239 .rad(HazardRegistry.pu239) .nugget(nugget_pu239) .billet(billet_pu239) .ingot(ingot_pu239) .block(block_pu239); - PU240 .rad(HazardRegistry.pu240) .nugget(nugget_pu240) .billet(billet_pu240) .ingot(ingot_pu240) .block(block_pu240); - PU241 .rad(HazardRegistry.pu241) .nugget(nugget_pu241) .billet(billet_pu241) .ingot(ingot_pu241); //.block(block_pu241); - AM241 .rad(HazardRegistry.am241) .nugget(nugget_am241) .billet(billet_am241) .ingot(ingot_am241); - AM242 .rad(HazardRegistry.am242) .nugget(nugget_am242) .billet(billet_am242) .ingot(ingot_am242); - AMRG .rad(HazardRegistry.amrg) .nugget(nugget_am_mix) .billet(billet_am_mix) .ingot(ingot_am_mix); - NP237 .rad(HazardRegistry.np237) .nugget(nugget_neptunium) .billet(billet_neptunium) .ingot(ingot_neptunium) .dust(powder_neptunium) .block(block_neptunium); - PO210 .rad(HazardRegistry.po210) .hot(3) .nugget(nugget_polonium) .billet(billet_polonium) .ingot(ingot_polonium) .dust(powder_polonium) .block(block_polonium); - TC99 .rad(HazardRegistry.tc99) .nugget(nugget_technetium) .billet(billet_technetium) .ingot(ingot_technetium); - RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); - AC227 .rad(HazardRegistry.ac227) .nugget(nugget_actinium) .billet(billet_actinium) .ingot(ingot_actinium) .dust(powder_actinium) .block(block_actinium) .dustSmall(powder_actinium_tiny); - CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); - AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); - PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); - SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); - SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); - SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); - SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); - GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); + U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); + U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); + U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); + U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); + TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); + PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); + PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); + PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); + PU239 .rad(HazardRegistry.pu239) .nugget(nugget_pu239) .billet(billet_pu239) .ingot(ingot_pu239) .block(block_pu239); + PU240 .rad(HazardRegistry.pu240) .nugget(nugget_pu240) .billet(billet_pu240) .ingot(ingot_pu240) .block(block_pu240); + PU241 .rad(HazardRegistry.pu241) .nugget(nugget_pu241) .billet(billet_pu241) .ingot(ingot_pu241); //.block(block_pu241); + AM241 .rad(HazardRegistry.am241) .nugget(nugget_am241) .billet(billet_am241) .ingot(ingot_am241); + AM242 .rad(HazardRegistry.am242) .nugget(nugget_am242) .billet(billet_am242) .ingot(ingot_am242); + AMRG .rad(HazardRegistry.amrg) .nugget(nugget_am_mix) .billet(billet_am_mix) .ingot(ingot_am_mix); + NP237 .rad(HazardRegistry.np237) .nugget(nugget_neptunium) .billet(billet_neptunium) .ingot(ingot_neptunium) .dust(powder_neptunium) .block(block_neptunium); + PO210 .rad(HazardRegistry.po210) .hot(3) .nugget(nugget_polonium) .billet(billet_polonium) .ingot(ingot_polonium) .dust(powder_polonium) .block(block_polonium); + TC99 .rad(HazardRegistry.tc99) .nugget(nugget_technetium) .billet(billet_technetium) .ingot(ingot_technetium); + RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); + AC227 .rad(HazardRegistry.ac227) .nugget(nugget_actinium) .billet(billet_actinium) .ingot(ingot_actinium) .dust(powder_actinium) .block(block_actinium) .dustSmall(powder_actinium_tiny); + CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); + AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); + PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); + SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); + SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); + SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); + SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); + GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); /* * STABLE @@ -427,7 +428,8 @@ public class OreDictManager { ANY_SMOKELESS .dust(ballistite, cordite); ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex, ingot_c4); ANY_HIGHEXPLOSIVE .ingot(ball_tnt); - ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); + ANY_CONCRETE .any(concrete, concrete_smooth, concrete_asbestos, ducrete, ducrete_smooth); + for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); diff --git a/src/main/java/com/hbm/inventory/SlotPattern.java b/src/main/java/com/hbm/inventory/SlotPattern.java index 637930fea..c40b92091 100644 --- a/src/main/java/com/hbm/inventory/SlotPattern.java +++ b/src/main/java/com/hbm/inventory/SlotPattern.java @@ -1,11 +1,15 @@ package com.hbm.inventory; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class SlotPattern extends Slot { + protected boolean canHover = true; + public SlotPattern(IInventory inv, int index, int x, int y) { super(inv, index, x, y); } @@ -19,4 +23,15 @@ public class SlotPattern extends Slot { public int getSlotStackLimit() { return 1; } + + public SlotPattern disableHover() { + this.canHover = false; + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean func_111238_b() { + return canHover; + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java new file mode 100644 index 000000000..cdcefdb25 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java @@ -0,0 +1,65 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineAssemfac; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerAssemfac extends Container { + + private TileEntityMachineAssemfac assemfac; + + public ContainerAssemfac(InventoryPlayer playerInv, TileEntityMachineAssemfac tile) { + assemfac = tile; + + //Battery + this.addSlotToContainer(new Slot(tile, 0, 234, 218)); + + for(int i = 0; i < 4; i++) { + this.addSlotToContainer(new SlotUpgrade(tile, 1 + i, 5, 172 + i * 18)); + } + + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 2; j++) { + int offX = 7 + j * 118; + int offY = 14 + i * 38; + int startIndex = 5 + (i * 2 + j) * 14; + + for(int k = 0; k < 2; k++) { + for(int l = 0; l < 6; l++) { + this.addSlotToContainer(new Slot(tile, startIndex + k * 6 + l, offX + l * 16, offY + k * 16)); + } + } + } + } + + for(int i = 0; i < 8; i++) { + this.addSlotToContainer(new Slot(tile, 17 + i * 14, 106, 13 + i * 19 - (i % 2 == 1 ? 1 : 0))); + this.addSlotToContainer(new Slot(tile, 18 + i * 14, 234, 13 + i * 16)); + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 34 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 34 + i * 18, 232)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return assemfac.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java new file mode 100644 index 000000000..fe0974730 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -0,0 +1,109 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerAutocrafter extends Container { + + private TileEntityMachineAutocrafter autocrafter; + + public ContainerAutocrafter(InventoryPlayer invPlayer, TileEntityMachineAutocrafter tedf) { + autocrafter = tedf; + + /* TEMPLATE */ + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 44 + j * 18, 22 + i * 18)); + } + } + this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40)); + + /* RECIPE */ + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3 + 10, 44 + j * 18, 86 + i * 18)); + } + } + this.addSlotToContainer(new Slot(tedf, 19, 116, 104)); + + //Battery + this.addSlotToContainer(new Slot(tedf, 20, 17, 99)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 158 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 216)); + } + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index < 0 || index > 9) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + //Don't allow any interaction for the template's output + if(index == 9) { + + if(button == 1 && mode == 0 && slot.getHasStack()) { + autocrafter.nextTemplate(); + this.detectAndSendChanges(); + } + + return ret; + } + + if(button == 1 && mode == 0 && slot.getHasStack()) { + autocrafter.nextMode(index); + return ret; + + } else { + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + autocrafter.initPattern(slot.getStack(), index); + autocrafter.updateTemplateGrid(); + + return ret; + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return autocrafter.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java new file mode 100644 index 000000000..8dddbfc01 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -0,0 +1,137 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.tileentity.network.TileEntityCraneExtractor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCraneExtractor extends Container { + + protected TileEntityCraneExtractor extractor; + + public ContainerCraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor inserter) { + this.extractor = inserter; + + //filter + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 3, 71 + j * 18, 17 + i * 18)); + } + } + + //buffer + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(inserter, 9 + j + i * 3, 8 + j * 18, 17 + i * 18)); + } + } + + //upgrades + this.addSlotToContainer(new SlotUpgrade(inserter, 18, 152, 23)); + this.addSlotToContainer(new SlotUpgrade(inserter, 19, 152, 47)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(slot); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(slot < 9) { //filters + return null; + } + + if(slot <= extractor.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, extractor.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() == ModItems.upgrade_5g) { + if(!this.mergeItemStack(var5, 18, 19, false)) + return null; + } else if(var3.getItem() == ModItems.upgrade_crystallizer) { + if(!this.mergeItemStack(var5, 19, 20, false)) + return null; + } else if(!this.mergeItemStack(var5, 9, extractor.getSizeInventory(), false)) { + return null; + } + + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return extractor.isUseableByPlayer(player); + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + //System.out.println("Mode " + mode); + //System.out.println("Slot " + index); + + if(index < 0 || index > 8) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + extractor.nextMode(index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + extractor.matcher.initPatternStandard(extractor.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java new file mode 100644 index 000000000..ad08c4a45 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -0,0 +1,68 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityCraneInserter; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCraneInserter extends Container { + + protected TileEntityCraneInserter inserter; + + public ContainerCraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter inserter) { + this.inserter = inserter; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 7; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 7, 26 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= inserter.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, inserter.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, inserter.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return inserter.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java new file mode 100644 index 000000000..407e44483 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -0,0 +1,57 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCrateBase extends Container { + + protected IInventory crate; + + public ContainerCrateBase(IInventory tedf) { + crate = tedf; + crate.openInventory(); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return crate.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.crate.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java new file mode 100644 index 000000000..4a7aec618 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -0,0 +1,28 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; + +public class ContainerCrateDesh extends ContainerCrateBase { + + public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { + super(tedf); + + for(int i = 0; i < 8; i++) { + for(int j = 0; j < 13; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 13, 8 + j * 18, 18 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 232)); + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index 7f6a92d8a..d91eb1be0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -2,19 +2,14 @@ package com.hbm.inventory.container; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; //@invtweaks.api.container.ChestContainer -public class ContainerCrateIron extends Container { - - private TileEntityCrateIron diFurnace; +public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { - diFurnace = tedf; + super(tedf); for(int i = 0; i < 4; i++) { @@ -37,44 +32,4 @@ public class ContainerCrateIron extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= diFurnace.getSizeInventory() - 1) { - if (!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index c4795966e..3623790f4 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -1,19 +1,14 @@ package com.hbm.inventory.container; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; //@invtweaks.api.container.ChestContainer -public class ContainerCrateSteel extends Container { - - private IInventory diFurnace; +public class ContainerCrateSteel extends ContainerCrateBase { public ContainerCrateSteel(InventoryPlayer invPlayer, IInventory tedf) { - diFurnace = tedf; + super(tedf); for(int i = 0; i < 6; i++) { for(int j = 0; j < 9; j++) { @@ -31,38 +26,4 @@ public class ContainerCrateSteel extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + (18 * 3) + 2)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 7103e95e7..8d5843275 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -2,19 +2,14 @@ package com.hbm.inventory.container; import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; //@invtweaks.api.container.ChestContainer -public class ContainerCrateTungsten extends Container { - - private TileEntityCrateTungsten crate; +public class ContainerCrateTungsten extends ContainerCrateBase { public ContainerCrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten te) { - crate = te; + super(te); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -32,38 +27,4 @@ public class ContainerCrateTungsten extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 90 + (18 * 3))); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= crate.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, crate.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return crate.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java new file mode 100644 index 000000000..34b9673ad --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java @@ -0,0 +1,75 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotSmelting; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFurnaceIron extends Container { + + protected TileEntityFurnaceIron furnace; + + public ContainerFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron furnace) { + this.furnace = furnace; + + //input + this.addSlotToContainer(new Slot(furnace, 0, 53, 17)); + //fuel + this.addSlotToContainer(new Slot(furnace, 1, 53, 53)); + this.addSlotToContainer(new Slot(furnace, 2, 71, 53)); + //output + this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 3, 125, 35)); + //upgrade + this.addSlotToContainer(new SlotUpgrade(furnace, 4, 17, 35)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(originalStack, 5, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else if(!this.mergeItemStack(originalStack, 0, 5, false)) { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index d6cd0f928..6381575fb 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -18,28 +18,28 @@ public class ContainerMachineGasCent extends Container { gasCent = tedf; - //Battery - this.addSlotToContainer(new Slot(tedf, 0, 8, 53)); - //Fluid ID IO - this.addSlotToContainer(new Slot(tedf, 1, 30, 35)); //Output - this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 133, 26)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 133, 44)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 151, 35)); - //upgrade - this.addSlotToContainer(new Slot(tedf, 5, 82, 19)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 2; j++) { + this.addSlotToContainer(new SlotMachineOutput(tedf, j + i * 2, 71 + j * 18, 53 + i * 18)); } } - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + //Battery + this.addSlotToContainer(new Slot(tedf, 4, 182, 71)); + //Fluid ID IO + this.addSlotToContainer(new Slot(tedf, 5, 91, 15)); + //upgrade + this.addSlotToContainer(new Slot(tedf, 6, 69, 15)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); } } @@ -51,37 +51,29 @@ public class ContainerMachineGasCent extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack var3 = null; + ItemStack returnStack = null; Slot slot = (Slot) this.inventorySlots.get(index); - if (slot != null && slot.getHasStack()) - { + if(slot != null && slot.getHasStack()) { ItemStack stack = slot.getStack(); - var3 = stack.copy(); + returnStack = stack.copy(); - if (index <= 5) { - if (!this.mergeItemStack(stack, 6, this.inventorySlots.size(), true)) - { + if(index <= 6) { + if (!this.mergeItemStack(stack, 7, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(stack, 0, 2, false)) - { - if (!this.mergeItemStack(stack, 3, 4, false)) - return null; + } else if(!this.mergeItemStack(stack, 4, 7, false)) { + return null; } - if (stack.stackSize == 0) - { + if (stack.stackSize == 0) { slot.putStack((ItemStack) null); - } - else - { + } else { slot.onSlotChanged(); } } - return var3; + return returnStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java index 0049a64ba..6dbd8c93c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -18,18 +21,28 @@ public class ContainerMachineGasFlare extends Container { testNuke = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 1, 134, 17)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 134, 53)); + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 143, 71)); + //Fluid in + this.addSlotToContainer(new Slot(tedf, 1, 17, 17)); + //Fluid out + this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 17, 53)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 3, 35, 71)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 4, 80, 71)); + this.addSlotToContainer(new Slot(tedf, 5, 98, 71)); + + int offset = 37; for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + offset)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + offset)); } } @@ -47,12 +60,29 @@ public class ContainerMachineGasFlare extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 1) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + if(par2 <= 5) { + if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 2, false)) { - return null; + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 4, 6, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } } if(var5.stackSize == 0) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java b/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java index 222ef70f6..db5db00ff 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java @@ -12,137 +12,118 @@ import net.minecraft.item.ItemStack; public class ContainerMachinePress extends Container { -private TileEntityMachinePress nukeBoy; + private TileEntityMachinePress press; private int power; private int progress; private int burnTime; private int maxBurn; - + public ContainerMachinePress(InventoryPlayer invPlayer, TileEntityMachinePress tedf) { power = 0; progress = 0; burnTime = 0; maxBurn = 0; - - nukeBoy = tedf; - //Coal + press = tedf; + + // Coal this.addSlotToContainer(new Slot(tedf, 0, 26, 53)); - //Stamp + // Stamp this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - //Input + // Input this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Output + // Output this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 140, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 2, 3, false)) - if (!this.mergeItemStack(var5, 0, 1, false)) - if (!this.mergeItemStack(var5, 1, 2, false)) + } else if(!this.mergeItemStack(var5, 2, 3, false)) + if(!this.mergeItemStack(var5, 0, 1, false)) + if(!this.mergeItemStack(var5, 1, 2, false)) return null; - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); + return press.isUseableByPlayer(player); } - + @Override public void detectAndSendChanges() { super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.power != this.nukeBoy.power) - { - par1.sendProgressBarUpdate(this, 0, this.nukeBoy.power); + + for(int i = 0; i < this.crafters.size(); i++) { + ICrafting par1 = (ICrafting) this.crafters.get(i); + + if(this.power != this.press.power) { + par1.sendProgressBarUpdate(this, 0, this.press.power); } - - if(this.progress != this.nukeBoy.progress) - { - par1.sendProgressBarUpdate(this, 1, this.nukeBoy.progress); + + if(this.progress != this.press.progress) { + par1.sendProgressBarUpdate(this, 1, this.press.progress); } - - if(this.burnTime != this.nukeBoy.burnTime) - { - par1.sendProgressBarUpdate(this, 2, this.nukeBoy.burnTime); + + if(this.burnTime != this.press.burnTime) { + par1.sendProgressBarUpdate(this, 2, this.press.burnTime); } - - if(this.maxBurn != this.nukeBoy.maxBurn) - { - par1.sendProgressBarUpdate(this, 3, this.nukeBoy.maxBurn); + + if(this.maxBurn != this.press.maxBurn) { + par1.sendProgressBarUpdate(this, 3, this.press.maxBurn); } } - this.power = this.nukeBoy.power; - this.progress = this.nukeBoy.progress; - this.burnTime = this.nukeBoy.burnTime; - this.maxBurn = this.nukeBoy.maxBurn; + this.power = this.press.power; + this.progress = this.press.progress; + this.burnTime = this.press.burnTime; + this.maxBurn = this.press.maxBurn; } - + @Override public void updateProgressBar(int i, int j) { - if(i == 0) - { - nukeBoy.power = j; + if(i == 0) { + press.power = j; } - if(i == 1) - { - nukeBoy.progress = j; + if(i == 1) { + press.progress = j; } - if(i == 2) - { - nukeBoy.burnTime = j; + if(i == 2) { + press.burnTime = j; } - if(i == 3) - { - nukeBoy.maxBurn = j; + if(i == 3) { + press.maxBurn = j; } } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java new file mode 100644 index 000000000..8363de61f --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMassStorage extends Container { + + private TileEntityMassStorage storage; + + public ContainerMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage te) { + this.storage = te; + this.storage.openInventory(); + + this.addSlotToContainer(new Slot(storage, 0, 61, 17)); + this.addSlotToContainer(new SlotPattern(storage, 1, 61, 53)); + this.addSlotToContainer(new SlotMachineOutput(storage, 2, 61, 89)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 139 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 197)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 == 0 || par2 == 2) { + if(!this.mergeItemStack(var5, storage.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index != 1) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + //Don't allow for a type change when the thing isn't empty + if(storage.getStockpile() > 0) + return ret; + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + + return ret; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return storage.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.storage.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index db655e5ca..f56402f22 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -13,6 +13,7 @@ import com.hbm.render.util.EnumSymbol; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public class FluidType { @@ -157,7 +158,11 @@ public class FluidType { * @param tank * @param overflowAmount */ - public void onFluidRelease(TileEntity te, FluidTank tank, int overflowAmount) { } + public void onFluidRelease(TileEntity te, FluidTank tank, int overflowAmount) { + this.onFluidRelease(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord, tank, overflowAmount); + } + + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } //public void onFluidTransmit(FluidNetwork net) { } public void addInfo(List info) { @@ -173,9 +178,22 @@ public class FluidType { if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank"); if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold"); + + /*info.add(""); + info.add(EnumChatFormatting.RED + "[DEBUG]"); + + for(FluidTrait trait : traits) { + info.add(EnumChatFormatting.RED + "-" + trait.name()); + }*/ } + /** + * Metadata for describing how the fluid acts, like being corrosive, not having fluid IDs or being only stored in certain containers. + */ public static enum FluidTrait { + LIQUID, + GASEOUS, + PETROCHEMICAL, AMAT, CORROSIVE, CORROSIVE_2, diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 22d9b1972..d77597286 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -6,7 +6,8 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType.ExtContainer; import com.hbm.inventory.fluid.FluidType.FluidTrait; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.*; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.render.util.EnumSymbol; public class Fluids { @@ -112,83 +113,83 @@ public class Fluids { NONE = new FluidType( "NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); WATER = new FluidType( "WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE); - STEAM = new FluidType( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D); - HOTSTEAM = new FluidType( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D); - SUPERHOTSTEAM = new FluidType( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D); - ULTRAHOTSTEAM = new FluidType( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D); + STEAM = new Gas( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D); + HOTSTEAM = new Gas( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D); + SUPERHOTSTEAM = new Gas( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D); + ULTRAHOTSTEAM = new Gas( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D); COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).setHeatCap(0.25D); LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); - DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); - TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); - OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); - HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); - BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); - SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth - RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); - PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); - LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); - NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); - DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); - LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); - KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER); - GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); - PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE); - LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); - BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); - NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); - UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); - PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + DEUTERIUM = new CombustibleGas( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + TRITIUM = new CombustibleGas( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + OIL = new Oil( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); + HOTOIL = new Oil( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + HEAVYOIL = new Oil( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); + BITUMEN = new Petrochemical( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); + SMEAR = new Oil( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); + HEATINGOIL = new Fuel( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); + RECLAIMED = new Fuel( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); + PETROIL = new Fuel( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); + LUBRICANT = new Petrochemical( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); + NAPHTHA = new Oil( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); + DIESEL = new Fuel( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); + LIGHTOIL = new Oil( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); + KEROSENE = new Fuel( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER); + GAS = new FlammableOilGas( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(10_000); + PETROLEUM = new FlammableOilGas( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000); + LPG = new Fuel( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); + BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000); + BIOFUEL = new Fuel( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); + NITAN = new Fuel( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); + UF6 = new RadioactiveGas( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + PUF6 = new RadioactiveGas( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SCHRABIDIC = new FluidType( "SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); - AMAT = new FluidType( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); - ASCHRAB = new FluidType( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); + AMAT = new Antimatter( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER); + ASCHRAB = new Antimatter( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER); ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE); WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170); - HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000).addTraits(FluidTrait.LIQUID); OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC); XENON = new FluidType( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT); BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE); MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE); PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); - WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); - SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); - FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); + WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); + WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); + GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); + COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x2E155F, ExtContainer.CANISTER); + SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); + FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_XM = new FluidType( "PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_BF = new FluidType( "PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - CARBONDIOXIDE = new FluidType( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT); + CARBONDIOXIDE = new Gas( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT); PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); + HELIUM3 = new Gas( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); - ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); + ETHANOL = new Fuel( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE); - CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); - COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); - HOTCRACKOIL = new FluidTypeFlammable( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); - LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); - DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - AROMATICS = new FluidTypeFlammable( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE); - UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE); - SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); + CRACKOIL = new Oil( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + COALOIL = new Oil( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + HOTCRACKOIL = new Oil( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + NAPHTHA_CRACK = new Oil( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); + LIGHTOIL_CRACK = new Oil( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); + DIESEL_CRACK = new Fuel( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); + AROMATICS = new Oil( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE); + UNSATURATEDS = new Oil( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE); + SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); - PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); - GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); - COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); + PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()).addContainers(0x2331F6, ExtContainer.CANISTER); + GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()).addContainers(0x2F775A, ExtContainer.CANISTER); + COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()).addContainers(0x1E155F, ExtContainer.CANISTER); SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap); MUG = new FluidType( "MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D); - MUG_HOT = new FluidType( "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500); + MUG_HOT = new FluidType(78, "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java b/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java new file mode 100644 index 000000000..a077efc53 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Antimatter extends FluidType { + + public Antimatter(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.AMAT); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java b/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java new file mode 100644 index 000000000..b260f0fe1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class CombustibleGas extends FluidTypeCombustible { + + public CombustibleGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java b/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java new file mode 100644 index 000000000..0216a9029 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class FlammableGas extends FluidTypeFlammable { + + public FlammableGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java b/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java new file mode 100644 index 000000000..d7909ffda --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class FlammableOilGas extends FlammableGas { + + public FlammableOilGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java similarity index 97% rename from src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java rename to src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java index 3f1702cd3..449d4b673 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java +++ b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java @@ -1,4 +1,4 @@ -package com.hbm.inventory.fluid; +package com.hbm.inventory.fluid.types; import java.util.List; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java similarity index 92% rename from src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java rename to src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java index 3b928c809..37bf5e8e0 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java @@ -1,7 +1,8 @@ -package com.hbm.inventory.fluid; +package com.hbm.inventory.fluid.types; import java.util.List; +import com.hbm.inventory.fluid.FluidType; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/inventory/fluid/types/Fuel.java b/src/main/java/com/hbm/inventory/fluid/types/Fuel.java new file mode 100644 index 000000000..d37c3fa20 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Fuel.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class Fuel extends FluidTypeCombustible { + + public Fuel(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Gas.java b/src/main/java/com/hbm/inventory/fluid/types/Gas.java new file mode 100644 index 000000000..103492c6a --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Gas.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Gas extends FluidType { + + public Gas(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Oil.java b/src/main/java/com/hbm/inventory/fluid/types/Oil.java new file mode 100644 index 000000000..915895d89 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Oil.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class Oil extends FluidTypeFlammable { + + public Oil(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java b/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java new file mode 100644 index 000000000..ec6258ae8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Petrochemical extends FluidType { + + public Petrochemical(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java new file mode 100644 index 000000000..e8610c54e --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java @@ -0,0 +1,27 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +import net.minecraft.world.World; + +public class RadioactiveFluid extends FluidType { + + float radPerMB = 0; + + public RadioactiveFluid(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + } + + public RadioactiveFluid setRadiation(float rad) { + this.radPerMB = rad; + return this; + } + + @Override + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { + ChunkRadiationManager.proxy.incrementRad(world, x, y, z, overflowAmount * radPerMB); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java new file mode 100644 index 000000000..e3b29124b --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class RadioactiveGas extends RadioactiveFluid { + + public RadioactiveGas(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java new file mode 100644 index 000000000..f867ab9f0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class RadioactiveLiquid extends RadioactiveFluid { + + public RadioactiveLiquid(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java new file mode 100644 index 000000000..eea97e13b --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAssemfac; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineAssemfac; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.ResourceLocation; + +public class GUIAssemfac extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_assemfac.png"); + private static ResourceLocation chemfac = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_chemfac.png"); + private TileEntityMachineAssemfac assemfac; + + public GUIAssemfac(InventoryPlayer invPlayer, TileEntityMachineAssemfac tedf) { + super(new ContainerAssemfac(invPlayer, tedf)); + assemfac = tedf; + + this.xSize = 256; + this.ySize = 256; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 234, guiTop + 164, 16, 52, assemfac.power, assemfac.getMaxPower()); + + assemfac.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 209, guiTop + 181, 9, 54); + assemfac.steam.renderTankInfo(this, mouseX, mouseY, guiLeft + 218, guiTop + 181, 9, 54); + + for(int i = 0; i < 8; i++) { + + if(assemfac.maxProgress[i] > 0) { + int progress = assemfac.progress[i] * 16 / assemfac.maxProgress[i]; + + if(progress > 0) { + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_DEPTH_TEST); + int x = guiLeft + 234; + int y = guiTop + 13 + 16 * i; + GL11.glColorMask(true, true, true, false); + this.drawGradientRect(x, y, x + progress + 1, y + 16, -2130706433, -2130706433); + GL11.glColorMask(true, true, true, true); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + } + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int mX, int mY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + Minecraft.getMinecraft().getTextureManager().bindTexture(chemfac); + + int p = (int) (assemfac.power * 52 / assemfac.getMaxPower()); + drawTexturedModalRect(guiLeft + 234, guiTop + 216 - p, 0, 219 - p, 16, p); + + if(assemfac.power > 0) + drawTexturedModalRect(guiLeft + 238, guiTop + 150, 0, 219, 9, 12); + + assemfac.water.renderTank(guiLeft + 210, guiTop + 234, this.zLevel, 7, 52); + assemfac.steam.renderTank(guiLeft + 219, guiTop + 234, this.zLevel, 7, 52); + + if(Keyboard.isKeyDown(Keyboard.KEY_LMENU)) + for(int i = 0; i < this.inventorySlots.inventorySlots.size(); i++) { + Slot s = this.inventorySlots.getSlot(i); + + this.fontRendererObj.drawStringWithShadow(i + "", guiLeft + s.xDisplayPosition + 2, guiTop + s.yDisplayPosition, 0xffffff); + this.fontRendererObj.drawStringWithShadow(s.getSlotIndex() + "", guiLeft + s.xDisplayPosition + 2, guiTop + s.yDisplayPosition + 8, 0xff8080); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java new file mode 100644 index 000000000..abacfe9d6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java @@ -0,0 +1,92 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAutocrafter; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIAutocrafter extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_autocrafter.png"); + private TileEntityMachineAutocrafter diFurnace; + + public GUIAutocrafter(InventoryPlayer invPlayer, TileEntityMachineAutocrafter tedf) { + super(new ContainerAutocrafter(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 240; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawElectricityInfo(this, x, y, guiLeft + 17, guiTop + 45, 16, 52, diFurnace.getPower(), diFurnace.getMaxPower()); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(diFurnace.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + diFurnace.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(9); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.slots[9] != null) { + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", EnumChatFormatting.YELLOW + "" + (diFurnace.recipeIndex + 1) + " / " + diFurnace.recipeCount }), x, y - 30); + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)(diFurnace.getPower() * 52 / diFurnace.getMaxPower()); + drawTexturedModalRect(guiLeft + 17, guiTop + 97 - i, 176, 52 - i, 16, i); + + } + + /** + * I love the "private" key word so fucking much I'll spend the next 3 weeks ramming my cock into it + * @param slot + * @param x + * @param y + * @return + */ + protected boolean isMouseOverSlot(Slot slot, int x, int y) { + return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java new file mode 100644 index 000000000..ea927d377 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -0,0 +1,91 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCraneExtractor; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityCraneExtractor; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUICraneExtractor extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crane_ejector.png"); + private TileEntityCraneExtractor inserter; + + public GUICraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor tedf) { + super(new ContainerCraneExtractor(invPlayer, tedf)); + inserter = tedf; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && inserter.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(inserter.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + inserter.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 128 <= x && guiLeft + 128 + 14 > x && guiTop + 30 < y && guiTop + 30 + 26 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("whitelist", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, inserter.xCoord, inserter.yCoord, inserter.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(inserter.isWhitelist) { + drawTexturedModalRect(guiLeft + 139, guiTop + 33, 176, 0, 3, 6); + } else { + drawTexturedModalRect(guiLeft + 139, guiTop + 47, 176, 0, 3, 6); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java new file mode 100644 index 000000000..28813d9ae --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCraneInserter; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneInserter; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICraneInserter extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crane_inserter.png"); + private TileEntityCraneInserter inserter; + + public GUICraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter tedf) { + super(new ContainerCraneInserter(invPlayer, tedf)); + inserter = tedf; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java new file mode 100644 index 000000000..d75a8ee62 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateDesh; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; + +public class GUICrateDesh extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_desh.png"); + private IInventory crate; + + public GUICrateDesh(InventoryPlayer invPlayer, IInventory inv) { + super(new ContainerCrateDesh(invPlayer, inv)); + crate = inv; + + this.xSize = 248; + this.ySize = 256; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 44, this.ySize - 96 + 3, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java index 83ae322de..04a354e53 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateIron extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_iron.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_iron.png"); private TileEntityCrateIron diFurnace; public GUICrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java index 332a13ee6..4883360d4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateSteel extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_steel.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_steel.png"); private IInventory crate; public GUICrateSteel(InventoryPlayer invPlayer, IInventory inv) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java index 7da006832..30a0ec162 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java @@ -14,8 +14,8 @@ import net.minecraft.util.ResourceLocation; public class GUICrateTungsten extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten.png"); - private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten_hot.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten.png"); + private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten_hot.png"); private TileEntityCrateTungsten diFurnace; public GUICrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java new file mode 100644 index 000000000..282b3268e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java @@ -0,0 +1,77 @@ +package com.hbm.inventory.gui; + +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFurnaceIron; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.ResourceLocation; + +public class GUIFurnaceIron extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_iron.png"); + private TileEntityFurnaceIron diFurnace; + + public GUIFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron tedf) { + super(new ContainerFurnaceIron(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 166; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + + for(int i = 1; i < 3; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { + + List bonuses = this.diFurnace.burnModule.getDesc(); + + if(!bonuses.isEmpty()) { + this.func_146283_a(bonuses, x, y); + } + } + } + } + + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 35, 71, 7, x, y, new String[] { (diFurnace.progress * 100 / Math.max(diFurnace.processingTime, 1)) + "%" }); + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 44, 71, 7, x, y, new String[] { (diFurnace.burnTime / 20) + "s" }); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = diFurnace.progress * 70 / Math.max(diFurnace.processingTime, 1); + drawTexturedModalRect(guiLeft + 53, guiTop + 36, 176, 18, i, 5); + + int j = diFurnace.burnTime * 70 / Math.max(diFurnace.maxBurnTime, 1); + drawTexturedModalRect(guiLeft + 53, guiTop + 45, 176, 23, j, 5); + + if(diFurnace.canSmelt()) + drawTexturedModalRect(guiLeft + 70, guiTop + 16, 176, 0, 18, 18); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 9427e4045..8577cbbcd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -9,44 +9,57 @@ import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineGasCent extends GuiInfoContainer { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/centrifuge_gas.png"); + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_centrifuge_gas.png"); private TileEntityMachineGasCent gasCent; public GUIMachineGasCent(InventoryPlayer invPlayer, TileEntityMachineGasCent tedf) { super(new ContainerMachineGasCent(invPlayer, tedf)); gasCent = tedf; - this.xSize = 176; - this.ySize = 168; + this.xSize = 206; + this.ySize = 204; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 30, 8, 33, mouseX, mouseY, new String[] {gasCent.inputTank.getTankType().getName(), gasCent.inputTank.getFill() + " / " + gasCent.inputTank.getMaxFill() + " mB"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 114, guiTop + 30, 8, 33, mouseX, mouseY, new String[] {gasCent.outputTank.getTankType().getName(), gasCent.outputTank.getFill() + " / " + gasCent.outputTank.getMaxFill() + " mB"}); + String[] inTankInfo = new String[] {gasCent.inputTank.getTankType().getName(), gasCent.inputTank.getFill() + " / " + gasCent.inputTank.getMaxFill() + " mB"}; + if(gasCent.inputTank.getTankType().getIfHighSpeed()) { + if(gasCent.getProcessingSpeed() > gasCent.processingSpeed - 70) + inTankInfo[0] = EnumChatFormatting.DARK_RED + inTankInfo[0]; + else + inTankInfo[0] = EnumChatFormatting.GOLD + inTankInfo[0]; + } + String[] outTankInfo = new String[] {gasCent.outputTank.getTankType().getName(), gasCent.outputTank.getFill() + " / " + gasCent.outputTank.getMaxFill() + " mB"}; + if(gasCent.outputTank.getTankType().getIfHighSpeed()) + outTankInfo[0] = EnumChatFormatting.GOLD + outTankInfo[0]; - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, gasCent.power, gasCent.maxPower); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 15, guiTop + 15, 24, 55, mouseX, mouseY, inTankInfo); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 137, guiTop + 15, 25, 55, mouseX, mouseY, outTankInfo); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 182, guiTop + 69 - 52, 16, 52, gasCent.power, gasCent.maxPower); String[] enrichmentText = I18nUtil.resolveKeyArray("desc.gui.gasCent.enrichment"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, enrichmentText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 12, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, enrichmentText); String[] transferText = I18nUtil.resolveKeyArray("desc.gui.gasCent.output"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 32, 16, 16, guiLeft - 8, guiTop + 32 + 16, transferText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 12, guiTop + 32, 16, 16, guiLeft - 8, guiTop + 32 + 16, transferText); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.gasCent.hasCustomInventoryName() ? this.gasCent.getInventoryName() : I18n.format(this.gasCent.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -56,44 +69,50 @@ public class GUIMachineGasCent extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)gasCent.getPowerRemainingScaled(34); - drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 34 - i, 16, i); + int i = (int)gasCent.getPowerRemainingScaled(52); + drawTexturedModalRect(guiLeft + 182, guiTop + 69 - i, 206, 52 - i, 16, i); - int j = (int)gasCent.getCentrifugeProgressScaled(33); - drawTexturedModalRect(guiLeft + 74, guiTop + 37, 208, 0, j, 12); + int j = (int)gasCent.getCentrifugeProgressScaled(36); + drawTexturedModalRect(guiLeft + 70, guiTop + 35, 206, 52, j, 13); - int a = gasCent.getTankScaled(31, 0); - switch (gasCent.inputTank.getTankType()) { - case PF6: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 200, 31 - a, 8, a); - break; - case MUD: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 63 - a, 8, a); - break; - case MUD_HEAVY: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 63 - a, 8, a); - break; - case NONE: - break; - default: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 31 - a, 8, a); - } + this.renderTank(guiLeft + 16, guiTop + 16, this.zLevel, 6, 52, gasCent.inputTank.getFill(), gasCent.inputTank.getMaxFill()); + this.renderTank(guiLeft + 32, guiTop + 16, this.zLevel, 6, 52, gasCent.inputTank.getFill(), gasCent.inputTank.getMaxFill()); - int b = gasCent.getTankScaled(31, 1); - switch (gasCent.outputTank.getTankType()) { - case PF6: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 200, 31 - b, 8, b); - break; - case MUD_HEAVY: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 192, 63 - b, 8, b); - break; - case NONE: - break; - default: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 192, 31 - b, 8, b); - } + this.renderTank(guiLeft + 138, guiTop + 16, this.zLevel, 6, 52, gasCent.outputTank.getFill(), gasCent.outputTank.getMaxFill()); + this.renderTank(guiLeft + 154, guiTop + 16, this.zLevel, 6, 52, gasCent.outputTank.getFill(), gasCent.outputTank.getMaxFill()); - this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 3); - this.drawInfoPanel(guiLeft - 16, guiTop + 32, 16, 16, 2); + this.drawInfoPanel(guiLeft - 12, guiTop + 16, 16, 16, 3); + this.drawInfoPanel(guiLeft - 12, guiTop + 32, 16, 16, 2); + } + + public void renderTank(int x, int y, double z, int width, int height, int fluid, int maxFluid) { + + GL11.glEnable(GL11.GL_BLEND); + + y += height; + + Minecraft.getMinecraft().getTextureManager().bindTexture(gasCent.tank.getTankType().getTexture()); + + int i = (fluid * height) / maxFluid; + + double minX = x; + double maxX = x + width; + double minY = y - height; + double maxY = y - (height - i); + + double minV = 1D; + double maxV = 1D - i / 16D; + double minU = 0D; + double maxU = width / 16D; + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(minX, maxY, z, minU, maxV); + tessellator.addVertexWithUV(maxX, maxY, z, maxU, maxV); + tessellator.addVertexWithUV(maxX, minY, z, maxU, minV); + tessellator.addVertexWithUV(minX, minY, z, minU, minV); + tessellator.draw(); + + GL11.glDisable(GL11.GL_BLEND); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index 64854f31c..06a29102d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -2,19 +2,24 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; -import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineGasFlare; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIMachineGasFlare extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_gasFlare.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_flare_stack.png"); private TileEntityMachineGasFlare flare; public GUIMachineGasFlare(InventoryPlayer invPlayer, TileEntityMachineGasFlare tedf) { @@ -22,22 +27,43 @@ public class GUIMachineGasFlare extends GuiInfoContainer { flare = tedf; this.xSize = 176; - this.ySize = 166; + this.ySize = 203; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 34, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 16, 35, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.valve")); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 50, 35, 14, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.ignition")); + + flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 69 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 16 < y && guiTop + 16 + 10 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("valve", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord)); + + } else if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 50 < y && guiTop + 50 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("dial", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName()); + //String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -48,8 +74,14 @@ public class GUIMachineGasFlare extends GuiInfoContainer { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); int j = (int)flare.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - j, 176, 52 - j, 16, j); + drawTexturedModalRect(guiLeft + 143, guiTop + 69 - j, 176, 94 - j, 16, j); + + if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 15, 176, 0, 35, 10); + if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 49, 176, 10, 35, 14); - flare.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 34, 52); + if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType() instanceof FluidTypeFlammable) + drawTexturedModalRect(guiLeft + 88, guiTop + 29, 176, 24, 18, 18); + + flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java new file mode 100644 index 000000000..b2e7255f0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMassStorage; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIMassStorage extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_mass_storage.png"); + private TileEntityMassStorage storage; + + public GUIMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage tile) { + super(new ContainerMassStorage(invPlayer, tile)); + storage = tile; + + this.xSize = 176; + this.ySize = 221; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String percent = (((int) (storage.getStockpile() * 1000D / (double) storage.getCapacity())) / 10D) + "%"; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 16, 18, 90, mouseX, mouseY, new String[] { storage.getStockpile() + " / " + storage.getCapacity(), percent }); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Click: Provide one", "Shift-click: Provide stack" }); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 80, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Toggle output" }); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 62 <= x && guiLeft + 62 + 14 > x && guiTop + 72 < y && guiTop + 72 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("provide", Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, storage.xCoord, storage.yCoord, storage.zCoord)); + } + + if(guiLeft + 80 <= x && guiLeft + 80 + 14 > x && guiTop + 72 < y && guiTop + 72 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, storage.xCoord, storage.yCoord, storage.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.storage.hasCustomInventoryName() ? this.storage.getInventoryName() : I18n.format(this.storage.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int gauge = storage.getStockpile() * 88 / storage.getCapacity(); + drawTexturedModalRect(guiLeft + 97, guiTop + 105 - gauge, 176, 88 - gauge, 16, gauge); + + if(storage.output) + drawTexturedModalRect(guiLeft + 80, guiTop + 72, 192, 0, 14, 14); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java index 43640fb1d..b89cff524 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java @@ -6,14 +6,14 @@ import com.hbm.inventory.container.ContainerNukeBoy; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeBoy; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; -public class GUINukeBoy extends GuiContainer { +public class GUINukeBoy extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/lilBoySchematic.png"); private TileEntityNukeBoy testNuke; @@ -25,6 +25,14 @@ public class GUINukeBoy extends GuiContainer { this.xSize = 176; this.ySize = 222; } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeBoy.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } @Override protected void drawGuiContainerForegroundLayer( int i, int j) { @@ -55,6 +63,8 @@ public class GUINukeBoy extends GuiContainer { drawTexturedModalRect(guiLeft + 92, guiTop + 95, 176, 66, 12, 6); if(testNuke.getStackInSlot(4) != null && testNuke.getStackInSlot(4).getItem() == ModItems.boy_igniter) drawTexturedModalRect(guiLeft + 107, guiTop + 91, 176, 75, 16, 14); + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java index e8f533d9b..ad0d4c8ef 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeGadget; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeGadget; +import com.hbm.util.I18nUtil; -public class GUINukeGadget extends GuiContainer { +public class GUINukeGadget extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gadgetSchematic.png"); private TileEntityNukeGadget testNuke; @@ -25,6 +25,14 @@ public class GUINukeGadget extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeGadget.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -63,5 +71,7 @@ public class GUINukeGadget extends GuiContainer { { drawTexturedModalRect(guiLeft + 134, guiTop + 35, 176, 48, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java index cd5040b18..b89d2b043 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeMan; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeMan; +import com.hbm.util.I18nUtil; -public class GUINukeMan extends GuiContainer { +public class GUINukeMan extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/fatManSchematic.png"); private TileEntityNukeMan testNuke; @@ -25,6 +25,14 @@ public class GUINukeMan extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeMan.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -63,5 +71,7 @@ public class GUINukeMan extends GuiContainer { { drawTexturedModalRect(guiLeft + 134, guiTop + 35, 176, 48, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java index bef83622d..b42539226 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java @@ -6,14 +6,14 @@ import com.hbm.inventory.container.ContainerNukeMike; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeMike; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; -public class GUINukeMike extends GuiContainer { +public class GUINukeMike extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/ivyMikeSchematic.png"); private TileEntityNukeMike testNuke; @@ -26,6 +26,14 @@ public class GUINukeMike extends GuiContainer { this.ySize = 217; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeMike.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -60,7 +68,7 @@ public class GUINukeMike extends GuiContainer { drawTexturedModalRect(guiLeft + 140, guiTop + 30, 240, 88, 12, 26); for(int i = 0; i < 4; i++) { - if(testNuke.getStackInSlot(i) != null && testNuke.getStackInSlot(i).getItem() == ModItems.man_explosive8) + if(testNuke.getStackInSlot(i) != null && testNuke.getStackInSlot(i).getItem() == ModItems.explosive_lenses) switch(i) { case 0: drawTexturedModalRect(guiLeft + 24, guiTop + 20 , 209, 1, 23, 23); break; case 2: drawTexturedModalRect(guiLeft + 47, guiTop + 20 , 232, 1, 23, 23); break; @@ -68,5 +76,7 @@ public class GUINukeMike extends GuiContainer { case 3: drawTexturedModalRect(guiLeft + 47, guiTop + 43 , 232, 24, 23, 23); break; } } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index d610d597f..e91e91e65 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeTsar; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; +import com.hbm.util.I18nUtil; -public class GUINukeTsar extends GuiContainer { +public class GUINukeTsar extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/tsarBombaSchematic.png"); private TileEntityNukeTsar testNuke; @@ -25,6 +25,14 @@ public class GUINukeTsar extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeTsar.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -48,5 +56,7 @@ public class GUINukeTsar extends GuiContainer { { drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 18, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 1ac9e7503..d4947437c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -239,7 +239,7 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x, guiTop + y, tX, tY, size, size); - int h = (int)Math.ceil((col.data.getDouble("heat") - 20) * 10 / col.data.getDouble("maxHeat")); + int h = Math.min((int)Math.ceil((col.data.getDouble("heat") - 20) * 10 / col.data.getDouble("maxHeat")), 10); drawTexturedModalRect(guiLeft + x, guiTop + y + size - h, 0, 192 - h, 10, h); switch(col.type) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java index 56393d796..62af22c8f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java @@ -90,6 +90,11 @@ public class GUIReactorResearch extends GuiInfoContainer { super.mouseClicked(mouseX, mouseY, i); this.field.mouseClicked(mouseX, mouseY, i); + if(guiLeft + 8 <= mouseX && guiLeft + 8 + 33 > mouseX && guiTop + 99 < mouseY && guiTop + 99 + 16 >= mouseY) + displays[2].setBlinks(true); + else + displays[2].setBlinks(false); + if(guiLeft + 44 <= mouseX && guiLeft + 44 + 11 > mouseX && guiTop + 97 < mouseY && guiTop + 97 + 20 >= mouseY) { double level; diff --git a/src/main/java/com/hbm/inventory/gui/GUISafe.java b/src/main/java/com/hbm/inventory/gui/GUISafe.java index a7c6d0e8d..8b49d5362 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISafe.java +++ b/src/main/java/com/hbm/inventory/gui/GUISafe.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUISafe extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_safe.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_safe.png"); private TileEntitySafe diFurnace; public GUISafe(InventoryPlayer invPlayer, TileEntitySafe tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 12aba8314..d0041b0e7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -16,7 +16,6 @@ import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemCassette; -import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; @@ -81,7 +80,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { ComparableStack comp = AssemblerRecipes.recipeList.get(i); if(AssemblerRecipes.hidden.get(comp) == null) { - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template), comp)); + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); } } // Chemistry Templates @@ -333,7 +332,5 @@ public class GUIScreenTemplateFolder extends GuiScreen { updateButtons(); } } - } - } diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java new file mode 100644 index 000000000..550de0462 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -0,0 +1,46 @@ +package com.hbm.inventory.gui; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.turret.TileEntityTurretArty; +import com.hbm.tileentity.turret.TileEntityTurretBaseNT; + +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUITurretArty extends GUITurretBase { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_turret_arty.png"); + + public GUITurretArty(InventoryPlayer invPlayer, TileEntityTurretBaseNT tedf) { + super(invPlayer, tedf); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 5)); + return; + } + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int mX, int mY) { + super.drawGuiContainerBackgroundLayer(p_146976_1_, mX, mY); + + short mode = ((TileEntityTurretArty)turret).mode; + if(mode == TileEntityTurretArty.MODE_CANNON) drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 0, 18, 18); + if(mode == TileEntityTurretArty.MODE_MANUAL) drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 18, 18, 18); + } + + @Override + protected ResourceLocation getTexture() { + return texture; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index c5792a307..3c5311d39 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -16,6 +16,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; @@ -92,6 +93,10 @@ public abstract class GuiInfoContainer extends GuiContainer { } } + protected boolean isMouseOverSlot(Slot slot, int x, int y) { + return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); + } + /** * Seven segment style displays for GUIs, tried to be as adaptable as possible. Still has some bugs that need to be ironed out but it works for the most part. * @author UFFR @@ -129,6 +134,10 @@ public abstract class GuiInfoContainer extends GuiContainer { private char[] toDisp = {'0', '0', '0'}; @Nonnegative private short dispOffset = 0; + /** Length and thickness of segments. **/ + private int verticalLength = 5; + private int horizontalLength = 4; + private int thickness = 1; /** * Construct a new number display * @param dX X coordinate of the display @@ -229,7 +238,7 @@ public abstract class GuiInfoContainer extends GuiContainer { { if (num[i] == '.') gap--; - dispOffset = (short) ((padding + 6) * (i + gap)); + dispOffset = (short) ((padding + horizontalLength + 2 * thickness) * (i + gap)); drawChar(num[i]); } if (pads) @@ -253,7 +262,7 @@ public abstract class GuiInfoContainer extends GuiContainer { return; for (int i = 0; i < gap; i++) { - dispOffset = (short) ((padding + 6) * i); + dispOffset = (short) ((padding + horizontalLength + 2 * thickness) * i); drawChar('0'); } } @@ -351,20 +360,21 @@ public abstract class GuiInfoContainer extends GuiContainer { private void drawHorizontal(int pos) { - byte offset = (byte) (pos * 6); - renderSegment(guiLeft + displayX + dispOffset + 1, guiTop + displayY + offset, 4, 1); + byte offset = (byte) (pos * (verticalLength + thickness)); + renderSegment(guiLeft + displayX + dispOffset + thickness, guiTop + displayY + offset, horizontalLength, thickness); } private void drawPeriod() { - renderSegment(guiLeft + displayX + dispOffset + padding - (int) Math.ceil(padding / 2) + 5, guiTop + displayY + 12, 1, 1); + renderSegment(guiLeft + displayX + dispOffset + padding - (int) Math.ceil(padding / 2) + (horizontalLength + thickness), + guiTop + displayY + 2 * (verticalLength + thickness), thickness, thickness); } private void drawVertical(int posX, int posY) { - byte offsetX = (byte) (posX * 5); - byte offsetY = (byte) (posY * 6); - renderSegment(guiLeft + displayX + offsetX + dispOffset, guiTop + displayY + offsetY + 1, 1, 5); + byte offsetX = (byte) (posX * (horizontalLength + thickness)); + byte offsetY = (byte) (posY * (verticalLength + thickness)); + renderSegment(guiLeft + displayX + offsetX + dispOffset, guiTop + displayY + offsetY + thickness, thickness, verticalLength); } /** * drawTexturedModalRect() for cool kids @@ -413,9 +423,9 @@ public abstract class GuiInfoContainer extends GuiContainer { return toDisp.clone(); } /** Make the display blink **/ - public NumberDisplay setBlinks() + public NumberDisplay setBlinks(boolean doesBlink) { - blink = true; + blink = doesBlink; return this; } /** Padding between digits, default 3 **/ @@ -431,6 +441,14 @@ public abstract class GuiInfoContainer extends GuiContainer { toDisp = truncOrExpand(); return this; } + /** Set sizes and thickness of horizontal and vertical segments. **/ + public NumberDisplay setSegmentSize(int vertical, int horizontal, int thickness) + { + this.verticalLength = vertical; + this.horizontalLength = horizontal; + this.thickness = thickness; + return this; + } /** Set custom number bounds **/ public NumberDisplay setMaxMin(float max, float min) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 277967664..1d63c2a09 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -167,12 +167,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); - makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.coil_tungsten, 1), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.motor, 1), },200); - makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); + makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(TI.plate(), 4), new ComparableStack(ModItems.motor, 1), }, 100); + //makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); - makeRecipe(new ComparableStack(ModItems.thermo_unit_empty, 1), new AStack[] {new ComparableStack(ModItems.coil_copper_torus, 3), new OreDictStack(STEEL.ingot(), 3), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.plate_polymer, 12), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(SA326.plate(), 2), new OreDictStack(CMB.plate(), 4), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.wire_gold, 6), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); @@ -265,16 +264,15 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); - makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(IRON.plate(), 1), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); - makeRecipe(new ComparableStack(ModItems.limiter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.wire_copper, 4), },150); + makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); - makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.wire_red_copper, 16) },300); + makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); @@ -286,7 +284,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 28), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.thermo_element, 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); @@ -331,8 +329,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600); makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_endo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_exo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); //makeRecipe(new ComparableStack(ModBlocks.turret_light, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 2), },200); @@ -376,7 +374,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); - makeRecipe(new ComparableStack(ModItems.gadget_explosive, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.wire_gold, 3), },200); + makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_copper, 16), new ComparableStack(ModItems.wire_tungsten, 8), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(AL.ingot(), 8)},400); //8 HE lenses (polymer inserts since no baratol) w/ bridge-wire detonators, aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new OreDictStack(RUBBER.ingot(), 2), new OreDictStack(AL.ingot(), 1)},500); //8 HE (To use 16 PBX ingots; rubber inserts) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate(), 4), },150); @@ -384,7 +383,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100); makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate(), 8), new OreDictStack(AL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), },100); makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 3), },150); //HE for gating purposes - makeRecipe(new ComparableStack(ModItems.man_explosive, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 1), new OreDictStack(STEEL.plate(), 2), new OreDictStack(TI.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 3), },200); makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 9), },150); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.mike_core, 1), new AStack[] {new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6), },250); @@ -777,16 +775,17 @@ public class AssemblerRecipes { new ComparableStack(ModItems.circuit_tantalium, 16) }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_deuterium_extractor, 1), new AStack[] { - new ComparableStack(ModItems.deuterium_filter, 1), - new ComparableStack(ModItems.sulfur, 12), - new OreDictStack(STEEL.plate(), 8), - new OreDictStack(AL.plate(), 4), - new ComparableStack(ModItems.pipes_steel), - new ComparableStack(ModItems.board_copper, 2), - new ComparableStack(ModItems.turbine_titanium, 2), - new ComparableStack(ModItems.circuit_aluminium, 3) - }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { + new OreDictStack(STEEL.ingot(), 48), + new OreDictStack(TCALLOY.ingot(), 8), + new OreDictStack(B.ingot(), 4), + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(KEY_ANYPANE, 64), + new ComparableStack(ModItems.motor, 18), + new ComparableStack(ModItems.bolt_tungsten, 12), + new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit_gold, 3) + }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 48), diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 6933b7026..cc18449b7 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -41,8 +41,8 @@ public class CentrifugeRecipes { recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] { new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_th232, 1), - new ItemStack(ModItems.nugget_u233, 3), - new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + new ItemStack(ModItems.nugget_u233, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }); recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] { new ItemStack(ModItems.nugget_pu_mix, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 62e08f5e5..0032e95ab 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -9,36 +9,41 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.I18nUtil; +import com.hbm.util.Tuple.Pair; import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { public static enum PseudoFluidType { - NONE (0, 0, "NONE", "Empty", false, (ItemStack[])null), + NONE (0, 0, null, false, (ItemStack[])null), - NUF6 (400, 300, "LEUF6", "Natural UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, "MEUF6", "Low Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, "HEUF6", "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - HEUF6 (300, 0, "NONE", "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), + HEUF6 (300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), + MEUF6 (200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), + LEUF6 (300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), + NUF6 (400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), - PF6 (300, 0, "NONE", "Plutonium Hexafluoride", false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), - - MUD (1000, 500, "MUD_HEAVY", "Poisonous Mud", false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)), - MUD_HEAVY (500, 0, "NONE", "Heavy Mud Fraction", false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)); + PF6 (300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + + MUD_HEAVY (500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), + MUD (1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + + //TODO for bob: consider more fluid types + //Schraranium Trisulfide for more schrab-containing, pre-SILEX processing using the crystals? + //Gaseous Nuclear Waste: because why not? Large inputs could output Xe-135 and maybe some other fun stuff... + // int fluidConsumed; int fluidProduced; - String outputFluid; - String name; + PseudoFluidType outputFluid; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, String outputFluid, String name, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; - this.name = name; this.isHighSpeed = isHighSpeed; this.output = output; } @@ -51,12 +56,12 @@ public class GasCentrifugeRecipes { return this.fluidProduced; } - public PseudoFluidType getOutputFluid() { - return this.valueOf(this.outputFluid); + public PseudoFluidType getOutputType() { + return this.outputFluid; } public String getName() { - return this.name; + return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase())); } public boolean getIfHighSpeed() { @@ -70,7 +75,8 @@ public class GasCentrifugeRecipes { }; /* Recipe NEI Handler */ - private static Map gasCent = new HashMap(); + //Fluid input; ItemStack[] outputs, isHighSpeed, # of centrifuges + private static Map gasCent = new HashMap(); //Iterators are lots of fun public static Map getGasCentrifugeRecipes() { @@ -78,10 +84,10 @@ public class GasCentrifugeRecipes { Iterator itr = gasCent.entrySet().iterator(); while(itr.hasNext()) { - Map.Entry entry = (Entry) itr.next(); + Map.Entry entry = (Entry) itr.next(); FluidStack input = (FluidStack) entry.getKey(); ItemStack[] out = new ItemStack[4]; - ItemStack[] outputs = (ItemStack[]) entry.getValue(); + ItemStack[] outputs = (ItemStack[]) entry.getValue()[0]; for(int j = 0; j < outputs.length; j++) { out[j] = outputs[j].copy(); @@ -90,15 +96,20 @@ public class GasCentrifugeRecipes { if(out[j] == null) out[j] = new ItemStack(ModItems.nothing); - recipes.put(ItemFluidIcon.make(input.type, input.fill), outputs); + recipes.put(ItemFluidIcon.make(input.type, input.fill), new Object[] { out, entry.getValue()[1], entry.getValue()[2] }); } return recipes; } public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}); - gasCent.put(new FluidStack(900, Fluids.PUF6), new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new ItemStack[] {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)}); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] + {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); } } diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 40a4711da..b9acd7126 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -84,28 +84,30 @@ public class SILEXRecipes { for(int i = 0; i < 5; i++) { // UEU // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) //NU and MEU will breed more plutonium due to their higher concentrations of U-238 + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer + .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) + .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i)) ); // MEU // recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); @@ -135,23 +137,27 @@ public class SILEXRecipes { // TH232 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); // LEP // recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); @@ -189,13 +195,15 @@ public class SILEXRecipes { // MEN // recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); @@ -213,18 +221,20 @@ public class SILEXRecipes { // MOX // recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 7 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 7 * i)) + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) //To prevent people from taking advantage of differing waste types, conform to the latter + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); // LEAUS // @@ -262,12 +272,13 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i + 5), new SILEXRecipe(600, 100, 2) //I'd rather not fuck up the NEI handler, so six items it is .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_les), 90 - i * 20)) //Just bullshit something about "not enough np237 for extractable amounts of xe135" .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 1 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); // MES // @@ -275,17 +286,18 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 7 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) //ditto - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 7 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); // HES // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i), new SILEXRecipe(600, 100, 2) @@ -296,6 +308,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_hes), 90 - i * 20)) //ditto .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index a2657cfd7..cca5c56b3 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -42,10 +42,14 @@ public class ShredderRecipes { if(matches == null || matches.isEmpty()) continue; + //1 ingot unit, metal generateRecipes("ingot", name, matches, 1); - generateRecipes("ore", name, matches, 2); + generateRecipes("plate", name, matches, 1); + //1 ingot unit, crystalline generateRecipes("gem", name, matches, 1); generateRecipes("crystal", name, matches, 1); + //2 ingot units, any + generateRecipes("ore", name, matches, 2); if(name.length() > 5 && name.substring(0, 5).equals("block")) { ItemStack dust = getDustByName(name.substring(5)); @@ -335,6 +339,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModItems.debris_exchanger, new ItemStack(ModItems.powder_steel, 3)); ShredderRecipes.setRecipe(ModItems.debris_element, new ItemStack(ModItems.scrap_nuclear, 4)); ShredderRecipes.setRecipe(ModItems.debris_metal, new ItemStack(ModItems.powder_steel_tiny, 3)); + ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); /* * GC COMPAT 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 030292ee1..b6476112f 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -204,7 +204,19 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.deuterium_filter, 3), + new ComparableStack(ModItems.sulfur, 8), + new OreDictStack(STEEL.plate(), 4), + new OreDictStack(AL.plate(), 2), + new ComparableStack(ModItems.hull_small_steel, 4), + new ComparableStack(ModItems.board_copper, 1), + new ComparableStack(ModItems.turbine_titanium, 1), + new ComparableStack(ModItems.circuit_aluminium, 1) + }, + new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModItems.deuterium_filter, 2), new ComparableStack(ModItems.hull_big_steel, 5), new ComparableStack(ModBlocks.concrete_smooth, 8), new ComparableStack(ModBlocks.concrete_asbestos, 4), @@ -666,7 +678,8 @@ public class AnvilRecipes { }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 3)), + new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 2)), + new AnvilOutput(new ItemStack(ModItems.billet_uranium, 1)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2)) }).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -695,10 +708,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.machine_turbine), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.turbine_titanium, 2)), - new AnvilOutput(new ItemStack(ModItems.motor, 1)), - new AnvilOutput(new ItemStack(ModItems.tank_steel, 2)), - new AnvilOutput(new ItemStack(ModItems.plate_titanium, 4)) + new AnvilOutput(new ItemStack(ModItems.turbine_titanium, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 2)), + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 6)) }).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index 4a845ca3f..883be3ee6 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -23,7 +23,9 @@ public class ItemCustomLore extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(MainRegistry.polaroidID == 11) { + boolean p11 = !I18nUtil.resolveKey(this.getUnlocalizedName() + ".desc.P11").equals(this.getUnlocalizedName() + ".desc.P11"); + + if(MainRegistry.polaroidID == 11 && p11) { String unlocP11 = this.getUnlocalizedName() + ".desc.P11"; String locP11 = I18nUtil.resolveKey(unlocP11); diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 2419ae0c6..762634440 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -17,8 +17,8 @@ public class ItemEnumMulti extends Item { //hell yes, now we're thinking with enums! protected Class theEnum; - private boolean multiName; - private boolean multiTexture; + protected boolean multiName; + protected boolean multiTexture; public ItemEnumMulti(Class theEnum, boolean multiName, boolean multiTexture) { this.setHasSubtypes(true); @@ -42,7 +42,7 @@ public class ItemEnumMulti extends Item { return this; } - private IIcon[] icons; + protected IIcon[] icons; @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java new file mode 100644 index 000000000..67e129cfd --- /dev/null +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -0,0 +1,39 @@ +package com.hbm.items; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class ItemGenericPart extends ItemEnumMulti { + + public static enum EnumPartType { + PISTON_PNEUMATIC("piston_pneumatic"), + PISTON_HYDRAULIC("piston_hydraulic"), + PISTON_ELECTRIC("piston_electric"); + + private String texName; + + private EnumPartType(String texName) { + this.texName = texName; + } + } + + public ItemGenericPart() { + super(EnumPartType.class, true, true); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + EnumPartType num = (EnumPartType)enums[i]; + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + num.texName); + } + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c3a51b593..f42781524 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -19,6 +19,7 @@ import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; +import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.items.special.*; @@ -313,6 +314,7 @@ public class ModItems { public static Item sat_base; public static Item thruster_nuclear; public static Item safety_fuse; + public static Item part_generic; public static Item undefined; @@ -511,12 +513,12 @@ public class ModItems { public static Item motor; public static Item motor_desh; public static Item centrifuge_element; - public static Item centrifuge_tower; + //public static Item centrifuge_tower; public static Item reactor_core; public static Item rtg_unit; - public static Item thermo_unit_empty; - public static Item thermo_unit_endo; - public static Item thermo_unit_exo; + //public static Item thermo_unit_empty; + //public static Item thermo_unit_endo; + //public static Item thermo_unit_exo; public static Item levitation_unit; public static Item wire_aluminium; public static Item wire_copper; @@ -529,9 +531,9 @@ public class ModItems { public static Item coil_magnetized_tungsten; public static Item coil_gold; public static Item coil_gold_torus; - public static Item magnet_dee; + //public static Item magnet_dee; public static Item magnet_circular; - public static Item cyclotron_tower; + //public static Item cyclotron_tower; public static Item component_limiter; public static Item component_emitter; public static Item chlorine_pinwheel; @@ -743,7 +745,7 @@ public class ModItems { public static Item laser_crystal_digamma; public static Item thermo_element; - public static Item limiter; + //public static Item limiter; public static Item pellet_rtg_depleted; @@ -772,8 +774,8 @@ public class ModItems { public static Item piston_selenium; - public static Item crystal_energy; - public static Item pellet_coolant; + //public static Item crystal_energy; + //public static Item pellet_coolant; public static Item rune_blank; public static Item rune_isa; @@ -1210,6 +1212,7 @@ public class ModItems { public static Item designator; public static Item designator_range; public static Item designator_manual; + public static Item designator_arty_range; public static Item linker; public static Item reactor_sensor; public static Item oil_detector; @@ -1561,6 +1564,7 @@ public class ModItems { public static Item ammo_shell_apfsds_du; public static Item ammo_shell_w9; public static Item ammo_dgk; + public static Item ammo_arty; public static Item ammo_nuke; public static Item ammo_nuke_low; public static Item ammo_nuke_high; @@ -1592,14 +1596,14 @@ public class ModItems { public static Item ammo_stinger_rocket_bones; public static Item gun_rpg; - public static Item gun_rpg_ammo; + //public static Item gun_rpg_ammo; public static Item gun_karl; public static Item gun_panzerschreck; public static Item gun_quadro; public static Item gun_hk69; public static Item gun_stinger; public static Item gun_skystinger; - public static Item gun_stinger_ammo; + //public static Item gun_stinger_ammo; public static Item gun_revolver; public static Item gun_revolver_saturnite; public static Item gun_revolver_ammo; @@ -1618,40 +1622,40 @@ public class ModItems { public static Item gun_revolver_nightmare2; public static Item gun_revolver_nightmare2_ammo; public static Item gun_revolver_pip; - public static Item gun_revolver_pip_ammo; + //public static Item gun_revolver_pip_ammo; public static Item gun_revolver_nopip; public static Item gun_revolver_blackjack; public static Item gun_revolver_silver; public static Item gun_revolver_red; - public static Item gun_revolver_nopip_ammo; + //public static Item gun_revolver_nopip_ammo; public static Item gun_deagle; public static Item gun_flechette; public static Item gun_ar15; public static Item gun_calamity; public static Item gun_calamity_dual; - public static Item gun_calamity_ammo; + //public static Item gun_calamity_ammo; public static Item gun_minigun; public static Item gun_avenger; public static Item gun_lacunae; - public static Item gun_lacunae_ammo; + //public static Item gun_lacunae_ammo; public static Item gun_folly; public static Item gun_fatman; public static Item gun_proto; - public static Item gun_fatman_ammo; + //public static Item gun_fatman_ammo; public static Item gun_mirv; - public static Item gun_mirv_ammo; + //public static Item gun_mirv_ammo; public static Item gun_bf; public static Item gun_bf_ammo; public static Item gun_mp40; - public static Item gun_mp40_ammo; + //public static Item gun_mp40_ammo; public static Item gun_thompson; public static Item gun_uzi; public static Item gun_uzi_silencer; public static Item gun_uzi_saturnite; public static Item gun_uzi_saturnite_silencer; - public static Item gun_uzi_ammo; + //public static Item gun_uzi_ammo; public static Item gun_uboinik; - public static Item gun_uboinik_ammo; + //public static Item gun_uboinik_ammo; public static Item gun_spas12; public static Item gun_supershotgun; public static Item gun_ks23; @@ -1659,11 +1663,11 @@ public class ModItems { public static Item gun_lever_action; public static Item gun_lever_action_dark; public static Item gun_lever_action_sonata; - public static Item gun_lever_action_ammo; + //public static Item gun_lever_action_ammo; public static Item gun_bolt_action; public static Item gun_bolt_action_green; public static Item gun_bolt_action_saturnite; - public static Item gun_bolt_action_ammo; + //public static Item gun_bolt_action_ammo; public static Item gun_mymy; public static Item gun_b92; public static Item gun_b92_ammo; @@ -1808,8 +1812,9 @@ public class ModItems { public static Item flame_politics; public static Item flame_opinion; - public static Item gadget_explosive; - public static Item gadget_explosive8; + //public static Item gadget_explosive; + public static Item early_explosive_lenses; + public static Item explosive_lenses; public static Item gadget_wireing; public static Item gadget_core; public static Item boy_igniter; @@ -1817,8 +1822,7 @@ public class ModItems { public static Item boy_bullet; public static Item boy_target; public static Item boy_shielding; - public static Item man_explosive; - public static Item man_explosive8; + //public static Item man_explosive; public static Item man_igniter; public static Item man_core; public static Item mike_core; @@ -1949,6 +1953,8 @@ public class ModItems { public static Item upgrade_screm; public static Item upgrade_gc_speed; public static Item upgrade_5g; + public static Item upgrade_stack; + public static Item upgrade_ejector; public static Item ingot_euphemium; public static Item nugget_euphemium; @@ -1980,6 +1986,10 @@ public class ModItems { public static Item steamsuit_plate; public static Item steamsuit_legs; public static Item steamsuit_boots; + public static Item dieselsuit_helmet; + public static Item dieselsuit_plate; + public static Item dieselsuit_legs; + public static Item dieselsuit_boots; public static Item chainsaw; @@ -2370,7 +2380,7 @@ public class ModItems { public static Item remote; public static Item turret_control; public static Item turret_chip; - public static Item turret_biometry; + //public static Item turret_biometry; public static Item spawn_chopper; public static Item spawn_worm; @@ -2496,14 +2506,14 @@ public class ModItems { public static Item orange6; public static Item orange7; public static Item orange8; - public static Item gasflame1; + /*public static Item gasflame1; public static Item gasflame2; public static Item gasflame3; public static Item gasflame4; public static Item gasflame5; public static Item gasflame6; public static Item gasflame7; - public static Item gasflame8; + public static Item gasflame8;*/ public static Item energy_ball; public static Item discharge; public static Item empblast; @@ -2676,6 +2686,7 @@ public class ModItems { sat_base = new Item().setUnlocalizedName("sat_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_base"); thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); + part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); @@ -3008,12 +3019,12 @@ public class ModItems { motor = new Item().setUnlocalizedName("motor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor"); motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); - centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); + //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); rtg_unit = new Item().setUnlocalizedName("rtg_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rtg_unit"); - thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); - thermo_unit_endo= new Item().setUnlocalizedName("thermo_unit_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_endo"); - thermo_unit_exo = new Item().setUnlocalizedName("thermo_unit_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_exo"); + //thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); + //thermo_unit_endo= new Item().setUnlocalizedName("thermo_unit_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_endo"); + //thermo_unit_exo = new Item().setUnlocalizedName("thermo_unit_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_exo"); levitation_unit = new Item().setUnlocalizedName("levitation_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":levitation_unit"); wire_aluminium = new Item().setUnlocalizedName("wire_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_aluminium"); wire_copper = new Item().setUnlocalizedName("wire_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_copper"); @@ -3023,9 +3034,9 @@ public class ModItems { coil_magnetized_tungsten = new Item().setUnlocalizedName("coil_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_magnetized_tungsten"); coil_gold = new Item().setUnlocalizedName("coil_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold"); coil_gold_torus = new Item().setUnlocalizedName("coil_gold_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold_torus"); - magnet_dee = new Item().setUnlocalizedName("magnet_dee").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_dee"); + //magnet_dee = new Item().setUnlocalizedName("magnet_dee").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_dee"); magnet_circular = new Item().setUnlocalizedName("magnet_circular").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_circular"); - cyclotron_tower = new Item().setUnlocalizedName("cyclotron_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cyclotron_tower"); + //cyclotron_tower = new Item().setUnlocalizedName("cyclotron_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cyclotron_tower"); pellet_coal = new Item().setUnlocalizedName("pellet_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_coal"); component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); @@ -3193,9 +3204,9 @@ public class ModItems { piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); - crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); - pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); - + //crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); + //pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); + rune_blank = new ItemCustomLore().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); rune_isa = new ItemCustomLore().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); rune_dagaz = new ItemCustomLore().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); @@ -3316,7 +3327,7 @@ public class ModItems { laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); - limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); + //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); @@ -3574,13 +3585,13 @@ public class ModItems { rod_zirnox_natural_uranium_fuel = new ItemZirnoxRod(125000, 30).setUnlocalizedName("rod_zirnox_natural_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_natural_uranium_fuel"); rod_zirnox_uranium_fuel = new ItemZirnoxRod(100000, 50).setUnlocalizedName("rod_zirnox_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel"); rod_zirnox_th232 = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_th232"); - rod_zirnox_thorium_fuel = new ItemZirnoxRod(120000, 30).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); + rod_zirnox_thorium_fuel = new ItemZirnoxRod(120000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); rod_zirnox_mox_fuel = new ItemZirnoxRod(80000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); rod_zirnox_plutonium_fuel = new ItemZirnoxRod(85000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); rod_zirnox_u233_fuel = new ItemZirnoxRod(87500, 80).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); rod_zirnox_u235_fuel = new ItemZirnoxRod(85000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); rod_zirnox_les_fuel = new ItemZirnoxRod(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); - rod_zirnox_lithium = new ItemZirnoxBreedingRod(10000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); + rod_zirnox_lithium = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); rod_zirnox_tritium = new Item().setUnlocalizedName("rod_zirnox_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_tritium"); rod_zirnox_natural_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_natural_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); @@ -3643,7 +3654,7 @@ public class ModItems { rbmk_pellet_hea242 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-242").setUnlocalizedName("rbmk_pellet_hea242").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea242"); rbmk_pellet_men = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Neptunium-237").setUnlocalizedName("rbmk_pellet_men").setTextureName(RefStrings.MODID + ":rbmk_pellet_men"); rbmk_pellet_hen = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Neptunium-237").setUnlocalizedName("rbmk_pellet_hen").setTextureName(RefStrings.MODID + ":rbmk_pellet_hen"); - rbmk_pellet_mox = (ItemRBMKPellet) new ItemRBMKPellet("Mixed LEU & LEP Oxide").setUnlocalizedName("rbmk_pellet_mox").setTextureName(RefStrings.MODID + ":rbmk_pellet_mox"); + rbmk_pellet_mox = (ItemRBMKPellet) new ItemRBMKPellet("Mixed MEU & LEP Oxide").setUnlocalizedName("rbmk_pellet_mox").setTextureName(RefStrings.MODID + ":rbmk_pellet_mox"); rbmk_pellet_les = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_les").setTextureName(RefStrings.MODID + ":rbmk_pellet_les"); rbmk_pellet_mes = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_mes").setTextureName(RefStrings.MODID + ":rbmk_pellet_mes"); rbmk_pellet_hes = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_hes").setTextureName(RefStrings.MODID + ":rbmk_pellet_hes"); @@ -3665,51 +3676,58 @@ public class ModItems { .setYield(100000000D) .setStats(15) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.65) //0.5 is too much of a nerf in heat; pu239 buildup justifies it being on par with MEU ig .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_ueu").setTextureName(RefStrings.MODID + ":rbmk_fuel_ueu"); rbmk_fuel_meu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_meu) .setYield(100000000D) .setStats(20) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.65) //0.75 was a bit too much... .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu"); rbmk_fuel_heu233 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu233) .setYield(100000000D) - .setStats(50) - .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setStats(27.5D) + .setFunction(EnumBurnFunc.LINEAR) .setHeat(1.25D) .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_heu233").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu233"); rbmk_fuel_heu235 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu235) .setYield(100000000D) - .setStats(40) + .setStats(50) //Consistency with HEN; its critical mass is too high to justify a linear function .setFunction(EnumBurnFunc.SQUARE_ROOT) .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_heu235").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu235"); rbmk_fuel_thmeu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_thmeu) .setYield(100000000D) - .setStats(12) + .setStats(20) .setFunction(EnumBurnFunc.PLATEU) + .setDepletionFunction(EnumDepleteFunc.BOOSTED_SLOPE) + .setHeat(0.65D) //Consistency with MEU .setMeltingPoint(3350) .setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu"); rbmk_fuel_lep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_lep) .setYield(100000000D) .setStats(35) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.75D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep"); rbmk_fuel_mep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mep) .setYield(100000000D) .setStats(35, 20) .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.25D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep"); rbmk_fuel_hep239 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep239) .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.LINEAR) - .setHeat(1.5D) + .setHeat(1.25D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_hep").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep"); rbmk_fuel_hep241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep241) @@ -3723,6 +3741,7 @@ public class ModItems { .setYield(100000000D) .setStats(60, 10) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setHeat(1.5D) .setMeltingPoint(2386) .setUnlocalizedName("rbmk_fuel_lea").setTextureName(RefStrings.MODID + ":rbmk_fuel_lea"); @@ -3737,7 +3756,7 @@ public class ModItems { .setYield(100000000D) .setStats(65, 15) .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.75D) + .setHeat(1.85D) .setMeltingPoint(2386) .setNeutronTypes(NType.FAST, NType.FAST) .setUnlocalizedName("rbmk_fuel_hea241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea241"); @@ -3752,8 +3771,10 @@ public class ModItems { .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.75) .setMeltingPoint(2800) - .setNeutronTypes(NType.FAST, NType.FAST) + .setNeutronTypes(NType.ANY, NType.FAST) //Build-up of Pu-239 leads to both speeds of neutrons grooving .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); rbmk_fuel_hen = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hen) .setYield(100000000D) @@ -3766,7 +3787,7 @@ public class ModItems { .setYield(100000000D) .setStats(40) .setFunction(EnumBurnFunc.LOG_TEN) - .setHeat(1.5D) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setMeltingPoint(2815) .setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox"); rbmk_fuel_les = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_les) @@ -3775,6 +3796,7 @@ public class ModItems { .setFunction(EnumBurnFunc.SQUARE_ROOT) .setHeat(1.25D) .setMeltingPoint(2500) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); rbmk_fuel_mes = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mes) .setYield(100000000D) @@ -3787,6 +3809,7 @@ public class ModItems { .setYield(100000000D) .setStats(90) .setFunction(EnumBurnFunc.LINEAR) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setHeat(1.75D) .setMeltingPoint(3000) .setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes"); @@ -3794,6 +3817,7 @@ public class ModItems { .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.SIGMOID) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.05D, 50D) .setHeat(1.5D) .setMeltingPoint(7029).setUnlocalizedName("rbmk_fuel_leaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_leaus"); @@ -3806,34 +3830,40 @@ public class ModItems { .setMeltingPoint(5211).setUnlocalizedName("rbmk_fuel_heaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_heaus"); rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be) .setYield(25000000D) - .setStats(15, 40) - .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setStats(0D, 50) + .setFunction(EnumBurnFunc.PASSIVE) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setHeat(0.1D) .setDiffusion(0.05D) .setMeltingPoint(1287) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_po210be").setTextureName(RefStrings.MODID + ":rbmk_fuel_po210be"); rbmk_fuel_ra226be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ra226be) .setYield(100000000D) .setStats(0D, 20) .setFunction(EnumBurnFunc.PASSIVE) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setHeat(0.035D) .setDiffusion(0.5D) .setMeltingPoint(700) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_ra226be").setTextureName(RefStrings.MODID + ":rbmk_fuel_ra226be"); rbmk_fuel_pu238be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_pu238be) .setYield(50000000D) - .setStats(10, 50) + .setStats(40, 40) .setFunction(EnumBurnFunc.SQUARE_ROOT) .setHeat(0.1D) .setDiffusion(0.05D) .setMeltingPoint(1287) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be"); rbmk_fuel_balefire_gold = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_balefire_gold) .setYield(100000000D) .setStats(50, 10) .setFunction(EnumBurnFunc.ARCH) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setMeltingPoint(2000) .setUnlocalizedName("rbmk_fuel_balefire_gold").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire_gold"); @@ -3841,6 +3871,7 @@ public class ModItems { .setYield(250000000D) .setStats(40, 50) .setFunction(EnumBurnFunc.ARCH) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setMeltingPoint(2050) .setUnlocalizedName("rbmk_fuel_flashlead").setTextureName(RefStrings.MODID + ":rbmk_fuel_flashlead"); @@ -3946,6 +3977,7 @@ public class ModItems { designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator"); designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt"); designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); + designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range"); missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); missile_generic = new Item().setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); missile_anti_ballistic = new Item().setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); @@ -4263,6 +4295,7 @@ public class ModItems { ammo_shell_apfsds_du = new ItemAmmo().setUnlocalizedName("ammo_shell_apfsds_du"); ammo_shell_w9 = new ItemAmmo().setUnlocalizedName("ammo_shell_w9"); ammo_dgk = new ItemAmmo().setUnlocalizedName("ammo_dgk"); + ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); ammo_nuke = new ItemAmmo().setUnlocalizedName("ammo_nuke"); ammo_nuke_low = new ItemAmmo().setUnlocalizedName("ammo_nuke_low"); ammo_nuke_high = new ItemAmmo().setUnlocalizedName("ammo_nuke_high"); @@ -4297,11 +4330,11 @@ public class ModItems { gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl"); gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); - gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt"); + //gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); - gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo"); + //gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo"); gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); @@ -4319,9 +4352,9 @@ public class ModItems { gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); gun_revolver_nightmare2_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare2_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2_ammo"); gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo"); + //gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo"); gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); - gun_revolver_nopip_ammo = new Item().setUnlocalizedName("gun_revolver_nopip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip_ammo"); + //gun_revolver_nopip_ammo = new Item().setUnlocalizedName("gun_revolver_nopip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip_ammo"); gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); @@ -4329,40 +4362,40 @@ public class ModItems { gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); - gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); + //gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); gun_calamity = new ItemGunBase(Gun50BMGFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_calamity_dual = new ItemGunBase(Gun50BMGFactory.getSaddleConfig()).setUnlocalizedName("gun_calamity_dual").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity_dual"); - gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo"); + //gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo"); gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); - gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); + //gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv_ammo"); + //gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv_ammo"); gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); - gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); + //gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); gun_thompson = new ItemGunBase(Gun9mmFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); - gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); + //gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi"); gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); gun_uzi_saturnite = new ItemGunBase(Gun22LRFactory.getSaturniteConfig()).setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite"); gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); - gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); + //gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_spas12 = new ItemGunBase(Gun12GaugeFactory.getSpas12Config(), Gun12GaugeFactory.getSpas12AltConfig()).setUnlocalizedName("gun_spas12").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); + //gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); - gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); + //gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); @@ -4509,27 +4542,27 @@ public class ModItems { flame_politics = new ItemCustomLore().setUnlocalizedName("flame_politics").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_politics"); flame_opinion = new ItemCustomLore().setUnlocalizedName("flame_opinion").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_opinion"); - gadget_explosive = new Item().setUnlocalizedName("gadget_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive"); - gadget_explosive8 = new ItemGadget().setUnlocalizedName("gadget_explosive8").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive8"); - gadget_wireing = new ItemGadget().setUnlocalizedName("gadget_wireing").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_wireing"); - gadget_core = new ItemGadget().setUnlocalizedName("gadget_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_core"); + //gadget_explosive = new Item().setUnlocalizedName("gadget_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive"); + early_explosive_lenses = new ItemCustomLore().setUnlocalizedName("early_explosive_lenses").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive8"); + explosive_lenses = new ItemCustomLore().setUnlocalizedName("explosive_lenses").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive8"); + gadget_wireing = new Item().setUnlocalizedName("gadget_wireing").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_wireing"); + gadget_core = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gadget_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_core"); - boy_igniter = new ItemBoy().setUnlocalizedName("boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_igniter"); - boy_propellant = new ItemBoy().setUnlocalizedName("boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_propellant"); - boy_bullet = new ItemBoy().setUnlocalizedName("boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_bullet"); - boy_target = new ItemBoy().setUnlocalizedName("boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_target"); - boy_shielding = new ItemBoy().setUnlocalizedName("boy_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_shielding"); + boy_igniter = new Item().setUnlocalizedName("boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_igniter"); + boy_propellant = new Item().setUnlocalizedName("boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_propellant"); + boy_bullet = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_bullet"); + boy_target = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_target"); + boy_shielding = new Item().setUnlocalizedName("boy_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_shielding"); - man_explosive = new Item().setUnlocalizedName("man_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive"); - man_explosive8 = new ItemManMike().setUnlocalizedName("man_explosive8").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive8"); - man_igniter = new ItemMan().setUnlocalizedName("man_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_igniter"); - man_core = new ItemManMike().setUnlocalizedName("man_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_core"); + //man_explosive = new Item().setUnlocalizedName("man_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive"); + man_igniter = new Item().setUnlocalizedName("man_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_igniter"); + man_core = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("man_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_core"); - mike_core = new ItemMike().setUnlocalizedName("mike_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_core"); - mike_deut = new ItemMike().setUnlocalizedName("mike_deut").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setContainerItem(ModItems.tank_steel).setTextureName(RefStrings.MODID + ":mike_deut"); - mike_cooling_unit = new ItemMike().setUnlocalizedName("mike_cooling_unit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_cooling_unit"); + mike_core = new Item().setUnlocalizedName("mike_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_core"); + mike_deut = new Item().setUnlocalizedName("mike_deut").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setContainerItem(ModItems.tank_steel).setTextureName(RefStrings.MODID + ":mike_deut"); + mike_cooling_unit = new Item().setUnlocalizedName("mike_cooling_unit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_cooling_unit"); - tsar_core = new ItemTsar().setUnlocalizedName("tsar_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_core"); + tsar_core = new Item().setUnlocalizedName("tsar_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_core"); fleija_igniter = new ItemFleija().setUnlocalizedName("fleija_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_igniter"); fleija_propellant = new ItemFleija().setUnlocalizedName("fleija_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_propellant"); @@ -4670,6 +4703,8 @@ public class ModItems { upgrade_screm = new ItemMachineUpgrade().setUnlocalizedName("upgrade_screm").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_screm"); upgrade_gc_speed = new ItemMachineUpgrade().setUnlocalizedName("upgrade_gc_speed").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_gc_speed"); upgrade_5g = new ItemMachineUpgrade().setUnlocalizedName("upgrade_5g").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_5g"); + upgrade_stack = new ItemMetaUpgrade(3).setUnlocalizedName("upgrade_stack").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_stack"); + upgrade_ejector = new ItemMetaUpgrade(3).setUnlocalizedName("upgrade_ejector").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_ejector"); wand = new ItemWand().setUnlocalizedName("wand_k").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand"); wand_s = new ItemWandS().setUnlocalizedName("wand_s").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); @@ -4763,7 +4798,7 @@ public class ModItems { oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":oil_detector"); turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setFull3D().setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":turret_control"); turret_chip = new ItemTurretChip().setUnlocalizedName("turret_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":turret_chip"); - turret_biometry = new ItemTurretBiometry().setUnlocalizedName("turret_biometry").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":rei_scanner"); + //turret_biometry = new ItemTurretBiometry().setUnlocalizedName("turret_biometry").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":rei_scanner"); dosimeter = new ItemDosimeter().setUnlocalizedName("dosimeter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":dosimeter"); geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); @@ -4940,7 +4975,7 @@ public class ModItems { t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); t45_boots = new ArmorT45(aMatT45, 2, 3, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_boots"); - + ArmorMaterial aMatDesh = EnumHelper.addArmorMaterial("HBM_DESH", 150, new int[] { 3, 8, 6, 3 }, 0); aMatDesh.customCraftingMaterial = ModItems.ingot_desh; steamsuit_helmet = new ArmorDesh(aMatDesh, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).setThreshold(5F).setMod(0.8F) @@ -4955,6 +4990,19 @@ public class ModItems { steamsuit_plate = new ArmorDesh(aMatDesh, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); steamsuit_legs = new ArmorDesh(aMatDesh, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); steamsuit_boots = new ArmorDesh(aMatDesh, 2, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_boots"); + + ArmorMaterial aMatDiesel = EnumHelper.addArmorMaterial("HBM_BNUUY", 150, new int[] { 3, 8, 6, 3 }, 0); + aMatDiesel.customCraftingMaterial = ModItems.plate_copper; + dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).setThreshold(2F).setMod(0.7F) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .enableThermalSight(true) + .enableVATS(true) + .addResistance("fall", 0) + .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); + dieselsuit_plate = new ArmorDiesel(aMatDiesel, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); + dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); + dieselsuit_boots = new ArmorDiesel(aMatDiesel, 2, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_boots"); ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 100); aMatAJR.customCraftingMaterial = ModItems.plate_armor_ajr; @@ -5607,14 +5655,6 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - gasflame1 = new Item().setUnlocalizedName("gasflame1").setTextureName(RefStrings.MODID + ":gasflame1"); - gasflame2 = new Item().setUnlocalizedName("gasflame2").setTextureName(RefStrings.MODID + ":gasflame2"); - gasflame3 = new Item().setUnlocalizedName("gasflame3").setTextureName(RefStrings.MODID + ":gasflame3"); - gasflame4 = new Item().setUnlocalizedName("gasflame4").setTextureName(RefStrings.MODID + ":gasflame4"); - gasflame5 = new Item().setUnlocalizedName("gasflame5").setTextureName(RefStrings.MODID + ":gasflame5"); - gasflame6 = new Item().setUnlocalizedName("gasflame6").setTextureName(RefStrings.MODID + ":gasflame6"); - gasflame7 = new Item().setUnlocalizedName("gasflame7").setTextureName(RefStrings.MODID + ":gasflame7"); - gasflame8 = new Item().setUnlocalizedName("gasflame8").setTextureName(RefStrings.MODID + ":gasflame8"); energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); @@ -6147,15 +6187,15 @@ public class ModItems { GameRegistry.registerItem(motor, motor.getUnlocalizedName()); GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); - GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); - GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); + //GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); + //GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); GameRegistry.registerItem(magnet_circular, magnet_circular.getUnlocalizedName()); - GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); + //GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); @@ -6163,6 +6203,7 @@ public class ModItems { GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); + GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); //Plant Products @@ -6598,6 +6639,8 @@ public class ModItems { GameRegistry.registerItem(upgrade_screm, upgrade_screm.getUnlocalizedName()); GameRegistry.registerItem(upgrade_gc_speed, upgrade_gc_speed.getUnlocalizedName()); GameRegistry.registerItem(upgrade_5g, upgrade_5g.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_stack, upgrade_stack.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_ejector, upgrade_ejector.getUnlocalizedName()); //Machine Templates GameRegistry.registerItem(siren_track, siren_track.getUnlocalizedName()); @@ -6625,8 +6668,8 @@ public class ModItems { GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); //Particle Collider Items - GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName()); - GameRegistry.registerItem(pellet_coolant, pellet_coolant.getUnlocalizedName()); + //GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName()); + //GameRegistry.registerItem(pellet_coolant, pellet_coolant.getUnlocalizedName()); //Particle Collider Fuel GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); @@ -6693,7 +6736,7 @@ public class ModItems { //Generator Stuff GameRegistry.registerItem(thermo_element, thermo_element.getUnlocalizedName()); - GameRegistry.registerItem(limiter, limiter.getUnlocalizedName()); + //GameRegistry.registerItem(limiter, limiter.getUnlocalizedName()); //AMS Components GameRegistry.registerItem(ams_focus_blank, ams_focus_blank.getUnlocalizedName()); @@ -6885,9 +6928,10 @@ public class ModItems { GameRegistry.registerItem(designator, designator.getUnlocalizedName()); GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName()); + GameRegistry.registerItem(designator_arty_range, designator_arty_range.getUnlocalizedName()); GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName()); - GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); + //GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); @@ -7189,21 +7233,21 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_nightmare_ammo, gun_revolver_nightmare_ammo.getUnlocalizedName()); GameRegistry.registerItem(ammo_357_desh, ammo_357_desh.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_bf_ammo, gun_bf_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); @@ -7352,6 +7396,7 @@ public class ModItems { GameRegistry.registerItem(ammo_shell_apfsds_du, ammo_shell_apfsds_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName()); GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); + GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_low, ammo_nuke_low.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_high, ammo_nuke_high.getUnlocalizedName()); @@ -7795,10 +7840,13 @@ public class ModItems { //Minecarts GameRegistry.registerItem(cart, cart.getUnlocalizedName()); - + + //High Explosive Lenses + GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); + GameRegistry.registerItem(explosive_lenses, explosive_lenses.getUnlocalizedName()); + //The Gadget - GameRegistry.registerItem(gadget_explosive, gadget_explosive.getUnlocalizedName()); - GameRegistry.registerItem(gadget_explosive8, gadget_explosive8.getUnlocalizedName()); + //GameRegistry.registerItem(gadget_explosive, gadget_explosive.getUnlocalizedName()); GameRegistry.registerItem(gadget_wireing, gadget_wireing.getUnlocalizedName()); GameRegistry.registerItem(gadget_core, gadget_core.getUnlocalizedName()); @@ -7810,8 +7858,7 @@ public class ModItems { GameRegistry.registerItem(boy_igniter, boy_igniter.getUnlocalizedName());; //Fat Man - GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); - GameRegistry.registerItem(man_explosive8, man_explosive8.getUnlocalizedName()); + //GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); GameRegistry.registerItem(man_igniter, man_igniter.getUnlocalizedName()); GameRegistry.registerItem(man_core, man_core.getUnlocalizedName()); @@ -7880,6 +7927,10 @@ public class ModItems { GameRegistry.registerItem(steamsuit_plate, steamsuit_plate.getUnlocalizedName()); GameRegistry.registerItem(steamsuit_legs, steamsuit_legs.getUnlocalizedName()); GameRegistry.registerItem(steamsuit_boots, steamsuit_boots.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_helmet, dieselsuit_helmet.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_plate, dieselsuit_plate.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_legs, dieselsuit_legs.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_boots, dieselsuit_boots.getUnlocalizedName()); GameRegistry.registerItem(t45_helmet, t45_helmet.getUnlocalizedName()); GameRegistry.registerItem(t45_plate, t45_plate.getUnlocalizedName()); GameRegistry.registerItem(t45_legs, t45_legs.getUnlocalizedName()); @@ -8155,14 +8206,6 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(gasflame1, gasflame1.getUnlocalizedName()); - GameRegistry.registerItem(gasflame2, gasflame2.getUnlocalizedName()); - GameRegistry.registerItem(gasflame3, gasflame3.getUnlocalizedName()); - GameRegistry.registerItem(gasflame4, gasflame4.getUnlocalizedName()); - GameRegistry.registerItem(gasflame5, gasflame5.getUnlocalizedName()); - GameRegistry.registerItem(gasflame6, gasflame6.getUnlocalizedName()); - GameRegistry.registerItem(gasflame7, gasflame7.getUnlocalizedName()); - GameRegistry.registerItem(gasflame8, gasflame8.getUnlocalizedName()); GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorAsbestos.java b/src/main/java/com/hbm/items/armor/ArmorAsbestos.java index b0933fdd2..f2b750cec 100644 --- a/src/main/java/com/hbm/items/armor/ArmorAsbestos.java +++ b/src/main/java/com/hbm/items/armor/ArmorAsbestos.java @@ -24,29 +24,29 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { - + private ResourceLocation asbestosBlur = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_asbestos.png"); - + public ArmorAsbestos(ArmorMaterial armorMaterial, int renderIndex, int armorType) { super(armorMaterial, renderIndex, armorType); } - + @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { if(stack.getItem().equals(ModItems.asbestos_helmet) || stack.getItem().equals(ModItems.asbestos_plate) || stack.getItem().equals(ModItems.asbestos_boots)) { - return (RefStrings.MODID + ":textures/armor/asbestos_1.png"); + return(RefStrings.MODID + ":textures/armor/asbestos_1.png"); } if(stack.getItem().equals(ModItems.asbestos_legs)) { - return (RefStrings.MODID + ":textures/armor/asbestos_2.png"); + return(RefStrings.MODID + ":textures/armor/asbestos_2.png"); } - - else return null; + + else + return null; } @Override public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) { - if(source.isFireDamage()) - { + if(source.isFireDamage()) { return new ArmorProperties(1, 1, MathHelper.floor_double(999999999)); } return new ArmorProperties(0, 0, 0); @@ -54,20 +54,16 @@ public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { - if(slot == 0) - { + if(slot == 0) { return 3; } - if(slot == 1) - { + if(slot == 1) { return 8; } - if(slot == 2) - { + if(slot == 2) { return 6; } - if(slot == 3) - { + if(slot == 3) { return 3; } return 0; @@ -76,39 +72,39 @@ public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { @Override public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) { stack.damageItem(damage * 1, entity); - + } - + @Override public void onArmorTick(World world, EntityPlayer player, ItemStack armor) { - - player.extinguish(); - } - - @SideOnly(Side.CLIENT) - public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ - - if(this != ModItems.asbestos_helmet) - return; - - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - Minecraft.getMinecraft().getTextureManager().bindTexture(asbestosBlur); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(0.0D, (double)resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), (double)resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); - tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); - tessellator.draw(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } + player.extinguish(); + } + + @SideOnly(Side.CLIENT) + public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + + if(this != ModItems.asbestos_helmet) + return; + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + Minecraft.getMinecraft().getTextureManager().bindTexture(asbestosBlur); + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(0.0D, (double) resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), (double) resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); + tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); + tessellator.draw(); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index c71042018..d22034e78 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -141,7 +141,9 @@ public class ArmorDNT extends ArmorFSBPowered { return; } - e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + //e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java new file mode 100644 index 000000000..d3cb53dc4 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -0,0 +1,66 @@ +package com.hbm.items.armor; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.hbm.handler.ArmorModHandler; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.render.model.ModelArmorDiesel; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ArmorDiesel extends ArmorFSBFueled { + + public ArmorDiesel(ArmorMaterial material, int layer, int slot, String texture, FluidType fuelType, int maxFuel, int fillRate, int consumption, int drain) { + super(material, layer, slot, texture, fuelType, maxFuel, fillRate, consumption, drain); + } + + @Override + public Multimap getItemAttributeModifiers() { + + Multimap multimap = HashMultimap.create(); + multimap.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(ArmorModHandler.fixedUUIDs[this.armorType], "Armor modifier", 0.25D, 1)); + return multimap; + } + + @SideOnly(Side.CLIENT) + ModelArmorDiesel[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorDiesel[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorDiesel(i); + } + + return models[armorSlot]; + } + + @Override + public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { + super.onArmorTick(world, player, stack); + + if(!world.isRemote && this == ModItems.dieselsuit_legs && this.hasFSBArmor(player) && world.getTotalWorldTime() % 3 == 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bnuuy"); + data.setInteger("player", player.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.dimensionId, player.posX, player.posY, player.posZ, 100)); + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 95d5e5604..b6d38e212 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -614,6 +614,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { if(overlay == null) return; + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index ea7021df9..7e0b7e20b 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -123,7 +123,8 @@ public class ArmorGasMask extends ItemArmor implements IGasMask { return; Minecraft.getMinecraft().getTextureManager().bindTexture(tex); - + + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index 86b76f419..f0c3dfddf 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -30,101 +30,101 @@ public class ArmorHEV extends ArmorFSBPowered { @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - + if(models == null) { models = new ModelArmorHEV[4]; - + for(int i = 0; i < 4; i++) models[i] = new ModelArmorHEV(i); } - + return models[armorSlot]; } - - @SideOnly(Side.CLIENT) - @Override + + @SideOnly(Side.CLIENT) + @Override public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - - if(this.hasFSBArmorIgnoreCharge(player)) { - - if(event.type == ElementType.ARMOR) { - event.setCanceled(true); - return; - } - - if(event.type == ElementType.HEALTH) { - event.setCanceled(true); - renderOverlay(event, player); - return; - } - } - } - + + if(this.hasFSBArmorIgnoreCharge(player)) { + + if(event.type == ElementType.ARMOR) { + event.setCanceled(true); + return; + } + + if(event.type == ElementType.HEALTH) { + event.setCanceled(true); + renderOverlay(event, player); + return; + } + } + } + private static long lastSurvey; private static float prevResult; private static float lastResult; - - private void renderOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - + + private void renderOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { + float in = HbmLivingProps.getRadiation(player); - - float radiation = 0; - - radiation = lastResult - prevResult; - - if(System.currentTimeMillis() >= lastSurvey + 1000) { - lastSurvey = System.currentTimeMillis(); - prevResult = lastResult; - lastResult = in; - } + + float radiation = 0; + + radiation = lastResult - prevResult; + + if(System.currentTimeMillis() >= lastSurvey + 1000) { + lastSurvey = System.currentTimeMillis(); + prevResult = lastResult; + lastResult = in; + } GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - - ScaledResolution res = event.resolution; - - double scale = 2D; - - GL11.glScaled(scale, scale, scale); - - int hX = (int)(8 / scale); - int hY = (int)((res.getScaledHeight() - 18 - 2) / scale); - + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + + ScaledResolution res = event.resolution; + + double scale = 2D; + + GL11.glScaled(scale, scale, scale); + + int hX = (int) (8 / scale); + int hY = (int) ((res.getScaledHeight() - 18 - 2) / scale); + int healthColor = player.getHealth() * 5 > 15 ? 0xff8000 : 0xff0000; - Minecraft.getMinecraft().fontRenderer.drawString("+" + (int)(player.getHealth() * 5), hX, hY, healthColor); - + Minecraft.getMinecraft().fontRenderer.drawString("+" + (int) (player.getHealth() * 5), hX, hY, healthColor); + double c = 0D; - + for(int i = 0; i < 4; i++) { - + ItemStack armor = player.inventory.armorInventory[i]; - ArmorFSBPowered item = ((ArmorFSBPowered)player.inventory.armorInventory[i].getItem()); - - c += (double)item.getCharge(armor) / (double)item.getMaxCharge(); + ArmorFSBPowered item = ((ArmorFSBPowered) player.inventory.armorInventory[i].getItem()); + + c += (double) item.getCharge(armor) / (double) item.getMaxCharge(); } - - int aX = (int)(70 / scale); - int aY = (int)((res.getScaledHeight() - 18 - 2) / scale); - + + int aX = (int) (70 / scale); + int aY = (int) ((res.getScaledHeight() - 18 - 2) / scale); + int armorColor = c * 25 > 15 ? 0xff8000 : 0xff0000; - Minecraft.getMinecraft().fontRenderer.drawString("||" + (int)(c * 25), aX, aY, armorColor); - + Minecraft.getMinecraft().fontRenderer.drawString("||" + (int) (c * 25), aX, aY, armorColor); + String rad = "☢ ["; - + for(int i = 0; i < 10; i++) { - + if(in / 100 > i) { - - int mid = (int)(in - i * 100); - + + int mid = (int) (in - i * 100); + if(mid < 33) rad += ".."; else if(mid < 67) @@ -135,43 +135,43 @@ public class ArmorHEV extends ArmorFSBPowered { rad += " "; } } - + rad += "]"; - - int rX = (int)(8 / scale); - int rY = (int)((res.getScaledHeight() - 40) / scale); - + + int rX = (int) (8 / scale); + int rY = (int) ((res.getScaledHeight() - 40) / scale); + int radColor = in < 800 ? 0xff8000 : 0xff0000; Minecraft.getMinecraft().fontRenderer.drawString(rad, rX, rY, radColor); - - GL11.glScaled(1/scale, 1/scale, 1/scale); - - scale = 1D; - - GL11.glScaled(scale, scale, scale); - - if(radiation > 0) { - - int dX = (int)(32 / scale); - int dY = (int)((res.getScaledHeight() - 55) / scale); - + + GL11.glScaled(1 / scale, 1 / scale, 1 / scale); + + scale = 1D; + + GL11.glScaled(scale, scale, scale); + + if(radiation > 0) { + + int dX = (int) (32 / scale); + int dY = (int) ((res.getScaledHeight() - 55) / scale); + String delta = "" + Math.round(radiation); - + if(radiation > 1000) delta = ">1000"; else if(radiation < 1) delta = "<1"; - + Minecraft.getMinecraft().fontRenderer.drawString(delta + " RAD/s", dX, dY, 0xFF0000); - } - + } + GL11.glColor4f(1F, 1F, 1F, 1F); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glPopMatrix(); - + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(true); + GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); - } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHazmat.java b/src/main/java/com/hbm/items/armor/ArmorHazmat.java index 345223b8f..5ef7f722f 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHazmat.java +++ b/src/main/java/com/hbm/items/armor/ArmorHazmat.java @@ -29,6 +29,7 @@ public class ArmorHazmat extends ArmorFSB { if(this != ModItems.hazmat_helmet && this != ModItems.hazmat_paa_helmet) return; + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorLiquidator.java b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java index bc321981e..6fa2b3ffe 100644 --- a/src/main/java/com/hbm/items/armor/ArmorLiquidator.java +++ b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java @@ -60,6 +60,7 @@ public class ArmorLiquidator extends ArmorFSB { @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 8e06c78b9..64625fc77 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -28,9 +28,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @Spaghetti("more ctor stuff, less if/else bullshittery") -//turns out you can't actually pass a model in the ctor because ModelBiped is clientonly... +// turns out you can't actually pass a model in the ctor because ModelBiped is +// clientonly... public class ArmorModel extends ItemArmor { - + @SideOnly(Side.CLIENT) private ModelGoggles modelGoggles; @SideOnly(Side.CLIENT) @@ -56,33 +57,33 @@ public class ArmorModel extends ItemArmor { @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - if (this == ModItems.goggles) { - if (armorSlot == 0) { - if (this.modelGoggles == null) { + if(this == ModItems.goggles) { + if(armorSlot == 0) { + if(this.modelGoggles == null) { this.modelGoggles = new ModelGoggles(); } return this.modelGoggles; } } - if (this == ModItems.oxy_mask) { - if (armorSlot == 0) { - if (this.modelOxy == null) { + if(this == ModItems.oxy_mask) { + if(armorSlot == 0) { + if(this.modelOxy == null) { this.modelOxy = new ModelOxygenMask(); } return this.modelOxy; } } - if (this == ModItems.hat) { - if (armorSlot == 0) { - if (this.modelHat == null) { + if(this == ModItems.hat) { + if(armorSlot == 0) { + if(this.modelHat == null) { this.modelHat = new ModelHat(0); } return this.modelHat; } } - if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { - if (armorSlot == 1) { - if (this.modelCloak == null) { + if(this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { + if(armorSlot == 1) { + if(this.modelCloak == null) { this.modelCloak = new ModelCloak(); } return this.modelCloak; @@ -93,42 +94,43 @@ public class ArmorModel extends ItemArmor { @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { - if (stack.getItem() == ModItems.goggles) { + if(stack.getItem() == ModItems.goggles) { return "hbm:textures/models/Goggles.png"; } - if (stack.getItem() == ModItems.oxy_mask) { + if(stack.getItem() == ModItems.oxy_mask) { return null; } - if (stack.getItem() == ModItems.cape_test) { + if(stack.getItem() == ModItems.cape_test) { return "hbm:textures/models/TestCape.png"; } - if (stack.getItem() == ModItems.cape_radiation) { + if(stack.getItem() == ModItems.cape_radiation) { return "hbm:textures/models/capes/CapeRadiation.png"; } - if (stack.getItem() == ModItems.cape_gasmask) { + if(stack.getItem() == ModItems.cape_gasmask) { return "hbm:textures/models/capes/CapeGasMask.png"; } - if (stack.getItem() == ModItems.cape_schrabidium) { + if(stack.getItem() == ModItems.cape_schrabidium) { return "hbm:textures/models/capes/CapeSchrabidium.png"; } - if (stack.getItem() == ModItems.cape_hidden) { + if(stack.getItem() == ModItems.cape_hidden) { return "hbm:textures/models/capes/CapeHidden.png"; } - + return "hbm:textures/models/capes/CapeUnknown.png"; } - - @SideOnly(Side.CLIENT) - public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ - - if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) - return; - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); + @SideOnly(Side.CLIENT) + public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + + if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) + return; + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); switch((int) ((double) stack.getItemDamage() / (double) stack.getMaxDamage() * 6D)) { case 0: Minecraft.getMinecraft().getTextureManager().bindTexture(goggleBlur0); @@ -152,19 +154,19 @@ public class ArmorModel extends ItemArmor { Minecraft.getMinecraft().getTextureManager().bindTexture(goggleBlur5); break; } - - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(0.0D, (double)resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), (double)resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); - tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); - tessellator.draw(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(0.0D, (double) resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), (double) resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); + tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); + tessellator.draw(); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/items/bomb/ItemBoy.java b/src/main/java/com/hbm/items/bomb/ItemBoy.java deleted file mode 100644 index a857ce098..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemBoy.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemBoy extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Little Boy"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemGadget.java b/src/main/java/com/hbm/items/bomb/ItemGadget.java deleted file mode 100644 index ff7bf9549..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemGadget.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemGadget extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("The Gadget"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemMan.java b/src/main/java/com/hbm/items/bomb/ItemMan.java deleted file mode 100644 index 1d51867a8..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemMan.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMan extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Fat Man"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemManMike.java b/src/main/java/com/hbm/items/bomb/ItemManMike.java deleted file mode 100644 index 52bfa5616..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemManMike.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemManMike extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Fat Man"); - list.add("Ivy Mike"); - list.add("Tsar Bomba"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemMike.java b/src/main/java/com/hbm/items/bomb/ItemMike.java deleted file mode 100644 index 29411e724..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemMike.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMike extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Ivy Mike"); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemTsar.java b/src/main/java/com/hbm/items/bomb/ItemTsar.java deleted file mode 100644 index 57ac1804e..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemTsar.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemTsar extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Tsar Bomba"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index f97e53b07..6c338eec9 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -91,20 +91,31 @@ public class ItemAssemblyTemplate extends Item { public String getItemStackDisplayName(ItemStack stack) { - //NEW - ComparableStack comp = readType(stack); - //LEGACY - if(comp == null) comp = AssemblerRecipes.recipeList.get(stack.getItemDamage()); - - String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - ItemStack out = comp != null ? comp.toStack() : null; - String s1 = ("" + StatCollector.translateToLocal((out != null ? out.getUnlocalizedName() : "") + ".name")).trim(); - - if(s1 != null) { - s = s + " " + s1; + try { + //NEW + ComparableStack comp = readType(stack); + //LEGACY + if(comp == null) comp = AssemblerRecipes.recipeList.get(stack.getItemDamage()); + + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + ItemStack out = comp != null ? comp.toStack() : null; + if(out.getItem() == null) { + out = null; + } + if(out == null) { + return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; + } + + String s1 = ("" + StatCollector.translateToLocal(out.getUnlocalizedName() + ".name")).trim(); + + if(s1 != null) { + s = s + " " + s1; + } + + return s; + } catch(Exception ex) { + return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; } - - return s; } @Override @@ -114,7 +125,8 @@ public class ItemAssemblyTemplate extends Item { int count = AssemblerRecipes.recipeList.size(); for(int i = 0; i < count; i++) { - list.add(new ItemStack(item, 1, i)); + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + list.add(writeType(new ItemStack(item), comp)); } } diff --git a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java index 11ead81e9..fe839a410 100644 --- a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java @@ -3,8 +3,6 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.special.ItemNuclearWaste; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -14,7 +12,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; public class ItemDepletedFuel extends ItemNuclearWaste { diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 4bdb8a572..ca54f93d1 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -47,6 +47,8 @@ public class ItemMachineUpgrade extends Item { list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Cyclotron:"); list.add("Speed x" + (1 + this.tier)); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("Speed x" + (1 + this.tier)); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); } @@ -58,6 +60,8 @@ public class ItemMachineUpgrade extends Item { list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); list.add(EnumChatFormatting.RED + "Cyclotron:"); list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("+" + (100 * this.tier / 3) + "% power production"); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Range +" + (3 * this.tier) + "m"); } diff --git a/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java new file mode 100644 index 000000000..521a4a148 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java @@ -0,0 +1,67 @@ +package com.hbm.items.machine; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemMetaUpgrade extends ItemMachineUpgrade { + + protected int levels; + + public ItemMetaUpgrade(int levels) { + super(); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.levels = levels; + } + + public ItemMetaUpgrade(UpgradeType type, int levels) { + super(type); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.levels = levels; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + for(int i = 0; i < this.levels; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + protected IIcon[] icons; + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + this.icons = new IIcon[levels]; + + for(int i = 0; i < levels; i++) { + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + (i + 1)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + if(meta >= 0 && meta < levels) { + return this.icons[meta]; + } + + return this.icons[0]; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName() + "_" + (stack.getItemDamage() + 1); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index f1c21471b..557892236 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -25,7 +25,7 @@ public class ItemRBMKRod extends Item { public double reactivity; //endpoint of the function public double selfRate; //self-inflicted flux from self-igniting fuels public EnumBurnFunc function = EnumBurnFunc.LOG_TEN; - public EnumDepleteFunction depFunc = EnumDepleteFunction.LINEAR; + public EnumDepleteFunc depFunc = EnumDepleteFunc.GENTLE_SLOPE; public double xGen = 0.5D; //multiplier for xenon production public double xBurn = 50D; //divider for xenon burnup public double heat = 1D; //heat produced per outFlux @@ -88,7 +88,7 @@ public class ItemRBMKRod extends Item { return this; } - public ItemRBMKRod setDepletionFunction(EnumDepleteFunction func) { + public ItemRBMKRod setDepletionFunction(EnumDepleteFunc func) { this.depFunc = func; return this; } @@ -219,7 +219,7 @@ public class ItemRBMKRod extends Item { PASSIVE(EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"), //const, no reactivity LOG_TEN(EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"), //log10(x + 1) * reactivity * 50 PLATEU(EnumChatFormatting.GREEN + "SAFE / EULER"), //(1 - e^(-x/25)) * reactivity * 100 - ARCH(EnumChatFormatting.YELLOW + "MEDIUM / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity + ARCH(EnumChatFormatting.RED + "DANGEROUS / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity SIGMOID(EnumChatFormatting.GREEN + "SAFE / SIGMOID"), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! SQUARE_ROOT(EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"), //sqrt(x) * 10 * reactivity LINEAR(EnumChatFormatting.RED + "DANGEROUS / LINEAR"), //x * reactivity @@ -239,7 +239,7 @@ public class ItemRBMKRod extends Item { */ public double reactivityFunc(double in, double enrichment) { - double flux = in * reativityModByEnrichment(enrichment); + double flux = in * reactivityModByEnrichment(enrichment); switch(this.function) { case PASSIVE: return selfRate * enrichment; @@ -256,29 +256,46 @@ public class ItemRBMKRod extends Item { return 0; } - public String getFuncDescription() { + public String getFuncDescription(ItemStack stack) { - String x = "x"; - - if(selfRate > 0) - x = "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")"; + String function; switch(this.function) { - case PASSIVE: return EnumChatFormatting.RED + "" + selfRate; - case LOG_TEN: return "log10(x + 1" + (selfRate > 0 ? (EnumChatFormatting.RED + " + " + selfRate) : "") + EnumChatFormatting.WHITE + ") * 0.5 * " + reactivity; - case PLATEU: return "(1 - e^-" + x + " / 25)) * " + reactivity; - case ARCH: return "(" + x + " - " + x + "² / 10000) / 100 * " + reactivity + " [0;∞]"; - case SIGMOID: return reactivity + " / (1 + e^(-(" + x + " - 50) / 10)"; - case SQUARE_ROOT: return "sqrt(" + x + ") * " + reactivity + " / 10"; - case LINEAR: return x + " / 100 * " + reactivity; - case QUADRATIC: return x + "² / 10000 * " + reactivity; - case EXPERIMENTAL: return x + " * (sin(" + x + ") + 1) * " + reactivity; + case PASSIVE: function = EnumChatFormatting.RED + "" + selfRate; + break; + case LOG_TEN: function = "log10(%1$s + 1) * 0.5 * %2$s"; + break; + case PLATEU: function = "(1 - e^-%1$s / 25)) * %2$s"; + break; + case ARCH: function = "(%1$s - %1$s² / 10000) / 100 * %2$s [0;∞]"; + break; + case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10)"; + break; + case SQUARE_ROOT: function = "sqrt(%1$s) * %2$s / 10"; + break; + case LINEAR: function = "%1$s / 100 * %2$s"; + break; + case QUADRATIC: function = "%1$s² / 10000 * %2$s"; + break; + case EXPERIMENTAL: function = "%1$s * (sin(%1$s) + 1) * %2$s"; + break; + default: function = "ERROR"; } - return "ERROR"; + double enrichment = getEnrichment(stack); + + if(enrichment < 1) { + enrichment = reactivityModByEnrichment(enrichment); + String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; + String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 10D) + "%)"; + + return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); + } + + return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); } - public static enum EnumDepleteFunction { + public static enum EnumDepleteFunc { LINEAR, //old function RAISING_SLOPE, //for breeding fuels such as MEU, maximum of 110% at 28% depletion BOOSTED_SLOPE, //for strong breeding fuels such Th232, maximum of 132% at 64% depletion @@ -286,15 +303,15 @@ public class ItemRBMKRod extends Item { STATIC; //for arcade-style neutron sources } - public double reativityModByEnrichment(double enrichment) { + public double reactivityModByEnrichment(double enrichment) { switch(this.depFunc) { default: case LINEAR: return enrichment; case STATIC: return 1D; - case BOOSTED_SLOPE: return -enrichment + 1 + Math.sin(enrichment * enrichment * Math.PI); - case RAISING_SLOPE: return -enrichment + 1 + (Math.sin(enrichment * Math.PI) / 2D); - case GENTLE_SLOPE: return -enrichment + 1 + (Math.sin(enrichment * Math.PI) / 3D); + case BOOSTED_SLOPE: return enrichment + Math.sin((enrichment - 1) * (enrichment - 1) * Math.PI); //x + sin([x - 1]^2 * pi) works + case RAISING_SLOPE: return enrichment + (Math.sin(enrichment * Math.PI) / 2D); //x + (sin(x * pi) / 2) actually works + case GENTLE_SLOPE: return enrichment + (Math.sin(enrichment * Math.PI) / 3D); //x + (sin(x * pi) / 3) also works } } @@ -347,7 +364,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmx.xenon", ((int)(getPoison(stack) * 1000D) / 1000D) + "%")); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsWith", I18nUtil.resolveKey(nType.unlocalized + ".x"))); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsInto", I18nUtil.resolveKey(rType.unlocalized + ".x"))); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription())); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); @@ -367,7 +384,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmk.xenon", ((int)(getPoison(stack) * 1000D) / 1000D) + "%")); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsWith", I18nUtil.resolveKey(nType.unlocalized))); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsInto", I18nUtil.resolveKey(rType.unlocalized))); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription())); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); diff --git a/src/main/java/com/hbm/items/special/ItemNuclearWaste.java b/src/main/java/com/hbm/items/special/ItemNuclearWaste.java index aa114abe3..a4ce9b68c 100644 --- a/src/main/java/com/hbm/items/special/ItemNuclearWaste.java +++ b/src/main/java/com/hbm/items/special/ItemNuclearWaste.java @@ -1,6 +1,6 @@ package com.hbm.items.special; -import com.hbm.entity.item.EntitytemWaste; +import com.hbm.entity.item.EntityItemWaste; import net.minecraft.entity.Entity; import net.minecraft.item.Item; @@ -22,12 +22,14 @@ public class ItemNuclearWaste extends Item { @Override public Entity createEntity(World world, Entity entityItem, ItemStack itemstack) { - EntitytemWaste entity = new EntitytemWaste(world, entityItem.posX, entityItem.posY, entityItem.posZ, itemstack); + EntityItemWaste entity = new EntityItemWaste(world, entityItem.posX, entityItem.posY, entityItem.posZ, itemstack); entity.motionX = entityItem.motionX; entity.motionY = entityItem.motionY; entity.motionZ = entityItem.motionZ; entity.delayBeforeCanPickup = 10; + entityItem.setDead(); + return entity; } } diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index c70d9c612..1890a002d 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -214,7 +214,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.limiter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_coal_off, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); @@ -231,10 +230,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.gadget_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_gadget), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_wireing, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_core, 1)); @@ -256,10 +255,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.man_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_man), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_igniter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); @@ -269,10 +268,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.mike_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_mike), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_deut, 1)); @@ -284,10 +283,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.tsar_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_tsar), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.tsar_core, 1)); diff --git a/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java b/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java index 53957b239..539edff01 100644 --- a/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java +++ b/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -11,6 +12,7 @@ public class ItemCraftingDegradation extends Item { this.setMaxStackSize(1); this.setMaxDamage(durability); this.setNoRepair(); + this.setCreativeTab(MainRegistry.controlTab); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java b/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java new file mode 100644 index 000000000..b69f70150 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java @@ -0,0 +1,93 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.turret.TurretArty; +import com.hbm.lib.Library; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class ItemDesignatorArtyRange extends Item { + + public ItemDesignatorArtyRange() { + this.setFull3D(); + this.setMaxStackSize(1); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(itemstack.getTagCompound() == null) { + list.add(EnumChatFormatting.RED + "No turret linked!"); + } else { + list.add(EnumChatFormatting.YELLOW + "Linked to " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + } + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + + Block b = world.getBlock(x, y, z); + + if(b == ModBlocks.turret_arty) { + int pos[] = ((TurretArty) b).findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityTurretArty) { + + if(world.isRemote) + return true; + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("x", pos[0]); + stack.stackTagCompound.setInteger("y", pos[1]); + stack.stackTagCompound.setInteger("z", pos[2]); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + return true; + } + } + + return false; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!stack.hasTagCompound()) + return stack; + + MovingObjectPosition pos = Library.rayTrace(player, 500, 1); + int x = pos.blockX; + int y = pos.blockY; + int z = pos.blockZ; + + if(!world.isRemote) { + TileEntity te = world.getTileEntity(stack.stackTagCompound.getInteger("x"), stack.stackTagCompound.getInteger("y"), stack.stackTagCompound.getInteger("z")); + + if(te instanceof TileEntityTurretArty) { + TileEntityTurretArty arty = (TileEntityTurretArty) te; + if(arty.mode == arty.MODE_MANUAL) { + arty.enqueueTarget(x + 0.5, y + 0.5, z + 0.5); + world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); + } + } + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemDyatlov.java b/src/main/java/com/hbm/items/tool/ItemDyatlov.java index 287e355e4..ce739d5b8 100644 --- a/src/main/java/com/hbm/items/tool/ItemDyatlov.java +++ b/src/main/java/com/hbm/items/tool/ItemDyatlov.java @@ -1,8 +1,11 @@ package com.hbm.items.tool; +import com.hbm.blocks.machine.ReactorZirnox; import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -15,9 +18,11 @@ public class ItemDyatlov extends Item { if(!world.isRemote) { - if(world.getBlock(x, y, z) instanceof RBMKBase) { + Block block = world.getBlock(x, y, z); + + if(block instanceof RBMKBase) { - RBMKBase rbmk = (RBMKBase)world.getBlock(x, y, z); + RBMKBase rbmk = (RBMKBase)block; int[] pos = rbmk.findCore(world, x, y, z); @@ -32,6 +37,22 @@ public class ItemDyatlov extends Item { } } } + + if(block instanceof ReactorZirnox) { + + ReactorZirnox zirnox = (ReactorZirnox)block; + + int[] pos = zirnox.findCore(world, x, y, z); + + if(pos != null) { + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityReactorZirnox) { + ((TileEntityReactorZirnox)te).heat = 200000; + } + } + } } return false; diff --git a/src/main/java/com/hbm/items/tool/ItemModMinecart.java b/src/main/java/com/hbm/items/tool/ItemModMinecart.java index ce68ad1cd..c065c189f 100644 --- a/src/main/java/com/hbm/items/tool/ItemModMinecart.java +++ b/src/main/java/com/hbm/items/tool/ItemModMinecart.java @@ -43,10 +43,11 @@ public class ItemModMinecart extends Item { } public static enum EnumMinecart { - EMPTY (EnumCartBase.STEEL), + EMPTY (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), CRATE (EnumCartBase.VANILLA), - DESTROYER (EnumCartBase.STEEL), - POWDER (EnumCartBase.WOOD); + DESTROYER (EnumCartBase.STEEL, EnumCartBase.PAINTED), + POWDER (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), + SEMTEX (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED); public int types; @@ -217,7 +218,7 @@ public class ItemModMinecart extends Item { if(BlockRailBase.func_150051_a(world.getBlock(x, y, z))) { if(!world.isRemote) { - EntityMinecart entityminecart = createMinecart(world, x + 0.5D, y + 0.5D, z + 0.5D, stack); + EntityMinecart entityminecart = createMinecart(world, x + fx, y + fy, z + fz, stack); if(stack.hasDisplayName()) { entityminecart.setMinecartName(stack.getDisplayName()); @@ -235,10 +236,13 @@ public class ItemModMinecart extends Item { public static EntityMinecart createMinecart(World world, double x, double y, double z, ItemStack stack) { EnumMinecart type = (EnumMinecart) EnumMinecart.values()[stack.getItemDamage()]; + EnumCartBase base = getBaseType(stack); switch(type) { - case CRATE: return new EntityMinecartCrate(world, x, y, z, stack); - case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z); - case EMPTY: return new EntityMinecartOre(world, x, y, z); + case CRATE: return new EntityMinecartCrate(world, x, y, z, base, stack); + case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z, base); + case EMPTY: return new EntityMinecartOre(world, x, y, z, base); + case POWDER: return new EntityMinecartPowder(world, x, y, z, base); + case SEMTEX: return new EntityMinecartSemtex(world, x, y, z, base); default: return new EntityMinecartEmpty(world, x, y, z); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f7702c7f0..527f6d5cf 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.siege.EntitySiegeTunneler; import com.hbm.items.ModItems; import com.hbm.items.special.ItemKitCustom; @@ -30,6 +31,10 @@ public class ItemWandD extends Item { if(pos != null) { + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); + world.spawnEntityInWorld(torex); + /*EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); tunneler.onSpawnWithEgg(null); @@ -37,7 +42,7 @@ public class ItemWandD extends Item { //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); - int r = 5; + /*int r = 5; int x = pos.blockX; int y = pos.blockY; @@ -49,7 +54,7 @@ public class ItemWandD extends Item { world.getBlock(i, j, k).updateTick(world, i, j, k, world.rand); } } - } + }*/ //new Bunker().generate(world, world.rand, x, y, z); diff --git a/src/main/java/com/hbm/items/weapon/GunCalamity.java b/src/main/java/com/hbm/items/weapon/GunCalamity.java deleted file mode 100644 index 47f79635d..000000000 --- a/src/main/java/com/hbm/items/weapon/GunCalamity.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunCalamity extends Item { - - Random rand = new Random(); - - public GunCalamity() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_calamity_ammo)) && count % 6 == 0) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 15, 25, false, false); - entityarrow.setDamage(15 + rand.nextInt(25)); - - world.playSoundAtEntity(player, "hbm:weapon.calShoot", 1.0F, 1.0F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_50bmg); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - - if (this == ModItems.gun_calamity_dual && (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_calamity_ammo)) && count % 6 == 3) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 15, 25, false, false); - entityarrow.setDamage(15 + rand.nextInt(25)); - - world.playSoundAtEntity(player, "hbm:weapon.calShoot", 1.0F, 0.7F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_50bmg); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_calamity) { - list.add("Handheld Maxim"); - } - if(this == ModItems.gun_calamity_dual) { - list.add("You may be thinking, 'This gun makes no"); - list.add("sense, why is there only one receiver for"); - list.add("two barrels, and how do the bullets even"); - list.add("come out of this thing? The barrels are"); - list.add("just taped onto a plate with no connection"); - list.add("to the rest of the gun!' Well my boy, this"); - list.add("question has a simple, easy to understand"); - list.add("answer, it's because " + EnumChatFormatting.OBFUSCATED + "gkjin soi unsi"); - list.add("and " + EnumChatFormatting.OBFUSCATED + "aslfnu isnfi uo fnafaoin fsj afakjkk abk"); - } - list.add(""); - list.add("Ammo: .50 BMG Round"); - list.add("Damage: 15 - 25"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java new file mode 100644 index 000000000..a0caea460 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -0,0 +1,112 @@ +package com.hbm.items.weapon; + +import java.util.List; + +import com.hbm.entity.projectile.EntityArtilleryShell; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; + +public class ItemAmmoArty extends Item { + + public static ArtilleryShell[] types = new ArtilleryShell[5]; + public int NORMAL = 0; + public int CLASSIC = 1; + public int EXPLOSIVE = 2; + public int MINI_NUKE = 3; + public int NUKE = 4; + + public ItemAmmoArty() { + this.setHasSubtypes(true); + this.setCreativeTab(MainRegistry.weaponTab); + init(); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < types.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + private IIcon[] icons = new IIcon[types.length]; + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + this.icons = new IIcon[types.length]; + + for(int i = 0; i < icons.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + types[i].name); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return this.icons[meta]; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return "item." + types[Math.abs(stack.getItemDamage()) % types.length].name; + } + + public static abstract class ArtilleryShell { + + String name; + + public ArtilleryShell(String name) { + this.name = name; + } + + public abstract void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop); + } + + private void init() { + this.types[NORMAL] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, false); + shell.setDead(); + } + }; + this.types[CLASSIC] = new ArtilleryShell("ammo_arty_classic") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 25F, false, false); + shell.setDead(); + } + }; + this.types[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, true); + shell.setDead(); + } + }; + this.types[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + //Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + ExplosionNukeSmall.explode(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, ExplosionNukeSmall.medium); + shell.setDead(); + } + }; + this.types[NUKE] = new ArtilleryShell("ammo_arty_nuke") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemClip.java b/src/main/java/com/hbm/items/weapon/ItemClip.java index 5199e2f63..a77b89528 100644 --- a/src/main/java/com/hbm/items/weapon/ItemClip.java +++ b/src/main/java/com/hbm/items/weapon/ItemClip.java @@ -330,7 +330,7 @@ public class ItemClip extends Item { if(player.inventory.hasItem(ModItems.gun_proto)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_nuke, 8)); if(player.inventory.hasItem(ModItems.gun_mirv)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mirv_ammo, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 1)); if(player.inventory.hasItem(ModItems.gun_bf)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 1)); if(player.inventory.hasItem(ModItems.gun_mp40)) diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 08b236d01..63f347527 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -103,11 +103,21 @@ public class ItemGunGauss extends ItemGunBase { super.updateClient(stack, world, player, slot, isCurrentItem); if(chargeLoop != null) { + if(!chargeLoop.isPlaying()) { + chargeLoop = rebootAudio(chargeLoop, player); + } chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ); chargeLoop.updatePitch(chargeLoop.getPitch() + 0.01F); } } + public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { + wrapper.stopSound(); + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getPitch()); + audio.startSound(); + return audio; + } + protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { super.spawnProjectile(world, player, stack, config); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 0b5b3d295..242f67ceb 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -322,7 +322,7 @@ public class HbmChestContents { public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.ammo_container, 0, 3, 6, 1), new WeightedRandomChestContent(ModItems.clip_fatman, 0, 2, 3, 1), - new WeightedRandomChestContent(ModItems.gun_mirv_ammo, 0, 2, 3, 1), + new WeightedRandomChestContent(ModItems.ammo_mirv, 0, 2, 3, 1), new WeightedRandomChestContent(ModItems.gun_mirv, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_proto, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 6b6c96e38..4a82c4005 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4228)"; + public static final String VERSION = "1.0.27 BETA (4263H1)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3d31e736e..352994107 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -29,6 +29,7 @@ import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.common.MinecraftForge; +import java.awt.Color; import java.awt.Desktop; import java.net.URI; import java.util.HashMap; @@ -188,6 +189,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretMaxwell.class, new RenderTurretMaxwell()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretFritz.class, new RenderTurretFritz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretBrandon.class, new RenderTurretBrandon()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretArty.class, new RenderTurretArty()); //mines ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLandmine.class, new RenderLandmine()); //cel prime @@ -251,6 +253,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); @@ -527,6 +530,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityRBMKDebris.class, new RenderRBMKDebris()); RenderingRegistry.registerEntityRenderingHandler(EntityZirnoxDebris.class, new RenderZirnoxDebris()); + RenderingRegistry.registerEntityRenderingHandler(EntityArtilleryShell.class, new RenderArtilleryShell()); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); @@ -623,11 +627,11 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityDeathBlast.class, new RenderDeathBlast()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionAdvanced.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntitySpear.class, new RenderSpear()); + RenderingRegistry.registerEntityRenderingHandler(EntityNukeTorex.class, new RenderTorex()); //minecarts RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartDestroyer.class, new RenderNeoCart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartOre.class, new RenderNeoCart()); + RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); @@ -666,7 +670,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityGasFlameFX.class, new GasFlameRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityDischarge.class, new ElectricityRenderer(ModItems.discharge)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); @@ -686,6 +689,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderAntennaTop()); RenderingRegistry.registerBlockHandler(new RenderConserve()); RenderingRegistry.registerBlockHandler(new RenderConveyor()); + RenderingRegistry.registerBlockHandler(new RenderConveyorChute()); + RenderingRegistry.registerBlockHandler(new RenderConveyorLift()); RenderingRegistry.registerBlockHandler(new RenderRTGBlock()); RenderingRegistry.registerBlockHandler(new RenderSpikeBlock()); RenderingRegistry.registerBlockHandler(new RenderChain()); @@ -701,6 +706,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderBlockCT()); RenderingRegistry.registerBlockHandler(new RenderDetCord()); RenderingRegistry.registerBlockHandler(new RenderBlockMultipass()); + RenderingRegistry.registerBlockHandler(new RenderBlockSideRotation()); RenderingRegistry.registerBlockHandler(new RenderDiode()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); @@ -1105,8 +1111,18 @@ public class ClientProxy extends ServerProxy { ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); } - if(fx != null) + if(fx != null) { + + if(data.getBoolean("noclip")) { + fx.noClip = true; + } + + if(data.getInteger("overrideAge") > 0) { + ReflectionHelper.setPrivateValue(EntityFX.class, fx, data.getInteger("overrideAge"), "particleMaxAge", "field_70547_e"); + } + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } } if("vanilla".equals(type)) { @@ -1198,6 +1214,47 @@ public class ClientProxy extends ServerProxy { } } + if("bnuuy".equals(type)) { + + if(particleSetting == 2) + return; + + Entity ent = world.getEntityByID(data.getInteger("player")); + + if(ent instanceof EntityPlayer) { + + EntityPlayer p = (EntityPlayer)ent; + + Vec3 vec = Vec3.createVectorHelper(0, 0, -0.6); + Vec3 offset = Vec3.createVectorHelper(0.275, 0, 0); + float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); + + vec.rotateAroundY(angle); + offset.rotateAroundY(angle); + + double ix = p.posX + vec.xCoord; + double iy = p.posY + p.eyeHeight - 1 + 0.4; + double iz = p.posZ + vec.zCoord; + double ox = offset.xCoord; + double oz = offset.zCoord; + + vec = vec.normalize(); + double mult = 0.025D; + double mX = vec.xCoord * mult; + double mZ = vec.zCoord * mult; + + //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, 0, 0, 0)); + //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, 0, 0, 0)); + + for(int i = 0; i < 2; i++) { + net.minecraft.client.particle.EntitySmokeFX fx = new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox * (i == 0 ? -1 : 1), iy, iz + oz * (i == 0 ? -1 : 1), mX, 0, mZ); + float scale = 0.5F; + ReflectionHelper.setPrivateValue(net.minecraft.client.particle.EntitySmokeFX.class, (net.minecraft.client.particle.EntitySmokeFX)fx, scale, "smokeParticleScale", "field_70587_a"); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + } + if("jetpack_bj".equals(type)) { if(particleSetting == 2) @@ -1504,6 +1561,12 @@ public class ClientProxy extends ServerProxy { fx.setBaseScale(data.getFloat("base")); fx.setMaxScale(data.getFloat("max")); fx.setLife(data.getInteger("life") / (particleSetting + 1)); + + if(data.hasKey("color")) { + Color color = new Color(data.getInteger("color")); + fx.setRBGColorF(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + } + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } @@ -1574,16 +1637,19 @@ public class ClientProxy extends ServerProxy { int gW = (int)(width / 0.25F); int gH = (int)(height / 0.25F); + int count = (int) (gW * 1.5 * gH); + + if(data.hasKey("cDiv")) + count = (int) Math.ceil(count / (double)data.getInteger("cDiv")); + boolean blowMeIntoTheGodDamnStratosphere = rand.nextInt(15) == 0; double mult = 1D; if(blowMeIntoTheGodDamnStratosphere) mult *= 10; - for(int i = -(gW / 2); i <= gW; i++) { - for(int j = 0; j <= gH; j++) { - Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult)); - } + for(int i = 0; i < count; i++) { + Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult)); } } @@ -1599,6 +1665,30 @@ public class ClientProxy extends ServerProxy { text.multipleParticleScaleBy(scale); Minecraft.getMinecraft().effectRenderer.addEffect(text); } + + if("network".equals(type)) { + ParticleDebug debug = null; + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + + if("power".equals(data.getString("mode"))) { + debug = new ParticleDebug(man, world, x, y, z, mX, mY, mZ); + } + if("fluid".equals(data.getString("mode"))) { + int color = data.getInteger("color"); + debug = new ParticleDebug(man, world, x, y, z, mX, mY, mZ, color); + } + Minecraft.getMinecraft().effectRenderer.addEffect(debug); + } + + if("gasfire".equals(type)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + ParticleGasFlame text = new ParticleGasFlame(world, x, y, z, mX, mY, mZ, 6.5F); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 69f4a68b8..650152206 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -16,6 +16,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPlantType; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; @@ -181,8 +182,6 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); //addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper }); //addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus }); - addRecipeAuto(new ItemStack(ModItems.thermo_unit_endo, 1), new Object[] { "EEE", "ETE", "EEE", 'E', Item.getItemFromBlock(Blocks.ice), 'T', ModItems.thermo_unit_empty }); - addRecipeAuto(new ItemStack(ModItems.thermo_unit_exo, 1), new Object[] { "LLL", "LTL", "LLL", 'L', Items.lava_bucket, 'T', ModItems.thermo_unit_empty }); //addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', TCALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay }); @@ -237,6 +236,14 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_lift, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.chain, 'C', ModBlocks.conveyor }); + //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); @@ -266,8 +273,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_red_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); @@ -279,6 +289,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); @@ -602,7 +613,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); - addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.turret_biometry }); + addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); @@ -761,8 +772,15 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); - addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); + addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); //TODO: gate this behind the upwards gate of the oil chain when it exists + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_red_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_copper, 'P', ModItems.motor, 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_gold, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_saturnite, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 1) }); + addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); @@ -909,6 +927,23 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); + + Object[] craneCasing = new Object[] { + Blocks.stonebrick, 1, + IRON.ingot(), 2, + STEEL.ingot(), 4 + }; + + for(int i = 0; i < craneCasing.length / 2; i++) { + Object casing = craneCasing[i * 2]; + int amount = (int) craneCasing[i * 2 + 1]; + addRecipeAuto(new ItemStack(ModBlocks.crane_inserter, amount), new Object[] { "CCC", "C C", "CBC", 'C', casing, 'B', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.crane_extractor, amount), new Object[] { "CCC", "CPC", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC) }); + } + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_bismuth, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5f40bd98c..d5791a34a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -30,6 +30,8 @@ import cpw.mods.fml.common.Mod.Metadata; import cpw.mods.fml.common.ModMetadata; import java.io.File; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Random; @@ -81,8 +83,10 @@ import com.hbm.world.generator.CellularDungeonFactory; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; @@ -396,7 +400,7 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityOilSpillFX.class, "entity_spill_fx", 72, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityOilSpill.class, "entity_oil_spill", 73, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityGasFX.class, "entity_spill_fx", 74, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGasFlameFX.class, "entity_gasflame_fx", 75, this, 1000, 1, true); + //EntityRegistry.registerModEntity(EntityGasFlameFX.class, "entity_gasflame_fx", 75, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMinecartTest.class, "entity_minecart_test", 76, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySparkBeam.class, "entity_spark_beam", 77, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 78, this, 1000, 1, true); @@ -495,6 +499,10 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityMinecartOre.class, "entity_ntm_cart_ore", 172, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartBogie.class, "entity_ntm_cart_bogie", 173, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 174, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityNukeTorex.class, "entity_effect_torex", 177, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityArtilleryShell.class, "entity_artillery_shell", 178, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); @@ -860,7 +868,7 @@ public class MainRegistry { achBismuth = new Achievement("achievement.bismuth", "bismuth", 11, -6, ModItems.ingot_bismuth, achRBMK).initIndependentStat().registerStat(); achBreeding = new Achievement("achievement.breeding", "breeding", 7, -6, ModItems.ingot_am_mix, achRBMK).initIndependentStat().setSpecial().registerStat(); achFusion = new Achievement("achievement.fusion", "fusion", 13, -7, new ItemStack(ModBlocks.iter), achBismuth).initIndependentStat().setSpecial().registerStat(); - achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.crystal_energy, achFusion).initIndependentStat().setSpecial().registerStat(); + achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); @@ -1005,6 +1013,18 @@ public class MainRegistry { /*BiomeGenBase.plains.addFlower(ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE.ordinal(), 10); BiomeGenBase.roofedForest.addFlower(ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE.ordinal(), 10); BiomeGenBase.jungle.addFlower(ModBlocks.plant_flower, EnumFlowerType.TOBACCO.ordinal(), 10);*/ + + /*Set threads = Thread.getAllStackTraces().keySet(); + + for (Thread thread : threads) { + + System.out.println("Printing thread " + thread.getName()); + StackTraceElement[] stackTraceElements = thread.getStackTrace(); + for (StackTraceElement stackTraceElement : stackTraceElements) { + System.out.println("\t" + stackTraceElement); + } + System.out.println(""); + }*/ } @EventHandler @@ -1062,4 +1082,61 @@ public class MainRegistry { config.save(); } + + private static HashSet ignoreMappings = new HashSet(); + private static HashMap remapItems = new HashMap(); + + + @EventHandler + public void handleMissingMappings(FMLMissingMappingsEvent event) { + + ignoreMappings.clear(); + remapItems.clear(); + + /// IGNORE /// + for(int i = 1; i <= 8; i++) ignoreMappings.add("hbm:item.gasflame" + i); + ignoreMappings.add("hbm:item.cyclotron_tower"); + ignoreMappings.add("hbm:item.magnet_dee"); + ignoreMappings.add("hbm:item.centrifuge_tower"); + ignoreMappings.add("hbm:item.gun_revolver_nopip_ammo"); + ignoreMappings.add("hbm:item.gun_revolver_pip_ammo"); + ignoreMappings.add("hbm:item.gun_calamity_ammo"); + ignoreMappings.add("hbm:item.gun_lacunae_ammo"); + ignoreMappings.add("hbm:item.gun_rpg_ammo"); + ignoreMappings.add("hbm:item.gun_mp40_ammo"); + ignoreMappings.add("hbm:item.gun_uzi_ammo"); + ignoreMappings.add("hbm:item.gun_uboinik_ammo"); + ignoreMappings.add("hbm:item.gun_lever_action_ammo"); + ignoreMappings.add("hbm:item.gun_bolt_action_ammo"); + ignoreMappings.add("hbm:item.gun_fatman_ammo"); + ignoreMappings.add("hbm:item.gun_mirv_ammo"); + ignoreMappings.add("hbm:item.gun_stinger_ammo"); + ignoreMappings.add("hbm:item.limiter"); + ignoreMappings.add("hbm:item.turret_biometry"); + ignoreMappings.add("hbm:item.thermo_unit_empty"); + ignoreMappings.add("hbm:item.thermo_unit_endo"); + ignoreMappings.add("hbm:item.thermo_unit_exo"); + ignoreMappings.add("hbm:item.gadget_explosive"); + ignoreMappings.add("hbm:item.man_explosive"); + ignoreMappings.add("hbm:item.crystal_energy"); + ignoreMappings.add("hbm:item.pellet_coolant"); + remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); + remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); + + for(MissingMapping mapping : event.get()) { + + if(ignoreMappings.contains(mapping.name)) { + mapping.ignore(); + continue; + } + + if(mapping.type == GameRegistry.Type.ITEM) { + + if(remapItems.get(mapping.name) != null) { + mapping.remap(remapItems.get(mapping.name)); + continue; + } + } + } + } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 8a1c3bc87..eaad629a1 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -45,6 +45,7 @@ import com.hbm.items.armor.IDamageHandler; import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.ItemModRevive; import com.hbm.items.armor.ItemModShackles; +import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; @@ -179,6 +180,12 @@ public class ModEventHandler { if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!", MainRegistry.proxy.ID_DUCK, 30_000), (EntityPlayerMP) event.player); + + if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasGuide")) { + event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); + event.player.inventoryContainer.detectAndSendChanges(); + event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("hasGuide", true); + } } } @@ -903,7 +910,7 @@ public class ModEventHandler { EntityPlayer player = (EntityPlayer) e; if(ArmorUtil.checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { - e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); event.setCanceled(true); } @@ -1508,4 +1515,24 @@ public class ModEventHandler { } } } + + @SubscribeEvent + public void filterBrokenEntity(EntityJoinWorldEvent event) { + + Entity entity = event.entity; + Entity[] parts = entity.getParts(); + + //MainRegistry.logger.error("Trying to spawn entity " + entity.getClass().getCanonicalName()); + + if(parts != null) { + + for(int i = 0; i < parts.length; i++) { + if(parts[i] == null) { + MainRegistry.logger.error("Prevented spawning of multipart entity " + entity.getClass().getCanonicalName() + " due to parts being null!"); + event.setCanceled(true); + return; + } + } + } + } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 3b83da3af..b9326c13f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -53,13 +53,13 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; +import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; -import api.hbm.energy.IEnergyConductor; import api.hbm.item.IButtonReceiver; import api.hbm.item.IClickReceiver; @@ -83,6 +83,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; @@ -109,7 +110,6 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.oredict.OreDictionary; public class ModEventHandlerClient { @@ -546,12 +546,12 @@ public class ModEventHandlerClient { HazardSystem.addFullTooltip(stack, event.entityPlayer, list); if(event.showAdvancedItemTooltips) { - int ids[] = OreDictionary.getOreIDs(stack); + List names = ItemStackUtil.getOreDictNames(stack); - if(ids.length > 0) { + if(names.size() > 0) { list.add(EnumChatFormatting.BLUE + "Ore Dict:"); - for(int i : ids) { - list.add(EnumChatFormatting.AQUA + " -" + OreDictionary.getOreName(i)); + for(String s : names) { + list.add(EnumChatFormatting.AQUA + " -" + s); } } else { list.add(EnumChatFormatting.RED + "No Ore Dict data!"); @@ -881,6 +881,7 @@ public class ModEventHandlerClient { } private static final ResourceLocation poster = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster.png"); + private static final ResourceLocation poster_cat = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster_cat.png"); @SubscribeEvent public void renderFrame(RenderItemInFrameEvent event) { @@ -902,5 +903,23 @@ public class ModEventHandlerClient { tess.draw(); GL11.glEnable(GL11.GL_LIGHTING); } + + if(event.item != null && event.item.getItem() == Items.paper) { + event.setCanceled(true); + + double p = 0.0625D; + double o = p * 2.75D; + + GL11.glDisable(GL11.GL_LIGHTING); + Minecraft.getMinecraft().renderEngine.bindTexture(poster_cat); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.addVertexWithUV(0.5, 0.5 + o, p * 0.5, 1, 0); + tess.addVertexWithUV(-0.5, 0.5 + o, p * 0.5, 0, 0); + tess.addVertexWithUV(-0.5, -0.5 + o, p * 0.5, 0, 1); + tess.addVertexWithUV(0.5, -0.5 + o, p * 0.5, 1, 1); + tess.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + } } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 97fbcc12d..63b42b856 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -51,9 +51,13 @@ public class ResourceManager { public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")); public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")); public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")); + public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")); public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")); + //Furnaces + public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); + //Landmines public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); @@ -74,7 +78,7 @@ public class ResourceManager { public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); //Flare Stack - public static final IModelCustom oilflare = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/oilFlare.obj")); + public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); //Tank public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); @@ -84,6 +88,7 @@ public class ResourceManager { //Turbofan public static final IModelCustom turbofan_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turbofan_body.obj")); public static final IModelCustom turbofan_blades = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turbofan_blades.obj")); + public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")); //Large Turbine public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); @@ -301,6 +306,7 @@ public class ResourceManager { ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + public static final ResourceLocation universal_bright = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); public static final ResourceLocation turret_heavy_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_base.png"); @@ -339,6 +345,7 @@ public class ResourceManager { public static final ResourceLocation turret_maxwell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/maxwell.png"); public static final ResourceLocation turret_fritz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/fritz.png"); public static final ResourceLocation turret_brandon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/brandon.png"); + public static final ResourceLocation turret_arty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/arty.png"); public static final ResourceLocation turret_base_rusted= new ResourceLocation(RefStrings.MODID, "textures/models/turrets/rusted/base.png"); @@ -355,6 +362,9 @@ public class ResourceManager { public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); + //Furnaces + public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); + //Oil Pumps public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png"); public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pumpjack.png"); @@ -369,7 +379,7 @@ public class ResourceManager { public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png"); //Flare Stack - public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/oilFlareTexture.png"); + public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); @@ -378,8 +388,8 @@ public class ResourceManager { public static final ResourceLocation orbus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/orbus.png"); //Turbofan - public static final ResourceLocation turbofan_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_body.png"); - public static final ResourceLocation turbofan_blades_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); + public static final ResourceLocation turbofan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan.png"); + public static final ResourceLocation turbofan_back_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_back.png"); //Large Turbine public static final ResourceLocation turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbine.png"); @@ -661,6 +671,7 @@ public class ResourceManager { public static final IModelCustom armor_fau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/fau.obj")); public static final IModelCustom armor_dnt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/dnt.obj")); public static final IModelCustom armor_steamsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/steamsuit.obj")); + public static final IModelCustom armor_dieselsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/bnuuy.obj")); public static final IModelCustom armor_remnant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/remnant.obj")); public static final IModelCustom armor_bismuth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/bismuth.obj")); public static final IModelCustom armor_mod_tesla = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/mod_tesla.obj")); @@ -778,6 +789,11 @@ public class ResourceManager { public static final ResourceLocation steamsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/steamsuit_chest.png"); public static final ResourceLocation steamsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/steamsuit_arm.png"); + public static final ResourceLocation dieselsuit_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_helmet.png"); + public static final ResourceLocation dieselsuit_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_leg.png"); + public static final ResourceLocation dieselsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_chest.png"); + public static final ResourceLocation dieselsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_arm.png"); + public static final ResourceLocation rpa_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_helmet.png"); public static final ResourceLocation rpa_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_leg.png"); public static final ResourceLocation rpa_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_chest.png"); @@ -908,6 +924,7 @@ public class ResourceManager { //Carts public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj")); public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); + public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); ////Texture Entities @@ -1176,6 +1193,9 @@ public class ResourceManager { public static final ResourceLocation cart_blank = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_metal_naked.png"); public static final ResourceLocation cart_wood = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_wood.png"); public static final ResourceLocation cart_destroyer_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_destroyer.png"); + public static final ResourceLocation cart_powder_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/block_gunpowder.png"); + public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); + public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/module/ModuleBurnTime.java b/src/main/java/com/hbm/module/ModuleBurnTime.java new file mode 100644 index 000000000..5d2c8327c --- /dev/null +++ b/src/main/java/com/hbm/module/ModuleBurnTime.java @@ -0,0 +1,97 @@ +package com.hbm.module; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.ItemStackUtil; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.util.EnumChatFormatting; + +/** + * A simple module for determining the burn time of a stack with added options to define bonuses + * @author hbm + * + */ +public class ModuleBurnTime { + + private double modLog = 1.0D; + private double modWood = 1.0D; + private double modCoal = 1.0D; + private double modLignite = 1.0D; + private double modCoke = 1.0D; + private double modSolid = 1.0D; + private double modRocket = 1.0D; + + public int getBurnTime(ItemStack stack) { + int fuel = TileEntityFurnace.getItemBurnTime(stack); + + if(fuel == 0) + return 0; + + if(stack.getItem() == ModItems.solid_fuel) return (int) (fuel * modSolid); + if(stack.getItem() == ModItems.solid_fuel_presto) return (int) (fuel * modSolid); + if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return (int) (fuel * modSolid); + + if(stack.getItem() == ModItems.rocket_fuel) return (int) (fuel * modRocket); + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + if(name.contains("Coke")) return (int) (fuel * modCoke); + if(name.contains("Coal")) return (int) (fuel * modCoal); + if(name.contains("Lignite")) return (int) (fuel * modLignite); + if(name.startsWith("log")) return (int) (fuel * modLog); + if(name.contains("Wood")) return (int) (fuel * modWood); + } + + return fuel; + } + + public List getDesc() { + List list = new ArrayList(); + + list.add(EnumChatFormatting.GOLD + "Burn time bonuses:"); + + addIf(list, "Logs", modLog); + addIf(list, "Wood", modWood); + addIf(list, "Coal", modCoal); + addIf(list, "Lignite", modLignite); + addIf(list, "Coke", modCoke); + addIf(list, "Solid Fuel", modSolid); + addIf(list, "Rocket Fuel", modRocket); + + if(list.size() == 1) + list.clear(); + + return list; + } + + private void addIf(List list, String name, double mod) { + + if(mod != 1.0D) + list.add(EnumChatFormatting.YELLOW + "- " + name + ": " + getPercent(mod)); + } + + private String getPercent(double mod) { + mod -= 1D; + String num = ((int) (mod * 100)) + "%"; + + if(mod < 0) + num = EnumChatFormatting.RED + "-" + num; + else + num = EnumChatFormatting.GREEN + "+" + num; + + return num; + } + + public ModuleBurnTime setLogMod(double mod) { this.modLog = mod; return this; } + public ModuleBurnTime setWoodMod(double mod) { this.modWood = mod; return this; } + public ModuleBurnTime setCoalMod(double mod) { this.modCoal = mod; return this; } + public ModuleBurnTime setLigniteMod(double mod) { this.modLignite = mod; return this; } + public ModuleBurnTime setCokeMod(double mod) { this.modCoke = mod; return this; } + public ModuleBurnTime setSolidMod(double mod) { this.modSolid = mod; return this; } + public ModuleBurnTime setRocketMod(double mod) { this.modRocket = mod; return this; } +} diff --git a/src/main/java/com/hbm/module/ModulePatternMatcher.java b/src/main/java/com/hbm/module/ModulePatternMatcher.java new file mode 100644 index 000000000..bde47b864 --- /dev/null +++ b/src/main/java/com/hbm/module/ModulePatternMatcher.java @@ -0,0 +1,148 @@ +package com.hbm.module; + +import java.util.List; + +import com.hbm.util.ItemStackUtil; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ModulePatternMatcher { + + public static final String MODE_EXACT = "exact"; + public static final String MODE_WILDCARD = "wildcard"; + public String[] modes; + + public ModulePatternMatcher() { + this.modes = new String[1]; + } + + public ModulePatternMatcher(int count) { + this.modes = new String[count]; + } + + public void initPatternSmart(World world, ItemStack stack, int i) { + + if(world.isRemote) return; + + if(stack == null) { + modes[i] = null; + return; + } + + List names = ItemStackUtil.getOreDictNames(stack); + + if(iterateAndCheck(names, i ,"ingot")) return; + if(iterateAndCheck(names, i ,"block")) return; + if(iterateAndCheck(names, i ,"dust")) return; + if(iterateAndCheck(names, i ,"nugget")) return; + if(iterateAndCheck(names, i ,"plate")) return; + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + private boolean iterateAndCheck(List names, int i, String prefix) { + + for(String s : names) { + if(s.startsWith(prefix)) { + modes[i] = s; + return true; + } + } + + return false; + } + + public void initPatternStandard(World world, ItemStack stack, int i) { + + if(world.isRemote) return; + + if(stack == null) { + modes[i] = null; + return; + } + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + public void nextMode(World world, ItemStack pattern, int i) { + + if(world.isRemote) return; + + if(pattern == null) { + modes[i] = null; + return; + } + + if(modes[i] == null) { + modes[i] = MODE_EXACT; + } else if(MODE_EXACT.equals(modes[i])) { + modes[i] = MODE_WILDCARD; + } else if(MODE_WILDCARD.equals(modes[i])) { + + List names = ItemStackUtil.getOreDictNames(pattern); + + if(names.isEmpty()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = names.get(0); + } + } else { + + List names = ItemStackUtil.getOreDictNames(pattern); + + if(names.size() < 2 || modes[i].equals(names.get(names.size() - 1))) { + modes[i] = MODE_EXACT; + } else { + + for(int j = 0; j < names.size() - 1; j++) { + + if(modes[i].equals(names.get(j))) { + modes[i] = names.get(j + 1); + return; + } + } + } + } + } + + public boolean isValidForFilter(ItemStack filter, int index, ItemStack input) { + + String mode = modes[index]; + + switch(mode) { + case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); + case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); + default: + List keys = ItemStackUtil.getOreDictNames(input); + return keys.contains(mode); + } + } + + public void readFromNBT(NBTTagCompound nbt) { + + for(int i = 0; i < modes.length; i++) { + if(nbt.hasKey("mode" + i)) { + modes[i] = nbt.getString("mode" + i); + } + } + } + + public void writeToNBT(NBTTagCompound nbt) { + + for(int i = 0; i < modes.length; i++) { + if(modes[i] != null) { + nbt.setString("mode" + i, modes[i]); + } + } + } +} diff --git a/src/main/java/com/hbm/particle/ParticleDebug.java b/src/main/java/com/hbm/particle/ParticleDebug.java new file mode 100644 index 000000000..8eb9cb4ec --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleDebug.java @@ -0,0 +1,73 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleDebug extends EntityFX { + + private static final ResourceLocation power = new ResourceLocation(RefStrings.MODID + ":textures/particle/debug_power.png"); + private static final ResourceLocation fluid = new ResourceLocation(RefStrings.MODID + ":textures/particle/debug_fluid.png"); + private TextureManager theRenderEngine; + private int type; + + public ParticleDebug(TextureManager texman, World world, double x, double y, double z, double motionX, double motionY, double motionZ) { + super(world, x, y, z); + this.theRenderEngine = texman; + this.particleMaxAge = 10; + this.type = 0; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + this.noClip = true; + } + + public ParticleDebug(TextureManager texman, World world, double x, double y, double z, double motionX, double motionY, double motionZ, int color) { + this(texman, world, x, y, z, motionX, motionY, motionZ); + this.type = 1; + this.particleRed = ((color & 0xff0000) >> 16) / 255F; + this.particleGreen = ((color & 0x00ff00) >> 8) / 255F; + this.particleBlue = (color & 0x0000ff) / 255F; + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + this.theRenderEngine.bindTexture(type == 0 ? power : fluid); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.disableStandardItemLighting(); + + tess.startDrawingQuads(); + tess.setNormal(0.0F, 1.0F, 0.0F); + tess.setBrightness(240); + + float scale = 0.05F; + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + tess.addVertexWithUV((double) (pX - x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ - z * scale - tz * scale), 1, 1); + tess.addVertexWithUV((double) (pX - x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ - z * scale + tz * scale), 1, 0); + tess.addVertexWithUV((double) (pX + x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ + z * scale + tz * scale), 0, 0); + tess.addVertexWithUV((double) (pX + x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ + z * scale - tz * scale), 0, 1); + tess.draw(); + + GL11.glPolygonOffset(0.0F, 0.0F); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleGasFlame.java b/src/main/java/com/hbm/particle/ParticleGasFlame.java new file mode 100644 index 000000000..daca9116a --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleGasFlame.java @@ -0,0 +1,56 @@ +package com.hbm.particle; + +import java.awt.Color; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntitySmokeFX; +import net.minecraft.world.World; + +public class ParticleGasFlame extends EntitySmokeFX { + + float colorMod = 1.0F; + + public ParticleGasFlame(World world, double x, double y, double z, double mX, double mY, double mZ, float scale) { + super(world, x, y, z, mX, mY * 1.5, mZ, scale); + updateColor(); + this.particleScale = scale; + this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.noClip = true; + this.particleMaxAge = 30 + rand.nextInt(13); + } + + @Override + public void onUpdate() { + double prevMo = this.motionY; + super.onUpdate(); + updateColor(); + //this.motionX *= 0.75; + //this.motionZ *= 0.75; + this.motionY = prevMo; + + this.motionX *= 0.75D; + this.motionY += 0.005D; + this.motionZ *= 0.75D; + } + + protected void updateColor() { + float time = (float) this.particleAge / (float) this.particleMaxAge; + + Color color = Color.getHSBColor(Math.max((60 - time * 100) / 360F, 0.0F), 1 - time * 0.25F, 1 - time * 0.5F); + + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.particleRed *= colorMod; + this.particleGreen *= colorMod; + this.particleBlue *= colorMod; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java b/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java new file mode 100644 index 000000000..785cac0ea --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java @@ -0,0 +1,84 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.IBlockSideRotation; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderBlockSideRotation implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + block.setBlockBoundsForItemRender(); + renderer.setRenderBoundsFromBlock(block); + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + tessellator.draw(); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + if(!(block instanceof IBlockSideRotation)) { + renderer.renderStandardBlock(block, x, y, z); + return true; + } + + IBlockSideRotation rot = (IBlockSideRotation) block; + + renderer.uvRotateTop = rot.getRotationFromSide(world, x, y, z, 1); + + renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 1.0, 1.0); + renderer.renderStandardBlock(block, x, y, z); + + renderer.uvRotateTop = 0; + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return IBlockSideRotation.getRenderType(); + } +} diff --git a/src/main/java/com/hbm/render/block/RenderConveyor.java b/src/main/java/com/hbm/render/block/RenderConveyor.java index bdb915666..72922766a 100644 --- a/src/main/java/com/hbm/render/block/RenderConveyor.java +++ b/src/main/java/com/hbm/render/block/RenderConveyor.java @@ -3,62 +3,122 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; import com.hbm.blocks.network.BlockConveyor; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderConveyor implements ISimpleBlockRenderingHandler { @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); + Tessellator tessellator = Tessellator.instance; tessellator.setColorOpaque_F(1, 1, 1); - if (renderer.hasOverrideBlockTexture()) - { - iicon = renderer.overrideBlockTexture; - } - - GL11.glTranslated(0, -0.125, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, iicon, tessellator, 0, false); + GL11.glTranslatef(-0.5F, -0.25F, -0.5F); + renderer.setRenderBounds( 0D, 0D, 0D, 1D, 0.25D, 1D); + + meta = 2; + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta)); tessellator.draw(); - GL11.glPopMatrix(); + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - int meta = world.getBlockMetadata(x, y, z); - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); - if(meta == 2) + if(meta == 2) { renderer.uvRotateTop = 3; - if(meta == 3) + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { renderer.uvRotateTop = 0; - if(meta == 4) + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { renderer.uvRotateTop = 1; - if(meta == 5) + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { renderer.uvRotateTop = 2; - - renderer.setRenderBounds((double)0, 0.0D, (double)0, (double)1, 0.125D, (double)1); - renderer.renderStandardBlock(block, x, y, z); - renderer.uvRotateTop = 0; - + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + renderer.setRenderBounds((double) 0, 0.0D, (double) 0, (double) 1, 0.25D, (double) 1); + renderer.renderStandardBlock(block, x, y, z); + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderConveyorChute.java b/src/main/java/com/hbm/render/block/RenderConveyorChute.java new file mode 100644 index 000000000..d85681687 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderConveyorChute.java @@ -0,0 +1,230 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.network.BlockConveyorChute; + +import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IEnterableBlock; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class RenderConveyorChute implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1, 1, 1); + + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + meta = 2; + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + tessellator.startDrawingQuads(); + renderer.setRenderBounds(0.25D, 0.0D, 0D, 0.75D, 0.25D, 1D); standardBundle(tessellator, block, meta, renderer); + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); standardBundle(tessellator, block, meta, renderer); + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); standardBundle(tessellator, block, meta, renderer); + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + double glassMin = 0.125; + double glassMax = 0.875; + + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + + IIcon iconGlass = ModBlocks.steel_grate.getIcon(0, 0); + renderer.setOverrideBlockTexture(iconGlass); + + renderer.setRenderBounds(glassMin, 0.25, minInner, glassMin, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + renderer.setRenderBounds(glassMax, 0.25, minInner, glassMax, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + renderer.setRenderBounds(minInner, 0.25, glassMin, maxInner, 1.0, glassMin); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + + tessellator.draw(); + + renderer.clearOverrideBlockTexture(); + + GL11.glPopMatrix(); + } + + private void standardBundle(Tessellator tessellator, Block block, int meta, RenderBlocks renderer) { + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta)); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + boolean belt = false; + + boolean nX = world.getBlock(x - 1, y, z) instanceof IConveyorBelt; + boolean pX = world.getBlock(x + 1, y, z) instanceof IConveyorBelt; + boolean nZ = world.getBlock(x, y, z - 1) instanceof IConveyorBelt; + boolean pZ = world.getBlock(x, y, z + 1) instanceof IConveyorBelt; + + + if(y > 0) { + Block below = world.getBlock(x, y - 1, z); + if(!(below instanceof IConveyorBelt || below instanceof IEnterableBlock)) { + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + renderer.setRenderBounds(0.25D, 0.0D, 0D, 0.75D, 0.25D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + belt = true; + } else { + + if(nX) { + renderer.uvRotateTop = 1; + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.125D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + + if(pX) { + renderer.uvRotateTop = 2; + renderer.setRenderBounds(0.875D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + + if(nZ) { + renderer.uvRotateTop = 3; + renderer.setRenderBounds(0.25D, 0.0D, 0.0D, 0.75D, 0.25D, 0.125D); renderer.renderStandardBlock(block, x, y, z); + } + + if(pZ) { + renderer.uvRotateTop = 0; + renderer.setRenderBounds(0.25D, 0.0D, 0.875D, 0.75D, 0.25D, 1.0D); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.uvRotateTop = 0; + } + } + + IIcon iconSteel = ModBlocks.concrete_smooth.getIcon(0, 0); + IIcon iconGlass = ModBlocks.steel_grate.getIcon(0, 0); + renderer.setOverrideBlockTexture(iconSteel); + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + + double glassMin = 0.125; + double glassMax = 0.875; + + renderer.setOverrideBlockTexture(iconGlass); + if(!nX && (!belt || meta != 5)) { renderer.setRenderBounds(glassMin, belt ? 0.25 : 0.0, minInner, glassMin, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); } + if(!pX && (!belt || meta != 4)) { renderer.setRenderBounds(glassMax, belt ? 0.25 : 0.0, minInner, glassMax, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); } + if(!nZ && (!belt || meta != 3)) { renderer.setRenderBounds(minInner, belt ? 0.25 : 0.0, glassMin, maxInner, 1.0, glassMin); renderer.renderStandardBlock(block, x, y, z); } + if(!pZ && (!belt || meta != 2)) { renderer.setRenderBounds(minInner, belt ? 0.25 : 0.0, glassMax, maxInner, 1.0, glassMax); renderer.renderStandardBlock(block, x, y, z); } + + renderer.clearOverrideBlockTexture(); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockConveyorChute.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderConveyorLift.java b/src/main/java/com/hbm/render/block/RenderConveyorLift.java new file mode 100644 index 000000000..badb6ee35 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderConveyorLift.java @@ -0,0 +1,180 @@ +package com.hbm.render.block; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.network.BlockConveyorLift; + +import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.init.Blocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class RenderConveyorLift implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + boolean isBottom = false; + boolean isTop = false; + + IIcon iconConcrete = ModBlocks.concrete_smooth.getIcon(0, 0); + IIcon iconIron = Blocks.iron_block.getIcon(0, 0); + IIcon iconBelt = block.getIcon(0, 0); + + + if(y > 0) { + Block below = world.getBlock(x, y - 1, z); + if(!(below instanceof IConveyorBelt)) { + + renderer.setOverrideBlockTexture(iconBelt); + + if(meta != 5) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 4) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 3) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.setRenderBounds(0.25D, 0.0D, 0.0D, 0.75D, 0.25D, 0.25D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 2) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.setRenderBounds(0.25D, 0.0D, 0.75D, 0.75D, 0.25D, 1.0D); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + + renderer.clearOverrideBlockTexture(); + + isBottom = true; + } + } + + if(y < 255) { + Block above = world.getBlock(x, y + 1, z); + isTop = !(above instanceof IConveyorBelt) && !isBottom; + } + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + + renderer.setOverrideBlockTexture(iconConcrete); + + if(!isTop) { + if(meta == 2) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 3; + renderer.setRenderBounds(minInner, 0.0, maxInner - 0.125, maxInner, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 3) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 0; + renderer.setRenderBounds(minInner, 0.0, minInner, maxInner, 1.0, minInner + 0.125); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 4) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 1; + renderer.setRenderBounds(maxInner - 0.125, 0.0, minInner, maxInner, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 5) { + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 2; + renderer.setRenderBounds(minInner, 0.0, minInner, minInner + 0.125, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + } else { + if(meta == 2 || meta == 3) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.clearOverrideBlockTexture(); + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateWest = 3; + renderer.setRenderBounds(minInner, 0.0, maxInner - 0.125, maxInner, 0.25, maxOuter); renderer.renderStandardBlock(block, x, y, z); + } else { + renderer.uvRotateTop = 0; + renderer.uvRotateEast = 3; + renderer.setRenderBounds(minInner, 0.0, minOuter, maxInner, 0.25, minInner + 0.125); renderer.renderStandardBlock(block, x, y, z); + } + } + + if(meta == 4 || meta == 5) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, maxOuter, 0.5, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, maxOuter, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.clearOverrideBlockTexture(); + + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateSouth = 3; + renderer.setRenderBounds(maxInner - 0.125, 0.0, minInner, maxOuter, 0.25, maxInner); renderer.renderStandardBlock(block, x, y, z); + } else { + renderer.uvRotateTop = 2; + renderer.uvRotateNorth = 3; + renderer.setRenderBounds(minOuter, 0.0, minInner, minInner + 0.125, 0.25, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + } + } + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + if(isBottom) { + renderer.setOverrideBlockTexture(iconIron); + renderer.setRenderBounds(0.25 + (meta == 5 ? 0.125 : 0), 0, 0.25 + (meta == 3 ? 0.125 : 0), 0.75 - (meta == 4 ? 0.125 : 0), 0.25, 0.75 - (meta == 2 ? 0.125 : 0)); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.clearOverrideBlockTexture(); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return BlockConveyorLift.renderID; + } +} diff --git a/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java b/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java deleted file mode 100644 index f14de47a7..000000000 --- a/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityGasFlameFX; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class GasFlameRenderer extends Render { - private Item field_94151_a; - private int field_94150_f; - private static final String __OBFID = "CL_00001008"; - - public GasFlameRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - this.field_94150_f = p_i1259_2_; - } - - public GasFlameRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.gasflame8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.gasflame7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.gasflame6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.gasflame5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.gasflame4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.gasflame3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.gasflame2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.gasflame1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.35F, 0.35F, 0.35F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java new file mode 100644 index 000000000..661b57773 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -0,0 +1,111 @@ +package com.hbm.render.entity.effect; + +import java.util.ArrayList; +import java.util.Comparator; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.effect.EntityNukeTorex.Cloudlet; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class RenderTorex extends Render { + + private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + EntityNukeTorex cloud = (EntityNukeTorex)entity; + cloudletWrapper(cloud, interp); + GL11.glPopMatrix(); + } + + private Comparator cloudSorter = new Comparator() { + + @Override + public int compare(Object arg0, Object arg1) { + Cloudlet first = (Cloudlet) arg0; + Cloudlet second = (Cloudlet) arg1; + EntityPlayer player = MainRegistry.proxy.me(); + double dist1 = player.getDistanceSq(first.posX, first.posY, first.posZ); + double dist2 = player.getDistanceSq(second.posX, second.posY, second.posZ); + + return dist1 > dist2 ? -1 : dist1 == dist2 ? 0 : 1; + } + }; + + private void cloudletWrapper(EntityNukeTorex cloud, float interp) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + // To prevent particles cutting off before fully fading out + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(cloudlet); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + ArrayList cloudlets = new ArrayList(cloud.cloudlets); + cloudlets.sort(cloudSorter); + + for(Cloudlet cloudlet : cloudlets) { + Vec3 vec = cloudlet.getInterpPos(interp); + tessellateCloudlet(tess, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, interp); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, Cloudlet cloud, float interp) { + + float alpha = cloud.getAlpha(); + float scale = cloud.getScale(); + + float f1 = ActiveRenderInfo.rotationX; + float f2 = ActiveRenderInfo.rotationZ; + float f3 = ActiveRenderInfo.rotationYZ; + float f4 = ActiveRenderInfo.rotationXY; + float f5 = ActiveRenderInfo.rotationXZ; + + float brightness = 0.75F * cloud.colorMod; + Vec3 color = cloud.getInterpColor(interp); + tess.setColorRGBA_F((float)color.xCoord * brightness, (float)color.yCoord * brightness, (float)color.zCoord * brightness, alpha); + + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java index 30f1c0402..92747da0f 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java +++ b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java @@ -1,5 +1,7 @@ package com.hbm.render.entity.item; +import java.util.Random; + import org.lwjgl.opengl.GL11; import com.hbm.entity.item.EntityMovingItem; @@ -21,22 +23,25 @@ public class RenderMovingItem extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - EntityMovingItem item = (EntityMovingItem)entity; - ItemStack stack = item.getItemStack(); + Random rand = new Random(entity.getEntityId()); + GL11.glTranslated(0, rand.nextDouble() * 0.0625, 0); + + EntityMovingItem item = (EntityMovingItem) entity; + ItemStack stack = item.getItemStack().copy(); if(!(stack.getItem() instanceof ItemBlock)) { GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); GL11.glTranslated(0.0, -0.1875, 0.0); } - + EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, stack); - dummy.getEntityItem().stackSize = 1; + //dummy.getEntityItem().stackSize = 1; dummy.hoverStart = 0.0F; - RenderItem.renderInFrame = true; - RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderItem.renderInFrame = false; - + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java index 08ab17790..8f368870f 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java +++ b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java @@ -2,12 +2,11 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; -import com.hbm.entity.cart.EntityMinecartDestroyer; +import com.hbm.entity.cart.EntityMinecartNTM; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -15,11 +14,12 @@ import net.minecraft.util.Vec3; public class RenderNeoCart extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - this.doRender((EntityMinecart) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + public void doRender(Entity entity, double x, double y, double z, float rot, float interp) { + this.doRender((EntityMinecartNTM) entity, x, y, z, rot, interp); } - public void doRender(EntityMinecart cart, double x, double y, double z, float rot, float interp) { + public void doRender(EntityMinecartNTM cart, double x, double y, double z, float rot, float interp) { + GL11.glPushMatrix(); this.bindEntityTexture(cart); long rand = (long) cart.getEntityId() * 493286711L; @@ -80,17 +80,33 @@ public class RenderNeoCart extends Render { } ResourceManager.cart.renderPart("Bucket"); - - if(cart instanceof EntityMinecartDestroyer) { - bindTexture(ResourceManager.cart_destroyer_tex); - ResourceManager.cart_destroyer.renderAll(); - } + cart.renderSpecialContent(this); GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.cart_blank; + protected ResourceLocation getEntityTexture(Entity entity) { + return getEntityTexture((EntityMinecartNTM) entity); + } + + protected ResourceLocation getEntityTexture(EntityMinecartNTM entity) { + switch(entity.getBase()) { + case PAINTED: return ResourceManager.cart_metal; + default: + case STEEL: return ResourceManager.cart_blank; + case WOOD: return ResourceManager.cart_wood; + } + } + + //"NoT vIsIbLe" how about you kiss my fucking ass + @Override + public void bindEntityTexture(Entity entity) { + this.bindTexture(this.getEntityTexture(entity)); + } + + @Override + public void bindTexture(ResourceLocation loc) { + this.renderManager.renderEngine.bindTexture(loc); } } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java index 3e6aa0f89..2a13025aa 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java @@ -35,7 +35,7 @@ public class RenderBalls extends Render { @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.turbofan_blades_tex; + return ResourceManager.universal_bright; } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java b/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java new file mode 100644 index 000000000..65cbdfc1d --- /dev/null +++ b/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.projectile; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderArtilleryShell extends Render { + + @Override + public void doRender(Entity shell, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glRotatef(shell.prevRotationYaw + (shell.rotationYaw - shell.prevRotationYaw) * f1 - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(shell.prevRotationPitch + (shell.rotationPitch - shell.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F); + + float scale = 5F; + GL11.glScalef(scale * 0.5F, scale, scale * 0.5F); + + this.bindEntityTexture(shell); + + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + + if(fog) GL11.glDisable(GL11.GL_FOG); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.projectiles.renderPart("Grenade"); + GL11.glShadeModel(GL11.GL_FLAT); + if(fog) GL11.glEnable(GL11.GL_FOG); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.grenade_tex; + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 48eee5a59..64254fb6a 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -42,11 +42,11 @@ public class ItemRenderLibrary { } public void renderCommon() { GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.cyclotron_tex); ResourceManager.cyclotron.renderPart("Body"); - bindTexture(ResourceManager.cyclotron_ashes); ResourceManager.cyclotron.renderPart("B1"); - bindTexture(ResourceManager.cyclotron_book); ResourceManager.cyclotron.renderPart("B2"); - bindTexture(ResourceManager.cyclotron_gavel); ResourceManager.cyclotron.renderPart("B3"); - bindTexture(ResourceManager.cyclotron_coin); ResourceManager.cyclotron.renderPart("B4"); + bindTexture(ResourceManager.cyclotron_tex); ResourceManager.cyclotron.renderPart("Body"); + bindTexture(ResourceManager.cyclotron_ashes); ResourceManager.cyclotron.renderPart("B1"); + bindTexture(ResourceManager.cyclotron_book); ResourceManager.cyclotron.renderPart("B2"); + bindTexture(ResourceManager.cyclotron_gavel); ResourceManager.cyclotron.renderPart("B3"); + bindTexture(ResourceManager.cyclotron_coin); ResourceManager.cyclotron.renderPart("B4"); GL11.glShadeModel(GL11.GL_FLAT); }}); @@ -149,7 +149,7 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.turbine_tex); ResourceManager.turbine.renderPart("Body"); - bindTexture(ResourceManager.turbofan_blades_tex); ResourceManager.turbine.renderPart("Blades"); + bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades"); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); }}); @@ -325,13 +325,15 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.machine_flare), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -4, 0); - GL11.glScaled(2.5, 2.5, 2.5); + GL11.glScaled(2.25, 2.25, 2.25); } public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); - GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.oilflare_tex); ResourceManager.oilflare.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.machine_refinery), new ItemRenderBase() { @@ -379,9 +381,13 @@ public class ItemRenderLibrary { GL11.glScaled(2, 2, 2); } public void renderCommon() { - bindTexture(ResourceManager.turbofan_body_tex); ResourceManager.turbofan_body.renderAll(); - GL11.glTranslated(0, 1.5, 0); - bindTexture(ResourceManager.turbofan_blades_tex); ResourceManager.turbofan_blades.renderAll(); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.turbofan_tex); + ResourceManager.turbofan.renderPart("Body"); + ResourceManager.turbofan.renderPart("Blades"); + bindTexture(ResourceManager.turbofan_back_tex); + ResourceManager.turbofan.renderPart("Afterburner"); + GL11.glShadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.plasma_heater), new ItemRenderBase() { @@ -1284,6 +1290,35 @@ public class ItemRenderLibrary { ResourceManager.charger.renderPart("Slide"); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_assemfac), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.assemfac_tex); ResourceManager.assemfac.renderPart("Factory"); + for(int i = 1; i < 7; i++) { + ResourceManager.assemfac.renderPart("Pivot" + i); + ResourceManager.assemfac.renderPart("Arm" + i); + ResourceManager.assemfac.renderPart("Piston" + i); + ResourceManager.assemfac.renderPart("Striker" + i); + } + GL11.glShadeModel(GL11.GL_FLAT); + }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.furnace_iron), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotated(90, 0, 1, 0); + bindTexture(ResourceManager.furnace_iron_tex); + ResourceManager.furnace_iron.renderPart("Main"); + ResourceManager.furnace_iron.renderPart("Off"); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java index 9f7a4ba5d..0e8e2603e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java @@ -48,7 +48,7 @@ public class ItemRenderWeaponObj implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hk69_tex); if(item.getItem() == ModItems.gun_deagle) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.turbofan_blades_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal_bright); if(item.getItem() == ModItems.gun_ks23) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); diff --git a/src/main/java/com/hbm/render/model/ModelArmorDiesel.java b/src/main/java/com/hbm/render/model/ModelArmorDiesel.java new file mode 100644 index 000000000..9ccb36b65 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorDiesel.java @@ -0,0 +1,58 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.entity.Entity; + +public class ModelArmorDiesel extends ModelArmorBase { + + public ModelArmorDiesel(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Head"); + body = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Body"); + leftArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightBoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + + GL11.glPushMatrix(); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(type == 0) { + bindTexture(ResourceManager.dieselsuit_helmet); + head.render(par7); + } + if(type == 1) { + bindTexture(ResourceManager.dieselsuit_chest); + body.render(par7); + bindTexture(ResourceManager.dieselsuit_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + bindTexture(ResourceManager.dieselsuit_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + bindTexture(ResourceManager.dieselsuit_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java b/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java index 1c910e322..5a962bba3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java @@ -34,8 +34,8 @@ public class RenderAssemfac extends TileEntitySpecialRenderer { bindTexture(ResourceManager.assemfac_tex); ResourceManager.assemfac.renderPart("Factory"); - double rot = Math.sin((double)(System.currentTimeMillis() / 500D)) * 25 - 20; - double rot2 = Math.sin((double)(System.currentTimeMillis() / 400D)) * 10; + //double rot = Math.sin((double)(System.currentTimeMillis() / 500D)) * 25 - 20; + //double rot2 = Math.sin((double)(System.currentTimeMillis() / 400D)) * 10; double hOff; double sOff; diff --git a/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java b/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java index 5e412f2d2..6a9dae639 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java @@ -43,7 +43,7 @@ public class RenderBigTurbine extends TileEntitySpecialRenderer { GL11.glRotatef(turbine.lastRotor + (turbine.rotor - turbine.lastRotor) * f, 0, 0, 1); GL11.glTranslated(0, -1, 0); - bindTexture(ResourceManager.turbofan_blades_tex); + bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades"); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java new file mode 100644 index 000000000..58bf50998 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java @@ -0,0 +1,54 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderFurnaceIron extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5D, 0, -0.5D); + + TileEntityFurnaceIron furnace = (TileEntityFurnaceIron) tileEntity; + + bindTexture(ResourceManager.furnace_iron_tex); + ResourceManager.furnace_iron.renderPart("Main"); + + if(furnace.wasOn) { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + ResourceManager.furnace_iron.renderPart("On"); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } else { + ResourceManager.furnace_iron.renderPart("Off"); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java b/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java index 582fbfc60..d25f4aef1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java +++ b/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java @@ -2,30 +2,28 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; public class RenderGasFlare extends TileEntitySpecialRenderer { - @Override + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glRotatef(180, 0F, 1F, 0F); - bindTexture(ResourceManager.oilflare_tex); - - ResourceManager.oilflare.renderAll(); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.oilflare_tex); + ResourceManager.oilflare.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java index a696472fa..1e7b35ed2 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java @@ -9,65 +9,40 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; public class RenderTurbofan extends TileEntitySpecialRenderer { - - public RenderTurbofan() { } - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(270, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - 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; - } + public RenderTurbofan() { + } - bindTexture(ResourceManager.turbofan_body_tex); - - ResourceManager.turbofan_body.renderAll(); - - GL11.glPopMatrix(); - - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(270, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - 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; - } + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); - if(tileEntity instanceof TileEntityMachineTurbofan) - GL11.glRotatef(((TileEntityMachineTurbofan)tileEntity).spin, 0F, 0F, -1F); + GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glRotatef(270, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) { + 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; + } - bindTexture(ResourceManager.turbofan_blades_tex); - ResourceManager.turbofan_blades.renderAll(); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.turbofan_tex); + ResourceManager.turbofan.renderPart("Body"); + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(((TileEntityMachineTurbofan) tileEntity).spin, 0, 0, -1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.turbofan.renderPart("Blades"); + GL11.glPopMatrix(); + bindTexture(ResourceManager.turbofan_back_tex); + ResourceManager.turbofan.renderPart("Afterburner"); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java new file mode 100644 index 000000000..6319df081 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java @@ -0,0 +1,46 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +public class RenderTurretArty extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + TileEntityTurretArty turret = (TileEntityTurretArty)te; + Vec3 pos = turret.getHorizontalOffset(); + + GL11.glPushMatrix(); + GL11.glTranslated(x + pos.xCoord, y, z + pos.zCoord); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.turret_arty_tex); + ResourceManager.turret_arty.renderPart("Base"); + double yaw = -Math.toDegrees(turret.lastRotationYaw + (turret.rotationYaw - turret.lastRotationYaw) * interp) - 90D; + double pitch = Math.toDegrees(turret.lastRotationPitch + (turret.rotationPitch - turret.lastRotationPitch) * interp); + + GL11.glRotated(yaw - 90, 0, 1, 0); + ResourceManager.turret_arty.renderPart("Carriage"); + + GL11.glTranslated(0, 3, 0); + GL11.glRotated(pitch, 1, 0, 0); + GL11.glTranslated(0, -3, 0); + ResourceManager.turret_arty.renderPart("Cannon"); + double barrel = turret.lastBarrelPos + (turret.barrelPos - turret.lastBarrelPos) * interp; + double length = 2.5; + GL11.glTranslated(0, 0, barrel * length); + ResourceManager.turret_arty.renderPart("Barrel"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/util/ErrorPronter.java b/src/main/java/com/hbm/render/util/ErrorPronter.java index 410fe0fd5..421e83c08 100644 --- a/src/main/java/com/hbm/render/util/ErrorPronter.java +++ b/src/main/java/com/hbm/render/util/ErrorPronter.java @@ -15,7 +15,7 @@ public class ErrorPronter { GL11.glScaled(2, 2, 2); GL11.glColor3d(Math.sin(System.currentTimeMillis() % 1000 / 1000D * Math.PI) * 0.5 + 0.5, 0.0, 0.0); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.turbofan_blades_tex); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.universal_bright); ResourceManager.error.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index 97182475b..cf82bcebf 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -81,14 +81,16 @@ public class RenderInfoSystem { int height = messages.size() * 10 + pZ + 2; int z = 0; + GL11.glDisable(GL11.GL_TEXTURE_2D); Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); - tess.setColorRGBA_F(0.5F, 0.5F, 0.5F, 0.5F); + tess.setColorRGBA_F(0.25F, 0.25F, 0.25F, 0.5F); tess.addVertex(pX - 5, pZ - 5, z); tess.addVertex(pX - 5, height, z); tess.addVertex(side, height, z); tess.addVertex(side, pZ - 5, z); tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); int off = 0; long now = System.currentTimeMillis(); diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 6666ee9e5..8bc976d0d 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -59,4 +59,8 @@ public class AudioDynamic extends MovingSound { public float func(float f, float v) { return (f / v) * -2 + 2; } + + public boolean isPlaying() { + return Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this); + } } diff --git a/src/main/java/com/hbm/sound/AudioWrapper.java b/src/main/java/com/hbm/sound/AudioWrapper.java index 0028c8239..9c99bf096 100644 --- a/src/main/java/com/hbm/sound/AudioWrapper.java +++ b/src/main/java/com/hbm/sound/AudioWrapper.java @@ -17,5 +17,6 @@ public class AudioWrapper { public void startSound() { } public void stopSound() { } - + + public boolean isPlaying() { return false; } } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index 91a989799..34a72dc06 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -14,41 +14,52 @@ public class AudioWrapperClient extends AudioWrapper { sound = new AudioDynamic(source); } + @Override public void updatePosition(float x, float y, float z) { if(sound != null) sound.setPosition(x, y, z); } - + + @Override public void updateVolume(float volume) { if(sound != null) sound.setVolume(volume); } - + + @Override public void updatePitch(float pitch) { if(sound != null) sound.setPitch(pitch); } - + + @Override public float getVolume() { if(sound != null) return sound.getVolume(); return 1; } - + + @Override public float getPitch() { if(sound != null) return sound.getPitch(); return 1; } - + + @Override public void startSound() { if(sound != null) sound.start(); } - + + @Override public void stopSound() { if(sound != null) sound.stop(); } + @Override + public boolean isPlaying() { + return sound.isPlaying(); + } } diff --git a/src/main/java/com/hbm/tileentity/IGUIProvider.java b/src/main/java/com/hbm/tileentity/IGUIProvider.java new file mode 100644 index 000000000..f707f3d61 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IGUIProvider.java @@ -0,0 +1,15 @@ +package com.hbm.tileentity; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public interface IGUIProvider { + + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z); + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 1801c52b5..8a18ae3fe 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -216,4 +217,13 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme return Math.max(volume, 0); } + + public AudioWrapper createAudioLoop() { return null; } + + public AudioWrapper rebootAudio(AudioWrapper wrapper) { + wrapper.stopSound(); + AudioWrapper audio = createAudioLoop(); + audio.startSound(); + return audio; + } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index da4877661..174190c3e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -7,6 +7,8 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.network.CableDiode.TileEntityDiode; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; @@ -17,7 +19,9 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; +import com.hbm.util.LoggingUtil; +import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -90,6 +94,8 @@ public class TileMappings { put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); put(TileEntityCrateIron.class, "tileentity_crate_iron"); put(TileEntityCrateSteel.class, "tileentity_crate_steel"); + put(TileEntityCrateDesh.class, "tileentity_crate_desh"); + put(TileEntityMassStorage.class, "tileentity_mass_storage"); put(TileEntityMachinePress.class, "tileentity_press"); put(TileEntityAMSBase.class, "tileentity_ams_base"); put(TileEntityAMSEmitter.class, "tileentity_ams_emitter"); @@ -237,9 +243,12 @@ public class TileMappings { put(TileEntityTurretMaxwell.class, "tileentity_turret_maxwell"); put(TileEntityTurretFritz.class, "tileentity_turret_fritz"); put(TileEntityTurretBrandon.class, "tileentity_turret_brandon"); + put(TileEntityTurretArty.class, "tileentity_turret_arty"); } private static void putMachines() { + put(TileEntityFurnaceIron.class, "tileentity_furnace_iron"); + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); put(TileEntityUVLamp.class, "tileentity_uv_lamp"); @@ -308,9 +317,16 @@ public class TileMappings { put(TileEntityPylon.class, "tileentity_pylon_redwire"); put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); + + put(TileEntityCraneInserter.class, "tileentity_inserter"); + put(TileEntityCraneExtractor.class, "tileentity_extractor"); } private static void put(Class clazz, String... names) { map.put(clazz, names); + + if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); + } } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java index adcb48d52..4777be282 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java @@ -91,7 +91,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -196,7 +196,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory }*/ public boolean exp1() { - if(this.slots[1] != null && this.slots[1].getItem() == ModItems.gadget_explosive8) + if(this.slots[1] != null && this.slots[1].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -205,7 +205,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp2() { - if(this.slots[2] != null && this.slots[2].getItem() == ModItems.gadget_explosive8) + if(this.slots[2] != null && this.slots[2].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -214,7 +214,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp3() { - if(this.slots[3] != null && this.slots[3].getItem() == ModItems.gadget_explosive8) + if(this.slots[3] != null && this.slots[3].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -223,7 +223,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp4() { - if(this.slots[4] != null && this.slots[4].getItem() == ModItems.gadget_explosive8) + if(this.slots[4] != null && this.slots[4].getItem() == ModItems.early_explosive_lenses) { return true; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 8ec6010d9..0ddb12425 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -91,7 +91,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -170,7 +170,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp1() { - if(this.slots[1] != null && this.slots[1].getItem() == ModItems.man_explosive8) + if(this.slots[1] != null && this.slots[1].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -179,7 +179,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp2() { - if(this.slots[2] != null && this.slots[2].getItem() == ModItems.man_explosive8) + if(this.slots[2] != null && this.slots[2].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -188,7 +188,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp3() { - if(this.slots[3] != null && this.slots[3].getItem() == ModItems.man_explosive8) + if(this.slots[3] != null && this.slots[3].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -197,7 +197,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp4() { - if(this.slots[4] != null && this.slots[4].getItem() == ModItems.man_explosive8) + if(this.slots[4] != null && this.slots[4].getItem() == ModItems.early_explosive_lenses) { return true; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java index f4299b6a4..1a4d07f0f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java @@ -91,7 +91,7 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -172,10 +172,10 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { public boolean isReady() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core) { return true; @@ -187,10 +187,10 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { public boolean isFilled() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null && slots[5] != null && slots[6] != null && slots[7] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core && slots[5].getItem() == ModItems.mike_core && slots[6].getItem() == ModItems.mike_deut && diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java index 0975f5817..1df071c68 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java @@ -91,7 +91,7 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -172,10 +172,10 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { public boolean isReady() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core) { return true; @@ -187,10 +187,10 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { public boolean isFilled() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null && slots[5] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core && slots[5].getItem() == ModItems.tsar_core) { diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java index ded7a9ed7..122e52ba3 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java @@ -4,16 +4,19 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.particle.EntityOrangeFX; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.entity.projectile.EntityWaterSplash; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; @@ -102,9 +105,14 @@ public class TileEntityGeysir extends TileEntity { worldObj.spawnEntityInWorld(fx); } - if(timer % 2 == 0) //TODO: replace with actual particle - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 1.1F, this.zCoord + 0.5F, worldObj.rand.nextGaussian() * 0.05, 0.2, worldObj.rand.nextGaussian() * 0.05)); - + if(timer % 2 == 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mX", worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mY", 0.2); + data.setDouble("mZ", worldObj.rand.nextGaussian() * 0.05); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F, this.yCoord + 1.1F, this.zCoord + 0.5F), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 75)); + } } private int getDelay() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java index bc928654b..519396d26 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java @@ -1,10 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -16,6 +13,7 @@ import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -331,14 +329,10 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); double pos = rand.nextDouble() * 2.5; double off = 0.25; - if(meta == 2) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0)); - if(meta == 3) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0)); - if(meta == 4) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0)); - if(meta == 5) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0)); + if(meta == 2) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0); + if(meta == 3) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0); + if(meta == 4) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0); + if(meta == 5) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0); efficiency = 0; power = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 028080a73..29634935e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -35,6 +35,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc private int turnTimer; public float rotor; public float lastRotor; + public float fanAcceleration = 0F; public List list2 = new ArrayList(); @@ -101,16 +102,17 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc } else { this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(turnTimer > 0) { - - this.rotor += 25F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } - + + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.1F)); + Random rand = worldObj.rand; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection side = dir.getRotation(ForgeDirection.UP); @@ -123,6 +125,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); } } + if(turnTimer < 0) { + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index f47981b5c..71df52462 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -40,8 +40,9 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I if(age >= 2) { age = 0; } - + this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); tanks[0].setFill(tanks[0].getFill() - convert); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 1493b203f..1e9386e0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -9,7 +9,6 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; @@ -20,10 +19,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver { - - public int age = 0; + public long power = 0; - public static final long maxPower = 100000; public FluidTank[] tanks; public List list = new ArrayList(); @@ -45,33 +42,28 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.updateConnections(); - - this.tanks[0].updateTank(this, 25); - this.tanks[1].updateTank(this, 25); - - age++; - if(age >= 10) { - age = 0; - if(hasPower() && hasEnoughWater()) { - int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); - tanks[0].setFill(tanks[0].getFill() - convert); - tanks[1].setFill(tanks[1].getFill() + Math.round(convert / 50)); - power -= maxPower / 10; + + if(worldObj.getTotalWorldTime() % 10 == 0) { + if(hasPower() && hasEnoughWater() && tanks[1].getMaxFill() > tanks[1].getFill()) { + int convert = Math.min(tanks[1].getMaxFill(), tanks[0].getFill()) / 50; + convert = Math.min(convert, tanks[1].getMaxFill() - tanks[1].getFill()); + + tanks[0].setFill(tanks[0].getFill() - convert * 50); //dividing first, then multiplying, will remove any rounding issues + tanks[1].setFill(tanks[1].getFill() + convert); + power -= this.getMaxPower() / 20; } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - this.networkPack(data, 25); } this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1].getTankType(), this); - - if(power < 0) - power = 0; - fillFluidInit(tanks[1].getTankType()); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + tanks[0].writeToNBT(data, "water"); + tanks[1].writeToNBT(data, "heavyWater"); + + this.networkPack(data, 50); } } @@ -83,14 +75,12 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public void networkUnpack(NBTTagCompound data) { this.power = data.getLong("power"); - } - - public long getPowerRemainingScaled(long i) { - return (power * i) / maxPower; + tanks[0].readFromNBT(data, "water"); + tanks[1].readFromNBT(data, "heavyWater"); } public boolean hasPower() { - return power >= maxPower / 10; + return power >= this.getMaxPower() / 20; } public boolean hasEnoughWater() { @@ -125,17 +115,12 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { Library.transmitFluid(x, y, z, newTact, this, worldObj, type); } - + @Override public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; + return worldObj.getTotalWorldTime() % 20 < 10; } - + @Override public void setFluidFill(int i, FluidType type) { if(type == tanks[0].getTankType()) @@ -163,16 +148,10 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } + public void setFillForSync(int fill, int index) { } @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } + public void setTypeForSync(FluidType type, int index) { } @Override public List getFluidList(FluidType type) { @@ -196,16 +175,16 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen @Override public long getMaxPower() { - return maxPower; + return 100000; } @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks [1]}; + return new FluidTank[] { tanks[1] }; } @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks [0]}; + return new FluidTank[] { tanks[0] }; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index 84d98b241..aaba4b26d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -16,8 +16,6 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { - public static final long maxPower = 1000000; - public TileEntityDeuteriumTower() { super(); tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); @@ -97,28 +95,18 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { private DirPos[] getConPos() { - int offsetX = 0; - int offsetZ = 0; - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - offsetX = -dir.offsetX; - offsetZ = -rot.offsetZ; - - if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) { - offsetX = rot.offsetX; - offsetZ = dir.offsetZ; - } return new DirPos[] { - new DirPos(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 1, Library.POS_X), - new DirPos(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 0, Library.POS_X), - new DirPos(this.xCoord + offsetX * 1, this.yCoord, this.zCoord - offsetZ * 2, Library.NEG_Z), - new DirPos(this.xCoord + offsetX * 0, this.yCoord, this.zCoord - offsetZ * 2, Library.NEG_Z), - new DirPos(this.xCoord + offsetX * 1, this.yCoord, this.zCoord + offsetZ * 1, Library.POS_Z), - new DirPos(this.xCoord + offsetX * 0, this.yCoord, this.zCoord + offsetZ * 1, Library.POS_Z), - new DirPos(this.xCoord - offsetX * 1, this.yCoord, this.zCoord + offsetZ * 0, Library.NEG_Z), - new DirPos(this.xCoord - offsetX * 1, this.yCoord, this.zCoord - offsetZ * 1, Library.NEG_Z) + new DirPos(this.xCoord - dir.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(this.xCoord - dir.offsetX * 2 + rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(this.xCoord + dir.offsetX, this.yCoord, this.zCoord - dir.offsetZ, dir), + new DirPos(this.xCoord + dir.offsetX + rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ + rot.offsetZ, dir), + new DirPos(this.xCoord - rot.offsetX, this.yCoord, this.zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(this.xCoord - dir.offsetX - rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ - rot.offsetZ, rot.getOpposite()), + new DirPos(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot), + new DirPos(this.xCoord - dir.offsetX + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ + rot.offsetZ * 2, rot), }; } @@ -149,6 +137,6 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { @Override public long getMaxPower() { - return maxPower; + return 1000000; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java new file mode 100644 index 000000000..2b8fcab0b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -0,0 +1,234 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.container.ContainerFurnaceIron; +import com.hbm.inventory.gui.GUIFurnaceIron; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.module.ModuleBurnTime; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { + + public int maxBurnTime; + public int burnTime; + public boolean wasOn = false; + + public int progress; + public int processingTime; + public static final int baseTime = 200; + + public ModuleBurnTime burnModule; + + public TileEntityFurnaceIron() { + super(5); + + burnModule = new ModuleBurnTime() + .setLigniteMod(1.25) + .setCoalMod(1.25) + .setCokeMod(1.5) + .setSolidMod(2) + .setRocketMod(2); + } + + @Override + public String getName() { + return "container.furnaceIron"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + UpgradeManager.eval(slots, 4, 4); + this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); + + wasOn = false; + + if(burnTime <= 0) { + + for(int i = 1; i < 3; i++) { + if(slots[i] != null) { + + int fuel = burnModule.getBurnTime(slots[i]); + //int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); + + if(fuel > 0) { + this.maxBurnTime = this.burnTime = fuel; + slots[i].stackSize--; + + if(slots[i].stackSize == 0) { + slots[i] = slots[i].getItem().getContainerItem(slots[i]); + } + + break; + } + } + } + } + + if(canSmelt()) { + wasOn = true; + this.progress++; + this.burnTime--; + + if(this.progress % 15 == 0) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); + } + + if(this.progress >= this.processingTime) { + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); + + if(slots[3] == null) { + slots[3] = result.copy(); + } else { + slots[3].stackSize += result.stackSize; + } + + this.decrStackSize(0, 1); + + this.progress = 0; + this.markDirty(); + } + } else { + this.progress = 0; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("maxBurnTime", this.maxBurnTime); + data.setInteger("burnTime", this.burnTime); + data.setInteger("progress", this.progress); + data.setInteger("processingTime", this.processingTime); + data.setBoolean("wasOn", this.wasOn); + this.networkPack(data, 50); + } else { + + if(this.progress > 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double offset = this.progress % 2 == 0 ? 1 : 0.5; + worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX * offset - rot.offsetX * 0.1875, yCoord + 2, zCoord + 0.5 - dir.offsetZ * offset - rot.offsetZ * 0.1875, 0.0, 0.01, 0.0); + + if(this.progress % 5 == 0) { + double rand = worldObj.rand.nextDouble(); + worldObj.spawnParticle("flame", xCoord + 0.5 + dir.offsetX * 0.25 + rot.offsetX * rand, yCoord + 0.25 + worldObj.rand.nextDouble() * 0.25, zCoord + 0.5 + dir.offsetZ * 0.25 + rot.offsetZ * rand, 0.0, 0.0, 0.0); + } + } + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.burnTime = nbt.getInteger("burnTime"); + this.progress = nbt.getInteger("progress"); + this.processingTime = nbt.getInteger("processingTime"); + this.wasOn = nbt.getBoolean("wasOn"); + } + + public boolean canSmelt() { + + if(this.burnTime <= 0) return false; + if(slots[0] == null) return false; + + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); + + if(result == null) return false; + if(slots[3] == null) return true; + + if(!result.isItemEqual(slots[3])) return false; + if(result.stackSize + slots[3].stackSize > slots[3].getMaxStackSize()) return false; + + return true; + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1, 2, 3 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + + if(i == 0) + return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; + + if(i < 3) + return burnModule.getBurnTime(itemStack) > 0; + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 3; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.burnTime = nbt.getInteger("burnTime"); + this.progress = nbt.getInteger("progress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("maxBurnTime", maxBurnTime); + nbt.setInteger("burnTime", burnTime); + nbt.setInteger("progress", progress); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFurnaceIron(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFurnaceIron(player.inventory, this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fa380a2b3..63f66db13 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -5,6 +5,9 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; @@ -17,10 +20,13 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemFusionShield; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -76,6 +82,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser if (age == 9 || age == 19) fillFluidInit(tanks[1].getTankType()); + this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); /// START Processing part /// @@ -86,11 +93,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser //explode either if there's plasma that is too hot or if the reactor is turned on but the magnets have no power if(plasma.getFill() > 0 && (this.plasma.getTankType().temperature >= this.getShield() || (this.isOn && this.power < this.powerReq))) { - this.disassemble(); - Vec3 vec = Vec3.createVectorHelper(5.5, 0, 0); - vec.rotateAroundY(worldObj.rand.nextFloat() * (float)Math.PI * 2F); - - worldObj.newExplosion(null, xCoord + 0.5 + vec.xCoord, yCoord + 0.5 + worldObj.rand.nextGaussian() * 1.5D, zCoord + 0.5 + vec.zCoord, 2.5F, true, true); + this.explode(); } if(isOn && power >= powerReq) { @@ -163,9 +166,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser this.networkPack(data, 250); /// END Notif packets /// - - this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord, ForgeDirection.UP); - this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord, ForgeDirection.DOWN); } else { @@ -183,6 +183,51 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } } + private void updateConnections() { + + this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord, ForgeDirection.UP); + this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord, ForgeDirection.DOWN); + + Vec3 vec = Vec3.createVectorHelper(5.75, 0, 0); + + for(int i = 0; i < 16; i++) { + vec.rotateAroundY((float) (Math.PI / 8)); + this.trySubscribe(worldObj, xCoord + (int)vec.xCoord, yCoord + 3, zCoord + (int)vec.zCoord, ForgeDirection.UP); + this.trySubscribe(worldObj, xCoord + (int)vec.xCoord, yCoord - 3, zCoord + (int)vec.zCoord, ForgeDirection.DOWN); + } + } + + private void explode() { + this.disassemble(); + + if(this.plasma.getTankType() == Fluids.PLASMA_BF) { + + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + ExplosionLarge.spawnShrapnels(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 50); + + ExplosionNT exp = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 20F) + .addAttrib(ExAttrib.BALEFIRE) + .addAttrib(ExAttrib.NOPARTICLE) + .addAttrib(ExAttrib.NOSOUND) + .addAttrib(ExAttrib.NODROP) + .overrideResolution(64); + exp.doExplosionA(); + exp.doExplosionB(false); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", true); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); + + } else { + Vec3 vec = Vec3.createVectorHelper(5.5, 0, 0); + vec.rotateAroundY(worldObj.rand.nextFloat() * (float)Math.PI * 2F); + + worldObj.newExplosion(null, xCoord + 0.5 + vec.xCoord, yCoord + 0.5 + worldObj.rand.nextGaussian() * 1.5D, zCoord + 0.5 + vec.zCoord, 2.5F, true, true); + } + + } + private void doBreederStuff() { if(plasma.getFill() == 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index b2745929c..bacd632ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -9,7 +9,6 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -18,7 +17,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser { @@ -35,9 +33,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements //3: 2 //4: 3 //5: b - private static final int[] slots_top = new int[] {0, 2, 3, 4, 5}; - private static final int[] slots_bottom = new int[] {1, 2, 3, 4, 5}; - private static final int[] slots_side = new int[] {0}; + private static final int[] slots_io = new int[] {0, 1, 2, 3, 4, 5}; private String customName; @@ -114,18 +110,11 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 1) - return false; - - if(i == 5) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - if(i == 2 || i == 3 || i == 4) return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh; if(i == 0) - return true; + return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; return false; } @@ -193,10 +182,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return slots_io; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -205,9 +193,6 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 5) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; if(i == 1) return true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 8bd372ce6..ced4e8098 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.UpgradeManager; import com.hbm.items.ModItems; @@ -13,10 +14,6 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEAssemblerPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; @@ -24,20 +21,15 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineAssembler extends TileEntityMachineBase implements IEnergyUser { @@ -217,12 +209,18 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements break; } + int rec = -1; + if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null) { + ComparableStack comp = ItemAssemblyTemplate.readType(slots[4]); + rec = AssemblerRecipes.recipeList.indexOf(comp); + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", slots[4] != null ? slots[4].getItemDamage() : -1); + data.setInteger("recipe", rec); this.networkPack(data, 150); } else { @@ -231,8 +229,12 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements if(isProgressing && volume > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, volume, 1.0F); + audio = this.createAudioLoop(); + audio.updateVolume(volume); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + audio.updateVolume(volume); } } else { @@ -245,6 +247,11 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements } } + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + private void updateConnections() { this.getBlockMetadata(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java new file mode 100644 index 000000000..733ff4993 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -0,0 +1,259 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChunkCoordinates; + +public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser { + + public long power; + public int[] progress; + public int[] maxProgress; + public boolean isProgressing; + + int consumption = 100; + int speed = 100; + + public TileEntityMachineAssemblerBase(int scount) { + super(scount); + + int count = this.getRecipeCount(); + + progress = new int[count]; + maxProgress = new int[count]; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int count = this.getRecipeCount(); + + this.isProgressing = false; + this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); + + for(int i = 0; i < count; i++) { + loadItems(i); + unloadItems(i); + } + + + for(int i = 0; i < count; i++) { + if(!canProcess(i)) { + this.progress[i] = 0; + } else { + isProgressing = true; + process(i); + } + } + } + } + + protected boolean canProcess(int index) { + + int template = getTemplateIndex(index); + + if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) + return false; + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); + + if(recipe == null) + return false; + + if(this.power < this.consumption) return false; + if(!hasRequiredItems(recipe, index)) return false; + if(!hasSpaceForItems(output, index)) return false; + + return true; + } + + private boolean hasRequiredItems(List recipe, int index) { + int[] indices = getSlotIndicesFromIndex(index); + return InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.toArray(new AStack[0])); + } + + private boolean hasSpaceForItems(ItemStack recipe, int index) { + int[] indices = getSlotIndicesFromIndex(index); + return InventoryUtil.doesArrayHaveSpace(slots, indices[2], indices[2], new ItemStack[] { recipe }); + } + + protected void process(int index) { + + this.power -= this.consumption; + this.progress[index]++; + + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) + slots[0] = new ItemStack(ModItems.meteorite_sword_machined); //fisfndmoivndlmgindgifgjfdnblfm + + int template = getTemplateIndex(index); + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); + int time = ItemAssemblyTemplate.getProcessTime(slots[template]); + + this.maxProgress[index] = time * this.speed / 100; + + if(this.progress[index] >= this.maxProgress[index]) { + consumeItems(recipe, index); + produceItems(output, index); + this.progress[index] = 0; + this.markDirty(); + } + } + + private void consumeItems(List recipe, int index) { + + int[] indices = getSlotIndicesFromIndex(index); + + for(AStack in : recipe) { + if(in != null) + InventoryUtil.tryConsumeAStack(slots, indices[0], indices[1], in); + } + } + + private void produceItems(ItemStack out, int index) { + + int[] indices = getSlotIndicesFromIndex(index); + + if(out != null) { + InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[2], out.copy()); + } + } + + private void loadItems(int index) { + + int template = getTemplateIndex(index); + if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) + return; + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + + if(recipe != null) { + + ChunkCoordinates[] positions = getInputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(ChunkCoordinates coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + for(AStack ingredient : recipe) { + + if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(ingredient.matchesRecipe(stack, true)) { + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { + inv.decrStackSize(i, 1); + slots[j].stackSize++; + return; + } + } + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] == null) { + slots[j] = stack.copy(); + slots[j].stackSize = 1; + inv.decrStackSize(i, 1); + return; + } + } + } + } + } + } + } + } + } + } + + private void unloadItems(int index) { + + ChunkCoordinates[] positions = getOutputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(ChunkCoordinates coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + int i = indices[2]; + + ItemStack out = slots[i]; + + if(out != null) { + + for(int j = 0; j < inv.getSizeInventory(); j++) { + ItemStack target = inv.getStackInSlot(j); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { + this.decrStackSize(i, 1); + target.stackSize++; + return; + } + } + + for(int j = 0; j < inv.getSizeInventory(); j++) { + + if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(j, copy); + this.decrStackSize(i, 1); + return; + } + } + } + } + } + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + public abstract int getRecipeCount(); + public abstract int getTemplateIndex(int index); + + /** + * @param index + * @return A size 4 int array containing min input, max input and output indices in that order. + */ + public abstract int[] getSlotIndicesFromIndex(int index); + public abstract ChunkCoordinates[] getInputPositions(); + public abstract ChunkCoordinates[] getOutputPositions(); +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 14b532385..54411c4a3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,19 +1,45 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; import java.util.Random; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.DirPos; -public class TileEntityMachineAssemfac extends TileEntityMachineBase { +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChunkCoordinates; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IFluidAcceptor, IFluidSource { public AssemblerArm[] arms; + public FluidTank water; + public FluidTank steam; + public TileEntityMachineAssemfac() { - super(10 * 8 + 4 + 1); //8 assembler groups with 10 slots, 4 upgrade slots, 1 battery slot + super(14 * 8 + 4 + 1); //8 assembler groups with 14 slots, 4 upgrade slots, 1 battery slot + arms = new AssemblerArm[6]; for(int i = 0; i < arms.length; i++) { arms[i] = new AssemblerArm(i % 3 == 1 ? 1 : 0); //the second of every group of three becomes a welder } + + water = new FluidTank(Fluids.WATER, 64_000, 0); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, 1); } @Override @@ -23,13 +49,110 @@ public class TileEntityMachineAssemfac extends TileEntityMachineBase { @Override public void updateEntity() { + super.updateEntity(); - if(worldObj.isRemote) { + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + + this.speed = 100; + this.consumption = 100; + + UpgradeManager.eval(slots, 1, 4); + + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 6); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + this.speed -= speedLevel * 15; + this.consumption += speedLevel * 300; + this.speed += powerLevel * 5; + this.consumption -= powerLevel * 30; + this.speed /= (overLevel + 1); + this.consumption *= (overLevel + 1); + + for(DirPos pos : getConPos()) { + this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(steam.getFill() > 0) { + this.fillFluidInit(steam.getTankType()); + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + data.setIntArray("progress", this.progress); + data.setIntArray("maxProgress", this.maxProgress); + data.setBoolean("isProgressing", isProgressing); + + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); + + this.networkPack(data, 150); + + } else { + for(AssemblerArm arm : arms) { - arm.updateArm(); + arm.updateInterp(); + if(isProgressing) { + arm.updateArm(); + } } } } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.progress = nbt.getIntArray("progress"); + this.maxProgress = nbt.getIntArray("maxProgress"); + this.isProgressing = nbt.getBoolean("isProgressing"); + + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + } + + private int getWaterRequired() { + return 1000 / this.speed; + } + + @Override + protected boolean canProcess(int index) { + return super.canProcess(index) && this.water.getFill() >= getWaterRequired() && this.steam.getFill() + getWaterRequired() <= this.steam.getMaxFill(); + } + + @Override + protected void process(int index) { + super.process(index); + this.water.setFill(this.water.getFill() - getWaterRequired()); + this.steam.setFill(this.steam.getFill() + getWaterRequired()); + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ * 5, rot), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 5, rot), + new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 3 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 3, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 3, dir), + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 2, dir) + }; + } public static class AssemblerArm { public double[] angles = new double[4]; @@ -64,7 +187,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineBase { } public void updateArm() { - updateInterp(); if(actionDelay > 0) { actionDelay--; @@ -176,4 +298,153 @@ public class TileEntityMachineAssemfac extends TileEntityMachineBase { RETRACT_STRIKER } } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 5, + yCoord, + zCoord - 5, + xCoord + 5, + yCoord + 4, + zCoord + 5 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public long getMaxPower() { + return 10_000_000; + } + + @Override + public int getRecipeCount() { + return 8; + } + + @Override + public int getTemplateIndex(int index) { + return 17 + index * 14; + } + + @Override + public int[] getSlotIndicesFromIndex(int index) { + return new int[] { 5 + index * 14, 16 + index * 14, 18 + index * 14}; + } + + ChunkCoordinates[] inpos; + ChunkCoordinates[] outpos; + + @Override + public ChunkCoordinates[] getInputPositions() { + + if(inpos != null) + return inpos; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + inpos = new ChunkCoordinates[] { + new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), + new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), + new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), + new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + }; + + return inpos; + } + + @Override + public ChunkCoordinates[] getOutputPositions() { + + if(outpos != null) + return outpos; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + outpos = new ChunkCoordinates[] { + new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), + new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), + new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), + new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + }; + + return outpos; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } + + @Override + public void setFillForSync(int fill, int index) { } + + @Override + public void setFluidFill(int fill, FluidType type) { + if(type == water.getTankType()) water.setFill(fill); + if(type == steam.getTankType()) steam.setFill(fill); + } + + @Override + public void setTypeForSync(FluidType type, int index) { } + + @Override + public int getFluidFill(FluidType type) { + if(type == water.getTankType()) return water.getFill(); + if(type == steam.getTankType()) return steam.getFill(); + return 0; + } + + @Override + public void fillFluidInit(FluidType type) { + for(DirPos pos : getConPos()) { + this.fillFluid(pos.getX(), pos.getY(), pos.getZ(), this.getTact(), type); + } + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public boolean getTact() { + return worldObj.getTotalWorldTime() % 2 == 0; + } + + private List list = new ArrayList(); + + @Override + public List getFluidList(FluidType type) { + return type == steam.getTankType() ? this.list : new ArrayList(); + } + + @Override + public void clearFluidList(FluidType type) { + this.list.clear(); + } + + @Override + public int getMaxFluidFill(FluidType type) { + return type == water.getTankType() ? water.getMaxFill() : 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java new file mode 100644 index 000000000..4d266a204 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -0,0 +1,421 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ItemStackUtil; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyUser { + + public static final String MODE_EXACT = "exact"; + public static final String MODE_WILDCARD = "wildcard"; + public String[] modes = new String[9]; + + public List recipes = new ArrayList(); + public int recipeIndex; + public int recipeCount; + + public TileEntityMachineAutocrafter() { + super(21); + } + + public void initPattern(ItemStack stack, int i) { + + if(worldObj.isRemote) return; + + if(stack == null) { + modes[i] = null; + return; + } + + List names = ItemStackUtil.getOreDictNames(stack); + + if(iterateAndCheck(names, i ,"ingot")) return; + if(iterateAndCheck(names, i ,"block")) return; + if(iterateAndCheck(names, i ,"dust")) return; + if(iterateAndCheck(names, i ,"nugget")) return; + if(iterateAndCheck(names, i ,"plate")) return; + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + private boolean iterateAndCheck(List names, int i, String prefix) { + + for(String s : names) { + if(s.startsWith(prefix)) { + modes[i] = s; + return true; + } + } + + return false; + } + + public void nextMode(int i) { + + if(worldObj.isRemote) return; + + ItemStack stack = slots[i]; + + if(stack == null) { + modes[i] = null; + return; + } + + if(modes[i] == null) { + modes[i] = MODE_EXACT; + } else if(MODE_EXACT.equals(modes[i])) { + modes[i] = MODE_WILDCARD; + } else if(MODE_WILDCARD.equals(modes[i])) { + + List names = ItemStackUtil.getOreDictNames(stack); + + if(names.isEmpty()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = names.get(0); + } + } else { + + List names = ItemStackUtil.getOreDictNames(stack); + + if(names.size() < 2 || modes[i].equals(names.get(names.size() - 1))) { + modes[i] = MODE_EXACT; + } else { + + for(int j = 0; j < names.size() - 1; j++) { + + if(modes[i].equals(names.get(j))) { + modes[i] = names.get(j + 1); + return; + } + } + } + } + } + + public void nextTemplate() { + + if(worldObj.isRemote) return; + + this.recipeIndex++; + + if(this.recipeIndex >= this.recipes.size()) + this.recipeIndex = 0; + + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); + } else { + slots[9] = null; + } + } + + @Override + public String getName() { + return "container.autocrafter"; + } + + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 20, power, maxPower); + this.updateStandardConnections(worldObj, this); + + if(!this.recipes.isEmpty() && this.power >= this.consumption) { + IRecipe recipe = this.recipes.get(recipeIndex); + + if(recipe.matches(this.getRecipeGrid(), this.worldObj)) { + ItemStack stack = recipe.getCraftingResult(this.getRecipeGrid()); + + if(stack != null) { + + boolean didCraft = false; + + if(slots[19] == null) { + slots[19] = stack.copy(); + didCraft = true; + } else if(slots[19].isItemEqual(stack) && ItemStack.areItemStackTagsEqual(stack, slots[19]) && slots[19].stackSize + stack.stackSize <= slots[19].getMaxStackSize()) { + slots[19].stackSize += stack.stackSize; + didCraft = true; + } + + if(didCraft) { + for(int i = 10; i < 19; i++) { + + ItemStack ingredient = this.getStackInSlot(i); + + if(ingredient != null) { + this.decrStackSize(i, 1); + + if(ingredient.getItem().hasContainerItem(ingredient)) { + ItemStack container = ingredient.getItem().getContainerItem(ingredient); + + if(container != null && container.isItemStackDamageable() && container.getItemDamage() > container.getMaxDamage()) { + continue; + } + + this.setInventorySlotContents(i, container); + } + } + } + + this.power -= this.consumption; + } + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + for(int i = 0; i < 9; i++) { + if(modes[i] != null) { + data.setString("mode" + i, modes[i]); + } + } + data.setInteger("count", this.recipeCount); + data.setInteger("rec", this.recipeIndex); + this.networkPack(data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound data) { + this.power = data.getLong("power"); + + modes = new String[9]; + for(int i = 0; i < 9; i++) { + if(data.hasKey("mode" + i)) { + modes[i] = data.getString("mode" + i); + } + } + this.recipeCount = data.getInteger("count"); + this.recipeIndex = data.getInteger("rec"); + } + + public void updateTemplateGrid() { + + this.recipes = getMatchingRecipes(this.getTemplateGrid()); + this.recipeCount = recipes.size(); + this.recipeIndex = 0; + + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); + } else { + slots[9] = null; + } + } + + public List getMatchingRecipes(InventoryCrafting grid) { + List recipes = new ArrayList(); + + for(Object o : CraftingManager.getInstance().getRecipeList()) { + IRecipe recipe = (IRecipe) o; + + if(recipe.matches(grid, worldObj)) { + recipes.add(recipe); + } + } + + return recipes; + } + + public int[] access = new int[] { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return access; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(i == 19) + return true; + + if(i > 9 && i < 19) { + ItemStack filter = slots[i - 10]; + String mode = modes[i - 10]; + + if(filter == null || mode == null || mode.isEmpty()) return true; + + if(isValidForFilter(filter, mode, stack)) { + return false; + } + + return true; + } + + return false; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + + //only allow insertion for the nine recipe slots + if(slot < 10 || slot > 18) + return false; + + //is the filter at this space null? no input. + if(slots[slot - 10] == null) + return false; + + //let's find all slots that this item could potentially go in + List validSlots = new ArrayList(); + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + String mode = modes[i]; + + if(filter == null || mode == null || mode.isEmpty()) continue; + + if(isValidForFilter(filter, mode, stack)) { + validSlots.add(i + 10); + + //if the current slot is valid and has no item in it, shortcut to true [*] + if(i + 10 == slot && slots[slot] == null) { + return true; + } + } + } + + //if the slot we are looking at isn't valid, skip + if(!validSlots.contains(slot)) { + return false; + } + + //assumption from [*]: the slot has to be valid by now, and it cannot be null + int size = slots[slot].stackSize; + + //now we decide based on stacksize, woohoo + for(Integer i : validSlots) { + ItemStack valid = slots[i]; + + if(valid == null) return false; //null? since slots[slot] is not null by now, this other slot needs the item more + if(!(valid.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(valid, stack))) continue; //different item anyway? out with it + + //if there is another slot that actually does need the same item more, cancel + if(valid.stackSize < size) + return false; + } + + //prevent items with containers from stacking + if(stack.getItem().hasContainerItem(stack)) + return false; + + //by now, we either already have filled the slot (if valid by filter and null) or weeded out all other options, which means it is good to go + return true; + } + + private boolean isValidForFilter(ItemStack filter, String mode, ItemStack input) { + + switch(mode) { + case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); + case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); + default: + List keys = ItemStackUtil.getOreDictNames(input); + return keys.contains(mode); + } + } + + public InventoryCrafting getTemplateGrid() { + this.craftingInventory.loadIventory(slots, 0); + return this.craftingInventory; + } + + public InventoryCrafting getRecipeGrid() { + this.craftingInventory.loadIventory(slots, 10); + return this.craftingInventory; + } + + public static class InventoryCraftingAuto extends InventoryCrafting { + + public InventoryCraftingAuto(int width, int height) { + super(new ContainerBlank() /* "can't be null boo hoo" */, width, height); + } + + public void loadIventory(ItemStack[] slots, int start) { + + for(int i = 0; i < this.getSizeInventory(); i++) { + this.setInventorySlotContents(i, slots[start + i]); + } + } + + public static class ContainerBlank extends Container { + @Override public void onCraftMatrixChanged(IInventory inventory) { } + @Override public boolean canInteractWith(EntityPlayer player) { return false; } + } + } + + public static int consumption = 100; + public static long maxPower = consumption * 100; + public long power; + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + + for(int i = 0; i < 9; i++) { + if(nbt.hasKey("mode" + i)) { + modes[i] = nbt.getString("mode" + i); + } + } + + this.recipes = getMatchingRecipes(this.getTemplateGrid()); + this.recipeCount = recipes.size(); + this.recipeIndex = nbt.getInteger("rec"); + + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); + } else { + slots[9] = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + + for(int i = 0; i < 9; i++) { + if(modes[i] != null) { + nbt.setString("mode" + i, modes[i]); + } + } + + nbt.setInteger("rec", this.recipeIndex); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 80d53d3a7..cb61bbd65 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -37,10 +37,6 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento public List list = new ArrayList(); public FluidTank[] tanks; - private static final int[] slots_top = new int[] {4}; - private static final int[] slots_bottom = new int[] {6}; - private static final int[] slots_side = new int[] {4}; - private String customName; public TileEntityMachineBoiler() { @@ -118,12 +114,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - - if(i == 4) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; + return i == 4 && TileEntityFurnace.getItemBurnTime(stack) > 0; } @Override @@ -193,10 +184,9 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 4 }; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -205,7 +195,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; + return i == 4 && !this.isItemValidForSlot(i, itemStack); } public int getHeatScaled(int i) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index ef278e48e..00dd1f73f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -43,10 +43,6 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem public List list = new ArrayList(); public FluidTank[] tanks; - private static final int[] slots_top = new int[] {4}; - private static final int[] slots_bottom = new int[] {6}; - private static final int[] slots_side = new int[] {4}; - private String customName; public TileEntityMachineBoilerElectric() { @@ -199,14 +195,13 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return new int[0]; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + return false; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 0df7de4a3..b64ef2345 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -161,12 +161,12 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); for(int i = 0; i < 6; i++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 3, rot); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 2, rot.getOpposite()); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (3 - i) + rot.offsetZ * 3, Library.POS_Y); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 2, Library.POS_Y); for(int j = 0; j < 2; j++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) + rot.offsetX * 5, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 5, rot); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 4, rot.getOpposite()); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) + rot.offsetX * 5, yCoord + 1 + j, zCoord + dir.offsetZ * (3 - i) + rot.offsetZ * 5, rot); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 4, rot.getOpposite()); } } } @@ -323,13 +323,6 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { @Override public int getMaxFluidFillForReceive(FluidType type) { - /*int fill = this.getMaxFluidFill(type); - - if(type == Fluids.WATER) - fill += water.getMaxFill(); - - return fill;*/ - return super.getMaxFluidFillForReceive(type); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 45701d1f7..fc4721ec7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -155,8 +155,12 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(isProgressing && volume > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, volume, 1.0F); + audio = this.createAudioLoop(); + audio.updateVolume(volume); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + audio.updateVolume(volume); } } else { @@ -168,6 +172,11 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 30cb133ea..bb9b848df 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -197,6 +197,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[3], out.copy()); } } + private void loadItems(int index) { int template = getTemplateIndex(index); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 5faccef34..c148caf89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import com.hbm.config.BombConfig; @@ -22,8 +21,10 @@ import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,7 +33,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver { public long power; public static final long maxPower = 100000000; @@ -142,6 +143,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements progress = 0; } + this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -156,15 +158,29 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } private void updateConnections() { - - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(coolant.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + for(DirPos pos : getConPos()) { + this.sendFluid(amat.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 3, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z) + }; } public void networkUnpack(NBTTagCompound data) { @@ -510,4 +526,14 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public long getMaxPower() { return this.maxPower; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { amat }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { coolant }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index dc3ca8f13..ea8611233 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeCombustible; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeCombustible; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 5ca39fbc3..6dcf61f47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -4,21 +4,22 @@ import java.util.HashMap; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.Spaghetti; -import com.hbm.interfaces.Untested; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.lib.Library; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,10 +29,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -@Spaghetti("I still can't believe this was my idea of a 'rework'") -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor { +//epic! +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver { - public byte age; public long power; public int progress; public boolean isProgressing; @@ -42,11 +42,8 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public PseudoFluidTank inputTank; public PseudoFluidTank outputTank; - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {2, 3, 4}; - private static final int[] slots_side = new int[] { }; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; - @Untested private static HashMap fluidConversions = new HashMap(); static { @@ -56,7 +53,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public TileEntityMachineGasCent() { - super(6); + super(7); tank = new FluidTank(Fluids.UF6, 2000, 0); inputTank = new PseudoFluidTank(PseudoFluidType.NUF6, 8000); outputTank = new PseudoFluidTank(PseudoFluidType.LEUF6, 8000); @@ -66,10 +63,15 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public String getName() { return "container.gasCentrifuge"; } - + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i < 4; + } + @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? slots_bottom : side == 1 ? slots_top : slots_side; + return slots_io; } @Override @@ -92,11 +94,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I inputTank.writeToNBT(nbt, "inputTank"); outputTank.writeToNBT(nbt, "outputTank"); } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return (i != 0 && i != 1) || j == 1; - } public int getCentrifugeProgressScaled(int i) { return (progress * i) / getProcessingSpeed(); @@ -106,46 +103,23 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I return (power * i) / maxPower; } - public int getTankScaled(int i, int id) { - if(id == 0) { - return (this.inputTank.getFill() * i) / inputTank.getMaxFill(); - } else if(id == 1) { - return (this.outputTank.getFill() * i) / outputTank.getMaxFill(); - } - return i; - } - private boolean canEnrich() { if(power > 0 && this.inputTank.getFill() >= inputTank.getTankType().getFluidConsumed() && this.outputTank.getFill() + this.inputTank.getTankType().getFluidProduced() <= outputTank.getMaxFill()) { ItemStack[] list = inputTank.getTankType().getOutput(); if(this.inputTank.getTankType().getIfHighSpeed()) - if(!(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed)) + if(!(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed)) return false; if(list == null) return false; - if(list.length < 1 || list.length > 3) + if(list.length < 1) return false; - for(int i = 0; i < list.length; i++) { - - int slot = i + 2; - - if(slots[slot] == null) - continue; - - if(slots[slot].getItem() == list[i].getItem() && - slots[slot].getItemDamage() == list[i].getItemDamage() && - slots[slot].stackSize + list[i].stackSize <= slots[slot].getMaxStackSize()) - continue; - - return false; - } - - return true; + if(InventoryUtil.doesArrayHaveSpace(slots, 0, 3, list)) + return true; } return false; @@ -158,54 +132,42 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I inputTank.setFill(inputTank.getFill() - inputTank.getTankType().getFluidConsumed()); outputTank.setFill(outputTank.getFill() + inputTank.getTankType().getFluidProduced()); - for(byte i = 0; i < output.length && i < 3; i++) { - if(slots[i + 2] == null) { - slots[i + 2] = output[i].copy(); - } else { - slots[i + 2].stackSize += output[i].stackSize; - } - } + for(byte i = 0; i < output.length; i++) + InventoryUtil.tryAddItemToInventory(slots, 0, 3, output[i].copy()); //reference types almost got me again } private void attemptConversion() { - if(inputTank.getFill() <= inputTank.getMaxFill() && tank.getFill() > 0) { - int fill = inputTank.getMaxFill() - inputTank.getFill(); + if(inputTank.getFill() < inputTank.getMaxFill() && tank.getFill() > 0) { + int fill = Math.min(inputTank.getMaxFill() - inputTank.getFill(), tank.getFill()); - if(tank.getFill() >= fill) { - tank.setFill(tank.getFill() - fill); - inputTank.setFill(inputTank.getFill() + fill); - } else { - inputTank.setFill(inputTank.getFill() + tank.getFill()); - tank.setFill(0); - } + tank.setFill(tank.getFill() - fill); + inputTank.setFill(inputTank.getFill() + fill); } } private boolean attemptTransfer(TileEntity te) { if(te instanceof TileEntityMachineGasCent) { - TileEntityMachineGasCent gasCent = (TileEntityMachineGasCent) te; + TileEntityMachineGasCent cent = (TileEntityMachineGasCent) te; - if(gasCent.tank.getFill() == 0 && gasCent.tank.getTankType() == this.tank.getTankType()) { - if(gasCent.inputTank.getTankType() != this.outputTank.getTankType()) { - gasCent.inputTank.setTankType(this.outputTank.getTankType()); - gasCent.outputTank.setTankType(this.outputTank.getTankType().getOutputFluid()); + if(cent.tank.getFill() == 0 && cent.tank.getTankType() == tank.getTankType()) { + if(cent.inputTank.getTankType() != outputTank.getTankType() && outputTank.getTankType() != PseudoFluidType.NONE) { + cent.inputTank.setTankType(outputTank.getTankType()); + cent.outputTank.setTankType(outputTank.getTankType().getOutputType()); } - if(gasCent.inputTank.getFill() < gasCent.inputTank.getMaxFill() && this.outputTank.getFill() > 0) { - int fill = gasCent.inputTank.getMaxFill() - gasCent.inputTank.getFill(); + //God, why did I forget about the entirety of the fucking math library? + if(cent.inputTank.getFill() < cent.inputTank.getMaxFill() && outputTank.getFill() > 0) { + int fill = Math.min(cent.inputTank.getMaxFill() - cent.inputTank.getFill(), outputTank.getFill()); - if(this.outputTank.getFill() >= fill) { - this.outputTank.setFill(this.outputTank.getFill() - fill); - gasCent.inputTank.setFill(gasCent.inputTank.getFill() + fill); - } else { - gasCent.inputTank.setFill(gasCent.inputTank.getFill() + this.outputTank.getFill()); - this.outputTank.setFill(0); - } + outputTank.setFill(outputTank.getFill() - fill); + cent.inputTank.setFill(cent.inputTank.getFill() + fill); } - return false; + + return true; } } - return true; + + return false; } public void networkUnpack(NBTTagCompound data) { @@ -220,26 +182,25 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I @Override public void updateEntity() { - + if(!worldObj.isRemote) { - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + updateConnections(); - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - setTankType(1); + power = Library.chargeTEFromItems(slots, 4, power, maxPower); + setTankType(5); + tank.updateTank(this); - if(inputTank.getTankType() == PseudoFluidType.PF6 || inputTank.getTankType() == PseudoFluidType.NUF6 || inputTank.getTankType() == PseudoFluidType.MUD) { - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + if(fluidConversions.containsValue(inputTank.getTankType())) { attemptConversion(); } if(canEnrich()) { isProgressing = true; - this.progress++; - if(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed) + if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) this.power -= 300; else this.power -= 200; @@ -251,28 +212,24 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I if(progress >= getProcessingSpeed()) enrich(); - } else { isProgressing = false; this.progress = 0; } - age++; - if(age >= 10) { - age = 0; - + if(worldObj.getTotalWorldTime() % 10 == 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); TileEntity te = worldObj.getTileEntity(this.xCoord - dir.offsetX, this.yCoord, this.zCoord - dir.offsetZ); - if(attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { - if(this.outputTank.getFill() >= 100 && (slots[4] == null || (slots[4].getItem() == ModItems.nugget_uranium_fuel && slots[4].stackSize + 1 <= slots[4].getMaxStackSize()))) { - this.outputTank.setFill(this.outputTank.getFill() - 100); - if(slots[4] == null) { - slots[4] = new ItemStack(ModItems.nugget_uranium_fuel, 1); - } else { - slots[4].stackSize += 1; - } + //*AT THE MOMENT*, there's not really any need for a dedicated method for this. Yet. + if(!attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { + ItemStack[] converted = new ItemStack[] { new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite) }; + + if(this.outputTank.getFill() >= 600 && InventoryUtil.doesArrayHaveSpace(slots, 0, 3, converted)) { + this.outputTank.setFill(this.outputTank.getFill() - 600); + for(ItemStack stack : converted) + InventoryUtil.tryAddItemToInventory(slots, 0, 3, stack); } } } @@ -290,6 +247,26 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + if(fluidConversions.containsValue(inputTank.getTankType())) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) + }; + } @Override public void setPower(long i) { @@ -308,58 +285,62 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public int getProcessingSpeed() { - if(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed) { + if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) { return processingSpeed - 70; } return processingSpeed; } - + + public void setTankType(int in) { + + if(slots[in] != null && slots[in].getItem() instanceof IItemFluidIdentifier) { + IItemFluidIdentifier id = (IItemFluidIdentifier) slots[in].getItem(); + FluidType newType = id.getType(null, 0, 0, 0, slots[in]); + + if(tank.getTankType() != newType) { + PseudoFluidType pseudo = fluidConversions.get(newType); + + if(pseudo != null) { + inputTank.setTankType(pseudo); + outputTank.setTankType(pseudo.getOutputType()); + tank.setTankType(newType); + } + } + + } + } + + @Override + public void setTypeForSync(FluidType type, int index) { + tank.setTankType(type); + } + @Override public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); + public void setFluidFill(int fill, FluidType type) { + if(type == tank.getTankType()) + tank.setFill(fill); } - public void setTankType(int in) { - - if(slots[in] != null && slots[in].getItem() instanceof ItemFluidIdentifier) { - FluidType newType = ItemFluidIdentifier.getType(slots[in]); - - if(tank.getTankType() != newType) { - - PseudoFluidType pseudo = fluidConversions.get(newType); - - if(pseudo != null) { - inputTank.setTankType(pseudo); - outputTank.setTankType(pseudo.getOutputFluid()); - tank.setTankType(newType); - tank.setFill(0); - } - } - return; - } + @Override + public int getFluidFill(FluidType type) { + return tank.getTankType() == type ? tank.getFill() : 0; } @Override public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + return tank.getTankType() == type ? tank.getMaxFill() : 0; } - + @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - + AxisAlignedBB bb = null; @Override @@ -394,10 +375,14 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public void setTankType(PseudoFluidType type) { - if(this.type.name().equals(type.name())) + if(this.type.equals(type)) return; - this.type = type; + if(type == null) + this.type = PseudoFluidType.NONE; + else + this.type = type; + this.setFill(0); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index aa875a734..04191a8f6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -1,17 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeFlammable; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.RTGUtil; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index e5839ad54..16590a571 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -33,7 +33,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme private boolean shouldTurn; public float rotor; public float lastRotor; - + public float fanAcceleration = 0F; + public TileEntityMachineLargeTurbine() { super(7); @@ -104,17 +105,20 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme data.setBoolean("operational", operational); this.networkPack(data, 50); } else { - this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(shouldTurn) { - - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } + + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.1F)); + } + if(!shouldTurn) { + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 5baf6292e..a11f0a5c4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -25,6 +25,7 @@ import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -41,7 +42,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender { public long power; public int age = 0; @@ -89,6 +90,11 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if (age == 9 || age == 19) fillFluidInit(tank.getTankType()); + + this.sendFluid(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.sendFluid(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); + this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); @@ -680,4 +686,9 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public int getDrillRating() { return 100; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 15fd0c992..d9118650f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -170,8 +170,10 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB if(process > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = createAudioLoop(); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); } } else { @@ -183,6 +185,10 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 5060a0753..bac764a9f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeCombustible; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 4acfb031a..d21369773 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -17,6 +17,7 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -25,7 +26,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver { private ItemStack slots[]; @@ -221,6 +222,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS age = 0; } + this.subscribeToAllAround(tanks[0].getTankType(), this); fillFluidInit(tanks[1].getTankType()); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) @@ -252,6 +254,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS power = maxPower; } + this.sendFluidToAll(tanks[1].getTankType(), this); + tanks[1].unloadTank(5, 6, slots); for(int i = 0; i < 2; i++) @@ -349,4 +353,14 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public void setPower(long i) { this.power = i; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index df88f1c23..a7751b620 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -12,9 +12,9 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TETurbofanPacket; @@ -25,6 +25,7 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -32,6 +33,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; @Spaghetti("a") public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor { @@ -203,6 +205,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I return (power * i) / maxPower; } + @Spaghetti("HOOOOUUUGH") @Override public void updateEntity() { @@ -230,14 +233,22 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I if (!worldObj.isRemote) { - this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord - 1, Library.POS_X); + /*this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord - 1, Library.POS_X); this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord + 1, Library.POS_X); this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord + 1, Library.NEG_X); this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord - 1, Library.NEG_X); this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z); - this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z); + this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z);*/ + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + this.sendPower(worldObj, this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot); + this.sendPower(worldObj, this.xCoord + rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord + rot.offsetZ * 2 - dir.offsetZ, rot); + this.sendPower(worldObj, this.xCoord - rot.offsetX * 2, this.yCoord, this.zCoord - rot.offsetZ * 2, rot.getOpposite()); + this.sendPower(worldObj, this.xCoord - rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord - rot.offsetZ * 2 - dir.offsetZ, rot.getOpposite()); //Tank Management tank.loadTank(0, 1, slots); @@ -251,7 +262,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I isRunning = true; - spin += 3; + spin += 20; spin = spin % 360; if(power > maxPower) @@ -268,7 +279,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 4.25; + smoke.posZ = zCoord + 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); @@ -281,7 +292,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 4.25; + smoke.posZ = zCoord + 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); @@ -291,7 +302,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 12)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); for(Entity e : list) { e.motionZ += 0.5; @@ -301,7 +312,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.motionZ += 0.5; @@ -309,10 +320,20 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 5.5, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 4.5, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 3) { @@ -320,7 +341,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 4.25; + smoke.posZ = zCoord - 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); @@ -333,7 +354,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 4.25; + smoke.posZ = zCoord - 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); @@ -343,7 +364,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.motionZ -= 0.5; @@ -353,7 +374,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 12)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); for(Entity e : list) { e.motionZ -= 0.5; @@ -361,16 +382,26 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 5.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 4.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 4) { if(afterburner == 0 && rand.nextInt(3) == 0) { EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord + 4.25; + smoke.posX = xCoord + 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); @@ -383,7 +414,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord + 4.25; + smoke.posX = xCoord + 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); @@ -395,7 +426,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX += 0.5; @@ -405,7 +436,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX += 0.5; @@ -413,16 +444,26 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 5.5, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 4.5, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 5) { if(afterburner == 0 && rand.nextInt(3) == 0) { EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord - 4.25; + smoke.posX = xCoord - 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); @@ -435,7 +476,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord - 4.25; + smoke.posX = xCoord - 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); @@ -447,7 +488,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX -= 0.5; @@ -457,7 +498,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX -= 0.5; @@ -465,10 +506,20 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 5.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 4.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index ffd0838b4..e20b44df1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -517,7 +517,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public FluidTank[] getReceivingTanks() { return new FluidTank[] { water, carbonDioxide }; } - + // do some opencomputer stuff @Override public String getComponentName() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index eeb4e81bd..2fa7e2248 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -12,6 +11,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -19,7 +19,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, IFluidSource { +public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver { private FluidTank water; private FluidTank steam; @@ -40,8 +40,11 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, if(!worldObj.isRemote) { //if(worldObj.getTotalWorldTime() % 5 == 0) { - fillFluidInit(Fluids.STEAM); + fillFluidInit(Fluids.STEAM); //} + + this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); + this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); int process = heat / 10; process = Math.min(process, water.getFill()); @@ -52,9 +55,9 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, water.setFill(water.getFill() - process); steam.setFill(steam.getFill() + process * 100); - - //if(steam.getFill() > steam.getMaxFill() * 0.9) - // System.out.println("*" + steam.getFill()); + + this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); + this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); heat = 0; } else { @@ -176,4 +179,14 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index f8b6870a9..6407e568e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -106,9 +106,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } else if(countdown > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = this.createAudioLoop(); audio.updateVolume(100); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); } countdown--; @@ -132,6 +134,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } } + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + public void onChunkUnload() { if(audio != null) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 47c501437..126b9055f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; -import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IFluidAcceptor; @@ -21,6 +20,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; +import api.hbm.fluid.IFluidStandardSender; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; @@ -124,7 +124,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(overflow > 0) { this.tanks[i].setFill(this.tanks[i].getFill() - overflow); - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, overflow * 0.5F); + this.tanks[i].getTankType().onFluidRelease(this, this.tanks[i], overflow); } } @@ -140,6 +140,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu fillFluidInit(tanks[1].getTankType()); } + this.sendFluidToAll(tanks[0].getTankType(), this); + this.sendFluidToAll(tanks[1].getTankType(), this); + tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); @@ -309,4 +312,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu this.tanks[0].writeToNBT(nbt, "liquid"); this.tanks[1].writeToNBT(nbt, "gas"); } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[0], tanks[1] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 10df2b276..525859f77 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -3,11 +3,13 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -42,6 +44,22 @@ public class TileEntityTowerSmall extends TileEntityCondenser { } } + @Override + public void subscribeToAllAround(FluidType type, TileEntity te) { + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); + } + + @Override + public void sendFluidToAll(FluidType type, TileEntity te) { + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); + } + @Override public void fillFluidInit(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java index fa296881d..4fb2be3ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java @@ -21,13 +21,30 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public class TileEntityZirnoxDestroyed extends TileEntity { - + + public boolean onFire = true; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + onFire = nbt.getBoolean("fire"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("onFire", onFire); + } + @Override public void updateEntity() { if(!worldObj.isRemote) { radiate(worldObj, this.xCoord, this.yCoord, this.zCoord); - if(this.worldObj.getTotalWorldTime() % 50 == 0) { + if(this.worldObj.rand.nextInt(5000) == 0) + onFire = false; + + if(onFire && this.worldObj.getTotalWorldTime() % 50 == 0) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "rbmkflame"); data.setInteger("maxAge", 90); @@ -40,7 +57,7 @@ public class TileEntityZirnoxDestroyed extends TileEntity { private void radiate(World world, int x, int y, int z) { - float rads = 500000F; + float rads = onFire ? 500000F : 75000F; double range = 100D; List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range)); @@ -71,7 +88,7 @@ public class TileEntityZirnoxDestroyed extends TileEntity { ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); - if(len < 5) { + if(onFire && len < 5) { e.attackEntityFrom(DamageSource.onFire, 2); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 2ea577f19..d25f42aef 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -13,7 +13,9 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -21,7 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineFractionTower extends TileEntity implements IFluidSource, IFluidAcceptor, INBTPacketReceiver { +public class TileEntityMachineFractionTower extends TileEntity implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; public List list1 = new ArrayList(); @@ -41,7 +43,6 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid TileEntity stack = worldObj.getTileEntity(xCoord, yCoord + 3, zCoord); - if(stack instanceof TileEntityMachineFractionTower) { TileEntityMachineFractionTower frac = (TileEntityMachineFractionTower) stack; @@ -65,6 +66,7 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid } setupTanks(); + this.updateConnections(); if(worldObj.getTotalWorldTime() % 20 == 0) fractionate(); @@ -72,14 +74,16 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid if(worldObj.getTotalWorldTime() % 10 == 0) { fillFluidInit(tanks[1].getTankType()); fillFluidInit(tanks[2].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - - for(int i = 0; i < 3; i++) - tanks[i].writeToNBT(data, "tank" + i); - - INBTPacketReceiver.networkPack(this, data, 50); } + + this.sendFluid(); + + NBTTagCompound data = new NBTTagCompound(); + + for(int i = 0; i < 3; i++) + tanks[i].writeToNBT(data, "tank" + i); + + INBTPacketReceiver.networkPack(this, data, 50); } } @@ -89,6 +93,30 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid tanks[i].readFromNBT(nbt, "tank" + i); } + private void updateConnections() { + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + private void setupTanks() { Pair quart = RefineryRecipes.getFractions(tanks[0].getTankType()); @@ -234,4 +262,14 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1], tanks[2] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 9e78ed2fd..3a73f999f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -1,216 +1,88 @@ package com.hbm.tileentity.machine.oil; -import java.util.Random; +import java.util.List; -import com.hbm.entity.particle.EntityGasFlameFX; -import com.hbm.explosion.ExplosionThermo; +import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.FluidType.FluidTrait; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ParticleUtil; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; -public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver { - private ItemStack slots[]; - public long power; public static final long maxPower = 100000; public FluidTank tank; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; - Random rand = new Random(); - - private String customName; - + public boolean isOn = false; + public boolean doesBurn = false; + public TileEntityMachineGasFlare() { - slots = new ItemStack[3]; + super(6); tank = new FluidTank(Fluids.GAS, 64000, 0); } @Override - public int getSizeInventory() { - return slots.length; + public String getName() { + return "container.gasFlare"; } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.gasFlare"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "gas"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } + isOn = nbt.getBoolean("isOn"); + doesBurn = nbt.getBoolean("doesBurn"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "gas"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + nbt.setBoolean("isOn", isOn); + nbt.setBoolean("doesBurn", doesBurn); } - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - public long getPowerScaled(long i) { return (power * i) / maxPower; } - + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("valve")) this.isOn = !this.isOn; + if(data.hasKey("dial")) this.doesBurn = !this.doesBurn; + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); @@ -222,40 +94,136 @@ public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements I this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - + + tank.setType(3, slots); tank.loadTank(1, 2, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - if(tank.getFill() >= 10) { - tank.setFill(tank.getFill() - 10); - power += 50; - - if(power > maxPower) - power = maxPower; - - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11F, this.zCoord + 0.5F, 0.0, 0.0, 0.0)); - ExplosionThermo.setEntitiesOnFire(worldObj, this.xCoord, this.yCoord + 11, zCoord, 5); - - if(worldObj.getTotalWorldTime() % 5 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 1F); - } + int maxVent = 50; + int maxBurn = 10; - power = Library.chargeItemsFromTE(slots, 0, power, maxPower); + if(isOn && tank.getFill() > 0) { + + UpgradeManager.eval(slots, 4, 5); + int burn = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int yield = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + maxVent += maxVent * burn; + maxBurn += maxBurn * burn; + + if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { + + if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { + int eject = Math.min(maxVent, tank.getFill()); + tank.setFill(tank.getFill() - eject); + tank.getTankType().onFluidRelease(this, tank, eject); + + if(worldObj.getTotalWorldTime() % 7 == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F); + } + } else { + + if(tank.getTankType() instanceof FluidTypeFlammable) { + int eject = Math.min(maxBurn, tank.getFill()); + tank.setFill(tank.getFill() - eject); + + int penalty = 2; + if(!tank.getTankType().traits.contains(FluidTrait.GASEOUS)) + penalty = 10; + + long powerProd = ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 1_000; // divided by 1000 per mB + powerProd /= penalty; + powerProd += powerProd * yield / 3; + + power += powerProd; + + if(power > maxPower) + power = maxPower; + + ParticleUtil.spawnGasFlame(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F, worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15); + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 12, zCoord - 2, xCoord + 2, yCoord + 17, zCoord + 2)); + for(Entity e : list) { + e.setFire(5); + e.attackEntityFrom(DamageSource.onFire, 5F); + } + + if(worldObj.getTotalWorldTime() % 3 == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + } + } + } + + power = Library.chargeItemsFromTE(slots, 0, power, maxPower); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + data.setBoolean("isOn", isOn); + data.setBoolean("doesBurn", doesBurn); + this.networkPack(data, 50); + + } else { + + if(isOn && tank.getFill() > 0) { + + if((!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) && tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 1F); + data.setFloat("base", 0.25F); + data.setFloat("max", 3F); + data.setInteger("life", 150 + worldObj.rand.nextInt(20)); + data.setInteger("color", tank.getTankType().getColor()); + + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posZ", zCoord + 0.5); + data.setDouble("posY", yCoord + 11); + + MainRegistry.proxy.effectNT(data); + + } + + if(doesBurn && tank.getTankType() instanceof FluidTypeFlammable && MainRegistry.proxy.me().getDistanceSq(xCoord, yCoord + 10, zCoord) <= 1024) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "smoke"); + data.setBoolean("noclip", true); + data.setInteger("overrideAge", 50); + + if(worldObj.getTotalWorldTime() % 2 == 0) { + data.setDouble("posX", xCoord + 1.5); + data.setDouble("posZ", zCoord + 1.5); + data.setDouble("posY", yCoord + 10.75); + } else { + data.setDouble("posX", xCoord + 1.125); + data.setDouble("posZ", zCoord - 0.5); + data.setDouble("posY", yCoord + 11.75); + } + + MainRegistry.proxy.effectNT(data); + } + } } - + } + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); + this.doesBurn = nbt.getBoolean("doesBurn"); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 22e5815df..366052a75 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -14,15 +14,17 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender { public long power; public static final long maxPower = 100000; @@ -50,13 +52,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.updateTank(this); - - this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + + this.updateConnections(); UpgradeManager.eval(slots, 2, 3); int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); @@ -74,6 +71,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.fillFluidInit(tank.getTankType()); } + this.sendFluid(); + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progress", this.progress); @@ -82,6 +81,29 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.networkPack(data, 50); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + for(DirPos pos : getConPos()) { + this.sendFluid(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 2, yCoord + 1, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord + 1, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z) + }; + } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { @@ -246,4 +268,9 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 5ee6b9559..56c436a5d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -15,8 +15,10 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Quintet; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -26,7 +28,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver { public long power = 0; public int sulfur = 0; @@ -192,14 +194,23 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } private void updateConnections() { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; } public long getPowerScaled(long i) { @@ -326,6 +337,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements if(data.hasKey("toggle")) { + for(DirPos pos : getConPos()) { + this.tryUnsubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); + } + if(tanks[0].getTankType() == Fluids.HOTOIL) { tanks[0].setTankType(Fluids.HOTCRACKOIL); } else { @@ -333,4 +348,14 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } } } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1], tanks[2], tanks[3], tanks[4] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c899366c7..36fda0b9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; import com.hbm.inventory.UpgradeManager; @@ -13,15 +10,17 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver { public long power; public static final long maxPower = 100000; @@ -51,12 +50,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement tank.setType(4, slots); tank.updateTank(this); - this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + this.updateConnections(); UpgradeManager.eval(slots, 2, 3); int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); @@ -78,6 +72,24 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.networkPack(data, 50); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 2, yCoord + 1, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord + 1, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z) + }; + } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { @@ -230,4 +242,9 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java index 117ecf27e..1bbe94acb 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java @@ -11,7 +11,7 @@ public class TileEntityPileBreedingFuel extends TileEntityPileBase implements IP public int neutrons; public int lastNeutrons; public int progress; - public static final int maxProgress = GeneralConfig.enable528 ? 37500 : 25000; + public static final int maxProgress = GeneralConfig.enable528 ? 50000 : 30000; @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index ba6bd2f36..2d8f005e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -28,6 +28,7 @@ public class RBMKDials { public static final String KEY_REASIM_MOD = "dialReasimOutputMod"; public static final String KEY_REASIM_BOILERS = "dialReasimBoilers"; public static final String KEY_REASIM_BOILER_SPEED = "dialReasimBoilerSpeed"; + public static final String KEY_DISABLE_MELTDOWNS = "dialEnableMeltdowns"; public static void createDials(World world) { GameRules rules = world.getGameRules(); @@ -51,6 +52,7 @@ public class RBMKDials { rules.setOrCreateGameRule(KEY_REASIM_MOD, "1.0"); rules.setOrCreateGameRule(KEY_REASIM_BOILERS, "false"); rules.setOrCreateGameRule(KEY_REASIM_BOILER_SPEED, "0.05"); + rules.setOrCreateGameRule(KEY_DISABLE_MELTDOWNS, "false"); } } @@ -206,4 +208,14 @@ public class RBMKDials { public static double getReaSimBoilerSpeed(World world) { return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_REASIM_BOILER_SPEED), 0.05D), 0.0D, 1.0D); } + + /** + * Whether or not fuel columns should initiate a meltdown when overheating + * The method is in reverse because the default for older worlds will be 'false' + * @param world + * @return + */ + public static boolean getMeltdownsDisabled(World world) { + return world.getGameRules().getGameRuleBooleanValue(KEY_DISABLE_MELTDOWNS); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index b89800e81..985666099 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -47,17 +47,32 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I double heatProvided = this.heat - heatCap; if(heatProvided > 0) { - int waterUsed = (int)Math.floor(heatProvided / RBMKDials.getBoilerHeatConsumption(worldObj)); - waterUsed = Math.min(waterUsed, feed.getFill()); - feed.setFill(feed.getFill() - waterUsed); - int steamProduced = (int)Math.floor((waterUsed * 100) / getFactorFromSteam(steam.getTankType())); - steam.setFill(steam.getFill() + steamProduced); + double HEAT_PER_MB_WATER = RBMKDials.getBoilerHeatConsumption(worldObj); + double steamFactor = getFactorFromSteam(steam.getTankType()); + int waterUsed; + int steamProduced; - if(steam.getFill() > steam.getMaxFill()) { - steam.setFill(steam.getMaxFill()); + if(steam.getTankType() == Fluids.ULTRAHOTSTEAM) { + steamProduced = (int)Math.floor((heatProvided / HEAT_PER_MB_WATER) * 100D / steamFactor); + waterUsed = (int)Math.floor(steamProduced / 100D * steamFactor); + + if(feed.getFill() < waterUsed) { + steamProduced = (int)Math.floor(feed.getFill() * 100D / steamFactor); + waterUsed = (int)Math.floor(steamProduced / 100D * steamFactor); + } + } else { + waterUsed = (int)Math.floor(heatProvided / HEAT_PER_MB_WATER); + waterUsed = Math.min(waterUsed, feed.getFill()); + steamProduced = (int)Math.floor((waterUsed * 100D) / steamFactor); } - this.heat -= waterUsed * RBMKDials.getBoilerHeatConsumption(worldObj); + feed.setFill(feed.getFill() - waterUsed); + steam.setFill(steam.getFill() + steamProduced); + + if(steam.getFill() > steam.getMaxFill()) + steam.setFill(steam.getMaxFill()); + + this.heat -= waterUsed * HEAT_PER_MB_WATER; } fillFluidInit(steam.getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 6fc913b2c..65219f2f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.ArrayList; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; @@ -11,7 +10,6 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 58cb4b0d9..9b61678b0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -71,17 +71,17 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM rod.updateHeat(worldObj, slots[0], 1.0D); this.heat += rod.provideHeat(worldObj, slots[0], heat, 1.0D); - if(this.heat > this.maxHeat()) { - this.meltdown(); - return; - } - if(!this.hasLid()) { ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) ((this.fluxFast + this.fluxSlow) * 0.05F)); } super.updateEntity(); + if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { + this.meltdown(); + return; + } + //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.fluxFast = 0; this.fluxSlow = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java new file mode 100644 index 000000000..b5c377fd2 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -0,0 +1,155 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +public abstract class TileEntityCrateBase extends TileEntityLockableBase implements ISidedInventory { + + protected ItemStack slots[]; + public String customName; + + public TileEntityCrateBase(int count) { + slots = new ItemStack[count]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + @Override + public void openInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 1.0F, 1.0F); + } + + @Override + public void closeInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateClose", 1.0F, 1.0F); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + int[] slots = new int[this.slots.length]; + for(int i = 0; i < slots.length; i++) slots[i] = i; + return slots; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return !this.isLocked(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java new file mode 100644 index 000000000..923928b66 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java @@ -0,0 +1,13 @@ +package com.hbm.tileentity.machine.storage; + +public class TileEntityCrateDesh extends TileEntityCrateBase { + + public TileEntityCrateDesh() { + super(104); //8 rows with 13 slots + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.crateDesh"; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index 29298a441..abf54980b 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -1,162 +1,13 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; - -public class TileEntityCrateIron extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateIron extends TileEntityCrateBase { public TileEntityCrateIron() { - slots = new ItemStack[36]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(36); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateIron"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[36]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 135e74e32..725fde319 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntityCrateSteel extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedInventory { public TileEntityCrateSteel() { - slots = new ItemStack[54]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(54); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateSteel"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[54]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java index 1a509aff3..db640f843 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java @@ -1,57 +1,18 @@ package com.hbm.tileentity.machine.storage; import com.hbm.items.ModItems; -import com.hbm.tileentity.machine.TileEntityLockableBase; import api.hbm.block.ILaserable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCrateTungsten extends TileEntityLockableBase implements ISidedInventory, ILaserable { - - private ItemStack slots[]; - - private String customName; - +public class TileEntityCrateTungsten extends TileEntityCrateBase implements ILaserable { private int heatTimer; public TileEntityCrateTungsten() { - slots = new ItemStack[27]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(27); } @Override @@ -59,62 +20,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I return this.hasCustomInventoryName() ? this.customName : "container.crateTungsten"; } - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void updateEntity() { @@ -147,52 +52,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I } } - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[27]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(this.isLocked()) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 2c64945ad..955fe63b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -36,8 +36,8 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { this.trySubscribe(type, world, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); this.trySubscribe(type, world, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord - 1, Library.NEG_X); + this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); + this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); } @@ -71,8 +71,8 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { sendFluid(type, worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); sendFluid(type, worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord + 1, Library.POS_X); - sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord - 1, Library.NEG_X); + sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); + sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index ab683fc23..a59f7cbab 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 49996bdbb..1dfe5dc04 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 115bc7ec9..9a1d5db6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java new file mode 100644 index 000000000..b73c3d077 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -0,0 +1,171 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.items.ModItems; +import com.hbm.tileentity.INBTPacketReceiver; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; + +public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPacketReceiver, IControlReceiver { + + private int stack = 0; + public boolean output = false; + + public TileEntityMassStorage() { + super(3); + } + + @Override + public String getInventoryName() { + return "container.massStorage"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(slots[0] != null && slots[0].getItem() == ModItems.fluid_barrel_infinite) { + this.stack = this.getCapacity(); + } + + if(this.getType() == null) + this.stack = 0; + + if(getType() != null && getStockpile() < getCapacity() && slots[0] != null && slots[0].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[0], getType())) { + + int remaining = getCapacity() - getStockpile(); + int toRemove = Math.min(remaining, slots[0].stackSize); + this.decrStackSize(0, toRemove); + this.stack += toRemove; + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + if(output && getType() != null) { + + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { + return; + } + + int amount = Math.min(getStockpile(), getType().getMaxStackSize()); + + if(amount > 0) { + if(slots[2] == null) { + slots[2] = slots[1].copy(); + slots[2].stackSize = amount; + this.stack -= amount; + } else { + amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); + slots[2].stackSize += amount; + this.stack -= amount; + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("stack", getStockpile()); + data.setBoolean("output", output); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.stack = nbt.getInteger("stack"); + this.output = nbt.getBoolean("output"); + } + + public int getCapacity() { + return 10_000; + } + + public ItemStack getType() { + return slots[1] == null ? null : slots[1].copy(); + } + + public int getStockpile() { + return stack; + } + + public void setStockpile(int stack) { + this.stack = stack; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void openInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 1.0F, 1.0F); + } + + @Override + public void closeInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageClose", 1.0F, 1.0F); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.stack = nbt.getInteger("stack"); + this.output = nbt.getBoolean("output"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("stack", stack); + nbt.setBoolean("output", output); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("provide") && slots[1] != null) { + + if(this.getStockpile() == 0) { + return; + } + + int amount = data.getBoolean("provide") ? slots[1].getMaxStackSize() : 1; + amount = Math.min(amount, getStockpile()); + + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { + return; + } + + if(slots[2] == null) { + slots[2] = slots[1].copy(); + slots[2].stackSize = amount; + this.stack -= amount; + } else { + amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); + slots[2].stackSize += amount; + this.stack -= amount; + } + } + + if(data.hasKey("toggle")) { + this.output = !output; + } + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return !this.isLocked() && i == 0 && (this.getType() == null || (getType().isItemEqual(itemStack) && ItemStack.areItemStackTagsEqual(itemStack, getType()))); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return !this.isLocked() && i == 2; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 2 }; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java index a2664bcfc..d258a90a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntitySafe extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntitySafe extends TileEntityCrateBase implements ISidedInventory { public TileEntitySafe() { - slots = new ItemStack[15]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(15); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.safe"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[15]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java new file mode 100644 index 000000000..3360627b8 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -0,0 +1,230 @@ +package com.hbm.tileentity.network; + +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerCraneExtractor; +import com.hbm.inventory.gui.GUICraneExtractor; +import com.hbm.items.ModItems; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCraneExtractor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { + + public boolean isWhitelist = false; + public ModulePatternMatcher matcher; + + public TileEntityCraneExtractor() { + super(20); + this.matcher = new ModulePatternMatcher(9); + } + + @Override + public String getName() { + return "container.craneExtractor"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int delay = 20; + + if(slots[19] != null && slots[19].getItem() == ModItems.upgrade_ejector) { + switch(slots[19].getItemDamage()) { + case 0: delay = 10; break; + case 1: delay = 5; break; + case 2: delay = 2; break; + } + } + + boolean powered = false; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(this.worldObj.isBlockIndirectlyGettingPowered(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ)) { + powered = true; + break; + } + } + + if(worldObj.getTotalWorldTime() % delay == 0 && !powered) { + int amount = 1; + + if(slots[18] != null && slots[18].getItem() == ModItems.upgrade_stack) { + switch(slots[18].getItemDamage()) { + case 0: amount = 4; break; + case 1: amount = 16; break; + case 2: amount = 64; break; + } + } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + int[] access = null; + ISidedInventory sided = null; + + if(te instanceof ISidedInventory) { + sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + boolean hasSent = false; + + if(b instanceof IConveyorBelt) { + + IConveyorBelt belt = (IConveyorBelt) b; + + /* try to send items from a connected inv, if present */ + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + + boolean match = this.matchesFilter(stack); + + if((isWhitelist && match) || (!isWhitelist && !match)) { + stack = stack.copy(); + int toSend = Math.min(amount, stack.stackSize); + inv.decrStackSize(index, toSend); + stack.stackSize = toSend; + + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + hasSent = true; + break; + } + } + } + } + + /* if no item has been sent, send buffered items while ignoring the filter */ + if(!hasSent) { + + for(int i = 9; i < 18; i++) { + ItemStack stack = slots[i]; + + if(stack != null){ + stack = stack.copy(); + int toSend = Math.min(amount, stack.stackSize); + decrStackSize(i, toSend); + stack.stackSize = toSend; + + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + break; + } + } + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isWhitelist", isWhitelist); + this.matcher.writeToNBT(data); + this.networkPack(data, 15); + } + } + + public void networkUnpack(NBTTagCompound nbt) { + this.isWhitelist = nbt.getBoolean("isWhitelist"); + this.matcher.modes = new String[this.matcher.modes.length]; + this.matcher.readFromNBT(nbt); + } + + public boolean matchesFilter(ItemStack stack) { + + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + + if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { + return true; + } + } + + return false; + } + + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i > 8 && i < 18; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i > 8 && i < 18; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCraneExtractor(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICraneExtractor(player.inventory, this); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isWhitelist", this.isWhitelist); + this.matcher.writeToNBT(nbt); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("whitelist")) { + this.isWhitelist = !this.isWhitelist; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java new file mode 100644 index 000000000..35ce9fdaf --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -0,0 +1,93 @@ +package com.hbm.tileentity.network; + +import com.hbm.blocks.network.CraneInserter; +import com.hbm.inventory.container.ContainerCraneInserter; +import com.hbm.inventory.gui.GUICraneInserter; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { + + public static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; + + public TileEntityCraneInserter() { + super(21); + } + + @Override + public String getName() { + return "container.craneInserter"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + + int[] access = null; + + if(te instanceof ISidedInventory) { + ISidedInventory sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(te instanceof IInventory) { + for(int i = 0; i < slots.length; i++) { + + ItemStack stack = slots[i]; + + if(stack != null) { + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); + + if(ret == null || ret.stackSize != stack.stackSize) { + slots[i] = ret; + this.markDirty(); + break; + } + } + } + } + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return access; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCraneInserter(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICraneInserter(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java new file mode 100644 index 000000000..2e147e50d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -0,0 +1,426 @@ +package com.hbm.tileentity.turret; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.projectile.EntityArtilleryShell; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.inventory.container.ContainerTurretBase; +import com.hbm.inventory.gui.GUITurretArty; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUIProvider { + + public short mode = 0; + public static final short MODE_ARTILLERY = 0; + public static final short MODE_CANNON = 1; + public static final short MODE_MANUAL = 2; + private boolean didJustShoot = false; + private boolean retracting = false; + public double barrelPos = 0; + public double lastBarrelPos = 0; + + private List targetQueue = new ArrayList(); + + static List configs = new ArrayList(); + + static { + configs.add(BulletConfigSyncingUtil.SHELL_NORMAL); + configs.add(BulletConfigSyncingUtil.SHELL_EXPLOSIVE); + configs.add(BulletConfigSyncingUtil.SHELL_AP); + configs.add(BulletConfigSyncingUtil.SHELL_DU); + configs.add(BulletConfigSyncingUtil.SHELL_W9); + } + + public void enqueueTarget(double x, double y, double z) { + this.targetQueue.add(Vec3.createVectorHelper(x, y, z)); + } + + @Override + protected List getAmmoList() { + return configs; + } + + @Override + public String getName() { + return "container.turretArty"; + } + + @Override + public long getMaxPower() { + return 100000; + } + + @Override + public double getBarrelLength() { + return 9D; + } + + @Override + public double getAcceptableInaccuracy() { + return 0; + } + + @Override + public double getHeightOffset() { + return 3D; + } + + @Override + public double getDecetorRange() { + return this.mode == this.MODE_CANNON ? 128D : 3000D; + } + + @Override + public double getDecetorGrace() { + return this.mode == this.MODE_CANNON ? 32D : 250D; + } + + @Override + public double getTurretYawSpeed() { + return 1D; + } + + @Override + public double getTurretPitchSpeed() { + return 0.5D; + } + + @Override + public double getTurretDepression() { + return 30D; + } + + @Override + public double getTurretElevation() { + return 90D; + } + + @Override + protected void seekNewTarget() { + super.seekNewTarget(); + } + + @Override + public boolean entityInLOS(Entity e) { + + if(this.mode == this.MODE_CANNON) { + return super.entityInLOS(e); + } else { + + Vec3 pos = this.getTurretPos(); + Vec3 ent = this.getEntityPos(e); + Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); + double length = delta.lengthVector(); + + if(length < this.getDecetorGrace() || length > this.getDecetorRange() * 1.1) //the latter statement is only relevant for entities that have already been detected + return false; + + int height = worldObj.getHeightValue((int) Math.floor(e.posX), (int) Math.floor(e.posZ)); + return height < (e.posY + e.height); + } + } + + @Override + protected void alignTurret() { + + Vec3 pos = this.getTurretPos(); + + Vec3 barrel = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + barrel.rotateAroundZ((float) -this.rotationPitch); + barrel.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + /* + * This is done to compensate for the barrel length, as this small deviation has a huge impact in both modes at longer ranges. + * The consequence of this is that using the >before< angle of the barrel as an approximation can lead to problems at closer range, + * as the math tries to properly calculate the >after< angle. This should not be a problem due to the etector grace distance being + * rather high, but it is still important to note. + */ + pos.xCoord += barrel.xCoord; + pos.yCoord += barrel.yCoord; + pos.zCoord += barrel.zCoord; + + Vec3 delta = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord); + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 20; + double v02 = v0 * v0; + double g = 9.81 * 0.05; + double upperLower = mode == MODE_CANNON ? -1 : 1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + + this.turnTowardsAngle(targetPitch, targetYaw); + } + + public int getShellLoaded() { + + for(int i = 1; i < 10; i++) { + if(slots[i] != null) { + if(slots[i].getItem() == ModItems.ammo_arty) { + return slots[i].getItemDamage(); + } + } + } + + return -1; + } + + public void conusmeAmmo(Item ammo) { + + for(int i = 1; i < 10; i++) { + if(slots[i] != null && slots[i].getItem() == ammo) { + this.decrStackSize(i, 1); + return; + } + } + + this.markDirty(); + } + + public void spawnShell(int type) { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + EntityArtilleryShell proj = new EntityArtilleryShell(worldObj); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); + proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 20F, 0.0F); + proj.setTarget((int) tPos.xCoord, (int) tPos.yCoord, (int) tPos.zCoord); + proj.setType(type); + + if(this.mode != this.MODE_CANNON) + proj.setWhistle(true); + + worldObj.spawnEntityInWorld(proj); + } + + @Override + public void updateEntity() { + + if(worldObj.isRemote) { + this.lastBarrelPos = this.barrelPos; + + if(this.retracting) { + this.barrelPos += 0.5; + + if(this.barrelPos >= 1) { + this.retracting = false; + } + + } else { + this.barrelPos -= 0.05; + if(this.barrelPos < 0) { + this.barrelPos = 0; + } + } + } + + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + if(worldObj.isRemote) { + this.lastRotationPitch = this.rotationPitch; + this.lastRotationYaw = this.rotationYaw; + } + + this.aligned = false; + + if(!worldObj.isRemote) { + + if(this.target != null && !target.isEntityAlive()) { + this.target = null; + this.stattrak++; + } + } + + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } + } + + if(!worldObj.isRemote) { + + if(target != null) { + this.tPos = this.getEntityPos(target); + } else { + if(this.mode != this.MODE_MANUAL) { + this.tPos = null; + } + } + } + + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + + this.target = null; + this.tPos = null; + } + + if(!worldObj.isRemote) { + + if(this.target != null && !target.isEntityAlive()) { + this.target = null; + this.tPos = null; + this.stattrak++; + } + + if(isOn() && hasPower()) { + searchTimer--; + + this.setPower(this.getPower() - this.getConsumption()); + + if(searchTimer <= 0) { + searchTimer = this.getDecetorInterval(); + + if(this.target == null && this.mode != this.MODE_MANUAL) + this.seekNewTarget(); + } + } else { + searchTimer = 0; + } + + if(this.aligned) { + this.updateFiringTick(); + } + + this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); + + NBTTagCompound data = this.writePacket(); + this.networkPack(data, 250); + + this.didJustShoot = false; + + } else { + + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + //this will fix the interpolation error when the turret crosses the 360° point + if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { + + if(this.lastRotationYaw < this.rotationYaw) + this.lastRotationYaw += Math.PI * 2; + else + this.lastRotationYaw -= Math.PI * 2; + } + } + } + + int timer; + + @Override + public void updateFiringTick() { + + timer++; + + if(timer % 40 == 0) { + + int conf = this.getShellLoaded(); + + if(conf != -1) { + this.spawnShell(conf); + this.conusmeAmmo(ModItems.ammo_arty); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + this.didJustShoot = true; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 0F); + data.setByte("count", (byte)5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } + + if(this.mode == this.MODE_MANUAL && !this.targetQueue.isEmpty()) { + this.targetQueue.remove(0); + this.tPos = null; + } + } + } + + @Override + public void handleButtonPacket(int value, int meta) { + if(meta == 5) { + this.mode++; + if(this.mode > 2) + this.mode = 0; + } else{ + super.handleButtonPacket(value, meta); + } + } + + @Override + protected NBTTagCompound writePacket() { + NBTTagCompound data = super.writePacket(); + data.setShort("mode", mode); + if(didJustShoot) + data.setBoolean("didJustShoot", didJustShoot); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.mode = nbt.getShort("mode"); + if(nbt.getBoolean("didJustShoot")) + this.retracting = true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.mode = nbt.getShort("mode"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setShort("mode", this.mode); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerTurretBase(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUITurretArty(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 2a6c80830..11b8b5412 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -209,19 +209,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); - NBTTagCompound data = new NBTTagCompound(); - if(this.tPos != null) { - data.setDouble("tX", this.tPos.xCoord); - data.setDouble("tY", this.tPos.yCoord); - data.setDouble("tZ", this.tPos.zCoord); - } - data.setLong("power", this.power); - data.setBoolean("isOn", this.isOn); - data.setBoolean("targetPlayers", this.targetPlayers); - data.setBoolean("targetAnimals", this.targetAnimals); - data.setBoolean("targetMobs", this.targetMobs); - data.setBoolean("targetMachines", this.targetMachines); - data.setInteger("stattrak", this.stattrak); + NBTTagCompound data = this.writePacket(); this.networkPack(data, 250); } else { @@ -241,6 +229,25 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } } + protected NBTTagCompound writePacket() { + + NBTTagCompound data = new NBTTagCompound(); + if(this.tPos != null) { + data.setDouble("tX", this.tPos.xCoord); + data.setDouble("tY", this.tPos.yCoord); + data.setDouble("tZ", this.tPos.zCoord); + } + data.setLong("power", this.power); + data.setBoolean("isOn", this.isOn); + data.setBoolean("targetPlayers", this.targetPlayers); + data.setBoolean("targetAnimals", this.targetAnimals); + data.setBoolean("targetMobs", this.targetMobs); + data.setBoolean("targetMachines", this.targetMachines); + data.setInteger("stattrak", this.stattrak); + + return data; + } + private void updateConnections() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -455,9 +462,9 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple */ public void turnTowards(Vec3 ent) { - double turnYaw = Math.toRadians(this.getTurretYawSpeed()); + /*double turnYaw = Math.toRadians(this.getTurretYawSpeed()); double turnPitch = Math.toRadians(this.getTurretPitchSpeed()); - double pi2 = Math.PI * 2; + double pi2 = Math.PI * 2;*/ Vec3 pos = this.getTurretPos(); Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); @@ -465,6 +472,60 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple double targetPitch = Math.asin(delta.yCoord / delta.lengthVector()); double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + this.turnTowardsAngle(targetPitch, targetYaw); + + /*//if we are about to overshoot the target by turning, just snap to the correct rotation + if(Math.abs(this.rotationPitch - targetPitch) < turnPitch || Math.abs(this.rotationPitch - targetPitch) > pi2 - turnPitch) { + this.rotationPitch = targetPitch; + } else { + + if(targetPitch > this.rotationPitch) + this.rotationPitch += turnPitch; + else + this.rotationPitch -= turnPitch; + } + + double deltaYaw = (targetYaw - this.rotationYaw) % pi2; + + //determines what direction the turret should turn + //used to prevent situations where the turret would do almost a full turn when + //the target is only a couple degrees off while being on the other side of the 360° line + int dir = 0; + + if(deltaYaw < -Math.PI) + dir = 1; + else if(deltaYaw < 0) + dir = -1; + else if(deltaYaw > Math.PI) + dir = -1; + else if(deltaYaw > 0) + dir = 1; + + if(Math.abs(this.rotationYaw - targetYaw) < turnYaw || Math.abs(this.rotationYaw - targetYaw) > pi2 - turnYaw) { + this.rotationYaw = targetYaw; + } else { + this.rotationYaw += turnYaw * dir; + } + + double deltaPitch = targetPitch - this.rotationPitch; + deltaYaw = targetYaw - this.rotationYaw; + + double deltaAngle = Math.sqrt(deltaYaw * deltaYaw + deltaPitch * deltaPitch); + + this.rotationYaw = this.rotationYaw % pi2; + this.rotationPitch = this.rotationPitch % pi2; + + if(deltaAngle <= Math.toRadians(this.getAcceptableInaccuracy())) { + this.aligned = true; + }*/ + } + + public void turnTowardsAngle(double targetPitch, double targetYaw) { + + double turnYaw = Math.toRadians(this.getTurretYawSpeed()); + double turnPitch = Math.toRadians(this.getTurretPitchSpeed()); + double pi2 = Math.PI * 2; + //if we are about to overshoot the target by turning, just snap to the correct rotation if(Math.abs(this.rotationPitch - targetPitch) < turnPitch || Math.abs(this.rotationPitch - targetPitch) > pi2 - turnPitch) { this.rotationPitch = targetPitch; diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index 01cad08e8..eb8741f82 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -1,10 +1,17 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.ComparableStack; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.oredict.OreDictionary; public class ItemStackUtil { @@ -134,4 +141,31 @@ public class ItemStackUtil { return stacks; } + + //private static HashMap> buffered = new HashMap(); + + /** + * Returns a List of all ore dict names for this stack. Stack cannot be null, list is empty when there are no ore dict entries. + * @param stack + * @return + */ + public static List getOreDictNames(ItemStack stack) { + + /*ÜComparableStack comp = new ComparableStack(stack).makeSingular(); + + List buff = buffered.get(comp); + + if(buff != null) + return buff;*/ + + List list = new ArrayList(); + + int ids[] = OreDictionary.getOreIDs(stack); + for(int i : ids) { + list.add(OreDictionary.getOreName(i)); + } + + //buffered.put(comp, new ArrayList(list)); + return list; + } } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java new file mode 100644 index 000000000..0428ec19b --- /dev/null +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -0,0 +1,30 @@ +package com.hbm.util; + +import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ParticleUtil { + + public static void spawnGasFlame(World world, double x, double y, double z, double mX, double mY, double mZ) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mX", mX); + data.setDouble("mY", mY); + data.setDouble("mZ", mZ); + + if(world.isRemote) { + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } else { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } + } +} diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index 84ee5dff3..5cfe629a7 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -7,7 +7,7 @@ import net.minecraft.util.MathHelper; * Adjusted code from MC 1.12 (com.minecraft.util.math.BlockPos) */ public class BlockPos { - + private final int x; private final int y; private final int z; @@ -55,4 +55,32 @@ public class BlockPos { public int getZ() { return this.z; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + x; + result = prime * result + y; + result = prime * result + z; + return result; + } + + @Override + public boolean equals(Object obj) { + if(this == obj) + return true; + if(obj == null) + return false; + if(getClass() != obj.getClass()) + return false; + BlockPos other = (BlockPos) obj; + if(x != other.x) + return false; + if(y != other.y) + return false; + if(z != other.z) + return false; + return true; + } } diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index f04ccb06d..d00d76cfc 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -367,8 +367,8 @@ public class DesertAtom003 world.setBlock(x + 20, y + 4, z + 7, Blocks.vine, 4, 3); world.setBlock(x + 23, y + 4, z + 7, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 25, y + 4, z + 7, Block8, 3, 3); - world.setBlock(x + 26, y + 4, z + 7, Block19, 3, 3); - world.setBlock(x + 27, y + 4, z + 7, Block19, 3, 3); + world.setBlock(x + 26, y + 4, z + 7, Block19, 12, 3); + world.setBlock(x + 27, y + 4, z + 7, Block19, 12, 3); world.setBlock(x + 28, y + 4, z + 7, Block20, 3, 3); TileEntity tank0 = world.getTileEntity(x + 28, y + 4, z + 7); if(tank0 instanceof TileEntityMachineUF6Tank) diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index 0dba4397b..e71bf9d1d 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -9,7 +9,6 @@ import com.hbm.inventory.RecipesCommon.MetaBlock; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -82,8 +81,8 @@ public class OreCave { double scale = 0.01D; - for(int x = cX; x < cX + 16; x++) { - for(int z = cZ; z < cZ + 16; z++) { + for(int x = cX + 8; x < cX + 24; x++) { + for(int z = cZ + 8; z < cZ + 24; z++) { double n = noise.func_151601_a(x * scale, z * scale); @@ -105,7 +104,7 @@ public class OreCave { boolean canGenFluid = event.rand.nextBoolean(); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(MathHelper.clamp_int(x + dir.offsetX, cX, cX + 16), y + dir.offsetY, MathHelper.clamp_int(z + dir.offsetZ, cZ, cZ + 16)); + Block neighbor = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); if(neighbor.getMaterial() == Material.air || neighbor instanceof BlockStalagmite) { shouldGen = true; } @@ -132,8 +131,8 @@ public class OreCave { for(int i = 2; i < 6; i++) { ForgeDirection dir = ForgeDirection.getOrientation(i); - int clX = MathHelper.clamp_int(x + dir.offsetX, cX, cX + 16); - int clZ = MathHelper.clamp_int(z + dir.offsetZ, cZ, cZ + 16); + int clX = x + dir.offsetX; + int clZ = z + dir.offsetZ; Block neighbor = world.getBlock(clX, y, clZ); if(neighbor.isNormalCube()) @@ -146,7 +145,7 @@ public class OreCave { } else { - if((genTarget.getMaterial() == Material.air || !genTarget.isNormalCube()) && event.rand.nextInt(5) == 0) { + if((genTarget.getMaterial() == Material.air || !genTarget.isNormalCube()) && event.rand.nextInt(5) == 0 && !genTarget.getMaterial().isLiquid()) { if(ModBlocks.stalactite.canPlaceBlockAt(world, x, y, z)) { world.setBlock(x, y, z, ModBlocks.stalactite, ore.meta, 2); diff --git a/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java b/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java index 650c5c3b2..b98219729 100644 --- a/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java +++ b/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java @@ -1024,7 +1024,7 @@ public class ComponentNTMFeatures { this.fillWithBlocks(world, box, featureSizeX, 0, 5, featureSizeX, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 this.fillWithRandomizedBlocks(world, box, 6, 0, 5, featureSizeX - 1, 0, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 6, 1, 5, 6, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, featureSizeX - 1, 1, 5, featureSizeX + 1, 1, 5, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, featureSizeX - 1, 1, 5, featureSizeX - 1, 1, 5, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, featureSizeX, 0, featureSizeZ, featureSizeX, 1, featureSizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 this.fillWithRandomizedBlocks(world, box, featureSizeX, 0, 6, featureSizeX, 0, featureSizeZ - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, featureSizeX, 1, 6, featureSizeX, 1, featureSizeZ - 3, false, rand, RandomConcreteBricks); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fa6096b93..bb61339ef 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -208,6 +208,7 @@ container.anvil=Stufe %s Amboss container.arcFurnace=Lichtbogenofen container.armorTable=Rüstungsmodifikationstisch container.assembler=Fertigungsmaschine +container.autocrafter=Automatische Werkbank container.barrel=Fass container.bat9000=Big-Ass Tank 9000 container.battery=Energiespeicher @@ -215,6 +216,9 @@ container.bombMulti=Mehrzweckbombe container.centrifuge=Zentrifuge container.chemplant=Chemiewerk container.compactLauncher=Kompakt-Startrampe +container.craneExtractor=Förderband-Auswerfer +container.craneInserter=Förderband-Einsetzer +container.crateDesh=Deshkiste container.crateIron=Eisenkiste container.crateSteel=Stahlkiste container.crateTungsten=Wolframkiste @@ -234,6 +238,7 @@ container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank container.forceField=Kraftfeldgenerator container.frackingTower=Hydraulischer Frackingturm +container.furnaceIron=Eiserner Ofen container.fusionMultiblock=Großer Fusionsreaktor container.fusionaryWatzPlant=Fusionares Watzwerk container.gasCentrifuge=Gaszentrifuge @@ -261,6 +266,7 @@ container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium-Transmutationsgerät +container.massStorage=Speicher container.microwave=Mikrowelle container.miningDrill=Automatischer Minenbohrer container.miningLaser=Bergbaulaser @@ -408,6 +414,9 @@ entity.hbm.entity_bullet.name=Patrone entity.hbm.entity_rocket.name=Rakete entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=Zündung +flare.valve=Flussventil + fluid.acid_fluid=Säure fluid.corium_fluid=Corium fluid.mud_fluid=Giftiger Schlamm @@ -1279,6 +1288,10 @@ item.detonator_laser.name=Laserzünder item.detonator_multi.name=Mehrfach-Fernzünder item.deuterium_filter.name=Deuteriumfilter item.diamond_gavel.name=Diamantener Richterhammer +item.dieselsuit_boots.name=Dieselgetriebene High Heels +item.dieselsuit_helmet.name=Dieselgetriebene Umgebungssensoren +item.dieselsuit_legs.name=Dieselgetriebene Beinservos +item.dieselsuit_plate.name=Dieselgetriebene Kybernetik item.digamma_diagnostic.name=Digamma-Diagnosegerät item.dns_boots.name=DNT-Nanoanzug Stiefel item.dns_legs.name=DNT-Nanoanzug Beinschützer @@ -2101,6 +2114,9 @@ item.pancake.name=Pfannkuchen aus Altmetall, Nägeln und Edelsteinpulver item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste item.part_copper.name=Kupferstaubkiste +item.part_generic.piston_electric.name=Electrischer Kolben +item.part_generic.piston_hydraulic.name=Hydraulischer Kolben +item.part_generic.piston_pneumatic.name=Pneumatischer Kolben item.part_lithium.name=Lithiumstaubkiste item.part_plutonium.name=Plutoniumstaubkiste item.particle_aelectron.name=Positronenkapsel @@ -2755,6 +2771,9 @@ item.upgrade_crystallizer.name=Kristallisiererupgrade item.upgrade_effect_1.name=Effektupgrade Mk.I item.upgrade_effect_2.name=Effektupgrade Mk.II item.upgrade_effect_3.name=Effektupgrade Mk.III +item.upgrade_ejector_1.name=Auswurfupgrade Mk.I +item.upgrade_ejector_2.name=Auswurfupgrade Mk.II +item.upgrade_ejector_3.name=Auswurfupgrade Mk.III item.upgrade_fortune_1.name=Glückupgrade Mk.I item.upgrade_fortune_2.name=Glückupgrade Mk.II item.upgrade_fortune_3.name=Glückupgrade Mk.III @@ -2773,6 +2792,9 @@ item.upgrade_smelter.name=Ofenupgrade item.upgrade_speed_1.name=Geschwindigkeitsupgrade Mk.I item.upgrade_speed_2.name=Geschwindigkeitsupgrade Mk.II item.upgrade_speed_3.name=Geschwindigkeitsupgrade Mk.III +item.upgrade_stack_1.name=Stapelupgrade Mk.I +item.upgrade_stack_2.name=Stapelupgrade Mk.II +item.upgrade_stack_3.name=Stapelupgrade Mk.III item.upgrade_template.name=Maschinenupgrade-Vorlage item.v1.name=V1 item.volcanic_pickaxe.name=Geschmolzene Spitzhacke @@ -3101,11 +3123,19 @@ tile.concrete_pillar.name=Stahlbetonsäule tile.concrete_smooth.name=Beton tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt +tile.conveyor.name=Förderband +tile.conveyor_chute.name=Förderschütte +tile.conveyor_double.name=Zweispuriges Förderband +tile.conveyor_lift.name=Kettenaufzug +tile.conveyor_triple.name=Dreispuriges Förderband tile.corium_block.name=Corium +tile.crane_extractor.name=Förderband-Auswerfer +tile.crane_inserter.name=Förderband-Einsetzer tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste tile.crate_can.name=Konservenkiste +tile.crate_desh.name=Deshkiste tile.crate_iron.name=Eisenkiste tile.crate_jungle.name=Enargitkiste tile.crate_lead.name=Gefahrenstoffkiste @@ -3202,6 +3232,7 @@ tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter +tile.furnace_iron.name=Eiserner Ofen tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet tile.fusion_core.name=Fusionsreaktorsteuerung @@ -3293,6 +3324,8 @@ tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_assembler.name=Fertigungsmaschine +tile.machine_assemfac.name=Fertigungsfabrik +tile.machine_autocrafter.name=Automatische Werkbank tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock @@ -3396,6 +3429,7 @@ tile.machine_waste_drum.name=Abklingbecken-Trommel tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage +tile.mass_storage.name=Massenspeicher tile.meteor_battery.name=Stermenmetall-Elektrostatikgenerator tile.meteor_brick.name=Meteoritenziegel tile.meteor_brick_chiseled.name=Gemeißelter Meteoritenziegel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c779beee7..b9dd2951c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -384,6 +384,7 @@ container.anvil=Tier %s Anvil container.arcFurnace=Arc Furnace container.armorTable=Armor Modification Table container.assembler=Assembly Machine +container.autocrafter=Automatic Crafting Table container.barrel=Barrel container.bat9000=Big-Ass Tank 9000 container.battery=Energy Storage @@ -391,6 +392,9 @@ container.bombMulti=Multi Purpose Bomb container.centrifuge=Centrifuge container.chemplant=Chemical Plant container.compactLauncher=Compact Launch Pad +container.craneExtractor=Conveyor Extractor +container.craneInserter=Conveyor Inserter +container.crateDesh=Desh Crate container.crateIron=Iron Crate container.crateSteel=Steel Crate container.crateTungsten=Tungsten Crate @@ -410,10 +414,11 @@ container.factoryTitanium=Basic Factory container.fluidtank=Tank container.forceField=Forcefield Emitter container.frackingTower=Hydraulic Fracking Tower +container.furnaceIron=Iron Furnace container.fusionMultiblock=Big Fusion Reactor container.fusionaryWatzPlant=Fusionary Watz Plant container.gasCentrifuge=Gas Centrifuge -container.gasFlare=Gas Flare +container.gasFlare=Flare Stack container.generator=Nuclear Reactor container.hadron=Particle Accelerator container.iGenerator=Industrial Generator @@ -437,6 +442,7 @@ container.machineSolidifier=Solidifier container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium Transmutation Device +container.massStorage=Storage container.microwave=Microwave container.miningDrill=Automatic Mining Drill container.miningLaser=Mining Laser @@ -565,6 +571,11 @@ desc.gui.assembler.warning=§cError:§r This machine requires an assembly templa desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay desc.gui.rtg.heat=§eCurrent heat level: %s @@ -606,6 +617,9 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=Ignition +flare.valve=Flow Valve + fluid.acid_fluid=Acid fluid.corium_fluid=Corium fluid.mud_fluid=Poisonous Mud @@ -752,6 +766,14 @@ hbmfluid.water=Water hbmfluid.watz=Poisonous Mud hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice +hbmpseudofluid.none=Empty +hbmpseudofluid.heuf6=Highly Enriched UF6 +hbmpseudofluid.meuf6=Medium Enriched UF6 +hbmpseudofluid.leuf6=Low Enriched UF6 +hbmpseudofluid.nuf6=Natural UF6 +hbmpseudofluid.pf6=Plutonium Hexafluoride +hbmpseudofluid.mud_heavy=Heavy Sludge Fraction +hbmpseudofluid.mud=Poisonous Sludge Gas info.coil=Coil Strength info.templatefolder=Created with %s @@ -953,7 +975,7 @@ item.ams_core_thingy.name=Thingy (AMS/DFC Core) item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) item.ams_focus_blank.name=Blank Stabilizer Focus item.ams_focus_booster.name=Boosting Stabilizer Focus -item.ams_focus_booster.name=Weaker restriction field and core energy injection:$More heat generation, extra energy. +item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. item.ams_focus_limiter.name=Limiting Stabilizer Focus item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard cooling, no energy bonus. item.ams_lens.name=Stabilizer Lens @@ -1503,6 +1525,10 @@ item.detonator_laser.name=Laser Detonator item.detonator_multi.name=Multi Detonator item.deuterium_filter.name=Deuterium Filter item.diamond_gavel.name=Diamond Gavel +item.dieselsuit_boots.name=Diesel-Powered High Heels +item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor +item.dieselsuit_legs.name=Diesel-Powered Leg Servos +item.dieselsuit_plate.name=Diesel-Powered Cybernetics item.digamma_diagnostic.name=Digamma Diagnostic item.dns_boots.name=DNT Nano Suit Boots item.dns_legs.name=DNT Nano Suit Leggings @@ -1535,6 +1561,8 @@ item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) item.dynosphere_schrabidium.name=Schrabidium Dynosphere item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.early_explosive_lenses.name=Array of First-Generation High-Explosive Lenses +item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an aluminium$pusher, duraluminium shell, and bridgewire detonators. item.egg_balefire.name=Balefire Egg item.egg_balefire.desc=What kind of bird lays a radioactive egg? item.egg_balefire_shard.name=Balefire Shard @@ -1551,6 +1579,8 @@ item.euphemium_kit.name=Euphemium Kit item.euphemium_legs.name=Euphemium Leggings item.euphemium_plate.name=Euphemium Chestplate item.euphemium_stopper.name=Stopper +item.explosive_lenses.name=Array of High-Explosive Lenses +item.explosive_lenses.desc=Assembly of 8 PBX lenses with a thin$aluminium pusher, duraluminium shell, and$miniaturized bridgewire detonators. item.fabsols_vodka.name=Fabsol's Vodka item.factory_core_advanced.name=Advanced Factory Energy Cluster item.factory_core_titanium.name=Basic Factory Energy Cluster @@ -1621,9 +1651,8 @@ item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanke item.fusion_shield_desh.name=Desh Fusion Reactor Blanket item.fusion_shield_tungsten.name=Tungsten Fusion Reactor Blanket item.fusion_shield_vaporwave.name=Vaporwave Fusion Reactor Blanket -item.gadget_core.name=Plutonium Core +item.gadget_core.name=Large Plutonium Core item.gadget_explosive.name=First Generation Explosive Lens -item.gadget_explosive8.name=Bundle of First Generation Implosion Propellant item.gadget_kit.name=The Gadget Kit item.gadget_wireing.name=Wiring item.gas_biogas.name=Biogas Tank @@ -2029,8 +2058,7 @@ item.magnet_dee.name=Dee Magnets item.magnetron.name=Magnetron item.man_core.name=Plutonium Core item.man_explosive.name=Explosive Lens -item.man_explosive8.name=Bundle of Implosion Propellant -item.man_igniter.name=Bomb Igniter +item.man_igniter.name=Bomb Firing Unit item.man_kit.name=Fat Man Kit item.marshmallow.name=Marshmallow on a Stick item.mask_of_infamy.name=Mask of Infamy @@ -2375,6 +2403,9 @@ item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust item.part_copper.name=Box of Copper Dust +item.part_generic.piston_electric.name=Electric Piston +item.part_generic.piston_hydraulic.name=Hydraulic Piston +item.part_generic.piston_pneumatic.name=Pneumatic Piston item.part_lithium.name=Box of Lithium Dust item.part_plutonium.name=Box of Plutonium Dust item.particle_aelectron.name=Positron Capsule @@ -3134,6 +3165,9 @@ item.upgrade_crystallizer.name=Crystallizer Upgrade item.upgrade_effect_1.name=Effectiveness Upgrade Mk.I item.upgrade_effect_2.name=Effectiveness Upgrade Mk.II item.upgrade_effect_3.name=Effectiveness Upgrade Mk.III +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III item.upgrade_fortune_1.name=Fortune Upgrade Mk.I item.upgrade_fortune_2.name=Fortune Upgrade Mk.II item.upgrade_fortune_3.name=Fortune Upgrade Mk.III @@ -3153,6 +3187,9 @@ item.upgrade_smelter.name=Smelter Upgrade item.upgrade_speed_1.name=Speed Upgrade Mk.I item.upgrade_speed_2.name=Speed Upgrade Mk.II item.upgrade_speed_3.name=Speed Upgrade Mk.III +item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I +item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II +item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template item.v1.name=V1 item.volcanic_pickaxe.name=Molten Pickaxe @@ -3493,11 +3530,19 @@ tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_smooth.name=Concrete tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris +tile.conveyor.name=Conveyor Belt +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_triple.name=Triple-Lane Conveyor Belt tile.corium_block.name=Corium +tile.crane_extractor.name=Conveyor Ejector +tile.crane_inserter.name=Conveyor Inserter tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate tile.crate_can.name=Conserve Crate +tile.crate_desh.name=Desh Crate tile.crate_iron.name=Iron Crate tile.crate_jungle.name=Enargite Crate tile.crate_lead.name=Hazmat Crate @@ -3594,6 +3639,7 @@ tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks +tile.furnace_iron.name=Iron Furnace tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -3685,6 +3731,8 @@ tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace tile.machine_armor_table.name=Armor Modification Table tile.machine_assembler.name=Assembly Machine +tile.machine_assemfac.name=Assembly Factory +tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block @@ -3721,7 +3769,7 @@ tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_epress.name=Electric Press tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU -tile.machine_flare.name=Gas Flare +tile.machine_flare.name=Flare Stack tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower @@ -3789,6 +3837,7 @@ tile.machine_waste_drum.name=Spent Fuel Pool Drum tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=Mass Storage Unit tile.meteor_battery.name=Starmetal Static Electricity Generator tile.meteor_brick.name=Meteor Bricks tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index db6561ab6..256882698 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -916,6 +916,9 @@ geiger.playerRes=Радиационная защита игрока: geiger.title=СЧЁТЧИК ГЕЙГЕРА geiger.title.dosimeter=ДОЗИМЕТР +flare.ignition=Сжигание +flare.valve=Пропускной клапан + hadron.analysis=Анализ... hadron.buttonOn=Камера анализа (если есть) включена hadron.buttonOff=Камера анализа выключена @@ -1407,6 +1410,9 @@ container.miningDrill=Автоматический горный бур tile.drill_pipe.name=Бур tile.machine_assembler.name=Сборочная машина container.assembler=Сборочная машина +tile.machine_assemfac.name=Сборочный завод +tile.machine_autocrafter.name=Стол автокрафта +container.autocrafter=Стол автокрафта tile.machine_chemplant.name=Химическая установка container.chemplant=Химическая установка tile.machine_chemfac.name=Химический завод @@ -1423,8 +1429,12 @@ tile.crate_iron.name=Железный ящик container.crateIron=Железный ящик tile.crate_steel.name=Стальной ящик container.crateSteel=Стальной ящик +tile.crate_desh.name=Деш-ящик +container.crateDesh=Деш-ящик container.crateTungsten=Вольфрамовый ящик tile.crate_tungsten.name=Вольфрамовый ящик +tile.mass_storage.name=Накопительный блок +container.massStorage=Хранилище tile.safe.name=Сейф container.safe=Сейф tile.sand_polonium.name=Полониевый песок @@ -1528,6 +1538,15 @@ container.machineLiquefactor=Разжижитель tile.machine_liquefactor.name=Промышленный разжижитель container.machineSolidifier=Отвердитель tile.machine_solidifier.name=Промышленный отвердитель +tile.conveyor.name=Конвейер +container.craneExtractor=Конвейерный извлекатель +container.craneInserter=Конвейерный вставщик +tile.crane_extractor.name=Конвейерный извлекатель +tile.crane_inserter.name=Конвейерный вставщик +tile.conveyor_chute.name=Конвейерный желоб +tile.conveyor_double.name=Двухполосная конвейер +tile.conveyor_lift.name=Конвейерный цепной лифт +tile.conveyor_triple.name=Трёхполосный конвейер container.hadron=Ускоритель частиц tile.hadron_access.name=Терминал доступа ускорителя частиц @@ -2664,6 +2683,12 @@ item.upgrade_nullifier.name=Улучшение "Уничтожитель мус item.upgrade_screm.name=Улучшение "Кричащий учёный" item.upgrade_gc_speed.name=Улучшение "Разгон газовой центрифуги" item.upgrade_5g.name=Улучшение "5G излучение" +item.upgrade_ejector_1.name=Улучшение извлекателя "Скорость" I уровня +item.upgrade_ejector_2.name=Улучшение извлекателя "Скорость" II уровня +item.upgrade_ejector_3.name=Улучшение извлекателя "Скорость" III уровня +item.upgrade_stack_1.name=Улучшение извлекателя "Количество стака" I уровня +item.upgrade_stack_2.name=Улучшение извлекателя "Количество стака" II уровня +item.upgrade_stack_3.name=Улучшение извлекателя "Количество стака" III уровня item.fusion_core.name=Ядерный блок item.energy_core.name=Импровизированный энергоблок @@ -4076,6 +4101,10 @@ item.bismuth_boots.name=Сандали из висмута item.bismuth_helmet.name=Головной убор из висмута item.bismuth_legs.name=Наколенники из висмута item.bismuth_plate.name=Наплечники, ожерелье и набедренная повязка из висмута +item.dieselsuit_boots.name=Высокие каблуки с дизельным двигателем +item.dieselsuit_helmet.name=Головной датчик окружающей среды с дизельным двигателем +item.dieselsuit_legs.name=Сервоприводы для ног с дизельным приводом +item.dieselsuit_plate.name=Кибернетика с дизельным двигателем tile.mush.name=Светящийся гриб tile.waste_mycelium.name=Светящийся мицелий @@ -4489,6 +4518,9 @@ item.part_beryllium.name=Коробка бериллиевой пыли item.part_carbon.name=Коробка угольной пыли item.part_copper.name=Коробка медной пыли item.part_plutonium.name=Коробка плутониевой пыли +item.part_generic.piston_electric.name=Электрический поршень +item.part_generic.piston_hydraulic.name=Гидравлический поршень +item.part_generic.piston_pneumatic.name=Пневматический поршень item.particle_aelectron.name=Капсула с Позитроном item.particle_amat.name=Капсула с Антиматерией item.particle_aproton.name=Капсула с Антипротоном diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index d69111f56..26f6a00e9 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,7 +1,15 @@ -achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna -achievement.FOEQ=飞马座运载火箭和发射架 +achievement.acidizer.desc=噢,我的皮肤 +achievement.acidizer=酸 achievement.assembly.desc=Bobmazon 2级 (装配机) achievement.assembly=制作 +achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna +achievement.FOEQ=飞马座运载火箭和发射架 +achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 +achievement.breeding=反话 +achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 +achievement.bismuth=铋 +achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 +achievement.blastFurnace=煤和铁 achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! achievement.bossCreeper=四条腿的行走核弹 achievement.bossMaskman.desc=大男孩邦克 @@ -12,12 +20,22 @@ achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 achievement.bossWorm=拆掉机械蠕虫 achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? achievement.bossUFO=呀哈哈哈,笑死我了 +achievement.burnerPress.desc=压力压在你我身上 +achievement.burnerPress=压力之下 achievement.c20_5.desc=??? achievement.c20_5=第20.5章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.chemistry.desc=Bobmazon 3级 (混凝土砖) -achievement.chemistry=化学 +achievement.centrifuge.desc=离心力是假的,不要再@我了 +achievement.centrifuge=向心力 +achievement.chemplant.desc=现在你在考虑化学物质! +achievement.chemplant=这家工厂正在成长。2. +achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” +achievement.chicagoPile=领航员在新大陆着陆 +achievement.concrete.desc=布尔什维克的最爱。 +achievement.concrete=老可靠 +achievement.desh.desc=“来吧,你们这群人。有地方可去!” +achievement.desh=勒威耶 achievement.digammaFeel.desc=内心的空虚 achievement.digammaFeel=感觉的恐惧 achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 @@ -32,8 +50,12 @@ achievement.fiend.desc=卑鄙 achievement.fiend2.desc=更卑鄙 achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 -achievement.freytag.desc=Herold's life guards +achievement.freytag.desc=英勇的救生员 achievement.freytag=Freytag +achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.fusion=聚合 +achievement.gasCent.desc=贫铀讨厌他! +achievement.gasCent=拉链式 achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 achievement.hidden=隐藏目录 achievement.horizonsBonus.desc=说实话,你到底怎么了 @@ -44,16 +66,14 @@ achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 achievement.impossible=简直不可能 +achievement.manhattan.desc=1945年8月6日 8:15 +achievement.manhattan=曼哈顿计划 achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? achievement.meltdown=快速非计划拆卸 -achievement.metalworks.desc=Bobmazon 1级 (高炉) -achievement.metalworks=金属制品 -achievement.nuclear.desc=Bobmazon 5级 (铀燃料) -achievement.nuclear=原子科学 -achievement.oil.desc=Bobmazon 4级 (电锅炉) -achievement.oil=石油 achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 achievement.omega12=欧米茄-12粒子加速器 +achievement.polymer.desc=美味、美味的微塑料。 +achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 @@ -62,10 +82,22 @@ achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 achievement.radium=不可思议先生 achievement.radPoison.desc=受辐射中毒的影响 achievement.radPoison=呀, 辐射! +achievement.RBMKBoom.desc=谎言的代价是什么? +achievement.RBMKBoom=是15000伦琴辐射 +achievement.RBMK.desc=他有妄想症,带他去医务室。 +achievement.RBMK=3.6伦琴? +achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” +achievement.redBalloons=99个红气球 achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 +achievement.schrab.desc=不管怎样,我不会看太久。 +achievement.schrab=稳定岛 achievement.selenium.desc=耶! achievement.selenium=XVIII 月亮女神 +achievement.SILEX.desc=我保证,它会比它听起来的要更酷 +achievement.SILEX=激光激发法分离同位素 +achievement.slimeball.desc= +achievement.slimeball=我应该把蛋蛋浸在硫酸里。 achievement.stratum.desc=快刹车, Mitts! achievement.stratum=岩层 achievement.someWounds.desc=准备好 @@ -74,11 +106,26 @@ achievement.soyuz.desc=变得松脆 achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 achievement.space=最后战线—呃,算了吧 +achievement.sulfuric.desc= +achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 +achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 +achievement.tantalum=钽 achievement.tasteofblood.desc=这不是任何测试的一部分 achievement.tasteofblood=血的味道 +achievement.technetium.desc=它是药用的,它是药用的! +achievement.technetium=大个子,猪人 +achievement.watzBoom.desc=下次记得把污物容器清空 +achievement.watzBoom=令人厌恶 +achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 +achievement.watz=126号元素的力量 +achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! +achievement.witchtaunter=巫婆陶恩特 +achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 +achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=修正 %s 的爆炸伤害 armor.cap=伤害上限 %s armor.damageModifier=修正 %s 对 %s 的伤害 +armor.dash=Grants %s dashes armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 @@ -98,8 +145,33 @@ armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 armor.threshold=伤害阈值 %s armor.vats=这是一个测试,以证明这些书的e[B]ic换行功能。字体比例是可自定义的,换行符也会相应调整,这使得编写新页面非常容易。 +bomb.detonated=成功引爆! +bomb.incompatible=设备无法触发! +bomb.launched=发射成功! +bomb.missingComponent=组件丢失! +bomb.nobomb=链接位置不兼容或已断开! +bomb.triggered=触发成功! book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 +book.error.cover=粒子对撞机:$故障排除 +book.error.title1=错误 0x01 [能量不足] +book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 +book.error.title2=错误 0x02 [无法分析] +book.error.page2=§l错误类型:§r "错误_无法分析" §l描述:§r 尽管没有通过分析室,但粒子已经到达核心。 §l修复方式:§r 确保加速器有一个分析室,并再次检查工作模式(线性/环形)。 +book.error.title3=错误 0x03 [通道阻塞] +book.error.page3=§l错误类型:§r "错误_通道阻塞" §l描述:§r 粒子与对撞机通道内的方块碰撞。 §l修复方式:§r 确保粒子对撞机内部没有任何障碍物,粒子二极管和核心块除外。 +book.error.title4=错误 0x04 [缺少线圈] +book.error.page4=§l错误类型:§r "错误_缺少线圈" §l描述:§r 粒子通过了缺少一个或多个线圈的段。 §l修复方式:§r 移除冲突区域的对撞机镀层,并检查线圈结构是否完整。这种错误也会发生在没有二极管的T型交叉口上。 +book.error.title5=错误 0x05 [错误区段] +book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子通过了一个结构不正确的段(但既没有被阻塞也没有缺少线圈)。 §l修复方式:§r 确保有问题的部分都有镀层包裹,没有线圈暴露。 +book.error.title6=错误 0x06 [分析室过长] +book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块,直线加速器的分析室长度至少为2个方块。还要检查粒子是否未通过分支或环形加速器中的多个分析室。 +book.error.title7=错误 0x07 [分析室过短] +book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。有效的分析段没有线圈,镀层完全由分析室壁/窗组成。带有线圈的分析室被视为规则段。 +book.error.title8=错误 0x08 [二极管方向错误] +book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。粒子只能从带有绿色向内箭头的侧面进入二极管。 +book.error.title9=错误 0x09 [多处分支] +book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -119,7 +191,7 @@ book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反 book.rbmk.title8=碳化钨中子反射器 book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -133,42 +205,51 @@ book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. -#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction -#book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. -#book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. -#book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. -#book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. -#book.rbmk.title13=Console Usage -#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. -#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. -#book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +book.starter.cover=重建$社会的实业家$指南 +book.starter.title1=介绍 +book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 +book.starter.title2=煤和芥子气 +book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. +book.starter.title3=铁砧和锻压机 +book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.title4=模板 +book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的各种冲压和模板。 +book.starter.title5=废墟探索 +book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.title6=早期机械 +book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用,可以通过粉碎成可熔炼的粉末,将大多数矿石的产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要,例如§l增强d§r和§l超频§r电路. +book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r,用于合成更好的电路、混凝土、石化产品加工等. +book.starter.title8=黑金 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. +book.starter.title9=石油化工产品 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. +book.starter.title10=先进的机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. +book.starter.title11=特殊地层 +book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集 +book.starter.title12=辐射 +book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. +book.starter.title13=铀浓缩 +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.title14=芝加哥反应堆 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. +book.starter.title15=ZIRNOX锆诺克斯 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. +book.starter.title16=结论 +book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! +book.starter.title18=关于作者 +book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. +chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 +chem.BAKELITE=电木生产 chem.BALEFIRE=野火火箭燃料混合 chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沼气生产 +chem.C4=C-4合成 chem.CC_HEATING=高级煤液化 chem.CC_HEAVY=初级煤液化 chem.CC_I=强化煤液化 @@ -176,6 +257,8 @@ chem.CC_NAPHTHA=煤液化石脑油 chem.CC_OIL=煤液化 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 +chem.CO2=二氧化碳生产 +chem.COALGAS_LEADED=含铅煤汽油混合 chem.COLTAN_CLEANING=钶钽铁矿提纯 chem.COLTAN_CRYSTAL=钽结晶 chem.COLTAN_PAIN=Pandemonium(III)钽铁溶液生产 @@ -190,7 +273,9 @@ chem.DUCRETE=贫铀混凝土生产 chem.DYN_DNT=双聚中子态素合成 chem.DYN_EUPH=Ep合成 chem.DYN_SCHRAB=Sa326合成 +chem.DYNAMITE=炸药合成 chem.ELECTROLYSIS=低温电解水 +chem.EPEARL=末影珍珠合成 chem.ETHANOL=乙醇生产 chem.FC_BITUMEN=沥青裂化 chem.FC_DIESEL_KEROSENE=柴油裂化 @@ -203,17 +288,23 @@ chem.FP_NAPHTHA=石脑油加工 chem.FP_SMEAR=工业油加工 chem.FR_PETROIL=汽油混合 chem.FR_REOIL=原油再加工 +chem.FRACKSOL=压裂液生产 chem.GASOLINE=含铅汽油生产 +chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 chem.LPG=石油天然气液化 +chem.LUBRICANT=润滑剂混合 +chem.METH=甲基苯丙胺合成 chem.NITAN=NITAN牌超级燃料混合 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 chem.PEROXIDE=过氧化氢生产 +chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 +chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 chem.SCHRABIDATE=Sa酸铁生产 @@ -235,8 +326,10 @@ chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 chem.SOLID_FUEL=固体火箭燃料生产 chem.STEAM=烧水 +chem.SULFURIC_ACID=硫酸生产 chem.TEL=四乙基铅混合 chem.TEST=测试 +chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 chem.VIT_LIQUID=液态核废料玻璃化 @@ -250,6 +343,7 @@ container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 +container.autocrafter=自动工作台 container.barrel=桶 container.bat9000=巨尻-9000 储罐 container.battery=储能 @@ -257,6 +351,9 @@ container.bombMulti=多用途炸弹 container.centrifuge=离心机 container.chemplant=化工厂 container.compactLauncher=紧凑型发射台 +container.craneExtractor=输送带提取器 +container.craneInserter=输送带导入器 +container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 @@ -291,15 +388,19 @@ container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 +container.machineFEL=FEL自由电子激光器 container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 +container.machineLiquefactor=液化机 container.machineRefinery=炼油厂 container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=SILEX激光同位素分离室 +container.machineSolidifier=固化机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.massStorage=Storage container.microwave=微波炉 container.miningDrill=自动采矿钻机 container.miningLaser=采矿激光 @@ -326,18 +427,20 @@ container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 container.radiobox=FM发射机 +container.radiolysis=RTG辐射裂解室 container.radiorec=FM收音机 container.rbmkBoiler=RBMK石墨式反应堆蒸汽管道 container.rbmkControl=RBMK石墨式反应堆控制棒 container.rbmkControlAuto=RBMK石墨式反应堆自动控制棒 +container.rbmkHeater=RBMK流体加热器 container.rbmkOutgasser=RBMK石墨式反应堆辐照通道 container.rbmkReaSim=RBMK石墨式反应堆燃料棒 (ReaSim) container.rbmkRod=RBMK石墨式反应堆燃料棒 container.rbmkStorage=RBMK 燃料存储棒 -container.reactor=增殖反应堆 +container.reactorBreeding=增殖反应堆 container.reactorControl=反应堆遥控模块 container.reactorLarge=大型核反应堆 -container.reactorSmall=核反应堆 +container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] @@ -392,10 +495,12 @@ death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 death.attack.lead=%1$s 死于铅中毒 death.attack.lunar=%1$s 忘记了给重要器官充电 death.attack.meteorite=%1$s 被来自外太空的陨石击中 +death.attack.microwave=%1s 因微波辐射爆炸 death.attack.mku=%1$s 死于不明原因 death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 death.attack.mudPoisoning=%1$s 死于毒泥浆中 death.attack.nuclearBlast=%1$s 被核爆炸飞 +death.attack.overdose=%1$s 上瘾并窒息 death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 death.attack.plasma=%1$s 被 %2$s 烧死 death.attack.radiation=%1$s 死于辐射 @@ -404,7 +509,7 @@ death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 death.attack.rubble=%1$s 被碎片压扁了 death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 death.attack.spikes=%1$s被刺穿了 -death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁。 +death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 @@ -414,17 +519,37 @@ death.attack.taint=%1$s 死于恶性肿瘤 death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 death.attack.teleporter=%1$s 被传送到虚空 +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ +desc.item.rtgDecay=衰变为:%s desc.item.rtgHeat=功率级别:%s +desc.item.wasteCooling=在乏燃料池中冷却 +desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! +desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! +desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 +desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 -desc.gui.rtgBFurnace.heat=§e当前热级别:%s -desc.gui.rtgBFurnace.pellets=接受的靶丸: -desc.gui.rtgBFurnace.pellet=%s(%s热量) +desc.gui.rtg.heat=§e当前热等级:%s +desc.gui.rtg.pellets=接受的靶丸: +desc.gui.rtg.pelletHeat=%s (%s 热量) +desc.gui.rtg.pelletPower=%s (%s HE/刻) +desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 +desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 +desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 +desc.gui.upgrade.power=*§1节能§r:堆叠至3级 +desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 +desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 +desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! +desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! digamma.playerDigamma=玩家F-迪伽马辐照水平: digamma.playerHealth=玩家所受F-迪伽马辐照影响: digamma.playerRes=玩家F-迪伽马防护水平: digamma.title=玩家F-迪伽马辐射自检器 entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=老鸭子 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 @@ -440,8 +565,10 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=点火装置 +flare.valve=流量阀 fluid.acid_fluid=酸 -fluid.corium_fluid=Corium +fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 @@ -451,17 +578,33 @@ geiger.envRad=环境总辐射量: geiger.playerRad=玩家辐射: geiger.playerRes=辐射抗性: geiger.title=盖革计数器 +geiger.title.dosimeter=剂量计 hadron.analysis=正在分析... hadron.buttonOn=分析室启动(如果存在) hadron.buttonOff=分析室关闭 -hadron.error=错误! +hadron.error_generic=错误! +hadron.error_no_charge=错误 0x01 [能量不足] +hadron.error_no_analysis=错误 0x02 [无法分析] +hadron.error_obstructed_channel=错误 0x03 [通道阻塞] +hadron.error_expected_coil=错误 0x04 [缺少线圈] +hadron.error_malformed_segment=错误 0x05 [错误区段] +hadron.error_analysis_too_long=错误 0x06 [分析室过长] +hadron.error_analysis_too_short=错误 0x06 [分析室过长] +hadron.error_diode_collision=错误 0x08 [二极管方向错误] +hadron.error_branching_turn=错误 0x09 [多处分支] hadron.hopper0=§e正常模式:$将使用所有项目 hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 hadron.noresult=无结果 +hadron.noresult_too_slow=推进力不足! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=错误模式! hadron.progress=正在进行中... +hadron.stats=上一次结果: +hadron.stats_coord=错误位置:%s/%s/%s +hadron.stats_momentum=推力: %s hadron.success=已完成! hazard.prot=防止危险: hazard.noprot=不能防止: @@ -476,73 +619,95 @@ hazard.particleCoarse=空气微粒 hazard.particleFine=微粒 hazard.sand=眼睛刺激物 hbm.key=HBM的核科技mod 热键 +hbm.key.calculator=计算器 hbm.key.craneLoad=装卸起重机 hbm.key.craneMoveDown=向后移动起重机 hbm.key.craneMoveLeft=向左移动起重机 hbm.key.craneMoveRight=向右移动起重机 hbm.key.craneMoveUp=向前移动起重机 +hbm.key.dash=冲刺 (在config中解绑) hbm.key.toggleBack=开关 喷气背包 hbm.key.toggleHUD=开关 HUD hbm.key.reload=装弹 hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 +hbmfluid.aromatics=芳香烃 hbmfluid.aschrab=反Sa326 hbmfluid.balefire=野火火箭燃料 hbmfluid.biofuel=生物燃料 hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 hbmfluid.carbondioxide=二氧化碳 +hbmfluid.coalgas=煤汽油 +hbmfluid.coalgas_leaded=含铅煤汽油 +hbmfluid.coaloil=煤液化油 hbmfluid.coolant=冷却液 +hbmfluid.coolant_hot=热冷却液 +hbmfluid.crackoil=裂化油 hbmfluid.cryogel=冷凝胶 hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 +hbmfluid.diesel_crack=裂化柴油 hbmfluid.ethanol=乙醇 +hbmfluid.enderjuice=末影果汁 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 hbmfluid.gasoline=含铅汽油 +hbmfluid.gasoline_leaded=含铅汽油 hbmfluid.heatingoil=燃油 hbmfluid.heavyoil=重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 +hbmfluid.hotcrackoil=热裂化油 hbmfluid.hotoil=热原油 hbmfluid.hotsteam=热蒸汽 hbmfluid.hydrogen=液氢 hbmfluid.kerosene=煤油 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 +hbmfluid.lightoil_crack=裂化轻油 hbmfluid.lpg=液化石油气 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 +hbmfluid.mug=Mug牌树根饮料 +hbmfluid.mug_hot=热的Mug牌树根饮料 hbmfluid.naphtha=石脑油 +hbmfluid.naphtha_crack=裂化石脑油 hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oxygen=液氧 hbmfluid.pain=Pandemonium(III) 钽铁溶液 hbmfluid.petroil=汽油 +hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.plasma_bf=野火等离子体 +hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 hbmfluid.plasma_xm=氙-汞等离子体 hbmfluid.puf6=六氟化钚 hbmfluid.reclaimed=再生油 +hbmfluid.salient=绿色液体 hbmfluid.sas3=三硫化Sa hbmfluid.schrabidic=Sa酸 hbmfluid.smear=工业油 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 +hbmfluid.sulfuric_acid=硫酸 hbmfluid.superhotsteam=超热蒸汽 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒸汽 +hbmfluid.unsaturateds=不饱和烃 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 hbmfluid.water=水 hbmfluid.watz=毒泥浆 hbmfluid.xenon=氙气 +hbmfluid.xpjuice=经验汁 info.coil=线圈强度 info.templatefolder=需要使用机器模板文件夹创建 info.template_in=输入: @@ -609,6 +774,7 @@ item.ammo_4gauge_kampf.name=23mm火箭弹 item.ammo_4gauge_semtex.name=23mm采矿弹药 item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] item.ammo_4gauge_slug.name=四号实心独头弹 +item.ammo_4gauge_titan.name=4号Quacker鹿弹 item.ammo_4gauge_vampire.name=4号木签弹 item.ammo_4gauge_void.name=4号电离粒子弹 item.ammo_50ae.name=.50AE子弹 @@ -690,6 +856,7 @@ item.ammo_mirv_low.name=迷你MIRV (低当量) item.ammo_mirv_safe.name=迷你MIRV (安全) item.ammo_mirv_special.name=迷你MIRV item.ammo_nuke.name=迷你核弹 +item.ammo_nuke_barrel.name=小型核废料桶 item.ammo_nuke_high.name=迷你核弹 (高当量) item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 @@ -709,10 +876,15 @@ item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] item.ammo_rocket_toxic.name=84mm火箭弹[化学] item.ammo_shell.name=240mm炮弹 -item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 +item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 item.ammo_shell_explosive.name=240mm 高爆炮弹 item.ammo_shell_w9.name=240mm W9核子炮弹 +item.ammo_stinger_rocket.name=毒刺导弹 +item.ammo_stinger_rocket_he.name=毒刺导弹[高爆] +item.ammo_stinger_rocket_incendiary.name=毒刺导弹[燃烧] +item.ammo_stinger_rocket_nuclear.name=毒刺导弹[Привет] +item.ammo_stinger_rocket_bones.name=毒刺导弹[寻骨] item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空白反应催化剂 @@ -734,10 +906,13 @@ item.ams_core_sing.name=活跃奇点[AMS/DFC核心] item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=增压稳定器焦点 +item.ams_focus_booster.name=较弱的约束场和核心能量注入:产生更多的热量,额外的能量。 +item.ams_focus_booster.name=Weaker restriction field and core energy injection:$More heat generation, extra energy. item.ams_focus_limiter.name=限制稳定器焦点 +item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 item.ams_lens.name=稳定透镜 item.ams_muzzle.name=激活射线发射极 +item.ams_muzzle.desc=...它可以发出一束能量束。 item.analyzer.name=分析仪 item.antiknock.name=四乙基铅抗爆剂 item.apple_euphemium.name=Ep苹果 @@ -779,6 +954,8 @@ item.back_tesla.name=背负式特斯拉线圈 item.balefire_and_ham.name=火腿野火蛋 item.balefire_and_steel.name=野火打火石 item.balefire_scrambled.name=炒野火蛋 +item.ball_dynamite.name=硝糖炸药 +item.ball_tnt.name=TNT item.ballistite.name=混合无烟火药 item.bandaid.name=邦迪创可贴 item.bathwater.name=有毒肥皂水 @@ -800,6 +977,7 @@ item.battery_red_cell_24.name=二十四联红石电池组 item.battery_red_cell_6.name=六联红石电池组 item.battery_sc_americium.name=自充电 镅-241电池 item.battery_sc_gold.name=自充电 金-198电池 +item.battery_sc_lead.name=自充电 铅-209电池 item.battery_sc_plutonium.name=自充电 钚-238电池 item.battery_sc_polonium.name=自充电 钋-210电池 item.battery_sc_technetium.name=自充电 锝-98电池 @@ -823,6 +1001,7 @@ item.battery_su_l.name=大型SU-电池 item.battery_trixite.name=杂牌Spark电池 item.beta.name=Bata测试版功能 item.big_sword.name=大剑 +item.billet_actinium.name=锕-227坯料 item.billet_am_mix.name=反应堆级镅坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 @@ -835,19 +1014,26 @@ item.billet_balefire_gold.name=激活态金-198坯料 item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋坯料 item.billet_co60.name=钴-60坯料 +item.billet_cobalt.name=钴坯料 +item.billet_flashlead.name=闪光铅坯料 +item.billet_flashlead.desc=晶格衰变,引起反物质湮灭反应,导致π介子释放,衰变为μ子,催化原子核融合,产生新的元素$请尽量跟上。 +item.billet_gh336.name=Gh336坯料 +item.billet_gh336.desc=??的同事 item.billet_hes.name=高浓缩度Sa326燃料坯料 item.billet_les.name=低浓缩度Sa326燃料坯料 item.billet_mox_fuel.name=MOX燃料坯料 +item.billet_mox_fuel.desc=口袋摩西! item.billet_neptunium.name=镎坯料 item.billet_neptunium_fuel.name=镎核燃料坯料 item.billet_nuclear_waste.name=核废料坯料 +item.billet_pb209.name=铅-209坯料 item.billet_po210be.name=钋210-铍坯料 item.billet_polonium.name=钋坯料 item.billet_pu_mix.name=反应堆级钋坯料 -item.billet_pu238.name=钚238坯料 +item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 -item.billet_pu239.name=钚239坯料 -item.billet_pu240.name=钚240坯料 +item.billet_pu239.name=钚-239坯料 +item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_plutonium.name=钚坯料 item.billet_plutonium_fuel.name=钚燃料坯料 @@ -856,12 +1042,13 @@ item.billet_ra226be.name=镭226-铍坯料 item.billet_schrabidium.name=Sa326坯料 item.billet_schrabidium_fuel.name= Sa326燃料坯料 item.billet_solinium.name=Sa327坯料 +item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 -item.billet_th232.name=钍232坯料 +item.billet_th232.name=钍-232坯料 item.billet_thorium_fuel.name=钍燃料坯料 -item.billet_u233.name=铀233坯料 -item.billet_u235.name=铀235坯料 -item.billet_u238.name=铀238坯料 +item.billet_u233.name=铀-233坯料 +item.billet_u235.name=铀-235坯料 +item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 item.billet_uranium_fuel.name=铀燃料坯料 item.billet_yharonite.name=犽戎龙素坯料 @@ -869,9 +1056,14 @@ item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 item.billet_zfb_bismuth.name=铋 ZFB坯料 item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 +item.bio_wafer.name=海藻晶片 item.biomass.name=生物质 item.biomass_compressed.name=压缩生物质 +item.bismuth_boots.name=铋凉鞋 +item.bismuth_helmet.name=铋头饰 +item.bismuth_legs.name=铋护膝 item.bismuth_pickaxe.name=铋镐 +item.bismuth_plate.name=铋质护肩、项链和腰带 item.bismuth_tool.name=磁力提取器 item.bj_boots.name=§4月神§r钉靴 item.bj_helmet.name=热传感器眼罩 @@ -903,7 +1095,7 @@ item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 -item.book_guide.name=RBMK反应堆操作指导书 +item.book_guide.name=HBM指导书 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 @@ -920,18 +1112,20 @@ item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 -item.boy_bullet.name=铀235弹头 +item.boy_bullet.name=铀-235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 -item.boy_target.name=次临界铀235标靶 +item.boy_target.name=次临界铀-235标靶 item.briquette_lignite.name=褐煤煤球 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 item.bucket_schrabidic_acid.name=一桶Sa酸 +item.bucket_sulfuric_acid.name=一桶硫酸 item.bucket_toxic.name=一桶绿色软泥 item.burnt_bark.name=烧焦树皮 +item.burnt_bark.desc=爆炸的金橡树的树皮。 item.can_bepis.name=白事 item.can_breen.name=布雷恩博士的私人珍藏 item.can_creature.name='生物'能量饮料 @@ -939,6 +1133,7 @@ item.can_empty.name=空罐 item.can_key.name=罐头拉环 item.can_luna.name=黑梅萨露娜-黑可乐 item.can_mrsugar.name='糖博士'软饮料 +item.can_mug.name=MUG Root Beer item.can_overcharge.name=超频DeliriumXT item.can_redbomb.name='红色炸弹'能量饮料 item.can_smart.name="智慧"能量饮料 @@ -950,6 +1145,8 @@ item.canister_empty.name=空油桶 item.canister_ethanol.name=桶装乙醇 item.canister_fracksol.name=桶装压裂液 item.canister_fuel.name=桶装柴油 +item.canister_fuel.desc=大家欢呼吧! +item.canister_full.name=容器: item.canister_gasoline.name=桶装含铅汽油 item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 item.canister_heatingoil.name=桶装燃油 @@ -1006,11 +1203,15 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 +item.cape_hidden.name=Hidden Cape item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 +item.cart.crate.name=板条箱运输车 +item.cart.destroyer.name=废品销毁车 +item.cart.empty.name=钢箱矿车 item.casing_357.name=.357马格南弹壳[x16] item.casing_44.name=.44马格南弹壳[x16] item.casing_50.name=大口径弹壳[x8] @@ -1032,6 +1233,8 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 +item.chemistry_set.name=实验室玻璃器皿 +item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 @@ -1048,6 +1251,8 @@ item.chopper_wing.name=猎人直升机翼片 item.cigarette.name=FFI牌香烟 item.cinnebar.name=朱砂 item.circuit_aluminium.name=基础电路 +item.circuit_arsenic.name=自适应电路 +item.circuit_arsenic_raw.name=自适应电路组件 item.circuit_bismuth.name=多功能芯片组 item.circuit_bismuth_raw.name=多功能芯片组组件 item.circuit_copper.name=增强电路 @@ -1055,6 +1260,31 @@ item.circuit_gold.name=超频电路 item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 +item.circuit_star.name=星控制 电路板 +item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star_component.chipset.name=星控制 芯片组 +item.circuit_star_component.cpu.name=星控制 CPU +item.circuit_star_component.ram.name=星控制 RAM +item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_transistor.name=SC-晶体管 +item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 +item.circuit_star_piece.bridge_bus.name=SC-总线 +item.circuit_star_piece.bridge_chipset.name=SC-芯片组 +item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 +item.circuit_star_piece.bridge_io.name=SC-IO芯片 +item.circuit_star_piece.bridge_north.name=SC-北桥 +item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 +item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 +item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 +item.circuit_star_piece.cpu_logic.name=SC-算术逻辑单元 +item.circuit_star_piece.cpu_register.name=SC-CPU寄存器 +item.circuit_star_piece.cpu_socket.name=SC-CPU插槽 +item.circuit_star_piece.mem_socket.name=SC-存储插座 +item.circuit_star_piece.mem_16k_a.name=SC-16k内存条插槽 A +item.circuit_star_piece.mem_16k_b.name=SC-16k内存条插槽 B +item.circuit_star_piece.mem_16k_c.name=SC-16k内存条插槽 C +item.circuit_star_piece.mem_16k_d.name=SC-16k内存条插槽 D item.circuit_tantalium.name=电容板 item.circuit_tantalium_raw.name=电容板组件 item.circuit_targeting_tier1.name=军用级电路板[1级] @@ -1064,6 +1294,7 @@ item.circuit_targeting_tier4.name=军用级电路板[4级] item.circuit_targeting_tier5.name=军用级电路板[5级] item.circuit_targeting_tier6.name=军用级电路板[6级] item.cladding_desh.name=Desh覆层 +item.cladding_ghiorsium.name=石墨覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 @@ -1140,7 +1371,9 @@ item.coin_radiation.name=辐射硬币 item.coin_siege.name=围城硬币 item.coin_ufo.name=UFO硬币 item.coin_worm.name=机械蠕虫硬币 -item.coke.name=焦炭 +item.coke.coal.name=煤焦炭 +item.coke.lignite.name=褐煤焦炭 +item.coke.petroleum.name=石油焦炭 item.coltan_tool.name=钶钽铁矿指针 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 @@ -1153,6 +1386,8 @@ item.crucible.name=裁决剑 item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 +item.crystal_charred.desc=优质硅酸盐,轻微灼烧。 +item.crystal_charred.desc.P11=也是一个真正的号角。奇怪吧? item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -1162,12 +1397,14 @@ item.crystal_energy.name=能量晶体 item.crystal_fluorite.name=氟晶体 item.crystal_gold.name=金晶体 item.crystal_horn.name=水晶角 +item.crystal_horn.desc=不是真正的号角。 +item.crystal_horn.desc.P11=真正的号角。 item.crystal_iron.name=铁晶体 item.crystal_lead.name=铅晶体 item.crystal_lapis.name=青金石晶体 item.crystal_lithium.name=锂晶体 item.crystal_niter.name=硝石晶体 -item.crystal_osmiridium.name=锇晶体 +item.crystal_osmiridium.name=铱锇晶体 item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 @@ -1182,10 +1419,12 @@ item.crystal_trixite.name=赛瑞克晶体 item.crystal_tungsten.name=钨晶体 item.crystal_uranium.name=铀晶体 item.crystal_xen.name=人造X晶体 +item.crt_display.name=阴极射线管 item.cube_power.name=电子块 item.custom_amat.name=自定义核弹-反物质棒 item.custom_dirty.name=自定义核弹-核废料棒 item.custom_fall.name=自定义核弹-掉落升级 +item.custom_fall.desc=这就是你一一一直在等待的$使炸弹在激活时下落 item.custom_hydro.name=自定义核弹-氢棒 item.custom_kit.name=自定义核弹 套件 item.custom_nuke.name=自定义核弹-铀棒 @@ -1218,6 +1457,10 @@ item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 +item.dieselsuit_boots.name=柴油动力高跟鞋 +item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 +item.dieselsuit_legs.name=柴油动力腿部伺服系统 +item.dieselsuit_plate.name=柴油动力控制器 item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 @@ -1230,12 +1473,16 @@ item.dnt_plate.name=双聚态中子素 胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 +item.dosimeter.name=剂量计 item.drill_titanium.name=钛钻头 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 item.drax_mk3.name=Sa326采掘钻 item.ducttape.name=胶带 item.dust.name=灰尘 +item.dust.desc=我讨厌灰尘! +item.dust.desc.P11=又一小撮灰尘! +item.dust_tiny.name=一小撮灰尘 item.dynosphere_base.name=空白动力球 item.dynosphere_desh.name=Desh动力球 item.dynosphere_desh_charged.name=Desh动力球[带电] @@ -1255,6 +1502,7 @@ item.elec_shovel.name=螺旋钻 item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 +item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 item.euphemium_boots.name=Ep靴子 item.euphemium_helmet.name=Ep头盔 item.euphemium_kit.name=Ep工具箱 @@ -1277,10 +1525,14 @@ item.fins_small_steel.name=小型钢栅格翼 item.fins_tri_steel.name=大型钢翼 item.five_htp.name=5-羟色胺药丸 item.flame_conspiracy.name=阴谋论 +item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! item.flame_opinion.name=个人观点 +item.flame_opinion.desc=呃,我喜欢... item.flame_politics.name=政治话题 +item.flame_politics.desc=唐老鸭将会修建一堵墙! item.flame_pony.name=卡通小马画 -item.fleija_core.name=F.L.E.I.J.A.铀235装药 +item.flame_pony.desc=黄马胜于蓝马,这是不争的事实! +item.fleija_core.name=F.L.E.I.J.A.铀-235装药 item.fleija_igniter.name=脉冲点火器 item.fleija_kit.name=F.L.E.I.J.A. 套件 item.fleija_propellant.name=Sa326炸药 @@ -1293,6 +1545,9 @@ item.fluid_identifier.info=流体标识码用于: item.fluid_identifier.usage0=在流体管道上单击右键,为该管道指定运输的流体。 item.fluid_identifier.usage1=按住Shift键并流体管道上单击右键以指定相邻管道 item.fluid_identifier.usage2=最大范围为64格管道。 +item.fluid_identifier_multi.name=多类型流体识别码 +item.fluid_identifier_multi.info=通用流体识别码: +item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: item.fluid_tank_lead_empty.name=空危险品罐 @@ -1344,7 +1599,10 @@ item.gas_mask_mono.name=防一氧化碳面罩 item.gas_mask_olde.name=皮革防毒面具 item.gas_petroleum.name=石油气罐 item.geiger_counter.name=手持盖革计数器 +item.gem_alexandrite.name=亚历山大变石 item.gem_tantalium.name=钽晶体 +item.gem_tantalium.desc=“钽” +item.gem_tantalium.desc.P11=又名钽。 item.gem_volcanic.name=火山宝石 item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 @@ -1378,6 +1636,7 @@ item.grenade_if_spark.name=IF-S-手榴弹 item.grenade_if_sticky.name=IF-粘性手榴弹 item.grenade_if_toxic.name=IF-毒物手榴弹 item.grenade_kit.name=手榴弹 套件 +item.grenade_kyiv.name=基辅特供 item.grenade_lemon.name=可燃柠檬 item.grenade_mirv.name=MIRV型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” @@ -1404,9 +1663,9 @@ item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 -item.gun_bolter.name=Bolter -item.gun_bolter_digamma.name=迪伽马Bolter -item.gun_calamity.name=灾难 +item.gun_bolter.name=爆弹枪 +item.gun_bolter_digamma.name=迪伽马爆弹枪 +item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 item.gun_cryolator.name=冻结者 @@ -1416,6 +1675,7 @@ item.gun_darter.name=飞镖枪 item.gun_deagle.name=大手枪 item.gun_defabricator.name=毁灭者 item.gun_defabricator_ammo.name=毁灭者能量电池 +item.gun_detonator.name=激光引爆器 item.gun_emp.name=EMP射线 item.gun_emp_ammo.name=能量电池 item.gun_euthanasia.name=安乐死 @@ -1490,9 +1750,11 @@ item.gun_sauer.name=斯坦-索尔的猎枪 item.gun_skystinger.name=毒刺-The One Sky item.gun_spark.name=Spark Plug item.gun_spark_ammo.name=电磁弹 +item.gun_spas12.name=SPAS-12霰弹枪 item.gun_stinger.name=FIM-92毒刺导弹 item.gun_stinger_ammo.name=毒刺导弹 item.gun_super_shotgun.name="超级"猎枪 +item.gun_super_shotgun.desc=超级烂! item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 item.gun_uboinik.name=Uboinik @@ -1506,6 +1768,7 @@ item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” item.hand_drill.name=手钻 +item.hand_drill_desh.name=Desh手钻 item.hazmat_boots.name=防辐射靴 item.hazmat_boots_grey.name=高性能防辐射靴 item.hazmat_boots_red.name=高级防辐射靴 @@ -1537,13 +1800,17 @@ item.hev_boots.name=HEV MarkIV 靴子 item.hev_plate.name=HEV MarkIV 胸甲 item.hev_helmet.name=HEV MarkIV 头盔 item.hev_legs.name=HEV MarkIV 护腿 +item.holotape_damaged.name=损坏的全息卡带 +item.holotape_image.name=全息卡带 item.horseshoe_magnet.name=马蹄形磁铁 item.hull_big_aluminium.name=大型铝壳 item.hull_big_steel.name=大型钢壳 item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 +item.hull_small_aluminium.desc=可插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 item.igniter.name=点火器 +item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 item.industrial_magnet.name=工业磁铁 item.inf_antimatter.name=无限反物质罐 item.inf_antischrabidium.name=无限反Sa326罐 @@ -1561,17 +1828,21 @@ item.ingot_am_mix.name=反应堆级镅锭 item.ingot_am241.name=镅-241锭 item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 +item.ingot_arsenic.name=砷锭 item.ingot_asbestos.name=石棉板 +item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 +item.ingot_c4.name=一块C-4 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 +item.ingot_combine_steel.desc=*在此处插入民事保护参考* item.ingot_copper.name=工业级铜 item.ingot_daffergon.name=达夫贡锭 item.ingot_desh.name=Desh锭 @@ -1579,10 +1850,16 @@ item.ingot_dineutronium.name=双聚中子态素锭 item.ingot_dura_steel.name=高速钢锭 item.ingot_electronium.name=电素锭 item.ingot_euphemium.name=Ep锭 +item.ingot_euphemium.desc=一个非常特殊但又奇怪的元素。 item.ingot_fiberglass.name=玻璃纤维 +item.ingot_fiberglass.desc=纤维含量高,玻璃含量高。身体需要的一切。 +item.ingot_gh336.name=Gh336锭 +item.ingot_gh336.desc=??的同事。 item.ingot_graphite.name=石墨锭 item.ingot_hes.name=高浓度Sa326燃料锭 item.ingot_lanthanium.name=半稳定镧锭 +item.ingot_lanthanium.desc=“镧” +item.ingot_lanthanium.desc.P11=实际上就是镧,无论怎么说。 item.ingot_lead.name=铅锭 item.ingot_les.name=低浓度Sa326燃料锭 item.ingot_magnetized_tungsten.name=磁化钨锭 @@ -1590,43 +1867,51 @@ item.ingot_meteorite.name=陨石锭 item.ingot_meteorite_forged.name=锻造陨石锭 item.ingot_mox_fuel.name=MOX燃料锭 item.ingot_neptunium.name=镎锭 +item.ingot_neptunium.desc=那是我最喜欢的! +item.ingot_neptunium.desc.P11=哇,吓人! item.ingot_neptunium_fuel.name=白磷锭 item.ingot_niobium.name=铌锭 -item.ingot_osmiridium.name=锇锭 +item.ingot_osmiridium.name=铱锇锭 +item.ingot_pb209.name=铅-209锭 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 item.ingot_polonium.name=钋锭 item.ingot_polymer.name=聚合物锭 item.ingot_pu_mix.name=反应堆级钚锭 -item.ingot_pu238.name=钚238锭 -item.ingot_pu239.name=钚239锭 -item.ingot_pu240.name=钚240锭 +item.ingot_pu238.name=钚-238锭 +item.ingot_pu239.name=钚-239锭 +item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 item.ingot_ra226.name=镭-226锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 +item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 item.ingot_schrabidate.name=Sa酸铁锭 item.ingot_schrabidium.name=Sa326锭 item.ingot_schrabidium_fuel.name=Sa326燃料锭 item.ingot_schraranium.name=低丰度Sa326锭 +item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 item.ingot_semtex.name=塞姆汀塑胶炸药块 item.ingot_smore.name=S'more 锭 item.ingot_solinium.name=Sa327锭 -item.ingot_starmetal.name=§9星辉锭§r +item.ingot_sr90.name=锶-90锭 +item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 item.ingot_steel_dusted.name=粉末钢锭 item.ingot_tantalium.name=钽锭 +item.ingot_tantalium.desc=“钽” +item.ingot_tantalium.desc.P11=又名钽。 item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 -item.ingot_th232.name=钍232锭 +item.ingot_th232.name=钍-232锭 item.ingot_thorium_fuel.name=钍燃料锭 item.ingot_titanium.name=钛锭 item.ingot_tungsten.name=钨锭 -item.ingot_u233.name=铀233锭 -item.ingot_u235.name=铀235锭 -item.ingot_u238.name=铀238锭 +item.ingot_u233.name=铀-233锭 +item.ingot_u235.name=铀-235锭 +item.ingot_u238.name=铀-238锭 item.ingot_u238m2.name=亚稳铀238-2锭 item.ingot_unobtainium.name=难得素锭 item.ingot_uranium.name=铀锭 @@ -1641,6 +1926,7 @@ item.insert_doxium.name=掺砷Doxium插板 item.insert_du.name=贫铀插板 item.insert_era.name=反应装甲插板 item.insert_esapi.name=ESAPI插板 +item.insert_ghiorsium.name=Gh插板 item.insert_kevlar.name=凯夫拉插板 item.insert_sapi.name=SAPI插板 item.insert_polonium.name=钋插板 @@ -1665,6 +1951,19 @@ item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 +item.key_red.desc=探索另一边。 +item.key_red.desc.P11=§4e§r +item.kit_toolbox.name=工具箱 +item.kit_toolbox_empty.name=空工具箱 +item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 +item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 +item.laser_crystal_cmb.desc=反Sa326被镶嵌在CMB-Sa326合金晶格 +item.laser_crystal_cmb.name=CMB-Sa326反物质激光晶体 +item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 +item.laser_crystal_co2.name=CO2-Desh激光晶体 +item.laser_crystal_digamma.name=Digamma激光晶体 +item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 +item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -1697,6 +1996,7 @@ item.mask_piss.name=战壕面具 item.mask_rag.name=粗糙防护面罩 item.matchstick.name=火柴 item.mech_key.name=大号银钥匙 +item.mech_key.desc=它充满力量。 item.mechanism_launcher_1.name=发射机构 item.mechanism_launcher_2.name=先进发射机构 item.mechanism_revolver_1.name=转轮机构 @@ -1763,16 +2063,26 @@ item.missile_rain.name=炸弹雨 item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 item.missile_skin_camo.name=导弹外壳:迷彩 +item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 +item.missile_skin_desert.desc=看起来像沙子,尝起来像金属。 item.missile_skin_flames.name=导弹外壳:火焰 +item.missile_skin_flames.desc=不同凡响的! item.missile_skin_manly_pink.name=导弹外壳:猛男粉 +item.missile_skin_manly_pink.desc=粉色,最有男子气概的颜色。 item.missile_skin_metal.name=导弹外壳:全金属外壳 +item.missile_skin_metal.desc=金属板和金属螺栓,用金属加固。 item.missile_skin_orange_insulation.name=导弹外壳:橙色绝缘 +item.missile_skin_orange_insulation.desc=不是橙汁瓶$不要试图喝里面的东西。 item.missile_skin_sleek.name=导弹外壳:IF-R&D +item.missile_skin_sleek.desc=V字形很酷! item.missile_skin_soviet_glory.name=导弹外壳:苏联荣耀 +item.missile_skin_soviet_glory.desc=услуга перевода недоступна item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 +item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 +item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 item.missile_volcano.name=构造导弹 @@ -1827,9 +2137,9 @@ item.mp_fuselage_10_solid_sleek.name=10号弹体[固体燃料] item.mp_fuselage_10_solid_soviet_glory.name=10号弹体[固体燃料] item.mp_fuselage_10_xenon.name=10号弹体[氙] item.mp_fuselage_10_xenon_bhole.name=10号弹体[氙] -item.mp_fuselage_15_20_kerosene.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_kerosene_magnusson.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_solid.name=15号/20 弹体[固体燃料] +item.mp_fuselage_15_20_kerosene.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_kerosene_magnusson.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_solid.name=15/20号弹体[固体燃料] item.mp_fuselage_15_balefire.name=15号弹体[野火燃料] item.mp_fuselage_15_hydrogen.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen_cathedral.name=15号弹体[液氢] @@ -1931,10 +2241,12 @@ item.nuclear_waste_short_depleted_tiny.name=小撮腐化的短半衰期核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 item.nuclear_waste_vitrified_tiny.name=小撮玻璃化核废料 item.nugget.name=鸡块 +item.nugget_actinium.name=锕-227粒 item.nugget_am_mix.name=反应堆级镅粒 item.nugget_am241.name=镅-241粒 item.nugget_am242.name=镅-242粒 item.nugget_americium_fuel.name=镅燃料粒 +item.nugget_arsenic.name=砷粒 item.nugget_au198.name=金-198粒 item.nugget_australium.name=奥斯粒 item.nugget_australium_greater.name=富集奥斯粒 @@ -1942,38 +2254,48 @@ item.nugget_australium_lesser.name=贫化奥斯粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 +item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 item.nugget_desh.name=Desh粒 item.nugget_dineutronium.name=双聚中子态素粒 item.nugget_euphemium.name=Ep粒 +item.nugget_euphemium.desc=一小块粉红色的金属$它的属性仍然未知,请小心处理。 +item.nugget_gh336.name=Gh336粒 +item.nugget_gh336.desc=??的同事。 item.nugget_hes.name=高浓度Sa326燃料粒 item.nugget_lead.name=铅粒 item.nugget_les.name=低浓度Sa326燃料粒 +item.nugget_mercury_tiny.name=一小滴水银 item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 +item.nugget_mox_fuel.desc=摩西说:§l逃税。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_osmiridium.name=锇粒 +item.nugget_osmiridium.name=铱锇粒 +item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 item.nugget_polonium.name=钋粒 item.nugget_pu_mix.name=反应堆级钚粒 -item.nugget_pu238.name=钚238粒 -item.nugget_pu239.name=钚239粒 -item.nugget_pu240.name=钚240粒 +item.nugget_pu238.name=钚-238粒 +item.nugget_pu239.name=钚-239粒 +item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 item.nugget_reiium.name=魏丹粒 item.nugget_schrabidium.name=Sa326粒 item.nugget_schrabidium_fuel.name=Sa326燃料粒 item.nugget_solinium.name=Sa327粒 +item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 +item.nugget_tantalium.desc=“钽” +item.nugget_tantalium.desc.P11=又名钽。 item.nugget_technetium.name=锝-99粒 item.nugget_th232.name=钍232粒 item.nugget_thorium_fuel.name=钍燃料粒 -item.nugget_u233.name=铀233粒 -item.nugget_u235.name=铀235粒 -item.nugget_u238.name=铀238粒 +item.nugget_u233.name=铀-233粒 +item.nugget_u235.name=铀-235粒 +item.nugget_u238.name=铀-238粒 item.nugget_unobtainium.name=难得素粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 @@ -1991,8 +2313,11 @@ item.oil_detector.desc2=探测仪只会发现大片油田 item.oil_detector.bullseye=正下方发现油田! item.oil_detector.detected=附近存在油田 item.oil_detector.noOil=未发现油田 -item.oil_tar.name=煤焦油 +item.oil_tar.coal.name=煤焦油 +item.oil_tar.crude.name=焦油 +item.oil_tar.crack.name=裂化焦油 item.overfuse.name=奇异螺丝刀 +item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 @@ -2008,6 +2333,9 @@ item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 +item.part_generic.piston_electric.name=电动活塞 +item.part_generic.piston_hydraulic.name=液压活塞 +item.part_generic.piston_pneumatic.name=气动活塞 item.part_lithium.name=锂粉盒 item.part_plutonium.name=钚粉盒 item.particle_aelectron.name=正电子胶囊 @@ -2021,11 +2349,12 @@ item.particle_empty.name=空粒子胶囊 item.particle_higgs.name=希格斯玻色子胶囊 item.particle_hydrogen.name=氢离子胶囊 item.particle_lead.name=铅离子胶囊 -item.particle_lutece.name=Lutece准粒子 +item.particle_lutece.name=Lutece镥准粒子胶囊 item.particle_muon.name=μ介子胶囊 item.particle_sparkticle.name=Spark粒子胶囊 item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 +item.parts_legendary.name=传奇零件 item.peas.name=豌豆 item.pedestal_steel.name=钢底座 item.pellet_advanced.name=高级Watz性能增强剂 @@ -2033,14 +2362,16 @@ item.pellet_antimatter.name=反物质团 item.pellet_beryllium.name=铍慢化靶丸 item.pellet_buckshot.name=铅弹丸 item.pellet_canister.name=榴霰弹弹丸 -item.pellet_charged.name=电离粒子 +item.pellet_charged.name=电离粒子 item.pellet_chlorophyte.name=叶绿弹丸 item.pellet_claws.name=金属利爪 item.pellet_cluster.name=爆炸弹丸 +item.pellet_cluster.desc=用于多用途炸弹:$增加了一些额外的爆炸力! item.pellet_coal.name=致密煤 item.pellet_coolant.name=冷却液组 item.pellet_flechette.name=箭霰弹 item.pellet_gas.name=毒气筒 +item.pellet_gas.desc=用于多用途炸弹:$*咳嗽*请停止! item.pellet_hes.name=HES Watz靶丸 item.pellet_lead.name=铅反射靶丸 item.pellet_les.name=LES Watz靶丸 @@ -2049,26 +2380,59 @@ item.pellet_mes.name=MES Watz靶丸 item.pellet_meteorite.name=陨石弹丸 item.pellet_neptunium.name=镎Watz靶丸 item.pellet_rtg.name=钚238放射性同位素燃料靶丸 +item.pellet_rtg.desc=无限能量的RTG靶丸!(差不多) item.pellet_rtg_actinium.name=锕放射性同位素燃料靶丸 +item.pellet_rtg_actinium.desc= item.pellet_rtg_americium.name=镅-241放射性同位素燃料靶丸 +item.pellet_rtg_americium.desc=稀有可靠,好的老镅! item.pellet_rtg_berkelium.name=锫放射性同位素燃料靶丸 +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=钴-60放射性同位素燃料靶丸 +item.pellet_rtg_cobalt.desc=不是最好的RTG,但对伽马辐射很好! +item.pellet_rtg_depleted.bismuth.name=枯竭铋放射性同位素燃料靶丸 +item.pellet_rtg_depleted.lead.name=枯竭铅放射性同位素燃料靶丸 +item.pellet_rtg_depleted.neptunium.name=枯竭镎放射性同位素燃料靶丸 +item.pellet_rtg_depleted.mercury.name=枯竭汞放射性同位素燃料靶丸 +item.pellet_rtg_depleted.nickel.name=枯竭镍放射性同位素燃料靶丸 +item.pellet_rtg_depleted.zirconium.name=枯竭锆放射性同位素燃料靶丸 +item.pellet_rtg_lead.name=铅-209 放射性同位素燃料靶丸 +item.pellet_rtg_lead.desc=接触会导致立即死亡。 item.pellet_rtg_gold.name=金-198放射性同位素燃料靶丸 +item.pellet_rtg_gold.desc=由稀有的、高度不稳定的金同位素制成。 item.pellet_rtg_polonium.name=钋210放射性同位素燃料靶丸 +item.pellet_rtg_polonium.desc=更多粉末状RTG靶丸,由最好的钋制成! item.pellet_rtg_strontium.name=锶-90放射性同位素燃料靶丸 +item.pellet_rtg_strontium.desc= +item.pellet_rtg_radium.name=镭-226放射性同位素燃料靶丸 +item.pellet_rtg_radium.desc=伟大的启动靶丸,来自全天然镭! item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 +item.pellet_rtg_weak.desc=更便宜更弱的靶丸,含有更多的铀238! item.pellet_schrabidium.name=纯Sa326Watz靶丸 item.photo_panel.name=光伏板 item.pile_rod_boron.name=芝加哥反应堆 控制棒 +item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换 +item.pile_rod_detector.name=芝加哥反应堆控制/探测棒 +item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量 +item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒 +item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯 item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 -item.pile_rod_source.name=芝加哥反应堆 Ra226Be中子源 +item.pile_rod_plutonium.desc=§d[中子源棒] +item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒 +item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239 +item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 +item.pile_rod_source.desc=§d[中子源棒] item.pile_rod_uranium.name=芝加哥反应堆 铀棒 +item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本 item.pill_iodine.name=碘丸 item.pin.name=发夹 +item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 item.pipes_steel.name=钢管 item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 item.pirfenidone.name=吡咯菲酮 item.piston_selenium.name=星型发动机活塞 item.plan_c.name=C计划 +item.plant_item.rope.name=麻绳 +item.plant_item.tobacco.name=烟叶 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -2077,12 +2441,21 @@ item.plate_armor_fau.name=Fau装甲板 item.plate_armor_hev.name=反应装甲板 item.plate_armor_lunar.name=月球镀层 item.plate_armor_titanium.name=钛装甲板 +item.plate_bismuth.name=铋复合板 +item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓。 item.plate_combine_steel.name=CMB钢板 item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 item.plate_desh.name=Desh复合板 item.plate_dineutronium.name=双聚中子态素复合板 item.plate_euphemium.name=Ep复合板 +item.plate_fuel_mox.name=MOX 板状燃料 +item.plate_fuel_pu238be.name=钚238-铍 板状燃料 +item.plate_fuel_pu239.name=高浓度钚-239 板状燃料 +item.plate_fuel_ra226be.name=镭226-铍 板状燃料 +item.plate_fuel_sa326.name=高浓度Sa326 板状燃料 +item.plate_fuel_u233.name=高浓度铀-233 板状燃料 +item.plate_fuel_u235.name=高浓度铀-235 板状燃料 item.plate_gold.name=金板 item.plate_iron.name=铁板 item.plate_kevlar.name=凯夫拉陶瓷复合材料 @@ -2100,12 +2473,15 @@ item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 item.powder_australium.name=奥斯粉 +item.powder_bakelite.name=电木粉 item.powder_balefire.name=热核灰烬 item.powder_beryllium.name=铍粉 +item.powder_borax.name=硼砂 item.powder_boron.name=硼粉 item.powder_boron_tiny.name=小撮硼粉 item.powder_bromine.name=溴粉 @@ -2134,12 +2510,14 @@ item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 item.powder_euphemium.name=Ep粉 +item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fire.name=火焰粉 +item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! item.powder_gold.name=金粉 item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 item.powder_ice.name=冷冻粉 -item.powder_impure_osmiridium.name=不纯锇粉 +item.powder_impure_osmiridium.name=不纯铱锇粉 item.powder_iodine.name=碘粉 item.powder_iron.name=铁粉 item.powder_lanthanium.name=镧粉 @@ -2163,6 +2541,7 @@ item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 +item.powder_poison.desc=用于多用途炸弹:警告:有毒! item.powder_polonium.name=钋粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 @@ -2174,10 +2553,14 @@ item.powder_schrabidate.name=Sa酸铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 item.powder_spark_mix.name=Spark闪闪奥术混合物 +item.powder_sr90.name=锶-90粉 +item.powder_sr90_tiny.name=小撮锶-90粉末 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 +item.powder_tantalium.desc=“钽” +item.powder_tantalium.desc.P11=又名钽。 item.powder_tcalloy.name=锝-钢粉 item.powder_tektite.name=熔融石粉 item.powder_tennessine.name=Ts粉 @@ -2193,6 +2576,7 @@ item.powder_xe135.name=氙-135粉 item.powder_xe135_tiny.name=小撮氙-135粉 item.powder_yellowcake.name=黄饼 item.powder_zirconium.name=锆粉 +item.power_net_tool.name=电缆网络分析工具 item.primer_357.name=.357马格南底火[x24] item.primer_44.name=.44马格南底火[x24] item.primer_50.name=大口径底火[x12] @@ -2213,6 +2597,7 @@ item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 +item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 @@ -2239,12 +2624,13 @@ item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料 item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB Pu-241RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 item.rbmk_lid.name=RBMK反应堆覆盖层 item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r +item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 item.rbmk_pellet_hea241.name=HEA-241 高浓缩度镅-241料芯块 item.rbmk_pellet_hea242.name=HEA-242 高浓缩度镅-242燃料芯块 item.rbmk_pellet_heaus.name=HEAus 高浓缩度奥斯燃料芯块 @@ -2295,6 +2681,60 @@ item.robes_helmet.name=休闲兜帽 item.robes_legs.name=休闲裤 item.robes_plate.name=休闲毛衣 item.rocket_fuel.name=固体燃料[火箭推进剂] +item.rod_empty.name=空燃料棒 +item.rod.lithium.name=锂棒 +item.rod.tritium.name=氚棒 +item.rod.co.name=钴棒 +item.rod.co60.name=钴-60棒 +item.rod.ra226.name=镭-226棒 +item.rod.ac227.name=锕-227棒 +item.rod.th232.name=钍-232棒 +item.rod.thf.name=钍燃料棒 +item.rod.u235.name=铀-235棒 +item.rod.np237.name=镎-237棒 +item.rod.u238.name=铀-238棒 +item.rod.pu238.name=钚-238棒 +item.rod.pu239.name=钚-239棒 +item.rod.rgp.name=反应堆级钚棒 +item.rod.waste.name=核废料棒 +item.rod.lead.name=铅棒 +item.rod.uranium.name=铀棒 +item.rod_dual_empty.name=空双联燃料棒 +item.rod_dual.lithium.name=双联锂棒 +item.rod_dual.tritium.name=氚双棒 +item.rod_dual.co.name=双联钴棒 +item.rod_dual.co60.name=双联钴-60棒 +item.rod_dual.ra226.name=双联镭-226棒 +item.rod_dual.ac227.name=双联锕-227棒 +item.rod_dual.th232.name=双联钍-232棒 +item.rod_dual.thf.name=双联钍燃料棒 +item.rod_dual.u235.name=双联铀-235棒 +item.rod_dual.np237.name=双联镎-237棒 +item.rod_dual.u238.name=双联铀-238棒 +item.rod_dual.pu238.name=双联钚-238棒 +item.rod_dual.pu239.name=双联钚-239棒 +item.rod_dual.rgp.name=双联反应堆级钚棒 +item.rod_dual.waste.name=双联核废料棒 +item.rod_dual.lead.name=双联铅棒 +item.rod_dual.uranium.name=双联铀棒 +item.rod_quad_empty.name=空四联燃料棒 +item.rod_quad.lithium.name=四联锂棒 +item.rod_quad.tritium.name=四联氚棒 +item.rod_quad.co.name=四联钴棒 +item.rod_quad.co60.name=四联钴-60棒 +item.rod_quad.ra226.name=四联镭-226棒 +item.rod_quad.ac227.name=四联锕-227棒 +item.rod_quad.th232.name=四联钍-232棒 +item.rod_quad.thf.name=四联钍燃料棒 +item.rod_quad.u235.name=四联铀-235棒 +item.rod_quad.np237.name=四联镎-237棒 +item.rod_quad.u238.name=四联铀-238棒 +item.rod_quad.pu238.name=四联钚-238棒 +item.rod_quad.pu239.name=四联钚-239棒 +item.rod_quad.rgp.name=四联反应堆级钚棒 +item.rod_quad.waste.name=四联核废料棒 +item.rod_quad.lead.name=四联铅棒 +item.rod_quad.uranium.name=四联铀棒 item.rod_australium.name=奥斯棒 item.rod_balefire.name=野火燃料棒 item.rod_balefire_blazing.name=炽热的野火燃料棒 @@ -2303,7 +2743,6 @@ item.rod_daffergon.name=达夫贡棒 item.rod_dual_balefire.name=双联野火燃料棒 item.rod_dual_balefire_blazing.name=炽热的双联野火燃料棒 item.rod_dual_coolant.name=双联燃料棒[冷却液] -item.rod_dual_empty.name=空双联燃料棒 item.rod_dual_lead.name=双联铅棒 item.rod_dual_lithium.name=双联锂棒 item.rod_dual_mox_fuel.name=核反应堆 双联MOX燃料棒 @@ -2313,26 +2752,25 @@ item.rod_dual_plutonium.name=双联钚棒 item.rod_dual_plutonium_fuel.name=核反应堆 双联钚燃料棒 item.rod_dual_plutonium_fuel_depleted.name=核反应堆 双联枯竭钚燃料棒 item.rod_dual_polonium.name=双联钋棒 -item.rod_dual_pu238.name=双联钚238燃料棒 -item.rod_dual_pu239.name=双联钚239燃料棒 -item.rod_dual_pu240.name=双联钚240燃料棒 +item.rod_dual_pu238.name=双联钚-238燃料棒 +item.rod_dual_pu239.name=双联钚-239燃料棒 +item.rod_dual_pu240.name=双联钚-240燃料棒 item.rod_dual_schrabidium.name=双联Sa326燃料棒 item.rod_dual_schrabidium_fuel.name=核反应堆 双联Sa326燃料棒 item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326燃料棒 item.rod_dual_solinium.name=双联Sa327燃料棒 -item.rod_dual_th232.name=双联钍232燃料棒 +item.rod_dual_th232.name=双联钍-232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀233燃料棒 -item.rod_dual_u235.name=双联铀235燃料棒 -item.rod_dual_u238.name=双联铀238燃料棒 +item.rod_dual_u233.name=双联铀-233燃料棒 +item.rod_dual_u235.name=双联铀-235燃料棒 +item.rod_dual_u238.name=双联铀-238燃料棒 item.rod_dual_uranium.name=双联铀棒 item.rod_dual_uranium_fuel.name=核反应堆 双联铀燃料棒 item.rod_dual_uranium_fuel_depleted.name=核反应堆 双联枯竭铀燃料棒 item.rod_dual_waste.name=双联核废料棒 item.rod_dual_water.name=双联燃料棒[水] -item.rod_empty.name=空燃料棒 item.rod_euphemium.name=Ep棒 item.rod_lead.name=铅棒 item.rod_lithium.name=锂棒 @@ -2344,13 +2782,12 @@ item.rod_plutonium.name=钚棒 item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 item.rod_polonium.name=钋棒 -item.rod_pu238.name=钚238燃料棒 -item.rod_pu239.name=钚239燃料棒 -item.rod_pu240.name=钚240燃料棒 +item.rod_pu238.name=钚-238燃料棒 +item.rod_pu239.name=钚-239燃料棒 +item.rod_pu240.name=钚-240燃料棒 item.rod_quad_balefire.name=四联野火燃料棒 item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] -item.rod_quad_empty.name=空四联燃料棒 item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 item.rod_quad_lithium.name=四联锂棒 @@ -2361,20 +2798,20 @@ item.rod_quad_plutonium.name=四联钚棒 item.rod_quad_plutonium_fuel.name=四联钚燃料棒 item.rod_quad_plutonium_fuel_depleted.name=四联枯竭钚燃料棒 item.rod_quad_polonium.name=四联钋棒 -item.rod_quad_pu238.name=四联钚238燃料棒 -item.rod_quad_pu239.name=四联钚239燃料棒 -item.rod_quad_pu240.name=四联钚240燃料棒 +item.rod_quad_pu238.name=四联钚-238燃料棒 +item.rod_quad_pu239.name=四联钚-239燃料棒 +item.rod_quad_pu240.name=四联钚-240燃料棒 item.rod_quad_schrabidium.name=四联Sa326燃料棒 item.rod_quad_schrabidium_fuel.name=核反应堆 四联Sa326燃料棒 item.rod_quad_schrabidium_fuel_depleted.name=核反应堆 四联枯竭Sa326燃料棒 item.rod_quad_solinium.name=四联Sa327燃料棒 -item.rod_quad_th232.name=四联钍232燃料棒 +item.rod_quad_th232.name=四联钍-232燃料棒 item.rod_quad_thorium_fuel.name=核反应堆 四联钍燃料棒 item.rod_quad_thorium_fuel_depleted.name=四联枯竭钍燃料棒 item.rod_quad_tritium.name=四联氚燃料棒 -item.rod_quad_u233.name=四联铀233燃料棒 -item.rod_quad_u235.name=四联铀235燃料棒 -item.rod_quad_u238.name=四联铀238燃料棒 +item.rod_quad_u233.name=四联铀-233燃料棒 +item.rod_quad_u235.name=四联铀-235燃料棒 +item.rod_quad_u238.name=四联铀-238燃料棒 item.rod_quad_uranium.name=四联铀棒 item.rod_quad_uranium_fuel.name=核反应堆 四联铀燃料棒 item.rod_quad_uranium_fuel_depleted.name=四联枯竭铀燃料棒 @@ -2385,13 +2822,13 @@ item.rod_schrabidium.name=Sa326燃料棒 item.rod_schrabidium_fuel.name=Sa326燃料棒 item.rod_schrabidium_fuel_depleted.name=核反应堆 枯竭Sa326燃料棒 item.rod_solinium.name=Sa327燃料棒 -item.rod_th232.name=钍232燃料棒 +item.rod_th232.name=钍-232燃料棒 item.rod_thorium_fuel.name=钍燃料棒 item.rod_thorium_fuel_depleted.name=核反应堆 枯竭钍燃料棒 item.rod_tritium.name=氚燃料棒 -item.rod_u233.name=铀233燃料棒 -item.rod_u235.name=铀235燃料棒 -item.rod_u238.name=铀238燃料棒 +item.rod_u233.name=铀-233燃料棒 +item.rod_u235.name=铀-235燃料棒 +item.rod_u238.name=铀-238燃料棒 item.rod_unobtainium.name=难得素棒 item.rod_uranium.name=铀棒 item.rod_uranium_fuel.name=核反应堆 铀燃料棒 @@ -2421,13 +2858,19 @@ item.rod_zirnox_u233_fuel_depleted.name=锆诺克斯 枯竭铀-233燃料棒 item.rod_zirnox_u235_fuel_depleted.name=锆诺克斯 枯竭铀-235燃料棒 item.rod_zirnox_les_fuel_depleted.name=锆诺克斯 枯竭LES低浓度Sa326燃料棒 item.rotor_steel.name=大型钢转子 +item.rpa_boots.name=动力装甲 靴子 +item.rpa_helmet.name=动力装甲 头盔 +item.rpa_legs.name=动力护甲 护腿 +item.rpa_plate.name=动力装甲 胸甲 item.rtg_unit.name=放射性同位素单元 +item.rubber_gloves.name=厚橡胶手套 item.rune_blank.name=空白催化剂基质 item.rune_dagaz.name=平衡催化剂基质 item.rune_hagalaz.name=粗催化剂基质 item.rune_isa.name=冷却催化剂基质 item.rune_jera.name=增殖催化剂基质 item.rune_thurisaz.name=添加剂催化剂基质 +item.safety_fuse.name=安全保险丝 item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 item.sat_coord.name=卫星指示器 @@ -2460,7 +2903,11 @@ item.schrabidium_shovel.name=Sa326锹 item.schrabidium_sword.name=Sa326剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 +item.scrap_oil.name=油性废料 +item.scrap_plastic.name=塑料废料 item.screwdriver.name=螺丝刀 +item.screwdriver.desc=可以用来代替保险丝…… +item.screwdriver_desh.name=Desh螺丝刀 item.scrumpy.name=一瓶烈性苹果酒 item.security_boots.name=防护靴子 item.security_helmet.name=防护头盔 @@ -2486,11 +2933,14 @@ item.siox.name=SiOX抗癌药物 item.siren_track.name=警报声轨 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 +item.solid_fuel_presto.name=Presto固体燃料 +item.solid_fuel_presto_triplet.name=增强Presto固体燃料 item.solinium_core.name=半稳定Sa327核心 item.solinium_igniter.name=Sa327脉冲点火器 item.solinium_kit.name=蔚蓝洗礼套件 item.solinium_propellant.name=Sa327压缩装药 item.sopsign.name=Sop标志战斧 +item.spawn_duck.name=Golden Egg item.spawn_ufo.name=火星入侵者飞船 item.spawn_worm.name=机械蠕虫 item.sphere_steel.name=钢球 @@ -2539,6 +2989,10 @@ item.starmetal_shovel.name=星辉锹 item.starmetal_sword.name=星辉剑 item.static_sandwich.name=TV三明治 item.stealth_boy.name=隐形装置 +item.steamsuit_boots.name=蒸汽动力靴子 +item.steamsuit_helmet.name=蒸汽动力呼吸器头盔 +item.steamsuit_legs.name=蒸汽动力护腿 +item.steamsuit_plate.name=蒸汽动力胸甲 item.steel_axe.name=钢斧 item.steel_boots.name=钢靴子 item.steel_helmet.name=钢头盔 @@ -2548,6 +3002,10 @@ item.steel_pickaxe.name=钢镐 item.steel_plate.name=钢胸甲 item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 +item.stick_c4.name=C-4炸药棒 +item.stick_dynamite.name=炸药棒 +item.stick_semtex.name=塞姆汀塑胶炸药棒 +item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 @@ -2609,6 +3067,7 @@ item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 +item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! item.tsar_core.name=沙皇炸弹核心 item.tsar_kit.name=沙皇炸弹 套件 item.turbine_titanium.name=钛汽轮转子 @@ -2627,6 +3086,7 @@ item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 item.ullapool_caber.name=阿勒浦长木杆 item.undefined.name=形态未定义物质 +item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 item.upgrade_afterburn_2.name=二级粉色机器升级 item.upgrade_afterburn_3.name=三级粉色机器升级 @@ -2635,9 +3095,13 @@ item.upgrade_crystallizer.name=采矿激光升级-自动结晶 item.upgrade_effect_1.name=一级绿色机器升级 item.upgrade_effect_2.name=二级绿色机器升级 item.upgrade_effect_3.name=三级绿色机器升级 +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III item.upgrade_fortune_1.name=一级紫色机器升级 item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 +item.upgrade_gc_speed.name=气体离心机超频升级 item.upgrade_health.name=粉色力场发生器升级 item.upgrade_nullifier.name=采矿激光升级-自动销毁 item.upgrade_overdrive_1.name=一级超速传动机器升级 @@ -2653,6 +3117,9 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 +item.upgrade_stack_1.name=堆栈弹出升级Mk.I +item.upgrade_stack_2.name=堆栈弹出升级Mk.II +item.upgrade_stack_3.name=堆栈弹出升级Mk.III item.upgrade_template.name=机器升级模板 item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 @@ -2678,22 +3145,22 @@ item.warhead_thermo_endo.name=吸热弹头 item.warhead_thermo_exo.name=放热弹头 item.warhead_volcano.name=构造弹头 item.waste_mox.name=枯竭MOX燃料 -item.waste_mox_hot.name=枯竭MOX燃料[热] item.waste_natural_uranium.name=枯竭天然铀燃料 -item.waste_natural_uranium_hot.name=枯竭天然铀燃料[热] +item.waste_plate_mox.name=枯竭MOX 板状燃料 +item.waste_plate_pu238be.name=枯竭钚238-铍 板状燃料 +item.waste_plate_pu239.name=枯竭高浓度钚-239 板状燃料 +item.waste_plate_ra226be.name=枯竭镭226-铍 板状燃料 +item.waste_plate_sa326.name=枯竭高浓度Sa326 板状燃料 +item.waste_plate_u233.name=枯竭高浓度铀-233 板状燃料 +item.waste_plate_u235.name=枯竭高浓度铀-235 板状燃料 item.waste_plutonium.name=枯竭钚燃料 -item.waste_plutonium_hot.name=枯竭钚燃料[热] item.waste_schrabidium.name=枯竭Sa326燃料 -item.waste_schrabidium_hot.name=枯竭Sa326燃料[热] item.waste_thorium.name=枯竭钍燃料 -item.waste_thorium_hot.name=枯竭钍燃料[热] item.waste_u235.name=枯竭铀-235燃料 -item.waste_u235_hot.name=枯竭铀-235燃料[热] item.waste_u233.name=枯竭铀-233燃料 -item.waste_u233_hot.name=枯竭铀-233燃料[热] item.waste_uranium.name=枯竭铀燃料 -item.waste_uranium_hot.name=枯竭铀燃料[热] item.watch.name=破旧怀表 +item.watch.desc=一块蓝色的小怀表$玻璃上有一些裂缝,还有一些碎片不见了$指针定格在了2点34分。 item.weapon_bat.name=板球棒 item.weapon_bat_nail.name=板上钉钉 item.weapon_golf_club.name=黑手党快乐杆 @@ -2730,6 +3197,7 @@ itemGroup.tabTemplate=HBM 模板 itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! +potion.hbm_death=Heavy Mutation potion.hbm_lead=铅中毒 potion.hbm_mutation=变异 potion.hbm_phosphorus=磷烧伤 @@ -2759,6 +3227,7 @@ rbmk.rod.depletion=燃料消耗: %s rbmk.rod.xenon=氙元素堆积程度: %s rbmk.rod.coreTemp=核心温度: %s rbmk.rod.skinTemp=表面温度: %s / %s +soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 @@ -2775,6 +3244,7 @@ tile.anvil_iron.name=铁砧 tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 +tile.anvil_osmiridium.name=铱锇合金砧 tile.anvil_schrabidate.name=Sa-铁合金砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 @@ -2809,9 +3279,11 @@ tile.block_advanced_alloy.name=高级合金块 tile.block_aluminium.name=铝块 tile.block_asbestos.name=石棉块 tile.block_australium.name=奥斯块 +tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 +tile.block_c4.name=C-4块 tile.block_cap_fritz.name=弗里茨瓶盖方块 tile.block_cap_korl.name=Korl瓶盖方块 tile.block_cap_nuka.name=核子可乐瓶盖方块 @@ -2839,11 +3311,14 @@ tile.block_fluorite.name=氟石块 tile.block_foam.name=泡沫 tile.block_insulator.name=绝缘卷 tile.block_graphite.name=石墨块 +tile.block_graphite_detector.name=反应堆中子探测棒 tile.block_graphite_drilled.name=钻孔石墨 tile.block_graphite_fuel.name=反应堆燃料 +tile.block_graphite_lithium.name=反应堆锂燃料 tile.block_graphite_plutonium.name=反应堆燃料(增殖) tile.block_graphite_rod.name=反应堆控制棒 tile.block_graphite_source.name=反应堆中子源 +tile.block_graphite_tritium.name=反应堆锂燃料(增殖) tile.block_lead.name=铅块 tile.block_lanthanium.name=镧块 tile.block_lithium.name=锂块 @@ -2861,14 +3336,16 @@ tile.block_niobium.name=铌块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 tile.block_polonium.name=钋块 +tile.block_polymer.name=聚合物块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_pu238.name=钚238块 -tile.block_pu239.name=钚239块 -tile.block_pu240.name=钚240块 +tile.block_pu238.name=钚-238块 +tile.block_pu239.name=钚-239块 +tile.block_pu240.name=钚-240块 tile.block_ra226.name=镭-226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 +tile.block_rubber.name=橡胶块 tile.block_schrabidate.name=Sa酸铁块 tile.block_schrabidium.name=Sa326块 tile.block_schrabidium_cluster.name=Sa326团 @@ -2889,8 +3366,8 @@ tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 tile.block_u233.name=铀233块 -tile.block_u235.name=铀U235块 -tile.block_u238.name=铀U238块 +tile.block_u235.name=铀235块 +tile.block_u238.name=铀238块 tile.block_unobtainium.name=难得素块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 @@ -2933,11 +3410,20 @@ tile.brick_light.name=轻质砖块 tile.brick_obsidian.name=黑曜石砖块 tile.broadcaster_pc.name=腐败广播 tile.burning_earth.name=燃烧草地 +tile.c4.name=C-4 +tile.cable_detector.name=红石电源开关 +tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 +tile.charge_c4.name=炸药包 +tile.charge_dynamite.name=定时炸弹 +tile.charge_miner.name=定时采矿炸药 +tile.charge_semtex.name=Semtex采矿炸药 +tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 +tile.cluster_copper.name=铜矿簇 tile.cluster_depth_iron.name=深层铁矿簇 tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 @@ -2966,11 +3452,21 @@ tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 tile.concrete_pillar.name=钢筋混凝土柱 tile.concrete_smooth.name=混凝土 +tile.concrete_super.name=über混凝土 +tile.concrete_super_broken.name=发霉的碎片 +tile.conveyor.name=输送带 +tile.conveyor_chute.name=输送带滑槽 +tile.conveyor_double.name=双轨道输送带 +tile.conveyor_lift.name=垂直输送带 +tile.conveyor_triple.name=三轨道输送带 tile.corium_block.name=堆芯熔融物 +tile.crane_extractor.name=输送带提取器 +tile.crane_inserter.name=输送带导入器 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 tile.crate_ammo.name=星辉补给箱 tile.crate_can.name=罐头补给箱 +tile.crate_desh.name=Desh板条箱 tile.crate_iron.name=铁箱 tile.crate_jungle.name=硫砷钢箱 tile.crate_lead.name=危险品补给箱 @@ -2985,6 +3481,7 @@ tile.crystal_virus.name=黑水晶 tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 +tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -3039,6 +3536,7 @@ tile.ducrete_smooth.name=高密度贫铀混凝土 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] tile.dungeon_chain.name=金属链 +tile.dynamite.name=炸药 tile.emp_bomb.name=EMP炸弹 tile.factory_advanced_conductor.name=高级工厂电力端口 tile.factory_advanced_core.name=高级工厂核心组件 @@ -3058,6 +3556,7 @@ tile.fireworks.color=颜色: %s tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 tile.fluid_duct.name=通用流体管道 +tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.foam_layer.name=泡沫层 tile.fraction_spacer.name=分馏塔分隔器 tile.frozen_dirt.name=冰冻土 @@ -3148,12 +3647,15 @@ tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 tile.launch_pad.name=导弹发射台 tile.launch_table.name=大型发射台 +tile.leaves_layer.name=落叶 tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 tile.machine_assembler.name=装配机 +tile.machine_assemfac.name=装配厂 +tile.machine_autocrafter.name=自动工作台 tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -3163,6 +3665,7 @@ tile.machine_boiler_off.name=锅炉 tile.machine_boiler_on.name=锅炉 tile.machine_catalytic_cracker.name=催化裂化塔 tile.machine_centrifuge.name=离心机 +tile.machine_chemfac.name=Chemical Factory tile.machine_chemplant.name=化工厂 tile.machine_chungus.name=“利维坦”巨型汽轮机 tile.machine_coal_off.name=火力发电机 @@ -3187,6 +3690,7 @@ tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 tile.machine_epress.name=电动锻压机 +tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 tile.machine_flare.name=高架火炬 tile.machine_fluidtank.name=储罐 @@ -3199,6 +3703,7 @@ tile.machine_geo.name=地热发电机 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工业汽轮机 +tile.machine_liquefactor.name=工业液化机 tile.machine_lithium_battery.name=锂蓄电池 tile.machine_microwave.name=微波炉 tile.machine_mining_laser.name=采矿激光 @@ -3213,8 +3718,8 @@ tile.machine_puf6_tank.name=六氟化钚储罐 tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 +tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_on.name=增殖反应堆 tile.machine_reactor_small.name=核反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] @@ -3236,6 +3741,7 @@ tile.machine_shredder.name=粉碎机 tile.machine_silex.name=激光同位素分离室 tile.machine_siren.name=警报器 tile.machine_solar_boiler.name=太阳能锅炉 +tile.machine_solidifier.name=工业固化机 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] tile.machine_storage_drum.name=核废料处理桶 @@ -3254,6 +3760,7 @@ tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 +tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 @@ -3286,6 +3793,7 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 +tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 @@ -3299,6 +3807,7 @@ tile.ore_cobalt.name=钴矿石 tile.ore_coltan.name=钶钽铁矿 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 +tile.ore_depth_borax.name=深层硼砂矿 tile.ore_depth_cinnebar.name=深层朱砂矿石 tile.ore_depth_nether_neodymium.name=深层钕矿石 tile.ore_depth_zirconium.name=深层锆矿石 @@ -3339,6 +3848,7 @@ tile.ore_niter.name=硝石矿石 tile.ore_oil.name=油岩 tile.ore_oil_empty.name=空油岩 tile.ore_oil_sand.name=沥青砂 +tile.ore_random.name=%s Ore tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 tile.ore_schrabidium.name=Sa326矿石 @@ -3358,10 +3868,15 @@ tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 +tile.plant_flower.foxglove.name=毛地黄 +tile.plant_flower.nightshade.name=致命茄 +tile.plant_flower.tobacco.name=烟草厂 +tile.plant_flower.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 +tile.press_preheater.name=锻压机压力预热器 tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 @@ -3370,6 +3885,8 @@ tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 +tile.rail_narrow.name=窄轨距轨道 +tile.rail_wood.name=木制轨道 tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 tile.rbmk_blank.name=RBMK反应堆结构柱 tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 @@ -3379,6 +3896,8 @@ tile.rbmk_control.name=RBMK反应堆控制棒 tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 tile.rbmk_control_mod.name= RBMK反应堆慢化控制棒 tile.rbmk_crane_console.name=RBMK起重机控制台 +tile.rbmk_heater.name=RBMK流体加热器 +tile.rbmk_heatex.name=RBMK换热器 tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 tile.rbmk_outgasser.name=RBMK反应堆辐照通道 @@ -3399,8 +3918,10 @@ tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 +tile.red_cable_classic.name=紫铜电缆(经典型) tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 +tile.red_pylon_large.name=大型输电塔 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 @@ -3441,10 +3962,15 @@ tile.sellafield_3.name=灼热的放射性熔融凝固物 tile.sellafield_4.name=地狱般的放射性熔融凝固物 tile.sellafield_core.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 +tile.semtex.name=塞姆汀塑胶炸药 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.stalactite.asbestos.name=石棉钟乳石 +tile.stalactite.sulfur.name=含硫钟乳石 +tile.stalagmite.asbestos.name=石棉石笋 +tile.stalagmite.sulfur.name=含硫石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 @@ -3452,10 +3978,13 @@ tile.steel_poles.name=钢杆 tile.steel_roof.name=钢天花顶 tile.steel_scaffold.name=钢脚手架 tile.steel_wall.name=钢墙 +tile.stone_cracked.name=破碎的石头 tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 +tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.sulfur.name=硫磺石 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -3463,6 +3992,7 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 +tile.substation.name=变电站 tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 @@ -3474,7 +4004,9 @@ tile.therm_exo.name=放热炸弹 tile.tile_lab.name=实验室瓷砖 tile.tile_lab_broken.name=破损实验室瓷砖 tile.tile_lab_cracked.name=开裂实验室瓷砖 +tile.tnt_ntm.name=货真价实的TNT tile.toxic_block.name=绿色软泥 +tile.transition_seal.name=巨型安全门 tile.turret_cheapo.name=奇普-加特林哨兵 tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” tile.turret_cwis.name=Mk-15“密集阵”近防系统 @@ -3516,9 +4048,9 @@ tile.watz_element.name=Watz反应室 tile.watz_end.name=Watz反应堆稳定元件 tile.watz_hatch.name=Watz反应堆端口 tile.yellow_barrel.name=核废料桶 +tile.zirnox_destroyed.name=损毁的ZINROX trait.asbestos=石棉 trait.blinding=致盲 -trait.breeding=可在增殖反应堆中工作 %s 次 trait.coal=煤尘 trait.digamma=迪伽马辐射 trait.drop=掉落物危险 @@ -3578,11 +4110,24 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 +wavelengths.name.ir=红外线 +wavelengths.name.visible=可见光 +wavelengths.name.uv=紫外线 +wavelengths.name.gamma=伽马射线 +wavelengths.name.drx=迪伽玛 +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=100nm-400nm +wavelengths.waveRange.gamma=<100pm +wavelengths.waveRange.drx=1916169普朗克长度 weapon.ability.beheader=斩首 +weapon.ability.bobble=收藏家之运 weapon.ability.chainsaw=痛苦面"锯" weapon.ability.fire=燃烧 weapon.ability.radiation=辐射 weapon.ability.phosphorus=白磷刀刃 weapon.ability.stun=震撼 weapon.ability.vampire=吸血 +hadron.error=错误! +container.reactor=增殖反应堆 death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/armor/bnuuy.obj b/src/main/resources/assets/hbm/models/armor/bnuuy.obj new file mode 100644 index 000000000..5e4272c5f --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/bnuuy.obj @@ -0,0 +1,4153 @@ +# Blender v2.79 (sub 0) OBJ File: 'OOOOOW.blend' +# www.blender.org +o RightLeg +v -3.484292 16.187889 -2.138402 +v -3.221341 16.574892 -2.693598 +v -3.221341 16.344923 -2.138402 +v -3.484292 16.463854 -2.804636 +v -3.221342 17.130089 -2.923568 +v -3.484293 17.130089 -3.080601 +v -3.221342 17.685284 -2.693598 +v -3.484293 17.796324 -2.804637 +v -3.221342 17.915255 -2.138402 +v -3.484293 18.072287 -2.138402 +v -3.221341 17.685284 -1.583206 +v -3.484293 17.796324 -1.472167 +v -3.221341 17.130089 -1.353237 +v -3.484293 17.130089 -1.196203 +v -3.484292 16.463854 -1.472167 +v -3.221340 16.574892 -1.583206 +v -0.410679 17.130089 -1.196205 +v -0.410679 16.463854 -1.472168 +v -0.410681 17.796324 -2.804638 +v -0.673631 16.574894 -1.583207 +v -0.410680 16.187891 -2.138402 +v -0.673631 16.344923 -2.138402 +v -0.673630 17.130089 -1.353238 +v -0.673632 17.685286 -1.583207 +v -0.410680 17.796324 -1.472168 +v -0.410681 18.072289 -2.138403 +v -0.673632 17.915255 -2.138402 +v -0.673632 17.685286 -2.693599 +v -0.673631 17.130089 -2.923568 +v -0.410680 17.130089 -3.080602 +v -0.673631 16.574894 -2.693599 +v -0.410680 16.463854 -2.804637 +v -2.584136 23.893938 -2.775110 +v -1.259086 17.076845 -2.775109 +v -2.584134 17.076845 -2.775109 +v -3.051306 21.491409 -1.833182 +v -3.051305 17.642982 -2.479549 +v -3.051305 17.891409 -1.833182 +v -0.791916 21.491411 -1.833183 +v -0.791915 17.642982 -2.479549 +v -0.791916 22.492836 -2.479551 +v -1.259087 23.893938 -2.775111 +v -3.051307 22.492836 -2.479550 +v -0.791915 17.891409 -1.833182 +vt 0.333333 1.000000 +vt 0.277778 0.976744 +vt 0.333333 0.976744 +vt 0.277778 1.000000 +vt 0.222222 0.976744 +vt 0.222222 1.000000 +vt 0.166667 0.976744 +vt 0.166667 1.000000 +vt 0.111111 0.976744 +vt 0.111111 1.000000 +vt 0.055556 0.976744 +vt 0.055556 1.000000 +vt 0.000000 0.976744 +vt 0.065440 0.765336 +vt 0.001821 0.637956 +vt 0.155411 0.585194 +vt 0.444444 0.976744 +vt 0.388889 1.000000 +vt 0.388889 0.976744 +vt 0.155411 0.585578 +vt 0.219031 0.638340 +vt 0.001821 0.712958 +vt 0.388889 0.790698 +vt 0.333333 0.767442 +vt 0.388889 0.767442 +vt 0.333333 0.790698 +vt 0.444444 0.790698 +vt 0.444444 0.767442 +vt 0.055556 0.790698 +vt 0.000000 0.767442 +vt 0.055556 0.767442 +vt 0.000000 0.790698 +vt 0.111111 0.767442 +vt 0.111111 0.790698 +vt 0.166667 0.790698 +vt 0.166667 0.767442 +vt 0.222222 0.790698 +vt 0.222222 0.767442 +vt 0.277778 0.790698 +vt 0.277778 0.767442 +vt 0.138889 0.302326 +vt 0.222222 0.581395 +vt 0.138889 0.581395 +vt 0.083333 0.418605 +vt 0.111111 0.558140 +vt 0.083333 0.558140 +vt 0.277778 0.418605 +vt 0.250000 0.558140 +vt 0.250000 0.372093 +vt 0.222222 0.302326 +vt 0.111111 0.372093 +vt 0.000000 1.000000 +vt 0.219031 0.637956 +vt 0.219031 0.712574 +vt 0.155411 0.765336 +vt 0.001821 0.712574 +vt 0.065441 0.585194 +vt 0.444444 1.000000 +vt 0.219031 0.712958 +vt 0.155411 0.765720 +vt 0.065440 0.765720 +vt 0.001821 0.638340 +vt 0.065441 0.585578 +vt 0.277778 0.558140 +vn 0.4831 -0.8089 -0.3351 +vn 0.4831 -0.3351 -0.8089 +vn 0.4831 0.3351 -0.8089 +vn 0.4831 0.8089 -0.3351 +vn 0.4831 0.8089 0.3351 +vn 0.4831 0.3351 0.8089 +vn -1.0000 -0.0000 0.0000 +vn 0.4831 -0.3351 0.8089 +vn 0.4831 -0.8089 0.3351 +vn 1.0000 0.0000 -0.0000 +vn -0.4831 -0.8089 0.3351 +vn 0.0000 -0.9239 0.3827 +vn -0.4831 -0.3351 0.8089 +vn 0.0000 -0.3827 0.9239 +vn -0.4831 0.3351 0.8089 +vn 0.0000 0.3827 0.9239 +vn -0.4831 0.8089 0.3351 +vn -0.0000 0.9239 0.3827 +vn -0.4831 0.8089 -0.3351 +vn -0.0000 0.9239 -0.3827 +vn -0.4831 0.3351 -0.8089 +vn -0.0000 0.3827 -0.9239 +vn -0.4831 -0.3351 -0.8089 +vn -0.0000 -0.3827 -0.9239 +vn -0.4831 -0.8089 -0.3351 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.0000 -1.0000 +vn 0.5346 -0.0000 -0.8451 +vn -0.5346 -0.0000 -0.8451 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 9/9/4 7/7/4 +f 10/10/5 11/11/5 9/9/5 +f 12/12/6 13/13/6 11/11/6 +f 14/14/7 10/15/7 6/16/7 +f 13/17/8 15/18/8 16/19/8 +f 16/19/9 1/1/9 3/3/9 +f 17/20/10 18/21/10 19/22/10 +f 20/23/11 21/24/11 18/25/11 +f 16/19/12 22/26/12 20/23/12 +f 23/27/13 18/25/13 17/28/13 +f 13/17/14 20/23/14 23/27/14 +f 24/29/15 17/30/15 25/31/15 +f 11/11/16 23/32/16 24/29/16 +f 26/33/17 24/29/17 25/31/17 +f 9/9/18 24/29/18 27/34/18 +f 28/35/19 26/33/19 19/36/19 +f 7/7/20 27/34/20 28/35/20 +f 29/37/21 19/36/21 30/38/21 +f 5/5/22 28/35/22 29/37/22 +f 31/39/23 30/38/23 32/40/23 +f 2/2/24 29/37/24 31/39/24 +f 22/26/25 32/40/25 21/24/25 +f 3/3/26 31/39/26 22/26/26 +f 33/41/27 34/42/27 35/43/27 +f 36/44/7 37/45/7 38/46/7 +f 39/47/10 40/48/10 41/49/10 +f 41/49/28 34/42/28 42/50/28 +f 43/51/29 35/43/29 37/45/29 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 10/10/4 9/9/4 +f 10/10/5 12/12/5 11/11/5 +f 12/12/6 14/52/6 13/13/6 +f 6/16/7 4/53/7 1/54/7 +f 1/54/7 15/55/7 14/14/7 +f 14/14/7 12/56/7 10/15/7 +f 10/15/7 8/57/7 6/16/7 +f 6/16/7 1/54/7 14/14/7 +f 13/17/8 14/58/8 15/18/8 +f 16/19/9 15/18/9 1/1/9 +f 18/21/10 21/59/10 32/60/10 +f 32/60/10 30/61/10 18/21/10 +f 30/61/10 19/22/10 18/21/10 +f 19/22/10 26/62/10 25/63/10 +f 25/63/10 17/20/10 19/22/10 +f 20/23/11 22/26/11 21/24/11 +f 16/19/12 3/3/12 22/26/12 +f 23/27/13 20/23/13 18/25/13 +f 13/17/14 16/19/14 20/23/14 +f 24/29/15 23/32/15 17/30/15 +f 11/11/16 13/13/16 23/32/16 +f 26/33/17 27/34/17 24/29/17 +f 9/9/18 11/11/18 24/29/18 +f 28/35/19 27/34/19 26/33/19 +f 7/7/20 9/9/20 27/34/20 +f 29/37/21 28/35/21 19/36/21 +f 5/5/22 7/7/22 28/35/22 +f 31/39/23 29/37/23 30/38/23 +f 2/2/24 5/5/24 29/37/24 +f 22/26/25 31/39/25 32/40/25 +f 3/3/26 2/2/26 31/39/26 +f 33/41/27 42/50/27 34/42/27 +f 36/44/7 43/51/7 37/45/7 +f 39/47/10 44/64/10 40/48/10 +f 41/49/28 40/48/28 34/42/28 +f 43/51/29 33/41/29 35/43/29 +o LeftLeg +v 3.221325 16.344923 -2.138404 +v 3.484276 16.463854 -2.804640 +v 3.221325 16.574894 -2.693600 +v 3.221325 17.130089 -2.923570 +v 3.484276 17.130089 -3.080603 +v 3.221324 17.685286 -2.693600 +v 3.484275 17.796324 -2.804640 +v 3.221324 17.915255 -2.138404 +v 3.484275 18.072289 -2.138404 +v 3.221324 17.685286 -1.583209 +v 3.484276 17.796324 -1.472169 +v 3.221326 17.130089 -1.353239 +v 3.484277 17.130089 -1.196206 +v 3.221326 16.574894 -1.583209 +v 3.484276 16.187891 -2.138404 +v 0.410664 16.463854 -2.804638 +v 0.410663 17.796324 -2.804638 +v 0.410664 17.796324 -1.472168 +v 0.673615 16.574892 -1.583207 +v 0.410664 16.187889 -2.138403 +v 0.410665 16.463854 -1.472168 +v 0.673615 16.344923 -2.138403 +v 0.410665 17.130089 -1.196205 +v 0.673615 17.130089 -1.353238 +v 0.673614 17.685284 -1.583207 +v 0.673614 17.915255 -2.138403 +v 0.410663 18.072287 -2.138403 +v 0.673614 17.685284 -2.693599 +v 0.673614 17.130089 -2.923569 +v 0.410664 17.130089 -3.080602 +v 0.673615 16.574892 -2.693599 +v 2.584115 23.893938 -2.775112 +v 1.259069 17.076845 -2.775111 +v 2.584117 17.076845 -2.775112 +v 3.051287 21.491411 -1.833185 +v 3.051288 17.642982 -2.479552 +v 3.051288 17.891409 -1.833184 +v 0.791896 21.491409 -1.833183 +v 0.791897 17.642982 -2.479551 +v 0.791896 22.492836 -2.479551 +v 1.259067 23.893938 -2.775111 +v 3.051287 22.492836 -2.479552 +v 3.484277 16.463854 -1.472169 +v 0.791897 17.891409 -1.833183 +vt 0.333333 0.976744 +vt 0.277778 0.976744 +vt 0.277778 1.000000 +vt 0.222222 0.976744 +vt 0.222222 1.000000 +vt 0.166667 0.976744 +vt 0.166667 1.000000 +vt 0.111111 0.976744 +vt 0.111111 1.000000 +vt 0.055556 0.976744 +vt 0.055556 1.000000 +vt 0.000000 0.976744 +vt 0.065440 0.765336 +vt 0.155411 0.585194 +vt 0.001821 0.637956 +vt 0.444444 1.000000 +vt 0.444444 0.976744 +vt 0.388889 0.976744 +vt 0.333333 1.000000 +vt 0.155411 0.765720 +vt 0.065441 0.585578 +vt 0.001821 0.712958 +vt 0.388889 0.790698 +vt 0.388889 0.767442 +vt 0.333333 0.767442 +vt 0.333333 0.790698 +vt 0.444444 0.767442 +vt 0.444444 0.790698 +vt 0.055556 0.790698 +vt 0.055556 0.767442 +vt 0.000000 0.767442 +vt 0.000000 0.790698 +vt 0.111111 0.790698 +vt 0.111111 0.767442 +vt 0.166667 0.767442 +vt 0.166667 0.790698 +vt 0.222222 0.790698 +vt 0.222222 0.767442 +vt 0.277778 0.767442 +vt 0.277778 0.790698 +vt 0.138889 0.302326 +vt 0.138889 0.581395 +vt 0.222222 0.581395 +vt 0.083333 0.418605 +vt 0.083333 0.558140 +vt 0.111111 0.558140 +vt 0.277778 0.418605 +vt 0.250000 0.372093 +vt 0.250000 0.558140 +vt 0.222222 0.302326 +vt 0.111111 0.372093 +vt 0.000000 1.000000 +vt 0.219031 0.712574 +vt 0.219031 0.637956 +vt 0.155411 0.765336 +vt 0.001821 0.712574 +vt 0.065441 0.585194 +vt 0.388889 1.000000 +vt 0.219031 0.638340 +vt 0.219031 0.712958 +vt 0.065440 0.765720 +vt 0.001821 0.638340 +vt 0.155411 0.585578 +vt 0.277778 0.558140 +vn -0.4831 -0.8089 -0.3351 +vn -0.4831 -0.3351 -0.8089 +vn -0.4831 0.3351 -0.8089 +vn -0.4831 0.8089 -0.3351 +vn -0.4831 0.8089 0.3351 +vn -0.4831 0.3351 0.8089 +vn 1.0000 0.0000 -0.0000 +vn -0.4831 -0.3351 0.8089 +vn -0.4831 -0.8089 0.3351 +vn -1.0000 -0.0000 0.0000 +vn 0.4831 -0.8089 0.3351 +vn 0.0000 -0.9239 0.3827 +vn 0.4831 -0.3351 0.8089 +vn 0.0000 -0.3827 0.9239 +vn 0.4831 0.3351 0.8089 +vn 0.0000 0.3827 0.9239 +vn 0.4831 0.8089 0.3351 +vn -0.0000 0.9239 0.3827 +vn 0.4831 0.8089 -0.3351 +vn -0.0000 0.9239 -0.3827 +vn 0.4831 0.3351 -0.8089 +vn -0.0000 0.3827 -0.9239 +vn 0.4831 -0.3351 -0.8089 +vn -0.0000 -0.3827 -0.9239 +vn 0.4831 -0.8089 -0.3351 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.0000 -1.0000 +vn -0.5346 -0.0000 -0.8451 +vn 0.5346 0.0000 -0.8451 +s 1 +f 45/65/30 47/66/30 46/67/30 +f 46/67/31 47/66/31 48/68/31 +f 49/69/32 48/68/32 50/70/32 +f 51/71/33 50/70/33 52/72/33 +f 53/73/34 52/72/34 54/74/34 +f 55/75/35 54/74/35 56/76/35 +f 57/77/36 49/78/36 53/79/36 +f 57/80/37 56/81/37 58/82/37 +f 58/82/38 45/65/38 59/83/38 +f 60/84/39 62/85/39 61/86/39 +f 63/87/40 65/88/40 64/89/40 +f 58/82/41 63/87/41 66/90/41 +f 67/91/42 65/88/42 63/87/42 +f 56/81/43 68/92/43 63/87/43 +f 69/93/44 62/94/44 67/95/44 +f 54/74/45 69/93/45 68/96/45 +f 70/97/46 71/98/46 62/94/46 +f 52/72/47 70/97/47 69/93/47 +f 61/99/48 71/98/48 70/97/48 +f 50/70/49 72/100/49 70/97/49 +f 73/101/50 74/102/50 61/99/50 +f 48/68/51 73/101/51 72/100/51 +f 60/103/52 74/102/52 73/101/52 +f 47/66/53 75/104/53 73/101/53 +f 66/90/54 64/89/54 60/103/54 +f 45/65/55 66/90/55 75/104/55 +f 76/105/56 78/106/56 77/107/56 +f 79/108/36 81/109/36 80/110/36 +f 82/111/39 84/112/39 83/113/39 +f 84/112/57 85/114/57 77/107/57 +f 86/115/58 80/110/58 78/106/58 +f 45/65/30 46/67/30 59/83/30 +f 46/67/31 48/68/31 49/69/31 +f 49/69/32 50/70/32 51/71/32 +f 51/71/33 52/72/33 53/73/33 +f 53/73/34 54/74/34 55/75/34 +f 55/75/35 56/76/35 57/116/35 +f 49/78/36 59/117/36 46/118/36 +f 59/117/36 57/77/36 87/119/36 +f 57/77/36 53/79/36 55/120/36 +f 53/79/36 49/78/36 51/121/36 +f 49/78/36 57/77/36 59/117/36 +f 57/80/37 58/82/37 87/122/37 +f 58/82/38 59/83/38 87/122/38 +f 65/123/39 60/84/39 64/124/39 +f 60/84/39 61/86/39 74/125/39 +f 61/86/39 62/85/39 71/126/39 +f 62/85/39 65/123/39 67/127/39 +f 65/123/39 62/85/39 60/84/39 +f 63/87/40 64/89/40 66/90/40 +f 58/82/41 66/90/41 45/65/41 +f 67/91/42 63/87/42 68/92/42 +f 56/81/43 63/87/43 58/82/43 +f 69/93/44 67/95/44 68/96/44 +f 54/74/45 68/96/45 56/76/45 +f 70/97/46 62/94/46 69/93/46 +f 52/72/47 69/93/47 54/74/47 +f 61/99/48 70/97/48 72/100/48 +f 50/70/49 70/97/49 52/72/49 +f 73/101/50 61/99/50 72/100/50 +f 48/68/51 72/100/51 50/70/51 +f 60/103/52 73/101/52 75/104/52 +f 47/66/53 73/101/53 48/68/53 +f 66/90/54 60/103/54 75/104/54 +f 45/65/55 75/104/55 47/66/55 +f 76/105/56 77/107/56 85/114/56 +f 79/108/36 80/110/36 86/115/36 +f 82/111/39 83/113/39 88/128/39 +f 84/112/57 77/107/57 83/113/57 +f 86/115/58 78/106/58 76/105/58 +o RightBoot +v -4.294724 22.782003 2.294718 +v -0.027777 24.114491 3.088782 +v -3.972240 24.114491 3.088783 +v 0.294707 21.359482 -2.294718 +v -0.390985 24.114489 -3.029695 +v 0.294706 24.114489 -2.289904 +v -3.609036 24.114487 -3.029694 +v -4.294727 24.114487 -2.289904 +v 0.294709 22.782005 2.294716 +v -4.294726 21.359480 -2.294717 +v -4.313537 24.114489 2.253307 +v 0.299410 24.114489 -1.357249 +v -4.299429 24.114487 -1.357248 +v 0.313520 24.114491 2.253306 +v -4.308834 24.114489 2.041616 +v 0.308817 24.114491 2.041615 +v -4.304132 22.930824 0.905813 +v 0.304113 22.930826 0.905812 +vt 1.000000 0.813953 +vt 0.805556 0.744186 +vt 0.972222 0.744186 +vt 0.722222 1.000000 +vt 0.694444 0.860465 +vt 0.763660 0.868673 +vt 0.527778 0.860465 +vt 0.722222 0.813953 +vt 0.500000 0.813953 +vt 0.777778 0.813953 +vt 1.000000 1.000000 +vt 0.777778 1.000000 +vt 0.694444 0.511628 +vt 0.500000 0.558140 +vt 0.527778 0.511628 +vt 0.500000 1.000000 +vt 0.469459 0.868673 +vt 0.722222 0.767442 +vt 0.500000 0.767442 +vt 0.486172 0.445154 +vt 0.451509 0.445182 +vt 0.484495 0.476814 +vt 0.484078 0.476716 +vt 0.450871 0.444995 +vt 0.485671 0.444929 +vt 0.722222 0.558140 +vt 0.500000 0.581395 +vt 0.722222 0.581395 +vt 0.500000 0.651163 +vt 0.660669 0.445343 +vt 0.624848 0.445304 +vt 0.660669 0.510800 +vt 0.537850 0.473333 +vt 0.494305 0.445164 +vt 0.493836 0.444930 +vt 0.537634 0.473164 +vt 0.661047 0.510645 +vt 0.624897 0.444929 +vt 0.660861 0.444929 +vt 0.722222 0.651163 +vn 0.0000 -0.5119 0.8590 +vn 0.7334 0.0012 -0.6798 +vn -0.0000 -0.2578 -0.9662 +vn -0.0000 1.0000 0.0000 +vn 0.0000 -0.9552 0.2961 +vn -0.7334 0.0012 -0.6798 +vn 0.9257 -0.0013 0.3782 +vn -0.9257 -0.0013 0.3782 +vn -0.0000 0.6924 -0.7215 +vn -0.0000 0.8861 0.4635 +vn 1.0000 0.0000 -0.0050 +vn 1.0000 -0.0004 -0.0037 +vn 1.0000 -0.0001 -0.0046 +vn 1.0000 -0.0008 -0.0025 +vn 0.9999 -0.0162 0.0050 +vn 0.9999 -0.0108 0.0056 +vn 0.9999 -0.0149 0.0052 +vn 0.9999 -0.0095 0.0058 +vn 0.9996 -0.0148 -0.0222 +vn -0.9996 -0.0148 -0.0222 +vn -0.9999 -0.0095 0.0058 +vn -0.9999 -0.0108 0.0056 +vn -0.9999 -0.0149 0.0052 +vn -0.9999 -0.0162 0.0050 +vn -1.0000 -0.0008 -0.0025 +vn -1.0000 -0.0004 -0.0037 +vn -1.0000 -0.0001 -0.0045 +vn -1.0000 0.0000 -0.0050 +s 1 +f 89/129/59 90/130/59 91/131/59 +f 92/132/60 93/133/60 94/134/60 +f 92/132/61 95/135/61 93/133/61 +f 94/136/62 95/135/62 96/137/62 +f 97/138/63 98/139/63 92/140/63 +f 90/141/62 99/142/62 91/143/62 +f 89/129/59 97/138/59 90/130/59 +f 92/132/61 98/144/61 95/135/61 +f 96/145/64 95/135/64 98/144/64 +f 94/136/62 93/133/62 95/135/62 +f 97/138/63 89/129/63 98/139/63 +f 100/146/62 96/137/62 101/147/62 +f 102/148/65 90/149/65 97/150/65 +f 89/151/66 91/152/66 99/153/66 +f 102/154/62 103/155/62 99/142/62 +f 104/156/67 105/157/67 103/155/67 +f 105/157/68 100/146/68 101/147/68 +f 94/158/69 100/159/70 92/160/71 +f 100/159/70 106/161/72 92/160/71 +f 92/160/73 106/161/74 97/150/75 +f 106/161/74 104/162/76 97/150/75 +f 102/148/77 97/150/77 104/162/77 +f 89/151/78 99/153/78 103/163/78 +f 103/163/79 105/164/80 89/151/81 +f 89/151/81 105/164/80 98/165/82 +f 105/164/83 101/166/84 98/165/85 +f 96/167/86 98/165/85 101/166/84 +f 90/141/62 102/154/62 99/142/62 +f 100/146/62 94/136/62 96/137/62 +f 102/154/62 104/156/62 103/155/62 +f 104/156/67 106/168/67 105/157/67 +f 105/157/68 106/168/68 100/146/68 +o RightArm +v -3.987993 4.568192 2.012011 +v -8.012014 12.123872 2.012012 +v -3.987996 12.123873 2.012011 +v -8.012011 4.568192 2.012012 +v -8.012017 12.123872 -2.012007 +v -8.012014 4.568192 -2.012007 +v -3.987998 12.123873 -2.012008 +v -3.987996 4.568192 -2.012008 +v -3.950447 -0.051672 -2.049555 +v -8.049558 -0.051674 2.049560 +v -3.950445 -0.051672 2.049558 +v -3.950446 2.506721 2.049558 +v -8.049560 2.506720 -2.049553 +v -8.049560 -0.051674 -2.049553 +v -5.488659 2.506721 -2.049554 +v -8.315364 8.634611 1.745075 +v -8.315366 10.517612 -0.602378 +v -8.315365 10.517612 1.745075 +v -8.315365 8.634611 -1.254874 +v -8.315367 10.517612 -1.745069 +v -8.315366 10.517612 -1.254874 +v -3.684647 8.634613 -2.315358 +v -3.684645 10.517614 2.315361 +v -3.684647 10.517614 -2.315358 +v -7.745078 8.634611 -2.315357 +v -7.745079 10.517612 -2.315357 +v -9.689914 8.634610 -1.254873 +v -9.689914 8.634610 -0.602377 +v -9.689915 10.517612 -1.254873 +v -9.689915 10.517612 -0.602377 +v -8.315365 8.634611 -0.602378 +v -7.745077 10.517612 2.315362 +v -7.745076 8.634611 2.315362 +v -8.315366 8.634611 -1.745069 +v -3.684645 8.634613 2.315361 +v -8.049558 2.506720 2.049560 +v -3.950447 0.968509 -2.049555 +vt 0.914286 0.682927 +vt 0.914286 0.292683 +vt 0.685714 0.292683 +vt 0.685714 0.682927 +vt 0.457143 0.292683 +vt 0.457143 0.682927 +vt 0.228571 0.292683 +vt 0.228571 0.682927 +vt -0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.228571 0.292683 +vt 0.228571 0.097561 +vt 0.142857 1.000000 +vt 0.371429 1.000000 +vt 0.371429 0.804878 +vt 0.514286 1.000000 +vt 0.142857 0.682927 +vt 0.142857 0.804878 +vt 0.000000 0.926829 +vt 0.000000 0.804878 +vt 0.742857 0.097561 +vt 0.742857 0.000000 +vt 0.628571 0.000000 +vt 0.571429 0.097561 +vt 0.571429 0.000000 +vt 0.542857 0.000000 +vt 0.257143 0.097561 +vt 0.257143 0.000000 +vt 0.000000 0.000000 +vt 0.485714 0.097561 +vt 0.485714 -0.000000 +vt 0.400000 0.292683 +vt 0.514286 0.292683 +vt 0.514286 0.219512 +vt 0.228571 0.219512 +vt 0.342857 0.219512 +vt 0.342857 0.170732 +vt 0.571429 0.292683 +vt 0.571429 0.219512 +vt 0.342857 0.292683 +vt 0.400000 0.219512 +vt 0.228571 0.292683 +vt 0.800000 0.097561 +vt 0.800000 0.000000 +vt 0.542857 0.097561 +vt 1.000000 0.097561 +vt 1.000000 0.000000 +vt 0.000000 0.682927 +vt -0.000000 0.097561 +vt 0.514286 0.804878 +vt 0.371429 0.682927 +vt 0.085714 1.000000 +vt 0.628571 0.097561 +vt 0.000000 0.097561 +vt 0.228571 0.170732 +vn 0.0000 0.0000 1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.0000 -0.7071 +s 1 +f 107/169/87 109/170/87 108/171/87 +f 110/172/88 108/171/88 111/173/88 +f 112/174/89 111/173/89 113/175/89 +f 114/176/90 113/175/90 109/177/90 +f 111/178/91 108/179/91 109/180/91 +f 115/181/92 117/182/92 116/183/92 +f 116/183/87 117/182/87 118/184/87 +f 119/185/88 120/186/88 116/183/88 +f 121/187/89 120/186/89 119/188/89 +f 122/189/88 124/190/88 123/191/88 +f 125/192/88 127/193/88 126/194/88 +f 128/195/90 130/196/90 129/197/90 +f 131/198/89 132/199/89 130/196/89 +f 127/200/89 125/201/89 133/202/89 +f 134/203/88 136/204/88 135/205/88 +f 125/201/92 137/206/92 134/207/92 +f 123/208/91 127/200/91 135/209/91 +f 137/210/87 123/208/87 136/204/87 +f 122/189/93 139/211/93 138/212/93 +f 132/199/94 131/198/94 140/213/94 +f 141/214/87 129/215/87 138/212/87 +f 107/169/87 108/171/87 110/172/87 +f 110/172/88 111/173/88 112/174/88 +f 112/174/89 113/175/89 114/176/89 +f 114/176/90 109/177/90 107/216/90 +f 111/178/91 109/180/91 113/217/91 +f 115/181/92 116/183/92 120/186/92 +f 116/183/87 118/184/87 142/218/87 +f 119/185/88 116/183/88 142/219/88 +f 120/186/89 121/187/89 115/181/89 +f 115/181/89 121/187/89 143/220/89 +f 122/189/88 123/191/88 137/221/88 +f 125/192/88 126/194/88 140/213/88 +f 128/195/90 129/197/90 141/222/90 +f 131/198/89 130/196/89 128/195/89 +f 127/200/89 133/202/89 135/209/89 +f 134/203/88 135/205/88 133/223/88 +f 125/201/92 134/207/92 133/202/92 +f 123/208/91 135/209/91 136/204/91 +f 137/210/87 136/204/87 134/203/87 +f 122/189/93 138/212/93 124/190/93 +f 132/199/94 140/213/94 126/194/94 +f 141/214/87 138/212/87 139/211/87 +o LeftBoot +v 4.294709 22.782005 2.294713 +v 0.027761 24.114489 3.088781 +v 3.972223 24.114491 3.088780 +v -0.294726 21.359480 -2.294718 +v 0.390964 24.114487 -3.029695 +v -0.294727 24.114487 -2.289904 +v 3.609014 24.114489 -3.029696 +v 4.294706 24.114489 -2.289907 +v -0.294725 22.782003 2.294715 +v 4.294707 21.359482 -2.294719 +v 4.313520 24.114491 2.253305 +v 4.299409 24.114489 -1.357252 +v -0.313536 24.114489 2.253306 +v 4.308816 24.114491 2.041613 +v -0.308834 24.114489 2.041615 +v 4.304113 22.930826 0.905811 +v -0.299429 24.114487 -1.357249 +v -0.304131 22.930824 0.905812 +vt 1.000000 0.813953 +vt 0.972222 0.744186 +vt 0.805556 0.744186 +vt 0.722222 1.000000 +vt 0.763660 0.868673 +vt 0.694444 0.860465 +vt 0.527778 0.860465 +vt 0.722222 0.813953 +vt 0.500000 0.813953 +vt 0.777778 0.813953 +vt 0.777778 1.000000 +vt 1.000000 1.000000 +vt 0.694444 0.511628 +vt 0.527778 0.511628 +vt 0.500000 0.558140 +vt 0.500000 1.000000 +vt 0.469459 0.868673 +vt 0.500000 0.767442 +vt 0.486172 0.445154 +vt 0.482745 0.490732 +vt 0.451509 0.445182 +vt 0.482328 0.490634 +vt 0.485671 0.444929 +vt 0.450871 0.444995 +vt 0.722222 0.558140 +vt 0.500000 0.581395 +vt 0.722222 0.581395 +vt 0.500000 0.651163 +vt 0.722222 0.767442 +vt 0.660669 0.445343 +vt 0.657042 0.524629 +vt 0.624848 0.445304 +vt 0.536975 0.482856 +vt 0.494305 0.445164 +vt 0.493836 0.444930 +vt 0.536759 0.482686 +vt 0.657042 0.524629 +vt 0.624897 0.444929 +vt 0.660861 0.444929 +vt 0.722222 0.651163 +vn 0.0000 -0.5119 0.8590 +vn -0.7334 0.0012 -0.6798 +vn -0.0000 -0.2578 -0.9662 +vn -0.0000 1.0000 0.0000 +vn 0.0000 -0.9552 0.2961 +vn 0.7334 0.0012 -0.6798 +vn -0.9257 -0.0013 0.3782 +vn 0.9257 -0.0013 0.3782 +vn -0.0000 0.6924 -0.7215 +vn -0.0000 0.8861 0.4635 +vn -1.0000 0.0000 -0.0050 +vn -1.0000 0.0003 -0.0043 +vn -1.0000 -0.0004 -0.0037 +vn -1.0000 -0.0008 -0.0025 +vn -0.9999 -0.0162 0.0050 +vn -0.9999 -0.0132 0.0024 +vn -0.9998 -0.0152 0.0089 +vn -0.9999 -0.0095 0.0058 +vn -0.9996 -0.0148 -0.0222 +vn 0.9996 -0.0148 -0.0222 +vn 0.9999 -0.0095 0.0058 +vn 0.9999 -0.0132 0.0024 +vn 0.9998 -0.0152 0.0089 +vn 0.9999 -0.0162 0.0050 +vn 1.0000 -0.0008 -0.0025 +vn 1.0000 0.0003 -0.0043 +vn 1.0000 -0.0004 -0.0037 +vn 1.0000 0.0000 -0.0050 +s 1 +f 144/224/95 146/225/95 145/226/95 +f 147/227/96 149/228/96 148/229/96 +f 147/227/97 148/229/97 150/230/97 +f 149/231/98 151/232/98 150/230/98 +f 152/233/99 147/234/99 153/235/99 +f 145/236/98 146/237/98 154/238/98 +f 144/224/95 145/226/95 152/233/95 +f 147/227/97 150/230/97 153/239/97 +f 151/240/100 153/239/100 150/230/100 +f 149/231/98 150/230/98 148/229/98 +f 152/233/99 153/235/99 144/224/99 +f 155/241/98 151/232/98 149/231/98 +f 156/242/101 152/243/101 145/244/101 +f 144/245/102 154/246/102 146/247/102 +f 156/248/98 154/238/98 157/249/98 +f 158/250/103 157/249/103 159/251/103 +f 159/251/104 155/241/104 160/252/104 +f 149/253/105 147/254/106 160/255/107 +f 160/255/107 147/254/106 161/256/108 +f 147/254/109 152/243/110 161/256/111 +f 161/256/111 152/243/110 158/257/112 +f 156/242/113 158/257/113 152/243/113 +f 144/245/114 157/258/114 154/246/114 +f 157/258/115 144/245/116 159/259/117 +f 144/245/116 153/260/118 159/259/117 +f 159/259/119 153/260/120 155/261/121 +f 151/262/122 155/261/121 153/260/120 +f 145/236/98 154/238/98 156/248/98 +f 155/241/98 149/231/98 160/252/98 +f 156/248/98 157/249/98 158/250/98 +f 158/250/103 159/251/103 161/263/103 +f 159/251/104 160/252/104 161/263/104 +o Body +v -2.433892 11.696839 1.741448 +v -2.478342 12.058446 2.742684 +v -2.608063 11.701065 2.721165 +v -1.963707 12.213952 1.822806 +v -2.137878 12.218179 2.802522 +v -1.786109 12.086695 2.865625 +v -1.454927 11.736790 1.915313 +v -1.629098 11.741015 2.895030 +v -1.758819 11.383636 2.873510 +v -1.584648 11.379409 1.893793 +v -2.099283 11.223903 2.813673 +v -1.925112 11.219676 1.833956 +v -2.451052 11.355387 2.750569 +v -2.276881 11.351160 1.770853 +v -3.083490 11.695743 3.892097 +v -3.071629 12.046653 3.744678 +v -2.977108 11.196491 3.407814 +v -3.295467 10.916105 2.995091 +v -3.213680 10.923450 3.366935 +v -3.015702 12.190767 3.396662 +v -2.948472 12.043664 3.051913 +v -2.921181 11.340606 3.059798 +v -2.909320 11.691516 2.912380 +v -3.044339 11.343594 3.752563 +v -3.790248 10.905588 3.769861 +v -4.122290 10.720338 3.668464 +v -4.110857 10.890845 3.564914 +v -4.192645 10.883500 3.193070 +v -3.987700 10.887856 2.872150 +v -3.616077 10.901362 2.790144 +v -3.418624 10.919094 3.687855 +v -3.323674 10.249335 3.307122 +v -3.617874 9.913884 3.027164 +v -3.137142 10.088212 3.267124 +v -4.015907 10.221087 3.184181 +v -3.233499 10.504811 3.574724 +v -3.430057 10.748587 3.791405 +v -3.798206 10.837860 3.830233 +v -4.212464 10.464862 3.400860 +v -3.647758 10.131813 3.145353 +v -3.294946 10.828779 3.985489 +v -4.612823 5.784795 9.578111 +v -3.841042 10.961205 4.043085 +v -3.003381 10.467175 3.664075 +v -4.321773 10.786876 3.803124 +v -4.163970 10.046309 3.084760 +v -4.455535 10.407914 3.406173 +v -3.487563 5.121147 9.068974 +v -3.996118 4.679335 8.794598 +v -3.887074 4.988270 9.118198 +v -5.258609 5.550613 9.255764 +v -5.438295 5.041541 8.722525 +v -5.046626 4.555782 8.290759 +v -4.313034 4.377892 8.213387 +v -3.667250 4.612072 8.535736 +v -3.879233 5.606905 9.500741 +v -4.124761 5.283055 9.380220 +v -3.540586 4.874355 9.311748 +v -3.924491 5.350483 9.734954 +v -4.569947 5.391010 9.427172 +v -5.070891 4.939960 8.907953 +v -4.833203 4.645175 8.645930 +v -4.388018 4.537220 8.598978 +v -4.961847 5.248896 9.231552 +v -4.349693 4.145834 8.473121 +v -5.154979 3.690454 9.179224 +v -4.435930 3.516088 9.103387 +v -5.276523 5.295309 9.494833 +v -5.068743 4.320199 8.548958 +v -3.716710 4.375374 8.789079 +v -4.643539 5.524849 9.810790 +v -5.452648 4.796328 8.972165 +v -3.626822 4.244609 9.942014 +v -4.173031 3.812530 9.718286 +v -4.076151 4.087002 10.005788 +v -3.802946 3.745630 9.419345 +v -4.010726 4.720737 10.365220 +v -4.729775 4.895103 10.441055 +v -5.362759 4.665564 10.125099 +v -5.538885 4.166582 9.602431 +v -5.127913 4.044082 9.818995 +v -4.834189 4.385009 8.982876 +v -4.916739 3.782180 9.586204 +v -4.682850 4.444818 10.280295 +v -4.521214 3.686267 9.544488 +v -4.287324 4.348905 10.238581 +v -5.031033 4.318554 10.106499 +v -4.204773 4.951735 9.635254 +v -3.993600 4.689833 9.402461 +v -4.090481 4.415359 9.114959 +v -4.600299 5.047647 9.676968 +v -4.948482 4.921384 9.503171 +v -5.045363 4.646912 9.215669 +v -4.438664 4.289096 8.941160 +v 4.953064 7.610870 2.369190 +v 5.153063 7.264459 -1.262631 +v 5.153064 7.264460 2.369190 +v 4.553064 7.610870 2.369190 +v 4.953063 7.610870 -1.262631 +v 4.353064 7.264459 2.369190 +v 4.553062 7.610869 -1.262631 +v 4.553064 6.918049 2.369190 +v 4.353063 7.264460 -1.262631 +v 4.328232 7.610869 -1.524874 +v 4.953064 6.918049 2.369190 +v 4.553063 6.918049 -1.262631 +v 4.953063 6.918049 -1.262631 +v 4.287711 7.264459 2.462675 +v 4.328232 7.264460 -1.324874 +v 4.167478 7.610869 -1.524874 +v 4.328232 6.918049 -1.524874 +v 4.328231 7.610869 -1.924874 +v 4.328232 6.918049 -1.924874 +v 4.167477 7.264459 -2.124874 +v 4.328232 7.264459 -2.124873 +v 4.167477 6.918049 -1.524873 +v 4.167477 6.918049 -1.924874 +v 4.287712 7.264459 3.262675 +v 3.474366 7.227769 3.062675 +v 4.287711 7.610869 3.062675 +v 4.287711 6.918049 3.062675 +v 4.287711 7.610869 2.662675 +v 4.287711 6.918048 2.662675 +v 3.964264 6.737871 2.662675 +v 2.843040 5.616645 3.062676 +v 3.964264 6.737871 3.062675 +v 3.719315 6.982820 3.262676 +v 3.719315 6.982821 2.462676 +v 3.474366 7.227770 2.662676 +v 2.132173 5.325718 3.062676 +v 2.598091 5.861594 3.262676 +v 2.353141 6.106544 2.662676 +v 2.353141 6.106544 3.062676 +v 2.598091 5.861595 2.462676 +v 2.132174 5.325719 2.662676 +v 1.486039 5.325717 2.400527 +v 2.843040 5.616645 2.662676 +v 2.132174 6.018539 3.062675 +v 2.132173 5.672130 2.462676 +v 2.132173 5.672129 3.262676 +v 1.486039 5.325717 1.992879 +v 1.286039 5.672129 2.400527 +v 1.886039 6.018539 2.400527 +v 2.132173 6.018539 2.662676 +v 1.886039 5.325718 2.400527 +v 1.486039 6.018538 2.400527 +v 2.086039 5.672129 2.400527 +v 1.886040 5.325718 1.992879 +v 1.486039 6.018538 1.992879 +v 1.886040 6.018539 1.992879 +v 5.153064 8.407035 2.369190 +v 4.953063 8.753445 -1.262631 +v 5.153062 8.407035 -1.262631 +v 4.553064 8.753445 2.369190 +v 4.953064 8.753446 2.369190 +v 4.353064 8.407034 2.369190 +v 4.553062 8.753445 -1.262631 +v 4.553063 8.060624 2.369190 +v 4.353062 8.407035 -1.262631 +v 4.328231 8.753445 -1.524874 +v 4.953064 8.060625 2.369190 +v 4.553062 8.060624 -1.262631 +v 4.953063 8.060625 -1.262631 +v 4.287711 8.407035 2.462675 +v 4.328231 8.407035 -1.324874 +v 4.167477 8.753445 -1.524874 +v 4.328231 8.060624 -1.524874 +v 4.328231 8.753445 -1.924874 +v 4.328231 8.060624 -1.924874 +v 4.167477 8.753445 -1.924874 +v 4.328231 8.407034 -2.124874 +v 4.167477 8.407034 -2.124874 +v 4.167477 8.060624 -1.524874 +v 4.167477 8.060624 -1.924874 +v 4.287711 8.407035 3.262675 +v 3.474366 8.370344 3.062675 +v 4.287711 8.753445 3.062675 +v 4.287711 8.060625 3.062675 +v 4.287711 8.753445 2.662675 +v 4.287711 8.060625 2.662675 +v 2.843040 6.759221 2.662676 +v 3.964264 7.880446 3.062675 +v 3.964264 7.880446 2.662675 +v 3.719315 8.125395 3.262675 +v 3.719315 8.125396 2.462675 +v 3.474365 8.370344 2.662676 +v 2.132174 6.468294 3.062676 +v 2.598090 7.004170 3.262676 +v 2.843039 6.759221 3.062676 +v 2.353141 7.249119 2.662676 +v 2.598091 7.004169 2.462676 +v 2.353141 7.249119 3.062676 +v 2.132173 6.468295 2.662676 +v 1.486039 6.468294 2.400527 +v 2.132173 7.161114 3.062676 +v 2.132173 6.814704 2.462676 +v 2.132172 6.814704 3.262676 +v 1.286039 6.814703 1.992879 +v 1.286039 6.814704 2.400527 +v 1.886039 7.161115 2.400527 +v 2.132173 7.161115 2.662676 +v 1.886039 6.468294 2.400527 +v 1.486039 7.161114 2.400527 +v 2.086039 6.814704 2.400527 +v 1.886039 6.468294 1.992879 +v 1.886039 7.161114 1.992879 +v 1.486039 6.468293 1.992879 +v 1.486039 7.161114 1.992879 +v 4.953063 9.896020 2.369190 +v 5.153061 9.549610 -1.262631 +v 5.153064 9.549610 2.369190 +v 4.553063 9.896020 2.369190 +v 4.953062 9.896020 -1.262631 +v 4.353063 9.549610 2.369190 +v 4.553061 9.896020 -1.262631 +v 4.553062 9.203199 -1.262631 +v 4.353062 9.549610 -1.262631 +v 4.328231 9.896020 -1.524874 +v 4.953064 9.203199 2.369190 +v 4.553064 9.203199 2.369190 +v 4.953063 9.203200 -1.262631 +v 4.287710 9.549610 2.462675 +v 4.328230 9.549610 -1.324874 +v 4.167477 9.896020 -1.524874 +v 4.328231 9.203199 -1.524874 +v 4.328230 9.896020 -1.924874 +v 4.328231 9.203199 -1.924874 +v 4.167477 9.896020 -1.924874 +v 4.328231 9.549610 -2.124873 +v 4.167477 9.549609 -2.124874 +v 4.167477 9.203199 -1.524874 +v 4.167477 9.203199 -1.924874 +v 4.287711 9.549610 3.262675 +v 3.474366 9.512920 3.062675 +v 4.287710 9.896020 3.062675 +v 4.287711 9.203199 3.062675 +v 4.287710 9.896020 2.662675 +v 4.287711 9.203199 2.662675 +v 2.843040 7.901796 2.662676 +v 3.964263 9.023022 3.062675 +v 3.964263 9.023022 2.662675 +v 3.719314 9.267971 3.262675 +v 3.719315 9.267971 2.462675 +v 3.474365 9.512920 2.662676 +v 2.132173 7.610869 3.062676 +v 2.598090 8.146745 3.262676 +v 2.843039 7.901796 3.062676 +v 2.353141 8.391694 2.662676 +v 2.353141 8.391694 3.062675 +v 2.598090 8.146745 2.462676 +v 2.132173 7.610869 2.662676 +v 1.486039 7.610869 2.400527 +v 2.132173 8.303690 3.062676 +v 2.132173 7.957279 2.462676 +v 2.132173 7.957279 3.262676 +v 1.486039 7.610868 1.992879 +v 1.286039 7.957279 2.400527 +v 1.886039 8.303690 2.400527 +v 2.132172 8.303690 2.662676 +v 1.886039 7.610869 2.400527 +v 1.486038 8.303690 2.400527 +v 2.086039 7.957279 1.992879 +v 2.086039 7.957279 2.400527 +v 1.486039 8.303690 1.992879 +v 1.886039 8.303690 1.992879 +v 4.111426 12.111434 2.055715 +v -4.111434 -0.021471 2.055717 +v -4.111439 12.111432 2.055717 +v -0.000007 14.387936 2.055716 +v -0.448474 13.131029 1.780179 +v -1.048790 12.530713 3.263384 +v -1.048790 12.530713 1.780179 +v -1.048790 11.633777 1.780179 +v -0.448474 11.033461 3.263384 +v -0.448474 11.033461 1.780179 +v -0.000006 11.481929 3.897614 +v -0.000006 12.682561 3.897614 +v 0.600311 12.082245 3.897613 +v 0.448463 11.033461 1.780178 +v 1.048779 11.633777 3.263383 +v 1.048779 11.633777 1.780178 +v -0.448475 13.131029 3.263384 +v 0.448462 13.131029 3.263383 +v 1.048778 12.530713 3.263383 +v -0.600322 12.082245 3.897614 +v -1.048790 11.633777 3.263384 +v 0.448463 11.033461 3.263383 +v 0.448462 13.131029 1.780178 +v 4.273126 7.662184 -1.123407 +v 4.273125 12.409700 0.977680 +v 4.273124 12.409700 -2.588087 +v 1.068278 2.915273 -1.973670 +v 3.204844 2.915273 -1.973670 +v 3.204844 2.915273 -2.434293 +v -4.273139 12.409698 -2.588085 +v -4.273138 12.409698 0.977683 +v -4.273137 7.662182 -1.123404 +v -0.000008 14.363687 -2.136567 +v -0.000008 14.363687 -2.136567 +v 4.273125 9.025417 -2.332449 +v -4.273138 9.025415 -2.332446 +v 4.273127 4.915272 -1.973671 +v 4.273126 4.915272 -2.434293 +v 3.529422 4.915272 -2.724489 +v -0.000006 6.307607 -2.724487 +v 1.346965 3.785859 -2.724489 +v -0.000005 4.915271 -1.973669 +v 1.068279 2.915272 -2.434293 +v -4.273136 4.915270 -1.973669 +v -3.204853 2.915272 -1.973669 +v -3.204853 2.915273 -2.434291 +v -1.068287 2.915272 -1.973670 +v -0.000005 4.915271 -2.434292 +v -4.273138 7.087025 -2.724487 +v -4.273136 4.915270 -2.434291 +v -4.273137 5.785859 -2.724487 +v 4.273126 7.087027 -2.724489 +v 4.273125 5.785860 -2.724490 +v -3.529432 4.915270 -2.724487 +v -1.068287 2.915272 -2.434292 +v -1.346975 3.785859 -2.724488 +v -2.926166 3.785859 -2.724487 +v 2.926157 3.785860 -2.724488 +v -5.153073 7.264457 -1.262628 +v -4.953073 7.610868 2.369192 +v -5.153073 7.264458 2.369193 +v -4.953074 7.610868 -1.262629 +v -4.553072 7.610868 2.369192 +v -4.553073 7.610867 -1.262628 +v -4.353072 7.264457 2.369192 +v -4.353074 7.264457 -1.262628 +v -4.553072 6.918047 2.369192 +v -4.328242 7.610868 -1.524871 +v -4.553073 6.918047 -1.262628 +v -4.953073 6.918047 2.369193 +v -4.953074 6.918047 -1.262628 +v -4.287720 7.264457 2.462677 +v -4.287720 7.610867 2.662678 +v -4.167488 7.264457 -1.324871 +v -4.328242 7.264457 -1.324871 +v -4.328242 6.918047 -1.524871 +v -4.328242 6.918047 -1.924872 +v -4.328242 7.610868 -1.924871 +v -4.328242 7.264457 -2.124871 +v -4.167488 7.264458 -2.124871 +v -4.167488 7.610868 -1.924871 +v -4.167488 6.918047 -1.524871 +v -4.167488 7.610868 -1.524871 +v -4.167488 6.918048 -1.924871 +v -4.287720 7.264458 3.262678 +v -3.474375 7.227768 3.062677 +v -3.719324 6.982819 3.262678 +v -4.287720 6.918047 3.062678 +v -4.287720 7.610868 3.062677 +v -4.287720 6.918047 2.662678 +v -3.964272 6.737869 2.662678 +v -2.843048 5.616643 3.062678 +v -2.843047 5.616644 2.662678 +v -3.964272 6.737870 3.062677 +v -3.719324 6.982818 2.462677 +v -3.474375 7.227767 2.662678 +v -2.598098 5.861594 3.262677 +v -2.132181 5.325717 3.062677 +v -2.598098 5.861594 2.462677 +v -2.353149 6.106542 2.662678 +v -2.353149 6.106542 3.062677 +v -2.132181 5.325717 2.662678 +v -1.486047 5.325717 2.400528 +v -1.886047 5.325717 2.400527 +v -2.132181 5.672128 2.462677 +v -2.132181 6.018539 3.062677 +v -2.132181 6.018538 2.662678 +v -2.132181 5.672128 3.262677 +v -1.286046 5.672128 2.400528 +v -1.486047 5.325717 1.992880 +v -1.886047 6.018538 2.400528 +v -2.086047 5.672128 2.400528 +v -1.486047 6.018538 2.400528 +v -2.086047 5.672128 1.992880 +v -1.486047 6.018538 1.992880 +v -1.886047 5.325717 1.992880 +v -1.886047 6.018538 1.992880 +v -1.286047 5.672129 1.992880 +v -5.153073 8.407032 -1.262628 +v -4.953073 8.753443 2.369192 +v -5.153073 8.407033 2.369192 +v -4.953074 8.753443 -1.262629 +v -4.553073 8.753443 2.369192 +v -4.553073 8.753443 -1.262628 +v -4.353073 8.407033 2.369192 +v -4.353075 8.407033 -1.262628 +v -4.553073 8.060623 2.369192 +v -4.328243 8.753443 -1.524871 +v -4.553073 8.060622 -1.262629 +v -4.953073 8.060623 2.369192 +v -4.953074 8.060622 -1.262628 +v -4.287720 8.407033 2.462677 +v -4.287721 8.753443 2.662677 +v -4.328242 8.407033 -1.324871 +v -4.167489 8.753443 -1.524871 +v -4.167488 8.407032 -1.324871 +v -4.328242 8.060622 -1.524871 +v -4.328242 8.060622 -1.924872 +v -4.328243 8.753443 -1.924871 +v -4.328242 8.407032 -2.124871 +v -4.167489 8.407033 -2.124871 +v -4.167489 8.753443 -1.924871 +v -4.167489 8.060622 -1.524871 +v -4.167489 8.060622 -1.924871 +v -4.287721 8.407033 3.262678 +v -3.474375 8.370343 3.062677 +v -3.719324 8.125394 3.262678 +v -4.287720 8.060623 3.062677 +v -4.287721 8.753443 3.062677 +v -4.287720 8.060623 2.662677 +v -3.964273 7.880445 2.662677 +v -2.843048 6.759220 3.062678 +v -2.843048 6.759219 2.662677 +v -3.964273 7.880445 3.062677 +v -3.719324 8.125394 2.462677 +v -3.474375 8.370342 2.662677 +v -2.598099 7.004169 3.262677 +v -2.132181 6.468293 3.062677 +v -2.353150 7.249118 2.662678 +v -2.353150 7.249118 3.062676 +v -2.598099 7.004169 2.462677 +v -2.132181 6.468293 2.662678 +v -1.486047 6.468293 2.400528 +v -1.886047 6.468293 2.400528 +v -2.132181 6.814703 2.462677 +v -2.132181 7.161114 3.062677 +v -2.132181 7.161114 2.662678 +v -2.132181 6.814704 3.262677 +v -1.286047 6.814703 2.400528 +v -1.486047 6.468293 1.992880 +v -1.886047 7.161114 2.400528 +v -2.086047 6.814703 2.400528 +v -1.486047 7.161113 2.400528 +v -2.086047 6.814703 1.992880 +v -1.486047 7.161113 1.992880 +v -1.886047 6.468293 1.992880 +v -1.886047 7.161113 1.992880 +v -1.286047 6.814704 1.992880 +v -5.153074 9.549608 -1.262629 +v -4.953073 9.896018 2.369192 +v -5.153073 9.549608 2.369192 +v -4.553074 9.896018 -1.262628 +v -4.553073 9.896019 2.369192 +v -4.353073 9.549608 2.369192 +v -4.353075 9.549608 -1.262628 +v -4.553073 9.203197 2.369192 +v -4.953074 9.896018 -1.262629 +v -4.328243 9.896018 -1.524871 +v -4.553074 9.203198 -1.262629 +v -4.953073 9.203197 2.369192 +v -4.287721 9.549608 2.462677 +v -4.287721 9.896019 2.662677 +v -4.328243 9.549608 -1.324871 +v -4.167489 9.896018 -1.524871 +v -4.167489 9.549608 -1.324871 +v -4.953074 9.203197 -1.262628 +v -4.328243 9.203197 -1.524871 +v -4.328243 9.203197 -1.924872 +v -4.328243 9.896018 -1.924872 +v -4.328243 9.549608 -2.124871 +v -4.167489 9.896018 -1.924872 +v -4.167489 9.549608 -2.124871 +v -4.167489 9.203197 -1.524871 +v -4.167489 9.203197 -1.924871 +v -4.287721 9.549608 3.262677 +v -3.474375 9.512918 3.062677 +v -3.719324 9.267969 3.262677 +v -4.287721 9.203198 3.062677 +v -4.287721 9.896019 3.062677 +v -4.287721 9.203198 2.662677 +v -3.964273 9.023020 3.062677 +v -2.843048 7.901795 2.662677 +v -3.964273 9.023020 2.662677 +v -3.719324 9.267969 2.462677 +v -3.474375 9.512918 2.662677 +v -2.598099 8.146744 3.262677 +v -2.132182 7.610868 3.062677 +v -2.843048 7.901795 3.062676 +v -2.353150 8.391693 2.662678 +v -2.353150 8.391693 3.062676 +v -2.598099 8.146744 2.462677 +v -2.132181 7.610868 2.662678 +v -1.486047 7.610868 2.400528 +v -1.886047 7.610868 2.400528 +v -2.132182 7.957278 2.462676 +v -2.132182 8.303689 2.662677 +v -2.132182 8.303689 3.062677 +v -2.132182 7.957279 3.262677 +v -1.286047 7.957279 2.400527 +v -1.486047 7.610868 1.992880 +v -1.886047 8.303689 2.400528 +v -2.086047 7.957278 2.400528 +v -1.486047 8.303689 2.400528 +v -1.886047 7.610868 1.992880 +v -2.086048 7.957278 1.992880 +v -1.486047 8.303689 1.992880 +v -1.886048 8.303689 1.992880 +v -1.286047 7.957279 1.992880 +v 2.449288 12.086695 2.748686 +v 2.435472 11.736789 1.742414 +v 2.606888 11.741015 2.722615 +v 1.925736 12.213952 1.829498 +v 2.277873 12.082468 1.768484 +v 1.756754 12.058446 2.869917 +v 2.097151 12.218179 2.809700 +v 1.456080 11.696839 1.913860 +v 1.585338 12.054219 1.889715 +v 1.785095 11.355387 2.867993 +v 1.627496 11.701066 2.894062 +v 2.137232 11.223903 2.806978 +v 1.613679 11.351160 1.887790 +v 2.477629 11.383636 2.746762 +v 1.965816 11.219676 1.826776 +v 2.306213 11.379409 1.766559 +v 3.079006 11.756838 3.894791 +v 3.013339 11.257587 3.403329 +v 3.353650 11.009044 2.987727 +v 2.946864 11.401701 3.057173 +v 2.973258 12.251863 3.406051 +v 2.918522 12.104760 3.059098 +v 3.039732 12.107749 3.752206 +v 3.068073 11.404690 3.750281 +v 4.192069 10.869774 3.660819 +v 3.846230 11.026775 3.763767 +v 4.167394 11.040281 3.559605 +v 4.250217 11.044638 3.187943 +v 2.907590 11.752612 2.914587 +v 4.046185 11.037292 2.866496 +v 3.674814 11.022550 2.783565 +v 3.474859 11.012033 3.680835 +v 3.433866 10.342274 3.290588 +v 3.754191 10.035071 3.006906 +v 3.766532 10.253000 3.128188 +v 4.126400 10.370523 3.169357 +v 3.270826 11.004687 3.359390 +v 3.499533 10.841525 3.782051 +v 4.302662 10.625999 3.389981 +v 3.323271 10.586049 3.561428 +v 3.891948 11.082392 4.037887 +v 4.342715 5.671802 9.421039 +v 3.358136 10.908063 3.976818 +v 3.096676 10.529101 3.649556 +v 4.385411 10.949966 3.796989 +v 3.859400 10.959048 3.823220 +v 4.549462 10.588362 3.395239 +v 3.260727 10.167496 3.247805 +v 4.288002 10.209400 3.067975 +v 3.991486 5.162727 8.981416 +v 4.533890 4.766362 8.702488 +v 4.211863 4.676970 8.441730 +v 5.943067 5.242333 8.639784 +v 4.874751 4.499080 8.118122 +v 5.059803 5.905983 9.503077 +v 4.613299 5.370083 9.296791 +v 4.063381 4.917514 9.220909 +v 4.400153 5.061149 9.030001 +v 5.584486 5.109457 8.822679 +v 5.722692 5.728091 9.179469 +v 4.936170 4.658408 8.506104 +v 5.591838 4.733261 8.200159 +v 5.048471 5.512198 9.346575 +v 5.371341 4.800522 8.555889 +v 5.063664 3.637277 8.996481 +v 5.632009 4.496562 8.455140 +v 4.929136 4.267024 8.374729 +v 5.760268 5.471672 9.415037 +v 5.450748 5.404243 9.150191 +v 5.976277 4.995543 8.886050 +v 5.110521 5.646038 9.732229 +v 4.197909 4.287769 9.842660 +v 4.776984 3.903368 9.614626 +v 4.413916 3.811642 9.313672 +v 4.279389 4.441387 8.691921 +v 4.407647 5.416496 9.651818 +v 5.245049 5.016293 10.353980 +v 5.766538 3.866817 9.076891 +v 6.110804 4.365798 9.507801 +v 5.392238 4.536548 8.889204 +v 5.710385 4.208190 9.721409 +v 5.521016 3.933717 9.484380 +v 5.234162 4.566006 10.186864 +v 4.542175 4.786750 10.273569 +v 5.894797 4.841926 10.036788 +v 4.658165 4.165270 9.905604 +v 5.462790 5.072921 9.417212 +v 5.581608 4.811019 9.126233 +v 4.648205 4.506197 9.019449 +v 4.718757 5.042572 9.547458 +v 4.847535 4.439744 10.142633 +v 5.591568 4.470092 10.012388 +v 5.005611 4.410285 8.844974 +v 5.134389 3.807456 9.440148 +v -2.304173 12.054219 1.762968 +v -1.611939 12.082468 1.885909 +v 4.167477 7.264459 -1.324874 +v 4.167477 7.610869 -1.924874 +v 1.286039 5.672129 1.992879 +v 2.086039 5.672129 1.992879 +v 4.167477 8.407034 -1.324873 +v 2.086039 6.814704 1.992879 +v 4.167476 9.549609 -1.324874 +v 1.286038 7.957279 1.992879 +v 1.886039 7.610869 1.992879 +v 4.111430 -0.021469 2.055716 +v 1.048779 12.530713 1.780178 +v 4.529388 4.768099 9.310428 +v 5.105383 5.168836 9.591687 +vt 0.300000 0.670213 +vt 0.300000 0.606383 +vt 0.225000 0.606383 +vt 0.150000 0.606383 +vt 0.150000 0.670213 +vt 0.075000 0.606383 +vt -0.000000 0.606383 +vt -0.000000 0.670213 +vt 0.600000 0.670213 +vt 0.600000 0.606383 +vt 0.525000 0.606383 +vt 0.525000 0.670213 +vt 0.450000 0.606383 +vt 0.450000 0.670213 +vt 0.375000 0.606383 +vt 0.375000 0.670213 +vt 0.075000 0.574468 +vt 0.000000 0.574468 +vt 0.450000 0.574468 +vt 0.450000 0.531915 +vt 0.375000 0.531915 +vt 0.225000 0.574468 +vt 0.150000 0.574468 +vt 0.600000 0.574468 +vt 0.375000 0.574468 +vt 0.300000 0.574468 +vt 0.525000 0.574468 +vt 0.000000 0.531915 +vt 0.075000 0.531915 +vt 0.075000 0.500000 +vt 0.600000 0.531915 +vt 0.150000 0.531915 +vt 0.300000 0.531915 +vt 0.225000 0.531915 +vt 0.525000 0.531915 +vt 0.375000 0.500000 +vt 0.375000 0.478723 +vt 0.300000 0.478723 +vt 0.225000 0.500000 +vt 0.450000 0.500000 +vt 0.600000 0.500000 +vt 0.525000 0.500000 +vt 0.150000 0.500000 +vt 0.300000 0.500000 +vt 0.525000 0.478723 +vt 0.600000 0.478723 +vt 0.600000 0.138298 +vt 0.450000 0.478723 +vt 0.000000 0.500000 +vt 0.075000 0.478723 +vt 0.225000 0.478723 +vt 0.150000 0.478723 +vt 0.450000 0.138298 +vt 0.450000 0.117021 +vt 0.375000 0.117021 +vt 0.150000 0.138298 +vt 0.075000 0.138298 +vt 0.300000 0.138298 +vt 0.225000 0.138298 +vt 0.375000 0.138298 +vt 0.525000 0.138298 +vt -0.000000 0.478723 +vt 0.525000 0.117021 +vt 0.525000 0.095745 +vt 0.450000 0.095745 +vt 0.600000 0.117021 +vt 0.150000 0.117021 +vt 0.300000 0.117021 +vt 0.225000 0.117021 +vt 0.000000 0.138298 +vt 0.075000 0.117021 +vt 0.300000 0.095745 +vt 0.300000 0.053191 +vt 0.225000 0.053191 +vt 0.000000 0.117021 +vt 0.075000 0.095745 +vt 0.225000 0.095745 +vt 0.375000 0.095745 +vt 0.600000 0.095745 +vt 0.150000 0.095745 +vt 0.450000 0.053191 +vt 0.450000 0.031915 +vt 0.375000 0.031915 +vt 0.375000 0.053191 +vt 0.525000 0.053191 +vt 0.075000 0.053191 +vt -0.000000 0.053191 +vt 0.600000 0.053191 +vt 0.150000 0.053191 +vt 0.150000 0.031915 +vt 0.225000 0.031915 +vt 0.225000 0.000000 +vt 0.600000 0.031915 +vt 0.300000 0.031915 +vt 0.525000 0.031915 +vt 0.075000 0.031915 +vt -0.000000 0.031915 +vt 0.650000 0.212766 +vt 0.650000 0.191489 +vt 0.650000 0.202128 +vt 0.450000 0.000000 +vt 0.600000 0.000000 +vt 0.525000 0.000000 +vt 0.150000 0.000000 +vt 0.075000 0.000000 +vt 0.300000 0.000000 +vt 0.375000 0.000000 +vt 0.700000 0.414894 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.542553 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.850000 0.414894 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.542553 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.800000 0.308511 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.850000 0.308511 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.800000 0.244681 +vt 0.750000 0.265957 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.265957 +vt 0.850000 0.244681 +vt 0.700000 0.244681 +vt 0.650000 0.244681 +vt 0.600000 0.265957 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.414894 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.850000 0.414894 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.542553 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.308511 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.800000 0.308511 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.900000 0.308511 +vt 0.700000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.750000 0.244681 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.265957 +vt 0.850000 0.244681 +vt 0.650000 0.244681 +vt 0.800000 0.244681 +vt 0.600000 0.265957 +vt 0.700000 0.244681 +vt 0.700000 0.414894 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.542553 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.850000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.414894 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.308511 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.800000 0.308511 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.800000 0.244681 +vt 0.750000 0.265957 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.900000 0.265957 +vt 0.700000 0.244681 +vt 0.650000 0.244681 +vt 0.600000 0.265957 +vt 0.600000 0.617021 +vt 1.000000 0.617021 +vt 1.000000 0.872340 +vt 0.800000 0.574468 +vt 0.725000 1.000000 +vt 0.775000 1.000000 +vt 0.775000 0.968085 +vt 0.900000 0.946809 +vt 0.900000 0.925532 +vt 0.825000 0.925532 +vt 0.775000 0.925532 +vt 0.725000 0.925532 +vt 0.725000 0.946809 +vt 0.775000 0.872340 +vt 0.725000 0.872340 +vt 0.725000 0.904255 +vt 0.725000 0.968085 +vt 0.675000 0.957447 +vt 0.700000 0.904255 +vt 0.675000 0.925532 +vt 0.775000 0.946809 +vt 0.800000 0.968085 +vt 0.825000 0.946809 +vt 0.825000 0.914894 +vt 0.775000 0.904255 +vt 0.675000 0.968085 +vt 0.675000 0.946809 +vt 0.675000 0.904255 +vt 0.600000 0.904255 +vt 0.825000 0.904255 +vt 0.825000 0.872340 +vt 0.825000 0.968085 +vt 0.900000 0.968085 +vt 0.600000 0.946809 +vt 0.500000 0.819149 +vt 0.450000 0.680851 +vt 0.600000 0.680851 +vt 0.200000 0.680851 +vt 0.400000 0.670213 +vt 0.400000 0.680851 +vt 0.450000 0.680851 +vt 0.500000 0.819149 +vt 0.600000 0.680851 +vt 0.350000 0.808511 +vt -0.000000 0.808511 +vt -0.000000 0.808511 +vt 0.450000 0.776596 +vt 0.450000 0.776596 +vt 0.600000 0.670213 +vt 0.600000 0.680851 +vt 0.400000 0.829787 +vt 0.000000 0.744681 +vt 0.400000 0.744681 +vt 0.367646 0.906487 +vt 0.264324 0.923051 +vt 0.200000 0.886356 +vt -0.000000 0.680851 +vt 0.200000 0.670213 +vt 0.000000 0.680851 +vt 0.200000 0.670213 +vt 0.200000 0.680851 +vt 0.400000 0.680851 +vt 0.600000 0.670213 +vt 0.600000 0.680851 +vt 0.000000 0.872340 +vt 0.000000 0.829787 +vt 0.400000 0.851064 +vt 0.400000 0.914894 +vt 0.425000 0.936170 +vt 0.425000 0.936170 +vt 0.400000 0.914894 +vt 0.400000 0.851064 +vt 0.032375 0.905936 +vt 0.000000 0.892689 +vt 0.400000 0.670213 +vt 0.023970 0.953893 +vt 0.000000 0.951724 +vt 0.000000 0.943542 +vt 0.000208 0.951552 +vt 0.024325 0.954014 +vt 0.000146 0.944235 +vt 0.033307 1.000013 +vt 0.149213 0.979143 +vt 0.164803 0.999942 +vt 0.049562 0.978983 +vt 0.199375 0.962579 +vt 0.200000 0.936170 +vt 0.164470 0.999838 +vt 0.049789 0.978879 +vt 0.033078 0.999768 +vt 0.199676 0.962867 +vt 0.149875 0.978930 +vt 0.136751 0.923375 +vt 0.064166 0.922831 +vt 0.200000 0.712766 +vt 0.450000 0.936170 +vt 0.450000 0.936170 +vt 0.336909 0.922751 +vt -0.000000 0.670213 +vt 0.000000 0.670213 +vt 0.400000 0.872340 +vt 0.391494 0.895694 +vt 0.199314 0.936954 +vt 0.400000 0.680851 +vt 0.000000 0.680851 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.800000 0.542553 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.287234 +vt 0.650000 0.308511 +vt 0.600000 0.308511 +vt 0.900000 0.308511 +vt 0.700000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.700000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.800000 0.542553 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.900000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.287234 +vt 0.600000 0.372340 +vt 0.650000 0.308511 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.700000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.542553 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.800000 0.372340 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.287234 +vt 0.600000 0.372340 +vt 0.650000 0.308511 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.850000 0.244681 +vt 0.700000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.225000 0.606383 +vt 0.300000 0.606383 +vt 0.300000 0.670213 +vt 0.225000 0.670213 +vt 0.150000 0.670213 +vt 0.075000 0.606383 +vt 0.150000 0.606383 +vt 0.075000 0.670213 +vt -0.000000 0.670213 +vt 0.525000 0.606383 +vt 0.600000 0.606383 +vt 0.600000 0.670213 +vt 0.450000 0.606383 +vt 0.525000 0.670213 +vt 0.375000 0.606383 +vt 0.450000 0.670213 +vt 0.375000 0.670213 +vt -0.000000 0.606383 +vt 0.000000 0.574468 +vt 0.450000 0.574468 +vt 0.375000 0.574468 +vt 0.375000 0.531915 +vt 0.150000 0.574468 +vt 0.600000 0.574468 +vt 0.225000 0.574468 +vt 0.075000 0.574468 +vt 0.525000 0.574468 +vt 0.075000 0.500000 +vt 0.075000 0.531915 +vt 0.000000 0.531915 +vt 0.600000 0.531915 +vt 0.150000 0.531915 +vt 0.300000 0.574468 +vt 0.225000 0.531915 +vt 0.300000 0.531915 +vt 0.525000 0.531915 +vt 0.375000 0.500000 +vt 0.300000 0.500000 +vt 0.300000 0.478723 +vt 0.225000 0.500000 +vt 0.450000 0.531915 +vt 0.525000 0.500000 +vt 0.150000 0.500000 +vt 0.450000 0.500000 +vt 0.600000 0.478723 +vt 0.525000 0.478723 +vt 0.525000 0.138298 +vt 0.450000 0.478723 +vt 0.075000 0.478723 +vt 0.000000 0.500000 +vt 0.150000 0.478723 +vt 0.375000 0.478723 +vt 0.600000 0.500000 +vt 0.225000 0.478723 +vt 0.450000 0.138298 +vt 0.375000 0.138298 +vt 0.375000 0.117021 +vt 0.150000 0.138298 +vt 0.300000 0.138298 +vt -0.000000 0.478723 +vt 0.000000 0.138298 +vt 0.525000 0.117021 +vt 0.450000 0.117021 +vt 0.450000 0.095745 +vt 0.600000 0.138298 +vt 0.150000 0.117021 +vt 0.075000 0.138298 +vt 0.300000 0.117021 +vt 0.225000 0.138298 +vt 0.000000 0.117021 +vt 0.225000 0.117021 +vt 0.300000 0.053191 +vt 0.300000 0.095745 +vt 0.225000 0.095745 +vt 0.075000 0.095745 +vt 0.075000 0.117021 +vt 0.150000 0.095745 +vt 0.600000 0.095745 +vt 0.600000 0.117021 +vt 0.450000 0.053191 +vt 0.375000 0.053191 +vt 0.375000 0.031915 +vt 0.375000 0.095745 +vt 0.525000 0.095745 +vt -0.000000 0.095745 +vt -0.000000 0.053191 +vt 0.225000 0.053191 +vt 0.600000 0.053191 +vt 0.150000 0.053191 +vt 0.225000 0.000000 +vt 0.225000 0.031915 +vt 0.150000 0.031915 +vt 0.600000 0.031915 +vt 0.525000 0.053191 +vt 0.075000 0.053191 +vt 0.450000 0.031915 +vt -0.000000 0.031915 +vt 0.700000 0.202128 +vt 0.675000 0.191489 +vt 0.700000 0.191489 +vt 0.375000 0.000000 +vt 0.525000 0.031915 +vt 0.525000 0.000000 +vt 0.075000 0.031915 +vt 0.075000 0.000000 +vt 0.300000 0.000000 +vt 0.300000 0.031915 +vt 0.225000 0.670213 +vt 0.075000 0.670213 +vt -0.000000 0.095745 +vt 0.675000 0.191489 +vt 0.650000 0.191489 +vt 0.700000 0.191489 +vt 0.700000 0.202128 +vt 0.675000 0.212766 +vt 0.000000 0.000000 +vt 0.600000 0.563830 +vt 0.700000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.244681 +vt 0.900000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.563830 +vt 0.900000 0.563830 +vt 0.900000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.872340 +vt 0.675000 1.000000 +vt 0.600000 0.925532 +vt 0.900000 0.563830 +vt 0.600000 0.372340 +vt 0.600000 0.244681 +vt 0.600000 0.308511 +vt 0.600000 0.244681 +vt 0.900000 0.563830 +vt 0.600000 0.308511 +vt 0.600000 0.244681 +vt 0.150000 0.000000 +vt 0.650000 0.212766 +vt 0.650000 0.191489 +vt 0.650000 0.191489 +vt 0.650000 0.202128 +vt 0.675000 0.212766 +vt 0.450000 0.000000 +vt 0.600000 0.000000 +vt 0.000000 0.000000 +vn -0.9238 0.3453 -0.1657 +vn -0.4123 0.9078 -0.0772 +vn 0.3407 0.9385 0.0565 +vn 0.8941 0.4195 0.1571 +vn 0.9238 -0.3453 0.1657 +vn 0.4123 -0.9078 0.0772 +vn -0.3407 -0.9385 -0.0565 +vn -0.8941 -0.4195 -0.1571 +vn 0.5284 0.3087 0.7909 +vn 0.5294 0.3133 0.7884 +vn 0.5323 0.3112 0.7873 +vn 0.7590 -0.6336 -0.1500 +vn 0.7580 -0.6337 -0.1542 +vn 0.7583 -0.6335 -0.1536 +vn -0.2527 -0.8746 -0.4137 +vn -0.3054 0.8529 -0.4235 +vn 0.5500 -0.2491 0.7971 +vn 0.5529 -0.2486 0.7953 +vn 0.5541 -0.2513 0.7936 +vn -0.5170 -0.3029 -0.8006 +vn -0.5229 0.2631 -0.8107 +vn 0.2495 0.8744 0.4162 +vn 0.2462 0.8809 0.4043 +vn 0.2536 0.8773 0.4074 +vn 0.3161 -0.8429 0.4355 +vn 0.3204 -0.8440 0.4301 +vn 0.3206 -0.8457 0.4267 +vn -0.4890 0.4765 0.7306 +vn 0.2248 -0.3337 0.9155 +vn 0.2198 -0.3381 0.9151 +vn 0.2183 -0.3378 0.9156 +vn -0.7475 0.6474 0.1487 +vn -0.7463 0.6488 0.1487 +vn -0.7456 0.6492 0.1503 +vn -0.2214 0.3366 -0.9153 +vn -0.2147 0.3340 -0.9178 +vn -0.2161 0.3382 -0.9159 +vn 0.5260 -0.3410 -0.7791 +vn 0.5181 -0.3369 -0.7862 +vn 0.5200 -0.3451 -0.7814 +vn 0.6598 -0.6313 0.4077 +vn 0.6560 -0.6395 0.4008 +vn 0.6575 -0.6314 0.4112 +vn -0.5228 0.3439 0.7800 +vn -0.5197 0.3458 0.7813 +vn -0.5181 0.3455 0.7824 +vn -0.6496 0.6449 -0.4026 +vn -0.6477 0.6454 -0.4049 +vn -0.6471 0.6469 -0.4035 +vn 0.2417 0.4880 -0.8387 +vn -0.8223 -0.2123 -0.5280 +vn 0.9711 -0.1414 -0.1922 +vn 0.2313 0.6321 0.7396 +vn -0.9663 0.1498 0.2096 +vn -0.1874 -0.4121 -0.8917 +vn -0.1829 -0.4058 -0.8955 +vn -0.1864 -0.4039 -0.8956 +vn 0.5147 -0.3834 -0.7669 +vn 0.5197 -0.3801 -0.7651 +vn 0.5144 -0.3751 -0.7711 +vn 0.8382 0.2409 0.4893 +vn 0.2397 0.6922 0.6808 +vn 0.3387 0.7628 -0.5509 +vn -0.0573 0.8588 -0.5092 +vn -0.1542 0.5840 -0.7970 +vn 0.3722 0.6055 -0.7035 +vn 0.1608 0.8677 -0.4704 +vn -0.1878 0.7413 -0.6444 +vn 0.0236 0.4791 -0.8774 +vn 0.3186 -0.7369 0.5962 +vn -0.9634 0.2559 0.0803 +vn -0.2337 -0.6489 -0.7240 +vn 0.5189 -0.6182 -0.5904 +vn 0.8536 0.3301 0.4030 +vn -0.5130 0.6615 0.5471 +vn -0.8477 -0.2868 -0.4462 +vn 0.9693 -0.2127 -0.1236 +vn 0.4866 0.7659 -0.4203 +vn 0.0120 -0.3567 0.9341 +vn -0.4934 -0.5400 0.6818 +vn -0.1869 -0.9202 0.3439 +vn 0.1293 -0.9073 0.4001 +vn 0.2700 -0.5089 0.8174 +vn -0.3042 -0.3696 0.8780 +vn -0.3042 -0.3697 0.8780 +vn -0.4448 -0.7681 0.4606 +vn -0.2368 -0.6709 -0.7027 +vn -0.1587 0.9224 -0.3522 +vn -0.3167 0.4746 -0.8212 +vn 0.5412 0.5096 -0.6689 +vn 0.1967 0.9369 -0.2891 +vn -0.3713 0.7309 -0.5726 +vn -0.0268 0.3036 -0.9524 +vn 0.3285 0.3181 -0.8893 +vn 0.3409 -0.7347 0.5865 +vn 0.5162 -0.6402 -0.5690 +vn 0.8511 0.3086 0.4248 +vn -0.5162 0.6402 0.5690 +vn -0.8511 -0.3086 -0.4248 +vn 0.9668 -0.2344 -0.1020 +vn 0.2368 0.6709 0.7027 +vn -0.9668 0.2344 0.1020 +vn 0.0183 -0.3345 0.9422 +vn -0.5138 -0.5274 0.6767 +vn -0.1911 -0.9276 0.3209 +vn 0.1418 -0.9140 0.3800 +vn 0.2898 -0.4946 0.8194 +vn -0.3146 -0.3481 0.8831 +vn -0.4626 -0.7675 0.4438 +vn -0.0963 -0.7035 0.7041 +vn 0.8660 0.5000 -0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.7408 0.4277 -0.5179 +vn 0.0000 0.5000 0.8660 +vn 0.6706 0.3872 -0.6327 +vn -0.8186 0.4726 0.3266 +vn 0.6706 -0.3872 -0.6327 +vn -0.8186 -0.4726 0.3265 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn -0.2292 0.4867 0.8430 +vn 0.6722 -0.3744 0.6387 +vn 0.6661 -0.3846 0.6391 +vn 0.6635 -0.3770 0.6463 +vn -0.7408 -0.4277 -0.5179 +vn 0.6635 0.3770 0.6463 +vn 0.6661 0.3846 0.6391 +vn 0.6722 0.3744 0.6387 +vn 0.7071 -0.7071 0.0000 +vn 0.2405 -0.4853 0.8406 +vn 0.2405 -0.4853 -0.8406 +vn -0.4261 0.9047 0.0000 +vn 0.4866 -0.8736 0.0000 +vn -0.2292 0.4867 -0.8430 +vn 0.2000 -0.4905 0.8482 +vn 0.2010 -0.4911 0.8476 +vn 0.1992 -0.4910 0.8481 +vn -0.3536 0.3536 -0.8660 +vn -0.3536 0.3536 0.8660 +vn 0.3536 -0.3536 0.8660 +vn 0.3536 -0.3536 -0.8660 +vn -0.7071 0.7071 0.0000 +vn 0.1993 -0.4910 -0.8481 +vn 0.2010 -0.4911 -0.8476 +vn 0.2000 -0.4905 -0.8482 +vn -0.3700 0.9290 0.0000 +vn 0.3788 -0.9255 0.0000 +vn -0.1955 0.4910 -0.8489 +vn -0.2000 0.4919 -0.8474 +vn -0.1965 0.4897 -0.8494 +vn -0.1965 0.4897 0.8494 +vn -0.2000 0.4919 0.8474 +vn -0.1955 0.4910 0.8489 +vn 0.6780 0.3675 -0.6366 +vn -0.6599 0.3773 0.6497 +vn -0.6616 0.3749 0.6494 +vn -0.6650 0.3760 0.6453 +vn -0.6650 -0.3760 0.6453 +vn -0.6616 -0.3749 0.6494 +vn -0.6600 -0.3773 0.6497 +vn 0.6780 -0.3675 -0.6366 +vn -0.8185 0.4726 0.3265 +vn 0.1993 -0.4910 0.8481 +vn 0.1993 -0.4910 -0.8480 +vn -0.1966 0.4898 0.8494 +vn -0.6600 0.3773 0.6497 +vn -0.6599 -0.3773 0.6497 +vn -0.8185 -0.4726 0.3266 +vn 0.2009 -0.4909 0.8477 +vn 0.1993 -0.4911 0.8480 +vn -0.1955 0.4911 -0.8489 +vn -0.1965 0.4898 -0.8494 +vn -0.1965 0.4898 0.8494 +vn -0.1954 0.4911 0.8489 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 0.8165 0.5774 +vn 0.8165 0.0000 0.5773 +vn -0.8165 0.0000 0.5773 +vn 0.0000 -0.8165 0.5773 +vn 0.5000 0.5000 0.7071 +vn 1.0000 0.0000 -0.0000 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.5000 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.8821 -0.4711 -0.0000 +vn -0.0000 -0.0753 -0.9972 +vn -0.0000 0.0000 -1.0000 +vn -0.8821 -0.4711 0.0000 +vn -0.0000 0.1982 -0.9802 +vn -0.3472 -0.2966 -0.8897 +vn 0.3472 -0.2966 -0.8897 +vn -0.0000 -0.3162 -0.9487 +vn -0.3568 -0.1906 -0.9145 +vn 0.3568 -0.1906 -0.9145 +vn -0.0000 0.2251 -0.9743 +vn 0.4159 0.9094 0.0000 +vn -0.4159 0.9094 0.0000 +vn 0.6917 0.3611 -0.6254 +vn -0.6706 0.3872 -0.6327 +vn 0.8185 0.4726 0.3266 +vn -0.6711 -0.3707 -0.6420 +vn 0.7107 -0.3518 0.6093 +vn 0.2310 0.4662 0.8540 +vn -0.6635 -0.3770 0.6463 +vn -0.6661 -0.3846 0.6391 +vn -0.6722 -0.3744 0.6387 +vn 0.7408 -0.4277 -0.5179 +vn -0.6635 0.3770 0.6463 +vn -0.6666 0.3727 0.6456 +vn -0.6722 0.3744 0.6387 +vn -0.2505 -0.4496 0.8574 +vn -0.2405 -0.4853 -0.8406 +vn 0.4261 0.9047 -0.0000 +vn -0.4866 -0.8736 0.0000 +vn 0.2292 0.4867 -0.8430 +vn -0.1992 -0.4910 0.8481 +vn -0.2010 -0.4911 0.8476 +vn -0.2000 -0.4905 0.8482 +vn 0.3536 0.3536 -0.8660 +vn 0.3536 0.3536 0.8660 +vn -0.3536 -0.3536 0.8660 +vn -0.3536 -0.3536 -0.8660 +vn -0.1993 -0.4910 -0.8481 +vn -0.1992 -0.4900 -0.8487 +vn -0.2000 -0.4905 -0.8482 +vn 0.3700 0.9290 -0.0000 +vn -0.3788 -0.9255 -0.0000 +vn 0.1955 0.4910 -0.8489 +vn 0.1953 0.4904 -0.8493 +vn 0.1965 0.4897 -0.8494 +vn 0.1955 0.4910 0.8489 +vn 0.2000 0.4919 0.8474 +vn 0.1965 0.4897 0.8494 +vn -0.6780 0.3675 -0.6366 +vn 0.6650 0.3760 0.6453 +vn 0.6616 0.3749 0.6494 +vn 0.6600 0.3773 0.6497 +vn 0.6650 -0.3760 0.6453 +vn 0.6615 -0.3819 0.6455 +vn 0.6600 -0.3773 0.6497 +vn -0.7285 -0.4206 -0.5408 +vn -0.1992 -0.4910 -0.8481 +vn 0.1953 0.4904 -0.8494 +vn 0.1966 0.4898 -0.8494 +vn 0.6599 0.3773 0.6497 +vn -0.1993 -0.4900 -0.8487 +vn 0.1965 0.4898 -0.8494 +vn 0.8939 0.4195 -0.1581 +vn 0.3394 0.9385 -0.0634 +vn -0.4139 0.9078 0.0685 +vn -0.9247 0.3453 0.1602 +vn -0.8939 -0.4195 0.1581 +vn -0.3394 -0.9385 0.0634 +vn 0.4139 -0.9078 -0.0685 +vn 0.9247 -0.3453 -0.1602 +vn -0.5527 0.2549 0.7935 +vn -0.5555 0.2544 0.7916 +vn -0.5567 0.2571 0.7899 +vn -0.7062 -0.6894 -0.1611 +vn -0.6997 -0.6973 -0.1559 +vn -0.7053 -0.6894 -0.1650 +vn 0.3218 -0.8460 -0.4250 +vn 0.2526 0.8715 -0.4203 +vn -0.5341 -0.3054 0.7884 +vn -0.5331 -0.3026 0.7901 +vn -0.5302 -0.3029 0.7919 +vn 0.5409 -0.2499 -0.8031 +vn 0.5189 0.2970 -0.8016 +vn -0.3186 0.8460 0.4275 +vn -0.3228 0.8471 0.4221 +vn -0.3230 0.8487 0.4187 +vn -0.2535 -0.8743 0.4140 +vn -0.2535 -0.8726 0.4174 +vn -0.2494 -0.8713 0.4228 +vn 0.4484 0.5033 0.7386 +vn -0.1928 -0.3667 0.9101 +vn -0.1941 -0.3673 0.9096 +vn -0.1995 -0.3633 0.9101 +vn 0.6917 0.7039 0.1616 +vn 0.6924 0.7035 0.1599 +vn 0.6938 0.7022 0.1599 +vn 0.1959 0.3658 -0.9098 +vn 0.1924 0.3674 -0.9099 +vn 0.1904 0.3670 -0.9105 +vn -0.4960 -0.3706 -0.7853 +vn -0.4908 -0.3746 -0.7867 +vn -0.4896 -0.3741 -0.7876 +vn -0.6063 -0.6870 0.4005 +vn -0.6042 -0.6949 0.3899 +vn -0.6086 -0.6870 0.3970 +vn 0.4876 0.3744 0.7887 +vn 0.4893 0.3748 0.7875 +vn 0.4925 0.3731 0.7863 +vn 0.5973 0.6998 -0.3917 +vn 0.5960 0.7012 -0.3913 +vn 0.5947 0.7016 -0.3926 +vn -0.2779 0.4791 -0.8326 +vn 0.8375 -0.1393 -0.5284 +vn -0.9533 -0.2123 -0.2149 +vn -0.2096 0.4765 0.8538 +vn 0.9510 0.2227 0.2145 +vn 0.2196 -0.3752 -0.9006 +vn 0.2161 -0.3775 -0.9005 +vn 0.2213 -0.3834 -0.8967 +vn -0.4812 -0.4120 -0.7738 +vn -0.4781 -0.4058 -0.7789 +vn -0.4816 -0.4039 -0.7778 +vn -0.8363 0.1498 0.5274 +vn -0.2949 0.6615 0.6895 +vn -0.3968 0.7413 -0.5413 +vn -0.0098 0.8677 -0.4971 +vn 0.1091 0.6055 -0.7883 +vn -0.4175 0.5840 -0.6961 +vn -0.2280 0.8588 -0.4589 +vn 0.1298 0.7628 -0.6335 +vn -0.0597 0.4880 -0.8708 +vn -0.2605 -0.7681 0.5850 +vn 0.9400 0.3301 0.0867 +vn 0.2857 -0.6182 -0.7322 +vn -0.4673 -0.6489 -0.6004 +vn -0.8778 0.2559 0.4049 +vn 0.4580 0.6922 0.5577 +vn 0.8686 -0.2127 -0.4476 +vn -0.9492 -0.2869 -0.1294 +vn -0.9492 -0.2868 -0.1294 +vn -0.5448 0.7309 -0.4111 +vn 0.0144 -0.3696 0.9291 +vn 0.5333 -0.5089 0.6758 +vn 0.2584 -0.9073 0.3317 +vn -0.0580 -0.9202 0.3871 +vn -0.2305 -0.5400 0.8095 +vn 0.3308 -0.3567 0.8737 +vn 0.5033 -0.7369 0.4513 +vn 0.2904 -0.6402 -0.7112 +vn 0.0859 0.9369 -0.3390 +vn 0.2798 0.5096 -0.8136 +vn -0.5785 0.4746 -0.6634 +vn -0.2696 0.9224 -0.2767 +vn 0.3135 0.7659 -0.5614 +vn 0.0046 0.3181 -0.9480 +vn -0.3509 0.3036 -0.8858 +vn -0.2829 -0.7675 0.5753 +vn -0.4629 -0.6709 -0.5794 +vn -0.8736 0.2344 0.4265 +vn 0.4629 0.6709 0.5794 +vn 0.8736 -0.2344 -0.4265 +vn -0.9450 -0.3086 -0.1081 +vn -0.2904 0.6402 0.7112 +vn 0.9450 0.3086 0.1081 +vn 0.0064 -0.3481 0.9374 +vn 0.5526 -0.4946 0.6708 +vn 0.2632 -0.9140 0.3086 +vn -0.0698 -0.9276 0.3669 +vn -0.2514 -0.5274 0.8116 +vn 0.3394 -0.3345 0.8792 +vn 0.5210 -0.7347 0.4345 +vn 0.1503 -0.7035 0.6946 +vn 0.5313 0.3085 0.7890 +vn 0.7530 -0.6419 -0.1448 +vn -0.2380 -0.8833 -0.4040 +vn -0.3194 0.8429 -0.4330 +vn 0.5514 -0.2536 0.7948 +vn -0.5003 -0.3209 -0.8042 +vn -0.5383 0.2440 -0.8067 +vn 0.2536 0.8757 0.4108 +vn 0.3133 -0.8499 0.4237 +vn -0.5206 0.6014 0.6061 +vn 0.2149 -0.3296 0.9194 +vn -0.7466 0.6478 0.1514 +vn -0.2181 0.3385 -0.9154 +vn 0.5212 -0.3455 -0.7804 +vn 0.6575 -0.6313 0.4113 +vn -0.5173 0.3413 0.7848 +vn -0.6484 0.6464 -0.4023 +vn -0.8314 -0.2150 -0.5124 +vn 0.9677 -0.1393 -0.2101 +vn 0.1687 0.5033 0.8475 +vn -0.9715 0.1671 0.1679 +vn -0.1933 -0.4091 -0.8918 +vn 0.5110 -0.3775 -0.7722 +vn 0.8203 0.2227 0.5269 +vn -0.5138 -0.5274 0.6766 +vn -0.6917 0.3611 -0.6254 +vn 0.6711 0.3707 -0.6420 +vn -0.7107 0.3518 0.6093 +vn 0.6711 -0.3707 -0.6420 +vn -0.7107 -0.3518 0.6093 +vn -0.2310 0.4662 0.8540 +vn 0.6666 -0.3727 0.6456 +vn -0.6917 -0.3611 -0.6254 +vn 0.6666 0.3727 0.6456 +vn 0.2505 -0.4496 0.8574 +vn 0.2505 -0.4496 -0.8574 +vn -0.2310 0.4662 -0.8540 +vn 0.1992 -0.4900 0.8487 +vn 0.1992 -0.4900 -0.8487 +vn -0.1953 0.4904 -0.8493 +vn -0.1953 0.4904 0.8493 +vn 0.7285 0.4206 -0.5408 +vn -0.6615 0.3819 0.6455 +vn -0.6615 -0.3819 0.6455 +vn 0.7285 -0.4206 -0.5408 +vn -0.1953 0.4904 -0.8494 +vn -0.1953 0.4904 0.8494 +vn 0.7408 0.4277 -0.5179 +vn -0.6711 0.3707 -0.6420 +vn 0.7107 0.3518 0.6093 +vn -0.6706 -0.3872 -0.6327 +vn 0.8186 -0.4726 0.3266 +vn 0.2292 0.4867 0.8430 +vn -0.6666 -0.3727 0.6456 +vn 0.6917 -0.3611 -0.6254 +vn -0.6661 0.3846 0.6391 +vn -0.2405 -0.4853 0.8406 +vn -0.2505 -0.4496 -0.8574 +vn 0.2310 0.4662 -0.8540 +vn -0.1992 -0.4900 0.8487 +vn -0.2010 -0.4911 -0.8476 +vn 0.2000 0.4919 -0.8474 +vn 0.1953 0.4904 0.8494 +vn -0.7285 0.4206 -0.5408 +vn 0.6615 0.3819 0.6455 +vn 0.6616 -0.3749 0.6494 +vn -0.6780 -0.3675 -0.6366 +vn 0.8185 -0.4726 0.3266 +vn 0.8186 -0.4726 0.3265 +vn 0.1953 0.4904 0.8493 +vn -0.5540 0.2594 0.7911 +vn -0.7053 -0.6894 -0.1653 +vn 0.3078 -0.8560 -0.4155 +vn 0.2378 0.8802 -0.4107 +vn -0.5311 -0.3075 0.7895 +vn 0.5256 -0.2691 -0.8070 +vn 0.5021 0.3149 -0.8054 +vn -0.3158 0.8529 0.4157 +vn -0.2460 -0.8778 0.4110 +vn 0.4703 0.6321 0.6159 +vn -0.1899 -0.3584 0.9141 +vn 0.6928 0.7025 0.1626 +vn 0.1894 0.3627 -0.9124 +vn -0.4883 -0.3657 -0.7923 +vn -0.6063 -0.6869 0.4006 +vn 0.4872 0.3701 0.7910 +vn 0.5955 0.7001 -0.3940 +vn 0.8468 -0.1414 -0.5128 +vn -0.9565 -0.2150 -0.1971 +vn -0.2819 0.6014 0.7476 +vn 0.9550 0.2409 0.1731 +vn 0.2267 -0.3801 -0.8968 +vn -0.4866 -0.4091 -0.7719 +vn -0.8555 0.1671 0.4900 +vn 0.0144 -0.3697 0.9291 +s 1 +f 162/264/123 164/265/123 163/266/123 +f 163/266/124 166/267/124 165/268/124 +f 165/268/125 166/267/125 167/269/125 +f 167/269/126 169/270/126 168/271/126 +f 168/272/127 169/273/127 170/274/127 +f 171/275/128 170/274/128 172/276/128 +f 173/277/129 172/276/129 174/278/129 +f 175/279/130 174/278/130 164/265/130 +f 167/269/131 177/280/132 176/281/133 +f 178/282/134 180/283/135 179/284/136 +f 174/278/137 172/276/137 178/282/137 +f 163/266/138 182/285/138 181/286/138 +f 170/274/139 169/273/140 176/287/141 +f 164/265/142 174/278/142 183/288/142 +f 164/265/143 184/289/143 182/285/143 +f 166/267/144 181/286/145 177/280/146 +f 172/276/147 170/274/148 185/290/149 +f 186/291/150 188/292/150 187/293/150 +f 185/290/151 176/287/152 186/294/153 +f 177/280/154 181/286/155 189/295/156 +f 184/289/157 191/296/158 190/297/159 +f 183/288/160 179/284/161 191/296/162 +f 178/282/163 185/290/164 192/298/165 +f 176/281/166 177/280/167 188/292/168 +f 182/285/169 190/297/170 189/295/171 +f 193/299/172 195/300/172 194/301/172 +f 189/295/173 190/297/173 196/302/173 +f 180/283/174 197/303/174 193/299/174 +f 186/294/175 199/304/175 198/305/175 +f 188/292/176 189/295/176 200/306/176 +f 190/297/177 191/296/178 201/307/179 +f 179/284/180 193/299/181 201/307/182 +f 192/298/183 198/305/183 197/303/183 +f 202/308/184 204/309/184 203/310/184 +f 198/305/185 202/308/185 205/311/185 +f 199/312/186 187/293/186 206/313/186 +f 200/306/187 196/302/187 207/314/187 +f 197/303/188 205/311/188 195/300/188 +f 199/304/189 204/309/189 202/308/189 +f 187/293/190 200/306/190 208/315/190 +f 201/307/191 194/301/191 207/314/191 +f 209/316/192 211/317/192 210/318/192 +f 208/315/193 213/319/193 212/320/193 +f 194/301/194 215/321/194 214/322/194 +f 194/301/195 195/300/195 216/323/195 +f 205/311/196 202/308/196 217/324/196 +f 204/325/197 206/313/197 212/320/197 +f 207/314/198 214/322/198 213/319/198 +f 195/300/199 205/311/199 209/316/199 +f 218/326/200 220/327/200 219/328/200 +f 217/324/201 203/310/201 221/329/201 +f 212/320/202 213/319/202 222/330/202 +f 215/321/203 224/331/203 223/332/203 +f 216/323/204 210/318/204 224/331/204 +f 217/324/205 218/326/205 211/317/205 +f 203/333/206 212/320/207 225/334/207 +f 213/319/208 214/322/208 223/332/208 +f 226/335/209 228/336/209 227/337/209 +f 221/338/210 225/334/210 229/339/210 +f 222/330/211 223/332/211 230/340/211 +f 211/317/212 219/328/212 231/341/212 +f 218/326/213 221/329/213 232/342/213 +f 225/334/214 222/330/214 233/343/214 +f 223/332/215 224/331/215 226/335/215 +f 210/318/216 231/341/216 226/335/216 +f 234/344/217 236/345/217 235/346/217 +f 226/335/218 231/341/218 237/347/218 +f 219/328/219 220/327/219 238/348/219 +f 229/339/220 240/349/220 239/350/220 +f 233/343/221 230/340/221 227/337/221 +f 219/328/222 234/344/222 237/347/222 +f 220/327/223 232/342/223 239/351/223 +f 233/343/224 241/352/224 240/349/224 +f 242/353/219 244/354/219 243/355/219 +f 238/348/225 239/351/225 245/356/225 +f 240/349/226 241/352/226 242/353/226 +f 227/337/227 228/336/227 246/357/227 +f 228/336/228 237/347/228 235/346/228 +f 238/348/229 247/358/229 236/345/229 +f 240/349/230 248/359/230 245/360/230 +f 227/337/231 244/354/231 242/353/231 +f 249/361/232 251/362/232 250/363/232 +f 235/346/224 236/345/224 250/364/224 +f 245/356/209 252/365/209 249/366/209 +f 242/353/222 254/367/222 253/368/222 +f 244/354/223 246/357/223 255/369/223 +f 235/346/220 251/370/220 255/369/220 +f 236/345/221 247/358/221 249/366/221 +f 245/360/218 248/359/218 253/368/218 +f 256/371/233 258/372/233 257/373/233 +f 259/374/234 256/371/234 260/375/234 +f 261/376/235 259/374/235 262/377/235 +f 263/378/236 261/379/236 264/380/236 +f 265/381/234 262/377/234 260/375/234 +f 266/382/237 263/378/237 267/383/237 +f 266/382/238 268/384/238 257/373/238 +f 259/374/239 261/376/239 269/385/239 +f 270/386/240 265/381/240 271/387/240 +f 268/384/237 267/383/237 272/388/237 +f 273/389/241 260/375/241 257/373/241 +f 270/386/242 264/390/242 262/377/242 +f 257/373/243 268/384/243 274/391/243 +f 267/383/244 264/380/244 270/392/244 +f 273/389/245 276/393/245 275/394/245 +f 275/394/246 276/393/246 274/391/246 +f 277/395/247 272/388/247 270/392/247 +f 271/387/234 265/381/234 273/389/234 +f 278/396/237 274/391/237 272/388/237 +f 279/397/248 281/398/248 280/399/248 +f 282/400/249 266/382/250 258/372/251 +f 269/401/252 261/379/252 263/378/252 +f 256/371/234 259/374/234 283/402/234 +f 284/403/237 263/378/237 266/382/237 +f 258/372/253 256/371/254 281/398/255 +f 285/404/256 287/405/256 286/406/256 +f 282/400/257 279/397/257 288/407/257 +f 289/408/258 269/401/258 284/403/258 +f 281/398/259 283/402/259 290/409/259 +f 284/403/260 282/400/260 287/405/260 +f 290/409/261 283/402/261 269/385/261 +f 291/410/262 286/406/263 292/411/264 +f 293/412/265 290/409/265 289/413/265 +f 288/407/266 280/399/266 294/414/266 +f 286/406/267 287/405/267 288/407/267 +f 295/415/268 289/408/268 285/404/268 +f 294/414/269 280/399/269 290/409/269 +f 296/416/237 291/410/237 297/417/237 +f 295/415/270 298/418/271 296/416/272 +f 299/419/273 294/414/273 293/412/273 +f 296/416/274 298/418/274 286/406/274 +f 293/412/275 295/420/276 300/421/277 +f 301/422/278 292/411/279 294/414/280 +f 302/423/236 297/417/236 303/424/236 +f 304/425/281 305/426/281 300/421/281 +f 303/424/282 301/422/283 299/419/284 +f 291/410/285 301/422/286 303/424/287 +f 300/427/288 296/416/288 306/428/288 +f 307/429/234 299/419/234 305/426/234 +f 308/430/238 306/428/238 309/431/238 +f 310/432/234 307/429/234 304/425/234 +f 306/428/237 297/417/237 302/423/237 +f 311/433/233 304/425/233 308/434/233 +f 303/424/235 307/429/235 310/432/235 +f 312/435/233 314/436/233 313/437/233 +f 315/438/234 316/439/234 313/437/234 +f 317/440/235 315/438/235 318/441/235 +f 319/442/236 317/443/236 320/444/236 +f 321/445/234 318/441/234 313/437/234 +f 322/446/237 319/442/237 323/447/237 +f 312/435/238 322/446/238 324/448/238 +f 315/438/239 317/440/239 325/449/239 +f 326/450/240 321/445/240 327/451/240 +f 324/448/237 323/447/237 328/452/237 +f 329/453/241 313/437/241 314/436/241 +f 326/450/289 320/454/289 318/441/289 +f 314/436/243 324/448/243 330/455/243 +f 323/447/244 320/444/244 326/456/244 +f 331/457/245 329/453/245 332/458/245 +f 333/459/246 332/458/246 330/455/246 +f 334/460/247 328/452/247 326/456/247 +f 327/451/234 321/445/234 329/453/234 +f 335/461/237 330/455/237 328/452/237 +f 336/462/248 338/463/248 337/464/248 +f 339/465/249 322/446/250 312/435/251 +f 325/466/252 317/443/252 319/442/252 +f 316/439/234 315/438/234 340/467/234 +f 341/468/237 319/442/237 322/446/237 +f 312/435/253 316/439/254 338/463/255 +f 342/469/256 344/470/256 343/471/256 +f 339/465/257 336/462/257 345/472/257 +f 346/473/258 325/466/258 341/468/258 +f 337/464/259 338/463/259 340/467/259 +f 344/470/260 341/468/260 339/465/260 +f 347/474/261 340/467/261 325/449/261 +f 348/475/262 350/476/263 349/477/290 +f 351/478/265 347/474/265 346/479/265 +f 349/477/266 345/472/266 337/464/266 +f 343/471/267 345/472/267 349/477/267 +f 352/480/268 346/473/268 344/470/268 +f 353/481/269 337/464/269 347/474/269 +f 354/482/237 348/475/237 355/483/237 +f 352/480/291 342/469/271 354/482/272 +f 356/484/273 353/481/273 351/478/273 +f 354/482/274 342/469/274 350/476/274 +f 351/478/275 352/485/276 357/486/277 +f 358/487/292 349/477/279 353/481/280 +f 355/483/236 360/488/236 359/489/236 +f 361/490/281 362/491/281 357/486/281 +f 360/488/293 358/487/283 356/484/284 +f 348/475/285 358/487/286 360/488/294 +f 357/492/288 354/482/288 363/493/288 +f 364/494/234 356/484/234 362/491/234 +f 365/495/238 363/493/238 366/496/238 +f 364/494/234 361/490/234 367/497/234 +f 363/493/237 355/483/237 368/498/237 +f 367/497/233 361/490/233 365/499/233 +f 360/488/235 364/494/235 369/500/235 +f 370/501/233 372/502/233 371/503/233 +f 373/504/234 370/501/234 374/505/234 +f 375/506/235 373/504/235 376/507/235 +f 375/508/236 378/509/236 377/510/236 +f 379/511/234 376/507/234 374/505/234 +f 380/512/237 381/513/237 377/510/237 +f 380/512/238 382/514/238 371/503/238 +f 373/504/239 375/506/239 383/515/239 +f 384/516/240 379/511/240 385/517/240 +f 382/514/237 377/510/237 386/518/237 +f 387/519/241 374/505/241 371/503/241 +f 384/516/289 378/520/289 376/507/289 +f 371/503/243 382/514/243 388/521/243 +f 377/510/295 378/509/295 384/522/295 +f 389/523/245 387/519/245 390/524/245 +f 391/525/246 390/524/246 388/521/246 +f 392/526/247 386/518/247 384/522/247 +f 385/517/234 379/511/234 387/519/234 +f 393/527/237 388/521/237 386/518/237 +f 394/528/248 396/529/248 395/530/248 +f 397/531/249 380/512/250 372/502/251 +f 383/532/252 375/508/252 381/513/252 +f 370/501/234 373/504/234 398/533/234 +f 399/534/237 381/513/237 380/512/237 +f 372/502/253 370/501/254 396/529/255 +f 400/535/256 402/536/256 401/537/256 +f 397/531/257 394/528/257 403/538/257 +f 404/539/258 383/532/258 399/534/258 +f 396/529/259 398/533/259 405/540/259 +f 402/536/260 399/534/260 397/531/260 +f 405/540/261 398/533/261 383/515/261 +f 406/541/296 408/542/263 407/543/297 +f 409/544/265 405/540/265 404/545/265 +f 403/538/266 395/530/266 410/546/266 +f 408/542/267 401/537/267 403/538/267 +f 411/547/268 404/539/268 402/536/268 +f 410/546/269 395/530/269 405/540/269 +f 412/548/237 406/541/237 413/549/237 +f 411/547/270 400/535/271 412/548/272 +f 414/550/273 410/546/273 409/544/273 +f 412/548/274 400/535/274 408/542/274 +f 409/544/298 411/551/276 415/552/299 +f 416/553/300 407/543/279 410/546/301 +f 417/554/236 413/549/236 418/555/236 +f 419/556/281 420/557/281 415/552/281 +f 418/555/293 416/553/283 414/550/284 +f 406/541/285 416/553/286 418/555/287 +f 415/558/288 412/548/288 421/559/288 +f 422/560/234 414/550/234 420/557/234 +f 423/561/238 424/562/238 421/559/238 +f 425/563/234 422/560/234 419/556/234 +f 421/559/237 413/549/237 417/554/237 +f 426/564/233 419/556/233 424/565/233 +f 418/555/235 422/560/235 425/563/235 +f 427/566/302 429/567/302 428/568/302 +f 429/567/302 427/566/302 430/569/302 +f 431/570/269 433/571/269 432/572/269 +f 434/573/303 436/574/303 435/575/303 +f 437/576/302 439/577/302 438/578/302 +f 440/579/256 442/580/256 441/581/256 +f 443/582/304 438/578/304 444/583/304 +f 439/577/305 441/584/305 445/585/305 +f 446/586/306 432/587/306 447/588/306 +f 437/576/307 435/589/307 448/590/307 +f 431/570/234 443/582/234 444/591/234 +f 444/592/308 438/578/308 439/577/308 +f 445/585/309 441/593/309 442/594/309 +f 439/577/310 437/576/310 448/590/310 +f 448/590/237 435/595/237 436/596/237 +f 435/575/311 437/576/311 446/586/311 +f 447/588/312 432/597/312 433/598/312 +f 432/572/313 446/586/313 438/578/313 +f 449/599/314 444/592/314 445/585/314 +f 450/600/309 452/601/309 451/602/309 +f 453/603/237 455/604/237 454/605/237 +f 456/606/312 458/607/312 457/608/312 +f 452/609/302 459/610/302 460/611/302 +f 450/600/309 461/612/309 452/601/309 +f 462/613/312 458/607/312 456/606/312 +f 454/605/315 464/614/315 463/615/315 +f 461/616/316 456/617/316 452/618/316 +f 465/619/317 467/620/317 466/621/317 +f 468/622/318 469/623/318 453/603/318 +f 470/624/318 472/625/318 471/626/318 +f 473/627/315 474/628/315 468/629/315 +f 461/616/319 475/630/319 462/631/319 +f 475/632/312 477/633/312 476/634/312 +f 464/635/309 479/636/309 478/637/309 +f 480/638/317 477/639/317 475/630/317 +f 471/626/237 481/640/237 473/627/237 +f 480/641/320 476/642/320 477/643/320 +f 464/644/321 465/645/321 479/646/321 +f 472/647/322 482/648/322 481/649/322 +f 472/647/323 480/641/323 483/650/323 +f 474/651/324 482/648/324 466/652/324 +f 469/653/322 484/654/322 455/655/322 +f 474/656/323 467/657/323 469/653/323 +f 455/655/324 465/645/324 464/644/324 +f 480/638/317 482/658/317 483/659/317 +f 453/603/237 469/623/237 455/604/237 +f 452/618/325 456/617/325 459/660/325 +f 450/600/309 463/661/309 461/612/309 +f 462/613/312 470/662/312 458/607/312 +f 454/605/315 455/604/315 464/614/315 +f 461/616/316 462/631/316 456/617/316 +f 465/619/317 484/663/317 467/620/317 +f 468/622/318 474/664/318 469/623/318 +f 470/624/318 476/665/318 472/625/318 +f 473/627/315 481/640/315 474/628/315 +f 461/616/319 478/666/319 475/630/319 +f 476/634/312 470/662/312 475/632/312 +f 462/613/312 475/632/312 470/662/312 +f 478/637/309 461/612/309 463/661/309 +f 463/661/309 464/635/309 478/637/309 +f 475/630/317 478/666/317 466/621/317 +f 479/667/317 465/619/317 478/666/317 +f 466/621/317 480/638/317 475/630/317 +f 478/666/317 465/619/317 466/621/317 +f 471/626/237 472/625/237 481/640/237 +f 472/647/322 483/650/322 482/648/322 +f 472/647/323 476/642/323 480/641/323 +f 474/651/324 481/649/324 482/648/324 +f 469/653/322 467/657/322 484/654/322 +f 474/656/323 466/668/323 467/657/323 +f 455/655/324 484/654/324 465/645/324 +f 480/638/317 466/621/317 482/658/317 +f 451/669/326 452/618/326 459/660/326 +f 456/617/327 457/670/327 459/660/327 +f 485/671/235 487/672/235 486/673/235 +f 488/674/234 486/673/234 489/675/234 +f 490/676/233 489/675/233 491/677/233 +f 492/678/238 491/679/238 493/680/238 +f 488/674/234 490/676/234 494/681/234 +f 495/682/237 493/680/237 496/683/237 +f 497/684/236 496/683/236 487/672/236 +f 489/675/328 499/685/328 498/686/328 +f 494/681/240 501/687/240 500/688/240 +f 497/684/237 503/689/237 502/690/237 +f 485/671/329 488/674/329 504/691/329 +f 490/676/330 492/692/330 501/687/330 +f 485/671/331 505/693/331 503/689/331 +f 495/682/332 502/690/332 501/694/332 +f 504/691/245 507/695/245 506/696/245 +f 503/689/246 505/693/246 506/696/246 +f 501/694/247 502/690/247 508/697/247 +f 504/691/234 494/681/234 509/698/234 +f 502/690/237 503/689/237 510/699/237 +f 511/700/333 513/701/333 512/702/333 +f 487/672/334 496/683/335 514/703/336 +f 493/680/337 491/679/337 498/704/337 +f 486/673/234 515/705/234 499/685/234 +f 496/683/237 493/680/237 516/706/237 +f 487/672/338 511/700/339 515/705/340 +f 517/707/303 519/708/303 518/709/303 +f 514/703/341 520/710/341 513/701/341 +f 516/706/342 498/704/342 521/711/342 +f 499/685/343 515/705/343 512/702/343 +f 516/706/344 517/707/344 520/710/344 +f 498/686/345 499/685/345 522/712/345 +f 523/713/346 518/709/347 524/714/348 +f 522/712/349 526/715/349 525/716/349 +f 512/702/350 513/701/350 523/713/350 +f 520/710/351 518/709/351 523/713/351 +f 517/707/352 521/711/352 525/717/352 +f 522/712/314 512/702/314 527/718/314 +f 528/719/237 530/720/237 529/721/237 +f 525/717/353 531/722/354 528/719/355 +f 526/715/356 527/718/356 532/723/356 +f 519/708/357 528/719/357 524/714/357 +f 526/715/358 533/724/359 531/725/360 +f 527/718/361 523/713/362 534/726/363 +f 535/727/238 529/721/238 536/728/238 +f 531/725/364 533/724/364 537/729/364 +f 532/723/365 534/726/366 535/727/367 +f 524/714/368 529/721/369 535/727/370 +f 531/722/371 538/730/371 530/720/371 +f 533/724/234 532/723/234 539/731/234 +f 530/720/236 538/730/236 540/732/236 +f 537/729/234 539/731/234 541/733/234 +f 530/720/237 542/734/237 536/728/237 +f 538/735/235 537/729/235 543/736/235 +f 535/727/233 544/737/233 541/733/233 +f 545/738/235 547/739/235 546/740/235 +f 548/741/234 546/740/234 549/742/234 +f 550/743/233 549/742/233 551/744/233 +f 552/745/238 551/746/238 553/747/238 +f 548/741/234 550/743/234 554/748/234 +f 555/749/237 553/747/237 556/750/237 +f 557/751/236 556/750/236 547/739/236 +f 549/742/328 559/752/328 558/753/328 +f 560/754/240 562/755/240 561/756/240 +f 557/751/237 564/757/237 563/758/237 +f 545/738/329 548/741/329 565/759/329 +f 550/743/330 552/760/330 560/754/330 +f 545/738/331 566/761/331 564/757/331 +f 555/749/332 563/758/332 560/762/332 +f 565/759/245 568/763/245 567/764/245 +f 564/757/246 566/761/246 567/764/246 +f 563/758/247 569/765/247 562/766/247 +f 565/759/234 554/748/234 561/756/234 +f 563/758/237 564/757/237 570/767/237 +f 571/768/333 573/769/333 572/770/333 +f 547/739/334 556/750/335 574/771/336 +f 553/747/337 551/746/337 558/772/337 +f 546/740/234 575/773/234 559/752/234 +f 556/750/237 553/747/237 576/774/237 +f 547/739/338 571/768/339 575/773/340 +f 577/775/303 579/776/303 578/777/303 +f 574/771/341 580/778/341 573/769/341 +f 576/774/342 558/772/342 581/779/342 +f 559/752/343 575/773/343 572/770/343 +f 574/771/344 576/774/344 577/775/344 +f 558/753/345 559/752/345 582/780/345 +f 583/781/346 578/777/347 584/782/348 +f 581/783/349 582/780/349 585/784/349 +f 573/769/350 583/781/350 586/785/350 +f 573/769/351 580/778/351 578/777/351 +f 577/775/352 581/779/352 587/786/352 +f 582/780/314 572/770/314 586/785/314 +f 588/787/237 590/788/237 589/789/237 +f 587/786/372 591/790/354 588/787/355 +f 585/784/356 586/785/356 592/791/356 +f 579/776/357 588/787/357 584/782/357 +f 585/784/358 593/792/373 591/793/374 +f 586/785/361 583/781/362 594/794/363 +f 595/795/238 589/789/238 596/796/238 +f 591/793/364 593/792/364 597/797/364 +f 592/791/365 594/794/366 595/795/375 +f 584/782/368 589/789/369 595/795/370 +f 591/790/371 598/798/371 590/788/371 +f 593/792/234 592/791/234 599/799/234 +f 590/788/236 598/798/236 600/800/236 +f 597/797/234 599/799/234 601/801/234 +f 590/788/237 602/802/237 596/796/237 +f 598/803/235 597/797/235 603/804/235 +f 599/799/233 595/795/233 604/805/233 +f 605/806/235 607/807/235 606/808/235 +f 606/808/234 609/809/234 608/810/234 +f 608/810/233 609/809/233 610/811/233 +f 611/812/238 610/813/238 612/814/238 +f 613/815/234 608/810/234 614/816/234 +f 615/817/237 612/814/237 616/818/237 +f 616/818/236 607/807/236 605/806/236 +f 609/809/328 618/819/328 617/820/328 +f 619/821/240 621/822/240 620/823/240 +f 622/824/237 624/825/237 623/826/237 +f 605/806/329 613/815/329 625/827/329 +f 608/810/330 611/828/330 619/821/330 +f 605/806/331 626/829/331 624/825/331 +f 615/817/332 623/826/332 619/830/332 +f 626/829/245 625/827/245 627/831/245 +f 624/825/246 626/829/246 628/832/246 +f 619/830/247 623/826/247 629/833/247 +f 614/816/234 620/823/234 627/831/234 +f 623/826/237 624/825/237 630/834/237 +f 631/835/333 633/836/333 632/837/333 +f 607/807/334 616/818/335 634/838/336 +f 612/814/337 610/813/337 617/839/337 +f 606/808/234 635/840/234 618/819/234 +f 616/818/237 612/814/237 636/841/237 +f 607/807/338 631/835/339 635/840/340 +f 637/842/303 639/843/303 638/844/303 +f 634/838/341 637/842/341 633/836/341 +f 636/841/342 617/839/342 640/845/342 +f 618/819/343 635/840/343 632/837/343 +f 636/841/344 639/843/344 637/842/344 +f 617/820/345 618/819/345 641/846/345 +f 642/847/346 644/848/347 643/849/348 +f 640/850/349 641/846/349 645/851/349 +f 633/836/350 642/847/350 646/852/350 +f 633/836/351 637/842/351 644/848/351 +f 639/843/352 640/845/352 647/853/352 +f 632/837/314 646/852/314 645/851/314 +f 648/854/237 650/855/237 649/856/237 +f 647/853/372 651/857/376 648/854/355 +f 646/852/356 653/858/356 652/859/356 +f 638/844/357 648/854/357 643/849/357 +f 645/851/358 652/859/359 651/860/377 +f 646/852/361 642/847/362 654/861/363 +f 655/862/238 649/856/238 656/863/238 +f 651/860/364 652/859/364 657/864/364 +f 653/858/365 654/861/366 655/862/367 +f 643/849/368 649/856/369 655/862/370 +f 651/857/371 658/865/371 650/855/371 +f 652/859/234 653/858/234 659/866/234 +f 658/865/236 661/867/236 660/868/236 +f 657/864/234 659/866/234 662/869/234 +f 650/855/237 660/868/237 656/863/237 +f 658/870/235 657/864/235 663/871/235 +f 655/862/233 664/872/233 662/869/233 +f 665/873/378 667/874/378 666/875/378 +f 665/873/379 669/876/379 668/877/379 +f 670/878/380 671/879/380 668/877/380 +f 670/878/381 673/880/381 672/881/381 +f 674/882/382 675/883/382 672/884/382 +f 676/885/383 674/882/383 677/886/383 +f 678/887/384 676/885/384 679/888/384 +f 678/887/385 680/889/385 666/875/385 +f 670/878/386 675/890/387 681/891/388 +f 682/892/389 684/893/390 683/894/391 +f 682/892/392 676/885/392 678/887/392 +f 665/873/393 671/879/393 685/895/393 +f 681/896/394 675/883/395 674/882/396 +f 684/893/397 678/887/397 667/874/397 +f 667/874/398 665/873/398 686/897/398 +f 671/879/399 670/878/400 687/898/401 +f 688/899/402 674/882/403 676/885/404 +f 689/900/405 691/901/405 690/902/405 +f 690/903/406 681/896/407 688/899/408 +f 692/904/409 685/895/410 687/898/411 +f 693/905/412 686/897/413 694/906/414 +f 684/893/415 693/905/416 695/907/417 +f 696/908/418 688/899/419 682/892/420 +f 691/901/421 687/898/422 681/891/423 +f 686/897/424 685/895/425 692/904/426 +f 697/909/427 699/910/427 698/911/427 +f 700/912/428 694/906/428 692/904/428 +f 701/913/429 683/894/429 697/909/429 +f 690/903/430 696/908/430 702/914/430 +f 703/915/431 692/904/431 691/901/431 +f 699/910/432 695/907/433 694/906/434 +f 683/894/435 695/907/436 699/910/437 +f 696/908/438 701/913/438 704/916/438 +f 705/917/439 707/918/439 706/919/439 +f 702/914/440 704/916/440 708/920/440 +f 709/921/441 689/900/441 710/922/441 +f 700/912/442 703/915/442 711/923/442 +f 704/916/443 697/909/443 712/924/443 +f 705/917/444 710/925/444 702/914/444 +f 711/923/445 703/915/445 689/900/445 +f 699/910/446 700/912/446 713/926/446 +f 714/927/447 716/928/447 715/929/447 +f 717/930/448 711/923/448 709/921/448 +f 718/931/449 698/911/449 713/926/449 +f 716/928/450 712/924/450 698/911/450 +f 706/919/451 707/918/451 708/920/451 +f 709/921/452 705/932/452 719/933/452 +f 713/926/453 711/923/453 717/930/453 +f 714/927/454 708/920/455 712/924/455 +f 720/934/456 722/935/456 721/936/456 +f 719/937/457 706/919/457 720/934/457 +f 723/938/458 717/930/458 724/939/458 +f 725/940/459 718/931/459 726/941/459 +f 716/928/460 718/931/460 725/940/460 +f 706/919/461 714/927/461 722/935/461 +f 724/939/462 719/933/462 727/942/462 +f 728/943/463 726/941/463 717/930/463 +f 729/944/464 731/945/464 730/946/464 +f 732/947/465 733/948/465 727/942/465 +f 728/943/466 723/938/466 734/949/466 +f 721/936/467 722/935/467 715/929/467 +f 735/950/468 727/951/468 720/934/468 +f 723/938/469 733/948/469 732/947/469 +f 725/940/470 728/943/470 730/946/470 +f 715/929/471 725/940/471 731/945/471 +f 736/952/472 738/953/472 737/954/472 +f 739/955/473 731/945/473 729/944/473 +f 740/956/474 721/936/474 736/952/474 +f 732/947/475 735/957/475 741/958/475 +f 742/959/476 730/946/476 734/949/476 +f 721/936/477 739/955/477 738/953/477 +f 741/960/478 735/950/478 740/956/478 +f 743/961/479 734/949/479 732/947/479 +f 744/962/474 746/963/474 745/964/474 +f 747/965/480 741/960/480 748/966/480 +f 745/964/481 743/961/481 749/967/481 +f 729/944/482 742/959/482 746/963/482 +f 737/954/483 738/953/483 729/944/483 +f 748/966/484 736/952/484 750/968/484 +f 749/967/485 741/958/485 747/969/485 +f 746/963/486 742/959/486 743/961/486 +f 751/970/487 744/971/487 752/972/487 +f 750/968/479 737/954/479 753/973/479 +f 747/965/464 755/974/464 754/975/464 +f 745/964/477 756/976/477 751/977/477 +f 757/978/478 758/979/478 746/963/478 +f 737/954/475 758/979/475 757/978/475 +f 754/975/476 755/974/476 750/968/476 +f 751/977/473 756/976/473 747/969/473 +f 162/264/123 163/266/123 759/980/123 +f 163/266/124 165/268/124 759/980/124 +f 165/268/125 167/269/125 760/981/125 +f 167/269/126 168/271/126 760/981/126 +f 168/272/127 170/274/127 171/275/127 +f 171/275/128 172/276/128 173/277/128 +f 173/277/129 174/278/129 175/279/129 +f 175/279/130 164/265/130 162/264/130 +f 167/269/131 176/281/133 169/270/488 +f 178/282/134 179/284/136 183/288/489 +f 174/278/490 178/282/490 183/288/490 +f 163/266/491 181/286/491 166/267/491 +f 170/274/139 176/287/141 185/290/492 +f 164/265/493 183/288/493 184/289/493 +f 164/265/494 182/285/494 163/266/494 +f 166/267/144 177/280/146 167/269/495 +f 172/276/147 185/290/149 178/282/496 +f 186/291/497 187/293/497 199/312/497 +f 185/290/151 186/294/153 192/298/498 +f 177/280/154 189/295/156 188/292/499 +f 184/289/157 190/297/159 182/285/500 +f 183/288/160 191/296/162 184/289/501 +f 178/282/163 192/298/165 180/283/502 +f 176/281/166 188/292/168 186/291/503 +f 182/285/169 189/295/171 181/286/504 +f 193/299/172 194/301/172 201/307/172 +f 189/295/505 196/302/505 200/306/505 +f 180/283/506 193/299/506 179/284/506 +f 186/294/507 198/305/507 192/298/507 +f 188/292/508 200/306/508 187/293/508 +f 190/297/177 201/307/179 196/302/509 +f 179/284/180 201/307/182 191/296/510 +f 192/298/511 197/303/511 180/283/511 +f 202/308/184 203/310/184 217/324/184 +f 198/305/185 205/311/185 197/303/185 +f 199/312/186 206/313/186 204/325/186 +f 200/306/187 207/314/187 208/315/187 +f 197/303/188 195/300/188 193/299/188 +f 199/304/189 202/308/189 198/305/189 +f 187/293/190 208/315/190 206/313/190 +f 201/307/191 207/314/191 196/302/191 +f 209/316/192 210/318/192 216/323/192 +f 208/315/193 212/320/193 206/313/193 +f 194/301/194 214/322/194 207/314/194 +f 194/301/195 216/323/195 215/321/195 +f 205/311/196 217/324/196 209/316/196 +f 204/325/197 212/320/197 203/333/197 +f 207/314/198 213/319/198 208/315/198 +f 195/300/199 209/316/199 216/323/199 +f 218/326/200 219/328/200 211/317/200 +f 217/324/201 221/329/201 218/326/201 +f 212/320/202 222/330/202 225/334/202 +f 215/321/203 223/332/203 214/322/203 +f 216/323/204 224/331/204 215/321/204 +f 217/324/205 211/317/205 209/316/205 +f 203/333/206 225/334/207 221/338/206 +f 213/319/208 223/332/208 222/330/208 +f 226/335/209 227/337/209 230/340/209 +f 221/338/210 229/339/210 232/982/210 +f 222/330/211 230/340/211 233/343/211 +f 211/317/212 231/341/212 210/318/212 +f 218/326/213 232/342/213 220/327/213 +f 225/334/214 233/343/214 229/339/214 +f 223/332/215 226/335/215 230/340/215 +f 210/318/216 226/335/216 224/331/216 +f 234/344/217 235/346/217 237/347/217 +f 226/335/218 237/347/218 228/336/218 +f 219/328/219 238/348/219 234/344/219 +f 229/339/220 239/350/220 232/982/220 +f 233/343/221 227/337/221 241/352/221 +f 219/328/222 237/347/222 231/341/222 +f 220/327/223 239/351/223 238/348/223 +f 233/343/224 240/349/224 229/339/224 +f 242/353/219 243/355/219 254/367/219 +f 238/348/225 245/356/225 247/358/225 +f 240/349/226 242/353/226 248/359/512 +f 227/337/227 246/357/227 244/354/227 +f 228/336/228 235/346/228 246/357/228 +f 238/348/229 236/345/229 234/344/229 +f 240/349/230 245/360/230 239/350/230 +f 227/337/231 242/353/231 241/352/231 +f 251/362/232 243/983/232 255/984/232 +f 243/983/232 251/362/232 254/985/232 +f 254/985/232 251/362/232 253/986/232 +f 253/986/232 251/362/232 252/987/232 +f 252/987/232 251/362/232 249/361/232 +f 235/346/224 250/364/224 251/370/224 +f 245/356/209 249/366/209 247/358/209 +f 242/353/222 253/368/222 248/359/222 +f 244/354/223 255/369/223 243/355/223 +f 235/346/220 255/369/220 246/357/220 +f 236/345/221 249/366/221 250/364/221 +f 245/360/218 253/368/218 252/988/218 +f 256/371/233 257/373/233 260/375/233 +f 259/374/234 260/375/234 262/377/234 +f 261/376/235 262/377/235 264/390/235 +f 263/378/236 264/380/236 267/383/236 +f 265/381/234 260/375/234 273/389/234 +f 266/382/237 267/383/237 268/384/237 +f 266/382/238 257/373/238 258/372/238 +f 259/374/513 269/385/513 283/402/513 +f 270/386/240 271/387/240 761/989/240 +f 268/384/237 272/388/237 274/391/237 +f 273/389/514 257/373/514 276/393/514 +f 270/386/515 262/377/515 265/381/515 +f 257/373/516 274/391/516 276/393/516 +f 267/383/517 270/392/517 272/388/517 +f 273/389/245 275/394/245 762/990/245 +f 275/394/246 274/391/246 278/396/246 +f 277/395/247 270/392/247 761/991/247 +f 271/387/234 273/389/234 762/990/234 +f 278/396/237 272/388/237 277/395/237 +f 279/397/518 280/399/518 288/407/518 +f 282/400/249 258/372/251 279/397/519 +f 269/401/520 263/378/520 284/403/520 +f 256/371/234 283/402/234 281/398/234 +f 284/403/237 266/382/237 282/400/237 +f 258/372/253 281/398/255 279/397/521 +f 285/404/256 286/406/256 298/418/256 +f 282/400/522 288/407/522 287/405/522 +f 289/408/523 284/403/523 285/404/523 +f 281/398/259 290/409/259 280/399/259 +f 284/403/260 287/405/260 285/404/260 +f 290/409/524 269/385/524 289/413/524 +f 291/410/262 292/411/264 301/422/525 +f 293/412/265 289/413/265 295/420/265 +f 288/407/266 294/414/266 292/411/266 +f 286/406/267 288/407/267 292/411/267 +f 295/415/268 285/404/268 298/418/268 +f 294/414/269 290/409/269 293/412/269 +f 296/416/237 297/417/237 306/428/237 +f 295/415/270 296/416/272 300/427/526 +f 299/419/273 293/412/273 305/426/273 +f 296/416/274 286/406/274 291/410/274 +f 293/412/275 300/421/277 305/426/527 +f 301/422/278 294/414/280 299/419/528 +f 302/423/236 303/424/236 763/992/236 +f 304/425/529 300/421/529 308/434/529 +f 303/424/282 299/419/284 307/429/530 +f 291/410/285 303/424/287 297/417/531 +f 300/427/532 306/428/532 308/430/532 +f 307/429/234 305/426/234 304/425/234 +f 308/430/238 309/431/238 764/993/238 +f 310/432/234 304/425/234 311/433/234 +f 306/428/237 302/423/237 309/431/237 +f 311/433/233 308/434/233 764/994/233 +f 303/424/235 310/432/235 763/992/235 +f 312/435/233 313/437/233 316/439/233 +f 315/438/234 313/437/234 318/441/234 +f 317/440/235 318/441/235 320/454/235 +f 319/442/236 320/444/236 323/447/236 +f 321/445/234 313/437/234 329/453/234 +f 322/446/237 323/447/237 324/448/237 +f 312/435/238 324/448/238 314/436/238 +f 315/438/513 325/449/513 340/467/513 +f 326/450/240 327/451/240 765/995/240 +f 324/448/237 328/452/237 330/455/237 +f 329/453/514 314/436/514 332/458/514 +f 326/450/515 318/441/515 321/445/515 +f 314/436/516 330/455/516 332/458/516 +f 323/447/517 326/456/517 328/452/517 +f 331/457/245 332/458/245 333/459/245 +f 333/459/246 330/455/246 335/461/246 +f 334/460/247 326/456/247 765/996/247 +f 327/451/234 329/453/234 331/457/234 +f 335/461/237 328/452/237 334/460/237 +f 336/462/518 337/464/518 345/472/518 +f 339/465/249 312/435/251 336/462/519 +f 325/466/520 319/442/520 341/468/520 +f 316/439/234 340/467/234 338/463/234 +f 341/468/237 322/446/237 339/465/237 +f 312/435/253 338/463/255 336/462/521 +f 342/469/256 343/471/256 350/476/256 +f 339/465/522 345/472/522 343/471/522 +f 346/473/523 341/468/523 344/470/523 +f 337/464/259 340/467/259 347/474/259 +f 344/470/260 339/465/260 343/471/260 +f 347/474/524 325/449/524 346/479/524 +f 348/475/262 349/477/290 358/487/525 +f 351/478/265 346/479/265 352/485/265 +f 349/477/266 337/464/266 353/481/266 +f 343/471/267 349/477/267 350/476/267 +f 352/480/268 344/470/268 342/469/268 +f 353/481/269 347/474/269 351/478/269 +f 354/482/237 355/483/237 363/493/237 +f 352/480/291 354/482/272 357/492/526 +f 356/484/273 351/478/273 362/491/273 +f 354/482/274 350/476/274 348/475/274 +f 351/478/275 357/486/277 362/491/533 +f 358/487/292 353/481/280 356/484/528 +f 355/483/236 359/489/236 368/498/236 +f 361/490/529 357/486/529 365/499/529 +f 360/488/293 356/484/284 364/494/530 +f 348/475/285 360/488/294 355/483/531 +f 357/492/532 363/493/532 365/495/532 +f 364/494/234 362/491/234 361/490/234 +f 365/495/238 366/496/238 766/997/238 +f 364/494/234 367/497/234 369/500/234 +f 363/493/237 368/498/237 366/496/237 +f 367/497/233 365/499/233 766/998/233 +f 360/488/235 369/500/235 359/489/235 +f 370/501/233 371/503/233 374/505/233 +f 373/504/234 374/505/234 376/507/234 +f 375/506/235 376/507/235 378/520/235 +f 375/508/236 377/510/236 381/513/236 +f 379/511/234 374/505/234 387/519/234 +f 380/512/237 377/510/237 382/514/237 +f 380/512/238 371/503/238 372/502/238 +f 373/504/513 383/515/513 398/533/513 +f 384/516/240 385/517/240 767/999/240 +f 382/514/237 386/518/237 388/521/237 +f 387/519/514 371/503/514 390/524/514 +f 384/516/515 376/507/515 379/511/515 +f 371/503/516 388/521/516 390/524/516 +f 377/510/517 384/522/517 386/518/517 +f 389/523/245 390/524/245 391/525/245 +f 391/525/246 388/521/246 393/527/246 +f 392/526/247 384/522/247 767/1000/247 +f 385/517/234 387/519/234 389/523/234 +f 393/527/237 386/518/237 392/526/237 +f 394/528/518 395/530/518 403/538/518 +f 397/531/249 372/502/251 394/528/519 +f 383/532/520 381/513/520 399/534/520 +f 370/501/234 398/533/234 396/529/234 +f 399/534/237 380/512/237 397/531/237 +f 372/502/253 396/529/255 394/528/521 +f 400/535/256 401/537/256 408/542/256 +f 397/531/522 403/538/522 401/537/522 +f 404/539/523 399/534/523 402/536/523 +f 396/529/259 405/540/259 395/530/259 +f 402/536/260 397/531/260 401/537/260 +f 405/540/524 383/515/524 404/545/524 +f 406/541/296 407/543/297 416/553/525 +f 409/544/265 404/545/265 411/551/265 +f 403/538/266 410/546/266 407/543/266 +f 408/542/267 403/538/267 407/543/267 +f 411/547/268 402/536/268 400/535/268 +f 410/546/269 405/540/269 409/544/269 +f 412/548/237 413/549/237 421/559/237 +f 411/547/270 412/548/272 415/558/526 +f 414/550/273 409/544/273 420/557/273 +f 412/548/274 408/542/274 406/541/274 +f 409/544/298 415/552/299 420/557/533 +f 416/553/300 410/546/301 414/550/534 +f 417/554/236 418/555/236 768/1001/236 +f 419/556/529 415/552/529 424/565/529 +f 418/555/293 414/550/284 422/560/530 +f 406/541/285 418/555/287 413/549/531 +f 415/558/532 421/559/532 424/562/532 +f 422/560/234 420/557/234 419/556/234 +f 423/561/238 421/559/238 769/1002/238 +f 425/563/234 419/556/234 426/564/234 +f 421/559/237 417/554/237 769/1002/237 +f 426/564/233 424/565/233 423/1003/233 +f 418/555/235 425/563/235 768/1001/235 +f 427/566/302 428/568/302 770/1004/302 +f 431/570/269 432/572/269 443/582/269 +f 434/573/303 435/575/303 447/588/303 +f 437/576/302 438/578/302 446/586/302 +f 440/579/256 441/581/256 448/590/256 +f 431/570/234 444/591/234 449/1005/234 +f 444/592/308 439/577/308 445/585/308 +f 445/585/309 442/594/309 771/1006/309 +f 439/577/310 448/590/310 441/581/310 +f 448/590/237 436/596/237 440/579/237 +f 435/575/311 446/586/311 447/588/311 +f 447/588/312 433/598/312 434/573/312 +f 432/572/313 438/578/313 443/582/313 +f 449/599/314 445/585/314 771/1006/314 +f 485/671/235 486/673/235 488/674/235 +f 488/674/234 489/675/234 490/676/234 +f 490/676/233 491/677/233 492/692/233 +f 492/678/238 493/680/238 495/682/238 +f 488/674/234 494/681/234 504/691/234 +f 495/682/237 496/683/237 497/684/237 +f 497/684/236 487/672/236 485/671/236 +f 489/675/535 498/686/535 491/677/535 +f 494/681/240 500/688/240 509/698/240 +f 497/684/237 502/690/237 495/682/237 +f 485/671/536 504/691/536 505/693/536 +f 490/676/537 501/687/537 494/681/537 +f 485/671/538 503/689/538 497/684/538 +f 495/682/539 501/694/539 492/678/539 +f 504/691/245 506/696/245 505/693/245 +f 503/689/246 506/696/246 510/699/246 +f 501/694/247 508/697/247 500/1007/247 +f 504/691/234 509/698/234 507/695/234 +f 502/690/237 510/699/237 508/697/237 +f 511/700/540 512/702/540 515/705/540 +f 487/672/334 514/703/336 511/700/541 +f 493/680/542 498/704/542 516/706/542 +f 486/673/234 499/685/234 489/675/234 +f 496/683/237 516/706/237 514/703/237 +f 487/672/338 515/705/340 486/673/543 +f 517/707/303 518/709/303 520/710/303 +f 514/703/544 513/701/544 511/700/544 +f 516/706/545 521/711/545 517/707/545 +f 499/685/343 512/702/343 522/712/343 +f 516/706/344 520/710/344 514/703/344 +f 498/686/546 522/712/546 521/1008/546 +f 523/713/346 524/714/348 534/726/547 +f 522/712/349 525/716/349 521/1008/349 +f 512/702/350 523/713/350 527/718/350 +f 520/710/351 523/713/351 513/701/351 +f 517/707/352 525/717/352 519/708/352 +f 522/712/314 527/718/314 526/715/314 +f 528/719/237 529/721/237 524/714/237 +f 525/717/353 528/719/355 519/708/548 +f 526/715/356 532/723/356 533/724/356 +f 519/708/357 524/714/357 518/709/357 +f 526/715/358 531/725/360 525/716/549 +f 527/718/361 534/726/363 532/723/550 +f 535/727/238 536/728/238 544/737/238 +f 531/725/551 537/729/551 538/735/551 +f 532/723/365 535/727/367 539/731/552 +f 524/714/368 535/727/370 534/726/553 +f 531/722/554 530/720/554 528/719/554 +f 533/724/234 539/731/234 537/729/234 +f 530/720/236 540/732/236 542/734/236 +f 537/729/234 541/733/234 543/736/234 +f 530/720/237 536/728/237 529/721/237 +f 538/735/235 543/736/235 540/1009/235 +f 535/727/233 541/733/233 539/731/233 +f 545/738/235 546/740/235 548/741/235 +f 548/741/234 549/742/234 550/743/234 +f 550/743/233 551/744/233 552/760/233 +f 552/745/238 553/747/238 555/749/238 +f 548/741/234 554/748/234 565/759/234 +f 555/749/237 556/750/237 557/751/237 +f 557/751/236 547/739/236 545/738/236 +f 549/742/535 558/753/535 551/744/535 +f 560/754/240 561/756/240 554/748/240 +f 557/751/237 563/758/237 555/749/237 +f 545/738/536 565/759/536 566/761/536 +f 550/743/537 560/754/537 554/748/537 +f 545/738/538 564/757/538 557/751/538 +f 555/749/555 560/762/555 552/745/555 +f 565/759/245 567/764/245 566/761/245 +f 564/757/246 567/764/246 570/767/246 +f 563/758/247 562/766/247 560/762/247 +f 565/759/234 561/756/234 568/763/234 +f 563/758/237 570/767/237 569/765/237 +f 571/768/540 572/770/540 575/773/540 +f 547/739/334 574/771/336 571/768/541 +f 553/747/542 558/772/542 576/774/542 +f 546/740/234 559/752/234 549/742/234 +f 556/750/237 576/774/237 574/771/237 +f 547/739/338 575/773/340 546/740/543 +f 577/775/303 578/777/303 580/778/303 +f 574/771/544 573/769/544 571/768/544 +f 576/774/545 581/779/545 577/775/545 +f 559/752/343 572/770/343 582/780/343 +f 574/771/344 577/775/344 580/778/344 +f 558/753/546 582/780/546 581/783/546 +f 583/781/346 584/782/348 594/794/547 +f 581/783/349 585/784/349 587/1010/349 +f 573/769/350 586/785/350 572/770/350 +f 573/769/351 578/777/351 583/781/351 +f 577/775/352 587/786/352 579/776/352 +f 582/780/314 586/785/314 585/784/314 +f 588/787/237 589/789/237 584/782/237 +f 587/786/372 588/787/355 579/776/548 +f 585/784/356 592/791/356 593/792/356 +f 579/776/357 584/782/357 578/777/357 +f 585/784/358 591/793/374 587/1010/549 +f 586/785/361 594/794/363 592/791/550 +f 595/795/238 596/796/238 604/805/238 +f 591/793/551 597/797/551 598/803/551 +f 592/791/365 595/795/375 599/799/552 +f 584/782/368 595/795/370 594/794/553 +f 591/790/554 590/788/554 588/787/554 +f 593/792/234 599/799/234 597/797/234 +f 590/788/236 600/800/236 602/802/236 +f 597/797/234 601/801/234 603/804/234 +f 590/788/237 596/796/237 589/789/237 +f 598/803/235 603/804/235 600/1011/235 +f 599/799/233 604/805/233 601/801/233 +f 605/806/235 606/808/235 613/815/235 +f 606/808/234 608/810/234 613/815/234 +f 608/810/233 610/811/233 611/828/233 +f 611/812/238 612/814/238 615/817/238 +f 613/815/234 614/816/234 625/827/234 +f 615/817/237 616/818/237 622/824/237 +f 616/818/236 605/806/236 622/824/236 +f 609/809/535 617/820/535 610/811/535 +f 619/821/240 620/823/240 614/816/240 +f 622/824/237 623/826/237 615/817/237 +f 605/806/536 625/827/536 626/829/536 +f 608/810/537 619/821/537 614/816/537 +f 605/806/538 624/825/538 622/824/538 +f 615/817/556 619/830/556 611/812/556 +f 626/829/245 627/831/245 628/832/245 +f 624/825/246 628/832/246 630/834/246 +f 619/830/247 629/833/247 621/1012/247 +f 614/816/234 627/831/234 625/827/234 +f 623/826/237 630/834/237 629/833/237 +f 631/835/540 632/837/540 635/840/540 +f 607/807/334 634/838/336 631/835/541 +f 612/814/542 617/839/542 636/841/542 +f 606/808/234 618/819/234 609/809/234 +f 616/818/237 636/841/237 634/838/237 +f 607/807/338 635/840/340 606/808/543 +f 637/842/303 638/844/303 644/848/303 +f 634/838/544 633/836/544 631/835/544 +f 636/841/545 640/845/545 639/843/545 +f 618/819/343 632/837/343 641/846/343 +f 636/841/344 637/842/344 634/838/344 +f 617/820/546 641/846/546 640/850/546 +f 642/847/346 643/849/348 654/861/547 +f 640/850/349 645/851/349 647/1013/349 +f 633/836/350 646/852/350 632/837/350 +f 633/836/351 644/848/351 642/847/351 +f 639/843/352 647/853/352 638/844/352 +f 632/837/314 645/851/314 641/846/314 +f 648/854/237 649/856/237 643/849/237 +f 647/853/372 648/854/355 638/844/548 +f 646/852/356 652/859/356 645/851/356 +f 638/844/357 643/849/357 644/848/357 +f 645/851/358 651/860/377 647/1013/549 +f 646/852/361 654/861/363 653/858/557 +f 655/862/238 656/863/238 664/872/238 +f 651/860/551 657/864/551 658/870/551 +f 653/858/365 655/862/367 659/866/552 +f 643/849/368 655/862/370 654/861/553 +f 651/857/554 650/855/554 648/854/554 +f 652/859/234 659/866/234 657/864/234 +f 658/865/236 660/868/236 650/855/236 +f 657/864/234 662/869/234 663/871/234 +f 650/855/237 656/863/237 649/856/237 +f 658/870/235 663/871/235 661/1014/235 +f 655/862/233 662/869/233 659/866/233 +f 665/873/378 666/875/378 669/876/378 +f 665/873/379 668/877/379 671/879/379 +f 670/878/380 668/877/380 673/880/380 +f 670/878/381 672/881/381 675/890/381 +f 674/882/382 672/884/382 677/886/382 +f 676/885/383 677/886/383 679/888/383 +f 678/887/384 679/888/384 680/889/384 +f 678/887/385 666/875/385 667/874/385 +f 670/878/386 681/891/388 687/898/558 +f 682/892/389 683/894/391 701/913/559 +f 682/892/560 678/887/560 684/893/560 +f 665/873/561 685/895/561 686/897/561 +f 681/896/394 674/882/396 688/899/562 +f 684/893/563 667/874/563 693/905/563 +f 667/874/564 686/897/564 693/905/564 +f 671/879/399 687/898/401 685/895/565 +f 688/899/402 676/885/404 682/892/566 +f 689/900/567 690/902/567 710/922/567 +f 690/903/406 688/899/408 696/908/568 +f 692/904/409 687/898/411 691/901/569 +f 693/905/412 694/906/414 695/907/570 +f 684/893/415 695/907/417 683/894/571 +f 696/908/418 682/892/420 701/913/572 +f 691/901/421 681/891/423 690/902/573 +f 686/897/424 692/904/426 694/906/574 +f 697/909/427 698/911/427 712/924/427 +f 700/912/575 692/904/575 703/915/575 +f 701/913/576 697/909/576 704/916/576 +f 690/903/577 702/914/577 710/925/577 +f 703/915/578 691/901/578 689/900/578 +f 699/910/432 694/906/434 700/912/579 +f 683/894/435 699/910/437 697/909/580 +f 696/908/581 704/916/581 702/914/581 +f 705/917/439 706/919/439 719/937/439 +f 702/914/440 708/920/440 707/918/440 +f 709/921/441 710/922/441 705/932/441 +f 700/912/442 711/923/442 713/926/442 +f 704/916/443 712/924/443 708/920/443 +f 705/917/444 702/914/444 707/918/444 +f 711/923/445 689/900/445 709/921/445 +f 699/910/446 713/926/446 698/911/446 +f 714/927/447 715/929/447 722/935/447 +f 717/930/448 709/921/448 724/939/448 +f 718/931/449 713/926/449 726/941/449 +f 716/928/450 698/911/450 718/931/450 +f 706/919/451 708/920/451 714/927/451 +f 709/921/452 719/933/452 724/939/452 +f 713/926/453 717/930/453 726/941/453 +f 714/927/454 712/924/455 716/928/454 +f 720/934/456 721/936/456 740/956/456 +f 719/937/457 720/934/457 727/951/582 +f 723/938/458 724/939/458 733/948/458 +f 725/940/459 726/941/459 728/943/459 +f 716/928/460 725/940/460 715/929/460 +f 706/919/461 722/935/461 720/934/461 +f 724/939/462 727/942/462 733/948/462 +f 728/943/463 717/930/463 723/938/463 +f 729/944/464 730/946/464 742/959/464 +f 732/947/465 727/942/465 735/957/465 +f 728/943/466 734/949/466 730/946/466 +f 721/936/467 715/929/467 739/955/467 +f 735/950/468 720/934/468 740/956/468 +f 723/938/469 732/947/469 734/949/469 +f 725/940/470 730/946/470 731/945/470 +f 715/929/471 731/945/471 739/955/471 +f 736/952/472 737/954/472 750/968/472 +f 739/955/473 729/944/473 738/953/473 +f 740/956/474 736/952/474 748/966/474 +f 732/947/475 741/958/475 749/967/475 +f 742/959/476 734/949/476 743/961/476 +f 721/936/477 738/953/477 736/952/477 +f 741/960/478 740/956/478 748/966/478 +f 743/961/479 732/947/479 749/967/479 +f 744/962/474 745/964/474 752/1015/474 +f 747/965/480 748/966/480 755/974/480 +f 745/964/481 749/967/481 756/976/481 +f 729/944/482 746/963/482 758/979/482 +f 737/954/483 729/944/483 758/979/483 +f 748/966/484 750/968/484 755/974/484 +f 749/967/485 747/969/485 756/976/485 +f 746/963/486 743/961/486 745/964/486 +f 744/971/487 754/1016/487 757/1017/487 +f 757/1017/487 754/1016/487 753/1018/487 +f 753/1018/487 754/1016/487 772/1019/487 +f 754/1016/487 744/971/487 773/1020/487 +f 773/1020/487 744/971/487 751/970/487 +f 750/968/479 753/973/479 772/1021/479 +f 747/965/464 754/975/464 773/1022/464 +f 745/964/477 751/977/477 752/1015/477 +f 757/978/478 746/963/478 744/962/478 +f 737/954/475 757/978/475 753/973/475 +f 754/975/476 750/968/476 772/1021/476 +f 751/977/473 747/969/473 773/1023/473 +o LeftArm +v 3.987985 12.123876 2.012007 +v 8.012007 4.568196 2.012006 +v 8.012004 12.123877 2.012006 +v 8.012002 12.123877 -2.012013 +v 8.012004 4.568196 -2.012013 +v 3.987983 12.123876 -2.012012 +v 3.987986 4.568195 -2.012012 +v 3.950440 -0.051670 -2.049558 +v 8.049554 -0.051668 2.049553 +v 3.950442 -0.051670 2.049555 +v 8.049554 2.506725 2.049553 +v 8.049552 2.506725 -2.049560 +v 8.049552 -0.051668 -2.049560 +v 5.488652 2.506724 -2.049559 +v 8.315355 8.634617 1.745068 +v 8.315353 10.517618 -0.602384 +v 8.315354 10.517618 1.745068 +v 8.315354 8.634616 -1.254880 +v 8.315352 10.517618 -1.745076 +v 8.315353 10.517618 -1.254880 +v 3.684634 8.634615 -2.315362 +v 3.684635 10.517616 2.315357 +v 3.684633 10.517616 -2.315362 +v 7.745065 10.517618 -2.315363 +v 9.689903 8.634617 -1.254881 +v 9.689903 8.634617 -0.602385 +v 9.689902 10.517618 -1.254881 +v 9.689902 10.517618 -0.602385 +v 8.315354 8.634616 -0.602384 +v 7.745068 8.634616 2.315356 +v 8.315353 8.634616 -1.745076 +v 7.745066 8.634616 -2.315363 +v 3.684636 8.634615 2.315357 +v 7.745067 10.517618 2.315356 +v 3.987988 4.568195 2.012007 +v 3.950441 2.506724 2.049555 +v 3.950439 0.968511 -2.049558 +vt 0.914286 0.292683 +vt 0.685714 0.682927 +vt 0.685714 0.292683 +vt 0.457143 0.292683 +vt 0.457143 0.682927 +vt 0.228571 0.292683 +vt 0.228571 0.682927 +vt -0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.228571 0.097561 +vt 0.228571 0.292683 +vt 0.142857 1.000000 +vt 0.371429 0.804878 +vt 0.371429 1.000000 +vt 0.514286 0.804878 +vt 0.142857 0.682927 +vt 0.142857 0.804878 +vt 0.000000 0.926829 +vt 0.000000 0.804878 +vt 0.742857 0.097561 +vt 0.628571 0.000000 +vt 0.742857 0.000000 +vt 0.571429 0.097561 +vt 0.542857 0.000000 +vt 0.571429 0.000000 +vt 0.257143 0.097561 +vt 0.000000 0.000000 +vt 0.257143 0.000000 +vt 0.485714 -0.000000 +vt 0.400000 0.292683 +vt 0.514286 0.219512 +vt 0.514286 0.292683 +vt 0.228571 0.219512 +vt 0.342857 0.170732 +vt 0.342857 0.219512 +vt 0.571429 0.292683 +vt 0.571429 0.219512 +vt 0.342857 0.292683 +vt 0.400000 0.219512 +vt 0.228571 0.292683 +vt 0.800000 0.097561 +vt 0.542857 0.097561 +vt 0.485714 0.097561 +vt 1.000000 0.097561 +vt 0.800000 0.000000 +vt 1.000000 0.000000 +vt 0.914286 0.682927 +vt 0.000000 0.682927 +vt -0.000000 0.097561 +vt 0.514286 1.000000 +vt 0.371429 0.682927 +vt 0.085714 1.000000 +vt 0.628571 0.097561 +vt 0.000000 0.097561 +vt 0.228571 0.170732 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s 1 +f 774/1024/583 775/1025/583 776/1026/583 +f 775/1025/584 777/1027/584 776/1026/584 +f 778/1028/585 779/1029/585 777/1027/585 +f 780/1030/586 774/1031/586 779/1029/586 +f 777/1032/587 774/1033/587 776/1034/587 +f 781/1035/588 782/1036/588 783/1037/588 +f 784/1038/583 783/1037/583 782/1036/583 +f 785/1039/584 782/1036/584 786/1040/584 +f 787/1041/585 785/1042/585 786/1040/585 +f 788/1043/584 789/1044/584 790/1045/584 +f 791/1046/584 792/1047/584 793/1048/584 +f 794/1049/586 795/1050/586 796/1051/586 +f 797/1052/585 794/1049/585 796/1051/585 +f 793/1053/585 798/1054/585 791/1055/585 +f 799/1056/584 800/1057/584 801/1058/584 +f 802/1059/588 798/1054/588 799/1060/588 +f 789/1061/587 800/1062/587 793/1053/587 +f 802/1063/583 801/1058/583 789/1061/583 +f 790/1045/589 803/1064/589 788/1043/589 +f 797/1052/590 804/1065/590 805/1066/590 +f 806/1067/583 807/1068/583 795/1069/583 +f 774/1024/583 808/1070/583 775/1025/583 +f 775/1025/584 778/1028/584 777/1027/584 +f 778/1028/585 780/1030/585 779/1029/585 +f 780/1030/586 808/1071/586 774/1031/586 +f 777/1032/587 779/1072/587 774/1033/587 +f 781/1035/588 786/1040/588 782/1036/588 +f 784/1038/583 809/1073/583 783/1037/583 +f 785/1039/584 784/1074/584 782/1036/584 +f 786/1040/585 781/1035/585 787/1041/585 +f 781/1035/585 810/1075/585 787/1041/585 +f 788/1043/584 802/1076/584 789/1044/584 +f 791/1046/584 804/1065/584 792/1047/584 +f 794/1049/586 806/1077/586 795/1050/586 +f 797/1052/585 805/1066/585 794/1049/585 +f 793/1053/585 800/1062/585 798/1054/585 +f 799/1056/584 798/1078/584 800/1057/584 +f 802/1059/588 791/1055/588 798/1054/588 +f 789/1061/587 801/1058/587 800/1062/587 +f 802/1063/583 799/1056/583 801/1058/583 +f 790/1045/589 807/1068/589 803/1064/589 +f 797/1052/590 792/1047/590 804/1065/590 +f 806/1067/583 803/1064/583 807/1068/583 +o Head +v -4.000005 0.937382 -2.097126 +v 3.999993 -0.047357 -2.097129 +v -4.000005 -0.047359 -2.097126 +v 3.999993 0.937384 -2.097129 +v -0.000007 1.914239 -2.097128 +v 2.640889 -11.912104 0.694965 +v 1.991662 -7.776526 0.047149 +v 2.618367 -7.772680 0.692161 +v 2.815480 -7.771321 1.115013 +v 3.506107 -11.907562 0.449622 +v 3.483585 -7.768139 0.446819 +v 2.014184 -11.915951 0.049952 +v 2.788800 -12.626892 0.157831 +v 2.094094 -12.219033 -0.241983 +v 2.469752 -12.968667 0.248814 +v 2.258792 -11.914001 0.962653 +v 3.586018 -12.210646 0.157688 +v 3.777286 -14.528184 -3.492162 +v 3.765855 -15.403154 -3.781082 +v 2.701068 -13.896341 -4.111543 +v 4.134182 -15.192882 -4.810461 +v 3.404690 -15.300436 -3.192258 +v 3.023210 -12.965555 0.397080 +v 5.012311 -13.883347 -3.492384 +v 3.958147 -15.297325 -3.043994 +v 2.838001 -11.910745 1.117817 +v 2.236271 -7.774577 0.959850 +v -2.610770 -11.912106 0.686894 +v -3.496925 -7.776528 0.450482 +v -2.631675 -7.772682 0.695727 +v -2.249546 -7.771323 0.963372 +v -1.984139 -11.907564 0.041813 +v -2.005045 -7.768141 0.050646 +v -3.476019 -11.915953 0.441650 +v -2.751241 -12.626894 0.147767 +v -3.552781 -12.219035 0.148872 +v -2.982054 -12.968669 0.386086 +v -2.807831 -11.914003 1.109767 +v -2.060902 -12.210648 -0.250965 +v -3.720184 -14.528186 -3.507462 +v -3.874544 -15.403158 -3.751959 +v -4.961906 -13.896344 -3.505752 +v -4.070252 -15.192883 -4.827590 +v -3.892910 -15.300440 -3.061439 +v -2.428612 -12.965557 0.237758 +v -2.650731 -13.883349 -4.125166 +v -3.339469 -15.297329 -3.209766 +v -2.228640 -11.910747 0.954539 +v -2.828737 -7.774579 1.118600 +vt 0.100000 0.044444 +vt 0.900000 0.088889 +vt 0.100000 0.088889 +vt 0.900000 0.044444 +vt 0.500000 0.000000 +vt 0.050000 0.644444 +vt 0.250000 1.000000 +vt 0.050000 1.000000 +vt 0.550000 1.000000 +vt 0.750000 0.644444 +vt 0.750000 1.000000 +vt 0.250000 0.600000 +vt 0.050000 0.555556 +vt 0.250000 0.577778 +vt 0.450000 0.555556 +vt 0.450000 0.644444 +vt 0.950000 1.000000 +vt 0.750000 0.600000 +vt 0.950000 0.555556 +vt 0.900000 0.644444 +vt 0.800000 0.555556 +vt 1.000000 0.200000 +vt 1.000000 0.555556 +vt 0.400000 0.133333 +vt 0.200000 0.200000 +vt 0.350000 0.088889 +vt 0.200000 0.555556 +vt 0.450000 0.200000 +vt 0.550000 0.555556 +vt 0.750000 0.577778 +vt 0.800000 0.200000 +vt 1.000000 0.088889 +vt -0.000000 0.200000 +vt 0.550000 0.200000 +vt 0.000000 0.088889 +vt 0.600000 0.133333 +vt 0.650000 0.088889 +vt 0.500000 0.133333 +vt 0.550000 0.644444 +vt 0.450000 1.000000 +vt 0.050000 0.644444 +vt 0.250000 1.000000 +vt 0.050000 1.000000 +vt 0.550000 1.000000 +vt 0.750000 0.644444 +vt 0.750000 1.000000 +vt 0.250000 0.600000 +vt 0.050000 0.555556 +vt 0.250000 0.577778 +vt 0.450000 0.555556 +vt 0.450000 0.644444 +vt 0.950000 1.000000 +vt 0.750000 0.600000 +vt 0.950000 0.555556 +vt 0.900000 0.644444 +vt 0.800000 0.555556 +vt 1.000000 0.200000 +vt 1.000000 0.555556 +vt 0.400000 0.133333 +vt 0.200000 0.200000 +vt 0.350000 0.088889 +vt 0.200000 0.555556 +vt 0.450000 0.200000 +vt 0.550000 0.555556 +vt 0.750000 0.577778 +vt 0.800000 0.200000 +vt 1.000000 0.088889 +vt -0.000000 0.200000 +vt 0.550000 0.200000 +vt 0.000000 0.088889 +vt 0.600000 0.133333 +vt 0.650000 0.088889 +vt 0.500000 0.133333 +vt 0.550000 0.644444 +vt 0.450000 1.000000 +vt 0.250000 0.644444 +vt 0.100000 0.644444 +vt 0.950000 0.644444 +vt 0.000000 0.555556 +vt 0.250000 0.644444 +vt 0.100000 0.644444 +vt 0.950000 0.644444 +vt 0.000000 0.555556 +vn -0.0000 -0.0000 -1.0000 +vn 0.7172 0.0034 -0.6969 +vn 0.7071 0.0043 0.7071 +vn 0.6320 0.6176 -0.4682 +vn -0.9060 -0.3461 0.2436 +vn -0.2728 -0.0021 -0.9621 +vn -0.2298 0.5538 -0.8003 +vn -0.3992 0.7644 -0.5063 +vn -0.7158 -0.5883 -0.3763 +vn -0.9041 -0.4252 0.0425 +vn 0.7319 -0.3627 0.5769 +vn -0.4015 0.7687 -0.4978 +vn -0.4018 0.7693 -0.4967 +vn 0.5908 0.7700 -0.2411 +vn 0.5885 0.7743 -0.2326 +vn 0.7662 -0.4158 0.4900 +vn 0.5882 0.7749 -0.2315 +vn 0.7528 -0.6436 0.1379 +vn -0.0349 -0.9879 0.1509 +vn -0.2588 -0.0008 0.9659 +vn -0.1372 -0.8369 0.5298 +vn -0.2084 -0.5765 0.7901 +vn -0.9659 -0.0051 0.2589 +vn 0.2727 0.0034 -0.9621 +vn 0.9659 0.0043 0.2588 +vn 0.3133 0.6176 -0.7214 +vn -0.6629 -0.3461 0.6640 +vn -0.7173 -0.0021 -0.6968 +vn -0.5992 0.5538 -0.5782 +vn -0.5989 0.7644 -0.2389 +vn -0.5989 0.7644 -0.2388 +vn -0.8080 -0.5883 0.0320 +vn -0.7617 -0.4252 0.4889 +vn 0.9223 -0.3627 0.1337 +vn -0.5967 0.7687 -0.2303 +vn -0.5963 0.7693 -0.2292 +vn 0.3911 0.7700 -0.5042 +vn 0.3933 0.7743 -0.4957 +vn 0.9085 -0.4158 0.0412 +vn 0.3936 0.7749 -0.4946 +vn 0.7209 -0.6436 -0.2570 +vn 0.0453 -0.9879 0.1482 +vn 0.2589 -0.0008 0.9659 +vn 0.1461 -0.8369 0.5275 +vn 0.2146 -0.5765 0.7885 +vn -0.7071 -0.0051 0.7071 +vn 0.5933 0.5584 -0.5798 +vn -0.9184 -0.3720 0.1348 +vn -0.3198 0.6122 -0.7231 +vn -0.7295 -0.5910 -0.3443 +vn 0.6665 -0.3372 0.6648 +vn 0.7787 -0.6169 -0.1146 +vn 0.2239 0.5584 -0.7987 +vn -0.7280 -0.3720 0.5759 +vn -0.6385 0.6122 -0.4664 +vn -0.8039 -0.5910 0.0665 +vn 0.9096 -0.3372 0.2425 +vn 0.6171 -0.6169 -0.4886 +s 1 +f 811/1079/591 812/1080/591 813/1081/591 +f 814/1082/591 811/1079/591 815/1083/591 +f 816/1084/592 817/1085/592 818/1086/592 +f 819/1087/593 820/1088/593 821/1089/593 +f 822/1090/594 823/1091/594 824/1092/594 +f 822/1090/595 825/1093/595 826/1094/595 +f 820/1088/596 818/1095/596 821/1089/596 +f 820/1096/597 823/1097/597 816/1098/597 +f 827/1099/598 828/1100/598 823/1101/598 +f 829/1102/599 830/1103/599 831/1104/599 +f 824/1105/600 832/1106/600 825/1093/600 +f 820/1096/601 833/1107/601 827/1108/601 +f 828/1100/598 834/1109/602 831/1110/603 +f 824/1105/604 828/1111/604 830/1103/605 +f 827/1099/606 835/1112/606 834/1109/606 +f 830/1103/605 828/1111/604 831/1113/607 +f 834/1109/608 829/1114/608 831/1115/608 +f 835/1112/609 832/1106/609 829/1116/609 +f 819/1087/610 826/1094/610 836/1117/610 +f 832/1106/611 833/1107/611 825/1093/611 +f 826/1094/612 833/1107/612 836/1117/612 +f 817/1085/613 826/1094/613 837/1118/613 +f 838/1119/614 839/1120/614 840/1121/614 +f 841/1122/615 842/1123/615 843/1124/615 +f 844/1125/616 845/1126/616 846/1127/616 +f 844/1125/617 847/1128/617 848/1129/617 +f 842/1123/618 840/1130/618 843/1124/618 +f 842/1131/619 845/1132/619 838/1133/619 +f 849/1134/620 850/1135/621 845/1136/620 +f 851/1137/622 852/1138/622 853/1139/622 +f 846/1140/623 854/1141/623 847/1128/623 +f 842/1131/624 855/1142/624 849/1143/624 +f 850/1135/621 856/1144/625 853/1145/626 +f 846/1140/627 850/1146/627 852/1138/628 +f 849/1134/629 857/1147/629 856/1144/629 +f 852/1138/628 850/1146/627 853/1148/630 +f 856/1144/631 851/1149/631 853/1150/631 +f 857/1147/632 854/1141/632 851/1151/632 +f 841/1122/633 848/1129/633 858/1152/633 +f 854/1141/634 855/1142/634 847/1128/634 +f 847/1128/635 858/1152/635 848/1129/635 +f 839/1120/636 848/1129/636 859/1153/636 +f 811/1079/591 814/1082/591 812/1080/591 +f 816/1084/592 822/1154/592 817/1085/592 +f 819/1087/593 836/1117/593 820/1088/593 +f 822/1090/637 816/1155/637 823/1091/637 +f 822/1090/638 824/1092/638 825/1093/638 +f 820/1088/596 816/1156/596 818/1095/596 +f 820/1096/639 827/1108/639 823/1097/639 +f 827/1099/598 834/1109/602 828/1100/598 +f 829/1102/640 832/1106/640 830/1103/640 +f 824/1105/600 830/1103/600 832/1106/600 +f 820/1096/641 836/1117/641 833/1107/641 +f 824/1105/604 823/1157/604 828/1111/604 +f 827/1099/606 833/1107/606 835/1112/606 +f 834/1109/642 835/1112/642 829/1114/642 +f 819/1087/610 837/1118/610 826/1094/610 +f 832/1106/611 835/1112/611 833/1107/611 +f 826/1094/612 825/1093/612 833/1107/612 +f 817/1085/613 822/1154/613 826/1094/613 +f 838/1119/614 844/1158/614 839/1120/614 +f 841/1122/615 858/1152/615 842/1123/615 +f 844/1125/643 838/1159/643 845/1126/643 +f 844/1125/644 846/1127/644 847/1128/644 +f 842/1123/618 838/1160/618 840/1130/618 +f 842/1131/645 849/1143/645 845/1132/645 +f 849/1134/620 856/1144/625 850/1135/621 +f 851/1137/646 854/1141/646 852/1138/646 +f 846/1140/623 852/1138/623 854/1141/623 +f 842/1131/647 858/1152/647 855/1142/647 +f 846/1140/627 845/1161/627 850/1146/627 +f 849/1134/629 855/1142/629 857/1147/629 +f 856/1144/648 857/1147/648 851/1149/648 +f 841/1122/633 859/1153/633 848/1129/633 +f 854/1141/634 857/1147/634 855/1142/634 +f 847/1128/635 855/1142/635 858/1152/635 +f 839/1120/636 844/1158/636 848/1129/636 diff --git a/src/main/resources/assets/hbm/models/machines/flare_stack.obj b/src/main/resources/assets/hbm/models/machines/flare_stack.obj new file mode 100644 index 000000000..c8de78e4a --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/flare_stack.obj @@ -0,0 +1,7139 @@ +# Blender v2.79 (sub 0) OBJ File: 'flare_stack.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.750000 1.500000 +v 1.500000 1.750000 1.500000 +v -1.500000 1.750000 -1.500000 +v 1.500000 1.750000 -1.500000 +v -1.500000 2.250000 0.625000 +v 1.500000 2.250000 0.625000 +v -1.500000 2.250000 -0.625000 +v 1.500000 2.250000 -0.625000 +v 0.625000 2.250000 1.500000 +v 0.625000 2.250000 -1.500000 +v -0.625000 2.250000 1.500000 +v -0.625000 2.250000 -1.500000 +v -0.750000 3.000000 -0.312500 +v -0.750000 3.000000 0.312500 +v 0.312500 3.000000 -0.750000 +v -0.312500 3.000000 -0.750000 +v 0.750000 3.000000 0.312500 +v 0.750000 3.000000 -0.312500 +v -0.312500 3.000000 0.750000 +v 0.312500 3.000000 0.750000 +v -0.750000 10.000000 -0.312500 +v -0.750000 10.000000 0.312500 +v 0.312500 10.000000 -0.750000 +v -0.312500 10.000000 -0.750000 +v 0.750000 10.000000 0.312500 +v 0.750000 10.000000 -0.312500 +v -0.312500 10.000000 0.750000 +v 0.312500 10.000000 0.750000 +v -0.375000 12.000000 -0.156250 +v -0.375000 12.000000 0.156250 +v 0.156250 12.000000 -0.375000 +v -0.156250 12.000000 -0.375000 +v 0.375000 12.000000 0.156250 +v 0.375000 12.000000 -0.156250 +v -0.156250 12.000000 0.375000 +v 0.156250 12.000000 0.375000 +v -0.562500 12.000000 -0.234375 +v -0.562500 12.000000 0.234375 +v 0.234375 12.000000 -0.562500 +v -0.234375 12.000000 -0.562500 +v 0.562500 12.000000 0.234375 +v 0.562500 12.000000 -0.234375 +v -0.234375 12.000000 0.562500 +v 0.234375 12.000000 0.562500 +v -0.375000 11.000000 -0.156250 +v -0.375000 11.000000 0.156250 +v 0.156250 11.000000 -0.375000 +v -0.156250 11.000000 -0.375000 +v 0.375000 11.000000 0.156250 +v 0.375000 11.000000 -0.156250 +v -0.156250 11.000000 0.375000 +v 0.156250 11.000000 0.375000 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.875000 0.375000 +v 1.375000 0.125000 0.375000 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.875000 -0.375000 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.312500 0.187500 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v -0.375000 0.875000 -1.375000 +v 0.375000 0.875000 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v 0.375000 0.875000 1.375000 +v -0.375000 0.875000 1.375000 +v -0.375000 0.125000 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 +v 0.187500 0.312500 1.375000 +v -0.750000 9.750000 -0.312500 +v -0.750000 9.750000 0.312500 +v 0.312500 9.750000 -0.750000 +v -0.312500 9.750000 -0.750000 +v 0.750000 9.750000 0.312500 +v 0.750000 9.750000 -0.312500 +v -0.312500 9.750000 0.750000 +v 0.312500 9.750000 0.750000 +v -0.875000 9.750000 0.375000 +v 0.875000 9.750000 0.375000 +v -0.875000 9.750000 -0.375000 +v 0.875000 9.750000 -0.375000 +v 0.375000 9.750000 0.875000 +v 0.375000 9.750000 -0.875000 +v -0.375000 9.750000 0.875000 +v -0.375000 9.750000 -0.875000 +v -0.750000 9.875000 -0.312500 +v -0.750000 9.875000 0.312500 +v 0.312500 9.875000 -0.750000 +v -0.312500 9.875000 -0.750000 +v 0.750000 9.875000 0.312500 +v 0.750000 9.875000 -0.312500 +v -0.312500 9.875000 0.750000 +v 0.312500 9.875000 0.750000 +v -0.875000 9.875000 -0.375000 +v -0.875000 9.875000 0.375000 +v 0.375000 9.875000 -0.875000 +v -0.375000 9.875000 -0.875000 +v 0.875000 9.875000 0.375000 +v 0.875000 9.875000 -0.375000 +v -0.375000 9.875000 0.875000 +v 0.375000 9.875000 0.875000 +v -1.500000 3.750000 0.625000 +v 1.500000 3.750000 0.625000 +v -1.500000 3.750000 -0.625000 +v 1.500000 3.750000 -0.625000 +v 0.625000 3.750000 1.500000 +v 0.625000 3.750000 -1.500000 +v -0.625000 3.750000 1.500000 +v -0.625000 3.750000 -1.500000 +v 0.406250 3.750000 1.000000 +v 0.406250 3.750000 -1.000000 +v -0.406250 3.750000 1.000000 +v -0.406250 3.750000 -1.000000 +v 1.000000 3.750000 -0.406250 +v -1.000000 3.750000 -0.406250 +v 1.000000 3.750000 0.406250 +v -1.000000 3.750000 0.406250 +v -1.500000 3.875000 -0.625000 +v -1.500000 3.875000 0.625000 +v 0.625000 3.875000 -1.500000 +v -0.625000 3.875000 -1.500000 +v 1.500000 3.875000 0.625000 +v 1.500000 3.875000 -0.625000 +v -0.625000 3.875000 1.500000 +v 0.625000 3.875000 1.500000 +v -0.406250 3.875000 1.000000 +v 0.406250 3.875000 1.000000 +v 1.000000 3.875000 0.406250 +v 1.000000 3.875000 -0.406250 +v 0.406250 3.875000 -1.000000 +v -0.406250 3.875000 -1.000000 +v -1.000000 3.875000 -0.406250 +v -1.000000 3.875000 0.406250 +v 0.786612 3.375000 0.062500 +v 0.875000 3.286612 0.062500 +v 0.786612 3.375000 -0.062500 +v 0.875000 3.286612 -0.062500 +v -0.875000 3.286612 0.062500 +v -0.786612 3.375000 0.062500 +v -0.875000 3.286612 -0.062500 +v -0.786612 3.375000 -0.062500 +v -1.361136 3.772747 -0.062500 +v -1.361136 3.772747 0.062500 +v -1.272748 3.861136 0.062500 +v -1.272748 3.861136 -0.062500 +v 1.361136 3.772747 0.062500 +v 1.361136 3.772747 -0.062500 +v 1.272748 3.861136 -0.062500 +v 1.272748 3.861136 0.062500 +v 0.062500 3.375000 -0.786612 +v 0.062500 3.286612 -0.875000 +v -0.062500 3.375000 -0.786612 +v -0.062500 3.286612 -0.875000 +v 0.062500 3.286612 0.875000 +v 0.062500 3.375000 0.786612 +v -0.062500 3.286612 0.875000 +v -0.062500 3.375000 0.786612 +v -0.062500 3.772747 1.361136 +v 0.062500 3.772747 1.361136 +v 0.062500 3.861136 1.272748 +v -0.062500 3.861136 1.272748 +v 0.062500 3.772747 -1.361136 +v -0.062500 3.772747 -1.361136 +v -0.062500 3.861136 -1.272748 +v 0.062500 3.861136 -1.272748 +v 0.600413 3.375000 -0.512024 +v 0.662913 3.286612 -0.574524 +v 0.512024 3.375000 -0.600413 +v 0.574524 3.286612 -0.662913 +v -0.574524 3.286612 0.662913 +v -0.512024 3.375000 0.600413 +v -0.662913 3.286612 0.574524 +v -0.600413 3.375000 0.512024 +v -1.006663 3.772747 0.918274 +v -0.918274 3.772747 1.006663 +v -0.855774 3.861136 0.944163 +v -0.944163 3.861136 0.855774 +v 1.006663 3.772747 -0.918275 +v 0.918274 3.772747 -1.006663 +v 0.855774 3.861136 -0.944163 +v 0.944163 3.861136 -0.855775 +v -0.512024 3.375000 -0.600413 +v -0.574524 3.286612 -0.662913 +v -0.600413 3.375000 -0.512024 +v -0.662913 3.286612 -0.574524 +v 0.662913 3.286612 0.574524 +v 0.600413 3.375000 0.512024 +v 0.574524 3.286612 0.662913 +v 0.512024 3.375000 0.600413 +v 0.918274 3.772747 1.006663 +v 1.006663 3.772747 0.918274 +v 0.944163 3.861136 0.855774 +v 0.855774 3.861136 0.944163 +v -0.918275 3.772747 -1.006663 +v -1.006663 3.772747 -0.918274 +v -0.944163 3.861136 -0.855774 +v -0.855775 3.861136 -0.944163 +v -0.875000 11.250000 0.375000 +v 0.875000 11.250000 0.375000 +v -0.875000 11.250000 -0.375000 +v 0.875000 11.250000 -0.375000 +v 0.375000 11.250000 0.875000 +v 0.375000 11.250000 -0.875000 +v -0.375000 11.250000 0.875000 +v -0.375000 11.250000 -0.875000 +v -0.875000 11.375000 -0.375000 +v -0.875000 11.375000 0.375000 +v 0.375000 11.375000 -0.875000 +v -0.375000 11.375000 -0.875000 +v 0.875000 11.375000 0.375000 +v 0.875000 11.375000 -0.375000 +v -0.375000 11.375000 0.875000 +v 0.375000 11.375000 0.875000 +v -0.437500 11.250000 1.000000 +v 0.437500 11.250000 1.000000 +v -0.437500 11.250000 -1.000000 +v 0.437500 11.250000 -1.000000 +v 1.000000 11.250000 0.437500 +v 1.000000 11.250000 -0.437500 +v -1.000000 11.250000 0.437500 +v -1.000000 11.250000 -0.437500 +v -0.437500 11.375000 1.000000 +v 0.437500 11.375000 1.000000 +v -0.437500 11.375000 -1.000000 +v 0.437500 11.375000 -1.000000 +v 1.000000 11.375000 0.437500 +v 1.000000 11.375000 -0.437500 +v -1.000000 11.375000 0.437500 +v -1.000000 11.375000 -0.437500 +v -0.968750 11.375000 0.062500 +v -0.906250 11.375000 0.062500 +v -0.968750 11.375000 -0.062500 +v -0.906250 11.375000 -0.062500 +v -0.968750 12.000000 -0.062500 +v -0.968750 12.000000 0.062500 +v -0.906250 12.000000 0.062500 +v -0.906250 12.000000 -0.062500 +v 0.968750 11.375000 -0.062500 +v 0.906250 11.375000 -0.062500 +v 0.968750 11.375000 0.062500 +v 0.906250 11.375000 0.062500 +v 0.968750 12.000000 0.062500 +v 0.968750 12.000000 -0.062500 +v 0.906250 12.000000 -0.062500 +v 0.906250 12.000000 0.062500 +v 0.062500 11.375000 0.968750 +v 0.062500 11.375000 0.906250 +v -0.062500 11.375000 0.968750 +v -0.062500 11.375000 0.906250 +v -0.062500 12.000000 0.968750 +v 0.062500 12.000000 0.968750 +v 0.062500 12.000000 0.906250 +v -0.062500 12.000000 0.906250 +v -0.062500 11.375000 -0.968750 +v -0.062500 11.375000 -0.906250 +v 0.062500 11.375000 -0.968750 +v 0.062500 11.375000 -0.906250 +v 0.062500 12.000000 -0.968750 +v -0.062500 12.000000 -0.968750 +v -0.062500 12.000000 -0.906250 +v 0.062500 12.000000 -0.906250 +v -0.640815 11.375000 0.729204 +v -0.596621 11.375000 0.685010 +v -0.729204 11.375000 0.640815 +v -0.685010 11.375000 0.596621 +v -0.729204 12.000000 0.640815 +v -0.640815 12.000000 0.729204 +v -0.596621 12.000000 0.685010 +v -0.685010 12.000000 0.596621 +v 0.640815 11.375000 -0.729204 +v 0.596621 11.375000 -0.685010 +v 0.729204 11.375000 -0.640816 +v 0.685010 11.375000 -0.596621 +v 0.729204 12.000000 -0.640816 +v 0.640815 12.000000 -0.729204 +v 0.596621 12.000000 -0.685010 +v 0.685010 12.000000 -0.596621 +v 0.729204 11.375000 0.640815 +v 0.685010 11.375000 0.596621 +v 0.640815 11.375000 0.729204 +v 0.596621 11.375000 0.685010 +v 0.640815 12.000000 0.729204 +v 0.729204 12.000000 0.640815 +v 0.685010 12.000000 0.596621 +v 0.596621 12.000000 0.685010 +v -0.729204 11.375000 -0.640815 +v -0.685010 11.375000 -0.596621 +v -0.640816 11.375000 -0.729204 +v -0.596621 11.375000 -0.685010 +v -0.640816 12.000000 -0.729204 +v -0.729204 12.000000 -0.640815 +v -0.685010 12.000000 -0.596621 +v -0.596621 12.000000 -0.685010 +v -0.928833 11.375000 0.452385 +v -0.871091 11.375000 0.428467 +v -0.976668 11.375000 0.336900 +v -0.918926 11.375000 0.312982 +v -0.976668 12.000000 0.336900 +v -0.928833 12.000000 0.452385 +v -0.871091 12.000000 0.428467 +v -0.918926 12.000000 0.312982 +v 0.928833 11.375000 -0.452385 +v 0.871091 11.375000 -0.428467 +v 0.976668 11.375000 -0.336900 +v 0.918926 11.375000 -0.312982 +v 0.976668 12.000000 -0.336900 +v 0.928833 12.000000 -0.452385 +v 0.871091 12.000000 -0.428467 +v 0.918926 12.000000 -0.312982 +v 0.452385 11.375000 0.928833 +v 0.428467 11.375000 0.871091 +v 0.336900 11.375000 0.976668 +v 0.312982 11.375000 0.918926 +v 0.336900 12.000000 0.976668 +v 0.452385 12.000000 0.928833 +v 0.428467 12.000000 0.871091 +v 0.312982 12.000000 0.918926 +v -0.452385 11.375000 -0.928833 +v -0.428467 11.375000 -0.871091 +v -0.336900 11.375000 -0.976668 +v -0.312982 11.375000 -0.918926 +v -0.336900 12.000000 -0.976668 +v -0.452385 12.000000 -0.928833 +v -0.428467 12.000000 -0.871091 +v -0.312982 12.000000 -0.918926 +v -0.336900 11.375000 0.976668 +v -0.312982 11.375000 0.918926 +v -0.452385 11.375000 0.928833 +v -0.428467 11.375000 0.871091 +v -0.452385 12.000000 0.928833 +v -0.336900 12.000000 0.976668 +v -0.312982 12.000000 0.918926 +v -0.428467 12.000000 0.871091 +v 0.336900 11.375000 -0.976668 +v 0.312982 11.375000 -0.918926 +v 0.452385 11.375000 -0.928833 +v 0.428467 11.375000 -0.871091 +v 0.452385 12.000000 -0.928833 +v 0.336900 12.000000 -0.976668 +v 0.312982 12.000000 -0.918926 +v 0.428467 12.000000 -0.871091 +v 0.976668 11.375000 0.336900 +v 0.918926 11.375000 0.312982 +v 0.928833 11.375000 0.452385 +v 0.871091 11.375000 0.428467 +v 0.928833 12.000000 0.452385 +v 0.976668 12.000000 0.336900 +v 0.918926 12.000000 0.312982 +v 0.871091 12.000000 0.428467 +v -0.976669 11.375000 -0.336900 +v -0.918926 11.375000 -0.312982 +v -0.928833 11.375000 -0.452385 +v -0.871091 11.375000 -0.428467 +v -0.928833 12.000000 -0.452385 +v -0.976669 12.000000 -0.336900 +v -0.918926 12.000000 -0.312982 +v -0.871091 12.000000 -0.428467 +v -0.812500 10.875000 -0.062500 +v -0.812500 9.875000 0.062500 +v -0.812500 10.875000 0.062500 +v -0.812500 9.875000 -0.062500 +v -0.937500 11.250000 -0.062500 +v -0.937500 11.250000 0.062500 +v 0.812500 10.875000 0.062500 +v 0.812500 9.875000 -0.062500 +v 0.812500 10.875000 -0.062500 +v 0.812500 9.875000 0.062500 +v 0.937500 11.250000 0.062500 +v 0.937500 11.250000 -0.062500 +v -0.062500 10.875000 0.812500 +v 0.062500 9.875000 0.812500 +v 0.062500 10.875000 0.812500 +v -0.062500 9.875000 0.812500 +v -0.062500 11.250000 0.937500 +v 0.062500 11.250000 0.937500 +v 0.062500 10.875000 -0.812500 +v -0.062500 9.875000 -0.812500 +v -0.062500 10.875000 -0.812500 +v 0.062500 9.875000 -0.812500 +v 0.062500 11.250000 -0.937500 +v -0.062500 11.250000 -0.937500 +v -0.618718 10.875000 0.530330 +v -0.530330 9.875000 0.618718 +v -0.530330 10.875000 0.618718 +v -0.618718 9.875000 0.530330 +v -0.707107 11.250000 0.618718 +v -0.618718 11.250000 0.707107 +v 0.618718 10.875000 -0.530330 +v 0.530330 9.875000 -0.618718 +v 0.530330 10.875000 -0.618718 +v 0.618718 9.875000 -0.530330 +v 0.707107 11.250000 -0.618719 +v 0.618718 11.250000 -0.707107 +v 0.530330 10.875000 0.618718 +v 0.618718 9.875000 0.530330 +v 0.618718 10.875000 0.530330 +v 0.530330 9.875000 0.618718 +v 0.618719 11.250000 0.707107 +v 0.707107 11.250000 0.618718 +v -0.530330 10.875000 -0.618718 +v -0.618719 9.875000 -0.530330 +v -0.618719 10.875000 -0.530330 +v -0.530330 9.875000 -0.618718 +v -0.618719 11.250000 -0.707107 +v -0.707107 11.250000 -0.618718 +v -0.750000 3.250000 -0.312500 +v -0.750000 3.250000 0.312500 +v 0.312500 3.250000 -0.750000 +v -0.312500 3.250000 -0.750000 +v 0.750000 3.250000 0.312500 +v 0.750000 3.250000 -0.312500 +v -0.312500 3.250000 0.750000 +v 0.312500 3.250000 0.750000 +v -0.875000 3.250000 0.375000 +v 0.875000 3.250000 0.375000 +v -0.875000 3.250000 -0.375000 +v 0.875000 3.250000 -0.375000 +v 0.375000 3.250000 0.875000 +v 0.375000 3.250000 -0.875000 +v -0.375000 3.250000 0.875000 +v -0.375000 3.250000 -0.875000 +v -0.750000 3.375000 -0.312500 +v -0.750000 3.375000 0.312500 +v 0.312500 3.375000 -0.750000 +v -0.312500 3.375000 -0.750000 +v 0.750000 3.375000 0.312500 +v 0.750000 3.375000 -0.312500 +v -0.312500 3.375000 0.750000 +v 0.312500 3.375000 0.750000 +v -0.875000 3.375000 -0.375000 +v -0.875000 3.375000 0.375000 +v 0.375000 3.375000 -0.875000 +v -0.375000 3.375000 -0.875000 +v 0.875000 3.375000 0.375000 +v 0.875000 3.375000 -0.375000 +v -0.375000 3.375000 0.875000 +v 0.375000 3.375000 0.875000 +v 0.375000 8.875000 0.875000 +v -0.375000 8.875000 0.875000 +v 0.875000 8.875000 -0.375000 +v 0.875000 8.875000 0.375000 +v -0.375000 8.875000 -0.875000 +v 0.375000 8.875000 -0.875000 +v -0.875000 8.875000 0.375000 +v -0.875000 8.875000 -0.375000 +v 0.312500 8.875000 0.750000 +v -0.312500 8.875000 0.750000 +v 0.750000 8.875000 -0.312500 +v 0.750000 8.875000 0.312500 +v -0.312500 8.875000 -0.750000 +v 0.312500 8.875000 -0.750000 +v -0.750000 8.875000 0.312500 +v -0.750000 8.875000 -0.312500 +v -0.375000 8.750000 -0.875000 +v -0.375000 8.750000 0.875000 +v 0.375000 8.750000 -0.875000 +v 0.375000 8.750000 0.875000 +v 0.875000 8.750000 -0.375000 +v -0.875000 8.750000 -0.375000 +v 0.875000 8.750000 0.375000 +v -0.875000 8.750000 0.375000 +v 0.312500 8.750000 0.750000 +v -0.312500 8.750000 0.750000 +v 0.750000 8.750000 -0.312500 +v 0.750000 8.750000 0.312500 +v -0.312500 8.750000 -0.750000 +v 0.312500 8.750000 -0.750000 +v -0.750000 8.750000 0.312500 +v -0.750000 8.750000 -0.312500 +v -0.855775 9.361135 -0.944163 +v -0.944163 9.361135 -0.855774 +v -1.006663 9.272747 -0.918274 +v -0.918275 9.272747 -1.006663 +v 0.855774 9.361135 0.944163 +v 0.944163 9.361135 0.855774 +v 1.006663 9.272747 0.918274 +v 0.918274 9.272747 1.006663 +v 0.512024 8.875000 0.600413 +v 0.574524 8.786612 0.662913 +v 0.600413 8.875000 0.512024 +v 0.662913 8.786612 0.574524 +v -0.662913 8.786612 -0.574524 +v -0.600413 8.875000 -0.512024 +v -0.574524 8.786612 -0.662913 +v -0.512024 8.875000 -0.600413 +v 0.944163 9.361135 -0.855775 +v 0.855774 9.361135 -0.944163 +v 0.918274 9.272747 -1.006663 +v 1.006663 9.272747 -0.918275 +v -0.944163 9.361135 0.855774 +v -0.855774 9.361135 0.944163 +v -0.918274 9.272747 1.006663 +v -1.006663 9.272747 0.918274 +v -0.600413 8.875000 0.512024 +v -0.662913 8.786612 0.574524 +v -0.512024 8.875000 0.600413 +v -0.574524 8.786612 0.662913 +v 0.574524 8.786612 -0.662913 +v 0.512024 8.875000 -0.600413 +v 0.662913 8.786612 -0.574524 +v 0.600413 8.875000 -0.512024 +v 0.062500 9.361135 -1.272748 +v -0.062500 9.361135 -1.272748 +v -0.062500 9.272747 -1.361136 +v 0.062500 9.272747 -1.361136 +v -0.062500 9.361135 1.272748 +v 0.062500 9.361135 1.272748 +v 0.062500 9.272747 1.361136 +v -0.062500 9.272747 1.361136 +v -0.062500 8.875000 0.786612 +v -0.062500 8.786612 0.875000 +v 0.062500 8.875000 0.786612 +v 0.062500 8.786612 0.875000 +v -0.062500 8.786612 -0.875000 +v -0.062500 8.875000 -0.786612 +v 0.062500 8.786612 -0.875000 +v 0.062500 8.875000 -0.786612 +v 1.272748 9.361135 0.062500 +v 1.272748 9.361135 -0.062500 +v 1.361136 9.272747 -0.062500 +v 1.361136 9.272747 0.062500 +v -1.272748 9.361135 -0.062500 +v -1.272748 9.361135 0.062500 +v -1.361136 9.272747 0.062500 +v -1.361136 9.272747 -0.062500 +v -0.786612 8.875000 -0.062500 +v -0.875000 8.786612 -0.062500 +v -0.786612 8.875000 0.062500 +v -0.875000 8.786612 0.062500 +v 0.875000 8.786612 -0.062500 +v 0.786612 8.875000 -0.062500 +v 0.875000 8.786612 0.062500 +v 0.786612 8.875000 0.062500 +v -1.000000 9.375000 0.406250 +v -1.000000 9.375000 -0.406250 +v -0.406250 9.375000 -1.000000 +v 0.406250 9.375000 -1.000000 +v 1.000000 9.375000 -0.406250 +v 1.000000 9.375000 0.406250 +v 0.406250 9.375000 1.000000 +v -0.406250 9.375000 1.000000 +v 0.625000 9.375000 1.500000 +v -0.625000 9.375000 1.500000 +v 1.500000 9.375000 -0.625000 +v 1.500000 9.375000 0.625000 +v -0.625000 9.375000 -1.500000 +v 0.625000 9.375000 -1.500000 +v -1.500000 9.375000 0.625000 +v -1.500000 9.375000 -0.625000 +v -1.000000 9.250000 0.406250 +v 1.000000 9.250000 0.406250 +v -1.000000 9.250000 -0.406250 +v 1.000000 9.250000 -0.406250 +v -0.406250 9.250000 -1.000000 +v -0.406250 9.250000 1.000000 +v 0.406250 9.250000 -1.000000 +v 0.406250 9.250000 1.000000 +v -0.625000 9.250000 -1.500000 +v -0.625000 9.250000 1.500000 +v 0.625000 9.250000 -1.500000 +v 0.625000 9.250000 1.500000 +v 1.500000 9.250000 -0.625000 +v -1.500000 9.250000 -0.625000 +v 1.500000 9.250000 0.625000 +v -1.500000 9.250000 0.625000 +v -1.000000 1.750000 -1.250000 +v -1.176777 1.750000 -1.176777 +v -1.250000 1.750000 -1.000000 +v -1.176777 1.750000 -0.823223 +v -1.000000 1.750000 -0.750000 +v -0.823223 1.750000 -0.823223 +v -0.750000 1.750000 -1.000000 +v -0.823223 1.750000 -1.176777 +v -1.000000 10.000000 -1.250000 +v -1.176777 10.000000 -1.176777 +v -1.250000 10.000000 -1.000000 +v -1.176777 10.000000 -0.823223 +v -1.000000 10.000000 -0.750000 +v -0.823223 10.000000 -0.823223 +v -0.750000 10.000000 -1.000000 +v -0.823223 10.000000 -1.176777 +v -1.000000 10.000000 -1.375000 +v -1.265165 10.000000 -1.265165 +v -1.375000 10.000000 -1.000000 +v -1.265165 10.000000 -0.734835 +v -1.000000 10.000000 -0.625000 +v -0.734835 10.000000 -0.734835 +v -0.625000 10.000000 -1.000000 +v -0.734835 10.000000 -1.265165 +v -1.000000 10.750000 -1.375000 +v -1.265165 10.750000 -1.265165 +v -1.375000 10.750000 -1.000000 +v -1.265165 10.750000 -0.734835 +v -1.000000 10.750000 -0.625000 +v -0.734835 10.750000 -0.734835 +v -0.625000 10.750000 -1.000000 +v -0.734835 10.750000 -1.265165 +v -1.000000 11.000000 -1.250000 +v -1.176777 11.000000 -1.176777 +v -1.250000 11.000000 -1.000000 +v -1.176777 11.000000 -0.823223 +v -1.000000 11.000000 -0.750000 +v -0.823223 11.000000 -0.823223 +v -0.750000 11.000000 -1.000000 +v -0.823223 11.000000 -1.176777 +v -1.000000 11.000000 -1.187500 +v -1.132582 11.000000 -1.132582 +v -1.187500 11.000000 -1.000000 +v -1.132582 11.000000 -0.867418 +v -1.000000 11.000000 -0.812500 +v -0.867417 11.000000 -0.867418 +v -0.812500 11.000000 -1.000000 +v -0.867417 11.000000 -1.132582 +v -1.132582 10.000000 -1.132582 +v -1.000000 10.000000 -1.187500 +v -1.187500 10.000000 -1.000000 +v -1.132582 10.000000 -0.867418 +v -1.000000 10.000000 -0.812500 +v -0.867417 10.000000 -0.867418 +v -0.812500 10.000000 -1.000000 +v -0.867417 10.000000 -1.132582 +v 1.250000 2.000000 -0.375000 +v 1.161612 2.000000 -0.338388 +v 1.125000 2.000000 -0.250000 +v 1.161612 2.000000 -0.161612 +v 1.250000 2.000000 -0.125000 +v 1.338388 2.000000 -0.161612 +v 1.375000 2.000000 -0.250000 +v 1.338388 2.000000 -0.338388 +v 1.875000 3.625000 -0.250000 +v 1.838388 3.625000 -0.161612 +v 1.750000 3.625000 -0.125000 +v 1.661612 3.625000 -0.161612 +v 1.625000 3.625000 -0.250000 +v 1.661612 3.625000 -0.338389 +v 1.750000 3.625000 -0.375000 +v 1.838388 3.625000 -0.338389 +v 1.375000 3.625000 -0.250000 +v 1.375000 3.588389 -0.161612 +v 1.375000 3.500000 -0.125000 +v 1.375000 3.411612 -0.161612 +v 1.375000 3.375000 -0.250000 +v 1.375000 3.411612 -0.338389 +v 1.375000 3.500000 -0.375000 +v 1.375000 3.588389 -0.338389 +v 1.198223 3.551777 -0.250000 +v 1.224112 3.525889 -0.161612 +v 1.286612 3.463389 -0.125000 +v 1.349112 3.400889 -0.161612 +v 1.349112 3.400889 -0.338389 +v 1.286612 3.463389 -0.375000 +v 1.224112 3.525889 -0.338389 +v 1.125000 3.375000 -0.250000 +v 1.161612 3.375000 -0.161612 +v 1.250000 3.375000 -0.125000 +v 1.338388 3.375000 -0.161612 +v 1.338388 3.375000 -0.338389 +v 1.250000 3.375000 -0.375000 +v 1.161612 3.375000 -0.338389 +v 1.838388 4.000000 -0.338389 +v 1.750000 4.000000 -0.375000 +v 1.661612 4.000000 -0.338389 +v 1.625000 4.000000 -0.250000 +v 1.661612 4.000000 -0.161612 +v 1.750000 4.000000 -0.125000 +v 1.838388 4.000000 -0.161612 +v 1.875000 4.000000 -0.250000 +v 1.625000 3.375000 -0.250000 +v 1.625000 3.411612 -0.161612 +v 1.625000 3.500000 -0.125000 +v 1.625000 3.588389 -0.161612 +v 1.625000 3.588389 -0.338389 +v 1.625000 3.500000 -0.375000 +v 1.625000 3.411612 -0.338389 +v 1.801776 3.448224 -0.250000 +v 1.775888 3.474112 -0.161612 +v 1.713388 3.536612 -0.125000 +v 1.650888 3.599112 -0.161612 +v 1.650888 3.599112 -0.338389 +v 1.713388 3.536612 -0.375000 +v 1.775888 3.474112 -0.338389 +v 0.875000 4.250000 -0.250000 +v 0.911612 4.250000 -0.161612 +v 1.000000 4.250000 -0.125000 +v 1.088388 4.250000 -0.161612 +v 1.125000 4.250000 -0.250000 +v 1.088388 4.250000 -0.338389 +v 1.000000 4.250000 -0.375000 +v 0.911612 4.250000 -0.338389 +v 0.948223 4.073224 -0.250000 +v 0.974112 4.099112 -0.161612 +v 1.036612 4.161612 -0.125000 +v 1.099112 4.224112 -0.161612 +v 1.099112 4.224112 -0.338389 +v 1.036612 4.161612 -0.375000 +v 0.974112 4.099112 -0.338389 +v 1.125000 4.000000 -0.250000 +v 1.125000 4.036612 -0.161612 +v 1.125000 4.125000 -0.125000 +v 1.125000 4.213388 -0.161612 +v 1.125000 4.213388 -0.338389 +v 1.125000 4.125000 -0.375000 +v 1.125000 4.036612 -0.338389 +v 1.801777 4.176777 -0.250000 +v 1.775888 4.150888 -0.161612 +v 1.713388 4.088388 -0.125000 +v 1.650888 4.025888 -0.161612 +v 1.650888 4.025888 -0.338389 +v 1.713388 4.088388 -0.375000 +v 1.775888 4.150888 -0.338389 +v 1.625000 4.250000 -0.250000 +v 1.625000 4.213388 -0.161612 +v 1.625000 4.125000 -0.125000 +v 1.625000 4.036612 -0.161612 +v 1.625000 4.036612 -0.338389 +v 1.625000 4.125000 -0.375000 +v 1.625000 4.213388 -0.338389 +v 1.875000 9.125000 -0.250000 +v 1.838388 9.125000 -0.161612 +v 1.750000 9.125000 -0.125000 +v 1.661612 9.125000 -0.161612 +v 1.625000 9.125000 -0.250000 +v 1.661612 9.125000 -0.338389 +v 1.750000 9.125000 -0.375000 +v 1.838388 9.125000 -0.338389 +v 1.125000 9.125000 -0.250000 +v 1.125000 9.088388 -0.161612 +v 1.125000 9.000000 -0.125000 +v 1.125000 8.911612 -0.161612 +v 1.125000 8.875000 -0.250000 +v 1.125000 8.911612 -0.338389 +v 1.125000 9.000000 -0.375000 +v 1.125000 9.088388 -0.338389 +v 0.948223 9.051777 -0.250000 +v 0.974112 9.025888 -0.161612 +v 1.036612 8.963388 -0.125000 +v 1.099112 8.900888 -0.161612 +v 1.099112 8.900888 -0.338389 +v 1.036612 8.963388 -0.375000 +v 0.974112 9.025888 -0.338389 +v 0.875000 8.875000 -0.250000 +v 0.911612 8.875000 -0.161612 +v 1.000000 8.875000 -0.125000 +v 1.088388 8.875000 -0.161612 +v 1.088388 8.875000 -0.338389 +v 1.000000 8.875000 -0.375000 +v 0.911612 8.875000 -0.338389 +v 1.838388 9.500000 -0.338389 +v 1.750000 9.500000 -0.375000 +v 1.661612 9.500000 -0.338389 +v 1.625000 9.500000 -0.250000 +v 1.661612 9.500000 -0.161612 +v 1.750000 9.500000 -0.125000 +v 1.838388 9.500000 -0.161612 +v 1.875000 9.500000 -0.250000 +v 1.625000 8.875000 -0.250000 +v 1.625000 8.911612 -0.161612 +v 1.625000 9.000000 -0.125000 +v 1.625000 9.088388 -0.161612 +v 1.625000 9.088388 -0.338389 +v 1.625000 9.000000 -0.375000 +v 1.625000 8.911612 -0.338389 +v 1.801776 8.948223 -0.250000 +v 1.775888 8.974112 -0.161612 +v 1.713388 9.036612 -0.125000 +v 1.650888 9.099112 -0.161612 +v 1.650888 9.099112 -0.338389 +v 1.713388 9.036612 -0.375000 +v 1.775888 8.974112 -0.338389 +v 0.875000 9.750000 -0.250000 +v 0.911612 9.750000 -0.161612 +v 1.000000 9.750000 -0.125000 +v 1.088388 9.750000 -0.161612 +v 1.125000 9.750000 -0.250000 +v 1.088388 9.750000 -0.338389 +v 1.000000 9.750000 -0.375000 +v 0.911612 9.750000 -0.338389 +v 0.948223 9.573223 -0.250000 +v 0.974112 9.599112 -0.161612 +v 1.036612 9.661612 -0.125000 +v 1.099112 9.724112 -0.161612 +v 1.099112 9.724112 -0.338389 +v 1.036612 9.661612 -0.375000 +v 0.974112 9.599112 -0.338389 +v 1.125000 9.500000 -0.250000 +v 1.125000 9.536612 -0.161612 +v 1.125000 9.625000 -0.125000 +v 1.125000 9.713388 -0.161612 +v 1.125000 9.713388 -0.338389 +v 1.125000 9.625000 -0.375000 +v 1.125000 9.536612 -0.338389 +v 1.801777 9.676777 -0.250000 +v 1.775888 9.650888 -0.161612 +v 1.713388 9.588388 -0.125000 +v 1.650888 9.525888 -0.161612 +v 1.650888 9.525888 -0.338389 +v 1.713388 9.588388 -0.375000 +v 1.775888 9.650888 -0.338389 +v 1.625000 9.750000 -0.250000 +v 1.625000 9.713388 -0.161612 +v 1.625000 9.625000 -0.125000 +v 1.625000 9.536612 -0.161612 +v 1.625000 9.536612 -0.338389 +v 1.625000 9.625000 -0.375000 +v 1.625000 9.713388 -0.338389 +v 1.088388 10.375000 -0.338389 +v 1.000000 10.375000 -0.375000 +v 0.911612 10.375000 -0.338389 +v 0.875000 10.375000 -0.250000 +v 0.911612 10.375000 -0.161612 +v 1.000000 10.375000 -0.125000 +v 1.088388 10.375000 -0.161612 +v 1.125000 10.375000 -0.250000 +v 1.051777 10.551777 -0.250000 +v 1.025888 10.525888 -0.161612 +v 0.963388 10.463388 -0.125000 +v 0.900888 10.400888 -0.161612 +v 0.900888 10.400888 -0.338389 +v 0.963388 10.463388 -0.375000 +v 1.025888 10.525888 -0.338389 +v 0.875000 10.625000 -0.250000 +v 0.875000 10.588388 -0.161612 +v 0.875000 10.500000 -0.125000 +v 0.875000 10.411612 -0.161612 +v 0.875000 10.411612 -0.338389 +v 0.875000 10.500000 -0.375000 +v 0.875000 10.588388 -0.338389 +v 0.500000 10.625000 -0.250000 +v 0.500000 10.588388 -0.161612 +v 0.500000 10.500000 -0.125000 +v 0.500000 10.411612 -0.161612 +v 0.500000 10.375000 -0.250000 +v 0.500000 10.411612 -0.338389 +v 0.500000 10.500000 -0.375000 +v 0.500000 10.588388 -0.338389 +v -1.500000 1.750000 0.625000 +v 1.500000 1.750000 0.625000 +v -1.500000 1.750000 -0.625000 +v 1.500000 1.750000 -0.625000 +v 0.625000 1.750000 1.500000 +v 0.625000 1.750000 -1.500000 +v -0.625000 1.750000 1.500000 +v -0.625000 1.750000 -1.500000 +v 0.000000 8.062500 0.750000 +v -0.176776 8.062500 0.823223 +v -0.250000 8.062500 1.000000 +v -0.176777 8.062500 1.176776 +v 0.000000 8.062500 1.250000 +v 0.176777 8.062500 1.176776 +v 0.250000 8.062500 1.000000 +v 0.176777 8.062500 0.823223 +v 0.000001 7.062500 1.250000 +v 0.176778 7.062500 1.176776 +v 0.000001 7.062500 0.750000 +v 0.176778 7.062500 0.823223 +v 0.250001 7.062500 1.000000 +v -0.249999 7.062500 1.000000 +v -0.176776 7.062500 1.176776 +v -0.176776 7.062500 0.823223 +v 0.000000 6.062500 0.750000 +v -0.176776 6.062500 0.823223 +v -0.250000 6.062500 1.000000 +v -0.176777 6.062500 1.176776 +v 0.000000 6.062500 1.250000 +v 0.176777 6.062500 1.176776 +v 0.250000 6.062500 1.000000 +v 0.176777 6.062500 0.823223 +v 0.000001 5.062500 1.250000 +v 0.176778 5.062500 1.176776 +v 0.000001 5.062500 0.750000 +v 0.176778 5.062500 0.823223 +v 0.250001 5.062500 1.000000 +v -0.249999 5.062500 1.000000 +v -0.176776 5.062500 1.176776 +v -0.176776 5.062500 0.823223 +v -0.750000 7.749999 1.000000 +v -0.713388 7.749999 1.088388 +v -0.625000 7.749999 1.125000 +v -0.536612 7.749999 1.088388 +v -0.500000 7.749999 1.000000 +v -0.536612 7.749999 0.911612 +v -0.625000 7.749999 0.875000 +v -0.713388 7.749999 0.911612 +v -0.676777 7.573222 1.000000 +v -0.650888 7.599111 1.088388 +v -0.588388 7.661611 1.125000 +v -0.525888 7.724111 1.088388 +v -0.525888 7.724111 0.911612 +v -0.588388 7.661611 0.875000 +v -0.650888 7.599111 0.911612 +v -0.500000 7.499999 1.000000 +v -0.500000 7.536611 1.088388 +v -0.500000 7.624999 1.125000 +v -0.500000 7.713387 1.088388 +v -0.500000 7.713387 0.911612 +v -0.500000 7.624999 0.875000 +v -0.500000 7.536611 0.911612 +v -1.155330 9.124999 1.530330 +v -1.191941 9.124999 1.441941 +v -1.155330 9.124999 1.353553 +v -1.066941 9.124999 1.316942 +v -0.978553 9.124999 1.353553 +v -0.941941 9.124999 1.441942 +v -0.978553 9.124999 1.530330 +v -1.066942 9.124999 1.566942 +v -0.713388 9.124999 1.088388 +v -0.775888 9.088387 1.025888 +v -0.801776 8.999999 1.000000 +v -0.775888 8.911611 1.025888 +v -0.713388 8.874999 1.088388 +v -0.650888 8.911611 1.150888 +v -0.625000 8.999999 1.176777 +v -0.650888 9.088387 1.150888 +v -0.588388 9.051776 0.963388 +v -0.669194 9.025887 0.919194 +v -0.739276 8.963387 0.937500 +v -0.757582 8.900887 1.007582 +v -0.632582 8.900887 1.132582 +v -0.562500 8.963387 1.114277 +v -0.544194 9.025887 1.044194 +v -0.536611 8.874999 0.911612 +v -0.625000 8.874999 0.875000 +v -0.713388 8.874999 0.911612 +v -0.750000 8.874999 1.000000 +v -0.625000 8.874999 1.125000 +v -0.536611 8.874999 1.088388 +v -0.500000 8.874999 1.000000 +v -1.066942 9.499999 1.566942 +v -0.978553 9.499999 1.530330 +v -0.941941 9.499999 1.441942 +v -0.978553 9.499999 1.353553 +v -1.066941 9.499999 1.316942 +v -1.155330 9.499999 1.353553 +v -1.191941 9.499999 1.441941 +v -1.155330 9.499999 1.530330 +v -0.978553 8.874999 1.353553 +v -1.041053 8.911611 1.291053 +v -1.066941 8.999999 1.265165 +v -1.041053 9.088387 1.291053 +v -0.916053 9.088387 1.416053 +v -0.890165 8.999999 1.441942 +v -0.916053 8.911611 1.416053 +v -1.103553 8.948222 1.478553 +v -1.147747 8.974111 1.397748 +v -1.129441 9.036611 1.327665 +v -1.059359 9.099111 1.309359 +v -0.934359 9.099111 1.434359 +v -0.952665 9.036611 1.504441 +v -1.022747 8.974111 1.522748 +v -0.536611 9.749999 0.911612 +v -0.625000 9.749999 0.875000 +v -0.713388 9.749999 0.911612 +v -0.750000 9.749999 1.000000 +v -0.713388 9.749999 1.088388 +v -0.625000 9.749999 1.125000 +v -0.536611 9.749999 1.088388 +v -0.500000 9.749999 1.000000 +v -0.588388 9.573222 0.963388 +v -0.669194 9.599111 0.919194 +v -0.739276 9.661611 0.937500 +v -0.757582 9.724111 1.007582 +v -0.632582 9.724111 1.132582 +v -0.562500 9.661611 1.114277 +v -0.544194 9.599111 1.044194 +v -0.713388 9.499999 1.088388 +v -0.775888 9.536611 1.025888 +v -0.801776 9.624999 1.000000 +v -0.775888 9.713387 1.025888 +v -0.650888 9.713387 1.150888 +v -0.625000 9.624999 1.176777 +v -0.650888 9.536611 1.150888 +v -1.103553 9.676776 1.478553 +v -1.147747 9.650887 1.397748 +v -1.129441 9.588387 1.327665 +v -1.059359 9.525887 1.309359 +v -0.934359 9.525887 1.434359 +v -0.952665 9.588387 1.504441 +v -1.022747 9.650887 1.522747 +v -0.978553 9.749999 1.353553 +v -1.041053 9.713387 1.291053 +v -1.066941 9.624999 1.265165 +v -1.041053 9.536611 1.291053 +v -0.916053 9.536611 1.416053 +v -0.890165 9.624999 1.441942 +v -0.916053 9.713387 1.416053 +v -0.187500 7.713387 1.088388 +v -0.187500 7.749999 1.000000 +v -0.187500 7.536611 1.088388 +v -0.187500 7.624999 1.125000 +v -0.187500 7.713387 0.911612 +v -0.187500 7.499999 1.000000 +v -0.187500 7.536611 0.911612 +v -0.187500 7.624999 0.875000 +v -0.536611 11.749999 0.911612 +v -0.625000 11.749999 0.875000 +v -0.713388 11.749999 0.911612 +v -0.750000 11.749999 1.000000 +v -0.713388 11.749999 1.088388 +v -0.625000 11.749999 1.125000 +v -0.536611 11.749999 1.088388 +v -0.500000 11.749999 1.000000 +v -0.558709 11.749999 0.933709 +v -0.625000 11.749999 0.906250 +v -0.691291 11.749999 0.933709 +v -0.718750 11.749999 1.000000 +v -0.691291 11.749999 1.066291 +v -0.625000 11.749999 1.093750 +v -0.558709 11.749999 1.066291 +v -0.531250 11.749999 1.000000 +v -0.691289 10.749999 1.066291 +v -0.624997 10.749999 1.093750 +v -0.558706 10.749999 0.933709 +v -0.531247 10.749999 1.000000 +v -0.558706 10.749999 1.066291 +v -0.691289 10.749999 0.933709 +v -0.718747 10.749999 1.000000 +v -0.624997 10.749999 0.906250 +v 1.250000 2.000000 0.125000 +v 1.161612 2.000000 0.161612 +v 1.125000 2.000000 0.250000 +v 1.161612 2.000000 0.338388 +v 1.250000 2.000000 0.375000 +v 1.338388 2.000000 0.338388 +v 1.375000 2.000000 0.250000 +v 1.338388 2.000000 0.161612 +v 1.875000 3.625000 0.250000 +v 1.838388 3.625000 0.338388 +v 1.750000 3.625000 0.375000 +v 1.661612 3.625000 0.338388 +v 1.625000 3.625000 0.250000 +v 1.661612 3.625000 0.161611 +v 1.750000 3.625000 0.125000 +v 1.838388 3.625000 0.161611 +v 1.375000 3.625000 0.250000 +v 1.375000 3.588389 0.338388 +v 1.375000 3.500000 0.375000 +v 1.375000 3.411612 0.338388 +v 1.375000 3.375000 0.250000 +v 1.375000 3.411612 0.161611 +v 1.375000 3.500000 0.125000 +v 1.375000 3.588389 0.161611 +v 1.198223 3.551777 0.250000 +v 1.224112 3.525889 0.338388 +v 1.286612 3.463389 0.375000 +v 1.349112 3.400889 0.338388 +v 1.349112 3.400889 0.161611 +v 1.286612 3.463389 0.125000 +v 1.224112 3.525889 0.161611 +v 1.125000 3.375000 0.250000 +v 1.161612 3.375000 0.338388 +v 1.250000 3.375000 0.375000 +v 1.338388 3.375000 0.338388 +v 1.338388 3.375000 0.161611 +v 1.250000 3.375000 0.125000 +v 1.161612 3.375000 0.161611 +v 1.838388 4.000000 0.161611 +v 1.750000 4.000000 0.125000 +v 1.661612 4.000000 0.161611 +v 1.625000 4.000000 0.250000 +v 1.661612 4.000000 0.338388 +v 1.750000 4.000000 0.375000 +v 1.838388 4.000000 0.338388 +v 1.875000 4.000000 0.250000 +v 1.625000 3.375000 0.250000 +v 1.625000 3.411612 0.338388 +v 1.625000 3.500000 0.375000 +v 1.625000 3.588389 0.338388 +v 1.625000 3.588389 0.161611 +v 1.625000 3.500000 0.125000 +v 1.625000 3.411612 0.161611 +v 1.801776 3.448224 0.250000 +v 1.775888 3.474112 0.338388 +v 1.713388 3.536612 0.375000 +v 1.650888 3.599112 0.338388 +v 1.650888 3.599112 0.161611 +v 1.713388 3.536612 0.125000 +v 1.775888 3.474112 0.161611 +v 0.875000 4.250000 0.250000 +v 0.911612 4.250000 0.338388 +v 1.000000 4.250000 0.375000 +v 1.088388 4.250000 0.338388 +v 1.125000 4.250000 0.250000 +v 1.088388 4.250000 0.161611 +v 1.000000 4.250000 0.125000 +v 0.911612 4.250000 0.161611 +v 0.948223 4.073224 0.250000 +v 0.974112 4.099112 0.338388 +v 1.036612 4.161612 0.375000 +v 1.099112 4.224112 0.338388 +v 1.099112 4.224112 0.161611 +v 1.036612 4.161612 0.125000 +v 0.974112 4.099112 0.161611 +v 1.125000 4.000000 0.250000 +v 1.125000 4.036612 0.338388 +v 1.125000 4.125000 0.375000 +v 1.125000 4.213388 0.338388 +v 1.125000 4.213388 0.161611 +v 1.125000 4.125000 0.125000 +v 1.125000 4.036612 0.161611 +v 1.801777 4.176777 0.250000 +v 1.775888 4.150888 0.338388 +v 1.713388 4.088388 0.375000 +v 1.650888 4.025888 0.338388 +v 1.650888 4.025888 0.161611 +v 1.713388 4.088388 0.125000 +v 1.775888 4.150888 0.161611 +v 1.625000 4.250000 0.250000 +v 1.625000 4.213388 0.338388 +v 1.625000 4.125000 0.375000 +v 1.625000 4.036612 0.338388 +v 1.625000 4.036612 0.161611 +v 1.625000 4.125000 0.125000 +v 1.625000 4.213388 0.161611 +v 1.875000 9.125000 0.250000 +v 1.838388 9.125000 0.338388 +v 1.750000 9.125000 0.375000 +v 1.661612 9.125000 0.338388 +v 1.625000 9.125000 0.250000 +v 1.661612 9.125000 0.161611 +v 1.750000 9.125000 0.125000 +v 1.838388 9.125000 0.161611 +v 1.125000 9.125000 0.250000 +v 1.125000 9.088388 0.338388 +v 1.125000 9.000000 0.375000 +v 1.125000 8.911612 0.338388 +v 1.125000 8.875000 0.250000 +v 1.125000 8.911612 0.161611 +v 1.125000 9.000000 0.125000 +v 1.125000 9.088388 0.161611 +v 0.948223 9.051777 0.250000 +v 0.974112 9.025888 0.338388 +v 1.036612 8.963388 0.375000 +v 1.099112 8.900888 0.338388 +v 1.099112 8.900888 0.161611 +v 1.036612 8.963388 0.125000 +v 0.974112 9.025888 0.161611 +v 0.875000 8.875000 0.250000 +v 0.911612 8.875000 0.338388 +v 1.000000 8.875000 0.375000 +v 1.088388 8.875000 0.338388 +v 1.088388 8.875000 0.161611 +v 1.000000 8.875000 0.125000 +v 0.911612 8.875000 0.161611 +v 1.838388 9.500000 0.161611 +v 1.750000 9.500000 0.125000 +v 1.661612 9.500000 0.161611 +v 1.625000 9.500000 0.250000 +v 1.661612 9.500000 0.338388 +v 1.750000 9.500000 0.375000 +v 1.838388 9.500000 0.338388 +v 1.875000 9.500000 0.250000 +v 1.625000 8.875000 0.250000 +v 1.625000 8.911612 0.338388 +v 1.625000 9.000000 0.375000 +v 1.625000 9.088388 0.338388 +v 1.625000 9.088388 0.161611 +v 1.625000 9.000000 0.125000 +v 1.625000 8.911612 0.161611 +v 1.801776 8.948223 0.250000 +v 1.775888 8.974112 0.338388 +v 1.713388 9.036612 0.375000 +v 1.650888 9.099112 0.338388 +v 1.650888 9.099112 0.161611 +v 1.713388 9.036612 0.125000 +v 1.775888 8.974112 0.161611 +v 0.875000 9.750000 0.250000 +v 0.911612 9.750000 0.338388 +v 1.000000 9.750000 0.375000 +v 1.088388 9.750000 0.338388 +v 1.125000 9.750000 0.250000 +v 1.088388 9.750000 0.161611 +v 1.000000 9.750000 0.125000 +v 0.911612 9.750000 0.161611 +v 0.948223 9.573223 0.250000 +v 0.974112 9.599112 0.338388 +v 1.036612 9.661612 0.375000 +v 1.099112 9.724112 0.338388 +v 1.099112 9.724112 0.161611 +v 1.036612 9.661612 0.125000 +v 0.974112 9.599112 0.161611 +v 1.125000 9.500000 0.250000 +v 1.125000 9.536612 0.338388 +v 1.125000 9.625000 0.375000 +v 1.125000 9.713388 0.338388 +v 1.125000 9.713388 0.161611 +v 1.125000 9.625000 0.125000 +v 1.125000 9.536612 0.161611 +v 1.801777 9.676777 0.250000 +v 1.775888 9.650888 0.338388 +v 1.713388 9.588388 0.375000 +v 1.650888 9.525888 0.338388 +v 1.650888 9.525888 0.161611 +v 1.713388 9.588388 0.125000 +v 1.775888 9.650888 0.161611 +v 1.625000 9.750000 0.250000 +v 1.625000 9.713388 0.338388 +v 1.625000 9.625000 0.375000 +v 1.625000 9.536612 0.338388 +v 1.625000 9.536612 0.161611 +v 1.625000 9.625000 0.125000 +v 1.625000 9.713388 0.161611 +v 1.088388 10.375000 0.161611 +v 1.000000 10.375000 0.125000 +v 0.911612 10.375000 0.161611 +v 0.875000 10.375000 0.250000 +v 0.911612 10.375000 0.338388 +v 1.000000 10.375000 0.375000 +v 1.088388 10.375000 0.338388 +v 1.125000 10.375000 0.250000 +v 1.051777 10.551777 0.250000 +v 1.025888 10.525888 0.338388 +v 0.963388 10.463388 0.375000 +v 0.900888 10.400888 0.338388 +v 0.900888 10.400888 0.161611 +v 0.963388 10.463388 0.125000 +v 1.025888 10.525888 0.161611 +v 0.875000 10.625000 0.250000 +v 0.875000 10.588388 0.338388 +v 0.875000 10.500000 0.375000 +v 0.875000 10.411612 0.338388 +v 0.875000 10.411612 0.161611 +v 0.875000 10.500000 0.125000 +v 0.875000 10.588388 0.161611 +v 0.500000 10.625000 0.250000 +v 0.500000 10.588388 0.338388 +v 0.500000 10.500000 0.375000 +v 0.500000 10.411612 0.338388 +v 0.500000 10.375000 0.250000 +v 0.500000 10.411612 0.161611 +v 0.500000 10.500000 0.125000 +v 0.500000 10.588388 0.161611 +v 0.125000 2.000000 1.250000 +v 0.088388 2.000000 1.161612 +v 0.000000 2.000000 1.125000 +v -0.088388 2.000000 1.161612 +v -0.125000 2.000000 1.250000 +v -0.088388 2.000000 1.338388 +v 0.000000 2.000000 1.375000 +v 0.088388 2.000000 1.338388 +v 0.000000 3.625000 1.875000 +v -0.088388 3.625000 1.838388 +v -0.125000 3.625000 1.750000 +v -0.088388 3.625000 1.661612 +v 0.000000 3.625000 1.625000 +v 0.088389 3.625000 1.661612 +v 0.125000 3.625000 1.750000 +v 0.088389 3.625000 1.838388 +v 0.000000 3.625000 1.375000 +v -0.088388 3.588388 1.375000 +v -0.125000 3.500000 1.375000 +v -0.088388 3.411612 1.375000 +v 0.000000 3.375000 1.375000 +v 0.088389 3.411612 1.375000 +v 0.125000 3.500000 1.375000 +v 0.088389 3.588388 1.375000 +v 0.000000 3.551777 1.198223 +v -0.088388 3.525888 1.224112 +v -0.125000 3.463388 1.286612 +v -0.088388 3.400888 1.349112 +v 0.088389 3.400888 1.349112 +v 0.125000 3.463388 1.286612 +v 0.088389 3.525888 1.224112 +v 0.000000 3.375000 1.125000 +v -0.088388 3.375000 1.161612 +v -0.125000 3.375000 1.250000 +v -0.088388 3.375000 1.338388 +v 0.088389 3.375000 1.338388 +v 0.125000 3.375000 1.250000 +v 0.088389 3.375000 1.161612 +v 0.088389 4.000000 1.838388 +v 0.125000 4.000000 1.750000 +v 0.088389 4.000000 1.661612 +v 0.000000 4.000000 1.625000 +v -0.088388 4.000000 1.661612 +v -0.125000 4.000000 1.750000 +v -0.088388 4.000000 1.838388 +v 0.000000 4.000000 1.875000 +v 0.000000 3.375000 1.625000 +v -0.088388 3.411612 1.625000 +v -0.125000 3.500000 1.625000 +v -0.088388 3.588388 1.625000 +v 0.088389 3.588388 1.625000 +v 0.125000 3.500000 1.625000 +v 0.088389 3.411612 1.625000 +v 0.000000 3.448223 1.801776 +v -0.088388 3.474112 1.775888 +v -0.125000 3.536612 1.713388 +v -0.088388 3.599112 1.650888 +v 0.088389 3.599112 1.650888 +v 0.125000 3.536612 1.713388 +v 0.088389 3.474112 1.775888 +v 0.000000 4.250000 0.875000 +v -0.088388 4.250000 0.911612 +v -0.125000 4.250000 1.000000 +v -0.088388 4.250000 1.088388 +v 0.000000 4.250000 1.125000 +v 0.088389 4.250000 1.088388 +v 0.125000 4.250000 1.000000 +v 0.088389 4.250000 0.911612 +v 0.000000 4.073223 0.948223 +v -0.088388 4.099112 0.974112 +v -0.125000 4.161612 1.036612 +v -0.088388 4.224112 1.099112 +v 0.088389 4.224112 1.099112 +v 0.125000 4.161612 1.036612 +v 0.088389 4.099112 0.974112 +v 0.000000 4.000000 1.125000 +v -0.088388 4.036612 1.125000 +v -0.125000 4.125000 1.125000 +v -0.088388 4.213388 1.125000 +v 0.088389 4.213388 1.125000 +v 0.125000 4.125000 1.125000 +v 0.088389 4.036612 1.125000 +v 0.000000 4.176776 1.801777 +v -0.088388 4.150888 1.775888 +v -0.125000 4.088388 1.713388 +v -0.088388 4.025888 1.650888 +v 0.088389 4.025888 1.650888 +v 0.125000 4.088388 1.713388 +v 0.088389 4.150888 1.775888 +v 0.000000 4.250000 1.625000 +v -0.088388 4.213388 1.625000 +v -0.125000 4.125000 1.625000 +v -0.088388 4.036612 1.625000 +v 0.088389 4.036612 1.625000 +v 0.125000 4.125000 1.625000 +v 0.088389 4.213388 1.625000 +v 0.000000 9.124999 1.875000 +v -0.088388 9.124999 1.838388 +v -0.125000 9.124999 1.750000 +v -0.088388 9.124999 1.661612 +v 0.000000 9.124999 1.625000 +v 0.088389 9.124999 1.661612 +v 0.125000 9.124999 1.750000 +v 0.088389 9.124999 1.838388 +v 0.000000 9.124999 1.125000 +v -0.088388 9.088387 1.125000 +v -0.125000 8.999999 1.125000 +v -0.088388 8.911611 1.125000 +v 0.000000 8.874999 1.125000 +v 0.088389 8.911611 1.125000 +v 0.125000 8.999999 1.125000 +v 0.088389 9.088387 1.125000 +v 0.000000 9.051776 0.948223 +v -0.088388 9.025887 0.974112 +v -0.125000 8.963387 1.036612 +v -0.088388 8.900887 1.099112 +v 0.088389 8.900887 1.099112 +v 0.125000 8.963387 1.036612 +v 0.088389 9.025887 0.974112 +v 0.000000 8.874999 0.875000 +v -0.088388 8.874999 0.911612 +v -0.125000 8.874999 1.000000 +v -0.088388 8.874999 1.088388 +v 0.088389 8.874999 1.088388 +v 0.125000 8.874999 1.000000 +v 0.088389 8.874999 0.911612 +v 0.088389 9.499999 1.838388 +v 0.125000 9.499999 1.750000 +v 0.088389 9.499999 1.661612 +v 0.000000 9.499999 1.625000 +v -0.088388 9.499999 1.661612 +v -0.125000 9.499999 1.750000 +v -0.088388 9.499999 1.838388 +v 0.000000 9.499999 1.875000 +v 0.000000 8.874999 1.625000 +v -0.088388 8.911611 1.625000 +v -0.125000 8.999999 1.625000 +v -0.088388 9.088387 1.625000 +v 0.088389 9.088387 1.625000 +v 0.125000 8.999999 1.625000 +v 0.088389 8.911611 1.625000 +v 0.000000 8.948222 1.801776 +v -0.088388 8.974111 1.775888 +v -0.125000 9.036611 1.713388 +v -0.088388 9.099111 1.650888 +v 0.088389 9.099111 1.650888 +v 0.125000 9.036611 1.713388 +v 0.088389 8.974111 1.775888 +v 0.000000 9.749999 0.875000 +v -0.088388 9.749999 0.911612 +v -0.125000 9.749999 1.000000 +v -0.088388 9.749999 1.088388 +v 0.000000 9.749999 1.125000 +v 0.088389 9.749999 1.088388 +v 0.125000 9.749999 1.000000 +v 0.088389 9.749999 0.911612 +v 0.000000 9.573222 0.948223 +v -0.088388 9.599111 0.974112 +v -0.125000 9.661611 1.036612 +v -0.088388 9.724111 1.099112 +v 0.088389 9.724111 1.099112 +v 0.125000 9.661611 1.036612 +v 0.088389 9.599111 0.974112 +v 0.000000 9.499999 1.125000 +v -0.088388 9.536611 1.125000 +v -0.125000 9.624999 1.125000 +v -0.088388 9.713387 1.125000 +v 0.088389 9.713387 1.125000 +v 0.125000 9.624999 1.125000 +v 0.088389 9.536611 1.125000 +v 0.000000 9.676776 1.801777 +v -0.088388 9.650887 1.775888 +v -0.125000 9.588387 1.713388 +v -0.088388 9.525887 1.650888 +v 0.088389 9.525887 1.650888 +v 0.125000 9.588387 1.713388 +v 0.088389 9.650887 1.775888 +v 0.000000 9.749999 1.625000 +v -0.088388 9.713387 1.625000 +v -0.125000 9.624999 1.625000 +v -0.088388 9.536611 1.625000 +v 0.088389 9.536611 1.625000 +v 0.125000 9.624999 1.625000 +v 0.088389 9.713387 1.625000 +v 0.088389 10.374999 1.088388 +v 0.125000 10.374999 1.000000 +v 0.088389 10.374999 0.911612 +v 0.000000 10.374999 0.875000 +v -0.088388 10.374999 0.911612 +v -0.125000 10.374999 1.000000 +v -0.088388 10.374999 1.088388 +v 0.000000 10.374999 1.125000 +v 0.000000 10.551776 1.051777 +v -0.088388 10.525887 1.025888 +v -0.125000 10.463387 0.963388 +v -0.088388 10.400887 0.900888 +v 0.088389 10.400887 0.900888 +v 0.125000 10.463387 0.963388 +v 0.088389 10.525887 1.025888 +v 0.000000 10.624999 0.875000 +v -0.088388 10.588387 0.875000 +v -0.125000 10.499999 0.875000 +v -0.088388 10.411611 0.875000 +v 0.088389 10.411611 0.875000 +v 0.125000 10.499999 0.875000 +v 0.088389 10.588387 0.875000 +v 0.000000 10.624999 0.500000 +v -0.088388 10.588387 0.500000 +v -0.125000 10.499999 0.500000 +v -0.088388 10.411611 0.500000 +v 0.000000 10.374999 0.500000 +v 0.088389 10.411611 0.500000 +v 0.125000 10.499999 0.500000 +v 0.088389 10.588387 0.500000 +v 0.000000 8.062500 0.750000 +v -0.176776 8.062500 0.823223 +v -0.250000 8.062500 1.000000 +v -0.176777 8.062500 1.176776 +v 0.000000 8.062500 1.250000 +v 0.176777 8.062500 1.176776 +v 0.250000 8.062500 1.000000 +v 0.176777 8.062500 0.823223 +v 0.000001 7.062500 1.250000 +v 0.176778 7.062500 1.176776 +v 0.000001 7.062500 0.750000 +v 0.176778 7.062500 0.823223 +v 0.250001 7.062500 1.000000 +v -0.249999 7.062500 1.000000 +v -0.176776 7.062500 1.176776 +v -0.176776 7.062500 0.823223 +v 0.000000 6.062500 0.750000 +v -0.176776 6.062500 0.823223 +v -0.250000 6.062500 1.000000 +v -0.176777 6.062500 1.176776 +v 0.000000 6.062500 1.250000 +v 0.176777 6.062500 1.176776 +v 0.250000 6.062500 1.000000 +v 0.176777 6.062500 0.823223 +v 0.000001 5.062500 1.250000 +v 0.176778 5.062500 1.176776 +v 0.000001 5.062500 0.750000 +v 0.176778 5.062500 0.823223 +v 0.250001 5.062500 1.000000 +v -0.249999 5.062500 1.000000 +v -0.176776 5.062500 1.176776 +v -0.176776 5.062500 0.823223 +v -1.000000 10.000000 -1.250000 +v -1.176777 10.000000 -1.176777 +v -1.250000 10.000000 -1.000000 +v -1.176777 10.000000 -0.823223 +v -1.000000 10.000000 -0.750000 +v -0.823223 10.000000 -0.823223 +v -0.750000 10.000000 -1.000000 +v -0.823223 10.000000 -1.176777 +v -1.000000 10.000000 -1.375000 +v -1.265165 10.000000 -1.265165 +v -1.375000 10.000000 -1.000000 +v -1.265165 10.000000 -0.734835 +v -1.000000 10.000000 -0.625000 +v -0.734835 10.000000 -0.734835 +v -0.625000 10.000000 -1.000000 +v -0.734835 10.000000 -1.265165 +v -1.000000 10.750000 -1.375000 +v -1.265165 10.750000 -1.265165 +v -1.375000 10.750000 -1.000000 +v -1.265165 10.750000 -0.734835 +v -1.000000 10.750000 -0.625000 +v -0.734835 10.750000 -0.734835 +v -0.625000 10.750000 -1.000000 +v -0.734835 10.750000 -1.265165 +v -1.000000 11.000000 -1.250000 +v -1.176777 11.000000 -1.176777 +v -1.250000 11.000000 -1.000000 +v -1.176777 11.000000 -0.823223 +v -1.000000 11.000000 -0.750000 +v -0.823223 11.000000 -0.823223 +v -0.750000 11.000000 -1.000000 +v -0.823223 11.000000 -1.176777 +v -1.000000 11.000000 -1.187500 +v -1.132582 11.000000 -1.132582 +v -1.187500 11.000000 -1.000000 +v -1.132582 11.000000 -0.867418 +v -1.000000 11.000000 -0.812500 +v -0.867417 11.000000 -0.867418 +v -0.812500 11.000000 -1.000000 +v -0.867417 11.000000 -1.132582 +v -1.132582 10.000000 -1.132582 +v -1.000000 10.000000 -1.187500 +v -1.187500 10.000000 -1.000000 +v -1.132582 10.000000 -0.867418 +v -1.000000 10.000000 -0.812500 +v -0.867417 10.000000 -0.867418 +v -0.812500 10.000000 -1.000000 +v -0.867417 10.000000 -1.132582 +v -0.536611 11.749999 0.911612 +v -0.625000 11.749999 0.875000 +v -0.713388 11.749999 0.911612 +v -0.750000 11.749999 1.000000 +v -0.713388 11.749999 1.088388 +v -0.625000 11.749999 1.125000 +v -0.536611 11.749999 1.088388 +v -0.500000 11.749999 1.000000 +v -0.558709 11.749999 0.933709 +v -0.625000 11.749999 0.906250 +v -0.691291 11.749999 0.933709 +v -0.718750 11.749999 1.000000 +v -0.691291 11.749999 1.066291 +v -0.625000 11.749999 1.093750 +v -0.558709 11.749999 1.066291 +v -0.531250 11.749999 1.000000 +v -0.691289 10.749999 1.066291 +v -0.624997 10.749999 1.093750 +v -0.558706 10.749999 0.933709 +v -0.531247 10.749999 1.000000 +v -0.558706 10.749999 1.066291 +v -0.691289 10.749999 0.933709 +v -0.718747 10.749999 1.000000 +v -0.624997 10.749999 0.906250 +v 0.156250 11.000000 -0.156250 +v -0.156250 11.000000 -0.156250 +v -0.156250 11.000000 0.156250 +v 0.375000 11.154779 -0.156250 +v 0.156250 11.000000 0.156250 +vt 0.250000 0.000000 +vt 0.100000 0.255319 +vt 0.100000 0.000000 +vt 0.100000 0.404255 +vt 0.250000 0.659574 +vt 0.100000 0.659574 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.756250 0.021277 +vt 0.765625 0.069149 +vt 0.756250 0.085106 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.406250 0.138298 +vt 0.375000 0.734043 +vt 0.375000 0.138298 +vt 0.375000 0.042553 +vt 0.328125 0.138298 +vt 0.312500 0.042553 +vt 0.625000 0.042553 +vt 0.578125 0.138298 +vt 0.562500 0.042553 +vt 0.265625 0.138298 +vt 0.250000 0.042553 +vt 0.515625 0.138298 +vt 0.500000 0.042553 +vt 0.453125 0.138298 +vt 0.437500 0.042553 +vt 0.750000 0.042553 +vt 0.703125 0.138298 +vt 0.687500 0.042553 +vt 0.390625 0.138298 +vt 0.640625 0.138298 +vt 0.312500 0.734043 +vt 0.284375 0.904255 +vt 0.281250 0.734043 +vt 0.343750 0.734043 +vt 0.343750 0.138298 +vt 0.500000 0.138298 +vt 0.468750 0.734043 +vt 0.468750 0.138298 +vt 0.312500 0.138298 +vt 0.437500 0.734043 +vt 0.437500 0.138298 +vt 0.281250 0.138298 +vt 0.406250 0.734043 +vt 0.250000 0.734043 +vt 0.250000 0.138298 +vt 0.218750 0.744681 +vt 0.203125 0.672747 +vt 0.218750 0.659574 +vt 0.318750 0.920213 +vt 0.337500 0.904255 +vt 0.334375 0.920213 +vt 0.409375 0.904255 +vt 0.253125 0.904255 +vt 0.378125 0.904255 +vt 0.346875 0.904255 +vt 0.500000 0.734043 +vt 0.471875 0.904255 +vt 0.315625 0.904255 +vt 0.440625 0.904255 +vt 0.350000 0.920213 +vt 0.368750 0.904255 +vt 0.365625 0.920213 +vt 0.381250 0.920213 +vt 0.400000 0.904255 +vt 0.396875 0.920213 +vt 0.428125 0.920213 +vt 0.412500 0.920213 +vt 0.443750 0.920213 +vt 0.462500 0.904255 +vt 0.459375 0.920213 +vt 0.475000 0.920213 +vt 0.493750 0.904255 +vt 0.490625 0.920213 +vt 0.256250 0.920213 +vt 0.275000 0.904255 +vt 0.271875 0.920213 +vt 0.303125 0.920213 +vt 0.287500 0.920213 +vt 0.218750 0.813830 +vt 0.206250 0.792553 +vt 0.218750 0.792553 +vt 0.140625 0.744681 +vt 0.156250 0.659574 +vt 0.156250 0.744681 +vt 0.234375 0.659574 +vt 0.234375 0.744681 +vt 0.171875 0.659574 +vt 0.171875 0.744681 +vt 0.250000 0.659574 +vt 0.250000 0.744681 +vt 0.187500 0.659574 +vt 0.187500 0.744681 +vt 0.203125 0.659574 +vt 0.125000 0.744681 +vt 0.140625 0.659574 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.765625 0.037234 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.756250 0.021277 +vt 0.765625 0.069149 +vt 0.756250 0.085106 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.765625 0.037234 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.765625 0.037234 +vt 0.756250 0.085106 +vt 0.756250 0.021277 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.765625 0.037234 +vt 0.756250 0.085106 +vt 0.756250 0.021277 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.790625 0.079787 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.156250 0.329787 +vt 0.250000 0.404255 +vt 0.100000 0.404255 +vt 0.100000 0.404255 +vt 0.193750 0.329787 +vt 0.250000 0.404255 +vt 0.156250 0.329787 +vt 0.250000 0.404255 +vt 0.100000 0.404255 +vt 0.193750 0.329787 +vt 0.250000 0.404255 +vt 0.156250 0.329787 +vt 0.193750 0.329787 +vt 0.156250 0.329787 +vt 0.193750 0.329787 +vt 0.762500 0.287234 +vt 0.728125 0.276596 +vt 0.759375 0.276596 +vt 0.837500 0.287234 +vt 0.803125 0.276596 +vt 0.834375 0.276596 +vt 0.612500 0.287234 +vt 0.578125 0.276596 +vt 0.609375 0.276596 +vt 0.875000 0.287234 +vt 0.840625 0.276596 +vt 0.871875 0.276596 +vt 0.800000 0.287234 +vt 0.765625 0.276596 +vt 0.796875 0.276596 +vt 0.687500 0.287234 +vt 0.653125 0.276596 +vt 0.684375 0.276596 +vt 0.721875 0.276596 +vt 0.690625 0.276596 +vt 0.650000 0.287234 +vt 0.615625 0.276596 +vt 0.646875 0.276596 +vt 0.728125 0.308511 +vt 0.762500 0.297872 +vt 0.759375 0.308511 +vt 0.803125 0.308511 +vt 0.837500 0.297872 +vt 0.834375 0.308511 +vt 0.578125 0.308511 +vt 0.612500 0.297872 +vt 0.609375 0.308511 +vt 0.840625 0.308511 +vt 0.875000 0.297872 +vt 0.871875 0.308511 +vt 0.765625 0.308511 +vt 0.800000 0.297872 +vt 0.796875 0.308511 +vt 0.653125 0.308511 +vt 0.687500 0.297872 +vt 0.684375 0.308511 +vt 0.690625 0.308511 +vt 0.725000 0.297872 +vt 0.721875 0.308511 +vt 0.615625 0.308511 +vt 0.650000 0.297872 +vt 0.646875 0.308511 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.575000 0.297872 +vt 0.575000 0.287234 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.725000 0.287234 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.750000 0.212766 +vt 0.800000 0.170213 +vt 0.812500 0.212766 +vt 0.875000 0.212766 +vt 0.925000 0.170213 +vt 0.937500 0.212766 +vt 0.500000 0.212766 +vt 0.550000 0.170213 +vt 0.562500 0.212766 +vt 0.625000 0.212766 +vt 0.675000 0.170213 +vt 0.687500 0.212766 +vt 0.696875 0.170213 +vt 0.612500 0.170213 +vt 0.987500 0.170213 +vt 1.000000 0.212766 +vt 0.862500 0.170213 +vt 0.800000 0.265957 +vt 0.750000 0.223404 +vt 0.812500 0.223404 +vt 0.925000 0.265957 +vt 0.875000 0.223404 +vt 0.937500 0.223404 +vt 0.550000 0.265957 +vt 0.500000 0.223404 +vt 0.562500 0.223404 +vt 0.675000 0.265957 +vt 0.625000 0.223404 +vt 0.687500 0.223404 +vt 0.696875 0.265957 +vt 0.612500 0.265957 +vt 0.987500 0.265957 +vt 1.000000 0.223404 +vt 0.862500 0.265957 +vt 0.696875 0.276596 +vt 0.737500 0.265957 +vt 0.737500 0.276596 +vt 0.571875 0.276596 +vt 0.612500 0.276596 +vt 0.946875 0.276596 +vt 0.987500 0.276596 +vt 0.509375 0.276596 +vt 0.550000 0.276596 +vt 0.821875 0.276596 +vt 0.862500 0.276596 +vt 0.634375 0.276596 +vt 0.675000 0.276596 +vt 0.759375 0.276596 +vt 0.800000 0.276596 +vt 0.884375 0.276596 +vt 0.925000 0.276596 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.818750 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.818750 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.825000 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.884375 0.340426 +vt 0.921875 0.351064 +vt 0.884375 0.351064 +vt 0.578125 0.340426 +vt 0.615625 0.351064 +vt 0.578125 0.351064 +vt 0.796875 0.340426 +vt 0.834375 0.351064 +vt 0.796875 0.351064 +vt 0.709375 0.340426 +vt 0.746875 0.351064 +vt 0.709375 0.351064 +vt 0.840625 0.340426 +vt 0.878125 0.351064 +vt 0.840625 0.351064 +vt 0.621875 0.340426 +vt 0.659375 0.351064 +vt 0.621875 0.351064 +vt 0.753125 0.340426 +vt 0.790625 0.351064 +vt 0.753125 0.351064 +vt 0.665625 0.340426 +vt 0.703125 0.351064 +vt 0.665625 0.351064 +vt 0.618750 0.319149 +vt 0.578125 0.308511 +vt 0.615625 0.308511 +vt 0.706250 0.319149 +vt 0.665625 0.308511 +vt 0.703125 0.308511 +vt 0.662500 0.319149 +vt 0.621875 0.308511 +vt 0.659375 0.308511 +vt 0.793750 0.319149 +vt 0.753125 0.308511 +vt 0.790625 0.308511 +vt 0.750000 0.319149 +vt 0.709375 0.308511 +vt 0.746875 0.308511 +vt 0.881250 0.319149 +vt 0.840625 0.308511 +vt 0.878125 0.308511 +vt 0.837500 0.319149 +vt 0.796875 0.308511 +vt 0.834375 0.308511 +vt 0.921875 0.308511 +vt 0.884375 0.308511 +vt 0.925000 0.329787 +vt 0.925000 0.319149 +vt 0.706250 0.329787 +vt 0.750000 0.329787 +vt 0.881250 0.329787 +vt 0.837500 0.329787 +vt 0.793750 0.329787 +vt 0.618750 0.329787 +vt 0.575000 0.319149 +vt 0.662500 0.329787 +vt 0.878125 0.340426 +vt 0.921875 0.340426 +vt 0.615625 0.340426 +vt 0.659375 0.340426 +vt 0.703125 0.340426 +vt 0.746875 0.340426 +vt 0.790625 0.340426 +vt 0.834375 0.340426 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.687500 0.148936 +vt 0.653125 0.138298 +vt 0.684375 0.138298 +vt 0.762500 0.148936 +vt 0.728125 0.138298 +vt 0.759375 0.138298 +vt 0.537500 0.148936 +vt 0.503125 0.138298 +vt 0.534375 0.138298 +vt 0.800000 0.148936 +vt 0.765625 0.138298 +vt 0.796875 0.138298 +vt 0.725000 0.148936 +vt 0.690625 0.138298 +vt 0.721875 0.138298 +vt 0.612500 0.148936 +vt 0.578125 0.138298 +vt 0.609375 0.138298 +vt 0.646875 0.138298 +vt 0.615625 0.138298 +vt 0.575000 0.148936 +vt 0.540625 0.138298 +vt 0.571875 0.138298 +vt 0.653125 0.170213 +vt 0.687500 0.159574 +vt 0.684375 0.170213 +vt 0.728125 0.170213 +vt 0.762500 0.159574 +vt 0.759375 0.170213 +vt 0.503125 0.170213 +vt 0.537500 0.159574 +vt 0.534375 0.170213 +vt 0.765625 0.170213 +vt 0.800000 0.159574 +vt 0.796875 0.170213 +vt 0.690625 0.170213 +vt 0.725000 0.159574 +vt 0.721875 0.170213 +vt 0.578125 0.170213 +vt 0.612500 0.159574 +vt 0.609375 0.170213 +vt 0.615625 0.170213 +vt 0.650000 0.159574 +vt 0.646875 0.170213 +vt 0.540625 0.170213 +vt 0.575000 0.159574 +vt 0.571875 0.170213 +vt 0.500000 0.159574 +vt 0.500000 0.148936 +vt 0.650000 0.148936 +vt 0.612500 0.148936 +vt 0.575000 0.159574 +vt 0.575000 0.148936 +vt 0.687500 0.148936 +vt 0.650000 0.159574 +vt 0.650000 0.148936 +vt 0.537500 0.159574 +vt 0.537500 0.148936 +vt 0.762500 0.148936 +vt 0.725000 0.159574 +vt 0.725000 0.148936 +vt 0.612500 0.159574 +vt 0.687500 0.159574 +vt 0.500000 0.159574 +vt 0.500000 0.148936 +vt 0.800000 0.148936 +vt 0.762500 0.159574 +vt 0.540625 0.170213 +vt 0.571875 0.170213 +vt 0.615625 0.170213 +vt 0.646875 0.170213 +vt 0.578125 0.170213 +vt 0.609375 0.170213 +vt 0.690625 0.170213 +vt 0.721875 0.170213 +vt 0.765625 0.170213 +vt 0.800000 0.159574 +vt 0.796875 0.170213 +vt 0.503125 0.170213 +vt 0.534375 0.170213 +vt 0.728125 0.170213 +vt 0.759375 0.170213 +vt 0.653125 0.170213 +vt 0.684375 0.170213 +vt 0.540625 0.138298 +vt 0.571875 0.138298 +vt 0.646875 0.138298 +vt 0.615625 0.138298 +vt 0.578125 0.138298 +vt 0.609375 0.138298 +vt 0.690625 0.138298 +vt 0.721875 0.138298 +vt 0.765625 0.138298 +vt 0.796875 0.138298 +vt 0.503125 0.138298 +vt 0.534375 0.138298 +vt 0.728125 0.138298 +vt 0.759375 0.138298 +vt 0.653125 0.138298 +vt 0.684375 0.138298 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 1.000000 0.212766 +vt 0.937500 0.223404 +vt 0.937500 0.212766 +vt 0.884375 0.276596 +vt 0.925000 0.265957 +vt 0.925000 0.276596 +vt 0.562500 0.212766 +vt 0.500000 0.223404 +vt 0.500000 0.212766 +vt 0.759375 0.276596 +vt 0.800000 0.265957 +vt 0.800000 0.276596 +vt 0.687500 0.212766 +vt 0.625000 0.223404 +vt 0.625000 0.212766 +vt 0.634375 0.276596 +vt 0.675000 0.265957 +vt 0.675000 0.276596 +vt 0.812500 0.212766 +vt 0.750000 0.223404 +vt 0.750000 0.212766 +vt 0.821875 0.276596 +vt 0.862500 0.265957 +vt 0.862500 0.276596 +vt 0.509375 0.276596 +vt 0.550000 0.265957 +vt 0.550000 0.276596 +vt 0.875000 0.223404 +vt 0.875000 0.212766 +vt 0.946875 0.276596 +vt 0.987500 0.265957 +vt 0.987500 0.276596 +vt 0.562500 0.223404 +vt 0.571875 0.276596 +vt 0.612500 0.265957 +vt 0.612500 0.276596 +vt 0.687500 0.223404 +vt 0.696875 0.276596 +vt 0.737500 0.265957 +vt 0.737500 0.276596 +vt 0.812500 0.223404 +vt 1.000000 0.223404 +vt 0.696875 0.265957 +vt 0.862500 0.170213 +vt 0.987500 0.170213 +vt 0.612500 0.170213 +vt 0.696875 0.170213 +vt 0.675000 0.170213 +vt 0.550000 0.170213 +vt 0.925000 0.170213 +vt 0.800000 0.170213 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.831250 0.058511 +vt 0.121875 0.840426 +vt 0.128125 0.845745 +vt 0.121875 0.845745 +vt 0.203125 0.840426 +vt 0.196875 0.845745 +vt 0.196875 0.840426 +vt 0.178125 0.840426 +vt 0.171875 0.845745 +vt 0.171875 0.840426 +vt 0.153125 0.840426 +vt 0.146875 0.845745 +vt 0.146875 0.840426 +vt 0.134375 0.840426 +vt 0.140625 0.845745 +vt 0.134375 0.845745 +vt 0.115625 0.840426 +vt 0.109375 0.845745 +vt 0.109375 0.840426 +vt 0.190625 0.840426 +vt 0.184375 0.845745 +vt 0.184375 0.840426 +vt 0.159375 0.840426 +vt 0.165625 0.845745 +vt 0.159375 0.845745 +vt 0.031250 0.601064 +vt 0.025000 0.606383 +vt 0.025000 0.601064 +vt 0.174630 0.861702 +vt 0.165625 0.877031 +vt 0.156619 0.861702 +vt 0.037500 0.601064 +vt 0.043750 0.606383 +vt 0.037500 0.606383 +vt 0.006250 0.601064 +vt -0.000000 0.606383 +vt 0.000000 0.601064 +vt 0.018750 0.601064 +vt 0.018750 0.606383 +vt 0.050000 0.601064 +vt 0.043750 0.601064 +vt 0.012500 0.606383 +vt 0.012500 0.601064 +vt 0.031250 0.606383 +vt 0.006250 0.606383 +vt 0.625000 0.000000 +vt 0.312500 0.000000 +vt 0.562500 0.000000 +vt 0.500000 0.000000 +vt 0.750000 0.000000 +vt 0.437500 0.000000 +vt 0.687500 0.000000 +vt 0.375000 0.000000 +vt 0.654632 0.486608 +vt 0.670368 0.486608 +vt 0.670368 0.513392 +vt 0.670368 0.358948 +vt 0.673627 0.372340 +vt 0.670368 0.385732 +vt 0.579632 0.486608 +vt 0.595368 0.486608 +vt 0.595368 0.513392 +vt 0.595368 0.358948 +vt 0.598627 0.372340 +vt 0.595368 0.385732 +vt 0.165625 0.744681 +vt 0.156250 0.755319 +vt 0.156250 0.744681 +vt 0.190625 0.744681 +vt 0.181250 0.755319 +vt 0.181250 0.744681 +vt 0.115625 0.744681 +vt 0.106250 0.755319 +vt 0.106250 0.744681 +vt 0.140625 0.744681 +vt 0.131250 0.755319 +vt 0.131250 0.744681 +vt 0.143750 0.744681 +vt 0.143750 0.755319 +vt 0.168750 0.744681 +vt 0.168750 0.755319 +vt 0.203125 0.744681 +vt 0.193750 0.755319 +vt 0.193750 0.744681 +vt 0.118750 0.744681 +vt 0.118750 0.755319 +vt 0.234375 0.792553 +vt 0.246875 0.765957 +vt 0.246875 0.792553 +vt 0.234375 0.765957 +vt 0.234375 0.744681 +vt 0.234375 0.813830 +vt 0.218750 0.765957 +vt 0.218750 0.744681 +vt 0.206250 0.765957 +vt 0.790625 0.079787 +vt 0.771875 0.026596 +vt 0.790625 0.079787 +vt 0.359375 0.138298 +vt 0.609375 0.138298 +vt 0.296875 0.138298 +vt 0.546875 0.138298 +vt 0.484375 0.138298 +vt 0.734375 0.138298 +vt 0.421875 0.138298 +vt 0.671875 0.138298 +vt 0.306250 0.904255 +vt 0.203125 0.744681 +vt 0.431250 0.904255 +vt 0.125000 0.659574 +vt 0.771875 0.026596 +vt 0.790625 0.079787 +vt 0.771875 0.026596 +vt 0.765625 0.069149 +vt 0.771875 0.026596 +vt 0.765625 0.069149 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.831250 0.058511 +vt 0.812500 0.058511 +vt 0.837500 0.058511 +vt 0.812500 0.058511 +vt 0.759375 0.170213 +vt 0.884375 0.170213 +vt 0.509375 0.170213 +vt 0.634375 0.170213 +vt 0.737500 0.170213 +vt 0.571875 0.170213 +vt 0.946875 0.170213 +vt 0.821875 0.170213 +vt 0.759375 0.265957 +vt 0.884375 0.265957 +vt 0.509375 0.265957 +vt 0.634375 0.265957 +vt 0.571875 0.265957 +vt 0.946875 0.265957 +vt 0.821875 0.265957 +vt 0.812500 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.058511 +vt 0.818750 0.058511 +vt 0.818750 0.058511 +vt 0.818750 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.575000 0.329787 +vt 0.728125 0.409574 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.884375 0.265957 +vt 0.759375 0.265957 +vt 0.634375 0.265957 +vt 0.821875 0.265957 +vt 0.509375 0.265957 +vt 0.946875 0.265957 +vt 0.571875 0.265957 +vt 0.821875 0.170213 +vt 0.946875 0.170213 +vt 0.571875 0.170213 +vt 0.737500 0.170213 +vt 0.634375 0.170213 +vt 0.509375 0.170213 +vt 0.884375 0.170213 +vt 0.759375 0.170213 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.128125 0.840426 +vt 0.203125 0.845745 +vt 0.178125 0.845745 +vt 0.153125 0.845745 +vt 0.140625 0.840426 +vt 0.115625 0.845745 +vt 0.190625 0.845745 +vt 0.165625 0.840426 +vt 0.159257 0.850863 +vt 0.165625 0.846374 +vt 0.171993 0.850863 +vt 0.171993 0.872541 +vt 0.159257 0.872541 +vt 0.050000 0.606383 +vt 0.250000 0.000000 +vt 0.662500 0.481061 +vt 0.673627 0.500000 +vt 0.662500 0.518939 +vt 0.654632 0.513392 +vt 0.651373 0.500000 +vt 0.662500 0.391279 +vt 0.654632 0.385732 +vt 0.651373 0.372340 +vt 0.654632 0.358948 +vt 0.662500 0.353401 +vt 0.587500 0.481061 +vt 0.598627 0.500000 +vt 0.587500 0.518939 +vt 0.579632 0.513392 +vt 0.576373 0.500000 +vt 0.587500 0.391279 +vt 0.579632 0.385732 +vt 0.576373 0.372340 +vt 0.579632 0.358949 +vt 0.587500 0.353401 +vt 0.153125 0.744681 +vt 0.178125 0.744681 +vt 0.206250 0.755319 +vt 0.128125 0.744681 +vt 0.509375 0.978723 +vt 0.500000 0.276596 +vt 0.509375 0.276596 +vt 0.565625 0.978723 +vt 0.556250 0.276596 +vt 0.565625 0.276596 +vt 0.546875 0.978723 +vt 0.537500 0.276596 +vt 0.546875 0.276596 +vt 0.518750 0.978723 +vt 0.518750 0.276596 +vt 0.575000 0.978723 +vt 0.575000 0.276596 +vt 0.556250 0.978723 +vt 0.537500 0.978723 +vt 0.528125 0.276596 +vt 0.528125 0.978723 +vt 0.118750 0.755319 +vt 0.106250 0.819149 +vt 0.106250 0.755319 +vt 0.193750 0.755319 +vt 0.181250 0.819149 +vt 0.181250 0.755319 +vt 0.168750 0.755319 +vt 0.156250 0.819149 +vt 0.156250 0.755319 +vt 0.131250 0.755319 +vt 0.118750 0.819149 +vt 0.206250 0.755319 +vt 0.193750 0.819149 +vt 0.168750 0.819149 +vt 0.143750 0.819149 +vt 0.143750 0.755319 +vt 0.131250 0.819149 +vt 0.024798 0.614561 +vt 0.020356 0.622121 +vt 0.015915 0.614561 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 -0.000000 +vt 0.081250 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.180851 +vt 0.087500 0.159574 +vt 0.093750 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.143617 +vt 0.062500 0.154255 +vt 0.068750 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.138298 +vt 0.100000 0.159574 +vt 0.050000 0.117021 +vt 0.050000 0.138298 +vt 0.062500 0.122340 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.122340 +vt 0.087500 0.132979 +vt 0.081250 0.132979 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.081250 0.255319 +vt 0.075000 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.068750 0.202128 +vt 0.062500 0.186170 +vt 0.056250 0.196809 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.180851 +vt 0.075000 0.202128 +vt 0.075000 0.223404 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.218085 +vt 0.056250 0.207447 +vt 0.087500 0.218085 +vt 0.087500 0.207447 +vt 0.081250 0.202128 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.377660 +vt 0.093750 0.361702 +vt 0.093750 0.382979 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.062500 0.345745 +vt 0.068750 0.356383 +vt 0.068750 0.345745 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.081250 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.542553 +vt 0.575000 0.563830 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.558511 +vt 0.618750 0.542553 +vt 0.618750 0.563830 +vt 0.625000 0.542553 +vt 0.625000 0.563830 +vt 0.575000 0.521277 +vt 0.581250 0.542553 +vt 0.587500 0.526596 +vt 0.587500 0.537234 +vt 0.593750 0.537234 +vt 0.593750 0.526596 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.537234 +vt 0.618750 0.521277 +vt 0.625000 0.521277 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.707447 +vt 0.612500 0.718085 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.618750 0.718085 +vt 0.587500 0.707447 +vt 0.593750 0.702128 +vt 0.587500 0.718085 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.696809 +vt 0.612500 0.686170 +vt 0.618750 0.686170 +vt 0.625000 0.691489 +vt 0.618750 0.696809 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.612500 0.622340 +vt 0.606250 0.606383 +vt 0.606250 0.627660 +vt 0.600000 0.648936 +vt 0.600000 0.627660 +vt 0.587500 0.643617 +vt 0.587500 0.632979 +vt 0.625000 0.617021 +vt 0.612500 0.632979 +vt 0.606250 0.648936 +vt 0.575000 0.808511 +vt 0.581250 0.787234 +vt 0.581250 0.808511 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.803191 +vt 0.612500 0.792553 +vt 0.612500 0.803191 +vt 0.618750 0.808511 +vt 0.618750 0.787234 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.575000 0.787234 +vt 0.587500 0.781915 +vt 0.587500 0.771277 +vt 0.593750 0.781915 +vt 0.606250 0.781915 +vt 0.612500 0.771277 +vt 0.612500 0.781915 +vt 0.625000 0.787234 +vt 0.612500 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.593750 0.648936 +vt 0.587500 0.648936 +vt 0.606250 0.904255 +vt 0.600000 0.882979 +vt 0.606250 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.581250 0.904255 +vt 0.575000 0.936170 +vt 0.575000 0.904255 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.904255 +vt 0.593750 0.882979 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.877660 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.587500 0.936170 +vt 0.587500 0.904255 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.581250 0.936170 +vt 0.600000 0.936170 +vt 0.600000 0.904255 +vt 0.593750 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.143750 0.819149 +vt 0.134375 0.840426 +vt 0.131250 0.819149 +vt 0.121875 0.840426 +vt 0.118750 0.819149 +vt 0.109375 0.840426 +vt 0.106250 0.819149 +vt 0.206250 0.819149 +vt 0.196875 0.840426 +vt 0.193750 0.819149 +vt 0.184375 0.840426 +vt 0.181250 0.819149 +vt 0.171875 0.840426 +vt 0.168750 0.819149 +vt 0.156250 0.819149 +vt 0.165625 0.840426 +vt 0.159375 0.840426 +vt 0.146875 0.840426 +vt 0.018750 0.047872 +vt 0.025000 0.069149 +vt 0.018750 0.069149 +vt 0.031250 0.053191 +vt 0.031250 0.063830 +vt 0.037500 0.063830 +vt 0.050000 0.063830 +vt 0.043750 0.058511 +vt 0.050000 0.053191 +vt 0.037500 0.053191 +vt -0.000000 0.063830 +vt 0.006250 0.053191 +vt 0.006250 0.063830 +vt 0.012500 0.069149 +vt 0.012500 0.047872 +vt 0.025000 0.026596 +vt 0.025000 0.047872 +vt 0.031250 0.042553 +vt 0.031250 0.031915 +vt 0.037500 0.042553 +vt 0.037500 0.031915 +vt 0.043750 0.037234 +vt 0.000000 0.042553 +vt 0.006250 0.031915 +vt 0.006250 0.042553 +vt 0.012500 0.026596 +vt 0.018750 0.026596 +vt 0.043750 0.276596 +vt 0.043750 0.265957 +vt 0.050000 0.271277 +vt 0.037500 0.388298 +vt 0.043750 0.356383 +vt 0.043750 0.388298 +vt 0.050000 0.388298 +vt -0.000000 0.388298 +vt 0.006250 0.356383 +vt 0.006250 0.388298 +vt 0.012500 0.356383 +vt 0.018750 0.388298 +vt 0.012500 0.388298 +vt 0.018750 0.356383 +vt 0.025000 0.388298 +vt 0.031250 0.356383 +vt 0.031250 0.388298 +vt 0.031250 0.207447 +vt 0.025000 0.239362 +vt 0.025000 0.207447 +vt 0.037500 0.207447 +vt 0.031250 0.239362 +vt 0.043750 0.239362 +vt 0.037500 0.239362 +vt 0.006250 0.265957 +vt 0.006250 0.276596 +vt -0.000000 0.271277 +vt 0.006250 0.207447 +vt 0.012500 0.239362 +vt 0.006250 0.239362 +vt 0.018750 0.207447 +vt 0.012500 0.207447 +vt 0.018750 0.239362 +vt -0.000000 0.207447 +vt 0.006250 0.186170 +vt 0.012500 0.202128 +vt 0.018750 0.191489 +vt 0.018750 0.202128 +vt 0.031250 0.202128 +vt 0.025000 0.196809 +vt 0.031250 0.191489 +vt 0.037500 0.191489 +vt 0.037500 0.202128 +vt 0.043750 0.207447 +vt 0.043750 0.186170 +vt 0.050000 0.207447 +vt 0.000000 0.186170 +vt 0.006250 0.164894 +vt 0.012500 0.170213 +vt 0.012500 0.180851 +vt 0.018750 0.170213 +vt 0.018750 0.180851 +vt 0.031250 0.170213 +vt 0.031250 0.180851 +vt 0.025000 0.175532 +vt 0.031250 0.069149 +vt 0.025000 0.164894 +vt 0.037500 0.170213 +vt 0.037500 0.180851 +vt 0.050000 0.164894 +vt 0.050000 0.186170 +vt 0.031250 0.335106 +vt 0.025000 0.356383 +vt 0.025000 0.335106 +vt 0.037500 0.340426 +vt 0.043750 0.340426 +vt 0.037500 0.351064 +vt 0.006250 0.329787 +vt -0.000000 0.324468 +vt 0.006250 0.319149 +vt 0.000000 0.345745 +vt 0.006250 0.340426 +vt 0.006250 0.351064 +vt 0.012500 0.351064 +vt 0.012500 0.340426 +vt 0.018750 0.335106 +vt 0.031250 0.313830 +vt 0.025000 0.313830 +vt 0.037500 0.329787 +vt 0.037500 0.319149 +vt 0.043750 0.319149 +vt 0.050000 0.324468 +vt 0.043750 0.329787 +vt 0.043750 0.351064 +vt 0.050000 0.345745 +vt 0.012500 0.319149 +vt 0.018750 0.313830 +vt 0.012500 0.329787 +vt 0.018750 0.260638 +vt 0.012500 0.255319 +vt 0.012500 0.244681 +vt 0.006250 0.255319 +vt 0.006250 0.244681 +vt 0.050000 0.239362 +vt 0.000000 0.250000 +vt 0.043750 0.255319 +vt 0.037500 0.244681 +vt 0.043750 0.244681 +vt 0.037500 0.255319 +vt 0.025000 0.260638 +vt 0.025000 0.281915 +vt 0.012500 0.276596 +vt 0.012500 0.265957 +vt 0.050000 0.250000 +vt 0.037500 0.276596 +vt 0.037500 0.265957 +vt 0.031250 0.260638 +vt -0.000000 0.409574 +vt 0.006250 0.430851 +vt 0.000000 0.430851 +vt 0.006250 0.409574 +vt 0.012500 0.425532 +vt 0.012500 0.414894 +vt 0.018750 0.425532 +vt 0.031250 0.393617 +vt 0.031250 0.404255 +vt 0.025000 0.398936 +vt 0.031250 0.425532 +vt 0.025000 0.420213 +vt 0.031250 0.414894 +vt 0.037500 0.425532 +vt 0.043750 0.409574 +vt 0.043750 0.430851 +vt 0.050000 0.430851 +vt 0.012500 0.404255 +vt 0.012500 0.393617 +vt 0.018750 0.404255 +vt 0.018750 0.393617 +vt 0.018750 0.414894 +vt 0.037500 0.404255 +vt 0.037500 0.393617 +vt 0.050000 0.409574 +vt 0.037500 0.281915 +vt 0.031250 0.281915 +vt 0.043750 0.281915 +vt 0.037500 0.313830 +vt 0.050000 0.281915 +vt 0.043750 0.313830 +vt 0.006250 0.281915 +vt 0.000000 0.313830 +vt 0.000000 0.281915 +vt 0.012500 0.313830 +vt 0.006250 0.313830 +vt 0.018750 0.281915 +vt 0.012500 0.281915 +vt 0.000000 0.069149 +vt 0.006250 0.069149 +vt 0.050000 0.069149 +vt 0.043750 0.164894 +vt 0.043750 0.069149 +vt 0.037500 0.069149 +vt 0.037500 0.164894 +vt 0.018750 0.164894 +vt 0.012500 0.164894 +vt 0.006250 0.026596 +vt 0.012500 0.000000 +vt 0.025000 0.430851 +vt 0.018750 0.601064 +vt 0.018750 0.430851 +vt 0.025000 -0.000000 +vt 0.031250 -0.000000 +vt 0.031250 0.026596 +vt -0.000000 0.026596 +vt 0.006250 0.000000 +vt 0.037500 0.000000 +vt 0.037500 0.026596 +vt 0.018750 0.000000 +vt 0.050000 0.031915 +vt 0.050000 0.042553 +vt 0.000000 0.601064 +vt 0.043750 0.601064 +vt 0.031250 0.430851 +vt 0.025000 0.601064 +vt 0.012500 0.430851 +vt 0.006250 0.601064 +vt 0.037500 0.601064 +vt 0.037500 0.430851 +vt 0.012500 0.601064 +vt 0.031250 0.601064 +vt 0.028125 0.691489 +vt 0.031250 0.606383 +vt 0.031250 0.691489 +vt 0.034375 0.691489 +vt 0.037500 0.606383 +vt 0.037500 0.691489 +vt 0.046875 0.691489 +vt 0.043750 0.606383 +vt 0.046875 0.606383 +vt 0.034375 0.606383 +vt 0.040625 0.691489 +vt 0.043750 0.691489 +vt 0.025000 0.691489 +vt 0.028125 0.606383 +vt 0.040625 0.606383 +vt 0.050000 0.691489 +vt 0.050000 0.606383 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.075000 0.127660 +vt 0.075000 0.117021 +vt 0.075000 -0.000000 +vt 0.050000 0.212766 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.606250 0.792553 +vt 0.606250 0.771277 +vt 0.600000 0.765957 +vt 0.593750 0.723404 +vt 0.043750 0.026596 +vt 0.043750 -0.000000 +vt 0.050000 -0.000000 +vt 0.050000 0.026596 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 -0.000000 +vt 0.081250 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.180851 +vt 0.087500 0.159574 +vt 0.093750 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.154255 +vt 0.062500 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.138298 +vt 0.100000 0.159574 +vt 0.050000 0.138298 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.122340 +vt 0.087500 0.132979 +vt 0.081250 0.132979 +vt 0.087500 0.122340 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.075000 0.255319 +vt 0.081250 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.075000 0.202128 +vt 0.062500 0.196809 +vt 0.062500 0.186170 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.180851 +vt 0.075000 0.223404 +vt 0.068750 0.202128 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.218085 +vt 0.056250 0.207447 +vt 0.087500 0.207447 +vt 0.087500 0.218085 +vt 0.081250 0.202128 +vt 0.081250 0.223404 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.377660 +vt 0.087500 0.367021 +vt 0.093750 0.382979 +vt 0.093750 0.361702 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.068750 0.345745 +vt 0.068750 0.356383 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.542553 +vt 0.575000 0.563830 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.558511 +vt 0.612500 0.547872 +vt 0.618750 0.563830 +vt 0.618750 0.542553 +vt 0.625000 0.563830 +vt 0.581250 0.521277 +vt 0.581250 0.542553 +vt 0.587500 0.537234 +vt 0.587500 0.526596 +vt 0.593750 0.537234 +vt 0.593750 0.526596 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.526596 +vt 0.612500 0.537234 +vt 0.625000 0.521277 +vt 0.625000 0.542553 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.718085 +vt 0.618750 0.707447 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.587500 0.718085 +vt 0.587500 0.707447 +vt 0.593750 0.723404 +vt 0.593750 0.702128 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.686170 +vt 0.618750 0.686170 +vt 0.612500 0.696809 +vt 0.625000 0.691489 +vt 0.618750 0.696809 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.612500 0.622340 +vt 0.606250 0.606383 +vt 0.600000 0.627660 +vt 0.600000 0.648936 +vt 0.593750 0.648936 +vt 0.587500 0.632979 +vt 0.625000 0.617021 +vt 0.612500 0.643617 +vt 0.612500 0.632979 +vt 0.606250 0.627660 +vt 0.575000 0.787234 +vt 0.581250 0.808511 +vt 0.575000 0.808511 +vt 0.587500 0.792553 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.792553 +vt 0.612500 0.803191 +vt 0.606250 0.803191 +vt 0.618750 0.787234 +vt 0.618750 0.808511 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.581250 0.787234 +vt 0.587500 0.781915 +vt 0.587500 0.771277 +vt 0.593750 0.781915 +vt 0.606250 0.781915 +vt 0.612500 0.771277 +vt 0.612500 0.781915 +vt 0.625000 0.787234 +vt 0.612500 0.648936 +vt 0.606250 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.587500 0.648936 +vt 0.606250 0.882979 +vt 0.600000 0.904255 +vt 0.600000 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.581250 0.904255 +vt 0.575000 0.936170 +vt 0.575000 0.904255 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.882979 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.612500 0.877660 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.593750 0.904255 +vt 0.587500 0.936170 +vt 0.587500 0.904255 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.606250 0.904255 +vt 0.581250 0.936170 +vt 0.600000 0.936170 +vt 0.593750 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.075000 0.127660 +vt 0.068750 0.143617 +vt 0.075000 0.117021 +vt 0.075000 -0.000000 +vt 0.050000 0.212766 +vt 0.056250 0.196809 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.606250 0.771277 +vt 0.600000 0.765957 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.159574 +vt 0.081250 0.180851 +vt 0.093750 0.180851 +vt 0.087500 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.154255 +vt 0.062500 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.159574 +vt 0.050000 0.138298 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.132979 +vt 0.087500 0.122340 +vt 0.087500 0.132979 +vt 0.100000 0.138298 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.075000 0.255319 +vt 0.081250 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.075000 0.202128 +vt 0.068750 0.202128 +vt 0.062500 0.186170 +vt 0.062500 0.196809 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.202128 +vt 0.075000 0.223404 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.207447 +vt 0.087500 0.218085 +vt 0.087500 0.207447 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.367021 +vt 0.087500 0.377660 +vt 0.093750 0.382979 +vt 0.093750 0.361702 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.068750 0.345745 +vt 0.068750 0.356383 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.081250 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.563830 +vt 0.581250 0.542553 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.547872 +vt 0.612500 0.558511 +vt 0.618750 0.563830 +vt 0.618750 0.542553 +vt 0.625000 0.563830 +vt 0.575000 0.521277 +vt 0.575000 0.542553 +vt 0.581250 0.521277 +vt 0.587500 0.537234 +vt 0.593750 0.526596 +vt 0.593750 0.537234 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.526596 +vt 0.612500 0.537234 +vt 0.625000 0.521277 +vt 0.625000 0.542553 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.718085 +vt 0.618750 0.707447 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.587500 0.707447 +vt 0.593750 0.723404 +vt 0.593750 0.702128 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.686170 +vt 0.618750 0.696809 +vt 0.618750 0.686170 +vt 0.625000 0.691489 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.600000 0.627660 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.606250 0.627660 +vt 0.606250 0.606383 +vt 0.600000 0.648936 +vt 0.593750 0.648936 +vt 0.587500 0.632979 +vt 0.587500 0.643617 +vt 0.625000 0.617021 +vt 0.612500 0.643617 +vt 0.612500 0.632979 +vt 0.575000 0.808511 +vt 0.581250 0.787234 +vt 0.581250 0.808511 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.792553 +vt 0.612500 0.803191 +vt 0.606250 0.803191 +vt 0.618750 0.787234 +vt 0.618750 0.808511 +vt 0.625000 0.787234 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.575000 0.787234 +vt 0.587500 0.771277 +vt 0.587500 0.781915 +vt 0.593750 0.781915 +vt 0.606250 0.771277 +vt 0.612500 0.781915 +vt 0.606250 0.781915 +vt 0.625000 0.765957 +vt 0.612500 0.648936 +vt 0.606250 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.587500 0.648936 +vt 0.606250 0.882979 +vt 0.600000 0.904255 +vt 0.600000 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.575000 0.904255 +vt 0.581250 0.936170 +vt 0.575000 0.936170 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.882979 +vt 0.593750 0.904255 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.612500 0.877660 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.587500 0.904255 +vt 0.593750 0.936170 +vt 0.587500 0.936170 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.606250 0.904255 +vt 0.581250 0.904255 +vt 0.600000 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.081250 0.122340 +vt 0.075000 0.127660 +vt 0.068750 0.143617 +vt 0.075000 -0.000000 +vt 0.075000 0.117021 +vt 0.056250 0.218085 +vt 0.050000 0.212766 +vt 0.056250 0.196809 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.600000 0.765957 +vt 0.687500 0.478723 +vt 0.678125 0.393617 +vt 0.687500 0.393617 +vt 0.650000 0.478723 +vt 0.659375 0.393617 +vt 0.659375 0.478723 +vt 0.706250 0.478723 +vt 0.715625 0.393617 +vt 0.715625 0.478723 +vt 0.696875 0.393617 +vt 0.696875 0.478723 +vt 0.668750 0.393617 +vt 0.668750 0.478723 +vt 0.706250 0.393617 +vt 0.678125 0.478723 +vt 0.725000 0.393617 +vt 0.725000 0.478723 +vt 0.612500 0.478723 +vt 0.603125 0.393617 +vt 0.612500 0.393617 +vt 0.575000 0.478723 +vt 0.584375 0.393617 +vt 0.584375 0.478723 +vt 0.631250 0.478723 +vt 0.640625 0.393617 +vt 0.640625 0.478723 +vt 0.621875 0.478723 +vt 0.621875 0.393617 +vt 0.593750 0.393617 +vt 0.593750 0.478723 +vt 0.631250 0.393617 +vt 0.603125 0.478723 +vt 0.650000 0.393617 +vt 0.650000 0.478723 +vt 0.125000 0.930851 +vt 0.131250 0.845745 +vt 0.131250 0.930851 +vt 0.143750 0.930851 +vt 0.150000 0.845745 +vt 0.150000 0.930851 +vt 0.106250 0.930851 +vt 0.112500 0.845745 +vt 0.112500 0.930851 +vt 0.118750 0.930851 +vt 0.125000 0.845745 +vt 0.137500 0.845745 +vt 0.137500 0.930851 +vt 0.143750 0.845745 +vt 0.156250 0.845745 +vt 0.156250 0.930851 +vt 0.118750 0.845745 +vt 0.500000 0.978723 +vt 0.206250 0.819149 +vt 0.017216 0.609215 +vt 0.020356 0.607000 +vt 0.023497 0.609215 +vt 0.023497 0.619907 +vt 0.017216 0.619907 +vt 0.087500 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.087500 0.122340 +vt 0.062500 0.196809 +vt 0.087500 0.367021 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.625000 0.765957 +vt 0.587500 0.606383 +vt 0.612500 0.547872 +vt 0.581250 0.521277 +vt 0.081250 0.776596 +vt 0.612500 0.526596 +vt 0.587500 0.622340 +vt 0.612500 0.643617 +vt 0.587500 0.792553 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.140625 0.840426 +vt 0.128125 0.840426 +vt 0.115625 0.840426 +vt 0.203125 0.840426 +vt 0.190625 0.840426 +vt 0.178125 0.840426 +vt 0.153125 0.840426 +vt -0.000000 0.053191 +vt -0.000000 0.031915 +vt 0.037500 0.356383 +vt 0.050000 0.356383 +vt -0.000000 0.356383 +vt 0.012500 0.191489 +vt 0.000000 0.164894 +vt 0.031250 0.164894 +vt 0.000000 0.239362 +vt 0.037500 0.414894 +vt 0.050000 0.313830 +vt -0.000000 -0.000000 +vt 0.050000 0.601064 +vt 0.025000 0.606383 +vt 0.050000 0.117021 +vt 0.087500 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.062500 0.122340 +vt 0.062500 0.345745 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.625000 0.765957 +vt 0.587500 0.606383 +vt 0.575000 0.521277 +vt 0.081250 0.776596 +vt 0.618750 0.521277 +vt 0.612500 0.718085 +vt 0.587500 0.622340 +vt 0.587500 0.643617 +vt 0.612500 0.792553 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.050000 0.117021 +vt 0.081250 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.062500 0.122340 +vt 0.062500 0.345745 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.587500 0.606383 +vt 0.587500 0.526596 +vt 0.081250 0.776596 +vt 0.618750 0.521277 +vt 0.612500 0.718085 +vt 0.587500 0.718085 +vt 0.612500 0.696809 +vt 0.587500 0.622340 +vt 0.612500 0.622340 +vt 0.587500 0.792553 +vt 0.612500 0.792553 +vt 0.612500 0.771277 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.650000 0.393617 +vt 0.575000 0.393617 +vt 0.106250 0.845745 +vn 0.0000 -1.0000 0.0000 +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.4996 0.7077 0.4996 +vn -0.4996 0.7077 -0.4996 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.4996 0.7077 -0.4996 +vn -0.4996 0.7077 0.4996 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7040 0.0935 0.7040 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7040 0.0935 -0.7040 +vn 0.0000 0.0933 0.9956 +vn 0.0000 0.0933 -0.9956 +vn 0.7040 0.0935 -0.7040 +vn -0.7040 0.0935 0.7040 +vn 0.9956 0.0933 0.0000 +vn -0.9956 0.0933 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 0.5000 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9487 -0.3162 0.0000 +vn 0.9487 -0.3162 0.0000 +vn 0.0000 -0.3162 0.9487 +vn 0.0000 -0.3162 -0.9487 +vn -0.6708 -0.3162 0.6708 +vn 0.6708 -0.3162 -0.6708 +vn 0.6708 -0.3162 0.6708 +vn -0.6708 -0.3162 -0.6708 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 0.0000 +vn -0.6737 0.1363 -0.7263 +vn -0.4617 0.4617 -0.7573 +vn 0.6737 -0.1363 0.7263 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.0196 -0.0473 -0.9987 +vn -0.1363 -0.6737 -0.7263 +vn -0.1447 -0.7194 -0.6794 +vn -0.1447 -0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.0196 0.0473 0.9987 +vn 0.1363 0.6737 0.7263 +vn -0.0196 -0.0473 0.9987 +vn 0.1447 0.7194 0.6794 +vn 0.1447 0.7194 -0.6794 +vn 0.1363 0.6737 -0.7263 +vn -0.7194 0.1447 -0.6794 +vn 0.1363 -0.6737 -0.7263 +vn 0.1866 -0.9824 0.0000 +vn 0.0196 -0.0473 -0.9987 +vn -0.0196 0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1363 0.6737 0.7263 +vn -0.1447 0.7194 0.6794 +vn 0.1447 -0.7194 0.6794 +vn 0.1363 -0.6737 0.7263 +vn -0.1866 0.9824 0.0000 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.0670 0.0670 -0.9955 +vn -0.5293 0.5293 -0.6630 +vn -0.1447 0.7194 -0.6794 +vn 0.4617 -0.4617 -0.7573 +vn 0.5293 0.5293 -0.6630 +vn 0.0196 0.0473 -0.9987 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 -0.7573 +vn -0.4617 -0.4617 0.7573 +vn 0.0670 0.0670 0.9955 +vn 0.5293 0.5293 0.6630 +vn 0.7194 0.1447 -0.6794 +vn 0.9824 0.1866 0.0000 +vn 0.0473 0.0196 -0.9987 +vn -0.6737 -0.1363 -0.7263 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.7194 0.1447 0.6794 +vn 0.5293 -0.5293 0.6630 +vn 0.0196 -0.0473 0.9987 +vn -0.4617 0.4617 0.7573 +vn 0.0670 -0.0670 -0.9955 +vn 0.1447 -0.7194 -0.6794 +vn 0.9824 -0.1866 0.0000 +vn 0.0473 -0.0196 0.9987 +vn 0.0670 -0.0670 0.9955 +vn -0.6737 0.1363 0.7263 +vn 0.0473 -0.0196 -0.9987 +vn 0.5293 -0.5293 -0.6630 +vn -0.9824 -0.1866 0.0000 +vn -0.5293 -0.5293 0.6630 +vn -0.7194 -0.1447 0.6794 +vn -0.0670 -0.0670 0.9955 +vn -0.0473 -0.0196 0.9987 +vn 0.4617 0.4617 0.7573 +vn 0.6737 0.1363 0.7263 +vn 0.6737 0.1363 -0.7263 +vn 0.4617 0.4617 -0.7573 +vn -0.0473 -0.0196 -0.9987 +vn -0.5293 -0.5293 -0.6630 +vn -0.7194 -0.1447 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn -0.0670 -0.0670 -0.9955 +vn 0.7194 -0.1447 -0.6794 +vn 0.7194 -0.1447 0.6794 +vn 0.1866 0.9824 0.0000 +vn -0.0473 0.0196 -0.9987 +vn 0.0000 0.4472 -0.8944 +vn 0.6324 0.4472 -0.6324 +vn 0.8944 0.4472 0.0000 +vn 0.6324 0.4472 0.6324 +vn 0.0000 0.4472 0.8944 +vn -0.6324 0.4472 0.6324 +vn -0.8944 0.4472 0.0000 +vn -0.6324 0.4472 -0.6324 +vn 0.9900 0.1363 0.0372 +vn 0.8620 0.4617 0.2090 +vn 0.7200 -0.0473 0.6923 +vn 0.6099 -0.6737 0.4172 +vn 0.5828 -0.7194 0.3780 +vn 0.1319 -0.9824 -0.1319 +vn -0.4172 -0.6737 -0.6099 +vn -0.3780 -0.7194 -0.5828 +vn -0.7200 0.0473 -0.6923 +vn -0.6099 0.6737 -0.4172 +vn -0.6923 -0.0473 -0.7200 +vn -0.5828 0.7194 -0.3780 +vn 0.3780 0.7194 0.5828 +vn 0.4172 0.6737 0.6099 +vn 0.4172 -0.6737 0.6099 +vn -0.1319 -0.9824 0.1319 +vn 0.7200 0.0473 0.6923 +vn 0.3780 -0.7194 0.5828 +vn 0.6099 0.6737 0.4172 +vn 0.6923 -0.0473 0.7200 +vn -0.2090 0.4617 -0.8620 +vn -0.0372 0.1363 -0.9900 +vn -0.3780 0.7194 -0.5828 +vn -0.7200 -0.0473 -0.6923 +vn -0.4172 0.6737 -0.6099 +vn -0.6099 -0.6737 -0.4172 +vn -0.6923 0.0473 -0.7200 +vn -0.5828 -0.7194 -0.3780 +vn 0.1319 0.9824 -0.1319 +vn -0.0945 0.5293 -0.8431 +vn -0.8620 -0.4617 -0.2090 +vn 0.2090 -0.4617 0.8620 +vn 0.7513 0.0670 0.6565 +vn 0.5828 0.7194 0.3780 +vn 0.8431 0.5293 0.0945 +vn 0.0283 0.1447 -0.9890 +vn -0.6727 0.0196 -0.7396 +vn -0.6565 0.0670 -0.7513 +vn -0.9900 -0.1363 -0.0372 +vn 0.0372 -0.1363 0.9900 +vn 0.7396 0.0196 0.6727 +vn 0.6947 0.1866 -0.6947 +vn 0.0945 0.5293 0.8431 +vn -0.1319 0.9824 0.1319 +vn 0.6565 0.0670 0.7513 +vn 0.8620 -0.4617 0.2090 +vn 0.6923 0.0473 0.7200 +vn -0.2090 -0.4617 -0.8620 +vn -0.0372 -0.1363 -0.9900 +vn -0.7513 0.0670 -0.6565 +vn -0.8431 0.5293 -0.0945 +vn -0.0283 0.1447 0.9890 +vn -0.6947 0.1866 0.6947 +vn 0.6727 0.0196 0.7396 +vn 0.9900 -0.1363 0.0372 +vn -0.7396 0.0196 -0.6727 +vn -0.9890 0.1447 0.0283 +vn -0.8431 -0.5293 -0.0945 +vn -0.7513 -0.0670 -0.6565 +vn 0.6565 -0.0670 0.7513 +vn -0.6947 -0.1866 0.6947 +vn -0.7396 -0.0196 -0.6727 +vn 0.6727 -0.0196 0.7396 +vn 0.0945 -0.5293 0.8431 +vn 0.0283 -0.1447 -0.9890 +vn 0.6947 -0.1866 -0.6947 +vn -0.0945 -0.5293 -0.8431 +vn -0.6727 -0.0196 -0.7396 +vn -0.6565 -0.0670 -0.7513 +vn -0.9900 0.1363 -0.0372 +vn 0.2090 0.4617 0.8620 +vn 0.0372 0.1363 0.9900 +vn 0.7396 -0.0196 0.6727 +vn 0.8431 -0.5293 0.0945 +vn 0.9890 -0.1447 -0.0283 +vn -0.8620 0.4617 -0.2090 +vn 0.7513 -0.0670 0.6565 +vn -0.0283 -0.1447 0.9890 +vn -0.9890 -0.1447 0.0283 +vn 0.9890 0.1447 -0.0283 +vn -0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn 0.7263 0.1363 -0.6737 +vn 0.7573 0.4617 -0.4617 +vn -0.7263 -0.1363 0.6737 +vn -0.6794 0.1447 -0.7194 +vn 0.9987 0.0196 -0.0473 +vn 0.9987 -0.0473 -0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.6794 -0.7194 -0.1447 +vn -0.6794 -0.7194 -0.1447 +vn -0.7263 -0.6737 -0.1363 +vn -0.9987 0.0473 0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.9987 -0.0473 -0.0196 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn 0.7263 0.6737 0.1363 +vn 0.6794 0.1447 -0.7194 +vn 0.7263 -0.6737 0.1363 +vn 0.0000 -0.9824 0.1866 +vn 0.9987 0.0473 -0.0196 +vn 0.6794 -0.7194 0.1447 +vn 0.7263 0.6737 -0.1363 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 0.7194 -0.1447 +vn -0.6794 -0.7194 0.1447 +vn -0.7263 -0.6737 0.1363 +vn 0.0000 0.9824 -0.1866 +vn -0.6630 0.5293 -0.5293 +vn -0.9955 0.0670 -0.0670 +vn 0.9955 0.0670 -0.0670 +vn 0.6630 0.5293 -0.5293 +vn 0.6794 0.7194 -0.1447 +vn -0.7573 -0.4617 0.4617 +vn 0.7573 -0.4617 0.4617 +vn 0.6630 0.5293 0.5293 +vn 0.9987 0.0473 0.0196 +vn 0.9955 0.0670 0.0670 +vn 0.7573 -0.4617 -0.4617 +vn -0.7573 -0.4617 -0.4617 +vn -0.9955 0.0670 0.0670 +vn -0.6630 0.5293 0.5293 +vn 0.0000 0.1866 0.9824 +vn 0.6794 0.1447 0.7194 +vn 0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn -0.7263 -0.1363 -0.6737 +vn -0.9987 0.0196 0.0473 +vn -0.6794 0.1447 0.7194 +vn -0.6630 -0.5293 0.5293 +vn -0.9987 -0.0473 0.0196 +vn -0.9955 -0.0670 0.0670 +vn 0.9955 -0.0670 0.0670 +vn 0.6630 -0.5293 0.5293 +vn 0.0000 -0.1866 0.9824 +vn -0.9987 -0.0196 0.0473 +vn -0.7573 0.4617 -0.4617 +vn 0.9987 -0.0196 0.0473 +vn 0.0000 -0.1866 -0.9824 +vn -0.6630 -0.5293 -0.5293 +vn -0.6794 -0.1447 -0.7194 +vn -0.9955 -0.0670 -0.0670 +vn -0.9987 -0.0196 -0.0473 +vn -0.7573 0.4617 0.4617 +vn -0.7263 0.1363 0.6737 +vn 0.7263 0.1363 0.6737 +vn 0.7573 0.4617 0.4617 +vn 0.9955 -0.0670 -0.0670 +vn 0.9987 -0.0196 -0.0473 +vn 0.6794 -0.1447 -0.7194 +vn 0.6630 -0.5293 -0.5293 +vn 0.0000 -0.9824 -0.1866 +vn 0.6794 -0.1447 0.7194 +vn -0.7263 0.1363 -0.6737 +vn -0.6794 -0.1447 0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.0000 0.9824 0.1866 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 70/7/3 65/8/3 66/9/3 +f 65/10/3 72/11/3 68/12/3 +f 72/13/3 67/14/3 68/15/3 +f 67/16/3 70/17/3 66/18/3 +f 86/19/4 81/20/4 82/21/4 +f 20/22/5 27/23/5 19/24/5 +f 10/25/6 24/26/6 13/27/6 +f 11/28/7 20/29/7 16/30/7 +f 13/27/8 23/31/8 15/32/8 +f 16/30/9 19/33/9 14/34/9 +f 14/34/10 22/35/10 12/36/10 +f 15/37/11 18/38/11 9/39/11 +f 12/36/12 21/40/12 10/25/12 +f 9/39/13 17/41/13 11/28/13 +f 29/42/14 48/43/14 32/44/14 +f 19/24/15 30/45/15 22/46/15 +f 23/47/16 26/48/16 18/49/16 +f 22/46/3 29/42/3 21/50/3 +f 18/49/4 25/51/4 17/52/4 +f 21/50/17 32/44/17 24/53/17 +f 17/52/18 28/54/18 20/22/18 +f 24/53/19 31/55/19 23/56/19 +f 37/57/4 1604/58/4 53/59/4 +f 37/60/2 46/61/2 38/62/2 +f 25/51/20 44/63/20 28/54/20 +f 32/44/21 47/64/21 31/55/21 +f 28/54/22 43/65/22 27/23/22 +f 27/23/23 46/66/23 30/45/23 +f 31/67/24 42/68/24 26/48/24 +f 30/45/25 45/69/25 29/42/25 +f 26/48/26 41/70/26 25/51/26 +f 38/71/2 43/72/2 35/73/2 +f 35/74/2 44/75/2 36/76/2 +f 44/63/2 33/77/2 36/78/2 +f 33/79/2 42/80/2 34/81/2 +f 34/82/2 47/83/2 39/84/2 +f 39/85/2 48/86/2 40/87/2 +f 48/43/2 37/88/2 40/89/2 +f 50/90/2 55/91/2 1603/92/2 +f 34/93/3 49/94/3 33/95/3 +f 37/57/18 56/96/18 40/97/18 +f 33/95/17 52/98/17 36/99/17 +f 40/97/5 55/100/5 39/101/5 +f 36/99/19 51/102/19 35/103/19 +f 51/102/16 54/104/16 1604/58/16 +f 39/105/15 50/106/15 34/93/15 +f 58/107/5 66/18/5 57/108/5 +f 59/109/19 68/12/19 60/110/19 +f 61/111/19 71/112/19 62/113/19 +f 64/114/5 69/115/5 63/116/5 +f 61/111/3 64/114/3 63/116/3 +f 62/113/1 72/13/1 64/114/1 +f 63/116/2 70/7/2 61/111/2 +f 60/117/2 67/14/2 58/118/2 +f 57/119/1 65/8/1 59/120/1 +f 81/121/4 88/122/4 84/123/4 +f 88/124/4 83/125/4 84/126/4 +f 83/127/4 86/128/4 82/129/4 +f 74/130/19 82/129/19 73/131/19 +f 75/132/5 84/123/5 76/133/5 +f 77/134/5 87/135/5 78/136/5 +f 80/137/19 85/138/19 79/139/19 +f 77/134/4 80/137/4 79/139/4 +f 78/136/1 88/124/1 80/137/1 +f 79/139/2 86/19/2 77/134/2 +f 76/140/2 83/125/2 74/141/2 +f 73/142/1 81/20/1 75/143/1 +f 102/144/5 97/145/5 98/146/5 +f 97/147/5 104/148/5 100/149/5 +f 104/150/5 99/151/5 100/152/5 +f 103/153/5 98/154/5 99/155/5 +f 118/156/19 113/157/19 114/158/19 +f 90/159/4 98/154/4 89/160/4 +f 91/161/3 100/149/3 92/162/3 +f 93/163/3 103/153/3 94/164/3 +f 96/165/4 101/166/4 95/167/4 +f 93/163/5 96/165/5 95/167/5 +f 94/164/1 104/150/1 96/165/1 +f 95/167/2 102/144/2 93/163/2 +f 92/168/2 99/151/2 90/169/2 +f 89/170/1 97/145/1 91/171/1 +f 113/172/19 120/173/19 116/174/19 +f 120/175/19 115/176/19 116/177/19 +f 119/178/19 114/179/19 115/180/19 +f 106/181/3 114/179/3 105/182/3 +f 107/183/4 116/174/4 108/184/4 +f 109/185/4 119/178/4 110/186/4 +f 112/187/3 117/188/3 111/189/3 +f 109/185/19 112/187/19 111/189/19 +f 110/186/1 120/175/1 112/187/1 +f 109/185/2 117/190/2 118/156/2 +f 108/191/2 115/176/2 106/192/2 +f 105/193/1 113/157/1 107/194/1 +f 4/195/3 58/196/3 2/2/3 +f 2/197/19 106/198/19 1/199/19 +f 1/200/4 74/201/4 3/202/4 +f 3/203/5 90/204/5 4/205/5 +f 89/206/5 7/207/5 8/208/5 +f 7/209/4 75/210/4 5/211/4 +f 105/212/19 6/213/19 5/214/19 +f 6/4/3 59/215/3 8/216/3 +f 57/217/3 2/2/3 58/196/3 +f 107/218/19 2/197/19 6/213/19 +f 105/212/19 1/199/19 106/198/19 +f 75/210/4 1/200/4 5/211/4 +f 73/219/4 3/202/4 74/201/4 +f 91/220/5 3/203/5 7/207/5 +f 89/206/5 4/205/5 90/204/5 +f 59/215/3 4/195/3 8/216/3 +f 136/221/1 123/222/1 124/223/1 +f 129/224/1 121/225/1 122/226/1 +f 133/227/1 127/228/1 128/229/1 +f 135/230/1 122/231/1 127/232/1 +f 131/233/1 124/234/1 121/235/1 +f 132/236/1 125/237/1 126/238/1 +f 123/239/1 132/236/1 126/240/1 +f 130/241/1 128/242/1 125/243/1 +f 139/244/2 148/245/2 140/246/2 +f 137/247/2 146/248/2 138/249/2 +f 143/250/2 152/251/2 144/252/2 +f 138/253/2 151/254/2 143/255/2 +f 140/256/2 145/257/2 137/258/2 +f 141/259/2 150/260/2 142/261/2 +f 142/262/2 147/263/2 139/264/2 +f 144/265/2 149/266/2 141/267/2 +f 203/268/4 214/269/4 204/270/4 +f 135/230/16 146/248/16 129/224/16 +f 133/227/19 151/271/19 135/272/19 +f 213/273/3 201/274/3 202/275/3 +f 131/233/18 148/245/18 136/221/18 +f 216/276/8 203/268/8 201/277/8 +f 206/278/3 210/279/3 205/280/3 +f 208/281/9 211/282/9 206/278/9 +f 134/283/15 150/260/15 132/236/15 +f 214/269/27 202/275/27 204/270/27 +f 129/224/4 145/257/4 131/233/4 +f 130/241/17 152/251/17 133/227/17 +f 209/284/4 208/285/4 207/286/4 +f 136/221/5 147/263/5 134/283/5 +f 194/287/28 191/288/28 189/289/28 +f 132/236/3 149/266/3 130/241/3 +f 158/290/1 164/291/1 160/292/1 +f 155/293/1 168/294/1 153/295/1 +f 159/296/1 161/297/1 157/298/1 +f 154/299/1 165/300/1 156/301/1 +f 165/302/1 158/290/1 156/301/1 +f 157/298/1 167/303/1 154/299/1 +f 153/295/1 163/304/1 159/305/1 +f 160/292/1 166/306/1 155/293/1 +f 182/307/2 171/308/2 172/309/2 +f 184/310/2 169/311/2 170/312/2 +f 178/313/2 175/314/2 176/315/2 +f 180/316/2 173/317/2 174/318/2 +f 171/308/2 180/319/2 174/318/2 +f 179/320/2 176/315/2 173/317/2 +f 177/321/2 170/312/2 175/322/2 +f 183/323/2 172/309/2 169/311/2 +f 155/293/18 172/309/18 160/292/18 +f 165/324/16 181/325/16 162/326/16 +f 158/290/15 174/318/15 156/301/15 +f 161/327/18 179/320/18 167/328/18 +f 154/299/17 176/315/17 157/298/17 +f 168/329/15 177/321/15 163/330/15 +f 153/295/4 169/311/4 155/293/4 +f 163/331/5 178/313/5 161/332/5 +f 164/333/17 183/323/17 166/334/17 +f 160/292/5 171/308/5 158/290/5 +f 167/335/4 180/316/4 165/336/4 +f 156/301/3 173/317/3 154/299/3 +f 162/337/19 182/307/19 164/338/19 +f 157/298/19 175/314/19 159/296/19 +f 166/339/3 184/310/3 168/340/3 +f 159/305/16 170/312/16 153/295/16 +f 193/341/5 192/342/5 191/288/5 +f 198/343/29 186/344/29 188/345/29 +f 235/346/16 246/347/16 236/348/16 +f 196/349/12 190/350/12 192/351/12 +f 190/350/19 194/287/19 189/289/19 +f 200/352/13 187/353/13 185/354/13 +f 234/355/15 248/356/15 233/357/15 +f 210/279/30 207/286/30 205/280/30 +f 197/358/19 185/359/19 186/344/19 +f 187/353/5 198/343/5 188/345/5 +f 248/360/31 235/346/31 233/361/31 +f 243/362/15 237/363/15 238/364/15 +f 244/365/32 238/364/32 240/366/32 +f 246/347/33 234/355/33 236/348/33 +f 239/367/16 244/368/16 240/369/16 +f 226/370/34 223/371/34 221/372/34 +f 223/371/18 228/373/18 224/374/18 +f 230/375/35 218/376/35 220/377/35 +f 228/378/36 222/379/36 224/380/36 +f 222/379/17 226/370/17 221/372/17 +f 232/381/37 219/382/37 217/383/37 +f 242/384/38 239/367/38 237/363/38 +f 218/376/17 232/385/17 217/386/17 +f 219/382/18 230/375/18 220/377/18 +f 258/387/15 255/388/15 249/389/15 +f 263/390/5 253/391/5 255/392/5 +f 260/393/17 251/394/17 256/395/17 +f 262/396/16 254/397/16 252/398/16 +f 257/399/3 249/400/3 251/401/3 +f 264/402/18 250/403/18 253/404/18 +f 259/405/19 256/406/19 254/407/19 +f 261/408/4 252/409/4 250/410/4 +f 266/411/1 255/412/1 253/413/1 +f 270/414/1 250/415/1 252/416/1 +f 269/417/1 253/418/1 250/419/1 +f 267/420/1 254/421/1 256/422/1 +f 268/423/1 252/424/1 254/425/1 +f 271/426/1 251/427/1 249/428/1 +f 272/429/1 256/430/1 251/431/1 +f 255/432/1 271/426/1 249/433/1 +f 273/434/16 271/426/16 265/435/16 +f 278/436/3 269/417/3 270/414/3 +f 276/437/15 270/414/15 268/423/15 +f 279/438/4 272/429/4 271/426/4 +f 280/439/18 267/420/18 272/429/18 +f 275/440/5 268/423/5 267/420/5 +f 274/441/19 265/442/19 266/411/19 +f 277/443/17 266/411/17 269/417/17 +f 257/399/2 279/438/2 258/444/2 +f 279/438/2 263/445/2 258/387/2 +f 263/390/2 274/441/2 264/446/2 +f 264/402/2 277/443/2 261/447/2 +f 261/408/2 278/436/2 262/448/2 +f 262/396/2 276/437/2 259/449/2 +f 259/405/2 275/440/2 260/450/2 +f 260/393/2 280/439/2 257/451/2 +f 295/452/2 293/453/2 294/454/2 +f 287/455/2 285/456/2 286/457/2 +f 284/458/3 287/459/3 282/460/3 +f 281/461/4 285/456/4 283/462/4 +f 283/462/5 288/463/5 284/464/5 +f 282/460/19 286/457/19 281/461/19 +f 292/465/4 295/466/4 290/467/4 +f 289/468/3 293/453/3 291/469/3 +f 291/469/19 296/470/19 292/471/19 +f 290/467/5 294/454/5 289/468/5 +f 311/472/2 309/473/2 310/474/2 +f 302/475/2 304/476/2 301/477/2 +f 300/478/5 303/479/5 298/480/5 +f 297/481/19 301/477/19 299/482/19 +f 299/482/4 304/483/4 300/484/4 +f 298/480/3 302/475/3 297/481/3 +f 308/485/19 311/486/19 306/487/19 +f 305/488/5 309/473/5 307/489/5 +f 307/489/3 312/490/3 308/491/3 +f 306/487/4 310/474/4 305/488/4 +f 327/492/2 325/493/2 326/494/2 +f 319/495/2 317/496/2 318/497/2 +f 316/498/15 319/499/15 314/500/15 +f 313/501/16 317/496/16 315/502/16 +f 315/502/18 320/503/18 316/504/18 +f 314/500/17 318/497/17 313/501/17 +f 324/505/16 327/506/16 322/507/16 +f 321/508/15 325/493/15 323/509/15 +f 323/509/17 328/510/17 324/511/17 +f 322/507/18 326/494/18 321/508/18 +f 343/512/2 341/513/2 342/514/2 +f 334/515/2 336/516/2 333/517/2 +f 332/518/18 335/519/18 330/520/18 +f 329/521/17 333/517/17 331/522/17 +f 331/522/16 336/523/16 332/524/16 +f 330/520/15 334/515/15 329/521/15 +f 340/525/17 343/526/17 338/527/17 +f 337/528/18 341/513/18 339/529/18 +f 339/529/15 344/530/15 340/531/15 +f 338/527/16 342/514/16 337/528/16 +f 351/532/2 349/533/2 350/534/2 +f 348/535/39 351/536/39 346/537/39 +f 345/538/40 349/533/40 347/539/40 +f 347/539/41 352/540/41 348/541/41 +f 346/537/42 350/534/42 345/538/42 +f 359/542/2 357/543/2 358/544/2 +f 356/545/40 359/546/40 354/547/40 +f 353/548/39 357/543/39 355/549/39 +f 355/549/42 360/550/42 356/551/42 +f 354/547/41 358/544/41 353/548/41 +f 367/552/2 365/553/2 366/554/2 +f 364/555/41 367/556/41 362/557/41 +f 361/558/42 365/553/42 363/559/42 +f 363/559/40 368/560/40 364/561/40 +f 362/557/39 366/554/39 361/558/39 +f 375/562/2 373/563/2 374/564/2 +f 372/565/42 375/566/42 370/567/42 +f 369/568/41 373/563/41 371/569/41 +f 371/569/39 376/570/39 372/571/39 +f 370/567/40 374/564/40 369/568/40 +f 382/572/2 384/573/2 381/574/2 +f 380/575/43 383/576/43 378/577/43 +f 377/578/44 381/574/44 379/579/44 +f 379/579/45 384/580/45 380/581/45 +f 378/577/46 382/572/46 377/578/46 +f 390/582/2 392/583/2 389/584/2 +f 388/585/44 391/586/44 386/587/44 +f 385/588/43 389/584/43 387/589/43 +f 387/589/46 392/590/46 388/591/46 +f 386/587/45 390/582/45 385/588/45 +f 398/592/2 400/593/2 397/594/2 +f 396/595/45 399/596/45 394/597/45 +f 393/598/46 397/594/46 395/599/46 +f 395/599/44 400/600/44 396/601/44 +f 394/597/43 398/592/43 393/598/43 +f 407/602/2 405/603/2 406/604/2 +f 404/605/46 407/606/46 402/607/46 +f 401/608/45 405/603/45 403/609/45 +f 403/609/43 408/610/43 404/611/43 +f 402/607/44 406/604/44 401/608/44 +f 410/612/4 409/613/4 412/614/4 +f 411/615/47 413/616/47 409/613/47 +f 416/617/3 415/618/3 418/619/3 +f 417/620/48 419/621/48 415/618/48 +f 422/622/19 421/623/19 424/624/19 +f 423/625/49 425/626/49 421/623/49 +f 428/627/5 427/628/5 430/629/5 +f 429/630/50 431/631/50 427/628/50 +f 434/632/16 433/633/16 436/634/16 +f 435/635/51 437/636/51 433/633/51 +f 440/637/15 439/638/15 442/639/15 +f 441/640/52 443/641/52 439/638/52 +f 446/642/17 445/643/17 448/644/17 +f 447/645/53 449/646/53 445/643/53 +f 452/647/18 451/648/18 454/649/18 +f 453/650/54 455/651/54 451/648/54 +f 472/652/1 459/653/1 460/654/1 +f 465/655/1 457/656/1 458/657/1 +f 469/658/1 463/659/1 464/660/1 +f 471/661/1 458/662/1 463/663/1 +f 467/664/1 460/665/1 457/666/1 +f 468/667/1 461/668/1 462/669/1 +f 459/670/1 468/667/1 462/671/1 +f 466/672/1 464/673/1 461/674/1 +f 475/675/2 484/676/2 476/677/2 +f 473/678/2 482/679/2 474/680/2 +f 479/681/2 488/682/2 480/683/2 +f 474/684/2 487/685/2 479/686/2 +f 476/687/2 481/688/2 473/689/2 +f 477/690/2 486/691/2 478/692/2 +f 478/693/2 483/694/2 475/695/2 +f 480/696/2 485/697/2 477/698/2 +f 471/661/16 482/679/16 465/655/16 +f 469/658/19 487/699/19 471/700/19 +f 467/664/18 484/676/18 472/652/18 +f 470/701/15 486/691/15 468/667/15 +f 465/655/4 481/688/4 467/664/4 +f 466/672/17 488/682/17 469/658/17 +f 472/652/5 483/694/5 470/701/5 +f 468/667/3 485/697/3 466/672/3 +f 509/702/3 492/703/3 511/704/3 +f 505/705/5 494/706/5 507/707/5 +f 511/704/17 489/708/17 508/709/17 +f 512/710/4 496/711/4 510/712/4 +f 507/707/15 491/713/15 509/702/15 +f 510/712/18 493/714/18 505/705/18 +f 508/709/19 490/715/19 506/716/19 +f 506/717/16 495/718/16 512/710/16 +f 497/719/2 492/703/2 500/720/2 +f 499/721/2 494/706/2 502/722/2 +f 500/723/2 491/713/2 499/724/2 +f 501/725/2 496/711/2 504/726/2 +f 503/727/2 490/728/2 498/729/2 +f 498/730/2 489/708/2 497/731/2 +f 504/732/2 495/718/2 503/733/2 +f 502/734/2 493/714/2 501/735/2 +f 511/704/1 513/736/1 516/737/1 +f 518/738/1 509/702/1 515/739/1 +f 509/702/1 516/740/1 515/741/1 +f 510/712/1 517/742/1 520/743/1 +f 506/717/1 519/744/1 514/745/1 +f 508/709/1 514/746/1 513/747/1 +f 512/710/1 520/748/1 519/749/1 +f 505/705/1 518/750/1 517/751/1 +f 538/752/18 549/753/18 550/754/18 +f 540/755/17 552/756/17 551/757/17 +f 527/758/38 530/759/38 532/760/38 +f 537/761/37 550/754/37 552/762/37 +f 542/763/17 548/764/17 547/765/17 +f 541/766/36 547/765/36 545/767/36 +f 539/768/35 551/757/35 549/753/35 +f 544/769/18 545/770/18 546/771/18 +f 543/772/34 546/771/34 548/764/34 +f 528/773/16 529/774/16 530/759/16 +f 523/775/33 535/776/33 533/777/33 +f 525/778/32 531/779/32 529/780/32 +f 526/781/15 532/760/15 531/779/15 +f 521/782/31 534/783/31 536/784/31 +f 570/785/5 581/786/5 582/787/5 +f 572/788/19 584/789/19 583/790/19 +f 559/791/30 562/792/30 564/793/30 +f 524/794/15 536/795/15 535/776/15 +f 569/796/13 582/787/13 584/797/13 +f 574/798/19 580/799/19 579/800/19 +f 573/801/12 579/800/12 577/802/12 +f 522/803/16 533/777/16 534/783/16 +f 571/804/29 583/790/29 581/786/29 +f 576/805/5 577/806/5 578/807/5 +f 610/808/16 599/809/16 616/810/16 +f 603/811/3 585/812/3 601/813/3 +f 612/814/19 594/815/19 610/816/19 +f 607/817/19 587/818/19 605/819/19 +f 613/820/3 596/821/3 615/822/3 +f 602/823/4 589/824/4 604/825/4 +f 609/826/5 598/827/5 611/828/5 +f 605/829/17 586/830/17 603/831/17 +f 606/832/5 591/833/5 608/834/5 +f 616/810/4 600/835/4 614/836/4 +f 601/837/15 592/838/15 606/839/15 +f 615/822/17 593/840/17 612/814/17 +f 608/841/18 590/842/18 602/843/18 +f 611/828/15 595/844/15 613/820/15 +f 604/845/16 588/846/16 607/847/16 +f 614/836/18 597/848/18 609/826/18 +f 586/830/2 597/848/2 600/835/2 +f 592/838/2 599/809/2 594/849/2 +f 590/842/2 593/840/2 596/821/2 +f 598/827/2 589/850/2 595/844/2 +f 589/824/2 596/821/2 595/844/2 +f 591/833/2 594/815/2 593/840/2 +f 585/812/2 600/835/2 599/809/2 +f 587/818/2 598/827/2 597/848/2 +f 609/826/1 603/851/1 614/836/1 +f 616/810/1 606/852/1 610/808/1 +f 612/814/1 602/853/1 615/822/1 +f 604/854/1 611/828/1 613/820/1 +f 615/822/1 604/855/1 613/820/1 +f 610/816/1 608/856/1 612/814/1 +f 614/836/1 601/857/1 616/810/1 +f 611/828/1 605/858/1 609/826/1 +f 575/859/28 578/807/28 580/799/28 +f 560/860/4 561/861/4 562/792/4 +f 555/862/27 567/863/27 565/864/27 +f 557/865/9 563/866/9 561/867/9 +f 558/868/3 564/793/3 563/866/3 +f 553/869/8 566/870/8 568/871/8 +f 556/872/3 568/873/3 567/863/3 +f 554/874/4 565/864/4 566/870/4 +f 655/875/2 664/876/2 663/877/2 +f 654/878/2 661/879/2 653/880/2 +f 652/881/2 659/882/2 651/883/2 +f 650/884/2 657/885/2 649/886/2 +f 656/887/2 657/888/2 664/889/2 +f 655/890/2 662/891/2 654/892/2 +f 653/893/2 660/894/2 652/895/2 +f 650/896/2 659/897/2 658/898/2 +f 1582/899/2 1589/900/2 1581/901/2 +f 669/902/2 671/903/2 666/904/2 +f 1583/905/2 1592/906/2 1591/907/2 +f 1578/908/2 1585/909/2 1577/910/2 +f 1580/911/2 1589/900/2 1588/912/2 +f 1577/913/2 1592/906/2 1584/914/2 +f 1580/911/2 1587/915/2 1579/916/2 +f 1582/899/2 1591/907/2 1590/917/2 +f 1578/908/2 1587/915/2 1586/918/2 +f 16/30/18 889/919/18 11/28/18 +f 15/32/19 891/920/19 13/27/19 +f 14/34/5 894/921/5 16/30/5 +f 12/36/15 892/922/15 14/34/15 +f 9/39/16 893/923/16 15/37/16 +f 10/25/3 890/924/3 12/36/3 +f 11/28/4 887/925/4 9/39/4 +f 13/27/17 888/926/17 10/25/17 +f 898/927/2 900/928/2 902/929/2 +f 906/930/1 907/931/1 904/932/1 +f 914/933/2 916/934/2 918/935/2 +f 922/936/1 923/937/1 920/938/1 +f 1531/939/1 1538/940/1 1530/941/1 +f 1533/942/1 1540/943/1 1532/944/1 +f 1535/945/1 1542/946/1 1534/947/1 +f 1529/948/1 1544/949/1 1536/950/1 +f 1529/951/1 1538/940/1 1537/952/1 +f 1531/953/1 1540/943/1 1539/954/1 +f 1534/955/1 1541/956/1 1533/957/1 +f 1535/958/1 1544/949/1 1543/959/1 +f 1602/960/2 51/961/2 52/962/2 +f 51/961/2 1601/963/2 54/964/2 +f 49/965/2 1602/960/2 52/962/2 +f 1601/963/2 1603/92/2 1605/966/2 +f 1601/963/2 53/967/2 54/964/2 +f 1603/92/2 56/968/2 1605/966/2 +f 1602/960/2 50/90/2 1603/92/2 +f 53/967/2 1605/966/2 56/968/2 +f 53/59/4 1604/58/4 54/104/4 +f 3/1/1 4/195/1 2/2/1 +f 6/4/2 8/216/2 7/5/2 +f 70/7/3 69/969/3 65/8/3 +f 65/10/3 69/115/3 72/11/3 +f 72/13/3 71/970/3 67/14/3 +f 67/16/3 71/112/3 70/17/3 +f 86/19/4 85/971/4 81/20/4 +f 20/22/5 28/54/5 27/23/5 +f 10/25/6 21/972/6 24/26/6 +f 11/28/7 17/973/7 20/29/7 +f 13/27/8 24/974/8 23/31/8 +f 16/30/9 20/975/9 19/33/9 +f 14/34/10 19/976/10 22/35/10 +f 15/37/11 23/977/11 18/38/11 +f 12/36/12 22/978/12 21/40/12 +f 9/39/13 18/979/13 17/41/13 +f 29/42/14 45/980/14 48/43/14 +f 19/24/15 27/23/15 30/45/15 +f 23/47/16 31/67/16 26/48/16 +f 22/46/3 30/45/3 29/42/3 +f 18/49/4 26/48/4 25/51/4 +f 21/50/17 29/42/17 32/44/17 +f 17/52/18 25/51/18 28/54/18 +f 24/53/19 32/44/19 31/55/19 +f 37/57/4 38/981/4 1604/58/4 +f 37/60/2 45/69/2 46/61/2 +f 25/51/20 41/982/20 44/63/20 +f 32/44/21 48/86/21 47/64/21 +f 28/54/22 44/75/22 43/65/22 +f 27/23/23 43/72/23 46/66/23 +f 31/67/24 47/83/24 42/68/24 +f 30/45/25 46/61/25 45/69/25 +f 26/48/26 42/80/26 41/70/26 +f 38/71/2 46/66/2 43/72/2 +f 35/74/2 43/65/2 44/75/2 +f 44/63/2 41/982/2 33/77/2 +f 33/79/2 41/70/2 42/80/2 +f 34/82/2 42/68/2 47/83/2 +f 39/85/2 47/64/2 48/86/2 +f 48/43/2 45/980/2 37/88/2 +f 34/93/3 50/106/3 49/94/3 +f 37/57/18 53/59/18 56/96/18 +f 33/95/17 49/94/17 52/98/17 +f 40/97/5 56/96/5 55/100/5 +f 36/99/19 52/98/19 51/102/19 +f 1604/58/16 38/981/16 35/103/16 +f 35/103/16 51/102/16 1604/58/16 +f 39/105/15 55/983/15 50/106/15 +f 58/107/5 67/16/5 66/18/5 +f 59/109/19 65/10/19 68/12/19 +f 61/111/19 70/17/19 71/112/19 +f 64/114/5 72/11/5 69/115/5 +f 61/111/3 62/113/3 64/114/3 +f 62/113/1 71/970/1 72/13/1 +f 63/116/2 69/969/2 70/7/2 +f 60/117/2 68/15/2 67/14/2 +f 57/119/1 66/9/1 65/8/1 +f 81/121/4 85/138/4 88/122/4 +f 88/124/4 87/984/4 83/125/4 +f 83/127/4 87/135/4 86/128/4 +f 74/130/19 83/127/19 82/129/19 +f 75/132/5 81/121/5 84/123/5 +f 77/134/5 86/128/5 87/135/5 +f 80/137/19 88/122/19 85/138/19 +f 77/134/4 78/136/4 80/137/4 +f 78/136/1 87/984/1 88/124/1 +f 79/139/2 85/971/2 86/19/2 +f 76/140/2 84/126/2 83/125/2 +f 73/142/1 82/21/1 81/20/1 +f 102/144/5 101/985/5 97/145/5 +f 97/147/5 101/166/5 104/148/5 +f 104/150/5 103/986/5 99/151/5 +f 103/153/5 102/987/5 98/154/5 +f 118/156/19 117/190/19 113/157/19 +f 90/159/4 99/155/4 98/154/4 +f 91/161/3 97/147/3 100/149/3 +f 93/163/3 102/987/3 103/153/3 +f 96/165/4 104/148/4 101/166/4 +f 93/163/5 94/164/5 96/165/5 +f 94/164/1 103/986/1 104/150/1 +f 95/167/2 101/985/2 102/144/2 +f 92/168/2 100/152/2 99/151/2 +f 89/170/1 98/146/1 97/145/1 +f 113/172/19 117/188/19 120/173/19 +f 120/175/19 119/988/19 115/176/19 +f 119/178/19 118/989/19 114/179/19 +f 106/181/3 115/180/3 114/179/3 +f 107/183/4 113/172/4 116/174/4 +f 109/185/4 118/989/4 119/178/4 +f 112/187/3 120/173/3 117/188/3 +f 109/185/19 110/186/19 112/187/19 +f 110/186/1 119/988/1 120/175/1 +f 109/185/2 111/189/2 117/190/2 +f 108/191/2 116/177/2 115/176/2 +f 105/193/1 114/158/1 113/157/1 +f 4/195/3 60/990/3 58/196/3 +f 2/197/19 108/991/19 106/198/19 +f 1/200/4 76/992/4 74/201/4 +f 3/203/5 92/993/5 90/204/5 +f 89/206/5 91/220/5 7/207/5 +f 7/209/4 73/219/4 75/210/4 +f 105/212/19 107/218/19 6/213/19 +f 6/4/3 57/217/3 59/215/3 +f 57/217/3 6/4/3 2/2/3 +f 107/218/19 108/991/19 2/197/19 +f 105/212/19 5/214/19 1/199/19 +f 75/210/4 76/992/4 1/200/4 +f 73/219/4 7/209/4 3/202/4 +f 91/220/5 92/993/5 3/203/5 +f 89/206/5 8/208/5 4/205/5 +f 59/215/3 60/990/3 4/195/3 +f 136/221/1 134/283/1 123/222/1 +f 129/224/1 131/233/1 121/225/1 +f 133/227/1 135/272/1 127/228/1 +f 135/230/1 129/224/1 122/231/1 +f 131/233/1 136/221/1 124/234/1 +f 132/236/1 130/241/1 125/237/1 +f 123/239/1 134/283/1 132/236/1 +f 130/241/1 133/227/1 128/242/1 +f 139/244/2 147/263/2 148/245/2 +f 137/247/2 145/257/2 146/248/2 +f 143/250/2 151/271/2 152/251/2 +f 138/253/2 146/248/2 151/254/2 +f 140/256/2 148/245/2 145/257/2 +f 141/259/2 149/266/2 150/260/2 +f 142/262/2 150/260/2 147/263/2 +f 144/265/2 152/251/2 149/266/2 +f 203/268/4 215/994/4 214/269/4 +f 135/230/16 151/254/16 146/248/16 +f 133/227/19 152/251/19 151/271/19 +f 213/273/3 216/995/3 201/274/3 +f 131/233/18 145/257/18 148/245/18 +f 216/276/8 215/994/8 203/268/8 +f 206/278/3 211/282/3 210/279/3 +f 208/281/9 212/996/9 211/282/9 +f 134/283/15 147/263/15 150/260/15 +f 214/269/27 213/273/27 202/275/27 +f 129/224/4 146/248/4 145/257/4 +f 130/241/17 149/266/17 152/251/17 +f 209/284/4 212/997/4 208/285/4 +f 136/221/5 148/245/5 147/263/5 +f 194/287/28 193/341/28 191/288/28 +f 132/236/3 150/260/3 149/266/3 +f 158/290/1 162/998/1 164/291/1 +f 155/293/1 166/999/1 168/294/1 +f 159/296/1 163/1000/1 161/297/1 +f 154/299/1 167/1001/1 165/300/1 +f 165/302/1 162/1002/1 158/290/1 +f 157/298/1 161/1003/1 167/303/1 +f 153/295/1 168/1004/1 163/304/1 +f 160/292/1 164/1005/1 166/306/1 +f 182/307/2 181/1006/2 171/308/2 +f 184/310/2 183/1007/2 169/311/2 +f 178/313/2 177/1008/2 175/314/2 +f 180/316/2 179/1009/2 173/317/2 +f 171/308/2 181/325/2 180/319/2 +f 179/320/2 178/1010/2 176/315/2 +f 177/321/2 184/1011/2 170/312/2 +f 183/323/2 182/1012/2 172/309/2 +f 155/293/18 169/311/18 172/309/18 +f 165/324/16 180/319/16 181/325/16 +f 158/290/15 171/308/15 174/318/15 +f 161/327/18 178/1010/18 179/320/18 +f 154/299/17 173/317/17 176/315/17 +f 168/329/15 184/1011/15 177/321/15 +f 153/295/4 170/312/4 169/311/4 +f 163/331/5 177/1008/5 178/313/5 +f 164/333/17 182/1012/17 183/323/17 +f 160/292/5 172/309/5 171/308/5 +f 167/335/4 179/1009/4 180/316/4 +f 156/301/3 174/318/3 173/317/3 +f 162/337/19 181/1006/19 182/307/19 +f 157/298/19 176/315/19 175/314/19 +f 166/339/3 183/1007/3 184/310/3 +f 159/305/16 175/322/16 170/312/16 +f 193/341/5 196/1013/5 192/342/5 +f 198/343/29 197/358/29 186/344/29 +f 235/346/16 247/1014/16 246/347/16 +f 196/349/12 195/1015/12 190/350/12 +f 190/350/19 195/1015/19 194/287/19 +f 200/352/13 199/1016/13 187/353/13 +f 234/355/15 245/1017/15 248/356/15 +f 210/279/30 209/284/30 207/286/30 +f 197/358/19 200/1018/19 185/359/19 +f 187/353/5 199/1016/5 198/343/5 +f 248/360/31 247/1014/31 235/346/31 +f 243/362/15 242/384/15 237/363/15 +f 244/365/32 243/362/32 238/364/32 +f 246/347/33 245/1017/33 234/355/33 +f 239/367/16 241/1019/16 244/368/16 +f 226/370/34 225/1020/34 223/371/34 +f 223/371/18 225/1020/18 228/373/18 +f 230/375/35 229/1021/35 218/376/35 +f 228/378/36 227/1022/36 222/379/36 +f 222/379/17 227/1022/17 226/370/17 +f 232/381/37 231/1023/37 219/382/37 +f 242/384/38 241/1019/38 239/367/38 +f 218/376/17 229/1021/17 232/385/17 +f 219/382/18 231/1023/18 230/375/18 +f 258/387/15 263/445/15 255/388/15 +f 263/390/5 264/446/5 253/391/5 +f 260/393/17 257/451/17 251/394/17 +f 262/396/16 259/449/16 254/397/16 +f 257/399/3 258/444/3 249/400/3 +f 264/402/18 261/447/18 250/403/18 +f 259/405/19 260/450/19 256/406/19 +f 261/408/4 262/448/4 252/409/4 +f 266/411/1 265/442/1 255/412/1 +f 270/414/1 269/417/1 250/415/1 +f 269/417/1 266/411/1 253/418/1 +f 267/420/1 268/423/1 254/421/1 +f 268/423/1 270/414/1 252/424/1 +f 271/426/1 272/429/1 251/427/1 +f 272/429/1 267/420/1 256/430/1 +f 255/432/1 265/435/1 271/426/1 +f 273/434/16 279/438/16 271/426/16 +f 278/436/3 277/443/3 269/417/3 +f 276/437/15 278/436/15 270/414/15 +f 279/438/4 280/439/4 272/429/4 +f 280/439/18 275/440/18 267/420/18 +f 275/440/5 276/437/5 268/423/5 +f 274/441/19 273/1024/19 265/442/19 +f 277/443/17 274/441/17 266/411/17 +f 257/399/2 280/439/2 279/438/2 +f 279/438/2 273/434/2 263/445/2 +f 263/390/2 273/1024/2 274/441/2 +f 264/402/2 274/441/2 277/443/2 +f 261/408/2 277/443/2 278/436/2 +f 262/396/2 278/436/2 276/437/2 +f 259/405/2 276/437/2 275/440/2 +f 260/393/2 275/440/2 280/439/2 +f 295/452/2 296/1025/2 293/453/2 +f 287/455/2 288/1026/2 285/456/2 +f 284/458/3 288/1027/3 287/459/3 +f 281/461/4 286/457/4 285/456/4 +f 283/462/5 285/456/5 288/463/5 +f 282/460/19 287/459/19 286/457/19 +f 292/465/4 296/1028/4 295/466/4 +f 289/468/3 294/454/3 293/453/3 +f 291/469/19 293/453/19 296/470/19 +f 290/467/5 295/466/5 294/454/5 +f 311/472/2 312/1029/2 309/473/2 +f 302/475/2 303/1030/2 304/476/2 +f 300/478/5 304/1031/5 303/479/5 +f 297/481/19 302/475/19 301/477/19 +f 299/482/4 301/477/4 304/483/4 +f 298/480/3 303/479/3 302/475/3 +f 308/485/19 312/1032/19 311/486/19 +f 305/488/5 310/474/5 309/473/5 +f 307/489/3 309/473/3 312/490/3 +f 306/487/4 311/486/4 310/474/4 +f 327/492/2 328/1033/2 325/493/2 +f 319/495/2 320/1034/2 317/496/2 +f 316/498/15 320/1035/15 319/499/15 +f 313/501/16 318/497/16 317/496/16 +f 315/502/18 317/496/18 320/503/18 +f 314/500/17 319/499/17 318/497/17 +f 324/505/16 328/1036/16 327/506/16 +f 321/508/15 326/494/15 325/493/15 +f 323/509/17 325/493/17 328/510/17 +f 322/507/18 327/506/18 326/494/18 +f 343/512/2 344/1037/2 341/513/2 +f 334/515/2 335/1038/2 336/516/2 +f 332/518/18 336/1039/18 335/519/18 +f 329/521/17 334/515/17 333/517/17 +f 331/522/16 333/517/16 336/523/16 +f 330/520/15 335/519/15 334/515/15 +f 340/525/17 344/1040/17 343/526/17 +f 337/528/18 342/514/18 341/513/18 +f 339/529/15 341/513/15 344/530/15 +f 338/527/16 343/526/16 342/514/16 +f 351/532/2 352/1041/2 349/533/2 +f 348/535/39 352/1042/39 351/536/39 +f 345/538/40 350/534/40 349/533/40 +f 347/539/41 349/533/41 352/540/41 +f 346/537/42 351/536/42 350/534/42 +f 359/542/2 360/1043/2 357/543/2 +f 356/545/40 360/1044/40 359/546/40 +f 353/548/39 358/544/39 357/543/39 +f 355/549/42 357/543/42 360/550/42 +f 354/547/41 359/546/41 358/544/41 +f 367/552/2 368/1045/2 365/553/2 +f 364/555/41 368/1046/41 367/556/41 +f 361/558/42 366/554/42 365/553/42 +f 363/559/40 365/553/40 368/560/40 +f 362/557/39 367/556/39 366/554/39 +f 375/562/2 376/1047/2 373/563/2 +f 372/565/42 376/1048/42 375/566/42 +f 369/568/41 374/564/41 373/563/41 +f 371/569/39 373/563/39 376/570/39 +f 370/567/40 375/566/40 374/564/40 +f 382/572/2 383/1049/2 384/573/2 +f 380/575/43 384/1050/43 383/576/43 +f 377/578/44 382/572/44 381/574/44 +f 379/579/45 381/574/45 384/580/45 +f 378/577/46 383/576/46 382/572/46 +f 390/582/2 391/1051/2 392/583/2 +f 388/585/44 392/1052/44 391/586/44 +f 385/588/43 390/582/43 389/584/43 +f 387/589/46 389/584/46 392/590/46 +f 386/587/45 391/586/45 390/582/45 +f 398/592/2 399/1053/2 400/593/2 +f 396/595/45 400/1054/45 399/596/45 +f 393/598/46 398/592/46 397/594/46 +f 395/599/44 397/594/44 400/600/44 +f 394/597/43 399/596/43 398/592/43 +f 407/602/2 408/1055/2 405/603/2 +f 404/605/46 408/1056/46 407/606/46 +f 401/608/45 406/604/45 405/603/45 +f 403/609/43 405/603/43 408/610/43 +f 402/607/44 407/606/44 406/604/44 +f 410/612/4 411/615/4 409/613/4 +f 411/615/47 414/1057/47 413/616/47 +f 416/617/3 417/620/3 415/618/3 +f 417/620/48 420/1058/48 419/621/48 +f 422/622/19 423/625/19 421/623/19 +f 423/625/49 426/1059/49 425/626/49 +f 428/627/5 429/630/5 427/628/5 +f 429/630/50 432/1060/50 431/631/50 +f 434/632/16 435/635/16 433/633/16 +f 435/635/51 438/1061/51 437/636/51 +f 440/637/15 441/640/15 439/638/15 +f 441/640/52 444/1062/52 443/641/52 +f 446/642/17 447/645/17 445/643/17 +f 447/645/53 450/1063/53 449/646/53 +f 452/647/18 453/650/18 451/648/18 +f 453/650/54 456/1064/54 455/651/54 +f 472/652/1 470/701/1 459/653/1 +f 465/655/1 467/664/1 457/656/1 +f 469/658/1 471/700/1 463/659/1 +f 471/661/1 465/655/1 458/662/1 +f 467/664/1 472/652/1 460/665/1 +f 468/667/1 466/672/1 461/668/1 +f 459/670/1 470/701/1 468/667/1 +f 466/672/1 469/658/1 464/673/1 +f 475/675/2 483/694/2 484/676/2 +f 473/678/2 481/688/2 482/679/2 +f 479/681/2 487/699/2 488/682/2 +f 474/684/2 482/679/2 487/685/2 +f 476/687/2 484/676/2 481/688/2 +f 477/690/2 485/697/2 486/691/2 +f 478/693/2 486/691/2 483/694/2 +f 480/696/2 488/682/2 485/697/2 +f 471/661/16 487/685/16 482/679/16 +f 469/658/19 488/682/19 487/699/19 +f 467/664/18 481/688/18 484/676/18 +f 470/701/15 483/694/15 486/691/15 +f 465/655/4 482/679/4 481/688/4 +f 466/672/17 485/697/17 488/682/17 +f 472/652/5 484/676/5 483/694/5 +f 468/667/3 486/691/3 485/697/3 +f 509/702/3 491/713/3 492/703/3 +f 505/705/5 493/714/5 494/706/5 +f 511/704/17 492/703/17 489/708/17 +f 512/710/4 495/718/4 496/711/4 +f 507/707/15 494/706/15 491/713/15 +f 510/712/18 496/711/18 493/714/18 +f 508/709/19 489/708/19 490/715/19 +f 506/717/16 490/728/16 495/718/16 +f 497/719/2 489/708/2 492/703/2 +f 499/721/2 491/713/2 494/706/2 +f 500/723/2 492/703/2 491/713/2 +f 501/725/2 493/714/2 496/711/2 +f 503/727/2 495/718/2 490/728/2 +f 498/730/2 490/715/2 489/708/2 +f 504/732/2 496/711/2 495/718/2 +f 502/734/2 494/706/2 493/714/2 +f 511/704/1 508/709/1 513/736/1 +f 518/738/1 507/707/1 509/702/1 +f 509/702/1 511/704/1 516/740/1 +f 510/712/1 505/705/1 517/742/1 +f 506/717/1 512/710/1 519/744/1 +f 508/709/1 506/716/1 514/746/1 +f 512/710/1 510/712/1 520/748/1 +f 505/705/1 507/707/1 518/750/1 +f 538/752/18 539/768/18 549/753/18 +f 540/755/17 537/1065/17 552/756/17 +f 527/758/38 528/773/38 530/759/38 +f 537/761/37 538/752/37 550/754/37 +f 542/763/17 543/772/17 548/764/17 +f 541/766/36 542/763/36 547/765/36 +f 539/768/35 540/755/35 551/757/35 +f 544/769/18 541/1066/18 545/770/18 +f 543/772/34 544/769/34 546/771/34 +f 528/773/16 525/1067/16 529/774/16 +f 523/775/33 524/794/33 535/776/33 +f 525/778/32 526/781/32 531/779/32 +f 526/781/15 527/758/15 532/760/15 +f 521/782/31 522/803/31 534/783/31 +f 570/785/5 571/804/5 581/786/5 +f 572/788/19 569/1068/19 584/789/19 +f 559/791/30 560/860/30 562/792/30 +f 524/794/15 521/1069/15 536/795/15 +f 569/796/13 570/785/13 582/787/13 +f 574/798/19 575/859/19 580/799/19 +f 573/801/12 574/798/12 579/800/12 +f 522/803/16 523/775/16 533/777/16 +f 571/804/29 572/788/29 583/790/29 +f 576/805/5 573/1070/5 577/806/5 +f 610/808/16 594/849/16 599/809/16 +f 603/811/3 586/1071/3 585/812/3 +f 612/814/19 593/840/19 594/815/19 +f 607/817/19 588/1072/19 587/818/19 +f 613/820/3 595/844/3 596/821/3 +f 602/823/4 590/1073/4 589/824/4 +f 609/826/5 597/848/5 598/827/5 +f 605/829/17 587/1074/17 586/830/17 +f 606/832/5 592/1075/5 591/833/5 +f 616/810/4 599/809/4 600/835/4 +f 601/837/15 585/1076/15 592/838/15 +f 615/822/17 596/821/17 593/840/17 +f 608/841/18 591/1077/18 590/842/18 +f 611/828/15 598/827/15 595/844/15 +f 604/845/16 589/850/16 588/846/16 +f 614/836/18 600/835/18 597/848/18 +f 586/830/2 587/1074/2 597/848/2 +f 592/838/2 585/1076/2 599/809/2 +f 590/842/2 591/1077/2 593/840/2 +f 598/827/2 588/846/2 589/850/2 +f 589/824/2 590/1073/2 596/821/2 +f 591/833/2 592/1075/2 594/815/2 +f 585/812/2 586/1071/2 600/835/2 +f 587/818/2 588/1072/2 598/827/2 +f 609/826/1 605/1078/1 603/851/1 +f 616/810/1 601/1079/1 606/852/1 +f 612/814/1 608/1080/1 602/853/1 +f 604/854/1 607/1081/1 611/828/1 +f 615/822/1 602/1082/1 604/855/1 +f 610/816/1 606/1083/1 608/856/1 +f 614/836/1 603/1084/1 601/857/1 +f 611/828/1 607/1085/1 605/858/1 +f 575/859/28 576/805/28 578/807/28 +f 560/860/4 557/1086/4 561/861/4 +f 555/862/27 556/872/27 567/863/27 +f 557/865/9 558/868/9 563/866/9 +f 558/868/3 559/791/3 564/793/3 +f 553/869/8 554/874/8 566/870/8 +f 556/872/3 553/1087/3 568/873/3 +f 554/874/4 555/862/4 565/864/4 +f 655/875/2 656/1088/2 664/876/2 +f 654/878/2 662/1089/2 661/879/2 +f 652/881/2 660/1090/2 659/882/2 +f 650/884/2 658/1091/2 657/885/2 +f 656/887/2 649/1092/2 657/888/2 +f 655/890/2 663/1093/2 662/891/2 +f 653/893/2 661/1094/2 660/894/2 +f 650/896/2 651/1095/2 659/897/2 +f 1582/899/2 1590/917/2 1589/900/2 +f 666/904/2 665/1096/2 669/902/2 +f 665/1096/2 667/1097/2 669/902/2 +f 667/1097/2 668/1098/2 669/902/2 +f 669/902/2 670/1099/2 671/903/2 +f 671/903/2 672/1100/2 666/904/2 +f 1583/905/2 1584/914/2 1592/906/2 +f 1578/908/2 1586/918/2 1585/909/2 +f 1580/911/2 1581/901/2 1589/900/2 +f 1577/913/2 1585/1101/2 1592/906/2 +f 1580/911/2 1588/912/2 1587/915/2 +f 1582/899/2 1583/905/2 1591/907/2 +f 1578/908/2 1579/916/2 1587/915/2 +f 16/30/18 894/921/18 889/919/18 +f 15/32/19 893/1102/19 891/920/19 +f 14/34/5 892/922/5 894/921/5 +f 12/36/15 890/924/15 892/922/15 +f 9/39/16 887/925/16 893/923/16 +f 10/25/3 888/926/3 890/924/3 +f 11/28/4 889/919/4 887/925/4 +f 13/27/17 891/920/17 888/926/17 +f 898/927/2 899/1103/2 900/928/2 +f 900/928/2 901/1104/2 902/929/2 +f 902/929/2 895/1105/2 898/927/2 +f 895/1105/2 896/1106/2 898/927/2 +f 896/1106/2 897/1107/2 898/927/2 +f 904/932/1 903/1108/1 909/1109/1 +f 909/1109/1 908/1110/1 904/932/1 +f 908/1110/1 910/1111/1 904/932/1 +f 910/1111/1 905/1112/1 904/932/1 +f 905/1112/1 906/930/1 904/932/1 +f 914/933/2 915/1113/2 916/934/2 +f 916/934/2 917/1114/2 918/935/2 +f 918/935/2 911/1115/2 914/933/2 +f 911/1115/2 912/1116/2 914/933/2 +f 912/1116/2 913/1117/2 914/933/2 +f 920/938/1 919/1118/1 925/1119/1 +f 925/1119/1 924/1120/1 920/938/1 +f 924/1120/1 926/1121/1 920/938/1 +f 926/1121/1 921/1122/1 920/938/1 +f 921/1122/1 922/936/1 920/938/1 +f 1531/939/1 1539/954/1 1538/940/1 +f 1533/942/1 1541/956/1 1540/943/1 +f 1535/945/1 1543/959/1 1542/946/1 +f 1529/948/1 1537/952/1 1544/949/1 +f 1529/951/1 1530/1123/1 1538/940/1 +f 1531/953/1 1532/1124/1 1540/943/1 +f 1534/955/1 1542/1125/1 1541/956/1 +f 1535/958/1 1536/1126/1 1544/949/1 +f 1602/960/2 1601/963/2 51/961/2 +f 1601/963/2 1602/960/2 1603/92/2 +f 1601/963/2 1605/966/2 53/967/2 +f 1603/92/2 55/91/2 56/968/2 +f 1602/960/2 49/965/2 50/90/2 +s 1 +f 631/1127/3 622/1128/17 623/1129/3 +f 629/1130/19 620/1131/16 621/1132/19 +f 627/1133/4 618/1134/18 619/1135/4 +f 632/1136/15 623/1129/3 624/1137/15 +f 630/1138/17 621/1132/19 622/1139/17 +f 628/1140/16 619/1135/4 620/1131/16 +f 626/1141/18 617/1142/5 618/1134/18 +f 625/1143/5 624/1137/15 617/1142/5 +f 639/1144/3 646/1145/17 638/1146/17 +f 637/1147/19 644/1148/16 636/1149/16 +f 635/1150/4 642/1151/18 634/1152/18 +f 640/1153/15 647/1154/3 639/1144/3 +f 638/1155/17 645/1156/19 637/1147/19 +f 636/1149/16 643/1157/4 635/1150/4 +f 634/1152/18 641/1158/5 633/1159/5 +f 633/1159/5 648/1160/15 640/1153/15 +f 1596/1161/2 1600/1162/2 1599/1163/2 +f 706/1164/55 676/1165/16 677/1166/19 +f 704/1167/56 674/1168/18 675/1169/4 +f 686/1170/57 730/1171/58 685/1172/13 +f 707/1173/59 677/1166/19 678/1174/17 +f 705/1175/60 675/1176/4 676/1165/16 +f 673/1177/5 708/1178/61 680/1179/15 +f 753/1180/62 766/1181/63 754/1182/64 +f 714/1183/28 754/1182/64 766/1181/63 +f 749/1184/65 714/1185/28 765/1186/66 +f 764/1187/67 749/1184/65 765/1186/66 +f 764/1187/67 751/1188/68 750/1189/69 +f 763/1190/70 737/1191/12 751/1188/68 +f 737/1191/12 768/1192/71 752/1193/72 +f 710/1194/73 673/1177/5 674/1168/18 +f 694/1195/74 719/1196/75 693/1197/29 +f 724/1198/76 694/1195/74 695/1199/77 +f 695/1199/77 723/1200/78 724/1198/76 +f 768/1192/71 753/1180/62 752/1193/72 +f 723/1201/78 685/1202/13 730/1203/58 +f 691/1204/79 722/1205/80 690/1206/81 +f 720/1207/82 691/1204/79 692/1208/83 +f 692/1208/83 719/1196/75 720/1207/82 +f 689/1209/84 698/1210/85 690/1206/81 +f 690/1206/81 699/1211/86 691/1212/79 +f 691/1212/79 700/1213/87 692/1214/83 +f 694/1215/74 702/1216/88 695/1217/77 +f 695/1217/77 703/1218/89 696/1219/90 +f 696/1219/90 697/1220/13 689/1221/84 +f 704/1222/56 698/1210/85 697/1223/13 +f 698/1210/85 706/1224/55 699/1225/86 +f 699/1225/86 707/1226/59 700/1227/87 +f 708/1228/61 702/1229/88 701/1230/91 +f 702/1229/88 710/1194/73 703/1218/89 +f 710/1194/73 697/1220/13 703/1218/89 +f 768/1192/71 755/1231/12 761/1232/92 +f 767/1233/93 761/1232/92 760/1234/94 +f 766/1235/63 760/1234/94 759/1236/95 +f 714/1237/28 758/1238/96 765/1239/66 +f 759/1236/95 714/1240/28 766/1235/63 +f 757/1241/97 765/1239/66 758/1238/96 +f 756/1242/98 764/1243/67 757/1241/97 +f 755/1231/12 763/1190/70 756/1242/98 +f 711/1244/99 755/1231/12 718/1245/100 +f 712/1246/101 761/1232/92 711/1244/99 +f 713/1247/102 760/1248/94 712/1246/101 +f 713/1247/102 714/1249/28 759/1250/95 +f 758/1251/96 714/1252/28 715/1253/103 +f 757/1254/97 715/1253/103 716/1255/104 +f 756/1242/98 716/1255/104 717/1256/105 +f 718/1245/100 756/1242/98 717/1256/105 +f 719/1196/75 727/1257/106 720/1207/82 +f 727/1257/106 721/1258/107 720/1207/82 +f 721/1258/107 729/1259/108 722/1260/80 +f 723/1201/78 731/1261/109 724/1262/76 +f 731/1261/109 725/1263/110 724/1262/76 +f 725/1263/110 726/1264/29 719/1196/75 +f 681/1265/111 727/1257/106 726/1264/29 +f 727/1257/106 683/1266/112 728/1267/113 +f 728/1267/113 684/1268/114 729/1269/108 +f 730/1171/58 687/1270/115 731/1271/109 +f 687/1270/115 732/1272/116 731/1271/109 +f 732/1272/116 681/1265/111 726/1264/29 +f 733/1273/117 742/1274/118 734/1275/119 +f 734/1275/119 743/1276/120 735/1277/121 +f 735/1277/121 744/1278/122 736/1279/123 +f 738/1280/124 737/1281/12 745/1282/125 +f 737/1281/12 736/1279/123 744/1278/122 +f 745/1282/125 739/1283/126 738/1280/124 +f 739/1283/126 747/1284/127 740/1285/128 +f 747/1284/127 733/1286/117 740/1285/128 +f 748/1287/129 742/1274/118 741/1288/28 +f 749/1184/65 743/1289/120 742/1274/118 +f 750/1290/69 744/1291/122 743/1289/120 +f 751/1292/68 737/1293/12 744/1291/122 +f 752/1294/72 745/1295/125 737/1293/12 +f 752/1294/72 746/1296/130 745/1295/125 +f 746/1296/130 754/1182/64 747/1284/127 +f 747/1284/127 748/1297/129 741/1298/28 +f 687/1299/115 711/1244/99 688/1300/131 +f 686/1301/57 712/1302/101 687/1299/115 +f 685/1303/13 713/1304/102 686/1301/57 +f 684/1305/114 714/1306/28 685/1307/13 +f 684/1305/114 716/1308/104 715/1309/103 +f 682/1310/132 716/1308/104 683/1311/112 +f 681/1265/111 717/1256/105 682/1310/132 +f 711/1244/99 681/1265/111 688/1300/131 +f 817/1312/108 772/1313/114 773/1314/13 +f 841/1315/62 854/1316/63 842/1317/64 +f 802/1318/28 842/1317/64 854/1316/63 +f 837/1319/65 802/1320/28 853/1321/66 +f 852/1322/67 837/1319/65 853/1321/66 +f 852/1322/67 839/1323/68 838/1324/69 +f 782/1325/74 807/1326/75 781/1327/29 +f 812/1328/76 782/1325/74 783/1329/77 +f 783/1329/77 811/1330/78 812/1328/76 +f 856/1331/71 841/1315/62 840/1332/72 +f 773/1333/13 810/1334/80 817/1335/108 +f 779/1336/79 810/1337/80 778/1338/81 +f 808/1339/82 779/1336/79 780/1340/83 +f 780/1340/83 807/1326/75 808/1339/82 +f 785/1341/13 778/1338/81 777/1342/84 +f 778/1338/81 787/1343/86 779/1344/79 +f 779/1344/79 788/1345/87 780/1346/83 +f 782/1347/74 781/1348/29 789/1349/91 +f 796/1350/61 789/1351/91 781/1352/29 +f 789/1349/91 783/1353/77 782/1347/74 +f 783/1353/77 791/1354/89 784/1355/90 +f 784/1355/90 785/1356/13 777/1357/84 +f 792/1358/56 786/1359/85 785/1341/13 +f 786/1359/85 794/1360/55 787/1361/86 +f 794/1360/55 788/1362/87 787/1361/86 +f 788/1362/87 795/1363/59 781/1352/29 +f 738/1364/124 781/1365/29 737/1366/12 +f 796/1350/61 790/1367/88 789/1351/91 +f 790/1367/88 798/1368/73 791/1354/89 +f 791/1354/89 792/1369/56 785/1356/13 +f 849/1370/92 850/1371/133 843/1372/12 +f 848/1373/94 856/1331/71 849/1370/92 +f 847/1374/95 855/1375/93 848/1373/94 +f 802/1376/28 846/1377/96 853/1378/66 +f 847/1374/95 802/1379/28 854/1380/63 +f 845/1381/97 853/1378/66 846/1377/96 +f 844/1382/98 852/1383/67 845/1381/97 +f 850/1371/133 844/1382/98 843/1372/12 +f 849/1370/92 806/1384/100 799/1385/99 +f 848/1386/94 799/1385/99 800/1387/101 +f 801/1388/102 848/1386/94 800/1387/101 +f 801/1388/102 802/1389/28 847/1390/95 +f 846/1391/96 802/1392/28 803/1393/103 +f 845/1394/97 803/1393/103 804/1395/104 +f 844/1382/98 804/1395/104 805/1396/105 +f 806/1384/100 844/1382/98 805/1396/105 +f 807/1326/75 815/1397/106 808/1339/82 +f 815/1397/106 809/1398/107 808/1339/82 +f 809/1398/107 817/1335/108 810/1334/80 +f 818/1399/58 773/1400/13 774/1401/57 +f 818/1402/58 812/1403/76 811/1404/78 +f 819/1405/109 813/1406/110 812/1403/76 +f 820/1407/116 807/1326/75 813/1406/110 +f 769/1408/111 815/1397/106 814/1409/29 +f 815/1397/106 771/1410/112 816/1411/113 +f 816/1411/113 772/1313/114 817/1312/108 +f 818/1402/58 811/1404/78 773/1412/13 +f 774/1401/57 819/1413/109 818/1399/58 +f 819/1413/109 776/1414/131 820/1407/116 +f 820/1407/116 769/1408/111 814/1409/29 +f 821/1415/117 830/1416/118 822/1417/119 +f 830/1416/118 823/1418/121 822/1417/119 +f 823/1418/121 832/1419/122 824/1420/123 +f 825/1421/12 824/1420/123 832/1419/122 +f 826/1422/124 834/1423/130 827/1424/126 +f 834/1423/130 828/1425/128 827/1424/126 +f 835/1426/127 821/1427/117 828/1425/128 +f 836/1428/129 830/1416/118 829/1429/28 +f 837/1319/65 831/1430/120 830/1416/118 +f 838/1431/69 832/1432/122 831/1430/120 +f 833/1433/125 841/1434/62 834/1435/130 +f 834/1435/130 842/1317/64 835/1426/127 +f 842/1317/64 829/1436/28 835/1426/127 +f 775/1437/115 799/1385/99 776/1414/131 +f 774/1438/57 800/1439/101 775/1437/115 +f 773/1440/13 801/1441/102 774/1438/57 +f 772/1442/114 802/1443/28 773/1444/13 +f 772/1442/114 804/1445/104 803/1446/103 +f 770/1447/132 804/1445/104 771/1448/112 +f 769/1408/111 805/1396/105 770/1447/132 +f 799/1385/99 769/1408/111 776/1414/131 +f 878/1449/71 865/1450/12 871/1451/92 +f 877/1452/93 871/1451/92 870/1453/94 +f 869/1454/95 877/1452/93 870/1453/94 +f 883/1455/1 876/1456/63 860/1457/28 +f 875/1458/66 883/1459/1 860/1460/28 +f 874/1461/67 868/1462/96 867/1463/97 +f 873/1464/70 867/1463/97 866/1465/98 +f 865/1450/12 873/1464/70 866/1465/98 +f 871/1451/92 864/1466/100 857/1467/99 +f 870/1468/94 857/1467/99 858/1469/101 +f 859/1470/102 870/1468/94 858/1469/101 +f 859/1470/102 860/1471/28 869/1472/95 +f 868/1473/96 860/1474/28 861/1475/103 +f 867/1476/97 861/1475/103 862/1477/104 +f 866/1465/98 862/1477/104 863/1478/105 +f 864/1466/100 866/1465/98 863/1478/105 +f 823/1479/121 861/1480/103 822/1417/119 +f 822/1417/119 860/1481/28 821/1415/117 +f 821/1427/117 859/1482/102 828/1425/128 +f 828/1425/128 858/1483/101 827/1484/126 +f 827/1484/126 857/1467/99 826/1485/124 +f 857/1467/99 825/1486/12 826/1485/124 +f 825/1486/12 863/1478/105 824/1487/123 +f 824/1487/123 862/1488/104 823/1479/121 +f 873/1464/70 881/1489/19 874/1490/67 +f 877/1491/93 886/1492/9 878/1449/71 +f 874/1490/67 882/1493/30 875/1458/66 +f 878/1449/71 879/1494/2 872/1495/133 +f 872/1495/133 880/1496/8 873/1464/70 +f 869/1454/95 860/1497/28 876/1498/63 +f 860/1499/28 868/1462/96 875/1500/66 +f 876/1456/63 885/1501/5 877/1491/93 +f 794/1502/55 734/1275/119 735/1503/121 +f 793/1504/60 733/1273/117 734/1275/119 +f 733/1286/117 798/1505/73 740/1285/128 +f 798/1505/73 739/1506/126 740/1285/128 +f 797/1507/134 738/1364/124 739/1506/126 +f 781/1365/29 736/1508/123 737/1366/12 +f 781/1348/29 780/1346/83 788/1345/87 +f 795/1509/59 735/1503/121 736/1508/123 +f 1545/1510/135 1560/1511/136 1552/1512/136 +f 1552/1512/136 1559/1513/137 1551/1514/137 +f 1551/1514/137 1558/1515/138 1550/1516/138 +f 1550/1517/138 1557/1518/139 1549/1519/139 +f 1549/1519/139 1556/1520/140 1548/1521/140 +f 1548/1521/140 1555/1522/141 1547/1523/141 +f 1546/1524/142 1555/1525/141 1554/1526/142 +f 1546/1524/142 1553/1527/135 1545/1510/135 +f 935/1528/28 928/1529/119 927/1530/117 +f 928/1529/119 937/1531/120 929/1532/121 +f 937/1531/120 930/1533/123 929/1532/121 +f 932/1534/124 931/1535/12 939/1536/125 +f 931/1535/12 930/1533/123 938/1537/122 +f 932/1538/124 940/1539/130 933/1540/126 +f 940/1539/130 934/1541/128 933/1540/126 +f 941/1542/127 927/1530/117 934/1541/128 +f 935/1528/28 943/1543/65 936/1544/118 +f 943/1543/65 937/1545/120 936/1544/118 +f 944/1546/69 938/1547/122 937/1545/120 +f 938/1547/122 945/1548/68 931/1549/12 +f 939/1550/125 947/1551/62 940/1552/130 +f 940/1552/130 948/1553/64 941/1542/127 +f 941/1542/127 942/1554/129 935/1528/28 +f 954/1555/143 998/1556/144 953/1557/36 +f 1021/1558/145 1034/1559/146 1022/1560/147 +f 1034/1559/146 1016/1561/148 1022/1560/147 +f 1016/1562/148 1033/1563/149 1017/1564/150 +f 1032/1565/151 1017/1564/150 1033/1563/149 +f 1032/1565/151 1019/1566/152 1018/1567/153 +f 1031/1568/154 1005/1569/37 1019/1566/152 +f 1005/1569/37 1036/1570/155 1020/1571/156 +f 962/1572/157 987/1573/158 961/1574/34 +f 963/1575/159 993/1576/160 962/1572/157 +f 963/1575/159 991/1577/161 992/1578/162 +f 1036/1570/155 1021/1558/145 1020/1571/156 +f 997/1579/163 952/1580/164 953/1581/36 +f 958/1582/165 989/1583/166 990/1584/167 +f 960/1585/168 989/1583/166 959/1586/169 +f 960/1585/168 987/1573/158 988/1587/170 +f 957/1588/171 966/1589/172 958/1582/165 +f 966/1589/172 959/1590/169 958/1582/165 +f 959/1590/169 968/1591/173 960/1592/168 +f 962/1593/157 961/1594/34 969/1595/174 +f 961/1594/34 960/1592/168 968/1591/173 +f 962/1593/157 970/1596/175 963/1597/159 +f 970/1596/175 964/1598/176 963/1597/159 +f 971/1599/177 957/1600/171 964/1598/176 +f 965/1601/36 973/1602/178 966/1589/172 +f 966/1589/172 974/1603/179 967/1604/180 +f 967/1604/180 975/1605/181 968/1606/173 +f 976/1607/182 969/1608/174 961/1609/34 +f 929/1610/121 961/1611/34 928/1529/119 +f 969/1608/174 977/1612/183 970/1613/175 +f 977/1612/183 971/1599/177 970/1613/175 +f 971/1599/177 972/1614/184 965/1615/36 +f 1029/1616/185 1030/1617/186 1023/1618/37 +f 1028/1619/187 1036/1570/155 1029/1616/185 +f 1027/1620/188 1035/1621/189 1028/1619/187 +f 1026/1622/190 982/1623/35 983/1624/191 +f 982/1625/35 1026/1626/190 1033/1627/149 +f 1032/1628/151 1026/1626/190 1025/1629/192 +f 1031/1568/154 1025/1629/192 1024/1630/193 +f 1023/1618/37 1031/1568/154 1024/1630/193 +f 979/1631/194 1023/1618/37 986/1632/195 +f 1028/1633/187 979/1631/194 980/1634/196 +f 981/1635/197 1028/1633/187 980/1634/196 +f 981/1635/197 982/1636/35 1027/1637/188 +f 1034/1638/146 1027/1620/188 982/1639/35 +f 984/1640/198 1026/1622/190 983/1624/191 +f 985/1641/199 1025/1642/192 984/1640/198 +f 986/1632/195 1024/1630/193 985/1641/199 +f 987/1573/158 995/1643/200 988/1587/170 +f 988/1587/170 996/1644/201 989/1645/166 +f 989/1645/166 997/1646/163 990/1647/167 +f 964/1598/176 953/1648/36 991/1577/161 +f 953/1649/36 990/1647/167 997/1646/163 +f 998/1650/144 992/1651/162 991/1652/161 +f 999/1653/202 993/1576/160 992/1651/162 +f 993/1576/160 994/1654/34 987/1573/158 +f 949/1655/203 995/1643/200 994/1654/34 +f 995/1643/200 951/1656/204 996/1657/201 +f 951/1656/204 997/1579/163 996/1657/201 +f 990/1584/167 957/1588/171 958/1582/165 +f 998/1650/144 991/1652/161 953/1658/36 +f 998/1556/144 955/1659/205 999/1660/202 +f 955/1659/205 1000/1661/206 999/1660/202 +f 1000/1661/206 949/1655/203 994/1654/34 +f 1009/1662/35 1002/1663/207 1001/1664/208 +f 1010/1665/209 1003/1666/210 1002/1663/207 +f 1011/1667/211 1004/1668/212 1003/1666/210 +f 1020/1669/156 1013/1670/213 1005/1671/37 +f 1006/1672/214 1005/1673/37 1013/1674/213 +f 1013/1674/213 1007/1675/215 1006/1672/214 +f 1007/1675/215 1015/1676/216 1008/1677/217 +f 1015/1676/216 1001/1678/208 1008/1677/217 +f 1016/1562/148 1010/1665/209 1009/1662/35 +f 1017/1564/150 1011/1679/211 1010/1665/209 +f 1018/1680/153 1012/1681/218 1011/1679/211 +f 1012/1681/218 1019/1682/152 1005/1671/37 +f 1005/1673/37 1004/1668/212 1012/1683/218 +f 1020/1669/156 1014/1684/219 1013/1670/213 +f 1021/1685/145 1015/1676/216 1014/1684/219 +f 1015/1676/216 1016/1561/148 1009/1686/35 +f 955/1687/205 979/1631/194 956/1688/220 +f 954/1689/143 980/1690/196 955/1687/205 +f 953/1691/36 981/1692/197 954/1689/143 +f 952/1693/164 982/1694/35 953/1695/36 +f 952/1693/164 984/1696/198 983/1697/191 +f 950/1698/221 984/1696/198 951/1699/204 +f 949/1655/203 985/1641/199 950/1698/221 +f 979/1631/194 949/1655/203 956/1688/220 +f 973/1602/178 932/1700/124 933/1701/126 +f 932/1702/124 978/1703/222 931/1704/12 +f 978/1703/222 930/1705/123 931/1704/12 +f 977/1706/183 929/1610/121 930/1705/123 +f 961/1611/34 927/1530/117 928/1529/119 +f 968/1606/173 975/1605/181 961/1609/34 +f 975/1707/181 934/1541/128 927/1530/117 +f 974/1708/179 933/1701/126 934/1541/128 +f 947/1709/62 1043/1710/27 948/1553/64 +f 1005/1711/37 1048/1712/4 1004/1713/212 +f 942/1554/129 1039/1714/30 943/1543/65 +f 943/1543/65 1040/1715/19 944/1716/69 +f 946/1717/72 1044/1718/5 947/1709/62 +f 944/1716/69 1037/1719/8 945/1720/68 +f 948/1553/64 1042/1721/1 942/1554/129 +f 946/1722/72 939/1723/125 931/1549/12 +f 1002/1663/207 1045/1724/15 1001/1664/208 +f 1001/1678/208 1052/1725/3 1008/1677/217 +f 1006/1726/214 1049/1727/16 1005/1711/37 +f 1003/1728/210 1046/1729/5 1002/1663/207 +f 1008/1677/217 1051/1730/17 1007/1731/215 +f 1004/1713/212 1047/1732/18 1003/1728/210 +f 1007/1731/215 1050/1733/19 1006/1726/214 +f 1060/1734/4 1065/1735/18 1059/1736/18 +f 1058/1737/5 1061/1738/15 1057/1739/15 +f 1054/1740/19 1066/1741/17 1068/1742/19 +f 1059/1736/18 1062/1743/5 1058/1737/5 +f 1056/1744/3 1066/1741/17 1055/1745/17 +f 1053/1746/16 1064/1747/4 1060/1734/4 +f 1057/1739/15 1067/1748/3 1056/1744/3 +f 1053/1749/16 1068/1742/19 1063/1750/16 +f 694/1215/74 693/1751/29 701/1752/91 +f 708/1228/61 701/1230/91 693/1753/29 +f 693/1751/29 692/1214/83 700/1213/87 +f 700/1227/87 707/1226/59 693/1753/29 +f 693/1754/29 678/1174/17 679/1755/3 +f 680/1179/15 693/1754/29 679/1755/3 +f 729/1269/108 684/1268/114 685/1756/13 +f 729/1259/108 685/1757/13 722/1260/80 +f 685/1758/13 690/1206/81 722/1205/80 +f 696/1219/90 685/1759/13 723/1200/78 +f 784/1355/90 773/1760/13 811/1330/78 +f 773/1761/13 778/1338/81 810/1337/80 +f 832/1432/122 839/1762/68 825/1763/12 +f 826/1422/124 825/1421/12 833/1764/125 +f 833/1433/125 825/1763/12 840/1765/72 +f 825/1766/12 856/1331/71 840/1332/72 +f 851/1767/70 825/1766/12 839/1323/68 +f 931/1768/12 1037/1719/8 1038/1769/2 +f 931/1768/12 1041/1770/9 946/1771/72 +f 1102/1772/55 1072/1773/16 1073/1774/19 +f 1100/1775/56 1070/1776/18 1071/1777/4 +f 1082/1778/57 1126/1779/58 1081/1780/13 +f 1103/1781/59 1073/1774/19 1074/1782/17 +f 1101/1783/60 1071/1784/4 1072/1773/16 +f 1069/1785/5 1104/1786/61 1076/1787/15 +f 1149/1788/62 1162/1789/63 1150/1790/64 +f 1110/1791/28 1150/1790/64 1162/1789/63 +f 1145/1792/65 1110/1793/28 1161/1794/66 +f 1160/1795/67 1145/1792/65 1161/1794/66 +f 1160/1795/67 1147/1796/68 1146/1797/69 +f 1159/1798/70 1133/1799/12 1147/1796/68 +f 1133/1799/12 1164/1800/71 1148/1801/72 +f 1106/1802/73 1069/1785/5 1070/1776/18 +f 1090/1803/74 1115/1804/75 1089/1805/29 +f 1120/1806/76 1090/1803/74 1091/1807/77 +f 1091/1807/77 1119/1808/78 1120/1806/76 +f 1164/1800/71 1149/1788/62 1148/1801/72 +f 1119/1809/78 1081/1810/13 1126/1811/58 +f 1087/1812/79 1118/1813/80 1086/1814/81 +f 1116/1815/82 1087/1812/79 1088/1816/83 +f 1088/1816/83 1115/1804/75 1116/1815/82 +f 1085/1817/84 1094/1818/85 1086/1814/81 +f 1094/1818/85 1087/1819/79 1086/1814/81 +f 1095/1820/86 1088/1821/83 1087/1819/79 +f 1090/1822/74 1098/1823/88 1091/1824/77 +f 1091/1824/77 1099/1825/89 1092/1826/90 +f 1092/1826/90 1093/1827/13 1085/1828/84 +f 1093/1829/13 1101/1783/60 1094/1818/85 +f 1101/1783/60 1095/1830/86 1094/1818/85 +f 1095/1830/86 1103/1831/59 1096/1832/87 +f 1104/1833/61 1098/1834/88 1097/1835/91 +f 1105/1836/134 1099/1825/89 1098/1834/88 +f 1106/1802/73 1093/1827/13 1099/1825/89 +f 1164/1800/71 1151/1837/12 1157/1838/92 +f 1163/1839/93 1157/1838/92 1156/1840/94 +f 1162/1841/63 1156/1840/94 1155/1842/95 +f 1110/1843/28 1154/1844/96 1161/1845/66 +f 1155/1842/95 1110/1846/28 1162/1841/63 +f 1153/1847/97 1161/1845/66 1154/1844/96 +f 1152/1848/98 1160/1849/67 1153/1847/97 +f 1151/1837/12 1159/1798/70 1152/1848/98 +f 1157/1838/92 1114/1850/100 1107/1851/99 +f 1108/1852/101 1157/1838/92 1107/1851/99 +f 1109/1853/102 1156/1854/94 1108/1852/101 +f 1109/1853/102 1110/1855/28 1155/1856/95 +f 1154/1857/96 1110/1858/28 1111/1859/103 +f 1153/1860/97 1111/1859/103 1112/1861/104 +f 1152/1848/98 1112/1861/104 1113/1862/105 +f 1151/1837/12 1113/1862/105 1114/1850/100 +f 1122/1863/29 1116/1815/82 1115/1804/75 +f 1116/1815/82 1124/1864/113 1117/1865/107 +f 1124/1864/113 1118/1866/80 1117/1865/107 +f 1119/1809/78 1127/1867/109 1120/1868/76 +f 1127/1867/109 1121/1869/110 1120/1868/76 +f 1121/1869/110 1122/1863/29 1115/1804/75 +f 1077/1870/111 1123/1871/106 1122/1863/29 +f 1123/1871/106 1079/1872/112 1124/1873/113 +f 1124/1873/113 1080/1874/114 1125/1875/108 +f 1082/1778/57 1127/1876/109 1126/1779/58 +f 1083/1877/115 1128/1878/116 1127/1876/109 +f 1084/1879/131 1122/1863/29 1128/1878/116 +f 1129/1880/117 1138/1881/118 1130/1882/119 +f 1130/1882/119 1139/1883/120 1131/1884/121 +f 1131/1884/121 1140/1885/122 1132/1886/123 +f 1134/1887/124 1133/1888/12 1141/1889/125 +f 1133/1888/12 1132/1886/123 1140/1885/122 +f 1141/1889/125 1135/1890/126 1134/1887/124 +f 1142/1891/130 1136/1892/128 1135/1890/126 +f 1143/1893/127 1129/1894/117 1136/1892/128 +f 1144/1895/129 1138/1881/118 1137/1896/28 +f 1145/1792/65 1139/1897/120 1138/1881/118 +f 1139/1897/120 1147/1898/68 1140/1899/122 +f 1147/1898/68 1133/1900/12 1140/1899/122 +f 1148/1901/72 1141/1902/125 1133/1900/12 +f 1148/1901/72 1142/1903/130 1141/1902/125 +f 1142/1903/130 1150/1790/64 1143/1893/127 +f 1143/1893/127 1144/1904/129 1137/1905/28 +f 1083/1906/115 1107/1851/99 1084/1879/131 +f 1082/1907/57 1108/1908/101 1083/1906/115 +f 1081/1909/13 1109/1910/102 1082/1907/57 +f 1080/1911/114 1110/1912/28 1081/1913/13 +f 1080/1911/114 1112/1914/104 1111/1915/103 +f 1078/1916/132 1112/1914/104 1079/1917/112 +f 1077/1870/111 1113/1862/105 1078/1916/132 +f 1107/1851/99 1077/1870/111 1084/1879/131 +f 1213/1918/108 1168/1919/114 1169/1920/13 +f 1237/1921/62 1250/1922/63 1238/1923/64 +f 1198/1924/28 1238/1923/64 1250/1922/63 +f 1233/1925/65 1198/1926/28 1249/1927/66 +f 1248/1928/67 1233/1925/65 1249/1927/66 +f 1248/1928/67 1235/1929/68 1234/1930/69 +f 1178/1931/74 1203/1932/75 1177/1933/29 +f 1208/1934/76 1178/1931/74 1179/1935/77 +f 1179/1935/77 1207/1936/78 1208/1934/76 +f 1252/1937/71 1237/1921/62 1236/1938/72 +f 1169/1939/13 1206/1940/80 1213/1941/108 +f 1175/1942/79 1206/1943/80 1174/1944/81 +f 1204/1945/82 1175/1942/79 1176/1946/83 +f 1176/1946/83 1203/1932/75 1204/1945/82 +f 1181/1947/13 1174/1944/81 1173/1948/84 +f 1174/1944/81 1183/1949/86 1175/1950/79 +f 1175/1950/79 1184/1951/87 1176/1952/83 +f 1178/1953/74 1177/1954/29 1185/1955/91 +f 1192/1956/61 1185/1957/91 1177/1958/29 +f 1185/1955/91 1179/1959/77 1178/1953/74 +f 1186/1960/88 1180/1961/90 1179/1959/77 +f 1187/1962/89 1173/1963/84 1180/1961/90 +f 1181/1947/13 1189/1964/60 1182/1965/85 +f 1189/1964/60 1183/1966/86 1182/1965/85 +f 1190/1967/55 1184/1968/87 1183/1966/86 +f 1184/1968/87 1191/1969/59 1177/1958/29 +f 1134/1970/124 1177/1971/29 1133/1972/12 +f 1185/1957/91 1193/1973/134 1186/1974/88 +f 1193/1973/134 1187/1962/89 1186/1974/88 +f 1187/1962/89 1188/1975/56 1181/1976/13 +f 1245/1977/92 1246/1978/133 1239/1979/12 +f 1244/1980/94 1252/1937/71 1245/1977/92 +f 1250/1981/63 1244/1980/94 1243/1982/95 +f 1198/1983/28 1242/1984/96 1249/1985/66 +f 1243/1982/95 1198/1986/28 1250/1981/63 +f 1248/1987/67 1242/1984/96 1241/1988/97 +f 1247/1989/70 1241/1988/97 1240/1990/98 +f 1246/1978/133 1240/1990/98 1239/1979/12 +f 1245/1977/92 1202/1991/100 1195/1992/99 +f 1196/1993/101 1245/1977/92 1195/1992/99 +f 1197/1994/102 1244/1995/94 1196/1993/101 +f 1197/1994/102 1198/1996/28 1243/1997/95 +f 1242/1998/96 1198/1999/28 1199/2000/103 +f 1241/2001/97 1199/2000/103 1200/2002/104 +f 1201/2003/105 1241/2001/97 1200/2002/104 +f 1239/1979/12 1201/2003/105 1202/1991/100 +f 1203/1932/75 1211/2004/106 1204/1945/82 +f 1211/2004/106 1205/2005/107 1204/1945/82 +f 1205/2005/107 1213/1941/108 1206/1940/80 +f 1214/2006/58 1169/2007/13 1170/2008/57 +f 1214/2009/58 1208/2010/76 1207/2011/78 +f 1215/2012/109 1209/2013/110 1208/2010/76 +f 1209/2013/110 1210/2014/29 1203/1932/75 +f 1165/2015/111 1211/2004/106 1210/2014/29 +f 1166/2016/132 1212/2017/113 1211/2004/106 +f 1212/2017/113 1168/1919/114 1213/1918/108 +f 1214/2009/58 1207/2011/78 1169/2018/13 +f 1214/2006/58 1171/2019/115 1215/2020/109 +f 1171/2019/115 1216/2021/116 1215/2020/109 +f 1216/2021/116 1165/2015/111 1210/2014/29 +f 1225/2022/28 1218/2023/119 1217/2024/117 +f 1218/2023/119 1227/2025/120 1219/2026/121 +f 1219/2026/121 1228/2027/122 1220/2028/123 +f 1221/2029/12 1220/2028/123 1228/2027/122 +f 1229/2030/125 1223/2031/126 1222/2032/124 +f 1223/2031/126 1231/2033/127 1224/2034/128 +f 1231/2033/127 1217/2035/117 1224/2034/128 +f 1232/2036/129 1226/2037/118 1225/2022/28 +f 1233/1925/65 1227/2038/120 1226/2037/118 +f 1234/2039/69 1228/2040/122 1227/2038/120 +f 1229/2041/125 1237/2042/62 1230/2043/130 +f 1230/2043/130 1238/1923/64 1231/2033/127 +f 1238/1923/64 1225/2044/28 1231/2033/127 +f 1171/2045/115 1195/1992/99 1172/2046/131 +f 1170/2047/57 1196/2048/101 1171/2045/115 +f 1169/2049/13 1197/2050/102 1170/2047/57 +f 1168/2051/114 1198/2052/28 1169/2053/13 +f 1168/2051/114 1200/2054/104 1199/2055/103 +f 1166/2016/132 1200/2054/104 1167/2056/112 +f 1165/2015/111 1201/2003/105 1166/2016/132 +f 1195/1992/99 1165/2015/111 1172/2046/131 +f 1267/2057/92 1268/2058/133 1261/2059/12 +f 1273/2060/93 1267/2057/92 1266/2061/94 +f 1265/2062/95 1273/2060/93 1266/2061/94 +f 1279/2063/1 1272/2064/63 1256/2065/28 +f 1271/2066/66 1279/2067/1 1256/2068/28 +f 1270/2069/67 1264/2070/96 1263/2071/97 +f 1262/2072/98 1270/2069/67 1263/2071/97 +f 1268/2058/133 1262/2072/98 1261/2059/12 +f 1267/2057/92 1260/2073/100 1253/2074/99 +f 1254/2075/101 1267/2057/92 1253/2074/99 +f 1255/2076/102 1266/2077/94 1254/2075/101 +f 1255/2076/102 1256/2078/28 1265/2079/95 +f 1264/2080/96 1256/2081/28 1257/2082/103 +f 1263/2083/97 1257/2082/103 1258/2084/104 +f 1259/2085/105 1263/2083/97 1258/2084/104 +f 1261/2059/12 1259/2085/105 1260/2073/100 +f 1219/2086/121 1257/2087/103 1218/2023/119 +f 1218/2023/119 1256/2088/28 1217/2024/117 +f 1217/2035/117 1255/2089/102 1224/2034/128 +f 1224/2034/128 1254/2090/101 1223/2091/126 +f 1223/2091/126 1253/2074/99 1222/2092/124 +f 1253/2074/99 1221/2093/12 1222/2092/124 +f 1221/2093/12 1259/2085/105 1220/2094/123 +f 1220/2094/123 1258/2095/104 1219/2086/121 +f 1269/2096/70 1277/2097/19 1270/2098/67 +f 1273/2099/93 1282/2100/9 1274/2101/71 +f 1270/2098/67 1278/2102/30 1271/2066/66 +f 1274/2101/71 1275/2103/2 1268/2058/133 +f 1268/2058/133 1276/2104/8 1269/2096/70 +f 1265/2062/95 1256/2105/28 1272/2106/63 +f 1256/2107/28 1264/2070/96 1271/2108/66 +f 1272/2064/63 1281/2109/5 1273/2099/93 +f 1190/2110/55 1130/1882/119 1131/2111/121 +f 1189/2112/60 1129/1880/117 1130/1882/119 +f 1129/1894/117 1194/2113/73 1136/1892/128 +f 1194/2113/73 1135/2114/126 1136/1892/128 +f 1193/2115/134 1134/1970/124 1135/2114/126 +f 1177/1971/29 1132/2116/123 1133/1972/12 +f 1177/1954/29 1176/1952/83 1184/1951/87 +f 1191/2117/59 1131/2111/121 1132/2116/123 +f 1090/1822/74 1089/2118/29 1097/2119/91 +f 1104/1833/61 1097/1835/91 1089/2120/29 +f 1089/2118/29 1088/1821/83 1096/2121/87 +f 1096/1832/87 1103/1831/59 1089/2120/29 +f 1089/2122/29 1074/1782/17 1075/2123/3 +f 1076/1787/15 1089/2122/29 1075/2123/3 +f 1125/1875/108 1080/1874/114 1081/2124/13 +f 1125/2125/108 1081/2126/13 1118/1866/80 +f 1081/2127/13 1086/1814/81 1118/1813/80 +f 1092/1826/90 1081/2128/13 1119/1808/78 +f 1180/1961/90 1169/2129/13 1207/1936/78 +f 1169/2130/13 1174/1944/81 1206/1943/80 +f 1228/2040/122 1235/2131/68 1221/2132/12 +f 1222/2032/124 1221/2029/12 1229/2030/125 +f 1229/2041/125 1221/2132/12 1236/2133/72 +f 1221/2134/12 1252/1937/71 1236/1938/72 +f 1247/1989/70 1221/2134/12 1235/1929/68 +f 1316/2135/223 1286/2136/18 1287/2137/4 +f 1314/2138/224 1284/2139/15 1285/2140/5 +f 1296/2141/225 1340/2142/226 1295/2143/9 +f 1317/2144/227 1287/2137/4 1288/2145/16 +f 1315/2146/228 1285/2147/5 1286/2136/18 +f 1319/2148/229 1290/2149/17 1283/2150/3 +f 1363/2151/230 1376/2152/231 1364/2153/232 +f 1324/2154/27 1364/2153/232 1376/2152/231 +f 1359/2155/233 1324/2156/27 1375/2157/234 +f 1374/2158/235 1359/2155/233 1375/2157/234 +f 1374/2158/235 1361/2159/236 1360/2160/237 +f 1373/2161/238 1347/2162/8 1361/2159/236 +f 1347/2162/8 1378/2163/239 1362/2164/240 +f 1320/2165/241 1283/2150/3 1284/2139/15 +f 1304/2166/242 1329/2167/243 1303/2168/30 +f 1305/2169/244 1335/2170/245 1304/2166/242 +f 1305/2169/244 1333/2171/246 1334/2172/247 +f 1378/2163/239 1363/2151/230 1362/2164/240 +f 1333/2173/246 1295/2174/9 1340/2175/226 +f 1301/2176/248 1332/2177/249 1300/2178/250 +f 1330/2179/251 1301/2176/248 1302/2180/252 +f 1302/2180/252 1329/2167/243 1330/2179/251 +f 1299/2181/253 1308/2182/254 1300/2178/250 +f 1308/2182/254 1301/2183/248 1300/2178/250 +f 1309/2184/255 1302/2185/252 1301/2183/248 +f 1304/2186/242 1312/2187/256 1305/2188/244 +f 1305/2188/244 1313/2189/257 1306/2190/258 +f 1313/2189/257 1299/2191/253 1306/2190/258 +f 1307/2192/9 1315/2146/228 1308/2182/254 +f 1315/2146/228 1309/2193/255 1308/2182/254 +f 1309/2193/255 1317/2194/227 1310/2195/259 +f 1311/2196/260 1319/2197/229 1312/2198/256 +f 1312/2198/256 1320/2165/241 1313/2189/257 +f 1320/2165/241 1307/2199/9 1313/2189/257 +f 1378/2163/239 1365/2200/8 1371/2201/261 +f 1377/2202/262 1371/2201/261 1370/2203/263 +f 1376/2204/231 1370/2203/263 1369/2205/264 +f 1324/2206/27 1368/2207/265 1375/2208/234 +f 1369/2205/264 1324/2209/27 1376/2204/231 +f 1367/2210/266 1375/2208/234 1368/2207/265 +f 1366/2211/267 1374/2212/235 1367/2210/266 +f 1365/2200/8 1373/2161/238 1366/2211/267 +f 1371/2201/261 1328/2213/268 1321/2214/269 +f 1322/2215/270 1371/2201/261 1321/2214/269 +f 1323/2216/271 1370/2217/263 1322/2215/270 +f 1323/2216/271 1324/2218/27 1369/2219/264 +f 1368/2220/265 1324/2221/27 1325/2222/272 +f 1367/2223/266 1325/2222/272 1326/2224/273 +f 1366/2211/267 1326/2224/273 1327/2225/274 +f 1365/2200/8 1327/2225/274 1328/2213/268 +f 1336/2226/30 1330/2179/251 1329/2167/243 +f 1337/2227/275 1331/2228/276 1330/2179/251 +f 1338/2229/277 1332/2230/249 1331/2228/276 +f 1333/2173/246 1341/2231/278 1334/2232/247 +f 1341/2231/278 1335/2170/245 1334/2232/247 +f 1342/2233/279 1329/2167/243 1335/2170/245 +f 1291/2234/280 1337/2227/275 1336/2226/30 +f 1337/2227/275 1293/2235/281 1338/2236/277 +f 1293/2235/281 1339/2237/282 1338/2236/277 +f 1340/2142/226 1297/2238/283 1341/2239/278 +f 1297/2238/283 1342/2233/279 1341/2239/278 +f 1342/2233/279 1291/2234/280 1336/2226/30 +f 1343/2240/284 1352/2241/285 1344/2242/286 +f 1344/2242/286 1353/2243/287 1345/2244/288 +f 1345/2244/288 1354/2245/289 1346/2246/290 +f 1348/2247/291 1347/2248/8 1355/2249/292 +f 1347/2248/8 1346/2246/290 1354/2245/289 +f 1348/2247/291 1356/2250/293 1349/2251/294 +f 1356/2250/293 1350/2252/295 1349/2251/294 +f 1357/2253/296 1343/2254/284 1350/2252/295 +f 1358/2255/297 1352/2241/285 1351/2256/27 +f 1359/2155/233 1353/2257/287 1352/2241/285 +f 1353/2257/287 1361/2258/236 1354/2259/289 +f 1361/2258/236 1347/2260/8 1354/2259/289 +f 1362/2261/240 1355/2262/292 1347/2260/8 +f 1362/2261/240 1356/2263/293 1355/2262/292 +f 1356/2263/293 1364/2153/232 1357/2253/296 +f 1357/2253/296 1358/2264/297 1351/2265/27 +f 1297/2266/283 1321/2214/269 1298/2267/298 +f 1296/2268/225 1322/2269/270 1297/2266/283 +f 1295/2270/9 1323/2271/271 1296/2268/225 +f 1294/2272/299 1324/2273/27 1295/2274/9 +f 1294/2272/299 1326/2275/273 1325/2276/272 +f 1292/2277/300 1326/2275/273 1293/2278/281 +f 1291/2234/280 1327/2225/274 1292/2277/300 +f 1321/2214/269 1291/2234/280 1298/2267/298 +f 1427/2279/282 1382/2280/299 1383/2281/9 +f 1451/2282/230 1464/2283/231 1452/2284/232 +f 1412/2285/27 1452/2284/232 1464/2283/231 +f 1447/2286/233 1412/2287/27 1463/2288/234 +f 1462/2289/235 1447/2286/233 1463/2288/234 +f 1462/2289/235 1449/2290/236 1448/2291/237 +f 1392/2292/242 1417/2293/243 1391/2294/30 +f 1422/2295/247 1392/2292/242 1393/2296/244 +f 1393/2296/244 1421/2297/246 1422/2295/247 +f 1466/2298/239 1451/2282/230 1450/2299/240 +f 1383/2300/9 1420/2301/249 1427/2302/282 +f 1389/2303/248 1420/2304/249 1388/2305/250 +f 1418/2306/251 1389/2303/248 1390/2307/252 +f 1390/2307/252 1417/2293/243 1418/2306/251 +f 1387/2308/253 1396/2309/254 1388/2305/250 +f 1388/2305/250 1397/2310/255 1389/2311/248 +f 1389/2311/248 1398/2312/259 1390/2313/252 +f 1392/2314/242 1391/2315/30 1399/2316/260 +f 1406/2317/301 1399/2318/260 1391/2319/30 +f 1392/2314/242 1400/2320/256 1393/2321/244 +f 1400/2320/256 1394/2322/258 1393/2321/244 +f 1401/2323/257 1387/2324/253 1394/2322/258 +f 1402/2325/224 1396/2309/254 1395/2326/9 +f 1403/2327/228 1397/2328/255 1396/2309/254 +f 1397/2328/255 1405/2329/227 1398/2330/259 +f 1398/2330/259 1405/2329/227 1391/2319/30 +f 1348/2331/291 1391/2332/30 1347/2333/8 +f 1399/2318/260 1407/2334/229 1400/2335/256 +f 1407/2334/229 1401/2323/257 1400/2335/256 +f 1401/2323/257 1402/2336/224 1395/2337/9 +f 1459/2338/261 1460/2339/302 1453/2340/8 +f 1458/2341/263 1466/2298/239 1459/2338/261 +f 1464/2342/231 1458/2341/263 1457/2343/264 +f 1412/2344/27 1456/2345/265 1463/2346/234 +f 1457/2343/264 1412/2347/27 1464/2342/231 +f 1455/2348/266 1463/2346/234 1456/2345/265 +f 1461/2349/238 1455/2348/266 1454/2350/267 +f 1460/2339/302 1454/2350/267 1453/2340/8 +f 1459/2338/261 1416/2351/268 1409/2352/269 +f 1410/2353/270 1459/2338/261 1409/2352/269 +f 1457/2354/264 1410/2353/270 1411/2355/271 +f 1411/2355/271 1412/2356/27 1457/2354/264 +f 1456/2357/265 1412/2358/27 1413/2359/272 +f 1455/2360/266 1413/2359/272 1414/2361/273 +f 1415/2362/274 1455/2360/266 1414/2361/273 +f 1416/2351/268 1454/2350/267 1415/2362/274 +f 1424/2363/30 1418/2306/251 1417/2293/243 +f 1425/2364/275 1419/2365/276 1418/2306/251 +f 1419/2365/276 1427/2302/282 1420/2301/249 +f 1428/2366/226 1383/2367/9 1384/2368/225 +f 1428/2369/226 1422/2370/247 1421/2371/246 +f 1422/2370/247 1430/2372/279 1423/2373/245 +f 1423/2373/245 1424/2363/30 1417/2293/243 +f 1379/2374/280 1425/2364/275 1424/2363/30 +f 1380/2375/300 1426/2376/277 1425/2364/275 +f 1381/2377/281 1427/2279/282 1426/2376/277 +f 1428/2369/226 1421/2371/246 1383/2378/9 +f 1428/2366/226 1385/2379/283 1429/2380/278 +f 1385/2379/283 1430/2372/279 1429/2380/278 +f 1430/2372/279 1379/2374/280 1424/2363/30 +f 1431/2381/284 1440/2382/285 1432/2383/286 +f 1440/2382/285 1433/2384/288 1432/2383/286 +f 1433/2384/288 1442/2385/289 1434/2386/290 +f 1435/2387/8 1434/2386/290 1442/2385/289 +f 1443/2388/292 1437/2389/294 1436/2390/291 +f 1437/2389/294 1445/2391/296 1438/2392/295 +f 1438/2392/295 1439/2393/27 1431/2394/284 +f 1446/2395/297 1440/2382/285 1439/2396/27 +f 1440/2382/285 1448/2397/237 1441/2398/287 +f 1448/2397/237 1442/2399/289 1441/2398/287 +f 1450/2400/240 1444/2401/293 1443/2402/292 +f 1444/2401/293 1452/2284/232 1445/2391/296 +f 1445/2391/296 1446/2403/297 1439/2393/27 +f 1385/2404/283 1409/2352/269 1386/2405/298 +f 1384/2406/225 1410/2407/270 1385/2404/283 +f 1383/2408/9 1411/2409/271 1384/2406/225 +f 1382/2410/299 1412/2411/27 1383/2412/9 +f 1382/2410/299 1414/2413/273 1413/2414/272 +f 1380/2375/300 1414/2413/273 1381/2415/281 +f 1379/2374/280 1415/2362/274 1380/2375/300 +f 1409/2352/269 1379/2374/280 1386/2405/298 +f 1481/2416/261 1482/2417/302 1475/2418/8 +f 1487/2419/262 1481/2416/261 1480/2420/263 +f 1479/2421/264 1487/2419/262 1480/2420/263 +f 1493/2422/1 1486/2423/231 1470/2424/27 +f 1470/2425/27 1492/2426/28 1493/2427/1 +f 1484/2428/235 1478/2429/265 1477/2430/266 +f 1476/2431/267 1484/2428/235 1477/2430/266 +f 1475/2418/8 1483/2432/238 1476/2431/267 +f 1481/2416/261 1474/2433/268 1467/2434/269 +f 1468/2435/270 1481/2416/261 1467/2434/269 +f 1469/2436/271 1480/2437/263 1468/2435/270 +f 1469/2436/271 1470/2438/27 1479/2439/264 +f 1478/2440/265 1470/2441/27 1471/2442/272 +f 1477/2443/266 1471/2442/272 1472/2444/273 +f 1476/2431/267 1472/2444/273 1473/2445/274 +f 1474/2433/268 1476/2431/267 1473/2445/274 +f 1433/2446/288 1471/2447/272 1432/2383/286 +f 1432/2383/286 1470/2448/27 1431/2381/284 +f 1431/2394/284 1469/2449/271 1438/2392/295 +f 1438/2392/295 1468/2450/270 1437/2451/294 +f 1437/2451/294 1467/2434/269 1436/2452/291 +f 1467/2434/269 1435/2453/8 1436/2452/291 +f 1435/2453/8 1473/2445/274 1434/2454/290 +f 1434/2454/290 1472/2455/273 1433/2446/288 +f 1484/2456/235 1490/2457/13 1491/2458/4 +f 1487/2459/262 1496/2460/12 1488/2461/239 +f 1484/2456/235 1492/2426/28 1485/2462/234 +f 1488/2461/239 1489/2463/2 1482/2417/302 +f 1482/2417/302 1490/2457/13 1483/2432/238 +f 1479/2421/264 1470/2464/27 1486/2465/231 +f 1470/2466/27 1478/2429/265 1485/2467/234 +f 1486/2423/231 1495/2468/3 1487/2459/262 +f 1404/2469/223 1344/2242/286 1345/2470/288 +f 1403/2471/228 1343/2240/284 1344/2242/286 +f 1343/2254/284 1408/2472/241 1350/2252/295 +f 1408/2472/241 1349/2473/294 1350/2252/295 +f 1407/2474/229 1348/2331/291 1349/2473/294 +f 1391/2332/30 1346/2475/290 1347/2333/8 +f 1391/2315/30 1390/2313/252 1398/2312/259 +f 1405/2476/227 1345/2470/288 1346/2475/290 +f 1304/2186/242 1303/2477/30 1311/2478/260 +f 1318/2479/301 1311/2196/260 1303/2480/30 +f 1303/2477/30 1302/2185/252 1310/2481/259 +f 1310/2195/259 1317/2194/227 1303/2480/30 +f 1289/2482/19 1317/2144/227 1288/2145/16 +f 1290/2149/17 1303/2483/30 1289/2482/19 +f 1339/2237/282 1294/2484/299 1295/2485/9 +f 1339/2486/282 1295/2487/9 1332/2230/249 +f 1295/2488/9 1300/2178/250 1332/2177/249 +f 1306/2190/258 1295/2489/9 1333/2171/246 +f 1394/2322/258 1383/2490/9 1421/2297/246 +f 1383/2491/9 1388/2305/250 1420/2304/249 +f 1442/2399/289 1449/2492/236 1435/2493/8 +f 1436/2390/291 1435/2387/8 1443/2388/292 +f 1443/2402/292 1435/2493/8 1450/2400/240 +f 1435/2494/8 1466/2298/239 1450/2299/240 +f 1461/2349/238 1435/2494/8 1449/2290/236 +f 1501/2495/19 1511/2496/16 1505/2497/19 +f 1497/2498/5 1512/2499/18 1498/2500/18 +f 1503/2501/3 1508/2502/15 1504/2503/15 +f 1501/2495/19 1506/2504/17 1502/2505/17 +f 1498/2500/18 1510/2506/4 1499/2507/4 +f 1502/2505/17 1509/2508/3 1503/2501/3 +f 1499/2507/4 1511/2496/16 1500/2509/16 +f 1504/2503/15 1507/2510/5 1497/2511/5 +f 1517/2512/19 1527/2513/16 1521/2514/19 +f 1513/2515/5 1528/2516/18 1514/2517/18 +f 1519/2518/3 1524/2519/15 1520/2520/15 +f 1518/2521/17 1521/2514/19 1522/2522/17 +f 1514/2517/18 1526/2523/4 1515/2524/4 +f 1518/2521/17 1525/2525/3 1519/2518/3 +f 1515/2524/4 1527/2513/16 1516/2526/16 +f 1520/2520/15 1523/2527/5 1513/2528/5 +f 1563/2529/3 1569/2530/17 1562/2531/17 +f 1568/2532/16 1575/2533/4 1567/2534/4 +f 1566/2535/18 1573/2536/5 1565/2537/5 +f 1564/2538/15 1571/2539/3 1563/2529/3 +f 1562/2531/17 1570/2540/19 1561/2541/19 +f 1561/2541/19 1576/2542/16 1568/2532/16 +f 1567/2534/4 1574/2543/18 1566/2544/18 +f 1565/2537/5 1572/2545/15 1564/2538/15 +f 631/1127/3 630/2546/17 622/1128/17 +f 629/1130/19 628/1140/16 620/1131/16 +f 627/1133/4 626/1141/18 618/1134/18 +f 632/1136/15 631/1127/3 623/1129/3 +f 630/1138/17 629/1130/19 621/1132/19 +f 628/1140/16 627/1133/4 619/1135/4 +f 626/1141/18 625/1143/5 617/1142/5 +f 625/1143/5 632/1136/15 624/1137/15 +f 639/1144/3 647/1154/3 646/1145/17 +f 637/1147/19 645/1156/19 644/1148/16 +f 635/1150/4 643/1157/4 642/1151/18 +f 640/1153/15 648/1160/15 647/1154/3 +f 638/1155/17 646/2547/17 645/1156/19 +f 636/1149/16 644/1148/16 643/1157/4 +f 634/1152/18 642/1151/18 641/1158/5 +f 633/1159/5 641/1158/5 648/1160/15 +f 1599/1163/2 1593/2548/2 1594/2549/2 +f 1594/2549/2 1597/2550/2 1596/1161/2 +f 1596/1161/2 1595/2551/2 1600/1162/2 +f 1600/1162/2 1598/2552/2 1599/1163/2 +f 1599/1163/2 1594/2549/2 1596/1161/2 +f 706/1164/55 705/1175/60 676/1165/16 +f 704/1167/56 710/1194/73 674/1168/18 +f 707/1173/59 706/1164/55 677/1166/19 +f 705/1175/60 704/1222/56 675/1176/4 +f 673/1177/5 709/2553/134 708/1178/61 +f 753/1180/62 767/2554/93 766/1181/63 +f 714/1183/28 748/1297/129 754/1182/64 +f 749/1184/65 748/1287/129 714/1185/28 +f 764/1187/67 750/1189/69 749/1184/65 +f 764/1187/67 763/1190/70 751/1188/68 +f 763/1190/70 762/2555/133 737/1191/12 +f 737/1191/12 762/2555/133 768/1192/71 +f 710/1194/73 709/2553/134 673/1177/5 +f 694/1195/74 725/1263/110 719/1196/75 +f 724/1198/76 725/1263/110 694/1195/74 +f 695/1199/77 696/1219/90 723/1200/78 +f 768/1192/71 767/2554/93 753/1180/62 +f 691/1204/79 721/2556/107 722/1205/80 +f 720/1207/82 721/2556/107 691/1204/79 +f 692/1208/83 693/1197/29 719/1196/75 +f 689/1209/84 697/1223/13 698/1210/85 +f 690/1206/81 698/1210/85 699/1211/86 +f 691/1212/79 699/1211/86 700/1213/87 +f 694/1215/74 701/1752/91 702/1216/88 +f 695/1217/77 702/1216/88 703/1218/89 +f 696/1219/90 703/1218/89 697/1220/13 +f 704/1222/56 705/1175/60 698/1210/85 +f 698/1210/85 705/1175/60 706/1224/55 +f 699/1225/86 706/1224/55 707/1226/59 +f 708/1228/61 709/2557/134 702/1229/88 +f 702/1229/88 709/2557/134 710/1194/73 +f 710/1194/73 704/1167/56 697/1220/13 +f 768/1192/71 762/2555/133 755/1231/12 +f 767/1233/93 768/1192/71 761/1232/92 +f 766/1235/63 767/1233/93 760/1234/94 +f 757/1241/97 764/1243/67 765/1239/66 +f 756/1242/98 763/1190/70 764/1243/67 +f 755/1231/12 762/2555/133 763/1190/70 +f 711/1244/99 761/1232/92 755/1231/12 +f 712/1246/101 760/1248/94 761/1232/92 +f 713/1247/102 759/1250/95 760/1248/94 +f 757/1254/97 758/1251/96 715/1253/103 +f 756/1242/98 757/1254/97 716/1255/104 +f 718/1245/100 755/1231/12 756/1242/98 +f 719/1196/75 726/1264/29 727/1257/106 +f 727/1257/106 728/2558/113 721/1258/107 +f 721/1258/107 728/2558/113 729/1259/108 +f 723/1201/78 730/1203/58 731/1261/109 +f 731/1261/109 732/1272/116 725/1263/110 +f 725/1263/110 732/1272/116 726/1264/29 +f 681/1265/111 682/1310/132 727/1257/106 +f 727/1257/106 682/1310/132 683/1266/112 +f 728/1267/113 683/1266/112 684/1268/114 +f 730/1171/58 686/1170/57 687/1270/115 +f 687/1270/115 688/1300/131 732/1272/116 +f 732/1272/116 688/1300/131 681/1265/111 +f 733/1273/117 741/1288/28 742/1274/118 +f 734/1275/119 742/1274/118 743/1276/120 +f 735/1277/121 743/1276/120 744/1278/122 +f 745/1282/125 746/2559/130 739/1283/126 +f 739/1283/126 746/2559/130 747/1284/127 +f 747/1284/127 741/1298/28 733/1286/117 +f 748/1287/129 749/1184/65 742/1274/118 +f 749/1184/65 750/1290/69 743/1289/120 +f 750/1290/69 751/1292/68 744/1291/122 +f 752/1294/72 753/2560/62 746/1296/130 +f 746/1296/130 753/2560/62 754/1182/64 +f 747/1284/127 754/1182/64 748/1297/129 +f 687/1299/115 712/1302/101 711/1244/99 +f 686/1301/57 713/1304/102 712/1302/101 +f 685/1303/13 714/2561/28 713/1304/102 +f 684/1305/114 715/1309/103 714/1306/28 +f 684/1305/114 683/1311/112 716/1308/104 +f 682/1310/132 717/1256/105 716/1308/104 +f 681/1265/111 718/1245/100 717/1256/105 +f 711/1244/99 718/1245/100 681/1265/111 +f 841/1315/62 855/2562/93 854/1316/63 +f 802/1318/28 836/2563/129 842/1317/64 +f 837/1319/65 836/1428/129 802/1320/28 +f 852/1322/67 838/1324/69 837/1319/65 +f 852/1322/67 851/1767/70 839/1323/68 +f 782/1325/74 813/1406/110 807/1326/75 +f 812/1328/76 813/1406/110 782/1325/74 +f 783/1329/77 784/1355/90 811/1330/78 +f 856/1331/71 855/2562/93 841/1315/62 +f 779/1336/79 809/2564/107 810/1337/80 +f 808/1339/82 809/2564/107 779/1336/79 +f 780/1340/83 781/1327/29 807/1326/75 +f 785/1341/13 786/1359/85 778/1338/81 +f 778/1338/81 786/1359/85 787/1343/86 +f 779/1344/79 787/1343/86 788/1345/87 +f 789/1349/91 790/2565/88 783/1353/77 +f 783/1353/77 790/2565/88 791/1354/89 +f 784/1355/90 791/1354/89 785/1356/13 +f 792/1358/56 793/2566/60 786/1359/85 +f 786/1359/85 793/2566/60 794/1360/55 +f 794/1360/55 795/1363/59 788/1362/87 +f 738/1364/124 796/2567/61 781/1365/29 +f 796/1350/61 797/2568/134 790/1367/88 +f 790/1367/88 797/2568/134 798/1368/73 +f 791/1354/89 798/1368/73 792/1369/56 +f 849/1370/92 856/1331/71 850/1371/133 +f 848/1373/94 855/1375/93 856/1331/71 +f 847/1374/95 854/1380/63 855/1375/93 +f 845/1381/97 852/1383/67 853/1378/66 +f 844/1382/98 851/1767/70 852/1383/67 +f 850/1371/133 851/1767/70 844/1382/98 +f 849/1370/92 843/1372/12 806/1384/100 +f 848/1386/94 849/1370/92 799/1385/99 +f 801/1388/102 847/1390/95 848/1386/94 +f 845/1394/97 846/1391/96 803/1393/103 +f 844/1382/98 845/1394/97 804/1395/104 +f 806/1384/100 843/1372/12 844/1382/98 +f 807/1326/75 814/1409/29 815/1397/106 +f 815/1397/106 816/2569/113 809/1398/107 +f 809/1398/107 816/2569/113 817/1335/108 +f 818/1402/58 819/1405/109 812/1403/76 +f 819/1405/109 820/1407/116 813/1406/110 +f 820/1407/116 814/1409/29 807/1326/75 +f 769/1408/111 770/1447/132 815/1397/106 +f 815/1397/106 770/1447/132 771/1410/112 +f 816/1411/113 771/1410/112 772/1313/114 +f 774/1401/57 775/2570/115 819/1413/109 +f 819/1413/109 775/2570/115 776/1414/131 +f 820/1407/116 776/1414/131 769/1408/111 +f 821/1415/117 829/1429/28 830/1416/118 +f 830/1416/118 831/2571/120 823/1418/121 +f 823/1418/121 831/2571/120 832/1419/122 +f 826/1422/124 833/1764/125 834/1423/130 +f 834/1423/130 835/1426/127 828/1425/128 +f 835/1426/127 829/1436/28 821/1427/117 +f 836/1428/129 837/1319/65 830/1416/118 +f 837/1319/65 838/1431/69 831/1430/120 +f 838/1431/69 839/1762/68 832/1432/122 +f 833/1433/125 840/1765/72 841/1434/62 +f 834/1435/130 841/1434/62 842/1317/64 +f 842/1317/64 836/2563/129 829/1436/28 +f 775/1437/115 800/1439/101 799/1385/99 +f 774/1438/57 801/1441/102 800/1439/101 +f 773/1440/13 802/2572/28 801/1441/102 +f 772/1442/114 803/1446/103 802/1443/28 +f 772/1442/114 771/1448/112 804/1445/104 +f 770/1447/132 805/1396/105 804/1445/104 +f 769/1408/111 806/1384/100 805/1396/105 +f 799/1385/99 806/1384/100 769/1408/111 +f 878/1449/71 872/1495/133 865/1450/12 +f 877/1452/93 878/1449/71 871/1451/92 +f 869/1454/95 876/1498/63 877/1452/93 +f 883/1455/1 884/2573/27 876/1456/63 +f 875/1458/66 882/1493/30 883/1459/1 +f 874/1461/67 875/1500/66 868/1462/96 +f 873/1464/70 874/1461/67 867/1463/97 +f 865/1450/12 872/1495/133 873/1464/70 +f 871/1451/92 865/1450/12 864/1466/100 +f 870/1468/94 871/1451/92 857/1467/99 +f 859/1470/102 869/1472/95 870/1468/94 +f 867/1476/97 868/1473/96 861/1475/103 +f 866/1465/98 867/1476/97 862/1477/104 +f 864/1466/100 865/1450/12 866/1465/98 +f 823/1479/121 862/1488/104 861/1480/103 +f 822/1417/119 861/1480/103 860/1481/28 +f 821/1427/117 860/2574/28 859/1482/102 +f 828/1425/128 859/1482/102 858/1483/101 +f 827/1484/126 858/1483/101 857/1467/99 +f 857/1467/99 864/1466/100 825/1486/12 +f 825/1486/12 864/1466/100 863/1478/105 +f 824/1487/123 863/1478/105 862/1488/104 +f 873/1464/70 880/1496/8 881/1489/19 +f 877/1491/93 885/1501/5 886/1492/9 +f 874/1490/67 881/1489/19 882/1493/30 +f 878/1449/71 886/1492/9 879/1494/2 +f 872/1495/133 879/1494/2 880/1496/8 +f 876/1456/63 884/2573/27 885/1501/5 +f 794/1502/55 793/1504/60 734/1275/119 +f 793/1504/60 792/2575/56 733/1273/117 +f 733/1286/117 792/2576/56 798/1505/73 +f 798/1505/73 797/1507/134 739/1506/126 +f 797/1507/134 796/2567/61 738/1364/124 +f 781/1365/29 795/1509/59 736/1508/123 +f 795/1509/59 794/1502/55 735/1503/121 +f 1545/1510/135 1553/2577/135 1560/1511/136 +f 1552/1512/136 1560/2578/136 1559/1513/137 +f 1551/1514/137 1559/2579/137 1558/1515/138 +f 1550/1517/138 1558/2580/138 1557/1518/139 +f 1549/1519/139 1557/2581/139 1556/1520/140 +f 1548/1521/140 1556/2582/140 1555/1522/141 +f 1546/1524/142 1547/1523/141 1555/1525/141 +f 1546/1524/142 1554/2583/142 1553/1527/135 +f 935/1528/28 936/1544/118 928/1529/119 +f 928/1529/119 936/1544/118 937/1531/120 +f 937/1531/120 938/1537/122 930/1533/123 +f 932/1538/124 939/2584/125 940/1539/130 +f 940/1539/130 941/1542/127 934/1541/128 +f 941/1542/127 935/1528/28 927/1530/117 +f 935/1528/28 942/1554/129 943/1543/65 +f 943/1543/65 944/1546/69 937/1545/120 +f 944/1546/69 945/1548/68 938/1547/122 +f 939/1550/125 946/2585/72 947/1551/62 +f 940/1552/130 947/1551/62 948/1553/64 +f 941/1542/127 948/1553/64 942/1554/129 +f 1021/1558/145 1035/2586/189 1034/1559/146 +f 1034/1559/146 982/2587/35 1016/1561/148 +f 1016/1562/148 982/2588/35 1033/1563/149 +f 1032/1565/151 1018/1567/153 1017/1564/150 +f 1032/1565/151 1031/1568/154 1019/1566/152 +f 1031/1568/154 1030/1617/186 1005/1569/37 +f 1005/1569/37 1030/1617/186 1036/1570/155 +f 962/1572/157 993/1576/160 987/1573/158 +f 963/1575/159 992/1578/162 993/1576/160 +f 963/1575/159 964/1598/176 991/1577/161 +f 1036/1570/155 1035/2586/189 1021/1558/145 +f 958/1582/165 959/1586/169 989/1583/166 +f 960/1585/168 988/1587/170 989/1583/166 +f 960/1585/168 961/1574/34 987/1573/158 +f 957/1588/171 965/1601/36 966/1589/172 +f 966/1589/172 967/2589/180 959/1590/169 +f 959/1590/169 967/2589/180 968/1591/173 +f 962/1593/157 969/1595/174 970/1596/175 +f 970/1596/175 971/1599/177 964/1598/176 +f 971/1599/177 965/1615/36 957/1600/171 +f 965/1601/36 972/2590/184 973/1602/178 +f 966/1589/172 973/1602/178 974/1603/179 +f 967/1604/180 974/1603/179 975/1605/181 +f 929/1610/121 976/2591/182 961/1611/34 +f 969/1608/174 976/1607/182 977/1612/183 +f 977/1612/183 978/1703/222 971/1599/177 +f 971/1599/177 978/1703/222 972/1614/184 +f 1029/1616/185 1036/1570/155 1030/1617/186 +f 1028/1619/187 1035/1621/189 1036/1570/155 +f 1027/1620/188 1034/1638/146 1035/1621/189 +f 1032/1628/151 1033/1627/149 1026/1626/190 +f 1031/1568/154 1032/1628/151 1025/1629/192 +f 1023/1618/37 1030/1617/186 1031/1568/154 +f 979/1631/194 1029/1616/185 1023/1618/37 +f 1028/1633/187 1029/1616/185 979/1631/194 +f 981/1635/197 1027/1637/188 1028/1633/187 +f 984/1640/198 1025/1642/192 1026/1622/190 +f 985/1641/199 1024/1630/193 1025/1642/192 +f 986/1632/195 1023/1618/37 1024/1630/193 +f 987/1573/158 994/1654/34 995/1643/200 +f 988/1587/170 995/1643/200 996/1644/201 +f 989/1645/166 996/1644/201 997/1646/163 +f 964/1598/176 957/1600/171 953/1648/36 +f 998/1650/144 999/1653/202 992/1651/162 +f 999/1653/202 1000/1661/206 993/1576/160 +f 993/1576/160 1000/1661/206 994/1654/34 +f 949/1655/203 950/1698/221 995/1643/200 +f 995/1643/200 950/1698/221 951/1656/204 +f 951/1656/204 952/1580/164 997/1579/163 +f 990/1584/167 953/2592/36 957/1588/171 +f 998/1556/144 954/1555/143 955/1659/205 +f 955/1659/205 956/1688/220 1000/1661/206 +f 1000/1661/206 956/1688/220 949/1655/203 +f 1009/1662/35 1010/1665/209 1002/1663/207 +f 1010/1665/209 1011/1667/211 1003/1666/210 +f 1011/1667/211 1012/1683/218 1004/1668/212 +f 1013/1674/213 1014/2593/219 1007/1675/215 +f 1007/1675/215 1014/2593/219 1015/1676/216 +f 1015/1676/216 1009/1686/35 1001/1678/208 +f 1016/1562/148 1017/1564/150 1010/1665/209 +f 1017/1564/150 1018/1680/153 1011/1679/211 +f 1018/1680/153 1019/1682/152 1012/1681/218 +f 1020/1669/156 1021/1685/145 1014/1684/219 +f 1021/1685/145 1022/1560/147 1015/1676/216 +f 1015/1676/216 1022/1560/147 1016/1561/148 +f 955/1687/205 980/1690/196 979/1631/194 +f 954/1689/143 981/1692/197 980/1690/196 +f 953/1691/36 982/2594/35 981/1692/197 +f 952/1693/164 983/1697/191 982/1694/35 +f 952/1693/164 951/1699/204 984/1696/198 +f 950/1698/221 985/1641/199 984/1696/198 +f 949/1655/203 986/1632/195 985/1641/199 +f 979/1631/194 986/1632/195 949/1655/203 +f 973/1602/178 972/2590/184 932/1700/124 +f 932/1702/124 972/1614/184 978/1703/222 +f 978/1703/222 977/1706/183 930/1705/123 +f 977/1706/183 976/2591/182 929/1610/121 +f 961/1611/34 975/1707/181 927/1530/117 +f 975/1707/181 974/1708/179 934/1541/128 +f 974/1708/179 973/1602/178 933/1701/126 +f 947/1709/62 1044/1718/5 1043/1710/27 +f 1005/1711/37 1049/1727/16 1048/1712/4 +f 942/1554/129 1042/1721/1 1039/1714/30 +f 943/1543/65 1039/1714/30 1040/1715/19 +f 946/1717/72 1041/2595/9 1044/1718/5 +f 944/1716/69 1040/1715/19 1037/1719/8 +f 948/1553/64 1043/1710/27 1042/1721/1 +f 1002/1663/207 1046/1729/5 1045/1724/15 +f 1001/1678/208 1045/2596/15 1052/1725/3 +f 1006/1726/214 1050/1733/19 1049/1727/16 +f 1003/1728/210 1047/1732/18 1046/1729/5 +f 1008/1677/217 1052/1725/3 1051/1730/17 +f 1004/1713/212 1048/1712/4 1047/1732/18 +f 1007/1731/215 1051/1730/17 1050/1733/19 +f 1060/1734/4 1064/1747/4 1065/1735/18 +f 1058/1737/5 1062/1743/5 1061/1738/15 +f 1054/1740/19 1055/1745/17 1066/1741/17 +f 1059/1736/18 1065/1735/18 1062/1743/5 +f 1056/1744/3 1067/1748/3 1066/1741/17 +f 1053/1746/16 1063/2597/16 1064/1747/4 +f 1057/1739/15 1061/1738/15 1067/1748/3 +f 1053/1749/16 1054/1740/19 1068/1742/19 +f 693/1754/29 707/1173/59 678/1174/17 +f 680/1179/15 708/1178/61 693/1754/29 +f 685/1758/13 689/1209/84 690/1206/81 +f 696/1219/90 689/1221/84 685/1759/13 +f 784/1355/90 777/1357/84 773/1760/13 +f 773/1761/13 777/1342/84 778/1338/81 +f 825/1766/12 850/1371/133 856/1331/71 +f 851/1767/70 850/1371/133 825/1766/12 +f 931/1768/12 945/1720/68 1037/1719/8 +f 931/1768/12 1038/1769/2 1041/1770/9 +f 1102/1772/55 1101/1783/60 1072/1773/16 +f 1100/1775/56 1106/1802/73 1070/1776/18 +f 1103/1781/59 1102/1772/55 1073/1774/19 +f 1101/1783/60 1100/2598/56 1071/1784/4 +f 1069/1785/5 1105/2599/134 1104/1786/61 +f 1149/1788/62 1163/2600/93 1162/1789/63 +f 1110/1791/28 1144/1904/129 1150/1790/64 +f 1145/1792/65 1144/1895/129 1110/1793/28 +f 1160/1795/67 1146/1797/69 1145/1792/65 +f 1160/1795/67 1159/1798/70 1147/1796/68 +f 1159/1798/70 1158/2601/133 1133/1799/12 +f 1133/1799/12 1158/2601/133 1164/1800/71 +f 1106/1802/73 1105/2599/134 1069/1785/5 +f 1090/1803/74 1121/1869/110 1115/1804/75 +f 1120/1806/76 1121/1869/110 1090/1803/74 +f 1091/1807/77 1092/1826/90 1119/1808/78 +f 1164/1800/71 1163/2600/93 1149/1788/62 +f 1087/1812/79 1117/2602/107 1118/1813/80 +f 1116/1815/82 1117/2602/107 1087/1812/79 +f 1088/1816/83 1089/1805/29 1115/1804/75 +f 1085/1817/84 1093/1829/13 1094/1818/85 +f 1094/1818/85 1095/1820/86 1087/1819/79 +f 1095/1820/86 1096/2121/87 1088/1821/83 +f 1090/1822/74 1097/2119/91 1098/1823/88 +f 1091/1824/77 1098/1823/88 1099/1825/89 +f 1092/1826/90 1099/1825/89 1093/1827/13 +f 1093/1829/13 1100/2598/56 1101/1783/60 +f 1101/1783/60 1102/2603/55 1095/1830/86 +f 1095/1830/86 1102/2603/55 1103/1831/59 +f 1104/1833/61 1105/1836/134 1098/1834/88 +f 1105/1836/134 1106/1802/73 1099/1825/89 +f 1106/1802/73 1100/1775/56 1093/1827/13 +f 1164/1800/71 1158/2601/133 1151/1837/12 +f 1163/1839/93 1164/1800/71 1157/1838/92 +f 1162/1841/63 1163/1839/93 1156/1840/94 +f 1153/1847/97 1160/1849/67 1161/1845/66 +f 1152/1848/98 1159/1798/70 1160/1849/67 +f 1151/1837/12 1158/2601/133 1159/1798/70 +f 1157/1838/92 1151/1837/12 1114/1850/100 +f 1108/1852/101 1156/1854/94 1157/1838/92 +f 1109/1853/102 1155/1856/95 1156/1854/94 +f 1153/1860/97 1154/1857/96 1111/1859/103 +f 1152/1848/98 1153/1860/97 1112/1861/104 +f 1151/1837/12 1152/1848/98 1113/1862/105 +f 1122/1863/29 1123/1871/106 1116/1815/82 +f 1116/1815/82 1123/1871/106 1124/1864/113 +f 1124/1864/113 1125/2125/108 1118/1866/80 +f 1119/1809/78 1126/1811/58 1127/1867/109 +f 1127/1867/109 1128/1878/116 1121/1869/110 +f 1121/1869/110 1128/1878/116 1122/1863/29 +f 1077/1870/111 1078/1916/132 1123/1871/106 +f 1123/1871/106 1078/1916/132 1079/1872/112 +f 1124/1873/113 1079/1872/112 1080/1874/114 +f 1082/1778/57 1083/1877/115 1127/1876/109 +f 1083/1877/115 1084/1879/131 1128/1878/116 +f 1084/1879/131 1077/1870/111 1122/1863/29 +f 1129/1880/117 1137/1896/28 1138/1881/118 +f 1130/1882/119 1138/1881/118 1139/1883/120 +f 1131/1884/121 1139/1883/120 1140/1885/122 +f 1141/1889/125 1142/1891/130 1135/1890/126 +f 1142/1891/130 1143/1893/127 1136/1892/128 +f 1143/1893/127 1137/1905/28 1129/1894/117 +f 1144/1895/129 1145/1792/65 1138/1881/118 +f 1145/1792/65 1146/2604/69 1139/1897/120 +f 1139/1897/120 1146/2604/69 1147/1898/68 +f 1148/1901/72 1149/2605/62 1142/1903/130 +f 1142/1903/130 1149/2605/62 1150/1790/64 +f 1143/1893/127 1150/1790/64 1144/1904/129 +f 1083/1906/115 1108/1908/101 1107/1851/99 +f 1082/1907/57 1109/1910/102 1108/1908/101 +f 1081/1909/13 1110/2606/28 1109/1910/102 +f 1080/1911/114 1111/1915/103 1110/1912/28 +f 1080/1911/114 1079/1917/112 1112/1914/104 +f 1078/1916/132 1113/1862/105 1112/1914/104 +f 1077/1870/111 1114/1850/100 1113/1862/105 +f 1107/1851/99 1114/1850/100 1077/1870/111 +f 1237/1921/62 1251/2607/93 1250/1922/63 +f 1198/1924/28 1232/2608/129 1238/1923/64 +f 1233/1925/65 1232/2036/129 1198/1926/28 +f 1248/1928/67 1234/1930/69 1233/1925/65 +f 1248/1928/67 1247/1989/70 1235/1929/68 +f 1178/1931/74 1209/2013/110 1203/1932/75 +f 1208/1934/76 1209/2013/110 1178/1931/74 +f 1179/1935/77 1180/1961/90 1207/1936/78 +f 1252/1937/71 1251/2607/93 1237/1921/62 +f 1175/1942/79 1205/2609/107 1206/1943/80 +f 1204/1945/82 1205/2609/107 1175/1942/79 +f 1176/1946/83 1177/1933/29 1203/1932/75 +f 1181/1947/13 1182/1965/85 1174/1944/81 +f 1174/1944/81 1182/1965/85 1183/1949/86 +f 1175/1950/79 1183/1949/86 1184/1951/87 +f 1185/1955/91 1186/1960/88 1179/1959/77 +f 1186/1960/88 1187/1962/89 1180/1961/90 +f 1187/1962/89 1181/1976/13 1173/1963/84 +f 1181/1947/13 1188/2610/56 1189/1964/60 +f 1189/1964/60 1190/1967/55 1183/1966/86 +f 1190/1967/55 1191/1969/59 1184/1968/87 +f 1134/1970/124 1192/2611/61 1177/1971/29 +f 1185/1957/91 1192/1956/61 1193/1973/134 +f 1193/1973/134 1194/2612/73 1187/1962/89 +f 1187/1962/89 1194/2612/73 1188/1975/56 +f 1245/1977/92 1252/1937/71 1246/1978/133 +f 1244/1980/94 1251/2613/93 1252/1937/71 +f 1250/1981/63 1251/2613/93 1244/1980/94 +f 1248/1987/67 1249/1985/66 1242/1984/96 +f 1247/1989/70 1248/1987/67 1241/1988/97 +f 1246/1978/133 1247/1989/70 1240/1990/98 +f 1245/1977/92 1239/1979/12 1202/1991/100 +f 1196/1993/101 1244/1995/94 1245/1977/92 +f 1197/1994/102 1243/1997/95 1244/1995/94 +f 1241/2001/97 1242/1998/96 1199/2000/103 +f 1201/2003/105 1240/1990/98 1241/2001/97 +f 1239/1979/12 1240/1990/98 1201/2003/105 +f 1203/1932/75 1210/2014/29 1211/2004/106 +f 1211/2004/106 1212/2614/113 1205/2005/107 +f 1205/2005/107 1212/2614/113 1213/1941/108 +f 1214/2009/58 1215/2012/109 1208/2010/76 +f 1215/2012/109 1216/2021/116 1209/2013/110 +f 1209/2013/110 1216/2021/116 1210/2014/29 +f 1165/2015/111 1166/2016/132 1211/2004/106 +f 1166/2016/132 1167/2615/112 1212/2017/113 +f 1212/2017/113 1167/2615/112 1168/1919/114 +f 1214/2006/58 1170/2008/57 1171/2019/115 +f 1171/2019/115 1172/2046/131 1216/2021/116 +f 1216/2021/116 1172/2046/131 1165/2015/111 +f 1225/2022/28 1226/2037/118 1218/2023/119 +f 1218/2023/119 1226/2037/118 1227/2025/120 +f 1219/2026/121 1227/2025/120 1228/2027/122 +f 1229/2030/125 1230/2616/130 1223/2031/126 +f 1223/2031/126 1230/2616/130 1231/2033/127 +f 1231/2033/127 1225/2044/28 1217/2035/117 +f 1232/2036/129 1233/1925/65 1226/2037/118 +f 1233/1925/65 1234/2039/69 1227/2038/120 +f 1234/2039/69 1235/2131/68 1228/2040/122 +f 1229/2041/125 1236/2133/72 1237/2042/62 +f 1230/2043/130 1237/2042/62 1238/1923/64 +f 1238/1923/64 1232/2608/129 1225/2044/28 +f 1171/2045/115 1196/2048/101 1195/1992/99 +f 1170/2047/57 1197/2050/102 1196/2048/101 +f 1169/2049/13 1198/2617/28 1197/2050/102 +f 1168/2051/114 1199/2055/103 1198/2052/28 +f 1168/2051/114 1167/2056/112 1200/2054/104 +f 1166/2016/132 1201/2003/105 1200/2054/104 +f 1165/2015/111 1202/1991/100 1201/2003/105 +f 1195/1992/99 1202/1991/100 1165/2015/111 +f 1267/2057/92 1274/2101/71 1268/2058/133 +f 1273/2060/93 1274/2101/71 1267/2057/92 +f 1265/2062/95 1272/2106/63 1273/2060/93 +f 1279/2063/1 1280/2618/27 1272/2064/63 +f 1271/2066/66 1278/2102/30 1279/2067/1 +f 1270/2069/67 1271/2108/66 1264/2070/96 +f 1262/2072/98 1269/2096/70 1270/2069/67 +f 1268/2058/133 1269/2096/70 1262/2072/98 +f 1267/2057/92 1261/2059/12 1260/2073/100 +f 1254/2075/101 1266/2077/94 1267/2057/92 +f 1255/2076/102 1265/2079/95 1266/2077/94 +f 1263/2083/97 1264/2080/96 1257/2082/103 +f 1259/2085/105 1262/2072/98 1263/2083/97 +f 1261/2059/12 1262/2072/98 1259/2085/105 +f 1219/2086/121 1258/2095/104 1257/2087/103 +f 1218/2023/119 1257/2087/103 1256/2088/28 +f 1217/2035/117 1256/2619/28 1255/2089/102 +f 1224/2034/128 1255/2089/102 1254/2090/101 +f 1223/2091/126 1254/2090/101 1253/2074/99 +f 1253/2074/99 1260/2073/100 1221/2093/12 +f 1221/2093/12 1260/2073/100 1259/2085/105 +f 1220/2094/123 1259/2085/105 1258/2095/104 +f 1269/2096/70 1276/2104/8 1277/2097/19 +f 1273/2099/93 1281/2109/5 1282/2100/9 +f 1270/2098/67 1277/2097/19 1278/2102/30 +f 1274/2101/71 1282/2100/9 1275/2103/2 +f 1268/2058/133 1275/2103/2 1276/2104/8 +f 1272/2064/63 1280/2618/27 1281/2109/5 +f 1190/2110/55 1189/2112/60 1130/1882/119 +f 1189/2112/60 1188/2620/56 1129/1880/117 +f 1129/1894/117 1188/2621/56 1194/2113/73 +f 1194/2113/73 1193/2115/134 1135/2114/126 +f 1193/2115/134 1192/2611/61 1134/1970/124 +f 1177/1971/29 1191/2117/59 1132/2116/123 +f 1191/2117/59 1190/2110/55 1131/2111/121 +f 1089/2122/29 1103/1781/59 1074/1782/17 +f 1076/1787/15 1104/1786/61 1089/2122/29 +f 1081/2127/13 1085/1817/84 1086/1814/81 +f 1092/1826/90 1085/1828/84 1081/2128/13 +f 1180/1961/90 1173/1963/84 1169/2129/13 +f 1169/2130/13 1173/1948/84 1174/1944/81 +f 1221/2134/12 1246/1978/133 1252/1937/71 +f 1247/1989/70 1246/1978/133 1221/2134/12 +f 1316/2135/223 1315/2146/228 1286/2136/18 +f 1314/2138/224 1320/2165/241 1284/2139/15 +f 1317/2144/227 1316/2135/223 1287/2137/4 +f 1315/2146/228 1314/2622/224 1285/2147/5 +f 1319/2148/229 1318/2623/301 1290/2149/17 +f 1363/2151/230 1377/2624/262 1376/2152/231 +f 1324/2154/27 1358/2264/297 1364/2153/232 +f 1359/2155/233 1358/2255/297 1324/2156/27 +f 1374/2158/235 1360/2160/237 1359/2155/233 +f 1374/2158/235 1373/2161/238 1361/2159/236 +f 1373/2161/238 1372/2625/302 1347/2162/8 +f 1347/2162/8 1372/2625/302 1378/2163/239 +f 1320/2165/241 1319/2148/229 1283/2150/3 +f 1304/2166/242 1335/2170/245 1329/2167/243 +f 1305/2169/244 1334/2172/247 1335/2170/245 +f 1305/2169/244 1306/2190/258 1333/2171/246 +f 1378/2163/239 1377/2624/262 1363/2151/230 +f 1301/2176/248 1331/2626/276 1332/2177/249 +f 1330/2179/251 1331/2626/276 1301/2176/248 +f 1302/2180/252 1303/2168/30 1329/2167/243 +f 1299/2181/253 1307/2192/9 1308/2182/254 +f 1308/2182/254 1309/2184/255 1301/2183/248 +f 1309/2184/255 1310/2481/259 1302/2185/252 +f 1304/2186/242 1311/2478/260 1312/2187/256 +f 1305/2188/244 1312/2187/256 1313/2189/257 +f 1313/2189/257 1307/2199/9 1299/2191/253 +f 1307/2192/9 1314/2622/224 1315/2146/228 +f 1315/2146/228 1316/2627/223 1309/2193/255 +f 1309/2193/255 1316/2627/223 1317/2194/227 +f 1311/2196/260 1318/2479/301 1319/2197/229 +f 1312/2198/256 1319/2197/229 1320/2165/241 +f 1320/2165/241 1314/2138/224 1307/2199/9 +f 1378/2163/239 1372/2625/302 1365/2200/8 +f 1377/2202/262 1378/2163/239 1371/2201/261 +f 1376/2204/231 1377/2202/262 1370/2203/263 +f 1367/2210/266 1374/2212/235 1375/2208/234 +f 1366/2211/267 1373/2161/238 1374/2212/235 +f 1365/2200/8 1372/2625/302 1373/2161/238 +f 1371/2201/261 1365/2200/8 1328/2213/268 +f 1322/2215/270 1370/2217/263 1371/2201/261 +f 1323/2216/271 1369/2219/264 1370/2217/263 +f 1367/2223/266 1368/2220/265 1325/2222/272 +f 1366/2211/267 1367/2223/266 1326/2224/273 +f 1365/2200/8 1366/2211/267 1327/2225/274 +f 1336/2226/30 1337/2227/275 1330/2179/251 +f 1337/2227/275 1338/2229/277 1331/2228/276 +f 1338/2229/277 1339/2486/282 1332/2230/249 +f 1333/2173/246 1340/2175/226 1341/2231/278 +f 1341/2231/278 1342/2233/279 1335/2170/245 +f 1342/2233/279 1336/2226/30 1329/2167/243 +f 1291/2234/280 1292/2277/300 1337/2227/275 +f 1337/2227/275 1292/2277/300 1293/2235/281 +f 1293/2235/281 1294/2484/299 1339/2237/282 +f 1340/2142/226 1296/2141/225 1297/2238/283 +f 1297/2238/283 1298/2267/298 1342/2233/279 +f 1342/2233/279 1298/2267/298 1291/2234/280 +f 1343/2240/284 1351/2256/27 1352/2241/285 +f 1344/2242/286 1352/2241/285 1353/2243/287 +f 1345/2244/288 1353/2243/287 1354/2245/289 +f 1348/2247/291 1355/2249/292 1356/2250/293 +f 1356/2250/293 1357/2253/296 1350/2252/295 +f 1357/2253/296 1351/2265/27 1343/2254/284 +f 1358/2255/297 1359/2155/233 1352/2241/285 +f 1359/2155/233 1360/2628/237 1353/2257/287 +f 1353/2257/287 1360/2628/237 1361/2258/236 +f 1362/2261/240 1363/2629/230 1356/2263/293 +f 1356/2263/293 1363/2629/230 1364/2153/232 +f 1357/2253/296 1364/2153/232 1358/2264/297 +f 1297/2266/283 1322/2269/270 1321/2214/269 +f 1296/2268/225 1323/2271/271 1322/2269/270 +f 1295/2270/9 1324/2630/27 1323/2271/271 +f 1294/2272/299 1325/2276/272 1324/2273/27 +f 1294/2272/299 1293/2278/281 1326/2275/273 +f 1292/2277/300 1327/2225/274 1326/2275/273 +f 1291/2234/280 1328/2213/268 1327/2225/274 +f 1321/2214/269 1328/2213/268 1291/2234/280 +f 1451/2282/230 1465/2631/262 1464/2283/231 +f 1412/2285/27 1446/2403/297 1452/2284/232 +f 1447/2286/233 1446/2395/297 1412/2287/27 +f 1462/2289/235 1448/2291/237 1447/2286/233 +f 1462/2289/235 1461/2349/238 1449/2290/236 +f 1392/2292/242 1423/2373/245 1417/2293/243 +f 1422/2295/247 1423/2373/245 1392/2292/242 +f 1393/2296/244 1394/2322/258 1421/2297/246 +f 1466/2298/239 1465/2631/262 1451/2282/230 +f 1389/2303/248 1419/2632/276 1420/2304/249 +f 1418/2306/251 1419/2632/276 1389/2303/248 +f 1390/2307/252 1391/2294/30 1417/2293/243 +f 1387/2308/253 1395/2326/9 1396/2309/254 +f 1388/2305/250 1396/2309/254 1397/2310/255 +f 1389/2311/248 1397/2310/255 1398/2312/259 +f 1392/2314/242 1399/2316/260 1400/2320/256 +f 1400/2320/256 1401/2323/257 1394/2322/258 +f 1401/2323/257 1395/2337/9 1387/2324/253 +f 1402/2325/224 1403/2327/228 1396/2309/254 +f 1403/2327/228 1404/2633/223 1397/2328/255 +f 1397/2328/255 1404/2633/223 1405/2329/227 +f 1348/2331/291 1406/2634/301 1391/2332/30 +f 1399/2318/260 1406/2317/301 1407/2334/229 +f 1407/2334/229 1408/2635/241 1401/2323/257 +f 1401/2323/257 1408/2635/241 1402/2336/224 +f 1459/2338/261 1466/2298/239 1460/2339/302 +f 1458/2341/263 1465/2636/262 1466/2298/239 +f 1464/2342/231 1465/2636/262 1458/2341/263 +f 1455/2348/266 1462/2637/235 1463/2346/234 +f 1461/2349/238 1462/2637/235 1455/2348/266 +f 1460/2339/302 1461/2349/238 1454/2350/267 +f 1459/2338/261 1453/2340/8 1416/2351/268 +f 1410/2353/270 1458/2638/263 1459/2338/261 +f 1457/2354/264 1458/2638/263 1410/2353/270 +f 1455/2360/266 1456/2357/265 1413/2359/272 +f 1415/2362/274 1454/2350/267 1455/2360/266 +f 1416/2351/268 1453/2340/8 1454/2350/267 +f 1424/2363/30 1425/2364/275 1418/2306/251 +f 1425/2364/275 1426/2639/277 1419/2365/276 +f 1419/2365/276 1426/2639/277 1427/2302/282 +f 1428/2369/226 1429/2640/278 1422/2370/247 +f 1422/2370/247 1429/2640/278 1430/2372/279 +f 1423/2373/245 1430/2372/279 1424/2363/30 +f 1379/2374/280 1380/2375/300 1425/2364/275 +f 1380/2375/300 1381/2377/281 1426/2376/277 +f 1381/2377/281 1382/2280/299 1427/2279/282 +f 1428/2366/226 1384/2368/225 1385/2379/283 +f 1385/2379/283 1386/2405/298 1430/2372/279 +f 1430/2372/279 1386/2405/298 1379/2374/280 +f 1431/2381/284 1439/2396/27 1440/2382/285 +f 1440/2382/285 1441/2641/287 1433/2384/288 +f 1433/2384/288 1441/2641/287 1442/2385/289 +f 1443/2388/292 1444/2642/293 1437/2389/294 +f 1437/2389/294 1444/2642/293 1445/2391/296 +f 1438/2392/295 1445/2391/296 1439/2393/27 +f 1446/2395/297 1447/2286/233 1440/2382/285 +f 1440/2382/285 1447/2286/233 1448/2397/237 +f 1448/2397/237 1449/2492/236 1442/2399/289 +f 1450/2400/240 1451/2643/230 1444/2401/293 +f 1444/2401/293 1451/2643/230 1452/2284/232 +f 1445/2391/296 1452/2284/232 1446/2403/297 +f 1385/2404/283 1410/2407/270 1409/2352/269 +f 1384/2406/225 1411/2409/271 1410/2407/270 +f 1383/2408/9 1412/2644/27 1411/2409/271 +f 1382/2410/299 1413/2414/272 1412/2411/27 +f 1382/2410/299 1381/2415/281 1414/2413/273 +f 1380/2375/300 1415/2362/274 1414/2413/273 +f 1379/2374/280 1416/2351/268 1415/2362/274 +f 1409/2352/269 1416/2351/268 1379/2374/280 +f 1481/2416/261 1488/2461/239 1482/2417/302 +f 1487/2419/262 1488/2461/239 1481/2416/261 +f 1479/2421/264 1486/2465/231 1487/2419/262 +f 1493/2422/1 1494/2645/29 1486/2423/231 +f 1470/2425/27 1485/2462/234 1492/2426/28 +f 1484/2428/235 1485/2467/234 1478/2429/265 +f 1476/2431/267 1483/2432/238 1484/2428/235 +f 1475/2418/8 1482/2417/302 1483/2432/238 +f 1481/2416/261 1475/2418/8 1474/2433/268 +f 1468/2435/270 1480/2437/263 1481/2416/261 +f 1469/2436/271 1479/2439/264 1480/2437/263 +f 1477/2443/266 1478/2440/265 1471/2442/272 +f 1476/2431/267 1477/2443/266 1472/2444/273 +f 1474/2433/268 1475/2418/8 1476/2431/267 +f 1433/2446/288 1472/2455/273 1471/2447/272 +f 1432/2383/286 1471/2447/272 1470/2448/27 +f 1431/2394/284 1470/2646/27 1469/2449/271 +f 1438/2392/295 1469/2449/271 1468/2450/270 +f 1437/2451/294 1468/2450/270 1467/2434/269 +f 1467/2434/269 1474/2433/268 1435/2453/8 +f 1435/2453/8 1474/2433/268 1473/2445/274 +f 1434/2454/290 1473/2445/274 1472/2455/273 +f 1484/2456/235 1483/2432/238 1490/2457/13 +f 1487/2459/262 1495/2468/3 1496/2460/12 +f 1484/2456/235 1491/2458/4 1492/2426/28 +f 1488/2461/239 1496/2460/12 1489/2463/2 +f 1482/2417/302 1489/2463/2 1490/2457/13 +f 1486/2423/231 1494/2645/29 1495/2468/3 +f 1404/2469/223 1403/2471/228 1344/2242/286 +f 1403/2471/228 1402/2647/224 1343/2240/284 +f 1343/2254/284 1402/2648/224 1408/2472/241 +f 1408/2472/241 1407/2474/229 1349/2473/294 +f 1407/2474/229 1406/2634/301 1348/2331/291 +f 1391/2332/30 1405/2476/227 1346/2475/290 +f 1405/2476/227 1404/2469/223 1345/2470/288 +f 1289/2482/19 1303/2483/30 1317/2144/227 +f 1290/2149/17 1318/2623/301 1303/2483/30 +f 1295/2488/9 1299/2181/253 1300/2178/250 +f 1306/2190/258 1299/2191/253 1295/2489/9 +f 1394/2322/258 1387/2324/253 1383/2490/9 +f 1383/2491/9 1387/2308/253 1388/2305/250 +f 1435/2494/8 1460/2339/302 1466/2298/239 +f 1461/2349/238 1460/2339/302 1435/2494/8 +f 1501/2495/19 1500/2509/16 1511/2496/16 +f 1497/2498/5 1507/2649/5 1512/2499/18 +f 1503/2501/3 1509/2508/3 1508/2502/15 +f 1501/2495/19 1505/2497/19 1506/2504/17 +f 1498/2500/18 1512/2499/18 1510/2506/4 +f 1502/2505/17 1506/2504/17 1509/2508/3 +f 1499/2507/4 1510/2506/4 1511/2496/16 +f 1504/2503/15 1508/2502/15 1507/2510/5 +f 1517/2512/19 1516/2526/16 1527/2513/16 +f 1513/2515/5 1523/2650/5 1528/2516/18 +f 1519/2518/3 1525/2525/3 1524/2519/15 +f 1518/2521/17 1517/2512/19 1521/2514/19 +f 1514/2517/18 1528/2516/18 1526/2523/4 +f 1518/2521/17 1522/2522/17 1525/2525/3 +f 1515/2524/4 1526/2523/4 1527/2513/16 +f 1520/2520/15 1524/2519/15 1523/2527/5 +f 1563/2529/3 1571/2539/3 1569/2530/17 +f 1568/2532/16 1576/2542/16 1575/2533/4 +f 1566/2535/18 1574/2651/18 1573/2536/5 +f 1564/2538/15 1572/2545/15 1571/2539/3 +f 1562/2531/17 1569/2530/17 1570/2540/19 +f 1561/2541/19 1570/2540/19 1576/2542/16 +f 1567/2534/4 1575/2533/4 1574/2543/18 +f 1565/2537/5 1573/2536/5 1572/2545/15 diff --git a/src/main/resources/assets/hbm/models/machines/furnace_iron.obj b/src/main/resources/assets/hbm/models/machines/furnace_iron.obj new file mode 100644 index 000000000..5fe9f036e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/furnace_iron.obj @@ -0,0 +1,608 @@ +# Blender v2.79 (sub 0) OBJ File: 'furnace_iron.blend' +# www.blender.org +o On +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.687500 +v -0.500000 0.562500 0.687500 +v 0.500000 0.562500 0.687500 +v 0.437500 0.625000 0.687500 +vt 0.955128 0.500000 +vt 0.955128 0.602941 +vt 0.948718 0.617647 +vt 0.852564 0.500000 +vt 0.826923 0.602941 +vt 0.826923 0.500000 +vt 0.980769 0.500000 +vt 0.980769 0.602941 +vt 0.858974 0.617647 +vt 0.948718 0.676471 +vt 0.858974 0.676471 +vt 0.826923 0.617647 +vt 0.852564 0.602941 +vt 0.852564 0.617647 +vt 0.955128 0.617647 +vt 0.980769 0.617647 +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.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 4/1/1 11/2/1 12/3/1 +f 3/4/2 5/5/2 1/6/2 +f 11/2/3 2/7/3 8/8/3 +f 9/9/4 7/10/4 6/11/4 +f 6/12/5 10/13/5 9/14/5 +f 12/15/6 8/8/6 7/16/6 +f 12/3/1 9/9/1 4/1/1 +f 9/9/1 10/13/1 3/4/1 +f 4/1/1 9/9/1 3/4/1 +f 3/4/2 10/13/2 5/5/2 +f 11/2/3 4/1/3 2/7/3 +f 9/9/4 12/3/4 7/10/4 +f 6/12/5 5/5/5 10/13/5 +f 12/15/6 11/2/6 8/8/6 +o Off +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.687500 +v -0.500000 0.562500 0.687500 +v 0.500000 0.562500 0.687500 +v 0.437500 0.625000 0.687500 +vt 0.955128 0.323529 +vt 0.955128 0.426471 +vt 0.948718 0.441176 +vt 0.852564 0.323529 +vt 0.826923 0.426471 +vt 0.826923 0.323529 +vt 0.980769 0.323529 +vt 0.980769 0.426471 +vt 0.858974 0.441176 +vt 0.948718 0.500000 +vt 0.858974 0.500000 +vt 0.826923 0.441176 +vt 0.852564 0.426471 +vt 0.852564 0.441176 +vt 0.955128 0.441176 +vt 0.980769 0.441176 +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.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 16/17/7 23/18/7 24/19/7 +f 15/20/8 17/21/8 13/22/8 +f 23/18/9 14/23/9 20/24/9 +f 21/25/10 19/26/10 18/27/10 +f 18/28/11 22/29/11 21/30/11 +f 24/31/12 20/24/12 19/32/12 +f 24/19/7 21/25/7 16/17/7 +f 21/25/7 22/29/7 15/20/7 +f 16/17/7 21/25/7 15/20/7 +f 15/20/8 22/29/8 17/21/8 +f 23/18/9 16/17/9 14/23/9 +f 21/25/10 24/19/10 19/26/10 +f 18/28/11 17/21/11 22/29/11 +f 24/31/12 23/18/12 20/24/12 +o Main +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v -1.000000 0.125000 1.000000 +v 1.000000 0.125000 1.000000 +v -1.000000 0.125000 -1.000000 +v 1.000000 0.125000 -1.000000 +v -0.937500 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v -0.937500 1.250000 -0.937500 +v -0.937500 1.250000 0.937500 +v 0.937500 1.250000 0.937500 +v 0.937500 1.250000 -0.937500 +v -0.437500 1.500000 -0.937500 +v -0.437500 1.500000 0.937500 +v 0.437500 1.500000 0.937500 +v 0.437500 1.500000 -0.937500 +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.437500 0.625000 0.812500 +v -0.312500 0.625000 0.812500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v -0.312500 0.125000 0.812500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.125000 0.812500 +v 0.875000 2.000000 -0.187500 +v 0.875000 2.000000 0.187500 +v 0.500000 2.000000 0.187500 +v 0.500000 2.000000 -0.187500 +v 0.875000 1.250000 -0.187500 +v 0.500000 1.250000 -0.187500 +v 0.875000 1.250000 0.187500 +v 0.500000 1.250000 0.187500 +v 0.500000 1.250000 -0.312500 +v 0.875000 1.250000 -0.312500 +v 0.500000 1.250000 -0.687500 +v 0.875000 1.250000 -0.687500 +v 0.500000 2.000000 -0.687500 +v 0.500000 2.000000 -0.312500 +v 0.875000 2.000000 -0.312500 +v 0.875000 2.000000 -0.687500 +v -0.312500 1.500000 -0.187500 +v 0.312500 1.500000 -0.187500 +v -0.312500 1.500000 -0.812500 +v 0.312500 1.500000 -0.812500 +v -0.312500 1.625000 -0.812500 +v -0.312500 1.625000 -0.187500 +v 0.312500 1.625000 -0.187500 +v 0.312500 1.625000 -0.812500 +v -0.312500 1.500000 0.812500 +v 0.312500 1.500000 0.812500 +v -0.312500 1.500000 0.187500 +v 0.312500 1.500000 0.187500 +v -0.312500 1.625000 0.187500 +v -0.312500 1.625000 0.812500 +v 0.312500 1.625000 0.812500 +v 0.312500 1.625000 0.187500 +v -0.500000 1.250000 -0.750000 +v -0.625000 1.250000 -0.750000 +v -0.500000 1.500000 -0.750000 +v -0.625000 1.500000 -0.750000 +v -0.500000 1.250000 0.750000 +v -0.625000 1.250000 0.750000 +v -0.500000 1.500000 0.750000 +v -0.625000 1.500000 0.750000 +v -0.500000 1.250000 -0.625000 +v -0.625000 1.250000 -0.625000 +v -0.500000 1.250000 0.625000 +v -0.625000 1.250000 0.625000 +v -0.500000 1.625000 -0.625000 +v -0.500000 1.625000 0.625000 +v -0.625000 1.625000 0.625000 +v -0.625000 1.625000 -0.625000 +v -0.500000 1.500000 -0.625000 +v -0.625000 1.500000 -0.625000 +v -0.500000 1.500000 0.625000 +v -0.625000 1.500000 0.625000 +v -0.875000 1.500000 0.625000 +v -0.750000 1.500000 0.625000 +v -0.875000 1.500000 -0.625000 +v -0.750000 1.500000 -0.625000 +v -0.875000 1.625000 -0.625000 +v -0.875000 1.625000 0.625000 +v -0.750000 1.625000 0.625000 +v -0.750000 1.625000 -0.625000 +v -0.875000 1.250000 0.625000 +v -0.750000 1.250000 0.625000 +v -0.875000 1.250000 -0.625000 +v -0.750000 1.250000 -0.625000 +v -0.875000 1.500000 0.750000 +v -0.750000 1.500000 0.750000 +v -0.875000 1.250000 0.750000 +v -0.750000 1.250000 0.750000 +v -0.875000 1.500000 -0.750000 +v -0.750000 1.500000 -0.750000 +v -0.875000 1.250000 -0.750000 +v -0.750000 1.250000 -0.750000 +v -0.375000 0.875000 0.937500 +v 0.375000 0.875000 0.937500 +v -0.375000 1.125000 0.937500 +v 0.375000 1.125000 0.937500 +v -0.375000 1.125000 0.812500 +v -0.375000 0.875000 0.812500 +v 0.375000 0.875000 0.812500 +v 0.375000 1.125000 0.812500 +v -0.187500 0.625000 0.812500 +v -0.062500 0.625000 0.812500 +v -0.062500 0.125000 0.812500 +v -0.187500 0.125000 0.812500 +v 0.062500 0.625000 0.812500 +v 0.187500 0.625000 0.812500 +v 0.187500 0.125000 0.812500 +v 0.062500 0.125000 0.812500 +v 0.312500 0.625000 0.812500 +v 0.437500 0.625000 0.812500 +v 0.437500 0.125000 0.812500 +v 0.312500 0.125000 0.812500 +vt 0.012821 -0.000000 +vt 0.217949 0.470588 +vt 0.012821 0.470588 +vt 0.217949 0.970588 +vt 0.211538 0.514706 +vt 0.217949 0.500000 +vt 0.230769 0.970588 +vt 0.230769 0.500000 +vt -0.000000 0.500000 +vt 0.012821 0.970588 +vt -0.000000 0.970588 +vt 0.012821 1.000000 +vt 0.217949 1.000000 +vt 0.012821 0.500000 +vt 0.019231 0.955882 +vt 0.211538 0.955882 +vt 0.615385 0.764706 +vt 0.564103 0.323529 +vt 0.615385 0.323529 +vt 0.807692 -0.000000 +vt 0.615385 0.264706 +vt 0.615385 -0.000000 +vt 0.423077 -0.000000 +vt 0.230769 0.264706 +vt 0.230769 -0.000000 +vt 0.474359 0.764706 +vt 0.474359 0.323529 +vt 0.423077 0.323529 +vt 0.423077 0.764706 +vt 1.000000 -0.000000 +vt 0.948718 0.323529 +vt 0.557692 0.176471 +vt 0.474359 0.117647 +vt 0.564103 0.117647 +vt 0.166667 0.573529 +vt 0.064103 0.514706 +vt 0.166667 0.514706 +vt 0.570513 0.102941 +vt 0.467949 0.102941 +vt 0.423077 0.264706 +vt 0.307692 0.264706 +vt 0.269231 0.441176 +vt 0.269231 0.264706 +vt 0.384615 0.264706 +vt 0.346154 0.441176 +vt 0.346154 0.264706 +vt 0.230769 0.441176 +vt 0.230769 0.264706 +vt 0.307692 0.441176 +vt 0.269231 0.529412 +vt 0.307692 0.441176 +vt 0.269231 0.529412 +vt 0.269231 0.441176 +vt 0.346154 0.264706 +vt 0.307692 0.264706 +vt 0.269231 0.264706 +vt 0.230769 0.441176 +vt 0.230769 0.264706 +vt 0.384615 0.264706 +vt 0.346154 0.441176 +vt 0.743590 0.411765 +vt 0.679487 0.558824 +vt 0.679487 0.411765 +vt 0.743590 0.411765 +vt 0.679487 0.558824 +vt 0.679487 0.411765 +vt 0.666667 0.411765 +vt 0.666667 0.558824 +vt 0.679487 0.588235 +vt 0.743590 0.558824 +vt 0.743590 0.588235 +vt 0.743590 0.382353 +vt 0.679487 0.382353 +vt 0.756410 0.558824 +vt 0.756410 0.411765 +vt 0.666667 0.411765 +vt 0.666667 0.558824 +vt 0.679487 0.588235 +vt 0.743590 0.558824 +vt 0.743590 0.588235 +vt 0.743590 0.382353 +vt 0.679487 0.382353 +vt 0.756410 0.558824 +vt 0.756410 0.411765 +vt 0.653846 0.647059 +vt 0.641026 0.676471 +vt 0.641026 0.647059 +vt 0.634615 0.661765 +vt 0.660256 0.661765 +vt 0.653846 0.676471 +vt 0.641026 0.735294 +vt 0.653846 0.735294 +vt 0.666667 0.735294 +vt 0.666667 0.676471 +vt 0.628205 0.676471 +vt 0.628205 0.735294 +vt 0.641026 0.352941 +vt 0.653846 0.323529 +vt 0.653846 0.352941 +vt 0.634615 0.338235 +vt 0.641026 0.323529 +vt 0.660256 0.338235 +vt 0.653846 0.264706 +vt 0.641026 0.264706 +vt 0.628205 0.264706 +vt 0.628205 0.323529 +vt 0.666667 0.323529 +vt 0.666667 0.264706 +vt 0.628205 0.352941 +vt 0.628205 0.647059 +vt 0.666667 0.647059 +vt 0.666667 0.352941 +vt 0.615385 0.735294 +vt 0.615385 0.676471 +vt 0.615385 0.323529 +vt 0.615385 0.352941 +vt 0.628205 0.647059 +vt 0.615385 0.352941 +vt 0.628205 0.352941 +vt 0.653846 0.352941 +vt 0.641026 0.647059 +vt 0.641026 0.352941 +vt 0.615385 0.323529 +vt 0.628205 0.264706 +vt 0.628205 0.323529 +vt 0.628205 0.676471 +vt 0.615385 0.735294 +vt 0.615385 0.676471 +vt 0.666667 0.647059 +vt 0.666667 0.352941 +vt 0.666667 0.323529 +vt 0.653846 0.264706 +vt 0.666667 0.264706 +vt 0.641026 0.323529 +vt 0.641026 0.264706 +vt 0.653846 0.323529 +vt 0.660256 0.338235 +vt 0.634615 0.338235 +vt 0.641026 0.735294 +vt 0.628205 0.735294 +vt 0.666667 0.735294 +vt 0.653846 0.676471 +vt 0.666667 0.676471 +vt 0.653846 0.735294 +vt 0.660256 0.661765 +vt 0.653846 0.647059 +vt 0.641026 0.676471 +vt 0.634615 0.661765 +vt 0.769231 0.352941 +vt 0.756410 0.294118 +vt 0.769231 0.294118 +vt 0.557692 0.235294 +vt 0.480769 0.176471 +vt 0.480769 0.235294 +vt 0.679487 0.352941 +vt 0.679487 0.294118 +vt 0.666667 0.294118 +vt 0.666667 0.352941 +vt 0.679487 0.382353 +vt 0.756410 0.352941 +vt 0.756410 0.382353 +vt 0.756410 0.264706 +vt 0.679487 0.264706 +vt 0.320513 0.441176 +vt 0.307692 0.558824 +vt 0.307692 0.441176 +vt 0.333333 0.441176 +vt 0.320513 0.558824 +vt 0.320513 0.441176 +vt 0.346154 0.441176 +vt 0.333333 0.558824 +vt 0.333333 0.441176 +vt 0.358974 0.441176 +vt 0.346154 0.558824 +vt 0.346154 0.441176 +vt 0.217949 0.000000 +vt 0.019231 0.514706 +vt 0.564103 0.764706 +vt 0.807692 0.264706 +vt 1.000000 0.264706 +vt 0.858974 0.323529 +vt 0.064103 0.573529 +vt 0.570513 -0.000000 +vt 0.467949 -0.000000 +vt 0.384615 0.441176 +vt 0.307692 0.529412 +vt 0.307692 0.529412 +vt 0.384615 0.441176 +vt 0.615385 0.264706 +vt 0.615385 0.647059 +vt 0.615385 0.647059 +vt 0.615385 0.264706 +vt 0.320513 0.558824 +vt 0.333333 0.558824 +vt 0.346154 0.558824 +vt 0.358974 0.558824 +vn 0.0000 -1.0000 0.0000 +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.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 27/33/13 26/34/13 25/35/13 +f 32/36/14 34/37/14 30/38/14 +f 28/39/15 30/38/15 26/40/15 +f 25/41/16 31/42/16 27/43/16 +f 27/44/17 32/36/17 28/45/17 +f 26/34/18 29/46/18 25/35/18 +f 29/46/14 35/47/14 31/42/14 +f 31/42/14 36/48/14 32/36/14 +f 40/49/19 43/50/19 39/51/19 +f 36/52/15 39/53/15 34/54/15 +f 33/55/16 37/56/16 35/57/16 +f 43/50/14 41/58/14 42/59/14 +f 38/60/20 41/58/20 37/61/20 +f 36/52/17 35/62/17 41/63/17 +f 130/64/18 52/65/18 54/66/18 +f 48/67/14 45/68/14 46/69/14 +f 30/38/14 46/69/14 45/68/14 +f 55/70/18 34/54/18 39/53/18 +f 33/55/18 51/71/18 38/72/18 +f 63/73/18 59/74/18 64/75/18 +f 62/76/17 57/77/17 61/78/17 +f 64/75/16 60/79/16 62/80/16 +f 61/78/15 58/81/15 63/73/15 +f 58/81/14 60/82/14 59/74/14 +f 71/83/14 69/84/14 70/85/14 +f 68/86/15 71/83/15 66/87/15 +f 65/88/16 69/89/16 67/90/16 +f 67/91/17 72/92/17 68/86/17 +f 66/87/18 70/85/18 65/88/18 +f 87/93/14 85/94/14 86/95/14 +f 79/96/14 77/97/14 78/98/14 +f 73/99/16 77/97/16 75/100/16 +f 75/101/17 80/102/17 76/103/17 +f 74/104/18 78/98/18 73/105/18 +f 76/106/15 79/96/15 74/107/15 +f 81/108/16 85/94/16 83/109/16 +f 83/110/17 88/111/17 84/112/17 +f 82/113/18 86/95/18 81/114/18 +f 84/115/15 87/93/15 82/116/15 +f 101/117/21 92/118/21 104/119/21 +f 104/119/16 92/118/16 106/120/16 +f 105/121/15 91/122/15 101/117/15 +f 90/123/17 91/122/17 89/124/17 +f 97/125/15 91/122/15 105/126/15 +f 106/127/16 90/123/16 98/128/16 +f 103/129/22 95/130/22 102/131/22 +f 108/132/16 96/133/16 103/129/16 +f 102/131/15 95/130/15 107/134/15 +f 93/135/18 96/133/18 94/136/18 +f 100/137/16 96/133/16 108/138/16 +f 107/139/15 93/135/15 99/140/15 +f 108/141/16 104/119/16 106/142/16 +f 105/143/15 102/131/15 107/144/15 +f 106/127/18 97/145/18 105/146/18 +f 107/147/17 100/137/17 108/138/17 +f 102/131/14 104/119/14 103/129/14 +f 106/142/13 107/148/13 108/141/13 +f 111/149/13 110/150/13 109/151/13 +f 115/152/14 113/153/14 114/154/14 +f 110/155/17 117/156/17 109/157/17 +f 111/158/18 120/159/18 112/160/18 +f 112/161/15 115/152/15 110/162/15 +f 109/151/16 113/153/16 111/149/16 +f 110/163/15 124/164/15 118/165/15 +f 117/156/16 121/166/16 109/157/16 +f 124/164/18 121/166/18 123/167/18 +f 115/152/15 122/168/15 110/169/15 +f 109/170/16 121/166/16 114/154/16 +f 114/154/22 122/168/22 115/152/22 +f 111/158/16 127/171/16 119/172/16 +f 120/173/15 126/174/15 112/175/15 +f 127/171/17 126/174/17 128/176/17 +f 112/177/15 126/174/15 116/178/15 +f 113/153/16 125/179/16 111/180/16 +f 116/178/21 125/179/21 113/153/21 +f 132/181/16 135/182/16 130/183/16 +f 42/59/18 132/184/18 43/50/18 +f 129/185/18 131/186/18 38/72/18 +f 39/53/18 130/64/18 55/70/18 +f 135/182/18 133/187/18 134/188/18 +f 129/189/15 133/187/15 131/190/15 +f 131/191/13 136/192/13 132/193/13 +f 130/194/14 134/188/14 129/195/14 +f 53/196/18 49/197/18 56/198/18 +f 139/199/18 137/200/18 140/201/18 +f 143/202/18 141/203/18 144/204/18 +f 147/205/18 145/206/18 148/207/18 +f 27/33/13 28/208/13 26/34/13 +f 32/36/14 36/48/14 34/37/14 +f 28/39/15 32/36/15 30/38/15 +f 25/41/16 29/46/16 31/42/16 +f 27/44/17 31/42/17 32/36/17 +f 26/34/18 30/38/18 29/46/18 +f 29/46/14 33/209/14 35/47/14 +f 31/42/14 35/47/14 36/48/14 +f 40/49/19 44/210/19 43/50/19 +f 36/52/15 40/211/15 39/53/15 +f 33/55/16 38/72/16 37/56/16 +f 43/50/14 44/210/14 41/58/14 +f 38/60/20 42/59/20 41/58/20 +f 35/62/17 37/212/17 41/63/17 +f 41/63/17 44/213/17 36/52/17 +f 44/213/17 40/211/17 36/52/17 +f 130/64/18 129/185/18 52/65/18 +f 48/67/14 47/214/14 45/68/14 +f 33/209/14 29/46/14 45/68/14 +f 29/46/14 30/38/14 45/68/14 +f 30/38/14 34/37/14 46/69/14 +f 55/70/18 46/215/18 34/54/18 +f 33/55/18 45/216/18 51/71/18 +f 63/73/18 58/81/18 59/74/18 +f 62/76/17 60/217/17 57/77/17 +f 64/75/16 59/74/16 60/79/16 +f 61/78/15 57/77/15 58/81/15 +f 58/81/14 57/218/14 60/82/14 +f 71/83/14 72/219/14 69/84/14 +f 68/86/15 72/92/15 71/83/15 +f 65/88/16 70/85/16 69/89/16 +f 67/91/17 69/220/17 72/92/17 +f 66/87/18 71/83/18 70/85/18 +f 87/93/14 88/111/14 85/94/14 +f 79/96/14 80/102/14 77/97/14 +f 73/99/16 78/98/16 77/97/16 +f 75/101/17 77/97/17 80/102/17 +f 74/104/18 79/96/18 78/98/18 +f 76/106/15 80/102/15 79/96/15 +f 81/108/16 86/95/16 85/94/16 +f 83/110/17 85/94/17 88/111/17 +f 82/113/18 87/93/18 86/95/18 +f 84/115/15 88/111/15 87/93/15 +f 101/117/21 91/122/21 92/118/21 +f 90/123/17 92/118/17 91/122/17 +f 97/125/15 89/124/15 91/122/15 +f 106/127/16 92/118/16 90/123/16 +f 103/129/22 96/133/22 95/130/22 +f 93/135/18 95/130/18 96/133/18 +f 100/137/16 94/136/16 96/133/16 +f 107/139/15 95/130/15 93/135/15 +f 108/141/16 103/129/16 104/119/16 +f 105/143/15 101/117/15 102/131/15 +f 106/127/18 98/128/18 97/145/18 +f 107/147/17 99/221/17 100/137/17 +f 102/131/14 101/117/14 104/119/14 +f 106/142/13 105/222/13 107/148/13 +f 111/149/13 112/223/13 110/150/13 +f 115/152/14 116/178/14 113/153/14 +f 110/155/17 118/224/17 117/156/17 +f 111/158/18 119/172/18 120/159/18 +f 112/161/15 116/178/15 115/152/15 +f 109/151/16 114/154/16 113/153/16 +f 110/163/15 122/168/15 124/164/15 +f 117/156/16 123/167/16 121/166/16 +f 124/164/18 122/168/18 121/166/18 +f 114/154/22 121/166/22 122/168/22 +f 111/158/16 125/179/16 127/171/16 +f 120/173/15 128/176/15 126/174/15 +f 127/171/17 125/179/17 126/174/17 +f 116/178/21 126/174/21 125/179/21 +f 132/181/16 136/192/16 135/182/16 +f 42/59/18 131/186/18 132/184/18 +f 131/186/18 42/59/18 38/72/18 +f 38/72/18 51/71/18 129/185/18 +f 51/71/18 52/65/18 129/185/18 +f 39/53/18 43/50/18 132/184/18 +f 132/184/18 130/64/18 39/53/18 +f 130/64/18 54/66/18 55/70/18 +f 135/182/18 136/192/18 133/187/18 +f 129/189/15 134/188/15 133/187/15 +f 131/191/13 133/187/13 136/192/13 +f 130/194/14 135/182/14 134/188/14 +f 53/196/18 50/225/18 49/197/18 +f 139/199/18 138/226/18 137/200/18 +f 143/202/18 142/227/18 141/203/18 +f 147/205/18 146/228/18 145/206/18 diff --git a/src/main/resources/assets/hbm/models/machines/turbofan.obj b/src/main/resources/assets/hbm/models/machines/turbofan.obj new file mode 100644 index 000000000..859739cba --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/turbofan.obj @@ -0,0 +1,9317 @@ +# Blender v2.79 (sub 0) OBJ File: 'turbofan.blend' +# www.blender.org +o Blades +v -0.000000 1.375000 3.000000 +v 1.312500 1.375000 3.000000 +v -0.000000 1.625000 2.750000 +v 1.312500 1.625000 2.750000 +v -1.312500 1.625000 3.000000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.437500 2.875000 +v 1.312500 1.437500 2.875000 +v 1.312500 1.500000 2.812500 +v -0.000000 1.625000 3.000000 +v -0.000000 1.375000 2.750000 +v -1.312500 1.375000 2.750000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.562500 2.875000 +v -1.312500 1.562500 2.875000 +v -1.312500 1.500000 2.812500 +v -0.125000 1.500000 3.000000 +v -0.125000 0.187500 3.000000 +v 0.125000 1.500000 2.750000 +v 0.125000 0.187500 2.750000 +v 0.125000 2.812500 3.000000 +v -0.000000 1.500000 2.812500 +v -0.062500 1.500000 2.875000 +v -0.062500 0.187500 2.875000 +v -0.000000 0.187500 2.812500 +v 0.125000 1.500000 3.000000 +v -0.125000 1.500000 2.750000 +v -0.125000 2.812500 2.750000 +v -0.000000 1.500000 2.812500 +v 0.062500 1.500000 2.875000 +v 0.062500 2.812500 2.875000 +v 0.000000 2.812500 2.812500 +v -0.088388 1.411612 3.000000 +v 0.839689 0.483534 3.000000 +v 0.088388 1.588388 2.750000 +v 1.016466 0.660311 2.750000 +v -0.839689 2.516466 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.455806 2.875000 +v 0.883883 0.527729 2.875000 +v 0.928078 0.571923 2.812500 +v 0.088388 1.588388 3.000000 +v -0.088388 1.411612 2.750000 +v -1.016466 2.339690 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.544194 2.875000 +v -0.883883 2.472272 2.875000 +v -0.928078 2.428078 2.812500 +v -0.088388 1.588388 3.000000 +v -1.016466 0.660311 3.000000 +v 0.088388 1.411612 2.750000 +v -0.839689 0.483534 2.750000 +v 1.016466 2.339689 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.544194 2.875000 +v -0.972272 0.616117 2.875000 +v -0.928078 0.571923 2.812500 +v 0.088388 1.411612 3.000000 +v -0.088388 1.588388 2.750000 +v 0.839689 2.516466 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.455806 2.875000 +v 0.972272 2.383883 2.875000 +v 0.928078 2.428078 2.812500 +v -0.047836 1.384515 3.000000 +v 1.164756 0.882243 3.000000 +v 0.047835 1.615485 2.750000 +v 1.260427 1.113213 2.750000 +v -1.164757 2.117757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.442258 2.875000 +v 1.188674 0.939986 2.875000 +v 1.212592 0.997728 2.812500 +v 0.047835 1.615485 3.000000 +v -0.047836 1.384515 2.750000 +v -1.260427 1.886787 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.557743 2.875000 +v -1.188674 2.060015 2.875000 +v -1.212592 2.002273 2.812500 +v -0.115485 1.547836 3.000000 +v -0.617757 0.335244 3.000000 +v 0.115485 1.452165 2.750000 +v -0.386787 0.239573 2.750000 +v 0.617757 2.664757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.523918 2.875000 +v -0.560015 0.311326 2.875000 +v -0.502272 0.287408 2.812500 +v 0.115485 1.452165 3.000000 +v -0.115485 1.547836 2.750000 +v 0.386787 2.760427 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.476083 2.875000 +v 0.560015 2.688674 2.875000 +v 0.502272 2.712592 2.812500 +v -0.115485 1.452165 3.000000 +v 0.386787 0.239573 3.000000 +v 0.115485 1.547835 2.750000 +v 0.617757 0.335244 2.750000 +v -0.386787 2.760427 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.476082 2.875000 +v 0.444529 0.263491 2.875000 +v 0.502272 0.287408 2.812500 +v 0.115485 1.547835 3.000000 +v -0.115485 1.452165 2.750000 +v -0.617757 2.664757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.523918 2.875000 +v -0.444529 2.736510 2.875000 +v -0.502272 2.712592 2.812500 +v -0.047836 1.615485 3.000000 +v -1.260427 1.113214 3.000000 +v 0.047835 1.384515 2.750000 +v -1.164757 0.882243 2.750000 +v 1.260427 1.886787 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.557743 2.875000 +v -1.236510 1.055470 2.875000 +v -1.212592 0.997728 2.812500 +v 0.047835 1.384515 3.000000 +v -0.047836 1.615485 2.750000 +v 1.164756 2.117757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.442258 2.875000 +v 1.236509 1.944530 2.875000 +v 1.212592 2.002272 2.812500 +v -0.024386 1.377402 3.000000 +v 1.262894 1.121346 3.000000 +v 0.024386 1.622599 2.750000 +v 1.311667 1.366542 2.750000 +v -1.262895 1.878654 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.438701 2.875000 +v 1.275087 1.182645 2.875000 +v 1.287281 1.243944 2.812500 +v 0.024386 1.622599 3.000000 +v -0.024386 1.377402 2.750000 +v -1.311667 1.633458 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.561299 2.875000 +v -1.275088 1.817356 2.875000 +v -1.287281 1.756056 2.812500 +v -0.122598 1.524386 3.000000 +v -0.378654 0.237106 3.000000 +v 0.122598 1.475614 2.750000 +v -0.133458 0.188334 2.750000 +v 0.378654 2.762895 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.512194 2.875000 +v -0.317355 0.224913 2.875000 +v -0.256056 0.212719 2.812500 +v 0.122598 1.475614 3.000000 +v -0.122598 1.524386 2.750000 +v 0.133458 2.811667 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.487807 2.875000 +v 0.317355 2.775088 2.875000 +v 0.256056 2.787281 2.812500 +v -0.103934 1.430554 3.000000 +v 0.625252 0.339250 3.000000 +v 0.103934 1.569447 2.750000 +v 0.833120 0.478143 2.750000 +v -0.625252 2.660750 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.465277 2.875000 +v 0.677219 0.373973 2.875000 +v 0.729186 0.408696 2.812500 +v 0.103934 1.569447 3.000000 +v -0.103934 1.430554 2.750000 +v -0.833120 2.521858 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.534723 2.875000 +v -0.677219 2.626027 2.875000 +v -0.729186 2.591304 2.812500 +v -0.069446 1.603934 3.000000 +v -1.160750 0.874748 3.000000 +v 0.069446 1.396067 2.750000 +v -1.021858 0.666881 2.750000 +v 1.160750 2.125252 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.551967 2.875000 +v -1.126027 0.822781 2.875000 +v -1.091304 0.770814 2.812500 +v 0.069446 1.396067 3.000000 +v -0.069446 1.603934 2.750000 +v 1.021858 2.333120 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.448033 2.875000 +v 1.126027 2.177219 2.875000 +v 1.091304 2.229186 2.812500 +v -0.069446 1.396067 3.000000 +v 1.021857 0.666881 3.000000 +v 0.069446 1.603934 2.750000 +v 1.160750 0.874748 2.750000 +v -1.021858 2.333120 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.448033 2.875000 +v 1.056581 0.718847 2.875000 +v 1.091304 0.770814 2.812500 +v 0.069446 1.603934 3.000000 +v -0.069446 1.396067 2.750000 +v -1.160750 2.125253 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.551967 2.875000 +v -1.056581 2.281153 2.875000 +v -1.091304 2.229186 2.812500 +v -0.103934 1.569447 3.000000 +v -0.833120 0.478143 3.000000 +v 0.103934 1.430554 2.750000 +v -0.625252 0.339250 2.750000 +v 0.833120 2.521858 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.534723 2.875000 +v -0.781153 0.443419 2.875000 +v -0.729186 0.408696 2.812500 +v 0.103934 1.430554 3.000000 +v -0.103934 1.569447 2.750000 +v 0.625252 2.660750 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.465277 2.875000 +v 0.781153 2.556581 2.875000 +v 0.729186 2.591304 2.812500 +v -0.122598 1.475614 3.000000 +v 0.133458 0.188334 3.000000 +v 0.122598 1.524386 2.750000 +v 0.378654 0.237106 2.750000 +v -0.133458 2.811667 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.487807 2.875000 +v 0.194757 0.200526 2.875000 +v 0.256056 0.212720 2.812500 +v 0.122598 1.524386 3.000000 +v -0.122598 1.475614 2.750000 +v -0.378654 2.762895 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.512194 2.875000 +v -0.194757 2.799474 2.875000 +v -0.256056 2.787281 2.812500 +v -0.024386 1.622599 3.000000 +v -1.311667 1.366542 3.000000 +v 0.024386 1.377402 2.750000 +v -1.262895 1.121346 2.750000 +v 1.311667 1.633458 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.561299 2.875000 +v -1.299474 1.305243 2.875000 +v -1.287281 1.243944 2.812500 +v 0.024386 1.377402 3.000000 +v -0.024386 1.622599 2.750000 +v 1.262894 1.878654 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.438701 2.875000 +v 1.299474 1.694757 2.875000 +v 1.287280 1.756056 2.812500 +v -0.000000 1.437500 2.375000 +v 0.937500 1.437500 2.375000 +v -0.000000 1.562500 2.312500 +v 0.937500 1.562500 2.312500 +v -0.000000 1.562500 2.375000 +v -0.937500 1.562500 2.375000 +v -0.000000 1.437500 2.312500 +v -0.937500 1.437500 2.312500 +v -0.062500 1.500000 2.375000 +v -0.062500 0.562500 2.375000 +v 0.062500 1.500000 2.312500 +v 0.062500 0.562500 2.312500 +v 0.062500 1.500000 2.375000 +v 0.062500 2.437500 2.375000 +v -0.062500 1.500000 2.312500 +v -0.062500 2.437500 2.312500 +v -0.044194 1.455806 2.375000 +v 0.618718 0.792893 2.375000 +v 0.044194 1.544194 2.312500 +v 0.707106 0.881282 2.312500 +v 0.044194 1.544194 2.375000 +v -0.618719 2.207107 2.375000 +v -0.044195 1.455806 2.312500 +v -0.707107 2.118718 2.312500 +v -0.044194 1.544194 2.375000 +v -0.707107 0.881282 2.375000 +v 0.044194 1.455806 2.312500 +v -0.618719 0.792893 2.312500 +v 0.044194 1.455806 2.375000 +v 0.707107 2.118718 2.375000 +v -0.044194 1.544194 2.312500 +v 0.618718 2.207107 2.312500 +v -0.023918 1.442257 2.375000 +v 0.842219 1.083492 2.375000 +v 0.023917 1.557743 2.312500 +v 0.890054 1.198977 2.312500 +v 0.023917 1.557743 2.375000 +v -0.842220 1.916508 2.375000 +v -0.023918 1.442257 2.312500 +v -0.890055 1.801023 2.312500 +v -0.057743 1.523918 2.375000 +v -0.416509 0.657781 2.375000 +v 0.057742 1.476082 2.312500 +v -0.301024 0.609945 2.312500 +v 0.057742 1.476082 2.375000 +v 0.416508 2.342219 2.375000 +v -0.057743 1.523918 2.312500 +v 0.301023 2.390055 2.312500 +v -0.057743 1.476082 2.375000 +v 0.301023 0.609945 2.375000 +v 0.057742 1.523918 2.312500 +v 0.416508 0.657781 2.312500 +v 0.057742 1.523918 2.375000 +v -0.301024 2.390055 2.375000 +v -0.057743 1.476082 2.312500 +v -0.416508 2.342218 2.312500 +v -0.023918 1.557743 2.375000 +v -0.890055 1.198977 2.375000 +v 0.023917 1.442257 2.312500 +v -0.842220 1.083492 2.312500 +v 0.023917 1.442257 2.375000 +v 0.890054 1.801023 2.375000 +v -0.023918 1.557743 2.312500 +v 0.842219 1.916508 2.312500 +v -0.012193 1.438701 2.375000 +v 0.907293 1.255804 2.375000 +v 0.012193 1.561298 2.312500 +v 0.931679 1.378402 2.312500 +v 0.012193 1.561299 2.375000 +v -0.907293 1.744196 2.375000 +v -0.012193 1.438702 2.312500 +v -0.931680 1.621598 2.312500 +v -0.061299 1.512194 2.375000 +v -0.244197 0.592707 2.375000 +v 0.061299 1.487806 2.312500 +v -0.121598 0.568321 2.312500 +v 0.061299 1.487806 2.375000 +v 0.244196 2.407293 2.375000 +v -0.061299 1.512194 2.312500 +v 0.121598 2.431679 2.312500 +v -0.051967 1.465277 2.375000 +v 0.468880 0.685774 2.375000 +v 0.051967 1.534723 2.312500 +v 0.572814 0.755220 2.312500 +v 0.051967 1.534723 2.375000 +v -0.468881 2.314226 2.375000 +v -0.051967 1.465277 2.312500 +v -0.572814 2.244780 2.312500 +v -0.034723 1.551967 2.375000 +v -0.814226 1.031120 2.375000 +v 0.034723 1.448033 2.312500 +v -0.744780 0.927186 2.312500 +v 0.034723 1.448033 2.375000 +v 0.814226 1.968880 2.375000 +v -0.034723 1.551967 2.312500 +v 0.744779 2.072814 2.312500 +v -0.034723 1.448032 2.375000 +v 0.744779 0.927186 2.375000 +v 0.034723 1.551968 2.312500 +v 0.814225 1.031119 2.312500 +v 0.034723 1.551968 2.375000 +v -0.744780 2.072814 2.375000 +v -0.034724 1.448032 2.312500 +v -0.814226 1.968881 2.312500 +v -0.051967 1.534723 2.375000 +v -0.572814 0.755220 2.375000 +v 0.051967 1.465277 2.312500 +v -0.468881 0.685774 2.312500 +v 0.051967 1.465277 2.375000 +v 0.572814 2.244780 2.375000 +v -0.051967 1.534723 2.312500 +v 0.468880 2.314226 2.312500 +v -0.061299 1.487806 2.375000 +v 0.121598 0.568321 2.375000 +v 0.061299 1.512194 2.312500 +v 0.244196 0.592707 2.312500 +v 0.061299 1.512194 2.375000 +v -0.121598 2.431679 2.375000 +v -0.061299 1.487806 2.312500 +v -0.244197 2.407292 2.312500 +v -0.012193 1.561299 2.375000 +v -0.931680 1.378403 2.375000 +v 0.012193 1.438701 2.312500 +v -0.907293 1.255804 2.312500 +v 0.012193 1.438701 2.375000 +v 0.931679 1.621597 2.375000 +v -0.012193 1.561299 2.312500 +v 0.907293 1.744196 2.312500 +v 0.500000 1.562500 -2.500000 +v 0.937500 1.562500 -2.500000 +v 0.500000 1.437500 -2.375000 +v 0.937500 1.437500 -2.375000 +v -0.500000 1.437500 -2.500000 +v -0.937500 1.437500 -2.500000 +v -0.500000 1.562500 -2.375000 +v -0.937500 1.562500 -2.375000 +v 0.062500 1.000000 -2.500000 +v 0.062500 0.562500 -2.500000 +v -0.062500 1.000000 -2.375000 +v -0.062500 0.562500 -2.375000 +v -0.062500 2.000000 -2.500000 +v -0.062500 2.437500 -2.500000 +v 0.062500 2.000000 -2.375000 +v 0.062500 2.437500 -2.375000 +v 0.397747 1.190641 -2.500000 +v 0.707106 0.881282 -2.500000 +v 0.309359 1.102252 -2.375000 +v 0.618718 0.792893 -2.375000 +v -0.397748 1.809360 -2.500000 +v -0.707107 2.118719 -2.500000 +v -0.309359 1.897748 -2.375000 +v -0.618719 2.207107 -2.375000 +v -0.309360 1.102252 -2.500000 +v -0.618719 0.792893 -2.500000 +v -0.397748 1.190641 -2.375000 +v -0.707107 0.881282 -2.375000 +v 0.309359 1.897748 -2.500000 +v 0.618718 2.207107 -2.500000 +v 0.397747 1.809360 -2.375000 +v 0.707107 2.118718 -2.375000 +v 0.485857 1.366401 -2.500000 +v 0.890054 1.198977 -2.500000 +v 0.438022 1.250916 -2.375000 +v 0.842219 1.083492 -2.375000 +v -0.485858 1.633599 -2.500000 +v -0.890055 1.801023 -2.500000 +v -0.438022 1.749084 -2.375000 +v -0.842219 1.916509 -2.375000 +v -0.133600 1.014143 -2.500000 +v -0.301024 0.609945 -2.500000 +v -0.249085 1.061978 -2.375000 +v -0.416509 0.657781 -2.375000 +v 0.133599 1.985857 -2.500000 +v 0.301023 2.390055 -2.500000 +v 0.249084 1.938022 -2.375000 +v 0.416508 2.342219 -2.375000 +v 0.249084 1.061978 -2.500000 +v 0.416508 0.657781 -2.500000 +v 0.133599 1.014143 -2.375000 +v 0.301023 0.609945 -2.375000 +v -0.249084 1.938022 -2.500000 +v -0.416508 2.342219 -2.500000 +v -0.133599 1.985857 -2.375000 +v -0.301023 2.390055 -2.375000 +v -0.438022 1.250916 -2.500000 +v -0.842220 1.083492 -2.500000 +v -0.485858 1.366401 -2.375000 +v -0.890055 1.198977 -2.375000 +v 0.438022 1.749084 -2.500000 +v 0.842219 1.916508 -2.500000 +v 0.485857 1.633599 -2.375000 +v 0.890054 1.801023 -2.375000 +v 0.502586 1.463754 -2.500000 +v 0.931679 1.378402 -2.500000 +v 0.478199 1.341156 -2.375000 +v 0.907293 1.255804 -2.375000 +v -0.502586 1.536246 -2.500000 +v -0.931679 1.621598 -2.500000 +v -0.478200 1.658844 -2.375000 +v -0.907293 1.744197 -2.375000 +v -0.036246 0.997414 -2.500000 +v -0.121598 0.568321 -2.500000 +v -0.158845 1.021801 -2.375000 +v -0.244197 0.592707 -2.375000 +v 0.036246 2.002586 -2.500000 +v 0.121598 2.431679 -2.500000 +v 0.158844 1.978200 -2.375000 +v 0.244196 2.407293 -2.375000 +v 0.329752 1.118989 -2.500000 +v 0.572814 0.755220 -2.500000 +v 0.225818 1.049542 -2.375000 +v 0.468880 0.685774 -2.375000 +v -0.329752 1.881012 -2.500000 +v -0.572814 2.244780 -2.500000 +v -0.225818 1.950458 -2.375000 +v -0.468880 2.314226 -2.375000 +v -0.381012 1.170248 -2.500000 +v -0.744780 0.927186 -2.500000 +v -0.450458 1.274182 -2.375000 +v -0.814226 1.031120 -2.375000 +v 0.381012 1.829752 -2.500000 +v 0.744779 2.072814 -2.500000 +v 0.450458 1.725819 -2.375000 +v 0.814226 1.968880 -2.375000 +v 0.450458 1.274182 -2.500000 +v 0.814226 1.031120 -2.500000 +v 0.381011 1.170248 -2.375000 +v 0.744779 0.927186 -2.375000 +v -0.450458 1.725819 -2.500000 +v -0.814226 1.968881 -2.500000 +v -0.381012 1.829752 -2.375000 +v -0.744780 2.072814 -2.375000 +v -0.225819 1.049542 -2.500000 +v -0.468881 0.685774 -2.500000 +v -0.329752 1.118989 -2.375000 +v -0.572814 0.755221 -2.375000 +v 0.225818 1.950458 -2.500000 +v 0.468880 2.314226 -2.500000 +v 0.329752 1.881012 -2.375000 +v 0.572814 2.244780 -2.375000 +v 0.158844 1.021801 -2.500000 +v 0.244196 0.592707 -2.500000 +v 0.036246 0.997415 -2.375000 +v 0.121598 0.568321 -2.375000 +v -0.158844 1.978200 -2.500000 +v -0.244196 2.407293 -2.500000 +v -0.036246 2.002586 -2.375000 +v -0.121598 2.431680 -2.375000 +v -0.478200 1.341156 -2.500000 +v -0.907293 1.255804 -2.500000 +v -0.502586 1.463754 -2.375000 +v -0.931679 1.378402 -2.375000 +v 0.478199 1.658844 -2.500000 +v 0.907293 1.744196 -2.500000 +v 0.502586 1.536246 -2.375000 +v 0.931679 1.621598 -2.375000 +v 0.000000 1.875000 3.000000 +v -0.143507 1.846455 3.000000 +v -0.265165 1.765165 3.000000 +v -0.346455 1.643507 3.000000 +v -0.375000 1.500000 3.000000 +v -0.346455 1.356494 3.000000 +v -0.265165 1.234835 3.000000 +v -0.143507 1.153545 3.000000 +v 0.000000 1.125000 3.000000 +v 0.143506 1.153545 3.000000 +v 0.265165 1.234835 3.000000 +v 0.346455 1.356494 3.000000 +v 0.375000 1.500000 3.000000 +v 0.346455 1.643507 3.000000 +v 0.265165 1.765165 3.000000 +v 0.143506 1.846455 3.000000 +v 0.000000 1.640625 3.375000 +v -0.053815 1.629921 3.375000 +v -0.099437 1.599437 3.375000 +v -0.129920 1.553815 3.375000 +v -0.140625 1.500000 3.375000 +v -0.129920 1.446185 3.375000 +v -0.099437 1.400563 3.375000 +v -0.053815 1.370080 3.375000 +v 0.000000 1.359375 3.375000 +v 0.053815 1.370080 3.375000 +v 0.099437 1.400563 3.375000 +v 0.129920 1.446185 3.375000 +v 0.140625 1.500000 3.375000 +v 0.129920 1.553815 3.375000 +v 0.099437 1.599437 3.375000 +v 0.053815 1.629921 3.375000 +v 0.000000 1.500000 3.500000 +v 0.000000 1.875000 2.750000 +v -0.143507 1.846455 2.750000 +v -0.265165 1.765165 2.750000 +v -0.346455 1.643507 2.750000 +v -0.375000 1.500000 2.750000 +v -0.346455 1.356494 2.750000 +v -0.265165 1.234835 2.750000 +v -0.143507 1.153545 2.750000 +v 0.000000 1.125000 2.750000 +v 0.143506 1.153545 2.750000 +v 0.265165 1.234835 2.750000 +v 0.346455 1.356494 2.750000 +v 0.375000 1.500000 2.750000 +v 0.346455 1.643507 2.750000 +v 0.265165 1.765165 2.750000 +v 0.143506 1.846455 2.750000 +v 0.071753 1.673227 2.750000 +v 0.132582 1.632583 2.750000 +v 0.173227 1.571754 2.750000 +v 0.187500 1.500000 2.750000 +v 0.173227 1.428247 2.750000 +v 0.132582 1.367417 2.750000 +v 0.071753 1.326773 2.750000 +v 0.000000 1.312500 2.750000 +v -0.071753 1.326773 2.750000 +v -0.132583 1.367417 2.750000 +v -0.173227 1.428247 2.750000 +v -0.187500 1.500000 2.750000 +v -0.173227 1.571754 2.750000 +v -0.132583 1.632583 2.750000 +v -0.071753 1.673227 2.750000 +v 0.000000 1.687500 2.750000 +v 0.071753 1.673227 1.125000 +v 0.132582 1.632583 1.125000 +v 0.173227 1.571754 1.125000 +v 0.187500 1.500000 1.125000 +v 0.173227 1.428247 1.125000 +v 0.132582 1.367417 1.125000 +v 0.071753 1.326773 1.125000 +v 0.000000 1.312500 1.125000 +v -0.071753 1.326773 1.125000 +v -0.132583 1.367417 1.125000 +v -0.173227 1.428247 1.125000 +v -0.187500 1.500000 1.125000 +v -0.173227 1.571754 1.125000 +v -0.132583 1.632583 1.125000 +v -0.071753 1.673227 1.125000 +v 0.000000 1.687500 1.125000 +v -0.000000 1.375000 3.000000 +v 1.312500 1.375000 3.000000 +v -0.000000 1.625000 2.750000 +v 1.312500 1.625000 2.750000 +v -1.312500 1.625000 3.000000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.437500 2.875000 +v 1.312500 1.437500 2.875000 +v 1.312500 1.500000 2.812500 +v -0.000000 1.625000 3.000000 +v -0.000000 1.375000 2.750000 +v -1.312500 1.375000 2.750000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.562500 2.875000 +v -1.312500 1.562500 2.875000 +v -1.312500 1.500000 2.812500 +v -0.125000 1.500000 3.000000 +v -0.125000 0.187500 3.000000 +v 0.125000 1.500000 2.750000 +v 0.125000 0.187500 2.750000 +v 0.125000 2.812500 3.000000 +v -0.000000 1.500000 2.812500 +v -0.062500 1.500000 2.875000 +v -0.062500 0.187500 2.875000 +v -0.000000 0.187500 2.812500 +v 0.125000 1.500000 3.000000 +v -0.125000 1.500000 2.750000 +v -0.125000 2.812500 2.750000 +v -0.000000 1.500000 2.812500 +v 0.062500 1.500000 2.875000 +v 0.062500 2.812500 2.875000 +v 0.000000 2.812500 2.812500 +v -0.088388 1.411612 3.000000 +v 0.839689 0.483534 3.000000 +v 0.088388 1.588388 2.750000 +v 1.016466 0.660311 2.750000 +v -0.839689 2.516466 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.455806 2.875000 +v 0.883883 0.527729 2.875000 +v 0.928078 0.571923 2.812500 +v 0.088388 1.588388 3.000000 +v -0.088388 1.411612 2.750000 +v -1.016466 2.339690 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.544194 2.875000 +v -0.883883 2.472272 2.875000 +v -0.928078 2.428078 2.812500 +v -0.088388 1.588388 3.000000 +v -1.016466 0.660311 3.000000 +v 0.088388 1.411612 2.750000 +v -0.839689 0.483534 2.750000 +v 1.016466 2.339689 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.544194 2.875000 +v -0.972272 0.616117 2.875000 +v -0.928078 0.571923 2.812500 +v 0.088388 1.411612 3.000000 +v -0.088388 1.588388 2.750000 +v 0.839689 2.516466 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.455806 2.875000 +v 0.972272 2.383883 2.875000 +v 0.928078 2.428078 2.812500 +v -0.047836 1.384515 3.000000 +v 1.164756 0.882243 3.000000 +v 0.047835 1.615485 2.750000 +v 1.260427 1.113213 2.750000 +v -1.164757 2.117757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.442258 2.875000 +v 1.188674 0.939986 2.875000 +v 1.212592 0.997728 2.812500 +v 0.047835 1.615485 3.000000 +v -0.047836 1.384515 2.750000 +v -1.260427 1.886787 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.557743 2.875000 +v -1.188674 2.060015 2.875000 +v -1.212592 2.002273 2.812500 +v -0.115485 1.547836 3.000000 +v -0.617757 0.335244 3.000000 +v 0.115485 1.452165 2.750000 +v -0.386787 0.239573 2.750000 +v 0.617757 2.664757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.523918 2.875000 +v -0.560015 0.311326 2.875000 +v -0.502272 0.287408 2.812500 +v 0.115485 1.452165 3.000000 +v -0.115485 1.547836 2.750000 +v 0.386787 2.760427 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.476083 2.875000 +v 0.560015 2.688674 2.875000 +v 0.502272 2.712592 2.812500 +v -0.115485 1.452165 3.000000 +v 0.386787 0.239573 3.000000 +v 0.115485 1.547835 2.750000 +v 0.617757 0.335244 2.750000 +v -0.386787 2.760427 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.476082 2.875000 +v 0.444529 0.263491 2.875000 +v 0.502272 0.287408 2.812500 +v 0.115485 1.547835 3.000000 +v -0.115485 1.452165 2.750000 +v -0.617757 2.664757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.523918 2.875000 +v -0.444529 2.736510 2.875000 +v -0.502272 2.712592 2.812500 +v -0.047836 1.615485 3.000000 +v -1.260427 1.113214 3.000000 +v 0.047835 1.384515 2.750000 +v -1.164757 0.882243 2.750000 +v 1.260427 1.886787 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.557743 2.875000 +v -1.236510 1.055470 2.875000 +v -1.212592 0.997728 2.812500 +v 0.047835 1.384515 3.000000 +v -0.047836 1.615485 2.750000 +v 1.164756 2.117757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.442258 2.875000 +v 1.236509 1.944530 2.875000 +v 1.212592 2.002272 2.812500 +v -0.024386 1.377402 3.000000 +v 1.262894 1.121346 3.000000 +v 0.024386 1.622599 2.750000 +v 1.311667 1.366542 2.750000 +v -1.262895 1.878654 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.438701 2.875000 +v 1.275087 1.182645 2.875000 +v 1.287281 1.243944 2.812500 +v 0.024386 1.622599 3.000000 +v -0.024386 1.377402 2.750000 +v -1.311667 1.633458 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.561299 2.875000 +v -1.275088 1.817356 2.875000 +v -1.287281 1.756056 2.812500 +v -0.122598 1.524386 3.000000 +v -0.378654 0.237106 3.000000 +v 0.122598 1.475614 2.750000 +v -0.133458 0.188334 2.750000 +v 0.378654 2.762895 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.512194 2.875000 +v -0.317355 0.224913 2.875000 +v -0.256056 0.212719 2.812500 +v 0.122598 1.475614 3.000000 +v -0.122598 1.524386 2.750000 +v 0.133458 2.811667 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.487807 2.875000 +v 0.317355 2.775088 2.875000 +v 0.256056 2.787281 2.812500 +v -0.103934 1.430554 3.000000 +v 0.625252 0.339250 3.000000 +v 0.103934 1.569447 2.750000 +v 0.833120 0.478143 2.750000 +v -0.625252 2.660750 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.465277 2.875000 +v 0.677219 0.373973 2.875000 +v 0.729186 0.408696 2.812500 +v 0.103934 1.569447 3.000000 +v -0.103934 1.430554 2.750000 +v -0.833120 2.521858 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.534723 2.875000 +v -0.677219 2.626027 2.875000 +v -0.729186 2.591304 2.812500 +v -0.069446 1.603934 3.000000 +v -1.160750 0.874748 3.000000 +v 0.069446 1.396067 2.750000 +v -1.021858 0.666881 2.750000 +v 1.160750 2.125252 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.551967 2.875000 +v -1.126027 0.822781 2.875000 +v -1.091304 0.770814 2.812500 +v 0.069446 1.396067 3.000000 +v -0.069446 1.603934 2.750000 +v 1.021858 2.333120 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.448033 2.875000 +v 1.126027 2.177219 2.875000 +v 1.091304 2.229186 2.812500 +v -0.069446 1.396067 3.000000 +v 1.021857 0.666881 3.000000 +v 0.069446 1.603934 2.750000 +v 1.160750 0.874748 2.750000 +v -1.021858 2.333120 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.448033 2.875000 +v 1.056581 0.718847 2.875000 +v 1.091304 0.770814 2.812500 +v 0.069446 1.603934 3.000000 +v -0.069446 1.396067 2.750000 +v -1.160750 2.125253 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.551967 2.875000 +v -1.056581 2.281153 2.875000 +v -1.091304 2.229186 2.812500 +v -0.103934 1.569447 3.000000 +v -0.833120 0.478143 3.000000 +v 0.103934 1.430554 2.750000 +v -0.625252 0.339250 2.750000 +v 0.833120 2.521858 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.534723 2.875000 +v -0.781153 0.443419 2.875000 +v -0.729186 0.408696 2.812500 +v 0.103934 1.430554 3.000000 +v -0.103934 1.569447 2.750000 +v 0.625252 2.660750 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.465277 2.875000 +v 0.781153 2.556581 2.875000 +v 0.729186 2.591304 2.812500 +v -0.122598 1.475614 3.000000 +v 0.133458 0.188334 3.000000 +v 0.122598 1.524386 2.750000 +v 0.378654 0.237106 2.750000 +v -0.133458 2.811667 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.487807 2.875000 +v 0.194757 0.200526 2.875000 +v 0.256056 0.212720 2.812500 +v 0.122598 1.524386 3.000000 +v -0.122598 1.475614 2.750000 +v -0.378654 2.762895 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.512194 2.875000 +v -0.194757 2.799474 2.875000 +v -0.256056 2.787281 2.812500 +v -0.024386 1.622599 3.000000 +v -1.311667 1.366542 3.000000 +v 0.024386 1.377402 2.750000 +v -1.262895 1.121346 2.750000 +v 1.311667 1.633458 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.561299 2.875000 +v -1.299474 1.305243 2.875000 +v -1.287281 1.243944 2.812500 +v 0.024386 1.377402 3.000000 +v -0.024386 1.622599 2.750000 +v 1.262894 1.878654 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.438701 2.875000 +v 1.299474 1.694757 2.875000 +v 1.287280 1.756056 2.812500 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.988506 0.437909 +vt 1.000000 0.450980 +vt 0.988506 0.457516 +vt 0.988506 0.594771 +vt 1.000000 0.607843 +vt 0.988506 0.614379 +vt 1.000000 0.424837 +vt 1.000000 0.431373 +vt 0.988506 0.555556 +vt 1.000000 0.568627 +vt 0.988506 0.575163 +vt 1.000000 0.588235 +vt 0.988506 0.712418 +vt 1.000000 0.732026 +vt 0.988506 0.732026 +vt 0.988506 0.535948 +vt 1.000000 0.549020 +vt 1.000000 0.699346 +vt 1.000000 0.712418 +vt 1.000000 0.522876 +vt 1.000000 0.529412 +vt 0.988506 0.673203 +vt 1.000000 0.692810 +vt 0.988506 0.692810 +vt 0.988506 0.516340 +vt 1.000000 0.503268 +vt 1.000000 0.509804 +vt 1.000000 0.660131 +vt 1.000000 0.666667 +vt 0.988506 0.477124 +vt 1.000000 0.490196 +vt 0.988506 0.496732 +vt 0.988506 0.653595 +vt 1.000000 0.640523 +vt 1.000000 0.647059 +vt 1.000000 0.470588 +vt 1.000000 0.627451 +vt 0.988506 0.633987 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 1.000000 0.444444 +vt 1.000000 0.601307 +vt 0.988506 0.418301 +vt 1.000000 0.562092 +vt 1.000000 0.581699 +vt 1.000000 0.718954 +vt 1.000000 0.542484 +vt 1.000000 0.679739 +vt 1.000000 0.483660 +vt 1.000000 0.464052 +vt 1.000000 0.620915 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.876238 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888727 +vt 0.769834 0.888726 +vt 0.850677 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888727 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.973180 0.477124 +vt 0.950192 0.490196 +vt 0.950192 0.483660 +vt 0.973180 0.673203 +vt 0.950192 0.660131 +vt 0.973180 0.653595 +vt 0.973180 0.516340 +vt 0.950192 0.503268 +vt 0.973180 0.496732 +vt 0.973180 0.692810 +vt 0.950192 0.679739 +vt 0.950192 0.529412 +vt 0.950192 0.522876 +vt 0.973180 0.712418 +vt 0.950192 0.699346 +vt 0.973180 0.535948 +vt 0.950192 0.549020 +vt 0.950192 0.542484 +vt 0.950192 0.725490 +vt 0.950192 0.718954 +vt 0.973180 0.575163 +vt 0.950192 0.588235 +vt 0.950192 0.581699 +vt 0.950192 0.562092 +vt 0.973180 0.555556 +vt 0.973180 0.437909 +vt 0.950192 0.424837 +vt 0.973180 0.418301 +vt 0.973180 0.614379 +vt 0.950192 0.601307 +vt 0.973180 0.594771 +vt 0.973180 0.457516 +vt 0.950192 0.444444 +vt 0.973180 0.633987 +vt 0.950192 0.620915 +vt 0.950192 0.470588 +vt 0.950192 0.464052 +vt 0.950192 0.647059 +vt 0.950192 0.640523 +vt 0.938697 0.640523 +vt 0.950192 0.627451 +vt 0.938697 0.620915 +vt 0.950192 0.607843 +vt 0.938697 0.601307 +vt 0.938697 0.581699 +vt 0.950192 0.568627 +vt 0.938697 0.562092 +vt 0.938697 0.542484 +vt 0.938697 0.522876 +vt 0.950192 0.509804 +vt 0.938697 0.503268 +vt 0.938697 0.483660 +vt 0.938697 0.464052 +vt 0.950192 0.450980 +vt 0.938697 0.444444 +vt 0.950192 0.431373 +vt 0.938697 0.424837 +vt 0.938697 0.718954 +vt 0.950192 0.705882 +vt 0.938697 0.699346 +vt 0.950192 0.686275 +vt 0.938697 0.679739 +vt 0.950192 0.666667 +vt 0.938697 0.660131 +vt 0.973180 0.732026 +vt 0.670498 0.862745 +vt 0.770115 0.869281 +vt 0.670498 0.869281 +vt 0.670498 0.941176 +vt 0.770115 0.947712 +vt 0.670498 0.947712 +vt 0.670498 0.921569 +vt 0.770115 0.928105 +vt 0.670498 0.928105 +vt 0.670498 0.888889 +vt 0.770115 0.895425 +vt 0.670498 0.895425 +vt 0.670498 0.960784 +vt 0.770115 0.967320 +vt 0.670498 0.967320 +vt 0.670498 0.934641 +vt 0.770115 0.941176 +vt 0.670498 0.915033 +vt 0.770115 0.921569 +vt 0.670498 0.882353 +vt 0.770115 0.888889 +vt 0.670498 0.908497 +vt 0.770115 0.915033 +vt 0.670498 0.954248 +vt 0.770115 0.960784 +vt 0.670498 0.901961 +vt 0.770115 0.908497 +vt 0.670498 0.875817 +vt 0.770115 0.882353 +vt 0.770115 0.954248 +vt 0.770115 0.875817 +vt 0.770115 0.934641 +vt 0.770115 0.901961 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876238 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850677 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850677 0.888726 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.850676 0.862660 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.862660 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888727 +vt 0.850677 0.888727 +vt 0.770115 0.862745 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888727 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888727 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888727 +vt 0.850677 0.888727 +vn 0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 0.0000 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.3162 -0.3162 0.8944 +vn -0.3162 0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn 0.4132 -0.1711 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.0872 0.4386 0.8944 +vn -0.0872 -0.4386 0.8944 +vn 0.4386 -0.0872 0.8944 +vn -0.4386 0.0872 0.8944 +vn 0.3718 0.2485 0.8944 +vn -0.3718 -0.2485 0.8944 +vn 0.2485 -0.3718 0.8944 +vn -0.2485 0.3718 0.8944 +vn 0.2485 0.3718 0.8944 +vn -0.2485 -0.3718 0.8944 +vn 0.3718 -0.2485 0.8944 +vn -0.3718 0.2485 0.8944 +vn 0.4386 0.0872 0.8944 +vn -0.4386 -0.0872 0.8944 +vn 0.0872 -0.4386 0.8944 +vn -0.0872 0.4386 0.8944 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.5000 -0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn -0.2706 -0.6533 -0.7071 +vn 0.2706 0.6533 -0.7071 +vn -0.6533 0.2706 -0.7071 +vn 0.6533 -0.2706 -0.7071 +vn -0.6533 -0.2706 -0.7071 +vn 0.6533 0.2706 -0.7071 +vn -0.2706 0.6533 -0.7071 +vn 0.2706 -0.6533 -0.7071 +vn -0.1379 -0.6935 -0.7071 +vn 0.1379 0.6935 -0.7071 +vn -0.6935 0.1379 -0.7071 +vn 0.6935 -0.1379 -0.7071 +vn -0.5879 -0.3928 -0.7071 +vn 0.5879 0.3928 -0.7071 +vn -0.3928 0.5879 -0.7071 +vn 0.3928 -0.5879 -0.7071 +vn -0.3928 -0.5879 -0.7071 +vn 0.3928 0.5879 -0.7071 +vn -0.5879 0.3928 -0.7071 +vn 0.5879 -0.3928 -0.7071 +vn -0.6935 -0.1379 -0.7071 +vn 0.6935 0.1379 -0.7071 +vn -0.1380 0.6935 -0.7071 +vn 0.1379 -0.6935 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.1380 0.6935 -0.7071 +vn 0.6935 -0.1380 -0.7071 +vn -0.1379 0.6935 -0.7071 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.8112 0.5847 +vn 0.0000 0.5847 0.8112 +vn 0.0000 -0.5847 0.8112 +vn -0.8944 0.0000 0.4472 +vn -0.8112 0.0000 0.5847 +vn 0.8944 0.0000 0.4472 +vn 0.8112 0.0000 0.5847 +vn 0.5847 0.0000 0.8112 +vn -0.5847 0.0000 0.8112 +vn -0.6324 -0.6324 0.4472 +vn -0.5736 -0.5736 0.5847 +vn 0.6324 0.6324 0.4472 +vn 0.5736 0.5736 0.5847 +vn 0.4134 0.4134 0.8112 +vn -0.4134 -0.4134 0.8112 +vn -0.6324 0.6324 0.4472 +vn -0.5736 0.5736 0.5847 +vn 0.6324 -0.6324 0.4472 +vn 0.5736 -0.5736 0.5847 +vn 0.4134 -0.4134 0.8112 +vn -0.4134 0.4134 0.8112 +vn -0.3423 -0.8263 0.4472 +vn -0.3104 -0.7495 0.5847 +vn 0.3423 0.8263 0.4472 +vn 0.3104 0.7495 0.5847 +vn 0.2237 0.5402 0.8112 +vn -0.2237 -0.5402 0.8112 +vn -0.8263 0.3423 0.4472 +vn -0.7495 0.3104 0.5847 +vn 0.8263 -0.3423 0.4472 +vn 0.7495 -0.3104 0.5847 +vn 0.5402 -0.2237 0.8112 +vn -0.5402 0.2237 0.8112 +vn -0.8263 -0.3423 0.4472 +vn -0.7495 -0.3104 0.5847 +vn 0.8263 0.3423 0.4472 +vn 0.7495 0.3104 0.5847 +vn 0.5402 0.2237 0.8112 +vn -0.5402 -0.2237 0.8112 +vn -0.3423 0.8263 0.4472 +vn -0.3104 0.7495 0.5847 +vn 0.3423 -0.8263 0.4472 +vn 0.3104 -0.7495 0.5847 +vn 0.2237 -0.5402 0.8112 +vn -0.2237 0.5402 0.8112 +vn -0.1745 -0.8772 0.4472 +vn -0.1582 -0.7956 0.5847 +vn 0.1745 0.8772 0.4472 +vn 0.1582 0.7956 0.5847 +vn 0.1140 0.5735 0.8112 +vn -0.1140 -0.5735 0.8112 +vn -0.8772 0.1745 0.4472 +vn -0.7956 0.1582 0.5847 +vn 0.8772 -0.1745 0.4472 +vn 0.7956 -0.1582 0.5847 +vn 0.5735 -0.1140 0.8112 +vn -0.5735 0.1140 0.8112 +vn -0.7437 -0.4969 0.4472 +vn -0.6745 -0.4507 0.5847 +vn 0.7437 0.4969 0.4472 +vn 0.6745 0.4507 0.5847 +vn 0.4862 0.3248 0.8112 +vn -0.4862 -0.3248 0.8112 +vn -0.4969 0.7437 0.4472 +vn -0.4507 0.6745 0.5847 +vn 0.4969 -0.7437 0.4472 +vn 0.4507 -0.6745 0.5847 +vn 0.3248 -0.4862 0.8112 +vn -0.3248 0.4862 0.8112 +vn -0.4969 -0.7437 0.4472 +vn -0.4507 -0.6745 0.5847 +vn 0.4969 0.7437 0.4472 +vn 0.4507 0.6745 0.5847 +vn 0.3248 0.4862 0.8112 +vn -0.3248 -0.4862 0.8112 +vn -0.7437 0.4969 0.4472 +vn -0.6745 0.4507 0.5847 +vn 0.7437 -0.4969 0.4472 +vn 0.6745 -0.4507 0.5847 +vn 0.4862 -0.3248 0.8112 +vn -0.4862 0.3248 0.8112 +vn -0.8772 -0.1745 0.4472 +vn -0.7956 -0.1582 0.5847 +vn 0.8772 0.1745 0.4472 +vn 0.7956 0.1582 0.5847 +vn 0.5735 0.1140 0.8112 +vn -0.5735 -0.1140 0.8112 +vn -0.1745 0.8772 0.4472 +vn -0.1582 0.7956 0.5847 +vn 0.1745 -0.8772 0.4472 +vn 0.1582 -0.7956 0.5847 +vn 0.1140 -0.5735 0.8112 +vn -0.1140 0.5735 0.8112 +vn 0.8903 -0.3688 0.2670 +vn 0.7711 0.0000 0.6366 +vn 0.7124 -0.2951 0.6366 +vn -0.8903 -0.3688 0.2670 +vn -0.7711 0.0000 0.6366 +vn -0.9637 0.0000 0.2670 +vn 0.8903 0.3688 0.2670 +vn 0.9637 0.0000 0.2670 +vn -0.6814 -0.6814 0.2670 +vn -0.7124 -0.2951 0.6366 +vn 0.5453 0.5453 0.6366 +vn 0.7124 0.2951 0.6366 +vn -0.3688 -0.8903 0.2670 +vn -0.5453 -0.5453 0.6366 +vn 0.6814 0.6814 0.2670 +vn 0.2951 0.7124 0.6366 +vn 0.0000 -0.7711 0.6366 +vn -0.2951 -0.7124 0.6366 +vn 0.0000 0.9637 0.2670 +vn -0.2951 0.7124 0.6366 +vn 0.0000 0.7711 0.6366 +vn 0.3688 0.8903 0.2670 +vn 0.3688 -0.8903 0.2670 +vn 0.0000 -0.9637 0.2670 +vn -0.6814 0.6814 0.2670 +vn -0.3688 0.8903 0.2670 +vn 0.6814 -0.6814 0.2670 +vn 0.2951 -0.7124 0.6366 +vn -0.8903 0.3688 0.2670 +vn -0.5453 0.5453 0.6366 +vn 0.5453 -0.5453 0.6366 +vn -0.7124 0.2951 0.6366 +vn 0.0000 0.0000 1.0000 +vn 0.7462 0.0000 -0.6657 +vn -0.6894 -0.2855 -0.6657 +vn 0.6894 0.2855 -0.6657 +vn -0.5276 -0.5276 -0.6657 +vn 0.5276 0.5276 -0.6657 +vn -0.2855 -0.6894 -0.6657 +vn 0.2855 0.6894 -0.6657 +vn 0.0000 -0.7462 -0.6657 +vn -0.2855 0.6894 -0.6657 +vn 0.0000 0.7462 -0.6657 +vn 0.2855 -0.6894 -0.6657 +vn -0.5276 0.5276 -0.6657 +vn 0.5276 -0.5276 -0.6657 +vn -0.6894 0.2855 -0.6657 +vn 0.6894 -0.2855 -0.6657 +vn -0.7462 0.0000 -0.6657 +vn 0.0000 -0.6571 -0.7537 +vn 0.3827 -0.9239 0.0000 +vn 0.2515 -0.6071 -0.7537 +vn -0.6571 0.0000 -0.7537 +vn -0.9239 -0.3827 0.0000 +vn -0.6071 -0.2515 -0.7537 +vn -0.2515 0.6071 -0.7537 +vn -0.7071 0.7071 0.0000 +vn -0.4646 0.4646 -0.7537 +vn 0.6571 0.0000 -0.7537 +vn 0.9239 0.3827 0.0000 +vn 0.6071 0.2515 -0.7537 +vn -0.2515 -0.6071 -0.7537 +vn 0.0000 -1.0000 0.0000 +vn -0.6071 0.2515 -0.7537 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.6571 -0.7537 +vn -0.3827 0.9239 0.0000 +vn 0.6071 -0.2515 -0.7537 +vn 1.0000 0.0000 0.0000 +vn 0.2515 0.6071 -0.7537 +vn 0.0000 1.0000 0.0000 +vn -0.4646 -0.4646 -0.7537 +vn -0.3827 -0.9239 0.0000 +vn 0.4646 0.4646 -0.7537 +vn 0.3827 0.9239 0.0000 +vn 0.4646 -0.4646 -0.7537 +vn 0.9239 -0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8112 -0.5847 +vn 0.0000 -0.8112 -0.5847 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.5847 -0.8112 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.4472 -0.8944 +vn 0.8112 0.0000 -0.5847 +vn 0.8944 0.0000 -0.4472 +vn -0.8112 0.0000 -0.5847 +vn -0.8944 0.0000 -0.4472 +vn -0.5847 0.0000 -0.8112 +vn 0.5847 0.0000 -0.8112 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 -0.8944 +vn 0.5736 0.5736 -0.5847 +vn 0.6324 0.6324 -0.4472 +vn -0.5736 -0.5736 -0.5847 +vn -0.6324 -0.6324 -0.4472 +vn -0.4134 -0.4134 -0.8112 +vn 0.4134 0.4134 -0.8112 +vn -0.3162 -0.3162 -0.8944 +vn 0.3162 0.3162 -0.8944 +vn 0.5736 -0.5736 -0.5847 +vn 0.6324 -0.6324 -0.4472 +vn -0.5736 0.5736 -0.5847 +vn -0.6324 0.6324 -0.4472 +vn -0.4134 0.4134 -0.8112 +vn 0.4134 -0.4134 -0.8112 +vn -0.3162 0.3162 -0.8944 +vn 0.3162 -0.3162 -0.8944 +vn 0.3104 0.7495 -0.5847 +vn 0.3423 0.8263 -0.4472 +vn -0.3104 -0.7495 -0.5847 +vn -0.3423 -0.8263 -0.4472 +vn -0.2237 -0.5402 -0.8112 +vn 0.2237 0.5402 -0.8112 +vn -0.1711 -0.4132 -0.8944 +vn 0.1711 0.4132 -0.8944 +vn 0.7495 -0.3104 -0.5847 +vn 0.8263 -0.3423 -0.4472 +vn -0.7495 0.3104 -0.5847 +vn -0.8263 0.3423 -0.4472 +vn -0.5402 0.2237 -0.8112 +vn 0.5402 -0.2237 -0.8112 +vn -0.4132 0.1711 -0.8944 +vn 0.4132 -0.1711 -0.8944 +vn 0.7495 0.3104 -0.5847 +vn 0.8263 0.3423 -0.4472 +vn -0.7495 -0.3104 -0.5847 +vn -0.8263 -0.3423 -0.4472 +vn -0.5402 -0.2237 -0.8112 +vn 0.5402 0.2237 -0.8112 +vn -0.4132 -0.1711 -0.8944 +vn 0.4132 0.1711 -0.8944 +vn 0.3104 -0.7495 -0.5847 +vn 0.3423 -0.8263 -0.4472 +vn -0.3104 0.7495 -0.5847 +vn -0.3423 0.8263 -0.4472 +vn -0.2237 0.5402 -0.8112 +vn 0.2237 -0.5402 -0.8112 +vn -0.1711 0.4132 -0.8944 +vn 0.1711 -0.4132 -0.8944 +vn 0.1745 0.8772 -0.4472 +vn 0.1582 0.7956 -0.5847 +vn -0.1745 -0.8772 -0.4472 +vn -0.1582 -0.7956 -0.5847 +vn -0.1140 -0.5735 -0.8112 +vn 0.1140 0.5735 -0.8112 +vn -0.0872 -0.4386 -0.8944 +vn 0.0872 0.4386 -0.8944 +vn 0.8772 -0.1745 -0.4472 +vn 0.7956 -0.1582 -0.5847 +vn -0.8772 0.1745 -0.4472 +vn -0.7956 0.1582 -0.5847 +vn -0.5735 0.1140 -0.8112 +vn 0.5735 -0.1140 -0.8112 +vn -0.4386 0.0872 -0.8944 +vn 0.4386 -0.0872 -0.8944 +vn 0.7437 0.4969 -0.4472 +vn 0.6745 0.4507 -0.5847 +vn -0.6745 -0.4507 -0.5847 +vn -0.7437 -0.4969 -0.4472 +vn -0.4862 -0.3248 -0.8112 +vn 0.4862 0.3248 -0.8112 +vn -0.3718 -0.2485 -0.8944 +vn 0.3718 0.2485 -0.8944 +vn 0.4507 -0.6745 -0.5847 +vn 0.4969 -0.7437 -0.4472 +vn -0.4507 0.6745 -0.5847 +vn -0.4969 0.7437 -0.4472 +vn -0.3248 0.4862 -0.8112 +vn 0.3248 -0.4862 -0.8112 +vn -0.2485 0.3718 -0.8944 +vn 0.2485 -0.3718 -0.8944 +vn 0.4969 0.7437 -0.4472 +vn 0.4507 0.6745 -0.5847 +vn -0.4507 -0.6745 -0.5847 +vn -0.4969 -0.7437 -0.4472 +vn -0.3248 -0.4862 -0.8112 +vn 0.3248 0.4862 -0.8112 +vn -0.2485 -0.3718 -0.8944 +vn 0.2485 0.3718 -0.8944 +vn 0.6745 -0.4507 -0.5847 +vn 0.7437 -0.4969 -0.4472 +vn -0.6745 0.4507 -0.5847 +vn -0.7437 0.4969 -0.4472 +vn -0.4862 0.3248 -0.8112 +vn 0.4862 -0.3248 -0.8112 +vn -0.3718 0.2485 -0.8944 +vn 0.3718 -0.2485 -0.8944 +vn 0.7956 0.1582 -0.5847 +vn 0.8772 0.1745 -0.4472 +vn -0.7956 -0.1582 -0.5847 +vn -0.8772 -0.1745 -0.4472 +vn -0.5735 -0.1140 -0.8112 +vn 0.5735 0.1140 -0.8112 +vn -0.4386 -0.0872 -0.8944 +vn 0.4386 0.0872 -0.8944 +vn 0.1745 -0.8772 -0.4472 +vn 0.1582 -0.7956 -0.5847 +vn -0.1745 0.8772 -0.4472 +vn -0.1582 0.7956 -0.5847 +vn -0.1140 0.5735 -0.8112 +vn 0.1140 -0.5735 -0.8112 +vn -0.0872 0.4386 -0.8944 +vn 0.0872 -0.4386 -0.8944 +s off +f 258/1/1 259/2/1 257/3/1 +f 262/4/2 263/5/2 261/6/2 +f 266/7/3 267/8/3 265/9/3 +f 270/10/4 271/11/4 269/12/4 +f 273/13/5 276/14/5 275/15/5 +f 278/16/6 279/17/6 277/18/6 +f 282/19/7 283/20/7 281/21/7 +f 285/22/8 288/23/8 287/24/8 +f 290/25/9 291/26/9 289/27/9 +f 294/28/10 295/29/10 293/30/10 +f 298/31/11 299/32/11 297/33/11 +f 302/34/12 303/35/12 301/36/12 +f 305/37/13 308/38/13 307/39/13 +f 309/40/14 312/41/14 311/42/14 +f 314/43/15 315/44/15 313/45/15 +f 318/46/16 319/47/16 317/48/16 +f 322/49/17 323/50/17 321/51/17 +f 326/52/18 327/53/18 325/54/18 +f 330/55/19 331/56/19 329/57/19 +f 334/58/20 335/59/20 333/60/20 +f 337/61/21 340/62/21 339/63/21 +f 341/64/22 344/65/22 343/66/22 +f 345/67/23 348/68/23 347/69/23 +f 349/70/24 352/71/24 351/72/24 +f 353/73/25 356/74/25 355/75/25 +f 357/76/26 360/77/26 359/78/26 +f 362/79/27 363/80/27 361/81/27 +f 366/82/28 367/83/28 365/84/28 +f 369/85/29 372/86/29 371/87/29 +f 373/88/30 376/89/30 375/90/30 +f 378/91/31 379/92/31 377/93/31 +f 382/94/32 383/95/32 381/96/32 +f 386/97/33 387/98/33 385/99/33 +f 390/100/34 391/101/34 389/102/34 +f 394/103/35 395/104/35 393/105/35 +f 398/106/36 399/107/36 397/108/36 +f 401/109/37 404/110/37 403/111/37 +f 406/112/38 407/113/38 405/114/38 +f 410/115/39 411/116/39 409/117/39 +f 414/118/40 415/119/40 413/120/40 +f 418/121/41 419/122/41 417/123/41 +f 422/124/42 423/125/42 421/126/42 +f 425/127/43 428/128/43 427/129/43 +f 430/130/44 431/131/44 429/132/44 +f 433/133/45 436/134/45 435/135/45 +f 438/136/46 439/137/46 437/138/46 +f 442/139/47 443/140/47 441/141/47 +f 446/142/48 447/143/48 445/144/48 +f 449/145/49 452/146/49 451/147/49 +f 454/148/50 455/149/50 453/150/50 +f 457/151/51 460/152/51 459/153/51 +f 462/154/52 463/155/52 461/156/52 +f 465/157/53 468/158/53 467/159/53 +f 470/160/54 471/161/54 469/162/54 +f 474/163/55 475/164/55 473/165/55 +f 478/166/56 479/167/56 477/168/56 +f 482/169/57 483/170/57 481/171/57 +f 485/172/58 488/173/58 487/174/58 +f 490/175/59 491/176/59 489/177/59 +f 494/178/60 495/179/60 493/180/60 +f 497/181/61 500/182/61 499/183/61 +f 502/184/62 503/185/62 501/186/62 +f 506/187/63 507/188/63 505/189/63 +f 510/190/64 511/191/64 509/192/64 +f 555/193/65 567/194/65 556/195/65 +f 547/196/65 575/197/65 548/198/65 +f 555/193/65 569/199/65 568/200/65 +f 561/201/65 577/202/65 546/203/65 +f 546/203/65 576/204/65 547/196/65 +f 553/205/65 569/206/65 554/207/65 +f 560/208/65 562/209/65 561/201/65 +f 553/205/65 571/210/65 570/211/65 +f 560/208/65 564/212/65 563/213/65 +f 551/214/65 571/215/65 552/216/65 +f 559/217/65 565/218/65 564/219/65 +f 551/214/65 573/220/65 572/221/65 +f 557/222/65 565/223/65 558/224/65 +f 550/225/65 574/226/65 573/227/65 +f 556/195/65 566/228/65 557/222/65 +f 548/198/65 574/229/65 549/230/65 +f 258/1/1 260/231/1 259/2/1 +f 262/4/2 264/232/2 263/5/2 +f 266/7/3 268/233/3 267/8/3 +f 270/10/4 272/234/4 271/11/4 +f 273/13/5 274/235/5 276/14/5 +f 278/16/6 280/236/6 279/17/6 +f 282/19/7 284/237/7 283/20/7 +f 285/22/8 286/238/8 288/23/8 +f 290/25/9 292/239/9 291/26/9 +f 294/28/10 296/240/10 295/29/10 +f 298/31/11 300/241/11 299/32/11 +f 302/34/12 304/242/12 303/35/12 +f 305/37/13 306/243/13 308/38/13 +f 309/40/14 310/244/14 312/41/14 +f 314/43/15 316/245/15 315/44/15 +f 318/46/16 320/246/16 319/47/16 +f 322/49/17 324/247/17 323/50/17 +f 326/52/18 328/248/18 327/53/18 +f 330/55/19 332/249/19 331/56/19 +f 334/58/20 336/250/20 335/59/20 +f 337/61/21 338/251/21 340/62/21 +f 341/64/22 342/252/22 344/65/22 +f 345/67/23 346/253/23 348/68/23 +f 349/70/24 350/254/24 352/71/24 +f 353/73/25 354/255/25 356/74/25 +f 357/76/26 358/256/26 360/77/26 +f 362/79/27 364/257/27 363/80/27 +f 366/82/28 368/258/28 367/83/28 +f 369/85/29 370/259/29 372/86/29 +f 373/88/30 374/260/30 376/89/30 +f 378/91/31 380/261/31 379/92/31 +f 382/94/32 384/262/32 383/95/32 +f 386/97/33 388/263/33 387/98/33 +f 390/100/34 392/264/34 391/101/34 +f 394/103/35 396/265/35 395/104/35 +f 398/106/36 400/266/36 399/107/36 +f 401/109/37 402/267/37 404/110/37 +f 406/112/38 408/268/38 407/113/38 +f 410/115/39 412/269/39 411/116/39 +f 414/118/40 416/270/40 415/119/40 +f 418/121/41 420/271/41 419/122/41 +f 422/124/42 424/272/42 423/125/42 +f 425/127/43 426/273/43 428/128/43 +f 430/130/44 432/274/44 431/131/44 +f 433/133/45 434/275/45 436/134/45 +f 438/136/46 440/276/46 439/137/46 +f 442/139/47 444/277/47 443/140/47 +f 446/142/48 448/278/48 447/143/48 +f 449/145/49 450/279/49 452/146/49 +f 454/148/66 456/280/66 455/149/66 +f 457/151/51 458/281/51 460/152/51 +f 462/154/67 464/282/67 463/155/67 +f 465/157/53 466/283/53 468/158/53 +f 470/160/54 472/284/54 471/161/54 +f 474/163/55 476/285/55 475/164/55 +f 478/166/56 480/286/56 479/167/56 +f 482/169/57 484/287/57 483/170/57 +f 485/172/58 486/288/58 488/173/58 +f 490/175/59 492/289/59 491/176/59 +f 494/178/60 496/290/60 495/179/60 +f 497/181/61 498/291/61 500/182/61 +f 502/184/62 504/292/62 503/185/62 +f 506/187/68 508/293/68 507/188/68 +f 510/190/64 512/294/64 511/191/64 +f 555/193/65 568/295/65 567/194/65 +f 547/196/65 576/296/65 575/197/65 +f 555/193/65 554/297/65 569/199/65 +f 561/201/65 562/298/65 577/202/65 +f 546/203/65 577/299/65 576/204/65 +f 553/205/65 570/300/65 569/206/65 +f 560/208/65 563/301/65 562/209/65 +f 553/205/65 552/216/65 571/210/65 +f 560/208/65 559/217/65 564/212/65 +f 551/214/65 572/302/65 571/215/65 +f 559/217/65 558/224/65 565/218/65 +f 551/214/65 550/225/65 573/220/65 +f 557/222/65 566/303/65 565/223/65 +f 550/225/65 549/230/65 574/226/65 +f 556/195/65 567/304/65 566/228/65 +f 548/198/65 575/305/65 574/229/65 +s 1 +f 10/306/69 15/307/70 14/308/70 +f 2/309/71 7/310/72 1/311/71 +f 8/312/72 6/313/73 7/310/72 +f 14/308/70 16/314/74 13/315/74 +f 9/316/73 3/317/1 6/313/73 +f 16/314/74 11/318/2 13/315/74 +f 21/319/75 30/320/76 26/321/75 +f 18/322/77 23/323/78 17/324/77 +f 24/325/78 22/326/79 23/323/78 +f 31/327/76 29/328/80 30/320/76 +f 25/329/79 19/330/3 22/326/79 +f 32/331/80 27/332/4 29/328/80 +f 37/333/81 46/334/82 42/335/81 +f 34/336/83 39/337/84 33/338/83 +f 40/339/84 38/340/85 39/337/84 +f 47/341/82 45/342/86 46/334/82 +f 41/343/85 35/344/5 38/340/85 +f 48/345/86 43/346/6 45/342/86 +f 58/347/87 63/348/88 62/349/88 +f 50/350/89 55/351/90 49/352/89 +f 55/351/90 57/353/91 54/354/91 +f 63/348/88 61/355/92 62/349/88 +f 57/353/91 51/356/7 54/354/91 +f 64/357/92 59/358/8 61/355/92 +f 74/359/93 79/360/94 78/361/94 +f 66/362/95 71/363/96 65/364/95 +f 71/363/96 73/365/97 70/366/97 +f 79/360/94 77/367/98 78/361/94 +f 70/366/97 68/368/9 67/369/9 +f 77/367/98 76/370/10 75/371/10 +f 85/372/99 94/373/100 90/374/99 +f 82/375/101 87/376/102 81/377/101 +f 88/378/102 86/379/103 87/376/102 +f 94/373/100 96/380/104 93/381/104 +f 89/382/103 83/383/11 86/379/103 +f 96/380/104 91/384/12 93/381/104 +f 101/385/105 110/386/106 106/387/105 +f 98/388/107 103/389/108 97/390/107 +f 104/391/108 102/392/109 103/389/108 +f 110/386/106 112/393/110 109/394/110 +f 105/395/109 99/396/13 102/392/109 +f 112/393/110 107/397/14 109/394/110 +f 122/398/111 127/399/112 126/400/112 +f 114/401/113 119/402/114 113/403/113 +f 119/402/114 121/404/115 118/405/115 +f 126/400/112 128/406/116 125/407/116 +f 121/404/115 115/408/15 118/405/115 +f 128/406/116 123/409/16 125/407/116 +f 133/410/117 142/411/118 138/412/117 +f 130/413/119 135/414/120 129/415/119 +f 135/414/120 137/416/121 134/417/121 +f 143/418/118 141/419/122 142/411/118 +f 137/416/121 131/420/17 134/417/121 +f 144/421/122 139/422/18 141/419/122 +f 149/423/123 158/424/124 154/425/123 +f 145/426/125 152/427/126 151/428/126 +f 152/427/126 150/429/127 151/428/126 +f 158/424/124 160/430/128 157/431/128 +f 150/429/127 148/432/19 147/433/19 +f 160/430/128 155/434/20 157/431/128 +f 170/435/129 175/436/130 174/437/130 +f 161/438/131 168/439/132 167/440/132 +f 168/439/132 166/441/133 167/440/132 +f 175/436/130 173/442/134 174/437/130 +f 166/441/133 164/443/21 163/444/21 +f 176/445/134 171/446/22 173/442/134 +f 186/447/135 191/448/136 190/449/136 +f 178/450/137 183/451/138 177/452/137 +f 183/451/138 185/453/139 182/454/139 +f 191/448/136 189/455/140 190/449/136 +f 182/454/139 180/456/23 179/457/23 +f 192/458/140 187/459/24 189/455/140 +f 202/460/141 207/461/142 206/462/142 +f 194/463/143 199/464/144 193/465/143 +f 199/464/144 201/466/145 198/467/145 +f 207/461/142 205/468/146 206/462/142 +f 201/466/145 195/469/25 198/467/145 +f 208/470/146 203/471/26 205/468/146 +f 213/472/147 222/473/148 218/474/147 +f 210/475/149 215/476/150 209/477/149 +f 216/478/150 214/479/151 215/476/150 +f 222/473/148 224/480/152 221/481/152 +f 217/482/151 211/483/27 214/479/151 +f 224/480/152 219/484/28 221/481/152 +f 229/485/153 238/486/154 234/487/153 +f 225/488/155 232/489/156 231/490/156 +f 231/490/156 233/491/157 230/492/157 +f 239/493/154 237/494/158 238/486/154 +f 233/491/157 227/495/29 230/492/157 +f 240/496/158 235/497/30 237/494/158 +f 245/498/159 254/499/160 250/500/159 +f 242/501/161 247/502/162 241/503/161 +f 248/504/162 246/505/163 247/502/162 +f 255/506/160 253/507/164 254/499/160 +f 249/508/163 243/509/31 246/505/163 +f 256/510/164 251/511/32 253/507/164 +f 524/512/165 541/513/166 540/514/167 +f 518/515/168 533/516/169 517/517/170 +f 526/518/171 541/519/166 525/520/172 +f 519/521/173 534/522/174 518/515/168 +f 526/518/171 543/523/175 542/524/176 +f 520/525/177 535/526/178 519/521/173 +f 527/527/179 544/528/180 543/529/175 +f 520/525/177 537/530/181 536/531/182 +f 513/532/183 530/533/184 529/534/185 +f 513/532/183 544/535/180 528/536/186 +f 522/537/187 537/538/181 521/539/188 +f 515/540/189 530/541/184 514/542/190 +f 523/543/191 538/544/192 522/537/187 +f 516/545/193 531/546/194 515/540/189 +f 523/543/191 540/547/167 539/548/195 +f 516/545/193 533/549/169 532/550/196 +f 532/550/196 533/549/169 545/551/197 +f 531/546/194 532/552/196 545/553/197 +f 530/541/184 531/554/194 545/555/197 +f 529/534/185 530/533/184 545/556/197 +f 544/535/180 529/557/185 545/558/197 +f 543/529/175 544/528/180 545/559/197 +f 542/524/176 543/523/175 545/560/197 +f 541/519/166 542/561/176 545/562/197 +f 540/514/167 541/513/166 545/563/197 +f 539/548/195 540/547/167 545/564/197 +f 538/544/192 539/565/195 545/566/197 +f 537/538/181 538/567/192 545/568/197 +f 536/531/182 537/530/181 545/569/197 +f 535/526/178 536/570/182 545/571/197 +f 534/522/174 535/572/178 545/573/197 +f 533/516/169 534/574/174 545/575/197 +f 524/512/165 558/224/198 525/520/172 +f 517/517/170 551/214/199 518/515/168 +f 525/520/172 559/217/200 526/518/171 +f 518/515/168 552/216/201 519/521/173 +f 526/518/171 560/208/202 527/527/179 +f 519/521/173 553/205/203 520/525/177 +f 527/527/179 561/201/204 528/536/186 +f 520/525/177 554/207/205 521/576/188 +f 513/532/183 547/196/206 514/542/190 +f 528/536/186 546/203/207 513/532/183 +f 521/539/188 555/193/208 522/537/187 +f 514/542/190 548/198/209 515/540/189 +f 522/537/187 556/195/210 523/543/191 +f 515/540/189 549/230/211 516/545/193 +f 523/543/191 557/222/212 524/512/165 +f 516/545/193 550/225/213 517/517/170 +f 569/577/214 584/578/215 568/579/216 +f 573/580/217 588/581/218 572/582/219 +f 576/583/220 591/584/221 575/585/222 +f 565/586/223 580/587/224 564/588/225 +f 570/589/226 585/590/227 569/591/214 +f 574/592/228 589/593/229 573/580/217 +f 577/594/230 592/595/231 576/583/220 +f 566/596/232 581/597/233 565/586/223 +f 562/598/234 593/599/235 577/594/230 +f 571/600/236 586/601/237 570/589/226 +f 563/602/238 578/603/239 562/598/234 +f 567/604/240 582/605/241 566/596/232 +f 572/582/219 587/606/242 571/600/236 +f 568/579/216 583/607/243 567/604/240 +f 575/585/222 590/608/244 574/592/228 +f 564/588/225 579/609/245 563/602/238 +f 603/610/246 608/611/247 598/612/246 +f 600/613/248 595/614/249 594/615/249 +f 599/616/250 601/617/248 600/613/248 +f 607/618/247 609/619/251 608/611/247 +f 596/620/252 602/621/250 599/616/250 +f 604/622/253 609/619/251 606/623/251 +f 623/624/254 614/625/255 619/626/255 +f 616/627/256 611/628/257 610/629/257 +f 615/630/258 617/631/256 616/627/256 +f 622/632/259 624/633/254 623/624/254 +f 612/634/260 618/635/258 615/630/258 +f 620/636/261 625/637/259 622/632/259 +f 639/638/262 630/639/263 635/640/263 +f 632/641/264 627/642/265 626/643/265 +f 631/644/266 633/645/264 632/641/264 +f 639/638/262 641/646/267 640/647/262 +f 628/648/268 634/649/266 631/644/266 +f 636/650/269 641/646/267 638/651/267 +f 655/652/270 646/653/271 651/654/271 +f 648/655/272 643/656/273 642/657/273 +f 648/655/272 650/658/274 649/659/272 +f 654/660/275 656/661/270 655/652/270 +f 644/662/276 650/658/274 647/663/274 +f 652/664/277 657/665/275 654/660/275 +f 671/666/278 662/667/279 667/668/279 +f 664/669/280 659/670/281 658/671/281 +f 663/672/282 665/673/280 664/669/280 +f 671/666/278 673/674/283 672/675/278 +f 660/676/284 666/677/282 663/672/282 +f 670/678/283 669/679/285 673/674/283 +f 687/680/286 678/681/287 683/682/287 +f 680/683/288 675/684/289 674/685/289 +f 679/686/290 681/687/288 680/683/288 +f 687/680/286 689/688/291 688/689/286 +f 676/690/292 682/691/290 679/686/290 +f 684/692/293 689/688/291 686/693/291 +f 703/694/294 694/695/295 699/696/295 +f 696/697/296 691/698/297 690/699/297 +f 695/700/298 697/701/296 696/697/296 +f 703/694/294 705/702/299 704/703/294 +f 692/704/300 698/705/298 695/700/298 +f 700/706/301 705/702/299 702/707/299 +f 719/708/302 710/709/303 715/710/303 +f 712/711/304 707/712/305 706/713/305 +f 711/714/306 713/715/304 712/711/304 +f 719/708/302 721/716/307 720/717/302 +f 708/718/308 714/719/306 711/714/306 +f 718/720/307 717/721/309 721/716/307 +f 731/722/310 736/723/311 726/724/310 +f 722/725/312 729/726/313 723/727/312 +f 727/728/314 729/726/313 728/729/313 +f 735/730/311 737/731/315 736/723/311 +f 724/732/316 730/733/314 727/728/314 +f 732/734/317 737/731/315 734/735/315 +f 747/736/318 752/737/319 742/738/318 +f 738/739/320 745/740/321 739/741/320 +f 743/742/322 745/740/321 744/743/321 +f 751/744/319 753/745/323 752/737/319 +f 743/742/322 741/746/324 746/747/322 +f 748/748/325 753/745/323 750/749/323 +f 763/750/326 768/751/327 758/752/326 +f 760/753/328 755/754/329 754/755/329 +f 759/756/330 761/757/328 760/753/328 +f 766/758/331 768/751/327 767/759/327 +f 759/756/330 757/760/332 762/761/330 +f 764/762/333 769/763/331 766/758/331 +f 783/764/334 774/765/335 779/766/335 +f 776/767/336 771/768/337 770/769/337 +f 775/770/338 777/771/336 776/767/336 +f 783/764/334 785/772/339 784/773/334 +f 772/774/340 778/775/338 775/770/338 +f 782/776/339 781/777/341 785/772/339 +f 795/778/342 800/779/343 790/780/342 +f 792/781/344 787/782/345 786/783/345 +f 791/784/346 793/785/344 792/781/344 +f 798/786/347 800/779/343 799/787/343 +f 791/784/346 789/788/348 794/789/346 +f 796/790/349 801/791/347 798/786/347 +f 815/792/350 806/793/351 811/794/351 +f 808/795/352 803/796/353 802/797/353 +f 807/798/354 809/799/352 808/795/352 +f 815/792/350 817/800/355 816/801/350 +f 807/798/354 805/802/356 810/803/354 +f 812/804/357 817/800/355 814/805/355 +f 831/806/358 822/807/359 827/808/359 +f 824/809/360 819/810/361 818/811/361 +f 824/809/360 826/812/362 825/813/360 +f 830/814/363 832/815/358 831/806/358 +f 823/816/362 821/817/364 826/812/362 +f 828/818/365 833/819/363 830/814/363 +f 843/820/366 848/821/367 838/822/366 +f 834/823/368 841/824/369 835/825/368 +f 839/826/370 841/824/369 840/827/369 +f 847/828/367 849/829/371 848/821/367 +f 836/830/372 842/831/370 839/826/370 +f 844/832/373 849/829/371 846/833/371 +f 10/306/69 5/834/69 15/307/70 +f 2/309/71 8/312/72 7/310/72 +f 8/312/72 9/316/73 6/313/73 +f 14/308/70 15/307/70 16/314/74 +f 9/316/73 4/835/1 3/317/1 +f 16/314/74 12/836/2 11/318/2 +f 21/319/75 31/327/76 30/320/76 +f 18/322/77 24/325/78 23/323/78 +f 24/325/78 25/329/79 22/326/79 +f 31/327/76 32/331/80 29/328/80 +f 25/329/79 20/837/3 19/330/3 +f 32/331/80 28/838/4 27/332/4 +f 37/333/81 47/341/82 46/334/82 +f 34/336/83 40/339/84 39/337/84 +f 40/339/84 41/343/85 38/340/85 +f 47/341/82 48/345/86 45/342/86 +f 41/343/85 36/839/5 35/344/5 +f 48/345/86 44/840/6 43/346/6 +f 58/347/87 53/841/87 63/348/88 +f 50/350/89 56/842/90 55/351/90 +f 55/351/90 56/842/90 57/353/91 +f 63/348/88 64/357/92 61/355/92 +f 57/353/91 52/843/7 51/356/7 +f 64/357/92 60/844/8 59/358/8 +f 74/359/93 69/845/93 79/360/94 +f 66/362/95 72/846/96 71/363/96 +f 71/363/96 72/846/96 73/365/97 +f 79/360/94 80/847/98 77/367/98 +f 70/366/97 73/365/97 68/368/9 +f 77/367/98 80/847/98 76/370/10 +f 85/372/99 95/848/100 94/373/100 +f 82/375/101 88/378/102 87/376/102 +f 88/378/102 89/382/103 86/379/103 +f 94/373/100 95/848/100 96/380/104 +f 89/382/103 84/849/11 83/383/11 +f 96/380/104 92/850/12 91/384/12 +f 101/385/105 111/851/106 110/386/106 +f 98/388/107 104/391/108 103/389/108 +f 104/391/108 105/395/109 102/392/109 +f 110/386/106 111/851/106 112/393/110 +f 105/395/109 100/852/13 99/396/13 +f 112/393/110 108/853/14 107/397/14 +f 122/398/111 117/854/111 127/399/112 +f 114/401/113 120/855/114 119/402/114 +f 119/402/114 120/855/114 121/404/115 +f 126/400/112 127/399/112 128/406/116 +f 121/404/115 116/856/15 115/408/15 +f 128/406/116 124/857/16 123/409/16 +f 133/410/117 143/418/118 142/411/118 +f 130/413/119 136/858/120 135/414/120 +f 135/414/120 136/858/120 137/416/121 +f 143/418/118 144/421/122 141/419/122 +f 137/416/121 132/859/17 131/420/17 +f 144/421/122 140/860/18 139/422/18 +f 149/423/123 159/861/124 158/424/124 +f 145/426/125 146/862/125 152/427/126 +f 152/427/126 153/863/127 150/429/127 +f 158/424/124 159/861/124 160/430/128 +f 150/429/127 153/863/127 148/432/19 +f 160/430/128 156/864/20 155/434/20 +f 170/435/129 165/865/129 175/436/130 +f 161/438/131 162/866/131 168/439/132 +f 168/439/132 169/867/133 166/441/133 +f 175/436/130 176/445/134 173/442/134 +f 166/441/133 169/867/133 164/443/21 +f 176/445/134 172/868/22 171/446/22 +f 186/447/135 181/869/135 191/448/136 +f 178/450/137 184/870/138 183/451/138 +f 183/451/138 184/870/138 185/453/139 +f 191/448/136 192/458/140 189/455/140 +f 182/454/139 185/453/139 180/456/23 +f 192/458/140 188/871/24 187/459/24 +f 202/460/141 197/872/141 207/461/142 +f 194/463/143 200/873/144 199/464/144 +f 199/464/144 200/873/144 201/466/145 +f 207/461/142 208/470/146 205/468/146 +f 201/466/145 196/874/25 195/469/25 +f 208/470/146 204/875/26 203/471/26 +f 213/472/147 223/876/148 222/473/148 +f 210/475/149 216/478/150 215/476/150 +f 216/478/150 217/482/151 214/479/151 +f 222/473/148 223/876/148 224/480/152 +f 217/482/151 212/877/27 211/483/27 +f 224/480/152 220/878/28 219/484/28 +f 229/485/153 239/493/154 238/486/154 +f 225/488/155 226/879/155 232/489/156 +f 231/490/156 232/489/156 233/491/157 +f 239/493/154 240/496/158 237/494/158 +f 233/491/157 228/880/29 227/495/29 +f 240/496/158 236/881/30 235/497/30 +f 245/498/159 255/506/160 254/499/160 +f 242/501/161 248/504/162 247/502/162 +f 248/504/162 249/508/163 246/505/163 +f 255/506/160 256/510/164 253/507/164 +f 249/508/163 244/882/31 243/509/31 +f 256/510/164 252/883/32 251/511/32 +f 524/512/165 525/520/172 541/513/166 +f 518/515/168 534/574/174 533/516/169 +f 526/518/171 542/561/176 541/519/166 +f 519/521/173 535/572/178 534/522/174 +f 526/518/171 527/527/179 543/523/175 +f 520/525/177 536/570/182 535/526/178 +f 527/527/179 528/536/186 544/528/180 +f 520/525/177 521/576/188 537/530/181 +f 513/532/183 514/542/190 530/533/184 +f 513/532/183 529/557/185 544/535/180 +f 522/537/187 538/567/192 537/538/181 +f 515/540/189 531/554/194 530/541/184 +f 523/543/191 539/565/195 538/544/192 +f 516/545/193 532/552/196 531/546/194 +f 523/543/191 524/512/165 540/547/167 +f 516/545/193 517/517/170 533/549/169 +f 524/512/165 557/222/212 558/224/198 +f 517/517/170 550/225/213 551/214/199 +f 525/520/172 558/224/198 559/217/200 +f 518/515/168 551/214/199 552/216/201 +f 526/518/171 559/217/200 560/208/202 +f 519/521/173 552/216/201 553/205/203 +f 527/527/179 560/208/202 561/201/204 +f 520/525/177 553/205/203 554/207/205 +f 513/532/183 546/203/207 547/196/206 +f 528/536/186 561/201/204 546/203/207 +f 521/539/188 554/297/205 555/193/208 +f 514/542/190 547/196/206 548/198/209 +f 522/537/187 555/193/208 556/195/210 +f 515/540/189 548/198/209 549/230/211 +f 523/543/191 556/195/210 557/222/212 +f 516/545/193 549/230/211 550/225/213 +f 569/577/214 585/884/227 584/578/215 +f 573/580/217 589/593/229 588/581/218 +f 576/583/220 592/595/231 591/584/221 +f 565/586/223 581/597/233 580/587/224 +f 570/589/226 586/601/237 585/590/227 +f 574/592/228 590/608/244 589/593/229 +f 577/594/230 593/599/235 592/595/231 +f 566/596/232 582/605/241 581/597/233 +f 562/598/234 578/603/239 593/599/235 +f 571/600/236 587/606/242 586/601/237 +f 563/602/238 579/609/245 578/603/239 +f 567/604/240 583/607/243 582/605/241 +f 572/582/219 588/581/218 587/606/242 +f 568/579/216 584/578/215 583/607/243 +f 575/585/222 591/584/221 590/608/244 +f 564/588/225 580/587/224 579/609/245 +f 603/610/246 607/618/247 608/611/247 +f 600/613/248 601/617/248 595/614/249 +f 599/616/250 602/621/250 601/617/248 +f 607/618/247 606/623/251 609/619/251 +f 596/620/252 597/885/252 602/621/250 +f 604/622/253 605/886/253 609/619/251 +f 623/624/254 624/633/254 614/625/255 +f 616/627/256 617/631/256 611/628/257 +f 615/630/258 618/635/258 617/631/256 +f 622/632/259 625/637/259 624/633/254 +f 612/634/260 613/887/260 618/635/258 +f 620/636/261 621/888/261 625/637/259 +f 639/638/262 640/647/262 630/639/263 +f 632/641/264 633/645/264 627/642/265 +f 631/644/266 634/649/266 633/645/264 +f 639/638/262 638/651/267 641/646/267 +f 628/648/268 629/889/268 634/649/266 +f 636/650/269 637/890/269 641/646/267 +f 655/652/270 656/661/270 646/653/271 +f 648/655/272 649/659/272 643/656/273 +f 648/655/272 647/663/274 650/658/274 +f 654/660/275 657/665/275 656/661/270 +f 644/662/276 645/891/276 650/658/274 +f 652/664/277 653/892/277 657/665/275 +f 671/666/278 672/675/278 662/667/279 +f 664/669/280 665/673/280 659/670/281 +f 663/672/282 666/677/282 665/673/280 +f 671/666/278 670/678/283 673/674/283 +f 660/676/284 661/893/284 666/677/282 +f 670/678/283 668/894/285 669/679/285 +f 687/680/286 688/689/286 678/681/287 +f 680/683/288 681/687/288 675/684/289 +f 679/686/290 682/691/290 681/687/288 +f 687/680/286 686/693/291 689/688/291 +f 676/690/292 677/895/292 682/691/290 +f 684/692/293 685/896/293 689/688/291 +f 703/694/294 704/703/294 694/695/295 +f 696/697/296 697/701/296 691/698/297 +f 695/700/298 698/705/298 697/701/296 +f 703/694/294 702/707/299 705/702/299 +f 692/704/300 693/897/300 698/705/298 +f 700/706/301 701/898/301 705/702/299 +f 719/708/302 720/717/302 710/709/303 +f 712/711/304 713/715/304 707/712/305 +f 711/714/306 714/719/306 713/715/304 +f 719/708/302 718/720/307 721/716/307 +f 708/718/308 709/899/308 714/719/306 +f 718/720/307 716/900/309 717/721/309 +f 731/722/310 735/730/311 736/723/311 +f 722/725/312 728/729/313 729/726/313 +f 727/728/314 730/733/314 729/726/313 +f 735/730/311 734/735/315 737/731/315 +f 724/732/316 725/901/316 730/733/314 +f 732/734/317 733/902/317 737/731/315 +f 747/736/318 751/744/319 752/737/319 +f 738/739/320 744/743/321 745/740/321 +f 743/742/322 746/747/322 745/740/321 +f 751/744/319 750/749/323 753/745/323 +f 743/742/322 740/903/324 741/746/324 +f 748/748/325 749/904/325 753/745/323 +f 763/750/326 767/759/327 768/751/327 +f 760/753/328 761/757/328 755/754/329 +f 759/756/330 762/761/330 761/757/328 +f 766/758/331 769/763/331 768/751/327 +f 759/756/330 756/905/332 757/760/332 +f 764/762/333 765/906/333 769/763/331 +f 783/764/334 784/773/334 774/765/335 +f 776/767/336 777/771/336 771/768/337 +f 775/770/338 778/775/338 777/771/336 +f 783/764/334 782/776/339 785/772/339 +f 772/774/340 773/907/340 778/775/338 +f 782/776/339 780/908/341 781/777/341 +f 795/778/342 799/787/343 800/779/343 +f 792/781/344 793/785/344 787/782/345 +f 791/784/346 794/789/346 793/785/344 +f 798/786/347 801/791/347 800/779/343 +f 791/784/346 788/909/348 789/788/348 +f 796/790/349 797/910/349 801/791/347 +f 815/792/350 816/801/350 806/793/351 +f 808/795/352 809/799/352 803/796/353 +f 807/798/354 810/803/354 809/799/352 +f 815/792/350 814/805/355 817/800/355 +f 807/798/354 804/911/356 805/802/356 +f 812/804/357 813/912/357 817/800/355 +f 831/806/358 832/815/358 822/807/359 +f 824/809/360 825/813/360 819/810/361 +f 824/809/360 823/816/362 826/812/362 +f 830/814/363 833/819/363 832/815/358 +f 823/816/362 820/913/364 821/817/364 +f 828/818/365 829/914/365 833/819/363 +f 843/820/366 847/828/367 848/821/367 +f 834/823/368 840/827/369 841/824/369 +f 839/826/370 842/831/370 841/824/369 +f 847/828/367 846/833/371 849/829/371 +f 836/830/372 837/915/372 842/831/370 +f 844/832/373 845/916/373 849/829/371 +o Afterburner +v 0.000000 2.375000 -3.000000 +v -0.334848 2.308394 -3.000000 +v -0.618719 2.118719 -3.000000 +v -0.808395 1.834848 -3.000000 +v -0.875000 1.500000 -3.000000 +v -0.808395 1.165152 -3.000000 +v -0.618719 0.881282 -3.000000 +v -0.334848 0.691606 -3.000000 +v -0.000000 0.625000 -3.000000 +v 0.334847 0.691606 -3.000000 +v 0.618718 0.881281 -3.000000 +v 0.808394 1.165152 -3.000000 +v 0.875000 1.500000 -3.000000 +v 0.808394 1.834848 -3.000000 +v 0.618718 2.118719 -3.000000 +v 0.334847 2.308395 -3.000000 +v -0.000000 2.500000 -2.500000 +v -0.382684 2.423880 -2.500000 +v -0.707107 2.207107 -2.500000 +v -0.923880 1.882684 -2.500000 +v -1.000000 1.500000 -2.500000 +v -0.923880 1.117317 -2.500000 +v -0.707107 0.792893 -2.500000 +v -0.382684 0.576121 -2.500000 +v -0.000000 0.500000 -2.500000 +v 0.382683 0.576120 -2.500000 +v 0.707106 0.792893 -2.500000 +v 0.923879 1.117316 -2.500000 +v 1.000000 1.500000 -2.500000 +v 0.923879 1.882684 -2.500000 +v 0.707106 2.207107 -2.500000 +v 0.382683 2.423880 -2.500000 +v -0.125000 2.437500 -1.250000 +v 0.125000 2.437500 -1.250000 +v -0.125000 2.687500 -2.250000 +v 0.125000 2.687500 -2.250000 +v -0.125000 2.437500 -2.250000 +v 0.125000 2.437500 -2.250000 +v 0.093750 2.656250 -2.250000 +v -0.093750 2.656250 -2.250000 +v 0.093750 2.500000 -2.250000 +v -0.093750 2.500000 -2.250000 +v 0.093750 2.593750 -2.000000 +v -0.093750 2.593750 -2.000000 +v 0.093750 2.500000 -2.000000 +v -0.093750 2.500000 -2.000000 +v 0.093750 0.500000 -2.000000 +v -0.093750 0.500000 -2.000000 +v 0.093750 0.406250 -2.000000 +v -0.093750 0.406250 -2.000000 +v 0.093750 0.500000 -2.250000 +v -0.093750 0.500000 -2.250000 +v 0.093750 0.343750 -2.250000 +v -0.093750 0.343750 -2.250000 +v -0.125000 0.562500 -2.250000 +v 0.125000 0.562500 -2.250000 +v -0.125000 0.312500 -2.250000 +v 0.125000 0.312500 -2.250000 +v -0.125000 0.562500 -1.250000 +v 0.125000 0.562500 -1.250000 +v 0.937500 1.625000 -1.250000 +v 0.937500 1.375000 -1.250000 +v 1.187500 1.625000 -2.250000 +v 1.187500 1.375000 -2.250000 +v 0.937500 1.625000 -2.250000 +v 0.937500 1.375000 -2.250000 +v 1.156250 1.406250 -2.250000 +v 1.156250 1.593750 -2.250000 +v 1.000000 1.406250 -2.250000 +v 1.000000 1.593750 -2.250000 +v 1.093750 1.406250 -2.000000 +v 1.093750 1.593750 -2.000000 +v 1.000000 1.406250 -2.000000 +v 1.000000 1.593750 -2.000000 +v -1.000000 1.406250 -2.000000 +v -1.000000 1.593750 -2.000000 +v -1.093750 1.406250 -2.000000 +v -1.093750 1.593750 -2.000000 +v -1.000000 1.406250 -2.250000 +v -1.000000 1.593750 -2.250000 +v -1.156250 1.406250 -2.250000 +v -1.156250 1.593750 -2.250000 +v -0.937500 1.625000 -2.250000 +v -0.937500 1.375000 -2.250000 +v -1.187500 1.625000 -2.250000 +v -1.187500 1.375000 -2.250000 +v -0.937500 1.625000 -1.250000 +v -0.937500 1.375000 -1.250000 +v 0.574524 2.251301 -1.250000 +v 0.751301 2.074524 -1.250000 +v 0.751301 2.428078 -2.250000 +v 0.928078 2.251301 -2.250000 +v 0.574524 2.251301 -2.250000 +v 0.751301 2.074524 -2.250000 +v 0.883883 2.251301 -2.250000 +v 0.751301 2.383883 -2.250000 +v 0.773398 2.140815 -2.250000 +v 0.640815 2.273398 -2.250000 +v 0.839689 2.207107 -2.000000 +v 0.707107 2.339689 -2.000000 +v 0.773398 2.140815 -2.000000 +v 0.640815 2.273398 -2.000000 +v -0.640815 0.726602 -2.000000 +v -0.773398 0.859185 -2.000000 +v -0.707107 0.660311 -2.000000 +v -0.839689 0.792894 -2.000000 +v -0.640815 0.726602 -2.250000 +v -0.773398 0.859185 -2.250000 +v -0.751301 0.616117 -2.250000 +v -0.883883 0.748699 -2.250000 +v -0.751301 0.925476 -2.250000 +v -0.574524 0.748699 -2.250000 +v -0.928078 0.748699 -2.250000 +v -0.751301 0.571923 -2.250000 +v -0.751301 0.925476 -1.250000 +v -0.574524 0.748699 -1.250000 +v 0.751301 0.925476 -1.250000 +v 0.574524 0.748699 -1.250000 +v 0.928078 0.748699 -2.250000 +v 0.751301 0.571923 -2.250000 +v 0.751301 0.925476 -2.250000 +v 0.574524 0.748699 -2.250000 +v 0.751301 0.616117 -2.250000 +v 0.883883 0.748699 -2.250000 +v 0.640816 0.726602 -2.250000 +v 0.773398 0.859185 -2.250000 +v 0.707107 0.660311 -2.000000 +v 0.839689 0.792894 -2.000000 +v 0.640816 0.726602 -2.000000 +v 0.773398 0.859185 -2.000000 +v -0.773398 2.140816 -2.000000 +v -0.640816 2.273398 -2.000000 +v -0.839689 2.207107 -2.000000 +v -0.707107 2.339689 -2.000000 +v -0.773398 2.140816 -2.250000 +v -0.640816 2.273398 -2.250000 +v -0.883883 2.251301 -2.250000 +v -0.751301 2.383884 -2.250000 +v -0.574524 2.251301 -2.250000 +v -0.751301 2.074524 -2.250000 +v -0.751301 2.428078 -2.250000 +v -0.928078 2.251301 -2.250000 +v -0.574524 2.251301 -1.250000 +v -0.751301 2.074524 -1.250000 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.270833 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.270833 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.250000 0.250000 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.250000 0.250000 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.400000 0.041667 +vt 0.350000 0.031250 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.250000 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.250000 0.250000 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 1.000000 0.500000 +vt 0.600000 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.562500 +vt 0.600000 0.500000 +vt 1.000000 0.625000 +vt 0.600000 0.562500 +vt 1.000000 0.687500 +vt 0.600000 0.625000 +vt 0.600000 0.750000 +vt 0.600000 0.687500 +vt 1.000000 0.750000 +vt 0.600000 0.812500 +vt 1.000000 0.875000 +vt 1.000000 0.812500 +vt 0.600000 0.937500 +vt 0.600000 0.875000 +vt 1.000000 1.000000 +vt 1.000000 0.937500 +vt 1.000000 0.000000 +vt 0.600000 0.062500 +vt 0.600000 0.000000 +vt 1.000000 0.062500 +vt 0.600000 0.125000 +vt 1.000000 0.125000 +vt 0.600000 0.187500 +vt 1.000000 0.187500 +vt 0.600000 0.250000 +vt 1.000000 0.312500 +vt 1.000000 0.250000 +vt 1.000000 0.375000 +vt 0.600000 0.312500 +vt 0.600000 0.375000 +vt 0.600000 1.000000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9701 0.2425 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.9701 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.0000 -0.9701 0.2425 +vn 0.0000 -1.0000 0.0000 +vn 0.9701 0.0000 0.2425 +vn -0.9701 0.0000 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn -0.9701 0.0000 0.2425 +vn 0.7071 0.7071 0.0000 +vn 0.6860 0.6860 0.2425 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6860 -0.6860 -0.2425 +vn 0.6860 0.6860 -0.2425 +vn -0.6860 -0.6860 0.2425 +vn -0.7071 -0.7071 0.0000 +vn 0.6860 -0.6860 0.2425 +vn -0.6860 0.6860 -0.2425 +vn 0.6860 -0.6860 -0.2425 +vn -0.6860 0.6860 0.2425 +vn 0.3712 0.8963 -0.2425 +vn -0.3712 0.8963 -0.2425 +vn -0.8963 0.3712 -0.2425 +vn -0.8963 0.3713 -0.2425 +vn -0.8963 -0.3712 -0.2425 +vn -0.3713 -0.8963 -0.2425 +vn 0.3712 -0.8963 -0.2425 +vn 0.8963 -0.3713 -0.2425 +vn 0.8963 -0.3712 -0.2425 +vn 0.8963 0.3713 -0.2425 +vn 0.8963 0.3712 -0.2425 +s off +f 895/917/374 890/918/374 891/919/374 +f 887/920/375 891/921/375 890/922/375 +f 883/923/376 884/924/376 882/925/376 +f 884/924/375 891/921/375 886/926/375 +f 885/927/377 883/923/377 887/928/377 +f 884/924/378 886/929/378 882/925/378 +f 891/930/377 893/931/377 895/917/377 +f 885/927/375 889/932/375 884/924/375 +f 885/927/375 890/922/375 888/933/375 +f 892/934/375 895/917/375 893/931/375 +f 888/935/379 893/931/379 889/936/379 +f 890/937/378 892/934/378 888/938/378 +f 901/939/377 899/940/377 903/941/377 +f 903/942/380 898/943/380 902/944/380 +f 899/940/375 896/945/375 898/943/375 +f 906/946/375 901/947/375 903/948/375 +f 906/946/375 902/949/375 907/950/375 +f 900/951/378 898/943/378 896/945/378 +f 907/950/377 905/952/377 909/953/377 +f 906/946/378 908/954/378 904/955/378 +f 907/950/375 900/956/375 905/957/375 +f 908/954/381 907/950/381 909/953/381 +f 904/958/375 900/956/375 901/947/375 +f 896/945/382 901/959/382 900/960/382 +f 923/961/377 918/962/377 919/963/377 +f 915/964/375 919/965/375 918/966/375 +f 911/967/383 912/968/383 910/969/383 +f 912/968/375 919/965/375 914/970/375 +f 913/971/382 911/967/382 915/972/382 +f 912/968/374 914/973/374 910/969/374 +f 919/974/382 921/975/382 923/961/382 +f 913/971/375 917/976/375 912/968/375 +f 913/971/375 918/966/375 916/977/375 +f 920/978/375 923/961/375 921/975/375 +f 916/979/384 921/975/384 917/980/384 +f 918/981/374 920/978/374 916/982/374 +f 929/983/382 927/984/382 931/985/382 +f 931/986/385 926/987/385 930/988/385 +f 927/984/375 924/989/375 926/987/375 +f 934/990/375 929/991/375 931/992/375 +f 934/990/375 930/993/375 935/994/375 +f 928/995/374 926/987/374 924/989/374 +f 935/994/382 933/996/382 937/997/382 +f 934/990/374 936/998/374 932/999/374 +f 935/994/375 928/1000/375 933/1001/375 +f 936/998/386 935/994/386 937/997/386 +f 932/1002/375 928/1000/375 929/991/375 +f 924/989/378 929/1003/378 928/1004/378 +f 951/1005/387 946/1006/387 947/1007/387 +f 943/1008/375 947/1009/375 946/1010/375 +f 939/1011/388 940/1012/388 938/1013/388 +f 940/1012/375 947/1009/375 942/1014/375 +f 941/1015/389 939/1011/389 943/1016/389 +f 940/1012/390 942/1017/390 938/1013/390 +f 947/1018/389 949/1019/389 951/1005/389 +f 940/1012/375 944/1020/375 945/1021/375 +f 941/1015/375 946/1010/375 944/1020/375 +f 949/1019/375 950/1022/375 951/1005/375 +f 944/1023/391 949/1019/391 945/1024/391 +f 946/1025/390 948/1026/390 944/1027/390 +f 957/1028/389 955/1029/389 959/1030/389 +f 959/1031/392 954/1032/392 958/1033/392 +f 954/1032/375 953/1034/375 952/1035/375 +f 962/1036/375 957/1037/375 959/1038/375 +f 963/1039/375 959/1038/375 958/1040/375 +f 956/1041/390 954/1032/390 952/1035/390 +f 963/1039/389 961/1042/389 965/1043/389 +f 962/1036/390 964/1044/390 960/1045/390 +f 963/1039/375 956/1046/375 961/1047/375 +f 964/1044/393 963/1039/393 965/1043/393 +f 960/1048/375 956/1046/375 957/1037/375 +f 952/1035/394 957/1049/394 956/1050/394 +f 979/1051/389 974/1052/389 975/1053/389 +f 971/1054/375 975/1055/375 974/1056/375 +f 967/1057/395 968/1058/395 966/1059/395 +f 968/1058/375 975/1055/375 970/1060/375 +f 969/1061/394 967/1057/394 971/1062/394 +f 968/1058/387 970/1063/387 966/1059/387 +f 975/1064/394 977/1065/394 979/1051/394 +f 969/1061/375 973/1066/375 968/1058/375 +f 969/1061/375 974/1056/375 972/1067/375 +f 977/1065/375 978/1068/375 979/1051/375 +f 972/1069/396 977/1065/396 973/1070/396 +f 974/1071/387 976/1072/387 972/1073/387 +f 985/1074/394 983/1075/394 987/1076/394 +f 987/1077/397 982/1078/397 986/1079/397 +f 982/1078/375 981/1080/375 980/1081/375 +f 990/1082/375 985/1083/375 987/1084/375 +f 990/1082/375 986/1085/375 991/1086/375 +f 984/1087/387 982/1078/387 980/1081/387 +f 991/1086/394 989/1088/394 993/1089/394 +f 990/1082/387 992/1090/387 988/1091/387 +f 991/1086/375 984/1092/375 989/1093/375 +f 992/1090/398 991/1086/398 993/1089/398 +f 988/1094/375 984/1092/375 985/1083/375 +f 980/1081/390 985/1095/390 984/1096/390 +f 895/917/374 894/1097/374 890/918/374 +f 887/920/375 886/926/375 891/921/375 +f 883/923/376 885/927/376 884/924/376 +f 884/924/375 889/932/375 891/921/375 +f 891/930/377 889/1098/377 893/931/377 +f 885/927/375 888/933/375 889/932/375 +f 885/927/375 887/920/375 890/922/375 +f 892/934/375 894/1097/375 895/917/375 +f 888/935/379 892/934/379 893/931/379 +f 890/937/378 894/1097/378 892/934/378 +f 901/939/377 897/1099/377 899/940/377 +f 903/942/380 899/940/380 898/943/380 +f 899/940/375 897/1099/375 896/945/375 +f 906/946/375 904/958/375 901/947/375 +f 906/946/375 903/948/375 902/949/375 +f 900/951/378 902/1100/378 898/943/378 +f 907/950/375 902/949/375 900/956/375 +f 908/954/381 906/946/381 907/950/381 +f 904/958/375 905/957/375 900/956/375 +f 896/945/382 897/1099/382 901/959/382 +f 923/961/377 922/1101/377 918/962/377 +f 915/964/375 914/970/375 919/965/375 +f 911/967/383 913/971/383 912/968/383 +f 912/968/375 917/976/375 919/965/375 +f 919/974/382 917/1102/382 921/975/382 +f 913/971/375 916/977/375 917/976/375 +f 913/971/375 915/964/375 918/966/375 +f 920/978/375 922/1101/375 923/961/375 +f 916/979/384 920/978/384 921/975/384 +f 918/981/374 922/1101/374 920/978/374 +f 929/983/382 925/1103/382 927/984/382 +f 931/986/385 927/984/385 926/987/385 +f 927/984/375 925/1103/375 924/989/375 +f 934/990/375 932/1002/375 929/991/375 +f 934/990/375 931/992/375 930/993/375 +f 928/995/374 930/1104/374 926/987/374 +f 935/994/375 930/993/375 928/1000/375 +f 936/998/386 934/990/386 935/994/386 +f 932/1002/375 933/1001/375 928/1000/375 +f 924/989/378 925/1103/378 929/1003/378 +f 951/1005/387 950/1022/387 946/1006/387 +f 943/1008/375 942/1014/375 947/1009/375 +f 939/1011/388 941/1015/388 940/1012/388 +f 940/1012/375 945/1021/375 947/1009/375 +f 947/1018/389 945/1105/389 949/1019/389 +f 940/1012/375 941/1015/375 944/1020/375 +f 941/1015/375 943/1008/375 946/1010/375 +f 949/1019/375 948/1026/375 950/1022/375 +f 944/1023/391 948/1026/391 949/1019/391 +f 946/1025/390 950/1022/390 948/1026/390 +f 957/1028/389 953/1034/389 955/1029/389 +f 959/1031/392 955/1029/392 954/1032/392 +f 954/1032/375 955/1029/375 953/1034/375 +f 962/1036/375 960/1048/375 957/1037/375 +f 963/1039/375 962/1036/375 959/1038/375 +f 956/1041/390 958/1106/390 954/1032/390 +f 963/1039/375 958/1040/375 956/1046/375 +f 964/1044/393 962/1036/393 963/1039/393 +f 960/1048/375 961/1047/375 956/1046/375 +f 952/1035/394 953/1034/394 957/1049/394 +f 979/1051/389 978/1068/389 974/1052/389 +f 971/1054/375 970/1060/375 975/1055/375 +f 967/1057/395 969/1061/395 968/1058/395 +f 968/1058/375 973/1066/375 975/1055/375 +f 975/1064/394 973/1107/394 977/1065/394 +f 969/1061/375 972/1067/375 973/1066/375 +f 969/1061/375 971/1054/375 974/1056/375 +f 977/1065/375 976/1072/375 978/1068/375 +f 972/1069/396 976/1072/396 977/1065/396 +f 974/1071/387 978/1068/387 976/1072/387 +f 985/1074/394 981/1080/394 983/1075/394 +f 987/1077/397 983/1075/397 982/1078/397 +f 982/1078/375 983/1075/375 981/1080/375 +f 990/1082/375 988/1094/375 985/1083/375 +f 990/1082/375 987/1084/375 986/1085/375 +f 984/1087/387 986/1108/387 982/1078/387 +f 991/1086/375 986/1085/375 984/1092/375 +f 992/1090/398 990/1082/398 991/1086/398 +f 988/1094/375 989/1093/375 984/1092/375 +f 980/1081/390 981/1080/390 985/1095/390 +s 1 +f 850/1109/380 881/1110/399 865/1111/399 +f 851/1112/400 866/1113/380 850/1109/380 +f 852/1114/396 867/1115/400 851/1112/400 +f 853/1116/401 868/1117/396 852/1114/396 +f 853/1116/401 870/1118/384 869/1119/402 +f 854/1120/384 871/1121/403 870/1118/384 +f 856/1122/391 871/1121/403 855/1123/403 +f 856/1122/391 873/1124/404 872/1125/391 +f 858/1126/379 873/1124/404 857/1127/404 +f 858/1128/379 875/1129/405 874/1130/379 +f 859/1131/405 876/1132/397 875/1129/405 +f 860/1133/397 877/1134/406 876/1132/397 +f 861/1135/407 878/1136/385 877/1134/406 +f 863/1137/408 878/1136/385 862/1138/385 +f 864/1139/392 879/1140/409 863/1137/408 +f 865/1111/399 880/1141/392 864/1139/392 +f 850/1109/380 866/1113/380 881/1110/399 +f 851/1112/400 867/1115/400 866/1113/380 +f 852/1114/396 868/1117/396 867/1115/400 +f 853/1116/401 869/1119/402 868/1117/396 +f 853/1116/401 854/1120/384 870/1118/384 +f 854/1120/384 855/1123/403 871/1121/403 +f 856/1122/391 872/1125/391 871/1121/403 +f 856/1122/391 857/1127/404 873/1124/404 +f 858/1126/379 874/1142/379 873/1124/404 +f 858/1128/379 859/1131/405 875/1129/405 +f 859/1131/405 860/1133/397 876/1132/397 +f 860/1133/397 861/1135/407 877/1134/406 +f 861/1135/407 862/1138/385 878/1136/385 +f 863/1137/408 879/1140/409 878/1136/385 +f 864/1139/392 880/1141/392 879/1140/409 +f 865/1111/399 881/1110/399 880/1141/392 +o Body +v 0.000000 3.000000 3.125000 +v -0.574025 2.885819 3.125000 +v -1.060660 2.560660 3.125000 +v -1.385819 2.074025 3.125000 +v -1.500000 1.500000 3.125000 +v -1.385819 0.925975 3.125000 +v -1.060660 0.439340 3.125000 +v -0.574025 0.114181 3.125000 +v 0.000000 0.000000 3.125000 +v 0.574025 0.114181 3.125000 +v 1.060660 0.439340 3.125000 +v 1.385819 0.925975 3.125000 +v 1.500000 1.500000 3.125000 +v 1.385819 2.074025 3.125000 +v 1.060659 2.560660 3.125000 +v 0.574024 2.885819 3.125000 +v 0.000000 2.937500 3.125000 +v -0.550107 2.828077 3.125000 +v -1.016466 2.516467 3.125000 +v -1.328077 2.050108 3.125000 +v -1.437500 1.500000 3.125000 +v -1.328077 0.949893 3.125000 +v -1.016466 0.483534 3.125000 +v -0.550108 0.171924 3.125000 +v -0.000000 0.062500 3.125000 +v 0.550107 0.171924 3.125000 +v 1.016465 0.483534 3.125000 +v 1.328076 0.949893 3.125000 +v 1.437500 1.500000 3.125000 +v 1.328076 2.050108 3.125000 +v 1.016465 2.516467 3.125000 +v 0.550107 2.828077 3.125000 +v 0.526189 2.770334 3.062500 +v 0.972271 2.472272 3.062500 +v 1.270334 2.026190 3.062500 +v 1.375000 1.500000 3.062500 +v 1.270334 0.973810 3.062500 +v 0.972271 0.527728 3.062500 +v 0.526189 0.229665 3.062500 +v -0.000000 0.125000 3.062500 +v -0.526190 0.229665 3.062500 +v -0.972272 0.527728 3.062500 +v -1.270334 0.973810 3.062500 +v -1.375000 1.500000 3.062500 +v -1.270334 2.026189 3.062500 +v -0.972272 2.472271 3.062500 +v -0.526190 2.770334 3.062500 +v 0.000000 2.875000 3.062500 +v 0.000000 3.000000 1.125000 +v -0.574025 2.885819 1.125000 +v -1.060660 2.560660 1.125000 +v -1.385819 2.074025 1.125000 +v -1.500000 1.500000 1.125000 +v -1.385819 0.925975 1.125000 +v -1.060660 0.439340 1.125000 +v -0.574025 0.114181 1.125000 +v 0.000000 0.000000 1.125000 +v 0.574025 0.114181 1.125000 +v 1.060660 0.439340 1.125000 +v 1.385819 0.925975 1.125000 +v 1.500000 1.500000 1.125000 +v 1.385819 2.074025 1.125000 +v 1.060659 2.560660 1.125000 +v 0.574024 2.885819 1.125000 +v 0.000000 3.000000 2.875000 +v -0.574025 2.885819 2.875000 +v -1.060660 2.560660 2.875000 +v -1.385819 2.074025 2.875000 +v -1.500000 1.500000 2.875000 +v -1.385819 0.925975 2.875000 +v -1.060660 0.439340 2.875000 +v -0.574025 0.114181 2.875000 +v 0.000000 0.000000 2.875000 +v 0.574025 0.114181 2.875000 +v 1.060660 0.439340 2.875000 +v 1.385819 0.925975 2.875000 +v 1.500000 1.500000 2.875000 +v 1.385819 2.074025 2.875000 +v 1.060659 2.560660 2.875000 +v 0.574024 2.885819 2.875000 +v 0.000000 3.000000 1.375000 +v -0.574025 2.885819 1.375000 +v -1.060660 2.560660 1.375000 +v -1.385819 2.074025 1.375000 +v -1.500000 1.500000 1.375000 +v -1.385819 0.925975 1.375000 +v -1.060660 0.439340 1.375000 +v -0.574025 0.114181 1.375000 +v 0.000000 0.000000 1.375000 +v 0.574025 0.114181 1.375000 +v 1.060660 0.439340 1.375000 +v 1.385819 0.925975 1.375000 +v 1.500000 1.500000 1.375000 +v 1.385819 2.074025 1.375000 +v 1.060659 2.560660 1.375000 +v 0.574024 2.885819 1.375000 +v 0.000000 2.875000 1.125000 +v -0.526190 2.770334 1.125000 +v -0.972272 2.472272 1.125000 +v -1.270334 2.026190 1.125000 +v -1.375000 1.500000 1.125000 +v -1.270334 0.973810 1.125000 +v -0.972272 0.527728 1.125000 +v -0.526190 0.229666 1.125000 +v -0.000000 0.125000 1.125000 +v 0.526189 0.229666 1.125000 +v 0.972271 0.527728 1.125000 +v 1.270334 0.973810 1.125000 +v 1.375000 1.500000 1.125000 +v 1.270334 2.026190 1.125000 +v 0.972271 2.472272 1.125000 +v 0.526189 2.770335 1.125000 +v 0.000000 2.937500 2.875000 +v -0.550107 2.828077 2.875000 +v -1.016466 2.516467 2.875000 +v -1.328077 2.050108 2.875000 +v -1.437500 1.500000 2.875000 +v -1.328077 0.949893 2.875000 +v -1.016466 0.483534 2.875000 +v -0.550108 0.171924 2.875000 +v -0.000000 0.062500 2.875000 +v 0.550107 0.171924 2.875000 +v 1.016465 0.483534 2.875000 +v 1.328076 0.949893 2.875000 +v 1.437500 1.500000 2.875000 +v 1.328076 2.050108 2.875000 +v 1.016465 2.516467 2.875000 +v 0.550107 2.828077 2.875000 +v 0.000000 2.937500 1.375000 +v -0.550107 2.828077 1.375000 +v -1.016466 2.516467 1.375000 +v -1.328077 2.050108 1.375000 +v -1.437500 1.500000 1.375000 +v -1.328077 0.949893 1.375000 +v -1.016466 0.483534 1.375000 +v -0.550108 0.171924 1.375000 +v -0.000000 0.062500 1.375000 +v 0.550107 0.171924 1.375000 +v 1.016465 0.483534 1.375000 +v 1.328076 0.949893 1.375000 +v 1.437500 1.500000 1.375000 +v 1.328076 2.050108 1.375000 +v 1.016465 2.516467 1.375000 +v 0.550107 2.828077 1.375000 +v -0.000000 2.500000 1.125000 +v -0.382684 2.423880 1.125000 +v -0.707107 2.207107 1.125000 +v -0.923880 1.882684 1.125000 +v -1.000000 1.500000 1.125000 +v -0.923880 1.117317 1.125000 +v -0.707107 0.792893 1.125000 +v -0.382684 0.576120 1.125000 +v -0.000000 0.500000 1.125000 +v 0.382683 0.576120 1.125000 +v 0.707106 0.792893 1.125000 +v 0.923879 1.117316 1.125000 +v 1.000000 1.500000 1.125000 +v 0.923879 1.882684 1.125000 +v 0.707106 2.207107 1.125000 +v 0.382683 2.423880 1.125000 +v 0.334847 2.308395 1.125000 +v 0.618718 2.118719 1.125000 +v 0.808394 1.834848 1.125000 +v 0.875000 1.500000 1.125000 +v 0.808394 1.165152 1.125000 +v 0.618718 0.881281 1.125000 +v 0.334848 0.691606 1.125000 +v -0.000000 0.625000 1.125000 +v -0.334848 0.691606 1.125000 +v -0.618719 0.881282 1.125000 +v -0.808395 1.165152 1.125000 +v -0.875000 1.500000 1.125000 +v -0.808395 1.834848 1.125000 +v -0.618719 2.118719 1.125000 +v -0.334848 2.308394 1.125000 +v -0.000000 2.375000 1.125000 +v -0.000000 2.250000 1.125000 +v -0.287013 2.192910 1.125000 +v -0.530330 2.030330 1.125000 +v -0.692910 1.787013 1.125000 +v -0.750000 1.500000 1.125000 +v -0.692910 1.212987 1.125000 +v -0.530330 0.969670 1.125000 +v -0.287013 0.807090 1.125000 +v -0.000000 0.750000 1.125000 +v 0.287012 0.807090 1.125000 +v 0.530330 0.969670 1.125000 +v 0.692909 1.212987 1.125000 +v 0.750000 1.500000 1.125000 +v 0.692909 1.787013 1.125000 +v 0.530330 2.030330 1.125000 +v 0.287012 2.192910 1.125000 +v -0.000000 2.375000 1.125000 +v -0.334848 2.308394 1.125000 +v -0.618719 2.118719 1.125000 +v -0.808395 1.834848 1.125000 +v -0.875000 1.500000 1.125000 +v -0.808395 1.165152 1.125000 +v -0.618719 0.881282 1.125000 +v -0.334848 0.691606 1.125000 +v -0.000000 0.625000 1.125000 +v 0.334848 0.691606 1.125000 +v 0.618718 0.881281 1.125000 +v 0.808394 1.165152 1.125000 +v 0.875000 1.500000 1.125000 +v 0.808394 1.834848 1.125000 +v 0.618718 2.118719 1.125000 +v 0.334847 2.308395 1.125000 +v 0.937500 1.625000 2.187500 +v 0.937500 1.375000 2.187500 +v 0.937500 1.625000 1.312500 +v 0.937500 1.375000 1.312500 +v 1.375000 1.625000 1.312500 +v 1.375000 1.625000 2.187500 +v 1.375000 1.375000 2.187500 +v 1.375000 1.375000 1.312500 +v -0.937500 1.375000 2.187500 +v -0.937500 1.625000 2.187500 +v -0.937500 1.375000 1.312500 +v -0.937500 1.625000 1.312500 +v -1.375000 1.375000 1.312500 +v -1.375000 1.375000 2.187500 +v -1.375000 1.625000 2.187500 +v -1.375000 1.625000 1.312500 +v 0.125000 0.562500 2.187500 +v -0.125000 0.562500 2.187500 +v 0.125000 0.562500 1.312500 +v -0.125000 0.562500 1.312500 +v 0.125000 0.125000 1.312500 +v 0.125000 0.125000 2.187500 +v -0.125000 0.125000 2.187500 +v -0.125000 0.125000 1.312500 +v -0.125000 2.437500 2.187500 +v 0.125000 2.437500 2.187500 +v -0.125000 2.437500 1.312500 +v 0.125000 2.437500 1.312500 +v -0.125000 2.875000 1.312500 +v -0.125000 2.875000 2.187500 +v 0.125000 2.875000 2.187500 +v 0.125000 2.875000 1.312500 +v 0.874399 1.139503 2.187500 +v 0.749399 0.922997 2.187500 +v 0.874399 1.139503 1.312500 +v 0.749399 0.922997 1.312500 +v 1.253285 0.920753 1.312500 +v 1.253285 0.920753 2.187500 +v 1.128285 0.704247 2.187500 +v 1.128285 0.704247 1.312500 +v -0.874399 1.860497 2.187500 +v -0.749399 2.077003 2.187500 +v -0.874399 1.860497 1.312500 +v -0.749399 2.077003 1.312500 +v -1.253285 2.079247 1.312500 +v -1.253285 2.079247 2.187500 +v -1.128285 2.295753 2.187500 +v -1.128285 2.295753 1.312500 +v -0.360497 0.625601 2.187500 +v -0.577003 0.750601 2.187500 +v -0.360497 0.625601 1.312500 +v -0.577003 0.750601 1.312500 +v -0.579247 0.246715 1.312500 +v -0.579247 0.246715 2.187500 +v -0.795753 0.371715 2.187500 +v -0.795753 0.371715 1.312500 +v 0.360497 2.374399 2.187500 +v 0.577003 2.249399 2.187500 +v 0.360497 2.374399 1.312500 +v 0.577003 2.249399 1.312500 +v 0.579247 2.753285 1.312500 +v 0.579247 2.753285 2.187500 +v 0.795753 2.628285 2.187500 +v 0.795753 2.628285 1.312500 +v 0.577003 0.750601 2.187500 +v 0.360497 0.625601 2.187500 +v 0.577003 0.750601 1.312500 +v 0.360497 0.625601 1.312500 +v 0.795753 0.371715 1.312500 +v 0.795753 0.371715 2.187500 +v 0.579247 0.246715 2.187500 +v 0.579247 0.246715 1.312500 +v -0.577003 2.249399 2.187500 +v -0.360497 2.374399 2.187500 +v -0.577003 2.249399 1.312500 +v -0.360497 2.374399 1.312500 +v -0.795753 2.628285 1.312500 +v -0.795753 2.628285 2.187500 +v -0.579247 2.753285 2.187500 +v -0.579247 2.753285 1.312500 +v -0.749399 0.922997 2.187500 +v -0.874399 1.139503 2.187500 +v -0.749399 0.922997 1.312500 +v -0.874399 1.139503 1.312500 +v -1.128285 0.704247 1.312500 +v -1.128285 0.704247 2.187500 +v -1.253285 0.920753 2.187500 +v -1.253285 0.920753 1.312500 +v 0.749399 2.077003 2.187500 +v 0.874399 1.860497 2.187500 +v 0.749399 2.077003 1.312500 +v 0.874399 1.860497 1.312500 +v 1.128285 2.295753 1.312500 +v 1.128285 2.295753 2.187500 +v 1.253285 2.079247 2.187500 +v 1.253285 2.079247 1.312500 +v 1.011684 1.229358 -0.250000 +v 0.909767 1.330389 -0.250000 +v 0.766262 1.329762 -0.250000 +v 0.665232 1.227846 -0.250000 +v 0.665858 1.084342 -0.250000 +v 0.767774 0.983311 -0.250000 +v 1.012310 1.085853 -0.250000 +v 0.911279 0.983937 -0.250000 +v 1.011684 1.229358 0.250000 +v 0.909767 1.330389 0.250000 +v 0.766262 1.329762 0.250000 +v 0.665232 1.227846 0.250000 +v 0.665858 1.084342 0.250000 +v 0.767774 0.983311 0.250000 +v 1.012310 1.085853 0.250000 +v 0.911279 0.983937 0.250000 +v -0.000000 2.156250 -2.875000 +v -0.251136 2.106296 -2.875000 +v -0.464039 1.964039 -2.875000 +v -0.606296 1.751136 -2.875000 +v -0.656250 1.500000 -2.875000 +v -0.606296 1.248864 -2.875000 +v -0.464039 1.035961 -2.875000 +v -0.251136 0.893704 -2.875000 +v -0.000000 0.843750 -2.875000 +v 0.251136 0.893704 -2.875000 +v 0.464038 1.035961 -2.875000 +v 0.606296 1.248864 -2.875000 +v 0.656250 1.500000 -2.875000 +v 0.606296 1.751136 -2.875000 +v 0.464038 1.964039 -2.875000 +v 0.251135 2.106296 -2.875000 +v -0.000000 1.828125 -3.375000 +v -0.125568 1.803148 -3.375000 +v -0.232020 1.732019 -3.375000 +v -0.303148 1.625568 -3.375000 +v -0.328125 1.500000 -3.375000 +v -0.303148 1.374432 -3.375000 +v -0.232020 1.267981 -3.375000 +v -0.125568 1.196852 -3.375000 +v -0.000000 1.171875 -3.375000 +v 0.125568 1.196852 -3.375000 +v 0.232019 1.267981 -3.375000 +v 0.303148 1.374432 -3.375000 +v 0.328125 1.500000 -3.375000 +v 0.303148 1.625568 -3.375000 +v 0.232019 1.732019 -3.375000 +v 0.125568 1.803148 -3.375000 +v -0.000000 1.500000 -3.500000 +v -0.000000 2.500000 -2.500000 +v -0.382684 2.423880 -2.500000 +v -0.707107 2.207107 -2.500000 +v -0.923880 1.882684 -2.500000 +v -1.000000 1.500000 -2.500000 +v -0.923880 1.117317 -2.500000 +v -0.707107 0.792893 -2.500000 +v -0.382684 0.576120 -2.500000 +v -0.000000 0.500000 -2.500000 +v 0.382683 0.576120 -2.500000 +v 0.707106 0.792893 -2.500000 +v 0.923879 1.117316 -2.500000 +v 1.000000 1.500000 -2.500000 +v 0.923879 1.882684 -2.500000 +v 0.707106 2.207107 -2.500000 +v 0.382683 2.423880 -2.500000 +v -0.000000 2.500000 -1.000000 +v -0.382684 2.423880 -1.000000 +v -0.707107 2.207107 -1.000000 +v -0.923880 1.882684 -1.000000 +v -1.000000 1.500000 -1.000000 +v -0.923880 1.117317 -1.000000 +v -0.707107 0.792893 -1.000000 +v -0.382684 0.576120 -1.000000 +v -0.000000 0.500000 -1.000000 +v 0.382683 0.576120 -1.000000 +v 0.707106 0.792893 -1.000000 +v 0.923879 1.117316 -1.000000 +v 1.000000 1.500000 -1.000000 +v 0.923879 1.882684 -1.000000 +v 0.707106 2.207107 -1.000000 +v 0.382683 2.423880 -1.000000 +v -0.000000 2.375000 -1.000000 +v -0.334848 2.308394 -1.000000 +v -0.618719 2.118719 -1.000000 +v -0.808395 1.834848 -1.000000 +v -0.875000 1.500000 -1.000000 +v -0.808395 1.165152 -1.000000 +v -0.618719 0.881282 -1.000000 +v -0.334848 0.691606 -1.000000 +v -0.000000 0.625000 -1.000000 +v 0.334848 0.691606 -1.000000 +v 0.618718 0.881281 -1.000000 +v 0.808394 1.165152 -1.000000 +v 0.875000 1.500000 -1.000000 +v 0.808394 1.834848 -1.000000 +v 0.618718 2.118719 -1.000000 +v 0.334847 2.308395 -1.000000 +v -0.000000 2.156250 -1.000000 +v -0.251136 2.106296 -1.000000 +v -0.464039 1.964039 -1.000000 +v -0.606296 1.751136 -1.000000 +v -0.656250 1.500000 -1.000000 +v -0.606296 1.248864 -1.000000 +v -0.464039 1.035961 -1.000000 +v -0.251136 0.893704 -1.000000 +v -0.000000 0.843750 -1.000000 +v 0.251136 0.893704 -1.000000 +v 0.464038 1.035961 -1.000000 +v 0.606296 1.248864 -1.000000 +v 0.656250 1.500000 -1.000000 +v 0.606296 1.751136 -1.000000 +v 0.464038 1.964039 -1.000000 +v 0.251135 2.106296 -1.000000 +v 0.000000 3.000000 2.750000 +v -0.574025 2.885819 2.750000 +v -1.060660 2.560660 2.750000 +v -1.385819 2.074025 2.750000 +v -1.500000 1.500000 2.750000 +v -1.385819 0.925975 2.750000 +v -1.060660 0.439340 2.750000 +v -0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.750000 +v 0.574025 0.114181 2.750000 +v 1.060660 0.439340 2.750000 +v 1.385819 0.925975 2.750000 +v 1.500000 1.500000 2.750000 +v 1.385819 2.074025 2.750000 +v 1.060659 2.560660 2.750000 +v 0.574024 2.885819 2.750000 +v 0.000000 3.000000 2.250000 +v -0.574025 2.885819 2.250000 +v -1.060660 2.560660 2.250000 +v -1.385819 2.074025 2.250000 +v -1.500000 1.500000 2.250000 +v -1.385819 0.925975 2.250000 +v -1.060660 0.439340 2.250000 +v -0.574025 0.114181 2.250000 +v 0.000000 0.000000 2.250000 +v 0.574025 0.114181 2.250000 +v 1.060660 0.439340 2.250000 +v 1.385819 0.925975 2.250000 +v 1.500000 1.500000 2.250000 +v 1.385819 2.074025 2.250000 +v 1.060659 2.560660 2.250000 +v 0.574024 2.885819 2.250000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v 1.500000 0.687500 -0.812500 +v 1.500000 0.312500 -0.812500 +v 1.500000 0.687500 -1.187500 +v 1.500000 0.312500 -1.187500 +v 1.375000 0.687500 -1.187500 +v 1.375000 0.687500 -0.812500 +v 1.375000 0.312500 -0.812500 +v 1.375000 0.312500 -1.187500 +v -1.375000 0.687500 0.187500 +v -1.375000 0.312500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.312500 -0.187500 +v -1.375000 0.687500 -0.812500 +v -1.375000 0.312500 -0.812500 +v -1.375000 0.687500 -1.187500 +v -1.375000 0.312500 -1.187500 +v -1.500000 0.687500 -1.187500 +v -1.500000 0.687500 -0.812500 +v -1.500000 0.312500 -0.812500 +v -1.500000 0.312500 -1.187500 +v 1.375000 1.000000 0.500000 +v 1.375000 0.000000 0.500000 +v 1.375000 1.000000 -1.500000 +v 1.375000 0.000000 -1.500000 +v 1.000000 1.000000 -1.500000 +v 1.000000 1.000000 0.500000 +v 0.500000 0.500000 -1.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -1.500000 +v -1.375000 1.000000 -1.500000 +v -1.375000 0.000000 -1.500000 +v -1.375000 1.000000 0.500000 +v -1.375000 0.000000 0.500000 +v -1.000000 1.000000 0.500000 +v -1.000000 1.000000 -1.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -1.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 0.000000 0.500000 +v 0.414147 2.512310 -1.000000 +v 0.448119 2.478633 -1.000000 +v 0.448327 2.430798 -1.000000 +v 0.414650 2.396826 -1.000000 +v 0.366816 2.396617 -1.000000 +v 0.332843 2.430294 -1.000000 +v 0.332635 2.478129 -1.000000 +v 0.366312 2.512101 -1.000000 +v 0.366815 2.396617 -2.375000 +v 0.407719 2.379883 -2.356694 +v 0.424662 2.372952 -2.312500 +v 0.407719 2.379883 -2.268306 +v 0.325912 2.413351 -2.268306 +v 0.308969 2.420282 -2.312500 +v 0.325912 2.413351 -2.356694 +v 0.400284 2.478424 -2.338389 +v 0.436286 2.449709 -2.325444 +v 0.441396 2.413855 -2.294194 +v 0.412620 2.391863 -2.262944 +v 0.366815 2.396617 -2.250000 +v 0.330813 2.425331 -2.262944 +v 0.325703 2.461186 -2.294194 +v 0.354479 2.483178 -2.325444 +v 0.414146 2.512310 -2.250000 +v 0.448118 2.478633 -2.250000 +v 0.448327 2.430798 -2.250000 +v 0.414650 2.396826 -2.250000 +v 0.332843 2.430294 -2.250000 +v 0.332635 2.478128 -2.250000 +v 0.366311 2.512101 -2.250000 +v 0.400787 2.362940 -0.500000 +v 0.366815 2.396617 -0.500000 +v 0.400996 2.315105 -0.500000 +v 0.367319 2.281133 -0.500000 +v 0.319484 2.280925 -0.500000 +v 0.285512 2.314601 -0.500000 +v 0.285304 2.362436 -0.500000 +v 0.318980 2.396409 -0.500000 +v 0.400787 2.362940 1.125000 +v 0.366815 2.396617 1.125000 +v 0.400996 2.315105 1.125000 +v 0.367319 2.281133 1.125000 +v 0.319484 2.280924 1.125000 +v 0.285512 2.314601 1.125000 +v 0.285304 2.362436 1.125000 +v 0.318980 2.396408 1.125000 +v 1.009283 1.779460 0.250000 +v 1.008657 1.922965 0.250000 +v 0.908253 1.677544 0.250000 +v 0.764747 1.676918 0.250000 +v 0.662832 1.777948 0.250000 +v 0.662205 1.921453 0.250000 +v 0.763236 2.023369 0.250000 +v 0.906741 2.023996 0.250000 +v 1.009283 1.779460 -0.250000 +v 1.008657 1.922965 -0.250000 +v 0.908253 1.677544 -0.250000 +v 0.764747 1.676918 -0.250000 +v 0.662832 1.777948 -0.250000 +v 0.662205 1.921453 -0.250000 +v 0.763236 2.023369 -0.250000 +v 0.906741 2.023996 -0.250000 +v 1.312500 1.125000 0.125000 +v 1.294194 1.125000 0.169194 +v 1.250000 1.125000 0.187500 +v 1.205806 1.125000 0.169194 +v 1.187500 1.125000 0.125000 +v 1.205806 1.125000 0.080806 +v 1.250000 1.125000 0.062500 +v 1.294194 1.125000 0.080806 +v 1.275888 1.213388 0.125000 +v 1.262944 1.200444 0.169194 +v 1.231694 1.169194 0.187500 +v 1.200444 1.137944 0.169194 +v 1.200444 1.137944 0.080806 +v 1.231694 1.169194 0.062500 +v 1.262944 1.200444 0.080806 +v 1.187500 1.250000 0.125000 +v 1.187500 1.231694 0.169194 +v 1.187500 1.187500 0.187500 +v 1.187500 1.143306 0.169194 +v 1.187500 1.143306 0.080806 +v 1.187500 1.187500 0.062500 +v 1.187500 1.231694 0.080806 +v 1.312500 1.000000 0.125000 +v 1.294194 1.000000 0.169194 +v 1.250000 1.000000 0.187500 +v 1.205806 1.000000 0.169194 +v 1.187500 1.000000 0.125000 +v 1.205806 1.000000 0.080806 +v 1.250000 1.000000 0.062500 +v 1.294194 1.000000 0.080806 +v 0.937500 1.125000 0.125000 +v 0.937500 1.250000 0.125000 +v 0.937500 1.231694 0.169194 +v 0.937500 1.187500 0.187500 +v 0.937500 1.143306 0.169194 +v 0.937500 1.143306 0.080806 +v 0.937500 1.187500 0.062500 +v 0.937500 1.231694 0.080806 +v 1.312500 1.750000 -0.125000 +v 1.294194 1.750000 -0.080806 +v 1.250000 1.750000 -0.062500 +v 1.205806 1.750000 -0.080806 +v 1.187500 1.750000 -0.125000 +v 1.205806 1.750000 -0.169194 +v 1.250000 1.750000 -0.187500 +v 1.294194 1.750000 -0.169194 +v 1.275888 1.838388 -0.125000 +v 1.262944 1.825444 -0.080806 +v 1.231694 1.794194 -0.062500 +v 1.200444 1.762944 -0.080806 +v 1.200444 1.762944 -0.169194 +v 1.231694 1.794194 -0.187500 +v 1.262944 1.825444 -0.169194 +v 1.187500 1.875000 -0.125000 +v 1.187500 1.856694 -0.080806 +v 1.187500 1.812500 -0.062500 +v 1.187500 1.768306 -0.080806 +v 1.187500 1.768306 -0.169194 +v 1.187500 1.812500 -0.187500 +v 1.187500 1.856694 -0.169194 +v 0.937500 1.750000 -0.125000 +v 0.937500 1.875000 -0.125000 +v 0.937500 1.856694 -0.080806 +v 0.937500 1.812500 -0.062500 +v 0.937500 1.768306 -0.080806 +v 0.937500 1.768306 -0.169194 +v 0.937500 1.812500 -0.187500 +v 0.937500 1.856694 -0.169194 +v 1.250000 1.125000 -0.187500 +v 1.205806 1.143306 -0.187500 +v 1.187500 1.187500 -0.187500 +v 1.205806 1.231694 -0.187500 +v 1.250000 1.250000 -0.187500 +v 1.294194 1.231694 -0.187500 +v 1.312500 1.187500 -0.187500 +v 1.294194 1.143306 -0.187500 +v 1.250000 1.161612 -0.099112 +v 1.205806 1.174556 -0.112056 +v 1.187500 1.205806 -0.143306 +v 1.205806 1.237056 -0.174556 +v 1.294194 1.237056 -0.174556 +v 1.312500 1.205806 -0.143306 +v 1.294194 1.174556 -0.112056 +v 1.250000 1.250000 -0.062500 +v 1.205806 1.250000 -0.080806 +v 1.187500 1.250000 -0.125000 +v 1.205806 1.250000 -0.169194 +v 1.294194 1.250000 -0.169194 +v 1.312500 1.250000 -0.125000 +v 1.294194 1.250000 -0.080806 +v 1.250000 1.125000 -1.062500 +v 1.294194 1.125000 -1.044194 +v 1.312500 1.125000 -1.000000 +v 1.294194 1.125000 -0.955806 +v 1.250000 1.125000 -0.937500 +v 1.205806 1.125000 -0.955806 +v 1.187500 1.125000 -1.000000 +v 1.205806 1.125000 -1.044194 +v 1.250000 1.213388 -1.025888 +v 1.294194 1.200444 -1.012944 +v 1.312500 1.169194 -0.981694 +v 1.294194 1.137944 -0.950444 +v 1.205806 1.137944 -0.950444 +v 1.187500 1.169194 -0.981694 +v 1.205806 1.200444 -1.012944 +v 1.250000 1.250000 -0.937500 +v 1.294194 1.231694 -0.937500 +v 1.312500 1.187500 -0.937500 +v 1.294194 1.143306 -0.937500 +v 1.205806 1.143306 -0.937500 +v 1.187500 1.187500 -0.937500 +v 1.205806 1.231694 -0.937500 +v 1.250000 1.000000 -1.062500 +v 1.294194 1.000000 -1.044194 +v 1.312500 1.000000 -1.000000 +v 1.294194 1.000000 -0.955806 +v 1.250000 1.000000 -0.937500 +v 1.205806 1.000000 -0.955806 +v 1.187500 1.000000 -1.000000 +v 1.205806 1.000000 -1.044194 +v -0.375000 0.000000 0.875000 +v 0.375000 0.000000 0.875000 +v -0.375000 0.000000 -2.375000 +v 0.375000 0.000000 -2.375000 +v -0.375000 0.125000 -2.375000 +v -0.375000 0.125000 0.875000 +v 0.375000 0.125000 0.875000 +v 0.375000 0.125000 -2.375000 +v 0.312500 0.125000 0.812500 +v 0.312500 0.125000 -0.812500 +v 0.312500 0.687500 0.812500 +v 0.312500 0.687500 -0.812500 +v 0.187500 0.125000 0.812500 +v 0.187500 0.125000 -0.812500 +v 0.187500 0.687500 0.812500 +v 0.187500 0.687500 -0.812500 +v -0.187500 0.125000 0.812500 +v -0.187500 0.125000 -0.812500 +v -0.187500 0.687500 0.812500 +v -0.187500 0.687500 -0.812500 +v -0.312500 0.125000 0.812500 +v -0.312500 0.125000 -0.812500 +v -0.312500 0.687500 0.812500 +v -0.312500 0.687500 -0.812500 +v 0.312500 0.125000 -0.812500 +v 0.312500 0.625000 -0.812500 +v 0.187500 0.125000 -0.812500 +v 0.187500 0.625000 -0.812500 +v -0.187500 0.125000 -0.812500 +v -0.187500 0.625000 -0.812500 +v -0.312500 0.125000 -0.812500 +v -0.312500 0.625000 -0.812500 +v 0.312500 0.125000 -2.312500 +v 0.312500 0.625000 -2.312500 +v 0.187500 0.125000 -2.312500 +v 0.187500 0.625000 -2.312500 +v -0.187500 0.125000 -2.312500 +v -0.187500 0.625000 -2.312500 +v -0.312500 0.125000 -2.312500 +v -0.312500 0.625000 -2.312500 +v -1.312500 1.125000 0.125000 +v -1.294194 1.125000 0.169194 +v -1.250000 1.125000 0.187500 +v -1.205806 1.125000 0.169194 +v -1.187500 1.125000 0.125000 +v -1.205806 1.125000 0.080806 +v -1.250000 1.125000 0.062500 +v -1.294194 1.125000 0.080806 +v -1.275888 1.213388 0.125000 +v -1.262944 1.200444 0.169194 +v -1.231694 1.169194 0.187500 +v -1.200444 1.137944 0.169194 +v -1.200444 1.137944 0.080806 +v -1.231694 1.169194 0.062500 +v -1.262944 1.200444 0.080806 +v -1.187500 1.250000 0.125000 +v -1.187500 1.231694 0.169194 +v -1.187500 1.187500 0.187500 +v -1.187500 1.143306 0.169194 +v -1.187500 1.143306 0.080806 +v -1.187500 1.187500 0.062500 +v -1.187500 1.231694 0.080806 +v -1.312500 1.000000 0.125000 +v -1.294194 1.000000 0.169194 +v -1.250000 1.000000 0.187500 +v -1.205806 1.000000 0.169194 +v -1.187500 1.000000 0.125000 +v -1.205806 1.000000 0.080806 +v -1.250000 1.000000 0.062500 +v -1.294194 1.000000 0.080806 +v -0.937500 1.125000 0.125000 +v -0.937500 1.250000 0.125000 +v -0.937500 1.231694 0.169194 +v -0.937500 1.187500 0.187500 +v -0.937500 1.143306 0.169194 +v -0.937500 1.143306 0.080806 +v -0.937500 1.187500 0.062500 +v -0.937500 1.231694 0.080806 +v -1.312500 1.750000 -0.125000 +v -1.294194 1.750000 -0.080806 +v -1.250000 1.750000 -0.062500 +v -1.205806 1.750000 -0.080806 +v -1.187500 1.750000 -0.125000 +v -1.205806 1.750000 -0.169194 +v -1.250000 1.750000 -0.187500 +v -1.294194 1.750000 -0.169194 +v -1.275888 1.838388 -0.125000 +v -1.262944 1.825444 -0.080806 +v -1.231694 1.794194 -0.062500 +v -1.200444 1.762944 -0.080806 +v -1.200444 1.762944 -0.169194 +v -1.231694 1.794194 -0.187500 +v -1.262944 1.825444 -0.169194 +v -1.187500 1.875000 -0.125000 +v -1.187500 1.856694 -0.080806 +v -1.187500 1.812500 -0.062500 +v -1.187500 1.768306 -0.080806 +v -1.187500 1.768306 -0.169194 +v -1.187500 1.812500 -0.187500 +v -1.187500 1.856694 -0.169194 +v -0.937500 1.750000 -0.125000 +v -0.937500 1.875000 -0.125000 +v -0.937500 1.856694 -0.080806 +v -0.937500 1.812500 -0.062500 +v -0.937500 1.768306 -0.080806 +v -0.937500 1.768306 -0.169194 +v -0.937500 1.812500 -0.187500 +v -0.937500 1.856694 -0.169194 +v -1.250000 1.125000 -0.187500 +v -1.205806 1.143306 -0.187500 +v -1.187500 1.187500 -0.187500 +v -1.205806 1.231694 -0.187500 +v -1.250000 1.250000 -0.187500 +v -1.294194 1.231694 -0.187500 +v -1.312500 1.187500 -0.187500 +v -1.294194 1.143306 -0.187500 +v -1.250000 1.161612 -0.099112 +v -1.205806 1.174556 -0.112056 +v -1.187500 1.205806 -0.143306 +v -1.294194 1.237056 -0.174556 +v -1.312500 1.205806 -0.143306 +v -1.294194 1.174556 -0.112056 +v -1.250000 1.250000 -0.062500 +v -1.205806 1.250000 -0.080806 +v -1.187500 1.250000 -0.125000 +v -1.205806 1.250000 -0.169194 +v -1.294194 1.250000 -0.169194 +v -1.312500 1.250000 -0.125000 +v -1.294194 1.250000 -0.080806 +v -1.250000 1.125000 -1.062500 +v -1.294194 1.125000 -1.044194 +v -1.312500 1.125000 -1.000000 +v -1.294194 1.125000 -0.955806 +v -1.250000 1.125000 -0.937500 +v -1.205806 1.125000 -0.955806 +v -1.187500 1.125000 -1.000000 +v -1.205806 1.125000 -1.044194 +v -1.250000 1.213388 -1.025888 +v -1.294194 1.200444 -1.012944 +v -1.312500 1.169194 -0.981694 +v -1.294194 1.137944 -0.950444 +v -1.187500 1.169194 -0.981694 +v -1.205806 1.200444 -1.012944 +v -1.250000 1.250000 -0.937500 +v -1.294194 1.231694 -0.937500 +v -1.312500 1.187500 -0.937500 +v -1.294194 1.143306 -0.937500 +v -1.205806 1.143306 -0.937500 +v -1.187500 1.187500 -0.937500 +v -1.205806 1.231694 -0.937500 +v -1.250000 1.000000 -1.062500 +v -1.294194 1.000000 -1.044194 +v -1.312500 1.000000 -1.000000 +v -1.294194 1.000000 -0.955806 +v -1.250000 1.000000 -0.937500 +v -1.205806 1.000000 -0.955806 +v -1.187500 1.000000 -1.000000 +v -1.205806 1.000000 -1.044194 +v 0.526189 2.770334 3.062500 +v 0.972271 2.472272 3.062500 +v 1.270334 2.026190 3.062500 +v 1.375000 1.500000 3.062500 +v 1.270334 0.973810 3.062500 +v 0.972271 0.527728 3.062500 +v 0.526189 0.229665 3.062500 +v -0.000000 0.125000 3.062500 +v -0.526190 0.229665 3.062500 +v -0.972272 0.527728 3.062500 +v -1.270334 0.973810 3.062500 +v -1.375000 1.500000 3.062500 +v -1.270334 2.026189 3.062500 +v -0.972272 2.472271 3.062500 +v -0.526190 2.770334 3.062500 +v 0.000000 2.875000 3.062500 +v 0.000000 2.875000 1.125000 +v -0.526190 2.770334 1.125000 +v -0.972272 2.472272 1.125000 +v -1.270334 2.026190 1.125000 +v -1.375000 1.500000 1.125000 +v -1.270334 0.973810 1.125000 +v -0.972272 0.527728 1.125000 +v -0.526190 0.229666 1.125000 +v -0.000000 0.125000 1.125000 +v 0.526189 0.229666 1.125000 +v 0.972271 0.527728 1.125000 +v 1.270334 0.973810 1.125000 +v 1.375000 1.500000 1.125000 +v 1.270334 2.026190 1.125000 +v 0.972271 2.472272 1.125000 +v 0.526189 2.770335 1.125000 +v 0.000000 3.000000 3.125000 +v -0.574025 2.885819 3.125000 +v -1.060660 2.560660 3.125000 +v -1.385819 2.074025 3.125000 +v -1.500000 1.500000 3.125000 +v -1.385819 0.925975 3.125000 +v -1.060660 0.439340 3.125000 +v -0.574025 0.114181 3.125000 +v 0.000000 0.000000 3.125000 +v 0.574025 0.114181 3.125000 +v 1.060660 0.439340 3.125000 +v 1.385819 0.925975 3.125000 +v 1.500000 1.500000 3.125000 +v 1.385819 2.074025 3.125000 +v 1.060659 2.560660 3.125000 +v 0.574024 2.885819 3.125000 +v 0.000000 3.000000 1.125000 +v -0.574025 2.885819 1.125000 +v -1.060660 2.560660 1.125000 +v -1.385819 2.074025 1.125000 +v -1.500000 1.500000 1.125000 +v -1.385819 0.925975 1.125000 +v -1.060660 0.439340 1.125000 +v -0.574025 0.114181 1.125000 +v 0.000000 0.000000 1.125000 +v 0.574025 0.114181 1.125000 +v 1.060660 0.439340 1.125000 +v 1.385819 0.925975 1.125000 +v 1.500000 1.500000 1.125000 +v 1.385819 2.074025 1.125000 +v 1.060659 2.560660 1.125000 +v 0.574024 2.885819 1.125000 +v 0.000000 3.000000 2.875000 +v -0.574025 2.885819 2.875000 +v -1.060660 2.560660 2.875000 +v -1.385819 2.074025 2.875000 +v -1.500000 1.500000 2.875000 +v -1.385819 0.925975 2.875000 +v -1.060660 0.439340 2.875000 +v -0.574025 0.114181 2.875000 +v 0.000000 0.000000 2.875000 +v 0.574025 0.114181 2.875000 +v 1.060660 0.439340 2.875000 +v 1.385819 0.925975 2.875000 +v 1.500000 1.500000 2.875000 +v 1.385819 2.074025 2.875000 +v 1.060659 2.560660 2.875000 +v 0.574024 2.885819 2.875000 +v 0.000000 3.000000 1.375000 +v -0.574025 2.885819 1.375000 +v -1.060660 2.560660 1.375000 +v -1.385819 2.074025 1.375000 +v -1.500000 1.500000 1.375000 +v -1.385819 0.925975 1.375000 +v -1.060660 0.439340 1.375000 +v -0.574025 0.114181 1.375000 +v 0.000000 0.000000 1.375000 +v 0.574025 0.114181 1.375000 +v 1.060660 0.439340 1.375000 +v 1.385819 0.925975 1.375000 +v 1.500000 1.500000 1.375000 +v 1.385819 2.074025 1.375000 +v 1.060659 2.560660 1.375000 +v 0.574024 2.885819 1.375000 +v 0.000000 2.937500 2.875000 +v -0.550107 2.828077 2.875000 +v -1.016466 2.516467 2.875000 +v -1.328077 2.050108 2.875000 +v -1.437500 1.500000 2.875000 +v -1.328077 0.949893 2.875000 +v -1.016466 0.483534 2.875000 +v -0.550108 0.171924 2.875000 +v -0.000000 0.062500 2.875000 +v 0.550107 0.171924 2.875000 +v 1.016465 0.483534 2.875000 +v 1.328076 0.949893 2.875000 +v 1.437500 1.500000 2.875000 +v 1.328076 2.050108 2.875000 +v 1.016465 2.516467 2.875000 +v 0.550107 2.828077 2.875000 +v 0.000000 2.937500 1.375000 +v -0.550107 2.828077 1.375000 +v -1.016466 2.516467 1.375000 +v -1.328077 2.050108 1.375000 +v -1.437500 1.500000 1.375000 +v -1.328077 0.949893 1.375000 +v -1.016466 0.483534 1.375000 +v -0.550108 0.171924 1.375000 +v -0.000000 0.062500 1.375000 +v 0.550107 0.171924 1.375000 +v 1.016465 0.483534 1.375000 +v 1.328076 0.949893 1.375000 +v 1.437500 1.500000 1.375000 +v 1.328076 2.050108 1.375000 +v 1.016465 2.516467 1.375000 +v 0.550107 2.828077 1.375000 +v -0.000000 2.375000 -0.500000 +v -0.334848 2.308394 -0.500000 +v -0.618719 2.118719 -0.500000 +v -0.808395 1.834848 -0.500000 +v -0.875000 1.500000 -0.500000 +v -0.808395 1.165152 -0.500000 +v -0.618719 0.881282 -0.500000 +v -0.334848 0.691606 -0.500000 +v -0.000000 0.625000 -0.500000 +v 0.334848 0.691606 -0.500000 +v 0.618718 0.881281 -0.500000 +v 0.808394 1.165152 -0.500000 +v 0.875000 1.500000 -0.500000 +v 0.808394 1.834848 -0.500000 +v 0.618718 2.118719 -0.500000 +v 0.334847 2.308395 -0.500000 +v -0.000000 2.500000 -1.000000 +v -0.382684 2.423880 -1.000000 +v -0.707107 2.207107 -1.000000 +v -0.923880 1.882684 -1.000000 +v -1.000000 1.500000 -1.000000 +v -0.923880 1.117317 -1.000000 +v -0.707107 0.792893 -1.000000 +v -0.382684 0.576120 -1.000000 +v -0.000000 0.500000 -1.000000 +v 0.382683 0.576120 -1.000000 +v 0.707106 0.792893 -1.000000 +v 0.923879 1.117316 -1.000000 +v 1.000000 1.500000 -1.000000 +v 0.923879 1.882684 -1.000000 +v 0.707106 2.207107 -1.000000 +v 0.382683 2.423880 -1.000000 +v -0.000000 2.375000 -3.000000 +v -0.334848 2.308394 -3.000000 +v -0.618719 2.118719 -3.000000 +v -0.808395 1.834848 -3.000000 +v -0.875000 1.500000 -3.000000 +v -0.808395 1.165152 -3.000000 +v -0.618719 0.881282 -3.000000 +v -0.334848 0.691606 -3.000000 +v -0.000000 0.625000 -3.000000 +v 0.334848 0.691606 -3.000000 +v 0.618718 0.881281 -3.000000 +v 0.808394 1.165152 -3.000000 +v 0.875000 1.500000 -3.000000 +v 0.808394 1.834848 -3.000000 +v 0.618718 2.118719 -3.000000 +v 0.334847 2.308395 -3.000000 +v -0.000000 2.375000 -1.000000 +v -0.334848 2.308394 -1.000000 +v -0.618719 2.118719 -1.000000 +v -0.808395 1.834848 -1.000000 +v -0.875000 1.500000 -1.000000 +v -0.808395 1.165152 -1.000000 +v -0.618719 0.881282 -1.000000 +v -0.334848 0.691606 -1.000000 +v -0.000000 0.625000 -1.000000 +v 0.334848 0.691606 -1.000000 +v 0.618718 0.881281 -1.000000 +v 0.808394 1.165152 -1.000000 +v 0.875000 1.500000 -1.000000 +v 0.808394 1.834848 -1.000000 +v 0.618718 2.118719 -1.000000 +v 0.334847 2.308395 -1.000000 +v -1.011684 1.770642 -0.250000 +v -0.909767 1.669611 -0.250000 +v -0.766263 1.670238 -0.250000 +v -0.665232 1.772154 -0.250000 +v -0.665858 1.915658 -0.250000 +v -0.767774 2.016689 -0.250000 +v -1.012310 1.914147 -0.250000 +v -0.911279 2.016063 -0.250000 +v -1.011684 1.770642 0.250000 +v -0.909767 1.669611 0.250000 +v -0.766263 1.670238 0.250000 +v -0.665232 1.772154 0.250000 +v -0.665858 1.915658 0.250000 +v -0.767774 2.016689 0.250000 +v -1.012310 1.914147 0.250000 +v -0.911279 2.016063 0.250000 +v -1.009284 1.220540 0.250000 +v -1.008657 1.077035 0.250000 +v -0.908253 1.322456 0.250000 +v -0.764748 1.323082 0.250000 +v -0.662832 1.222052 0.250000 +v -0.662206 1.078547 0.250000 +v -0.763236 0.976631 0.250000 +v -0.906741 0.976004 0.250000 +v -1.009284 1.220540 -0.250000 +v -1.008657 1.077035 -0.250000 +v -0.908253 1.322456 -0.250000 +v -0.764748 1.323082 -0.250000 +v -0.662832 1.222052 -0.250000 +v -0.662206 1.078547 -0.250000 +v -0.763236 0.976631 -0.250000 +v -0.906741 0.976004 -0.250000 +v -0.414147 0.487690 -1.000000 +v -0.448119 0.521367 -1.000000 +v -0.448328 0.569202 -1.000000 +v -0.414651 0.603174 -1.000000 +v -0.366816 0.603383 -1.000000 +v -0.332844 0.569706 -1.000000 +v -0.332635 0.521871 -1.000000 +v -0.366312 0.487899 -1.000000 +v -0.366816 0.603383 -2.375000 +v -0.407719 0.620117 -2.356694 +v -0.424662 0.627048 -2.312500 +v -0.407719 0.620117 -2.268306 +v -0.325912 0.586649 -2.268306 +v -0.308970 0.579718 -2.312500 +v -0.325912 0.586649 -2.356694 +v -0.400284 0.521576 -2.338389 +v -0.436286 0.550291 -2.325444 +v -0.441396 0.586145 -2.294194 +v -0.412621 0.608137 -2.262944 +v -0.366816 0.603383 -2.250000 +v -0.330814 0.574669 -2.262944 +v -0.325704 0.538814 -2.294194 +v -0.354479 0.516822 -2.325444 +v -0.414147 0.487690 -2.250000 +v -0.448119 0.521367 -2.250000 +v -0.448328 0.569202 -2.250000 +v -0.414651 0.603174 -2.250000 +v -0.332844 0.569706 -2.250000 +v -0.332635 0.521872 -2.250000 +v -0.366312 0.487899 -2.250000 +v -0.400788 0.637060 -0.500000 +v -0.366816 0.603383 -0.500000 +v -0.400997 0.684895 -0.500000 +v -0.367320 0.718867 -0.500000 +v -0.319485 0.719075 -0.500000 +v -0.285513 0.685399 -0.500000 +v -0.285304 0.637564 -0.500000 +v -0.318981 0.603591 -0.500000 +v -0.400788 0.637060 1.125000 +v -0.366816 0.603383 1.125000 +v -0.400997 0.684895 1.125000 +v -0.367320 0.718867 1.125000 +v -0.319485 0.719076 1.125000 +v -0.285513 0.685399 1.125000 +v -0.285304 0.637564 1.125000 +v -0.318981 0.603592 1.125000 +v 1.012310 1.085853 -1.000000 +v 0.978633 1.051881 -1.000000 +v 0.930798 1.051672 -1.000000 +v 0.896826 1.085349 -1.000000 +v 0.896617 1.133184 -1.000000 +v 0.930294 1.167156 -1.000000 +v 0.978129 1.167365 -1.000000 +v 1.012101 1.133688 -1.000000 +v 0.896617 1.133184 -2.375000 +v 0.879883 1.092281 -2.356694 +v 0.872951 1.075338 -2.312500 +v 0.879883 1.092281 -2.268306 +v 0.913351 1.174088 -2.268306 +v 0.920282 1.191031 -2.312500 +v 0.913351 1.174088 -2.356694 +v 0.978424 1.099716 -2.338388 +v 0.949709 1.063714 -2.325444 +v 0.913855 1.058604 -2.294194 +v 0.891863 1.087380 -2.262944 +v 0.896617 1.133184 -2.250000 +v 0.925331 1.169187 -2.262944 +v 0.961186 1.174297 -2.294194 +v 0.983177 1.145521 -2.325444 +v 1.012309 1.085853 -2.250000 +v 0.978633 1.051881 -2.250000 +v 0.930797 1.051673 -2.250000 +v 0.896826 1.085349 -2.250000 +v 0.930294 1.167156 -2.250000 +v 0.978128 1.167365 -2.250000 +v 1.012100 1.133688 -2.250000 +v 0.862940 1.099212 -0.500000 +v 0.896617 1.133184 -0.500000 +v 0.815105 1.099004 -0.500000 +v 0.781133 1.132680 -0.500000 +v 0.780925 1.180515 -0.500000 +v 0.814601 1.214487 -0.500000 +v 0.862436 1.214696 -0.500000 +v 0.896408 1.181019 -0.500000 +v 0.862940 1.099212 1.125000 +v 0.896617 1.133184 1.125000 +v 0.815105 1.099004 1.125000 +v 0.781133 1.132681 1.125000 +v 0.780924 1.180516 1.125000 +v 0.814601 1.214488 1.125000 +v 0.862436 1.214696 1.125000 +v 0.896408 1.181019 1.125000 +v -1.012310 1.914147 -1.000000 +v -0.978633 1.948119 -1.000000 +v -0.930798 1.948328 -1.000000 +v -0.896826 1.914651 -1.000000 +v -0.896618 1.866816 -1.000000 +v -0.930294 1.832844 -1.000000 +v -0.978130 1.832635 -1.000000 +v -1.012101 1.866312 -1.000000 +v -0.896617 1.866816 -2.375000 +v -0.879883 1.907719 -2.356694 +v -0.872952 1.924662 -2.312500 +v -0.879883 1.907719 -2.268306 +v -0.913351 1.825912 -2.268306 +v -0.920283 1.808969 -2.312500 +v -0.913351 1.825912 -2.356694 +v -0.978424 1.900284 -2.338388 +v -0.949710 1.936286 -2.325444 +v -0.913855 1.941396 -2.294194 +v -0.891864 1.912621 -2.262944 +v -0.896617 1.866816 -2.250000 +v -0.925331 1.830813 -2.262944 +v -0.961186 1.825704 -2.294194 +v -0.983178 1.854479 -2.325444 +v -1.012310 1.914147 -2.250000 +v -0.978633 1.948119 -2.250000 +v -0.930798 1.948328 -2.250000 +v -0.896826 1.914651 -2.250000 +v -0.930294 1.832844 -2.250000 +v -0.978129 1.832635 -2.250000 +v -1.012101 1.866312 -2.250000 +v -0.862941 1.900788 -0.500000 +v -0.896617 1.866816 -0.500000 +v -0.815106 1.900996 -0.500000 +v -0.781133 1.867320 -0.500000 +v -0.780925 1.819485 -0.500000 +v -0.814602 1.785513 -0.500000 +v -0.862437 1.785304 -0.500000 +v -0.896409 1.818981 -0.500000 +v -0.862940 1.900788 1.125000 +v -0.896617 1.866816 1.125000 +v -0.815106 1.900996 1.125000 +v -0.781133 1.867320 1.125000 +v -0.780925 1.819485 1.125000 +v -0.814601 1.785513 1.125000 +v -0.862437 1.785304 1.125000 +v -0.896408 1.818981 1.125000 +v 1.008657 1.922965 -1.000000 +v 1.008866 1.875130 -1.000000 +v 0.975189 1.841158 -1.000000 +v 0.927354 1.840949 -1.000000 +v 0.893382 1.874626 -1.000000 +v 0.893173 1.922461 -1.000000 +v 0.926850 1.956434 -1.000000 +v 0.974685 1.956642 -1.000000 +v 0.893381 1.874626 -2.375000 +v 0.910472 1.833870 -2.356694 +v 0.917551 1.816989 -2.312500 +v 0.910472 1.833870 -2.268306 +v 0.876291 1.915382 -2.268306 +v 0.869212 1.932264 -2.312500 +v 0.876291 1.915382 -2.356694 +v 0.974893 1.908807 -2.338389 +v 0.980047 1.863045 -2.325444 +v 0.958307 1.834079 -2.294194 +v 0.922409 1.838876 -2.262944 +v 0.893381 1.874626 -2.250000 +v 0.888228 1.920388 -2.262944 +v 0.909968 1.949354 -2.294194 +v 0.945866 1.944557 -2.325444 +v 1.008657 1.922965 -2.250000 +v 1.008865 1.875130 -2.250000 +v 0.975188 1.841158 -2.250000 +v 0.927354 1.840949 -2.250000 +v 0.893173 1.922461 -2.250000 +v 0.926849 1.956433 -2.250000 +v 0.974684 1.956642 -2.250000 +v 0.893590 1.826791 -0.500000 +v 0.893381 1.874626 -0.500000 +v 0.859914 1.792819 -0.500000 +v 0.812078 1.792610 -0.500000 +v 0.778107 1.826288 -0.500000 +v 0.777898 1.874122 -0.500000 +v 0.811575 1.908094 -0.500000 +v 0.859410 1.908303 -0.500000 +v 0.893590 1.826791 1.125000 +v 0.893381 1.874626 1.125000 +v 0.859913 1.792819 1.125000 +v 0.812078 1.792611 1.125000 +v 0.778106 1.826287 1.125000 +v 0.777897 1.874122 1.125000 +v 0.811575 1.908094 1.125000 +v 0.859409 1.908303 1.125000 +v -1.008658 1.077035 -1.000000 +v -1.008866 1.124870 -1.000000 +v -0.975189 1.158842 -1.000000 +v -0.927354 1.159051 -1.000000 +v -0.893382 1.125374 -1.000000 +v -0.893173 1.077539 -1.000000 +v -0.926851 1.043567 -1.000000 +v -0.974686 1.043358 -1.000000 +v -0.893382 1.125374 -2.375000 +v -0.910472 1.166130 -2.356694 +v -0.917552 1.183011 -2.312500 +v -0.910472 1.166130 -2.268306 +v -0.876292 1.084618 -2.268306 +v -0.869212 1.067736 -2.312500 +v -0.876292 1.084618 -2.356694 +v -0.974894 1.091193 -2.338389 +v -0.980047 1.136955 -2.325444 +v -0.958307 1.165921 -2.294194 +v -0.922410 1.161124 -2.262944 +v -0.893382 1.125374 -2.250000 +v -0.888229 1.079612 -2.262944 +v -0.909968 1.050646 -2.294194 +v -0.945866 1.055443 -2.325444 +v -1.008657 1.077035 -2.250000 +v -1.008866 1.124870 -2.250000 +v -0.975189 1.158842 -2.250000 +v -0.927354 1.159051 -2.250000 +v -0.893173 1.077539 -2.250000 +v -0.926850 1.043567 -2.250000 +v -0.974685 1.043358 -2.250000 +v -0.893591 1.173209 -0.500000 +v -0.893382 1.125374 -0.500000 +v -0.859914 1.207181 -0.500000 +v -0.812079 1.207390 -0.500000 +v -0.778107 1.173712 -0.500000 +v -0.777898 1.125878 -0.500000 +v -0.811575 1.091906 -0.500000 +v -0.859410 1.091697 -0.500000 +v -0.893590 1.173209 1.125000 +v -0.893382 1.125374 1.125000 +v -0.859914 1.207181 1.125000 +v -0.812079 1.207390 1.125000 +v -0.778107 1.173713 1.125000 +v -0.777898 1.125878 1.125000 +v -0.811575 1.091906 1.125000 +v -0.859410 1.091697 1.125000 +v 0.422965 0.491343 -1.000000 +v 0.375130 0.491134 -1.000000 +v 0.341158 0.524811 -1.000000 +v 0.340949 0.572646 -1.000000 +v 0.374626 0.606618 -1.000000 +v 0.422461 0.606827 -1.000000 +v 0.456433 0.573150 -1.000000 +v 0.456642 0.525315 -1.000000 +v 0.374626 0.606618 -2.375000 +v 0.333870 0.589528 -2.356694 +v 0.316988 0.582449 -2.312500 +v 0.333870 0.589528 -2.268306 +v 0.415382 0.623709 -2.268306 +v 0.432263 0.630788 -2.312500 +v 0.415382 0.623709 -2.356694 +v 0.408807 0.525106 -2.338388 +v 0.363045 0.519953 -2.325444 +v 0.334079 0.541693 -2.294194 +v 0.338876 0.577591 -2.262944 +v 0.374626 0.606618 -2.250000 +v 0.420387 0.611772 -2.262944 +v 0.449354 0.590032 -2.294194 +v 0.444557 0.554134 -2.325444 +v 0.422965 0.491343 -2.250000 +v 0.375130 0.491134 -2.250000 +v 0.341158 0.524811 -2.250000 +v 0.340949 0.572646 -2.250000 +v 0.422461 0.606827 -2.250000 +v 0.456433 0.573150 -2.250000 +v 0.456641 0.525315 -2.250000 +v 0.326791 0.606409 -0.500000 +v 0.374626 0.606618 -0.500000 +v 0.292819 0.640086 -0.500000 +v 0.292610 0.687921 -0.500000 +v 0.326287 0.721893 -0.500000 +v 0.374122 0.722102 -0.500000 +v 0.408094 0.688425 -0.500000 +v 0.408303 0.640590 -0.500000 +v 0.326791 0.606410 1.125000 +v 0.374626 0.606618 1.125000 +v 0.292819 0.640086 1.125000 +v 0.292610 0.687921 1.125000 +v 0.326287 0.721893 1.125000 +v 0.374122 0.722102 1.125000 +v 0.408094 0.688425 1.125000 +v 0.408303 0.640590 1.125000 +v -0.422965 2.508657 -1.000000 +v -0.375130 2.508866 -1.000000 +v -0.341158 2.475189 -1.000000 +v -0.340949 2.427354 -1.000000 +v -0.374626 2.393382 -1.000000 +v -0.422461 2.393173 -1.000000 +v -0.456434 2.426851 -1.000000 +v -0.456642 2.474685 -1.000000 +v -0.374626 2.393382 -2.375000 +v -0.333870 2.410472 -2.356694 +v -0.316989 2.417551 -2.312500 +v -0.333870 2.410472 -2.268306 +v -0.415382 2.376292 -2.268306 +v -0.432264 2.369212 -2.312500 +v -0.415382 2.376292 -2.356694 +v -0.408807 2.474894 -2.338388 +v -0.363045 2.480047 -2.325444 +v -0.334079 2.458307 -2.294194 +v -0.338876 2.422410 -2.262944 +v -0.374626 2.393382 -2.250000 +v -0.420388 2.388228 -2.262944 +v -0.449354 2.409968 -2.294194 +v -0.444557 2.445866 -2.325444 +v -0.422965 2.508657 -2.250000 +v -0.375130 2.508866 -2.250000 +v -0.341158 2.475189 -2.250000 +v -0.340949 2.427354 -2.250000 +v -0.422461 2.393173 -2.250000 +v -0.456433 2.426850 -2.250000 +v -0.456642 2.474685 -2.250000 +v -0.326791 2.393591 -0.500000 +v -0.374626 2.393382 -0.500000 +v -0.292819 2.359914 -0.500000 +v -0.292611 2.312079 -0.500000 +v -0.326288 2.278107 -0.500000 +v -0.374122 2.277898 -0.500000 +v -0.408094 2.311575 -0.500000 +v -0.408303 2.359410 -0.500000 +v -0.326791 2.393590 1.125000 +v -0.374626 2.393382 1.125000 +v -0.292819 2.359914 1.125000 +v -0.292611 2.312079 1.125000 +v -0.326287 2.278107 1.125000 +v -0.374122 2.277898 1.125000 +v -0.408094 2.311575 1.125000 +v -0.408303 2.359410 1.125000 +v 1.011684 1.229358 -0.250000 +v 0.909767 1.330389 -0.250000 +v 0.766262 1.329762 -0.250000 +v 0.665232 1.227846 -0.250000 +v 0.665858 1.084342 -0.250000 +v 0.767774 0.983311 -0.250000 +v 1.012310 1.085853 -0.250000 +v 0.911279 0.983937 -0.250000 +v 1.011684 1.229358 0.250000 +v 0.909767 1.330389 0.250000 +v 0.766262 1.329762 0.250000 +v 0.665232 1.227846 0.250000 +v 0.665858 1.084342 0.250000 +v 0.767774 0.983311 0.250000 +v 1.012310 1.085853 0.250000 +v 0.911279 0.983937 0.250000 +v 1.009283 1.779460 0.250000 +v 1.008657 1.922965 0.250000 +v 0.908253 1.677544 0.250000 +v 0.764747 1.676918 0.250000 +v 0.662832 1.777948 0.250000 +v 0.662205 1.921453 0.250000 +v 0.763236 2.023369 0.250000 +v 0.906741 2.023996 0.250000 +v 1.009283 1.779460 -0.250000 +v 1.008657 1.922965 -0.250000 +v 0.908253 1.677544 -0.250000 +v 0.764747 1.676918 -0.250000 +v 0.662832 1.777948 -0.250000 +v 0.662205 1.921453 -0.250000 +v 0.763236 2.023369 -0.250000 +v 0.906741 2.023996 -0.250000 +v -1.011684 1.770642 -0.250000 +v -0.909767 1.669611 -0.250000 +v -0.766263 1.670238 -0.250000 +v -0.665232 1.772154 -0.250000 +v -0.665858 1.915658 -0.250000 +v -0.767774 2.016689 -0.250000 +v -1.012310 1.914147 -0.250000 +v -0.911279 2.016063 -0.250000 +v -1.011684 1.770642 0.250000 +v -0.909767 1.669611 0.250000 +v -0.766263 1.670238 0.250000 +v -0.665232 1.772154 0.250000 +v -0.665858 1.915658 0.250000 +v -0.767774 2.016689 0.250000 +v -1.012310 1.914147 0.250000 +v -0.911279 2.016063 0.250000 +v -1.009284 1.220540 0.250000 +v -1.008657 1.077035 0.250000 +v -0.908253 1.322456 0.250000 +v -0.764748 1.323082 0.250000 +v -0.662832 1.222052 0.250000 +v -0.662206 1.078547 0.250000 +v -0.763236 0.976631 0.250000 +v -0.906741 0.976004 0.250000 +v -1.009284 1.220540 -0.250000 +v -1.008657 1.077035 -0.250000 +v -0.908253 1.322456 -0.250000 +v -0.764748 1.323082 -0.250000 +v -0.662832 1.222052 -0.250000 +v -0.662206 1.078547 -0.250000 +v -0.763236 0.976631 -0.250000 +v -0.906741 0.976004 -0.250000 +v -0.000000 2.500000 2.625000 +v -0.382684 2.423880 2.625000 +v -0.707107 2.207107 2.625000 +v -0.923880 1.882684 2.625000 +v -1.000000 1.500000 2.625000 +v -0.923880 1.117317 2.625000 +v -0.707107 0.792893 2.625000 +v -0.382684 0.576120 2.625000 +v -0.000000 0.500000 2.625000 +v 0.382683 0.576120 2.625000 +v 0.707106 0.792893 2.625000 +v 0.923879 1.117316 2.625000 +v 1.000000 1.500000 2.625000 +v 0.923879 1.882684 2.625000 +v 0.707106 2.207107 2.625000 +v 0.382683 2.423880 2.625000 +v -0.000000 2.250000 1.125000 +v -0.287013 2.192910 1.125000 +v -0.530330 2.030330 1.125000 +v -0.692910 1.787013 1.125000 +v -0.750000 1.500000 1.125000 +v -0.692910 1.212987 1.125000 +v -0.530330 0.969670 1.125000 +v -0.287013 0.807090 1.125000 +v -0.000000 0.750000 1.125000 +v 0.287012 0.807090 1.125000 +v 0.530330 0.969670 1.125000 +v 0.692909 1.212987 1.125000 +v 0.750000 1.500000 1.125000 +v 0.692909 1.787013 1.125000 +v 0.530330 2.030330 1.125000 +v 0.287012 2.192910 1.125000 +v -0.000000 2.500000 1.125000 +v -0.382684 2.423880 1.125000 +v -0.707107 2.207107 1.125000 +v -0.923880 1.882684 1.125000 +v -1.000000 1.500000 1.125000 +v -0.923880 1.117317 1.125000 +v -0.707107 0.792893 1.125000 +v -0.382684 0.576120 1.125000 +v -0.000000 0.500000 1.125000 +v 0.382683 0.576120 1.125000 +v 0.707106 0.792893 1.125000 +v 0.923879 1.117316 1.125000 +v 1.000000 1.500000 1.125000 +v 0.923879 1.882684 1.125000 +v 0.707106 2.207107 1.125000 +v 0.382683 2.423880 1.125000 +v -0.000000 2.500000 2.625000 +v -0.382684 2.423880 2.625000 +v -0.707107 2.207107 2.625000 +v -0.923880 1.882684 2.625000 +v -1.000000 1.500000 2.625000 +v -0.923880 1.117317 2.625000 +v -0.707107 0.792893 2.625000 +v -0.382684 0.576120 2.625000 +v -0.000000 0.500000 2.625000 +v 0.382683 0.576120 2.625000 +v 0.707106 0.792893 2.625000 +v 0.923879 1.117316 2.625000 +v 1.000000 1.500000 2.625000 +v 0.923879 1.882684 2.625000 +v 0.707106 2.207107 2.625000 +v 0.382683 2.423880 2.625000 +v -0.000000 2.375000 -0.500000 +v -0.334848 2.308394 -0.500000 +v -0.618719 2.118719 -0.500000 +v -0.808395 1.834848 -0.500000 +v -0.875000 1.500000 -0.500000 +v -0.808395 1.165152 -0.500000 +v -0.618719 0.881282 -0.500000 +v -0.334848 0.691606 -0.500000 +v -0.000000 0.625000 -0.500000 +v 0.334848 0.691606 -0.500000 +v 0.618718 0.881281 -0.500000 +v 0.808394 1.165152 -0.500000 +v 0.875000 1.500000 -0.500000 +v 0.808394 1.834848 -0.500000 +v 0.618718 2.118719 -0.500000 +v 0.334847 2.308395 -0.500000 +v 0.000000 3.000000 2.750000 +v -0.574025 2.885819 2.750000 +v -1.060660 2.560660 2.750000 +v -1.385819 2.074025 2.750000 +v -1.500000 1.500000 2.750000 +v -1.385819 0.925975 2.750000 +v -1.060660 0.439340 2.750000 +v -0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.750000 +v 0.574025 0.114181 2.750000 +v 1.060660 0.439340 2.750000 +v 1.385819 0.925975 2.750000 +v 1.500000 1.500000 2.750000 +v 1.385819 2.074025 2.750000 +v 1.060659 2.560660 2.750000 +v 0.574024 2.885819 2.750000 +v 0.000000 3.000000 2.250000 +v -0.574025 2.885819 2.250000 +v -1.060660 2.560660 2.250000 +v -1.385819 2.074025 2.250000 +v -1.500000 1.500000 2.250000 +v -1.385819 0.925975 2.250000 +v -1.060660 0.439340 2.250000 +v -0.574025 0.114181 2.250000 +v 0.000000 0.000000 2.250000 +v 0.574025 0.114181 2.250000 +v 1.060660 0.439340 2.250000 +v 1.385819 0.925975 2.250000 +v 1.500000 1.500000 2.250000 +v 1.385819 2.074025 2.250000 +v 1.060659 2.560660 2.250000 +v 0.574024 2.885819 2.250000 +vt 0.157088 0.470588 +vt 0.153257 0.411765 +vt 0.157088 0.411765 +vt 0.153257 0.352941 +vt 0.157088 0.352941 +vt 0.153257 0.294118 +vt 0.157088 0.294118 +vt 0.153257 0.235294 +vt 0.157088 0.235294 +vt 0.153257 0.176471 +vt 0.157088 0.176471 +vt 0.157088 0.117647 +vt 0.153257 0.117647 +vt 0.153257 0.058824 +vt 0.157088 0.058824 +vt 0.157088 -0.000000 +vt 0.153257 0.000000 +vt 0.157088 0.882353 +vt 0.153257 0.941176 +vt 0.153257 0.882353 +vt 0.157088 0.823529 +vt 0.153257 0.823529 +vt 0.157088 0.764706 +vt 0.153257 0.764706 +vt 0.157088 0.705882 +vt 0.153257 0.705882 +vt 0.157088 0.647059 +vt 0.153257 0.647059 +vt 0.157088 0.588235 +vt 0.153257 0.588235 +vt 0.157088 0.529412 +vt 0.153257 0.529412 +vt 0.153257 0.470588 +vt 0.295019 0.705882 +vt 0.287356 0.764706 +vt 0.287356 0.705882 +vt 0.287356 0.647059 +vt 0.295019 0.588235 +vt 0.287356 0.588235 +vt 0.295019 0.529412 +vt 0.287356 0.529412 +vt 0.295019 0.470588 +vt 0.287356 0.470588 +vt 0.295019 0.411765 +vt 0.287356 0.411765 +vt 0.295019 0.352941 +vt 0.287356 0.352941 +vt 0.295019 0.294118 +vt 0.287356 0.294118 +vt 0.295019 0.235294 +vt 0.287356 0.235294 +vt 0.287356 0.176471 +vt 0.295019 0.117647 +vt 0.287356 0.117647 +vt 0.295019 0.058824 +vt 0.287356 0.058824 +vt 0.287356 0.000000 +vt 0.287356 0.882353 +vt 0.295019 0.941176 +vt 0.287356 0.941176 +vt 0.287356 0.823529 +vt 0.295019 0.882353 +vt 0.295019 0.823529 +vt 0.176245 0.294118 +vt 0.172414 0.352941 +vt 0.172414 0.294118 +vt 0.176245 0.352941 +vt 0.172414 0.411765 +vt 0.176245 0.411765 +vt 0.172414 0.470588 +vt 0.176245 0.470588 +vt 0.172414 0.529412 +vt 0.176245 0.529412 +vt 0.172414 0.588235 +vt 0.176245 0.647059 +vt 0.172414 0.647059 +vt 0.176245 0.705882 +vt 0.172414 0.705882 +vt 0.176245 0.764706 +vt 0.172414 0.764706 +vt 0.176245 0.823529 +vt 0.172414 0.823529 +vt 0.176245 0.882353 +vt 0.172414 0.882353 +vt 0.176245 0.941176 +vt 0.172414 0.941176 +vt 0.172414 0.000000 +vt 0.176245 0.058824 +vt 0.172414 0.058824 +vt 0.172414 0.117647 +vt 0.176245 0.117647 +vt 0.172414 0.176471 +vt 0.176245 0.176471 +vt 0.172414 0.235294 +vt 0.176245 0.235294 +vt 0.272031 0.352941 +vt 0.268199 0.294118 +vt 0.272031 0.294118 +vt 0.272031 0.411765 +vt 0.268199 0.352941 +vt 0.272031 0.470588 +vt 0.268199 0.411765 +vt 0.272031 0.529412 +vt 0.268199 0.470588 +vt 0.272031 0.588235 +vt 0.268199 0.529412 +vt 0.268199 0.647059 +vt 0.268199 0.588235 +vt 0.272031 0.647059 +vt 0.268199 0.705882 +vt 0.272031 0.705882 +vt 0.268199 0.764706 +vt 0.272031 0.764706 +vt 0.268199 0.823529 +vt 0.272031 0.823529 +vt 0.268199 0.882353 +vt 0.272031 0.882353 +vt 0.268199 0.941176 +vt 0.272031 0.000000 +vt 0.268199 0.058824 +vt 0.268199 0.000000 +vt 0.272031 0.117647 +vt 0.272031 0.058824 +vt 0.268199 0.176471 +vt 0.268199 0.117647 +vt 0.272031 0.235294 +vt 0.272031 0.176471 +vt 0.268199 0.235294 +vt 0.478927 0.549020 +vt 0.486590 0.588235 +vt 0.478927 0.588235 +vt 0.478927 0.235294 +vt 0.486590 0.274510 +vt 0.478927 0.274510 +vt 0.486590 0.627451 +vt 0.478927 0.627451 +vt 0.478927 0.352941 +vt 0.486590 0.313726 +vt 0.486590 0.352941 +vt 0.478927 0.313726 +vt 0.478927 0.039216 +vt 0.486590 -0.000000 +vt 0.486590 0.039216 +vt 0.486590 0.392157 +vt 0.478927 0.392157 +vt 0.486590 0.078431 +vt 0.478927 0.078431 +vt 0.486590 0.431373 +vt 0.478927 0.431373 +vt 0.486590 0.117647 +vt 0.478927 0.117647 +vt 0.486590 0.470588 +vt 0.478927 0.470588 +vt 0.478927 0.156863 +vt 0.486590 0.156863 +vt 0.478927 0.509804 +vt 0.486590 0.509804 +vt 0.478927 0.196078 +vt 0.486590 0.196078 +vt 0.486590 0.549020 +vt 0.486590 0.235294 +vt 0.340996 0.784153 +vt 0.295114 0.705882 +vt 0.340996 0.627612 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.417625 0.810458 +vt 0.432950 0.856209 +vt 0.417625 0.856209 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.417625 0.810458 +vt 0.432950 0.856209 +vt 0.417625 0.856209 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.486198 0.947712 +vt 0.410354 0.947548 +vt 0.421553 0.928775 +vt 0.432558 0.947878 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.432558 0.947878 +vt 0.475096 0.966651 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.402980 0.783152 +vt 0.402980 0.654757 +vt 0.478246 0.654757 +vt 0.517241 0.640523 +vt 0.540230 0.679739 +vt 0.517241 0.679739 +vt 0.509579 0.640523 +vt 0.540230 0.627451 +vt 0.540230 0.640523 +vt 0.517241 0.692810 +vt 0.547893 0.679739 +vt 0.517241 0.640523 +vt 0.540230 0.679739 +vt 0.517241 0.679739 +vt 0.509579 0.640523 +vt 0.540230 0.627451 +vt 0.540230 0.640523 +vt 0.517241 0.692810 +vt 0.547893 0.679739 +vt 0.517241 0.679739 +vt 0.540230 0.640523 +vt 0.540230 0.679739 +vt 0.547893 0.679739 +vt 0.547893 0.640523 +vt 0.540230 0.627451 +vt 0.517241 0.640523 +vt 0.517241 0.627451 +vt 0.517241 0.692810 +vt 0.540230 0.692810 +vt 0.509579 0.640523 +vt 0.509579 0.679739 +vt 0.547893 0.718954 +vt 0.670498 0.823529 +vt 0.547893 0.823529 +vt 0.517241 0.679739 +vt 0.540230 0.640523 +vt 0.540230 0.679739 +vt 0.547893 0.679739 +vt 0.547893 0.640523 +vt 0.540230 0.627451 +vt 0.517241 0.640523 +vt 0.517241 0.627451 +vt 0.517241 0.692810 +vt 0.540230 0.692810 +vt 0.509579 0.640523 +vt 0.509579 0.679739 +vt 0.494253 0.771242 +vt 0.494253 0.718954 +vt 0.547893 0.718954 +vt 0.547893 0.627451 +vt 0.670498 0.718954 +vt 0.724138 0.771242 +vt 0.693487 0.823529 +vt 0.547893 0.862745 +vt 0.670498 0.915033 +vt 0.547893 0.967320 +vt 0.547893 0.915033 +vt 0.670498 0.862745 +vt 0.670498 0.823529 +vt 0.547893 0.823529 +vt 0.547893 0.627451 +vt 0.670498 0.718954 +vt 0.724138 0.771242 +vt 0.693487 0.823529 +vt 0.547893 0.862745 +vt 0.670498 0.915033 +vt 0.547893 0.967320 +vt 0.547893 0.915033 +vt 0.670498 0.862745 +vt 0.494253 0.771242 +vt 0.494253 0.718954 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.486198 0.947712 +vt 0.432558 0.947878 +vt 0.421359 0.966651 +vt 0.410354 0.947548 +vt 0.931035 0.732026 +vt 0.731801 0.810458 +vt 0.731801 0.732026 +vt 0.731801 0.640523 +vt 0.931035 0.718954 +vt 0.731801 0.718954 +vt 0.931035 0.627451 +vt 0.731801 0.627451 +vt 0.938697 0.718954 +vt 0.931035 0.640523 +vt 0.938697 0.640523 +vt 0.724138 0.640523 +vt 0.724138 0.718954 +vt 0.206897 1.000000 +vt 0.107280 0.941176 +vt 0.206897 0.941176 +vt 0.099617 1.000000 +vt 0.107280 1.000000 +vt 0.398467 0.993464 +vt 0.306513 0.941176 +vt 0.398467 0.941176 +vt -0.000000 0.941176 +vt -0.000000 1.000000 +vt 0.206897 1.000000 +vt 0.107280 0.941176 +vt 0.206897 0.941176 +vt 0.099617 1.000000 +vt 0.107280 1.000000 +vt 0.298851 0.941176 +vt 0.206897 0.993464 +vt 0.206897 0.941176 +vt -0.000000 0.941176 +vt -0.000000 1.000000 +vt 0.298851 0.941176 +vt 0.206897 0.993464 +vt 0.206897 0.941176 +vt 0.398467 0.993464 +vt 0.306513 0.941176 +vt 0.398467 0.941176 +vt 0.306513 0.993464 +vt 0.306513 0.993464 +vt 0.475096 0.966651 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.432558 0.947878 +vt 0.421359 0.966651 +vt 0.410354 0.947548 +vt 0.157088 0.941176 +vt 0.295019 0.764706 +vt 0.295019 0.647059 +vt 0.295019 0.176471 +vt 0.295019 0.000000 +vt 0.176245 0.588235 +vt 0.176245 0.000000 +vt 0.272031 0.941176 +vt 0.478927 -0.000000 +vt 0.323438 0.778195 +vt 0.308552 0.761228 +vt 0.298606 0.735835 +vt 0.298606 0.675930 +vt 0.308552 0.650537 +vt 0.323438 0.633570 +vt 0.358555 0.633570 +vt 0.373440 0.650537 +vt 0.383386 0.675930 +vt 0.386879 0.705882 +vt 0.383386 0.735835 +vt 0.373440 0.761228 +vt 0.358555 0.778195 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.810458 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.810458 +vt 0.475096 0.966651 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.421359 0.966651 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.429375 0.934438 +vt 0.429238 0.961221 +vt 0.410354 0.947548 +vt 0.421359 0.966651 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.486198 0.947712 +vt 0.482946 0.961104 +vt 0.478246 0.783152 +vt 0.460980 0.802832 +vt 0.440613 0.809743 +vt 0.420246 0.802832 +vt 0.391443 0.753698 +vt 0.387392 0.718954 +vt 0.391443 0.684211 +vt 0.420246 0.635076 +vt 0.440613 0.628165 +vt 0.460980 0.635076 +vt 0.489783 0.684211 +vt 0.493834 0.718954 +vt 0.489783 0.753698 +vt 0.509579 0.679739 +vt 0.517241 0.627451 +vt 0.540230 0.692810 +vt 0.547893 0.640523 +vt 0.509579 0.679739 +vt 0.517241 0.627451 +vt 0.540230 0.692810 +vt 0.547893 0.640523 +vt 0.524904 0.823529 +vt 0.670498 0.627451 +vt 0.724138 0.718954 +vt 0.670498 0.967320 +vt 0.670498 0.627451 +vt 0.724138 0.718954 +vt 0.670498 0.967320 +vt 0.524904 0.823529 +vt 0.475096 0.966651 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.931035 0.810458 +vt 0.099617 0.941176 +vt 0.099617 0.941176 +vt 0.298851 0.993464 +vt 0.298851 0.993464 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.486198 0.947712 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.149425 0.823529 +vt 0.149425 0.764706 +vt 0.149425 0.705882 +vt 0.149425 0.647059 +vt 0.149425 0.588235 +vt 0.149425 0.529412 +vt 0.149425 0.470588 +vt 0.149425 0.411765 +vt 0.149425 0.352941 +vt 0.149425 0.294118 +vt 0.149425 0.235294 +vt 0.149425 0.176471 +vt 0.149425 0.117647 +vt 0.149425 0.058824 +vt 0.149425 0.000000 +vt 0.149425 0.882353 +vt 0.586207 0.156863 +vt 0.616858 0.196078 +vt 0.586207 0.196078 +vt 0.586207 0.117647 +vt 0.616858 0.156863 +vt 0.616858 0.078431 +vt 0.586207 0.078431 +vt 0.616858 0.039216 +vt 0.586207 0.039216 +vt 0.586207 -0.000000 +vt 0.586207 0.588235 +vt 0.616858 0.627451 +vt 0.586207 0.627451 +vt 0.616858 0.549020 +vt 0.586207 0.549020 +vt 0.586207 0.509804 +vt 0.586207 0.470588 +vt 0.616858 0.509804 +vt 0.616858 0.431373 +vt 0.586207 0.431373 +vt 0.616858 0.392157 +vt 0.586207 0.392157 +vt 0.616858 0.352941 +vt 0.586207 0.352941 +vt 0.616858 0.313726 +vt 0.586207 0.313726 +vt 0.616858 0.274510 +vt 0.586207 0.274510 +vt 0.616858 0.235294 +vt 0.586207 0.235294 +vt 0.486590 0.431373 +vt 0.586207 0.470588 +vt 0.486590 0.470588 +vt 0.486590 0.392157 +vt 0.586207 0.431373 +vt 0.486590 0.274510 +vt 0.586207 0.313726 +vt 0.486590 0.313726 +vt 0.486590 0.352941 +vt 0.586207 0.392157 +vt 0.486590 0.235294 +vt 0.586207 0.274510 +vt 0.586207 0.352941 +vt 0.486590 0.196078 +vt 0.586207 0.235294 +vt 0.486590 0.156863 +vt 0.586207 0.196078 +vt 0.486590 0.117647 +vt 0.586207 0.156863 +vt 0.486590 0.078431 +vt 0.586207 0.117647 +vt 0.486590 0.039216 +vt 0.586207 0.078431 +vt 0.486590 0.000000 +vt 0.586207 0.039216 +vt 0.486590 0.588235 +vt 0.586207 0.627451 +vt 0.486590 0.627451 +vt 0.486590 0.549020 +vt 0.586207 0.588235 +vt 0.486590 0.509804 +vt 0.586207 0.549020 +vt 0.586207 0.509804 +vt 0.478927 0.235294 +vt 0.386973 0.196078 +vt 0.478927 0.196078 +vt 0.478927 0.549020 +vt 0.386973 0.509804 +vt 0.478927 0.509804 +vt 0.386973 0.156863 +vt 0.478927 0.156863 +vt 0.386973 0.470588 +vt 0.478927 0.470588 +vt 0.386973 0.117647 +vt 0.478927 0.117647 +vt 0.386973 0.431373 +vt 0.478927 0.431373 +vt 0.386973 0.078431 +vt 0.478927 0.078431 +vt 0.386973 0.392157 +vt 0.478927 0.392157 +vt 0.386973 0.039216 +vt 0.478927 0.039216 +vt 0.386973 0.352941 +vt 0.478927 0.352941 +vt 0.386973 -0.000000 +vt 0.478927 -0.000000 +vt 0.478927 0.313726 +vt 0.386973 0.274510 +vt 0.478927 0.274510 +vt 0.386973 0.313726 +vt 0.478927 0.627451 +vt 0.386973 0.588235 +vt 0.478927 0.588235 +vt 0.386973 0.235294 +vt 0.386973 0.549020 +vt 0.977012 0.032680 +vt 0.946360 0.052288 +vt 0.946360 0.026144 +vt 0.946360 0.261438 +vt 0.977012 0.281046 +vt 0.946360 0.287582 +vt 0.977012 0.071895 +vt 0.946360 0.078431 +vt 0.977012 0.294118 +vt 0.946360 0.313726 +vt 0.977012 0.098039 +vt 0.946360 0.104575 +vt 0.977012 0.320261 +vt 0.946360 0.339869 +vt 0.977012 0.111111 +vt 0.946360 0.130719 +vt 0.977012 0.359477 +vt 0.946360 0.366013 +vt 0.977012 0.137255 +vt 0.946360 0.156863 +vt 0.977012 0.385621 +vt 0.946360 0.392157 +vt 0.977012 0.176471 +vt 0.946360 0.183007 +vt 0.977012 0.398693 +vt 0.946360 0.418301 +vt 0.946360 0.209150 +vt 0.977012 0.228758 +vt 0.946360 0.235294 +vt 0.977012 0.189542 +vt 0.977012 0.006536 +vt 0.946360 0.000000 +vt 0.977012 0.241830 +vt 1.000000 0.300654 +vt 0.977012 0.307190 +vt 0.977012 0.267974 +vt 1.000000 0.274510 +vt 1.000000 0.248366 +vt 0.977012 0.254902 +vt 0.977012 0.215686 +vt 1.000000 0.222222 +vt 1.000000 0.196078 +vt 0.977012 0.202614 +vt 0.977012 0.163399 +vt 1.000000 0.169935 +vt 1.000000 0.143791 +vt 0.977012 0.150327 +vt 1.000000 0.326797 +vt 0.977012 0.333333 +vt 0.977012 0.346405 +vt 1.000000 0.352941 +vt 0.977012 0.372549 +vt 1.000000 0.379085 +vt 1.000000 0.405229 +vt 0.977012 0.411765 +vt 1.000000 0.013072 +vt 0.977012 0.019608 +vt 1.000000 0.039216 +vt 0.977012 0.045752 +vt 0.977012 0.058824 +vt 1.000000 0.065359 +vt 0.977012 0.084967 +vt 1.000000 0.091503 +vt 1.000000 0.117647 +vt 0.977012 0.124183 +vt 0.708812 0.156863 +vt 0.616858 0.117647 +vt 0.708812 0.117647 +vt 0.708812 0.509804 +vt 0.616858 0.470588 +vt 0.708812 0.470588 +vt 0.708812 0.196078 +vt 0.616858 0.156863 +vt 0.708812 0.549020 +vt 0.616858 0.509804 +vt 0.708812 0.235294 +vt 0.616858 0.196078 +vt 0.708812 0.588235 +vt 0.616858 0.549020 +vt 0.708812 0.274510 +vt 0.616858 0.235294 +vt 0.708812 0.627451 +vt 0.616858 0.588235 +vt 0.708812 0.352941 +vt 0.616858 0.313726 +vt 0.708812 0.313726 +vt 0.616858 0.274510 +vt 0.708812 0.039216 +vt 0.616858 -0.000000 +vt 0.708812 -0.000000 +vt 0.708812 0.392157 +vt 0.616858 0.352941 +vt 0.708812 0.078431 +vt 0.616858 0.039216 +vt 0.708812 0.431373 +vt 0.616858 0.392157 +vt 0.616858 0.078431 +vt 0.616858 0.431373 +vt 0.831418 0.339869 +vt 0.831418 0.366013 +vt 0.831418 0.392157 +vt 0.831418 0.000000 +vt 0.831418 0.026144 +vt 0.831418 0.052288 +vt 0.831418 0.078431 +vt 0.831418 0.104575 +vt 0.831418 0.130719 +vt 0.831418 0.209150 +vt 0.831418 0.156863 +vt 0.831418 0.235294 +vt 0.831418 0.183007 +vt 0.831418 0.261438 +vt 0.831418 0.287582 +vt 0.831418 0.313726 +vt 0.030651 0.529412 +vt 0.000000 0.588235 +vt 0.000000 0.529412 +vt 0.030651 0.058824 +vt 0.000000 0.117647 +vt 0.000000 0.058824 +vt 0.030651 0.588235 +vt 0.000000 0.647059 +vt 0.030651 0.117647 +vt 0.000000 0.176471 +vt 0.030651 0.647059 +vt -0.000000 0.705882 +vt 0.030651 0.176471 +vt 0.000000 0.235294 +vt 0.030651 0.705882 +vt 0.000000 0.764706 +vt 0.030651 0.235294 +vt 0.000000 0.294118 +vt 0.030651 0.764706 +vt 0.000000 0.823529 +vt 0.030651 0.294118 +vt 0.000000 0.352941 +vt 0.030651 0.823529 +vt 0.000000 0.882353 +vt 0.030651 0.352941 +vt 0.000000 0.411765 +vt 0.030651 0.882353 +vt 0.000000 0.941176 +vt 0.030651 0.470588 +vt 0.000000 0.470588 +vt 0.030651 0.411765 +vt 0.030651 -0.000000 +vt -0.000000 -0.000000 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.934866 0.836601 +vt 0.938697 0.830065 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.934866 0.843137 +vt 0.938697 0.843137 +vt 0.931035 0.830065 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.931035 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.854406 0.810458 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.846743 0.437909 +vt 0.842912 0.431373 +vt 0.846743 0.431373 +vt 0.842912 0.437909 +vt 0.839080 0.431373 +vt 0.839080 0.437909 +vt 0.835249 0.431373 +vt 0.858238 0.431373 +vt 0.854406 0.437909 +vt 0.854406 0.431373 +vt 0.850575 0.437909 +vt 0.850575 0.431373 +vt 0.842912 0.444444 +vt 0.839080 0.444444 +vt 0.835249 0.437909 +vt 0.858238 0.437909 +vt 0.854406 0.444444 +vt 0.850575 0.444444 +vt 0.831418 0.437909 +vt 0.835249 0.444444 +vt 0.862069 0.437909 +vt 0.858238 0.444444 +vt 0.839080 0.418301 +vt 0.858238 0.418301 +vt 0.850575 0.418301 +vt 0.831418 0.431373 +vt 0.835249 0.418301 +vt 0.854406 0.418301 +vt 0.842912 0.418301 +vt 0.846743 0.418301 +vt 0.862069 0.418301 +vt 0.862069 0.431373 +vt 0.835249 0.470588 +vt 0.850575 0.470588 +vt 0.846743 0.444444 +vt 0.842912 0.470588 +vt 0.862069 0.444444 +vt 0.858238 0.470588 +vt 0.831418 0.470588 +vt 0.831418 0.444444 +vt 0.854406 0.470588 +vt 0.839080 0.470588 +vt 0.846743 0.470588 +vt 0.877395 0.594771 +vt 0.873563 0.588235 +vt 0.877395 0.588235 +vt 0.873563 0.594771 +vt 0.869732 0.588235 +vt 0.869732 0.594771 +vt 0.865900 0.588235 +vt 0.888889 0.588235 +vt 0.885057 0.594771 +vt 0.885057 0.588235 +vt 0.881226 0.594771 +vt 0.881226 0.588235 +vt 0.877395 0.601307 +vt 0.869732 0.601307 +vt 0.865900 0.601307 +vt 0.865900 0.594771 +vt 0.888889 0.594771 +vt 0.885057 0.601307 +vt 0.881226 0.601307 +vt 0.862069 0.594771 +vt 0.892720 0.594771 +vt 0.888889 0.601307 +vt 0.865900 0.627451 +vt 0.881226 0.627451 +vt 0.873563 0.627451 +vt 0.873563 0.601307 +vt 0.892720 0.601307 +vt 0.888889 0.627451 +vt 0.862069 0.627451 +vt 0.862069 0.601307 +vt 0.885057 0.627451 +vt 0.869732 0.627451 +vt 0.877395 0.627451 +vt 0.869732 0.529412 +vt 0.865900 0.522876 +vt 0.869732 0.522876 +vt 0.862069 0.529412 +vt 0.862069 0.522876 +vt 0.892720 0.522876 +vt 0.888889 0.529412 +vt 0.888889 0.522876 +vt 0.881226 0.529412 +vt 0.877395 0.522876 +vt 0.881226 0.522876 +vt 0.877395 0.529412 +vt 0.873563 0.522876 +vt 0.865900 0.535948 +vt 0.865900 0.529412 +vt 0.892720 0.535948 +vt 0.892720 0.529412 +vt 0.881226 0.535948 +vt 0.877395 0.535948 +vt 0.873563 0.529412 +vt 0.869732 0.535948 +vt 0.885057 0.529412 +vt 0.888889 0.535948 +vt 0.862069 0.535948 +vt 0.862069 0.588235 +vt 0.892720 0.588235 +vt 0.885057 0.535948 +vt 0.873563 0.535948 +vt 0.885057 0.431373 +vt 0.881226 0.437909 +vt 0.881226 0.431373 +vt 0.877395 0.431373 +vt 0.873563 0.437909 +vt 0.873563 0.431373 +vt 0.865900 0.437909 +vt 0.862069 0.431373 +vt 0.865900 0.431373 +vt 0.892720 0.437909 +vt 0.888889 0.431373 +vt 0.892720 0.431373 +vt 0.888889 0.437909 +vt 0.885057 0.437909 +vt 0.881226 0.444444 +vt 0.877395 0.437909 +vt 0.877395 0.444444 +vt 0.862069 0.444444 +vt 0.862069 0.437909 +vt 0.888889 0.444444 +vt 0.885057 0.444444 +vt 0.869732 0.437909 +vt 0.873563 0.444444 +vt 0.865900 0.444444 +vt 0.877395 0.418301 +vt 0.865900 0.418301 +vt 0.888889 0.418301 +vt 0.869732 0.431373 +vt 0.873563 0.418301 +vt 0.892720 0.418301 +vt 0.881226 0.418301 +vt 0.885057 0.418301 +vt 0.869732 0.418301 +vt 0.869732 0.444444 +vt 0.885057 0.522876 +vt 0.842912 0.431373 +vt 0.846743 0.437909 +vt 0.846743 0.431373 +vt 0.839080 0.431373 +vt 0.842912 0.437909 +vt 0.835249 0.431373 +vt 0.839080 0.437909 +vt 0.858238 0.431373 +vt 0.854406 0.437909 +vt 0.858238 0.437909 +vt 0.854406 0.431373 +vt 0.850575 0.437909 +vt 0.850575 0.431373 +vt 0.842912 0.444444 +vt 0.846743 0.444444 +vt 0.839080 0.444444 +vt 0.835249 0.444444 +vt 0.854406 0.444444 +vt 0.858238 0.444444 +vt 0.850575 0.444444 +vt 0.835249 0.437909 +vt 0.831418 0.437909 +vt 0.862069 0.437909 +vt 0.839080 0.418301 +vt 0.858238 0.418301 +vt 0.850575 0.418301 +vt 0.835249 0.418301 +vt 0.831418 0.431373 +vt 0.854406 0.418301 +vt 0.842912 0.418301 +vt 0.846743 0.418301 +vt 0.862069 0.418301 +vt 0.862069 0.431373 +vt 0.835249 0.470588 +vt 0.850575 0.470588 +vt 0.842912 0.470588 +vt 0.858238 0.470588 +vt 0.862069 0.444444 +vt 0.831418 0.470588 +vt 0.831418 0.444444 +vt 0.854406 0.470588 +vt 0.839080 0.470588 +vt 0.846743 0.470588 +vt 0.873563 0.588235 +vt 0.877395 0.594771 +vt 0.877395 0.588235 +vt 0.869732 0.588235 +vt 0.873563 0.594771 +vt 0.865900 0.588235 +vt 0.869732 0.594771 +vt 0.888889 0.588235 +vt 0.885057 0.594771 +vt 0.888889 0.594771 +vt 0.885057 0.588235 +vt 0.881226 0.594771 +vt 0.881226 0.588235 +vt 0.877395 0.601307 +vt 0.869732 0.601307 +vt 0.873563 0.601307 +vt 0.865900 0.601307 +vt 0.885057 0.601307 +vt 0.888889 0.601307 +vt 0.881226 0.601307 +vt 0.865900 0.594771 +vt 0.862069 0.594771 +vt 0.892720 0.594771 +vt 0.865900 0.627451 +vt 0.881226 0.627451 +vt 0.873563 0.627451 +vt 0.888889 0.627451 +vt 0.892720 0.601307 +vt 0.862069 0.627451 +vt 0.862069 0.601307 +vt 0.885057 0.627451 +vt 0.869732 0.627451 +vt 0.877395 0.627451 +vt 0.865900 0.522876 +vt 0.869732 0.529412 +vt 0.869732 0.522876 +vt 0.862069 0.529412 +vt 0.865900 0.529412 +vt 0.877395 0.522876 +vt 0.881226 0.529412 +vt 0.881226 0.522876 +vt 0.873563 0.522876 +vt 0.877395 0.529412 +vt 0.873563 0.529412 +vt 0.865900 0.535948 +vt 0.869732 0.535948 +vt 0.881226 0.535948 +vt 0.877395 0.535948 +vt 0.873563 0.535948 +vt 0.885057 0.529412 +vt 0.862069 0.535948 +vt 0.862069 0.588235 +vt 0.892720 0.588235 +vt 0.888889 0.535948 +vt 0.885057 0.535948 +vt 0.881226 0.431373 +vt 0.885057 0.437909 +vt 0.885057 0.431373 +vt 0.877395 0.431373 +vt 0.881226 0.437909 +vt 0.873563 0.437909 +vt 0.877395 0.437909 +vt 0.892720 0.431373 +vt 0.888889 0.437909 +vt 0.892720 0.437909 +vt 0.888889 0.431373 +vt 0.885057 0.444444 +vt 0.881226 0.444444 +vt 0.877395 0.444444 +vt 0.888889 0.444444 +vt 0.892720 0.444444 +vt 0.873563 0.431373 +vt 0.869732 0.437909 +vt 0.873563 0.444444 +vt 0.877395 0.418301 +vt 0.865900 0.418301 +vt 0.862069 0.431373 +vt 0.865900 0.431373 +vt 0.888889 0.418301 +vt 0.873563 0.418301 +vt 0.869732 0.431373 +vt 0.892720 0.418301 +vt 0.881226 0.418301 +vt 0.885057 0.418301 +vt 0.869732 0.418301 +vt 0.869732 0.444444 +vt 0.862069 0.444444 +vt 0.862069 0.522876 +vt 0.892720 0.522876 +vt 0.888889 0.522876 +vt 0.885057 0.522876 +vt 0.149425 0.941176 +vt 0.030651 0.882353 +vt 0.149425 0.882353 +vt 0.149425 0.058824 +vt 0.030651 -0.000000 +vt 0.149425 0.000000 +vt 0.149425 0.117647 +vt 0.030651 0.058824 +vt 0.149425 0.176471 +vt 0.030651 0.117647 +vt 0.149425 0.235294 +vt 0.030651 0.176471 +vt 0.149425 0.294118 +vt 0.030651 0.235294 +vt 0.149425 0.352941 +vt 0.030651 0.294118 +vt 0.149425 0.411765 +vt 0.030651 0.352941 +vt 0.149425 0.470588 +vt 0.030651 0.411765 +vt 0.030651 0.529412 +vt 0.030651 0.470588 +vt 0.149425 0.588235 +vt 0.149425 0.529412 +vt 0.030651 0.647059 +vt 0.030651 0.588235 +vt 0.149425 0.705882 +vt 0.149425 0.647059 +vt 0.030651 0.764706 +vt 0.030651 0.705882 +vt 0.149425 0.823529 +vt 0.149425 0.764706 +vt 0.030651 0.823529 +vt 0.157088 0.647059 +vt 0.172414 0.705882 +vt 0.157088 0.705882 +vt 0.157088 0.176471 +vt 0.172414 0.235294 +vt 0.157088 0.235294 +vt 0.172414 0.764706 +vt 0.157088 0.764706 +vt 0.172414 0.294118 +vt 0.157088 0.294118 +vt 0.172414 0.823529 +vt 0.157088 0.823529 +vt 0.172414 0.352941 +vt 0.157088 0.352941 +vt 0.172414 0.882353 +vt 0.157088 0.882353 +vt 0.172414 0.411765 +vt 0.157088 0.411765 +vt 0.172414 0.941176 +vt 0.157088 0.941176 +vt 0.157088 0.470588 +vt 0.172414 0.529412 +vt 0.157088 0.529412 +vt 0.172414 0.470588 +vt 0.157088 -0.000000 +vt 0.172414 0.058824 +vt 0.157088 0.058824 +vt 0.172414 0.588235 +vt 0.157088 0.588235 +vt 0.172414 0.117647 +vt 0.157088 0.117647 +vt 0.172414 0.647059 +vt 0.172414 0.176471 +vt 0.287356 0.294118 +vt 0.272031 0.235294 +vt 0.287356 0.235294 +vt 0.287356 0.823529 +vt 0.272031 0.764706 +vt 0.287356 0.764706 +vt 0.287356 0.352941 +vt 0.272031 0.294118 +vt 0.287356 0.882353 +vt 0.272031 0.823529 +vt 0.287356 0.411765 +vt 0.272031 0.352941 +vt 0.287356 0.941176 +vt 0.272031 0.882353 +vt 0.287356 0.529412 +vt 0.272031 0.470588 +vt 0.287356 0.470588 +vt 0.272031 0.411765 +vt 0.287356 0.058824 +vt 0.272031 0.000000 +vt 0.287356 0.000000 +vt 0.287356 0.588235 +vt 0.272031 0.529412 +vt 0.287356 0.117647 +vt 0.272031 0.058824 +vt 0.287356 0.647059 +vt 0.272031 0.588235 +vt 0.287356 0.176471 +vt 0.272031 0.117647 +vt 0.287356 0.705882 +vt 0.272031 0.647059 +vt 0.272031 0.176471 +vt 0.272031 0.705882 +vt 0.268199 0.294118 +vt 0.176245 0.352941 +vt 0.176245 0.294118 +vt 0.268199 0.352941 +vt 0.176245 0.411765 +vt 0.268199 0.411765 +vt 0.176245 0.470588 +vt 0.268199 0.470588 +vt 0.176245 0.529412 +vt 0.268199 0.529412 +vt 0.176245 0.588235 +vt 0.268199 0.588235 +vt 0.176245 0.647059 +vt 0.268199 0.647059 +vt 0.176245 0.705882 +vt 0.268199 0.705882 +vt 0.176245 0.764706 +vt 0.268199 0.764706 +vt 0.176245 0.823529 +vt 0.268199 0.823529 +vt 0.176245 0.882353 +vt 0.268199 0.882353 +vt 0.176245 0.941176 +vt 0.268199 0.000000 +vt 0.176245 0.058824 +vt 0.176245 0.000000 +vt 0.268199 0.058824 +vt 0.176245 0.117647 +vt 0.268199 0.117647 +vt 0.176245 0.176471 +vt 0.268199 0.176471 +vt 0.176245 0.235294 +vt 0.268199 0.235294 +vt 0.831418 0.039216 +vt 0.708812 -0.000000 +vt 0.831418 0.000000 +vt 0.831418 0.627451 +vt 0.708812 0.588235 +vt 0.831418 0.588235 +vt 0.708812 0.549020 +vt 0.831418 0.549020 +vt 0.708812 0.509804 +vt 0.831418 0.509804 +vt 0.708812 0.470588 +vt 0.831418 0.470588 +vt 0.708812 0.431373 +vt 0.831418 0.431373 +vt 0.708812 0.392157 +vt 0.831418 0.392157 +vt 0.831418 0.313726 +vt 0.708812 0.274510 +vt 0.831418 0.274510 +vt 0.708812 0.352941 +vt 0.831418 0.352941 +vt 0.708812 0.235294 +vt 0.831418 0.235294 +vt 0.708812 0.313726 +vt 0.708812 0.196078 +vt 0.831418 0.196078 +vt 0.708812 0.156863 +vt 0.831418 0.156863 +vt 0.708812 0.117647 +vt 0.831418 0.117647 +vt 0.708812 0.078431 +vt 0.831418 0.078431 +vt 0.708812 0.039216 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.931035 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.854406 0.810458 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.849673 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.931035 0.843137 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.816993 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.823529 +vt 0.931035 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.849673 +vt 0.931035 0.843137 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.836601 +vt 0.724138 0.830065 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.934866 0.836601 +vt 0.938697 0.830065 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.816993 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.931035 0.830065 +vt 0.934866 0.823529 +vt 0.931035 0.823529 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.823755 0.810458 +vt 0.724138 0.816993 +vt 0.724138 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.432950 0.869281 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.432950 0.908497 +vt 0.432950 0.928105 +vt 0.463602 0.947712 +vt 0.432950 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.432950 0.830065 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.432950 0.830065 +vt 0.432950 0.928105 +vt 0.463602 0.947712 +vt 0.432950 0.947712 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.432950 0.908497 +vt 0.432950 0.869281 +vt 0.463602 0.888889 +vt 0.463602 0.849673 +vt 0.432950 0.849673 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.463602 0.928105 +vt 0.463602 0.869281 +vt 0.432950 0.849673 +vt 0.463602 0.869281 +vt 0.432950 0.869281 +vt 0.432950 0.908497 +vt 0.463602 0.928105 +vt 0.432950 0.928105 +vt 0.432950 0.947712 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.432950 0.830065 +vt 0.463602 0.849673 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.463602 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.463602 0.849673 +vt 0.432950 0.849673 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.463602 0.928105 +vt 0.463602 0.869281 +vt 0.432950 0.849673 +vt 0.463602 0.869281 +vt 0.432950 0.869281 +vt 0.432950 0.908497 +vt 0.463602 0.928105 +vt 0.432950 0.928105 +vt 0.432950 0.947712 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.432950 0.830065 +vt 0.463602 0.849673 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.463602 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.386973 0.117647 +vt 0.295019 0.078431 +vt 0.386973 0.078431 +vt 0.386973 0.039216 +vt 0.295019 0.039216 +vt 0.295019 -0.000000 +vt 0.386973 -0.000000 +vt 0.386973 0.627451 +vt 0.295019 0.588235 +vt 0.386973 0.588235 +vt 0.295019 0.549020 +vt 0.386973 0.549020 +vt 0.295019 0.509804 +vt 0.386973 0.509804 +vt 0.295019 0.470588 +vt 0.386973 0.470588 +vt 0.386973 0.431373 +vt 0.295019 0.431373 +vt 0.295019 0.392157 +vt 0.386973 0.392157 +vt 0.295019 0.352941 +vt 0.386973 0.352941 +vt 0.295019 0.313726 +vt 0.386973 0.313726 +vt 0.295019 0.274510 +vt 0.386973 0.274510 +vt 0.386973 0.235294 +vt 0.295019 0.235294 +vt 0.295019 0.196078 +vt 0.386973 0.196078 +vt 0.386973 0.156863 +vt 0.295019 0.156863 +vt 0.295019 0.117647 +vt 0.000000 0.588235 +vt 0.030651 0.529412 +vt 0.000000 0.529412 +vt 0.000000 0.117647 +vt 0.030651 0.058824 +vt 0.000000 0.058824 +vt 0.000000 0.647059 +vt 0.030651 0.588235 +vt 0.000000 0.176471 +vt 0.030651 0.117647 +vt -0.000000 0.705882 +vt 0.030651 0.647059 +vt 0.000000 0.235294 +vt 0.030651 0.176471 +vt 0.000000 0.764706 +vt 0.030651 0.705882 +vt 0.000000 0.294118 +vt 0.030651 0.235294 +vt 0.000000 0.823529 +vt 0.030651 0.764706 +vt 0.000000 0.352941 +vt 0.030651 0.294118 +vt 0.000000 0.882353 +vt 0.030651 0.823529 +vt 0.000000 0.411765 +vt 0.030651 0.352941 +vt 0.000000 0.941176 +vt 0.030651 0.882353 +vt 0.030651 0.470588 +vt 0.000000 0.470588 +vt 0.030651 0.411765 +vt 0.030651 -0.000000 +vt -0.000000 -0.000000 +vt 0.149425 0.941176 +vt 0.616858 0.117647 +vt 0.616858 -0.000000 +vt 0.616858 0.588235 +vt 0.616858 0.470588 +vt 0.586207 -0.000000 +vt 0.386973 0.627451 +vt 0.616858 0.627451 +vt 0.831418 0.418301 +vt 0.030651 0.941176 +vt 0.724138 0.862745 +vt 0.831418 0.418301 +vt 0.862069 0.470588 +vt 0.892720 0.627451 +vt 0.892720 0.444444 +vt 0.862069 0.418301 +vt 0.831418 0.418301 +vt 0.862069 0.470588 +vt 0.892720 0.627451 +vt 0.892720 0.535948 +vt 0.862069 0.418301 +vt 0.865900 0.444444 +vt 0.030651 0.941176 +vt 0.172414 0.000000 +vt 0.272031 0.941176 +vt 0.268199 0.941176 +vt 0.708812 0.627451 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.836601 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.295019 0.627451 +vt 0.030651 0.941176 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.1303 0.3145 0.9402 +vn 0.5000 0.5000 0.7071 +vn 0.2407 0.2407 0.9402 +vn 0.6533 0.2706 0.7071 +vn 0.3145 0.1303 0.9402 +vn 0.7071 0.0000 0.7071 +vn 0.3404 0.0000 0.9402 +vn 0.6533 -0.2706 0.7071 +vn 0.3145 -0.1303 0.9402 +vn 0.5000 -0.5000 0.7071 +vn 0.2407 -0.2407 0.9402 +vn 0.2706 -0.6533 0.7071 +vn 0.1303 -0.3145 0.9402 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.3404 0.9402 +vn -0.2706 -0.6533 0.7071 +vn -0.1303 -0.3145 0.9402 +vn -0.2407 -0.2407 0.9402 +vn -0.5000 -0.5000 0.7071 +vn -0.3145 -0.1303 0.9402 +vn -0.6533 -0.2706 0.7071 +vn -0.3404 0.0000 0.9402 +vn -0.7071 0.0000 0.7071 +vn -0.3145 0.1303 0.9402 +vn -0.6533 0.2706 0.7071 +vn -0.2407 0.2407 0.9402 +vn -0.5000 0.5000 0.7071 +vn -0.1303 0.3145 0.9402 +vn -0.2706 0.6533 0.7071 +vn 0.0000 0.3404 0.9402 +vn 0.0000 0.7071 0.7071 +vn 0.2706 0.6533 0.7071 +vn 0.9701 0.0000 0.2425 +vn 0.8963 0.3713 0.2425 +vn 0.8963 -0.3712 0.2425 +vn 0.6860 -0.6860 0.2425 +vn 0.3712 -0.8963 0.2425 +vn 0.0000 -0.9701 0.2425 +vn -0.3713 -0.8963 0.2425 +vn -0.6860 -0.6860 0.2425 +vn -0.8963 -0.3713 0.2425 +vn -0.9701 0.0000 0.2425 +vn -0.8963 -0.3712 0.2425 +vn -0.8963 0.3713 0.2425 +vn -0.6860 0.6860 0.2425 +vn -0.3712 0.8963 0.2425 +vn 0.0000 0.9701 0.2425 +vn 0.3712 0.8963 0.2425 +vn 0.6860 0.6860 0.2425 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.2482 -0.5993 -0.7610 +vn 0.6794 -0.6794 -0.2770 +vn 0.3677 -0.8877 -0.2770 +vn -0.6794 0.6794 -0.2770 +vn -0.5993 0.2482 -0.7610 +vn -0.8877 0.3677 -0.2770 +vn 0.5993 -0.2482 -0.7610 +vn 0.8877 -0.3677 -0.2770 +vn -0.9608 0.0000 -0.2770 +vn 0.6487 0.0000 -0.7610 +vn 0.9608 0.0000 -0.2770 +vn -0.6487 0.0000 -0.7610 +vn -0.8877 -0.3677 -0.2770 +vn 0.8877 0.3677 -0.2770 +vn -0.4587 -0.4587 -0.7610 +vn -0.6794 -0.6794 -0.2770 +vn 0.5993 0.2482 -0.7610 +vn 0.6794 0.6794 -0.2770 +vn -0.2482 -0.5993 -0.7610 +vn -0.3677 -0.8877 -0.2770 +vn 0.2482 0.5993 -0.7610 +vn 0.3677 0.8877 -0.2770 +vn 0.0000 -0.9608 -0.2770 +vn 0.0000 0.9608 -0.2770 +vn -0.2482 0.5993 -0.7610 +vn -0.3677 0.8877 -0.2770 +vn 0.0000 -0.6487 -0.7610 +vn -0.4587 0.4587 -0.7610 +vn 0.0000 0.6487 -0.7610 +vn 0.4587 0.4587 -0.7610 +vn -0.5993 -0.2482 -0.7610 +vn 0.4587 -0.4587 -0.7610 +vn 0.4060 -0.9098 -0.0852 +vn 0.9138 -0.4060 -0.0074 +vn 0.3675 -0.9257 -0.0887 +vn 0.2677 0.6544 -0.7071 +vn 0.6982 0.0343 -0.7150 +vn 0.1449 0.3542 -0.9239 +vn 0.8141 0.2389 -0.5293 +vn 0.9355 -0.3403 -0.0948 +vn 0.9467 -0.3148 -0.0670 +vn 0.5778 -0.5185 0.6303 +vn -0.7755 0.0352 0.6303 +vn -0.8960 0.4390 -0.0670 +vn -0.9058 0.4130 -0.0948 +vn -0.4132 0.7410 -0.5293 +vn -0.4740 0.5139 -0.7150 +vn 0.9012 0.4085 -0.1447 +vn 0.4171 -0.8986 0.1363 +vn 0.5261 -0.7141 0.4617 +vn -0.9273 -0.3485 0.1363 +vn -0.8758 -0.1406 0.4617 +vn -0.3564 0.9230 -0.1447 +vn 0.3720 0.9093 -0.1866 +vn -0.3714 -0.9079 0.1944 +vn 0.9363 -0.3510 0.0074 +vn 0.9422 -0.3344 -0.0196 +vn 0.9110 0.4027 0.0887 +vn 0.3760 0.9190 0.1187 +vn -0.3675 0.9257 0.0887 +vn -0.9138 0.4060 0.0074 +vn -0.9064 0.4219 -0.0196 +vn -0.9273 -0.3644 -0.0852 +vn -0.3756 -0.9181 -0.1259 +vn -0.3786 -0.9255 0.0000 +vn -0.3760 -0.9190 -0.1187 +vn 0.3756 0.9181 0.1259 +vn 0.9273 0.3644 0.0852 +vn -0.9363 0.3510 -0.0074 +vn -0.4060 0.9098 0.0852 +vn -0.9110 -0.4027 -0.0887 +vn 0.9255 -0.3786 0.0000 +vn -0.3867 0.9222 0.0000 +vn -0.9222 -0.3867 0.0000 +vn 0.3867 -0.9222 0.0000 +vn 0.9222 0.3867 0.0000 +vn 0.3786 0.9255 0.0000 +vn -0.9255 0.3786 0.0000 +vn 0.7194 0.1447 0.6794 +vn 0.9824 0.1866 0.0000 +vn 0.5293 0.5293 0.6630 +vn 0.0473 0.0196 0.9987 +vn 0.0670 0.0670 0.9955 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.0473 0.0196 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.7194 0.1447 -0.6794 +vn 0.1447 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.4617 -0.4617 0.7573 +vn -0.4617 -0.4617 -0.7573 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.1363 -0.6737 -0.7263 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.1866 0.9824 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.6794 -0.7194 0.1447 +vn 0.0000 -0.9824 0.1866 +vn -0.9955 -0.0670 0.0670 +vn -0.9987 -0.0473 0.0196 +vn -0.7573 0.4617 -0.4617 +vn -0.7263 0.6737 -0.1363 +vn 0.7573 0.4617 -0.4617 +vn 0.9987 -0.0473 0.0196 +vn 0.7263 0.6737 -0.1363 +vn 0.9955 -0.0670 0.0670 +vn 0.6794 -0.7194 0.1447 +vn -0.6794 -0.1447 0.7194 +vn -0.6630 -0.5293 0.5293 +vn -0.9987 -0.0196 0.0473 +vn 0.7263 0.1363 -0.6737 +vn 0.9987 -0.0196 0.0473 +vn 0.6630 -0.5293 0.5293 +vn 0.0000 -0.1866 0.9824 +vn -0.7263 0.1363 -0.6737 +vn 0.6794 -0.1447 0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.6630 0.5293 -0.5293 +vn 0.6794 0.1447 -0.7194 +vn 0.9987 0.0196 -0.0473 +vn 0.7573 -0.4617 0.4617 +vn 0.7263 -0.1363 0.6737 +vn -0.7573 -0.4617 0.4617 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn -0.9955 0.0670 -0.0670 +vn -0.6794 0.1447 -0.7194 +vn -0.6630 0.5293 -0.5293 +vn 0.6794 0.7194 -0.1447 +vn 0.9955 0.0670 -0.0670 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.6794 0.7194 -0.1447 +vn 0.0000 0.9824 -0.1866 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.7194 0.1447 0.6794 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 0.9987 +vn -0.5293 0.5293 0.6630 +vn 0.6737 -0.1363 0.7263 +vn -0.0670 0.0670 0.9955 +vn 0.6737 -0.1363 -0.7263 +vn -0.0670 0.0670 -0.9955 +vn 0.4617 -0.4617 -0.7573 +vn -0.0473 0.0196 -0.9987 +vn -0.5293 0.5293 -0.6630 +vn -0.7194 0.1447 -0.6794 +vn -0.1447 0.7194 0.6794 +vn -0.1866 0.9824 0.0000 +vn -0.0196 0.0473 0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.1447 0.7194 -0.6794 +vn 0.4617 -0.4617 0.7573 +vn 0.9239 -0.2706 0.2706 +vn -0.0455 0.7064 -0.7064 +vn 0.9859 -0.0639 0.1543 +vn 0.9859 0.0639 -0.1543 +vn 0.9239 0.2706 -0.2706 +vn 0.9859 0.1543 -0.0639 +vn -0.0455 -0.7064 0.7064 +vn 0.9859 -0.1543 0.0639 +vn -0.4060 0.9098 -0.0852 +vn -0.9138 0.4060 -0.0074 +vn -0.3675 0.9257 -0.0887 +vn -0.1449 -0.3542 -0.9239 +vn -0.8141 -0.2389 -0.5293 +vn -0.6982 -0.0343 -0.7150 +vn -0.9355 0.3403 -0.0948 +vn -0.9467 0.3148 -0.0670 +vn -0.5778 0.5185 0.6303 +vn 0.7755 -0.0352 0.6303 +vn 0.8960 -0.4390 -0.0670 +vn 0.9058 -0.4130 -0.0948 +vn 0.4740 -0.5139 -0.7150 +vn 0.4132 -0.7410 -0.5293 +vn -0.2677 -0.6544 -0.7071 +vn -0.9012 -0.4085 -0.1447 +vn -0.4171 0.8986 0.1363 +vn -0.5261 0.7141 0.4617 +vn 0.9273 0.3485 0.1363 +vn 0.8758 0.1406 0.4617 +vn 0.3564 -0.9230 -0.1447 +vn -0.3720 -0.9093 -0.1866 +vn 0.3714 0.9079 0.1944 +vn -0.9363 0.3510 0.0074 +vn -0.9422 0.3344 -0.0196 +vn -0.9110 -0.4027 0.0887 +vn -0.3760 -0.9190 0.1187 +vn 0.3675 -0.9257 0.0887 +vn 0.9138 -0.4060 0.0074 +vn 0.9064 -0.4219 -0.0196 +vn 0.9273 0.3644 -0.0852 +vn 0.3756 0.9181 -0.1259 +vn 0.3760 0.9190 -0.1187 +vn -0.3756 -0.9181 0.1259 +vn -0.9273 -0.3644 0.0852 +vn 0.9363 -0.3510 -0.0074 +vn 0.4060 -0.9098 0.0852 +vn 0.9110 0.4027 -0.0887 +vn -0.9098 -0.4060 -0.0852 +vn -0.4060 -0.9138 -0.0074 +vn -0.9257 -0.3675 -0.0887 +vn 0.3542 -0.1449 -0.9239 +vn 0.2389 -0.8141 -0.5293 +vn 0.0343 -0.6982 -0.7150 +vn -0.3403 -0.9355 -0.0948 +vn -0.3148 -0.9467 -0.0670 +vn -0.5185 -0.5778 0.6303 +vn 0.0352 0.7755 0.6303 +vn 0.4390 0.8960 -0.0670 +vn 0.4130 0.9058 -0.0948 +vn 0.5139 0.4740 -0.7150 +vn 0.6544 -0.2677 -0.7071 +vn 0.4085 -0.9012 -0.1447 +vn -0.3344 -0.9422 -0.0196 +vn -0.8986 -0.4171 0.1363 +vn -0.7141 -0.5261 0.4617 +vn -0.3485 0.9273 0.1363 +vn -0.1406 0.8758 0.4617 +vn 0.4219 0.9064 -0.0196 +vn 0.7410 0.4132 -0.5293 +vn 0.9093 -0.3720 -0.1866 +vn -0.9079 0.3714 0.1944 +vn -0.3510 -0.9363 0.0074 +vn 0.4027 -0.9110 0.0887 +vn 0.9190 -0.3760 0.1187 +vn 0.9230 0.3564 -0.1447 +vn 0.9257 0.3675 0.0887 +vn 0.4060 0.9138 0.0074 +vn -0.3644 0.9273 -0.0852 +vn -0.9181 0.3756 -0.1259 +vn -0.9190 0.3760 -0.1187 +vn 0.9181 -0.3756 0.1259 +vn 0.3644 -0.9273 0.0852 +vn 0.3510 0.9363 -0.0074 +vn 0.9098 0.4060 0.0852 +vn -0.4027 0.9110 -0.0887 +vn 0.9098 0.4060 -0.0852 +vn 0.4060 0.9138 -0.0074 +vn 0.9257 0.3675 -0.0887 +vn -0.3542 0.1449 -0.9239 +vn -0.2389 0.8141 -0.5293 +vn -0.0343 0.6982 -0.7150 +vn 0.3403 0.9355 -0.0948 +vn 0.7141 0.5261 0.4617 +vn 0.5185 0.5778 0.6303 +vn -0.0351 -0.7755 0.6303 +vn -0.4390 -0.8960 -0.0670 +vn -0.4130 -0.9058 -0.0948 +vn -0.5139 -0.4740 -0.7150 +vn -0.6544 0.2677 -0.7071 +vn -0.4085 0.9012 -0.1447 +vn 0.3344 0.9422 -0.0196 +vn 0.3149 0.9467 -0.0670 +vn 0.8986 0.4171 0.1363 +vn 0.3485 -0.9273 0.1363 +vn 0.1406 -0.8758 0.4617 +vn -0.9230 -0.3564 -0.1447 +vn -0.7410 -0.4132 -0.5293 +vn 0.9079 -0.3714 0.1944 +vn 0.3510 0.9363 0.0074 +vn -0.4027 0.9110 0.0887 +vn -0.9190 0.3760 0.1187 +vn -0.9257 -0.3675 0.0887 +vn -0.4060 -0.9138 0.0074 +vn -0.4219 -0.9064 -0.0196 +vn 0.3644 -0.9273 -0.0852 +vn 0.9181 -0.3756 -0.1259 +vn 0.9190 -0.3760 -0.1187 +vn -0.9181 0.3756 0.1259 +vn -0.3644 0.9273 0.0852 +vn -0.3510 -0.9363 -0.0074 +vn -0.9098 -0.4060 0.0852 +vn 0.4027 -0.9110 -0.0887 +vn -0.3563 -0.9305 -0.0852 +vn 0.3591 -0.9333 -0.0074 +vn -0.3947 -0.9145 -0.0887 +vn 0.3529 0.1480 -0.9239 +vn 0.7445 -0.4067 -0.5293 +vn 0.5180 -0.4694 -0.7150 +vn 0.4209 -0.9021 -0.0948 +vn 0.4468 -0.8921 -0.0670 +vn 0.0419 -0.7752 0.6303 +vn -0.5235 0.5732 0.6303 +vn -0.3231 0.9440 -0.0670 +vn -0.3484 0.9325 -0.0948 +vn 0.0282 0.6985 -0.7150 +vn 0.2318 0.8161 -0.5293 +vn 0.6521 0.2734 -0.7071 +vn 0.9261 -0.3483 -0.1447 +vn 0.4298 -0.9027 -0.0196 +vn -0.1329 -0.8770 0.4617 +vn -0.9022 0.4093 0.1363 +vn -0.7187 0.5199 0.4617 +vn 0.4006 0.9047 -0.1447 +vn 0.9060 0.3799 -0.1866 +vn -0.9046 -0.3793 0.1944 +vn -0.3404 -0.9303 0.1363 +vn 0.4139 -0.9103 0.0074 +vn 0.9289 -0.3594 0.0887 +vn 0.9157 0.3840 0.1187 +vn 0.3947 0.9145 0.0887 +vn -0.3591 0.9333 0.0074 +vn -0.3426 0.9393 -0.0196 +vn -0.9134 0.3981 -0.0852 +vn -0.9149 -0.3836 -0.1259 +vn -0.9157 -0.3840 -0.1187 +vn 0.9149 0.3836 0.1259 +vn 0.9134 -0.3981 0.0852 +vn -0.4139 0.9103 -0.0074 +vn 0.3562 0.9305 0.0852 +vn -0.9289 0.3594 -0.0887 +vn 0.3562 0.9305 -0.0852 +vn -0.3591 0.9333 -0.0074 +vn 0.3947 0.9145 -0.0887 +vn -0.3529 -0.1480 -0.9239 +vn -0.7445 0.4067 -0.5293 +vn -0.5180 0.4694 -0.7150 +vn -0.4209 0.9021 -0.0948 +vn -0.4468 0.8921 -0.0670 +vn -0.0419 0.7752 0.6303 +vn 0.5235 -0.5732 0.6303 +vn 0.3231 -0.9440 -0.0670 +vn 0.3484 -0.9325 -0.0948 +vn -0.0282 -0.6985 -0.7150 +vn -0.6521 -0.2734 -0.7071 +vn -0.9261 0.3483 -0.1447 +vn -0.4298 0.9027 -0.0196 +vn 0.1329 0.8770 0.4617 +vn 0.9022 -0.4093 0.1363 +vn 0.7187 -0.5199 0.4617 +vn -0.4006 -0.9047 -0.1447 +vn -0.2318 -0.8161 -0.5293 +vn -0.9060 -0.3799 -0.1866 +vn 0.9046 0.3793 0.1944 +vn 0.3404 0.9303 0.1363 +vn -0.4139 0.9103 0.0074 +vn -0.9289 0.3594 0.0887 +vn -0.9157 -0.3840 0.1187 +vn -0.3947 -0.9145 0.0887 +vn 0.3591 -0.9333 0.0074 +vn 0.3426 -0.9393 -0.0196 +vn 0.9134 -0.3981 -0.0852 +vn 0.9149 0.3836 -0.1259 +vn 0.9157 0.3840 -0.1187 +vn -0.9149 -0.3836 0.1259 +vn -0.9134 0.3981 0.0852 +vn 0.4139 -0.9103 -0.0074 +vn -0.3562 -0.9305 0.0852 +vn 0.9289 -0.3594 -0.0887 +vn -0.9305 0.3562 -0.0852 +vn -0.9333 -0.3591 -0.0074 +vn -0.9145 0.3947 -0.0887 +vn 0.1480 -0.3529 -0.9239 +vn -0.4067 -0.7445 -0.5293 +vn -0.4694 -0.5180 -0.7150 +vn -0.9021 -0.4209 -0.0948 +vn -0.8921 -0.4468 -0.0670 +vn -0.7752 -0.0419 0.6303 +vn 0.5732 0.5235 0.6303 +vn 0.9440 0.3231 -0.0670 +vn 0.9325 0.3485 -0.0948 +vn 0.6985 -0.0282 -0.7150 +vn 0.8161 -0.2318 -0.5293 +vn 0.3799 -0.9060 -0.1866 +vn 0.2734 -0.6521 -0.7071 +vn -0.3483 -0.9261 -0.1447 +vn -0.9027 -0.4298 -0.0196 +vn -0.8770 0.1329 0.4617 +vn 0.4093 0.9022 0.1363 +vn 0.5199 0.7187 0.4617 +vn 0.9393 0.3426 -0.0196 +vn 0.9047 -0.4006 -0.1447 +vn -0.3793 0.9046 0.1944 +vn -0.9303 0.3404 0.1363 +vn -0.9103 -0.4139 0.0074 +vn -0.3594 -0.9289 0.0887 +vn 0.3840 -0.9157 0.1187 +vn 0.9145 -0.3947 0.0887 +vn 0.9333 0.3591 0.0074 +vn 0.3981 0.9134 -0.0852 +vn -0.3836 0.9149 -0.1259 +vn -0.3840 0.9157 -0.1187 +vn 0.3836 -0.9149 0.1259 +vn -0.3981 -0.9134 0.0852 +vn 0.9103 0.4139 -0.0074 +vn 0.9305 -0.3562 0.0852 +vn 0.3594 0.9289 -0.0887 +vn 0.9305 -0.3562 -0.0852 +vn 0.9333 0.3591 -0.0074 +vn 0.9145 -0.3948 -0.0887 +vn -0.2734 0.6521 -0.7071 +vn 0.4694 0.5180 -0.7150 +vn -0.1480 0.3529 -0.9239 +vn 0.4067 0.7445 -0.5293 +vn 0.9021 0.4209 -0.0948 +vn 0.8770 -0.1329 0.4617 +vn 0.7752 0.0419 0.6303 +vn -0.5732 -0.5235 0.6303 +vn -0.9440 -0.3231 -0.0670 +vn -0.9325 -0.3484 -0.0948 +vn -0.6985 0.0282 -0.7150 +vn 0.3483 0.9261 -0.1447 +vn 0.8921 0.4468 -0.0670 +vn 0.9027 0.4298 -0.0196 +vn -0.4093 -0.9022 0.1363 +vn -0.5199 -0.7187 0.4617 +vn -0.9047 0.4006 -0.1447 +vn -0.8161 0.2318 -0.5293 +vn -0.3799 0.9060 -0.1866 +vn 0.3793 -0.9046 0.1944 +vn 0.9303 -0.3404 0.1363 +vn 0.9103 0.4139 0.0074 +vn 0.3594 0.9289 0.0887 +vn -0.3840 0.9157 0.1187 +vn -0.9145 0.3947 0.0887 +vn -0.9333 -0.3591 0.0074 +vn -0.9393 -0.3426 -0.0196 +vn -0.3981 -0.9134 -0.0852 +vn 0.3836 -0.9149 -0.1259 +vn 0.3840 -0.9157 -0.1187 +vn -0.3836 0.9149 0.1259 +vn 0.3981 0.9134 0.0852 +vn -0.9103 -0.4139 -0.0074 +vn -0.9305 0.3562 0.0852 +vn -0.3594 -0.9289 -0.0887 +vn -0.9113 0.3775 0.1644 +vn -0.6975 0.6975 0.1644 +vn -0.3775 0.9113 0.1644 +vn 0.0000 0.9864 0.1644 +vn 0.3775 0.9113 0.1644 +vn 0.6975 0.6975 0.1644 +vn 0.9113 0.3775 0.1644 +vn 0.9864 0.0000 0.1644 +vn 0.9113 -0.3775 0.1644 +vn 0.6975 -0.6975 0.1644 +vn 0.3775 -0.9113 0.1644 +vn 0.0000 -0.9864 0.1644 +vn -0.3775 -0.9113 0.1644 +vn -0.6975 -0.6975 0.1644 +vn -0.9113 -0.3775 0.1644 +vn -0.9864 0.0000 0.1644 +vn 0.8963 -0.3713 0.2425 +vn -0.9093 0.3720 -0.1866 +s off +f 994/1143/410 1025/1144/410 1009/1145/410 +f 1009/1145/410 1024/1146/410 1008/1147/410 +f 1008/1147/410 1023/1148/410 1007/1149/410 +f 1007/1149/410 1022/1150/410 1006/1151/410 +f 1006/1151/410 1021/1152/410 1005/1153/410 +f 1004/1154/410 1021/1152/410 1020/1155/410 +f 1004/1154/410 1019/1156/410 1003/1157/410 +f 1002/1158/410 1019/1156/410 1018/1159/410 +f 1001/1160/410 1018/1161/410 1017/1162/410 +f 1000/1163/410 1017/1162/410 1016/1164/410 +f 999/1165/410 1016/1164/410 1015/1166/410 +f 998/1167/410 1015/1166/410 1014/1168/410 +f 997/1169/410 1014/1168/410 1013/1170/410 +f 996/1171/410 1013/1170/410 1012/1172/410 +f 995/1173/410 1012/1172/410 1011/1174/410 +f 995/1173/410 1010/1175/410 994/1143/410 +f 1094/1176/411 1047/1177/411 1046/1178/411 +f 1045/1179/411 1094/1176/411 1046/1178/411 +f 1092/1180/411 1045/1179/411 1044/1181/411 +f 1091/1182/411 1044/1181/411 1043/1183/411 +f 1090/1184/411 1043/1183/411 1042/1185/411 +f 1105/1186/411 1042/1185/411 1057/1187/411 +f 1104/1188/411 1057/1187/411 1056/1189/411 +f 1103/1190/411 1056/1189/411 1055/1191/411 +f 1102/1192/411 1055/1191/411 1054/1193/411 +f 1053/1194/411 1102/1192/411 1054/1193/411 +f 1100/1195/411 1053/1194/411 1052/1196/411 +f 1099/1197/411 1052/1196/411 1051/1198/411 +f 1050/1199/411 1099/1197/411 1051/1198/411 +f 1049/1200/411 1098/1201/411 1050/1202/411 +f 1048/1203/411 1097/1204/411 1049/1200/411 +f 1047/1177/411 1096/1205/411 1048/1203/411 +f 1119/1206/411 1072/1207/411 1071/1208/411 +f 1120/1209/411 1073/1210/411 1072/1207/411 +f 1121/1211/411 1058/1212/411 1073/1210/411 +f 1106/1213/411 1059/1214/411 1058/1212/411 +f 1107/1215/411 1060/1216/411 1059/1214/411 +f 1060/1216/411 1109/1217/411 1061/1218/411 +f 1061/1218/411 1110/1219/411 1062/1220/411 +f 1062/1220/411 1111/1221/411 1063/1222/411 +f 1063/1222/411 1112/1223/411 1064/1224/411 +f 1064/1224/411 1113/1225/411 1065/1226/411 +f 1065/1226/411 1114/1227/411 1066/1228/411 +f 1066/1229/411 1115/1230/411 1067/1231/411 +f 1115/1230/411 1068/1232/411 1067/1231/411 +f 1116/1233/411 1069/1234/411 1068/1232/411 +f 1117/1235/411 1070/1236/411 1069/1234/411 +f 1118/1237/411 1071/1208/411 1070/1236/411 +f 1088/1238/410 1135/1239/410 1087/1240/410 +f 1089/1241/410 1136/1242/410 1088/1238/410 +f 1074/1243/410 1137/1244/410 1089/1241/410 +f 1075/1245/410 1122/1246/410 1074/1243/410 +f 1076/1247/410 1123/1248/410 1075/1245/410 +f 1076/1247/410 1125/1249/410 1124/1250/410 +f 1077/1251/410 1126/1252/410 1125/1249/410 +f 1078/1253/410 1127/1254/410 1126/1252/410 +f 1079/1255/410 1128/1256/410 1127/1254/410 +f 1080/1257/410 1129/1258/410 1128/1256/410 +f 1081/1259/410 1130/1260/410 1129/1258/410 +f 1082/1261/410 1131/1262/410 1130/1263/410 +f 1084/1264/410 1131/1262/410 1083/1265/410 +f 1084/1264/410 1133/1266/410 1132/1267/410 +f 1086/1268/410 1133/1266/410 1085/1269/410 +f 1087/1240/410 1134/1270/410 1086/1268/410 +f 1144/1271/411 1193/1272/411 1145/1273/411 +f 1152/1274/411 1201/1275/411 1153/1276/411 +f 1145/1273/411 1194/1277/411 1146/1278/411 +f 1139/1279/411 1186/1280/411 1187/1281/411 +f 1138/1282/411 1201/1275/411 1186/1280/411 +f 1147/1283/411 1194/1284/411 1195/1285/411 +f 1139/1279/411 1188/1286/411 1140/1287/411 +f 1147/1283/411 1196/1288/411 1148/1289/411 +f 1140/1287/411 1189/1290/411 1141/1291/411 +f 1148/1289/411 1197/1292/411 1149/1293/411 +f 1141/1291/411 1190/1294/411 1142/1295/411 +f 1150/1296/411 1197/1292/411 1198/1297/411 +f 1143/1298/411 1190/1294/411 1191/1299/411 +f 1151/1300/411 1198/1297/411 1199/1301/411 +f 1143/1298/411 1192/1302/411 1144/1271/411 +f 1152/1274/411 1199/1301/411 1200/1303/411 +f 1170/1304/410 1174/1305/410 1178/1306/410 +f 1212/1307/411 1217/1308/411 1213/1309/411 +f 1211/1310/410 1215/1311/410 1210/1312/410 +f 1204/1313/411 1209/1314/411 1205/1315/411 +f 1203/1316/410 1207/1317/410 1202/1318/410 +f 1205/1315/412 1208/1319/412 1203/1316/412 +f 1202/1318/413 1206/1320/413 1204/1321/413 +f 1213/1309/413 1216/1322/413 1211/1310/413 +f 1210/1312/412 1214/1323/412 1212/1324/412 +f 1228/1325/411 1233/1326/411 1229/1327/411 +f 1227/1328/410 1231/1329/410 1226/1330/410 +f 1220/1331/411 1225/1332/411 1221/1333/411 +f 1218/1334/410 1224/1335/410 1223/1336/410 +f 1221/1333/414 1224/1335/414 1219/1337/414 +f 1218/1334/415 1222/1338/415 1220/1339/415 +f 1229/1327/415 1232/1340/415 1227/1328/415 +f 1226/1330/414 1230/1341/414 1228/1342/414 +f 1244/1343/411 1249/1344/411 1245/1345/411 +f 1242/1346/410 1248/1347/410 1247/1348/410 +f 1237/1349/411 1238/1350/411 1241/1351/411 +f 1235/1352/410 1239/1353/410 1234/1354/410 +f 1237/1349/416 1240/1355/416 1235/1352/416 +f 1234/1354/417 1238/1356/417 1236/1357/417 +f 1245/1345/417 1248/1347/417 1243/1358/417 +f 1242/1346/416 1246/1359/416 1244/1360/416 +f 1260/1361/411 1265/1362/411 1261/1363/411 +f 1258/1364/410 1264/1365/410 1263/1366/410 +f 1252/1367/411 1257/1368/411 1253/1369/411 +f 1251/1370/410 1255/1371/410 1250/1372/410 +f 1253/1369/418 1256/1373/418 1251/1370/418 +f 1250/1372/419 1254/1374/419 1252/1375/419 +f 1261/1363/419 1264/1365/419 1259/1376/419 +f 1258/1364/418 1262/1377/418 1260/1378/418 +f 1276/1379/411 1281/1380/411 1277/1381/411 +f 1274/1382/410 1280/1383/410 1279/1384/410 +f 1268/1385/411 1273/1386/411 1269/1387/411 +f 1267/1388/410 1271/1389/410 1266/1390/410 +f 1269/1387/420 1272/1391/420 1267/1388/420 +f 1266/1390/421 1270/1392/421 1268/1393/421 +f 1277/1381/421 1280/1383/421 1275/1394/421 +f 1274/1382/420 1278/1395/420 1276/1396/420 +f 1292/1397/411 1297/1398/411 1293/1399/411 +f 1290/1400/410 1296/1401/410 1295/1402/410 +f 1285/1403/411 1286/1404/411 1289/1405/411 +f 1283/1406/410 1287/1407/410 1282/1408/410 +f 1285/1403/422 1288/1409/422 1283/1406/422 +f 1282/1408/423 1286/1410/423 1284/1411/423 +f 1293/1399/423 1296/1401/423 1291/1412/423 +f 1290/1400/422 1294/1413/422 1292/1414/422 +f 2032/1415/411 2030/1416/411 2028/1417/411 +f 2036/1418/410 2038/1419/410 2040/1420/410 +f 1309/1421/410 1310/1422/410 1311/1423/410 +f 1304/1424/411 1303/1425/411 1301/1426/411 +f 1393/1427/411 1389/1428/411 1385/1429/411 +f 1444/1430/415 1445/1431/415 1443/1432/415 +f 1443/1432/410 1449/1433/410 1444/1430/410 +f 1444/1430/412 1450/1434/412 1446/1435/412 +f 1445/1431/413 1448/1436/413 1443/1432/413 +f 1446/1435/411 1447/1437/411 1445/1431/411 +f 1452/1438/415 1453/1439/415 1451/1440/415 +f 1451/1440/410 1457/1441/410 1452/1438/410 +f 1452/1438/412 1458/1442/412 1454/1443/412 +f 1453/1439/413 1456/1444/413 1451/1440/413 +f 1454/1443/411 1455/1445/411 1453/1439/411 +f 1463/1446/414 1465/1447/414 1464/1448/414 +f 1459/1449/410 1465/1447/410 1460/1450/410 +f 1460/1451/412 1466/1452/412 1462/1453/412 +f 1461/1454/413 1464/1448/413 1459/1455/413 +f 1462/1456/411 1463/1446/411 1461/1457/411 +f 1476/1458/415 1477/1459/415 1475/1460/415 +f 1471/1461/414 1473/1462/414 1472/1463/414 +f 1467/1464/410 1473/1462/410 1468/1465/410 +f 1468/1466/412 1474/1467/412 1470/1468/412 +f 1469/1469/413 1472/1463/413 1467/1470/413 +f 1470/1471/411 1471/1461/411 1469/1472/411 +f 1492/1473/411 1493/1474/411 1486/1475/411 +f 1483/1476/412 1478/1477/412 1476/1458/412 +f 1478/1477/411 1481/1478/411 1479/1479/411 +f 1477/1459/413 1480/1480/413 1475/1460/413 +f 1481/1481/414 1483/1482/414 1482/1483/414 +f 1479/1484/424 1482/1483/424 1480/1480/424 +f 1486/1475/414 1487/1485/414 1485/1486/414 +f 1493/1487/412 1488/1488/412 1486/1475/412 +f 1488/1488/410 1491/1489/410 1489/1490/410 +f 1487/1485/413 1490/1491/413 1485/1486/413 +f 1491/1492/415 1493/1493/415 1492/1494/415 +f 1489/1495/425 1492/1494/425 1490/1491/425 +f 1482/1496/410 1483/1497/410 1476/1458/410 +f 1551/1498/411 1553/1499/411 1555/1500/411 +f 1543/1501/410 1542/1502/410 1547/1503/410 +f 1679/1504/412 1678/1505/412 1677/1506/412 +f 1683/1507/413 1681/1508/413 1682/1509/413 +f 1680/1510/415 1683/1507/415 1678/1511/415 +f 1677/1506/414 1681/1508/414 1679/1504/414 +f 1679/1512/411 1684/1513/411 1680/1514/411 +f 1678/1515/410 1682/1509/410 1677/1516/410 +f 1688/1517/415 1685/1518/415 1686/1519/415 +f 1691/1520/410 1685/1518/410 1687/1521/410 +f 1708/1522/414 1715/1523/414 1707/1524/414 +f 1690/1525/414 1691/1520/414 1692/1526/414 +f 1696/1527/415 1693/1528/415 1694/1529/415 +f 1699/1530/410 1693/1528/410 1695/1531/410 +f 1709/1532/415 1702/1533/415 1701/1534/415 +f 1698/1535/414 1699/1530/414 1700/1536/414 +f 1713/1537/415 1706/1538/415 1705/1539/415 +f 1704/1540/414 1711/1541/414 1703/1542/414 +f 1712/1543/411 1709/1532/411 1711/1541/411 +f 1716/1544/411 1713/1537/411 1715/1523/411 +f 2052/1545/411 2053/1546/411 2055/1547/411 +f 2045/1548/410 2044/1549/410 2049/1550/410 +f 994/1143/410 1010/1175/410 1025/1144/410 +f 1009/1145/410 1025/1144/410 1024/1146/410 +f 1008/1147/410 1024/1146/410 1023/1148/410 +f 1007/1149/410 1023/1148/410 1022/1150/410 +f 1006/1151/410 1022/1150/410 1021/1152/410 +f 1004/1154/410 1005/1153/410 1021/1152/410 +f 1004/1154/410 1020/1155/410 1019/1156/410 +f 1002/1158/410 1003/1157/410 1019/1156/410 +f 1001/1160/410 1002/1551/410 1018/1161/410 +f 1000/1163/410 1001/1160/410 1017/1162/410 +f 999/1165/410 1000/1163/410 1016/1164/410 +f 998/1167/410 999/1165/410 1015/1166/410 +f 997/1169/410 998/1167/410 1014/1168/410 +f 996/1171/410 997/1169/410 1013/1170/410 +f 995/1173/410 996/1171/410 1012/1172/410 +f 995/1173/410 1011/1174/410 1010/1175/410 +f 1094/1176/411 1095/1552/411 1047/1177/411 +f 1045/1179/411 1093/1553/411 1094/1176/411 +f 1092/1180/411 1093/1553/411 1045/1179/411 +f 1091/1182/411 1092/1180/411 1044/1181/411 +f 1090/1184/411 1091/1182/411 1043/1183/411 +f 1105/1186/411 1090/1184/411 1042/1185/411 +f 1104/1188/411 1105/1186/411 1057/1187/411 +f 1103/1190/411 1104/1188/411 1056/1189/411 +f 1102/1192/411 1103/1190/411 1055/1191/411 +f 1053/1194/411 1101/1554/411 1102/1192/411 +f 1100/1195/411 1101/1554/411 1053/1194/411 +f 1099/1197/411 1100/1195/411 1052/1196/411 +f 1050/1199/411 1098/1555/411 1099/1197/411 +f 1049/1200/411 1097/1204/411 1098/1201/411 +f 1048/1203/411 1096/1205/411 1097/1204/411 +f 1047/1177/411 1095/1552/411 1096/1205/411 +f 1119/1206/411 1120/1209/411 1072/1207/411 +f 1120/1209/411 1121/1211/411 1073/1210/411 +f 1121/1211/411 1106/1213/411 1058/1212/411 +f 1106/1213/411 1107/1215/411 1059/1214/411 +f 1107/1215/411 1108/1556/411 1060/1216/411 +f 1060/1216/411 1108/1556/411 1109/1217/411 +f 1061/1218/411 1109/1217/411 1110/1219/411 +f 1062/1220/411 1110/1219/411 1111/1221/411 +f 1063/1222/411 1111/1221/411 1112/1223/411 +f 1064/1224/411 1112/1223/411 1113/1225/411 +f 1065/1226/411 1113/1225/411 1114/1227/411 +f 1066/1229/411 1114/1557/411 1115/1230/411 +f 1115/1230/411 1116/1233/411 1068/1232/411 +f 1116/1233/411 1117/1235/411 1069/1234/411 +f 1117/1235/411 1118/1237/411 1070/1236/411 +f 1118/1237/411 1119/1206/411 1071/1208/411 +f 1088/1238/410 1136/1242/410 1135/1239/410 +f 1089/1241/410 1137/1244/410 1136/1242/410 +f 1074/1243/410 1122/1246/410 1137/1244/410 +f 1075/1245/410 1123/1248/410 1122/1246/410 +f 1076/1247/410 1124/1250/410 1123/1248/410 +f 1076/1247/410 1077/1251/410 1125/1249/410 +f 1077/1251/410 1078/1253/410 1126/1252/410 +f 1078/1253/410 1079/1255/410 1127/1254/410 +f 1079/1255/410 1080/1257/410 1128/1256/410 +f 1080/1257/410 1081/1259/410 1129/1258/410 +f 1081/1259/410 1082/1558/410 1130/1260/410 +f 1082/1261/410 1083/1265/410 1131/1262/410 +f 1084/1264/410 1132/1267/410 1131/1262/410 +f 1084/1264/410 1085/1269/410 1133/1266/410 +f 1086/1268/410 1134/1270/410 1133/1266/410 +f 1087/1240/410 1135/1239/410 1134/1270/410 +f 1144/1271/411 1192/1302/411 1193/1272/411 +f 1152/1274/411 1200/1303/411 1201/1275/411 +f 1145/1273/411 1193/1272/411 1194/1277/411 +f 1139/1279/411 1138/1282/411 1186/1280/411 +f 1138/1282/411 1153/1276/411 1201/1275/411 +f 1147/1283/411 1146/1559/411 1194/1284/411 +f 1139/1279/411 1187/1281/411 1188/1286/411 +f 1147/1283/411 1195/1285/411 1196/1288/411 +f 1140/1287/411 1188/1286/411 1189/1290/411 +f 1148/1289/411 1196/1288/411 1197/1292/411 +f 1141/1291/411 1189/1290/411 1190/1294/411 +f 1150/1296/411 1149/1293/411 1197/1292/411 +f 1143/1298/411 1142/1295/411 1190/1294/411 +f 1151/1300/411 1150/1296/411 1198/1297/411 +f 1143/1298/411 1191/1299/411 1192/1302/411 +f 1152/1274/411 1151/1300/411 1199/1301/411 +f 1170/1304/410 1171/1560/410 1172/1561/410 +f 1172/1561/410 1173/1562/410 1174/1305/410 +f 1174/1305/410 1175/1563/410 1178/1306/410 +f 1175/1563/410 1176/1564/410 1178/1306/410 +f 1176/1564/410 1177/1565/410 1178/1306/410 +f 1178/1306/410 1179/1566/410 1180/1567/410 +f 1180/1567/410 1181/1568/410 1182/1569/410 +f 1182/1569/410 1183/1570/410 1184/1571/410 +f 1184/1571/410 1185/1572/410 1182/1569/410 +f 1185/1572/410 1170/1304/410 1182/1569/410 +f 1170/1304/410 1172/1561/410 1174/1305/410 +f 1178/1306/410 1180/1567/410 1170/1304/410 +f 1180/1567/410 1182/1569/410 1170/1304/410 +f 1212/1307/411 1214/1573/411 1217/1308/411 +f 1211/1310/410 1216/1322/410 1215/1311/410 +f 1204/1313/411 1206/1574/411 1209/1314/411 +f 1203/1316/410 1208/1319/410 1207/1317/410 +f 1205/1315/412 1209/1314/412 1208/1319/412 +f 1202/1318/413 1207/1317/413 1206/1320/413 +f 1213/1309/413 1217/1308/413 1216/1322/413 +f 1210/1312/412 1215/1311/412 1214/1323/412 +f 1228/1325/411 1230/1575/411 1233/1326/411 +f 1227/1328/410 1232/1340/410 1231/1329/410 +f 1220/1331/411 1222/1576/411 1225/1332/411 +f 1218/1334/410 1219/1337/410 1224/1335/410 +f 1221/1333/414 1225/1332/414 1224/1335/414 +f 1218/1334/415 1223/1336/415 1222/1338/415 +f 1229/1327/415 1233/1326/415 1232/1340/415 +f 1226/1330/414 1231/1329/414 1230/1341/414 +f 1244/1343/411 1246/1577/411 1249/1344/411 +f 1242/1346/410 1243/1358/410 1248/1347/410 +f 1237/1349/411 1236/1578/411 1238/1350/411 +f 1235/1352/410 1240/1355/410 1239/1353/410 +f 1237/1349/416 1241/1351/416 1240/1355/416 +f 1234/1354/417 1239/1353/417 1238/1356/417 +f 1245/1345/417 1249/1344/417 1248/1347/417 +f 1242/1346/416 1247/1348/416 1246/1359/416 +f 1260/1361/411 1262/1579/411 1265/1362/411 +f 1258/1364/410 1259/1376/410 1264/1365/410 +f 1252/1367/411 1254/1580/411 1257/1368/411 +f 1251/1370/410 1256/1373/410 1255/1371/410 +f 1253/1369/418 1257/1368/418 1256/1373/418 +f 1250/1372/419 1255/1371/419 1254/1374/419 +f 1261/1363/419 1265/1362/419 1264/1365/419 +f 1258/1364/418 1263/1366/418 1262/1377/418 +f 1276/1379/411 1278/1581/411 1281/1380/411 +f 1274/1382/410 1275/1394/410 1280/1383/410 +f 1268/1385/411 1270/1582/411 1273/1386/411 +f 1267/1388/410 1272/1391/410 1271/1389/410 +f 1269/1387/420 1273/1386/420 1272/1391/420 +f 1266/1390/421 1271/1389/421 1270/1392/421 +f 1277/1381/421 1281/1380/421 1280/1383/421 +f 1274/1382/420 1279/1384/420 1278/1395/420 +f 1292/1397/411 1294/1583/411 1297/1398/411 +f 1290/1400/410 1291/1412/410 1296/1401/410 +f 1285/1403/411 1284/1584/411 1286/1404/411 +f 1283/1406/410 1288/1409/410 1287/1407/410 +f 1285/1403/422 1289/1405/422 1288/1409/422 +f 1282/1408/423 1287/1407/423 1286/1410/423 +f 1293/1399/423 1297/1398/423 1296/1401/423 +f 1290/1400/422 1295/1402/422 1294/1413/422 +f 2033/1585/411 2034/1586/411 2032/1415/411 +f 2032/1415/411 2031/1587/411 2030/1416/411 +f 2030/1416/411 2029/1588/411 2028/1417/411 +f 2028/1417/411 2027/1589/411 2033/1585/411 +f 2033/1585/411 2032/1415/411 2028/1417/411 +f 2040/1420/410 2042/1590/410 2036/1418/410 +f 2042/1590/410 2041/1591/410 2036/1418/410 +f 2041/1591/410 2035/1592/410 2036/1418/410 +f 2036/1418/410 2037/1593/410 2038/1419/410 +f 2038/1419/410 2039/1594/410 2040/1420/410 +f 1311/1423/410 1313/1595/410 1307/1596/410 +f 1313/1595/410 1312/1597/410 1307/1596/410 +f 1312/1597/410 1306/1598/410 1307/1596/410 +f 1307/1596/410 1308/1599/410 1311/1423/410 +f 1308/1599/410 1309/1421/410 1311/1423/410 +f 1304/1424/411 1305/1600/411 1303/1425/411 +f 1303/1425/411 1302/1601/411 1301/1426/411 +f 1301/1426/411 1300/1602/411 1304/1424/411 +f 1300/1602/411 1299/1603/411 1304/1424/411 +f 1299/1603/411 1298/1604/411 1304/1424/411 +f 1381/1605/411 1380/1606/411 1393/1427/411 +f 1380/1606/411 1379/1607/411 1393/1427/411 +f 1379/1607/411 1394/1608/411 1393/1427/411 +f 1393/1427/411 1392/1609/411 1391/1610/411 +f 1391/1610/411 1390/1611/411 1393/1427/411 +f 1390/1611/411 1389/1428/411 1393/1427/411 +f 1389/1428/411 1388/1612/411 1385/1429/411 +f 1388/1612/411 1387/1613/411 1385/1429/411 +f 1387/1613/411 1386/1614/411 1385/1429/411 +f 1385/1429/411 1384/1615/411 1381/1605/411 +f 1384/1615/411 1383/1616/411 1381/1605/411 +f 1383/1616/411 1382/1617/411 1381/1605/411 +f 1381/1605/411 1393/1427/411 1385/1429/411 +f 1444/1430/415 1446/1435/415 1445/1431/415 +f 1443/1432/410 1448/1618/410 1449/1433/410 +f 1444/1430/412 1449/1619/412 1450/1434/412 +f 1445/1431/413 1447/1620/413 1448/1436/413 +f 1446/1435/411 1450/1621/411 1447/1437/411 +f 1452/1438/415 1454/1443/415 1453/1439/415 +f 1451/1440/410 1456/1622/410 1457/1441/410 +f 1452/1438/412 1457/1623/412 1458/1442/412 +f 1453/1439/413 1455/1624/413 1456/1444/413 +f 1454/1443/411 1458/1625/411 1455/1445/411 +f 1463/1446/414 1466/1452/414 1465/1447/414 +f 1459/1449/410 1464/1448/410 1465/1447/410 +f 1460/1451/412 1465/1447/412 1466/1452/412 +f 1461/1454/413 1463/1446/413 1464/1448/413 +f 1462/1456/411 1466/1452/411 1463/1446/411 +f 1476/1458/415 1478/1477/415 1477/1459/415 +f 1471/1461/414 1474/1467/414 1473/1462/414 +f 1467/1464/410 1472/1463/410 1473/1462/410 +f 1468/1466/412 1473/1462/412 1474/1467/412 +f 1469/1469/413 1471/1461/413 1472/1463/413 +f 1470/1471/411 1474/1467/411 1471/1461/411 +f 1485/1486/411 1490/1626/411 1486/1475/411 +f 1490/1626/411 1492/1473/411 1486/1475/411 +f 1483/1476/412 1484/1627/412 1478/1477/412 +f 1479/1479/411 1477/1459/411 1478/1477/411 +f 1478/1477/411 1484/1628/411 1481/1478/411 +f 1477/1459/413 1479/1484/413 1480/1480/413 +f 1481/1481/414 1484/1629/414 1483/1482/414 +f 1479/1484/424 1481/1481/424 1482/1483/424 +f 1486/1475/414 1488/1488/414 1487/1485/414 +f 1493/1487/412 1494/1630/412 1488/1488/412 +f 1489/1490/410 1487/1485/410 1488/1488/410 +f 1488/1488/410 1494/1631/410 1491/1489/410 +f 1487/1485/413 1489/1495/413 1490/1491/413 +f 1491/1492/415 1494/1632/415 1493/1493/415 +f 1489/1495/425 1491/1492/425 1492/1494/425 +f 1475/1460/410 1480/1633/410 1476/1458/410 +f 1480/1633/410 1482/1496/410 1476/1458/410 +f 1550/1634/411 1549/1635/411 1551/1498/411 +f 1551/1498/411 1552/1636/411 1553/1499/411 +f 1553/1499/411 1554/1637/411 1555/1500/411 +f 1555/1500/411 1556/1638/411 1550/1634/411 +f 1550/1634/411 1551/1498/411 1555/1500/411 +f 1543/1501/410 1541/1639/410 1542/1502/410 +f 1542/1502/410 1548/1640/410 1547/1503/410 +f 1547/1503/410 1546/1641/410 1543/1501/410 +f 1546/1641/410 1545/1642/410 1543/1501/410 +f 1545/1642/410 1544/1643/410 1543/1501/410 +f 1679/1504/412 1680/1644/412 1678/1505/412 +f 1683/1507/413 1684/1513/413 1681/1508/413 +f 1680/1510/415 1684/1513/415 1683/1507/415 +f 1677/1506/414 1682/1509/414 1681/1508/414 +f 1679/1512/411 1681/1508/411 1684/1513/411 +f 1678/1515/410 1683/1507/410 1682/1509/410 +f 1688/1517/415 1687/1521/415 1685/1518/415 +f 1691/1520/410 1689/1645/410 1685/1518/410 +f 1708/1522/414 1716/1544/414 1715/1523/414 +f 1690/1525/414 1689/1645/414 1691/1520/414 +f 1696/1527/415 1695/1531/415 1693/1528/415 +f 1699/1530/410 1697/1646/410 1693/1528/410 +f 1709/1532/415 1710/1647/415 1702/1533/415 +f 1698/1535/414 1697/1646/414 1699/1530/414 +f 1713/1537/415 1714/1648/415 1706/1538/415 +f 1704/1540/414 1712/1543/414 1711/1541/414 +f 1712/1543/411 1710/1647/411 1709/1532/411 +f 1716/1544/411 1714/1648/411 1713/1537/411 +f 2052/1545/411 2051/1649/411 2053/1546/411 +f 2053/1546/411 2054/1650/411 2055/1547/411 +f 2055/1547/411 2056/1651/411 2052/1545/411 +f 2056/1651/411 2057/1652/411 2052/1545/411 +f 2057/1652/411 2058/1653/411 2052/1545/411 +f 2045/1548/410 2043/1654/410 2044/1549/410 +f 2044/1549/410 2050/1655/410 2049/1550/410 +f 2049/1550/410 2048/1656/410 2045/1548/410 +f 2048/1656/410 2047/1657/410 2045/1548/410 +f 2047/1657/410 2046/1658/410 2045/1548/410 +s 1 +f 1017/1162/426 1035/1659/427 1016/1164/428 +f 1016/1164/428 1036/1660/429 1015/1166/430 +f 1015/1166/430 1037/1661/431 1014/1168/432 +f 1014/1168/432 1038/1662/433 1013/1170/434 +f 1013/1170/434 1039/1663/435 1012/1172/436 +f 1012/1172/436 1040/1664/437 1011/1174/438 +f 1011/1174/438 1041/1665/439 1010/1175/440 +f 1010/1175/440 1026/1666/441 1025/1144/442 +f 1024/1146/443 1026/1666/441 1027/1667/444 +f 1023/1148/445 1027/1667/444 1028/1668/446 +f 1022/1150/447 1028/1668/446 1029/1669/448 +f 1021/1152/449 1029/1669/448 1030/1670/450 +f 1020/1155/451 1030/1670/450 1031/1671/452 +f 1019/1156/453 1031/1671/452 1032/1672/454 +f 1018/1159/455 1032/1672/454 1033/1673/456 +f 1018/1161/455 1034/1674/457 1017/1162/426 +f 1975/1675/458 1992/1676/459 1976/1677/459 +f 1974/1678/460 1991/1679/458 1975/1675/458 +f 1989/1680/461 1974/1678/460 1973/1681/461 +f 1988/1682/462 1973/1681/461 1972/1683/462 +f 1971/1684/463 1988/1682/462 1972/1683/462 +f 1970/1685/464 1987/1686/463 1971/1687/463 +f 1985/1688/465 1970/1685/464 1969/1689/465 +f 1968/1690/466 1985/1688/465 1969/1689/465 +f 1967/1691/467 1984/1692/468 1968/1690/466 +f 1982/1693/469 1967/1691/467 1966/1694/469 +f 1981/1695/470 1966/1694/469 1965/1696/470 +f 1980/1697/471 1965/1696/470 1964/1698/471 +f 1979/1699/472 1964/1698/471 1963/1700/472 +f 1994/1701/473 1963/1700/472 1978/1702/473 +f 1993/1703/474 1978/1702/473 1977/1704/474 +f 1992/1676/459 1977/1704/474 1976/1677/459 +f 1166/1705/475 2513/1706/414 1165/1707/414 +f 1167/1708/424 2512/1709/475 1166/1705/475 +f 1154/1710/476 2509/1711/413 1169/1712/413 +f 1168/1713/477 2511/1714/424 1167/1708/424 +f 1155/1715/425 2524/1716/476 1154/1710/476 +f 1169/1712/413 2510/1717/477 1168/1713/477 +f 1156/1718/478 2523/1719/425 1155/1715/425 +f 1157/1720/415 2522/1721/478 1156/1718/478 +f 1158/1722/479 2521/1723/415 1157/1720/415 +f 1159/1724/480 2520/1725/479 1158/1722/479 +f 1160/1726/481 2519/1727/480 1159/1724/480 +f 1161/1728/412 2518/1729/481 1160/1726/481 +f 1162/1730/482 2517/1731/412 1161/1732/412 +f 1163/1733/483 2516/1734/482 1162/1730/482 +f 1164/1735/484 2515/1736/483 1163/1733/483 +f 1165/1707/414 2514/1737/484 1164/1735/484 +f 2491/1738/425 2506/1739/478 2490/1740/478 +f 2483/1741/483 2498/1742/484 2482/1743/484 +f 2490/1740/478 2505/1744/415 2489/1745/415 +f 2482/1743/484 2497/1746/414 2481/1747/414 +f 2489/1745/415 2504/1748/479 2488/1749/479 +f 2481/1747/414 2496/1750/475 2480/1751/475 +f 2488/1749/479 2503/1752/480 2487/1753/480 +f 2480/1751/475 2495/1754/424 2479/1755/424 +f 2487/1753/480 2502/1756/481 2486/1757/481 +f 2479/1755/424 2494/1758/477 2478/1759/477 +f 2486/1757/481 2501/1760/412 2485/1761/412 +f 2477/1762/413 2508/1763/476 2492/1764/476 +f 2478/1759/477 2493/1765/413 2477/1762/413 +f 2485/1766/412 2500/1767/482 2484/1768/482 +f 2492/1764/476 2507/1769/425 2491/1738/425 +f 2484/1768/482 2499/1770/483 2483/1741/483 +f 1339/1771/485 1324/1772/486 1323/1773/487 +f 1316/1774/488 1333/1775/489 1317/1776/490 +f 1324/1772/486 1341/1777/491 1325/1778/492 +f 1333/1779/489 1318/1780/493 1317/1776/490 +f 1325/1778/492 1342/1781/494 1326/1782/495 +f 1334/1783/496 1319/1784/497 1318/1780/493 +f 1342/1785/494 1327/1786/498 1326/1782/495 +f 1319/1784/497 1336/1787/499 1320/1788/500 +f 1343/1789/501 1328/1790/502 1327/1786/498 +f 1320/1788/500 1337/1791/503 1321/1792/504 +f 1328/1790/502 1345/1793/505 1329/1794/506 +f 1337/1795/503 1322/1796/507 1321/1792/504 +f 1314/1797/508 1331/1798/509 1315/1799/510 +f 1345/1800/505 1314/1797/508 1329/1794/506 +f 1338/1801/511 1323/1773/487 1322/1802/507 +f 1331/1803/509 1316/1774/488 1315/1799/510 +f 1333/1779/489 1346/1804/411 1334/1805/496 +f 1332/1806/512 1346/1807/411 1333/1775/489 +f 1331/1803/509 1346/1808/411 1332/1809/512 +f 1330/1810/513 1346/1811/411 1331/1798/509 +f 1345/1800/505 1346/1812/411 1330/1813/513 +f 1344/1814/514 1346/1815/411 1345/1793/505 +f 1343/1789/501 1346/1816/411 1344/1817/514 +f 1334/1783/496 1346/1818/411 1335/1819/515 +f 1335/1820/515 1346/1821/411 1336/1787/499 +f 1336/1822/499 1346/1823/411 1337/1791/503 +f 1337/1795/503 1346/1824/411 1338/1825/511 +f 1338/1801/511 1346/1826/411 1339/1827/485 +f 1339/1771/485 1346/1828/411 1340/1829/516 +f 1340/1830/516 1346/1831/411 1341/1777/491 +f 1341/1832/491 1346/1833/411 1342/1781/494 +f 1342/1785/494 1346/1834/411 1343/1835/501 +f 1359/1836/415 1374/1837/479 1358/1838/479 +f 1352/1839/484 1367/1840/414 1351/1841/414 +f 1360/1842/478 1375/1843/415 1359/1836/415 +f 1353/1844/483 1368/1845/484 1352/1839/484 +f 1361/1846/425 1376/1847/478 1360/1842/478 +f 1354/1848/482 1369/1849/483 1353/1844/483 +f 1362/1850/476 1377/1851/425 1361/1846/425 +f 1355/1852/412 1370/1853/482 1354/1848/482 +f 1348/1854/477 1363/1855/413 1347/1856/413 +f 1347/1856/413 1378/1857/476 1362/1850/476 +f 1356/1858/481 1371/1859/412 1355/1860/412 +f 1349/1861/424 1364/1862/477 1348/1854/477 +f 1357/1863/480 1372/1864/481 1356/1858/481 +f 1350/1865/475 1365/1866/424 1349/1861/424 +f 1358/1838/479 1373/1867/480 1357/1863/480 +f 1351/1841/414 1366/1868/475 1350/1865/475 +f 1320/1788/500 1400/1869/484 1319/1784/497 +f 1321/1792/504 1401/1870/483 1320/1788/500 +f 1322/1796/507 1402/1871/482 1321/1792/504 +f 1323/1773/487 1403/1872/412 1322/1802/507 +f 1324/1772/486 1404/1873/481 1323/1773/487 +f 1325/1778/492 1405/1874/480 1324/1772/486 +f 1326/1782/495 1406/1875/479 1325/1778/492 +f 1327/1786/498 1407/1876/415 1326/1782/495 +f 1328/1790/502 1408/1877/478 1327/1786/498 +f 1315/1799/510 1395/1878/413 1314/1797/508 +f 1329/1794/506 1409/1879/425 1328/1790/502 +f 1316/1774/488 1396/1880/477 1315/1799/510 +f 1314/1797/508 1410/1881/476 1329/1794/506 +f 1317/1776/490 1397/1882/424 1316/1774/488 +f 1318/1780/493 1398/1883/475 1317/1776/490 +f 1319/1784/497 1399/1884/414 1318/1780/493 +f 1428/1885/477 1413/1886/424 1412/1887/477 +f 1436/1888/481 1421/1889/480 1420/1890/481 +f 1429/1891/424 1414/1892/475 1413/1886/424 +f 1437/1893/480 1422/1894/479 1421/1889/480 +f 1430/1895/475 1415/1896/414 1414/1892/475 +f 1438/1897/479 1423/1898/415 1422/1894/479 +f 1431/1899/414 1416/1900/484 1415/1896/414 +f 1439/1901/415 1424/1902/478 1423/1898/415 +f 1432/1903/484 1417/1904/483 1416/1900/484 +f 1440/1905/478 1425/1906/425 1424/1902/478 +f 1433/1907/483 1418/1908/482 1417/1904/483 +f 1441/1909/425 1426/1910/476 1425/1906/425 +f 1434/1911/482 1419/1912/412 1418/1908/482 +f 1427/1913/413 1412/1887/477 1411/1914/413 +f 1442/1915/476 1411/1914/413 1426/1910/476 +f 1435/1916/412 1420/1890/481 1419/1917/412 +f 1498/1918/517 1527/1919/518 1528/1920/519 +f 1510/1921/520 1504/1922/521 1503/1923/522 +f 1511/1924/523 1505/1925/524 1504/1922/521 +f 1512/1926/525 1506/1927/526 1505/1925/524 +f 1507/1928/527 1516/1929/528 1508/1930/529 +f 1508/1930/529 1517/1931/530 1509/1932/531 +f 1517/1931/530 1503/1923/522 1509/1932/531 +f 1510/1921/520 1519/1933/532 1511/1924/523 +f 1519/1933/532 1512/1926/525 1511/1924/523 +f 1512/1926/525 1521/1934/533 1513/1935/534 +f 1522/1936/535 1516/1929/528 1515/1937/536 +f 1516/1929/528 1524/1938/537 1517/1931/530 +f 1517/1931/530 1518/1939/538 1510/1921/520 +f 1515/1937/536 1514/1940/539 1522/1936/535 +f 1515/1937/536 1507/1928/527 1514/1940/539 +f 1514/1941/539 1513/1935/534 1521/1934/533 +f 1513/1935/534 1514/1941/539 1506/1927/526 +f 1521/1934/533 1497/1942/540 1498/1918/517 +f 1520/1943/541 1496/1944/542 1497/1942/540 +f 1519/1933/532 1495/1945/543 1496/1944/542 +f 1495/1945/543 1524/1938/537 1502/1946/544 +f 1524/1938/537 1501/1947/545 1502/1946/544 +f 1523/1948/546 1500/1949/547 1501/1947/545 +f 1500/1949/547 1514/1950/539 1499/1951/548 +f 1498/1918/517 1514/1952/539 1521/1934/533 +f 1528/1920/519 1537/1953/549 1529/1954/550 +f 1496/1944/542 1526/1955/551 1525/1956/552 +f 1502/1946/544 1526/1955/551 1495/1945/543 +f 1500/1949/547 1531/1957/553 1501/1947/545 +f 1499/1958/548 1528/1920/519 1529/1954/550 +f 1497/1942/540 1525/1956/552 1527/1919/518 +f 1501/1947/545 1532/1959/554 1502/1946/544 +f 1499/1951/548 1530/1960/555 1500/1949/547 +f 1525/1956/552 1535/1961/556 1527/1919/518 +f 1531/1957/553 1540/1962/557 1532/1959/554 +f 1529/1963/550 1538/1964/558 1530/1960/555 +f 1527/1919/518 1536/1965/559 1528/1920/519 +f 1526/1955/551 1533/1966/560 1525/1956/552 +f 1532/1959/554 1534/1967/561 1526/1955/551 +f 1530/1960/555 1539/1968/562 1531/1957/553 +f 1565/1969/425 1558/1970/563 1557/1971/564 +f 1566/1972/565 1559/1973/566 1558/1970/563 +f 1567/1974/567 1560/1975/568 1559/1973/566 +f 1562/1976/569 1570/1977/570 1563/1978/571 +f 1563/1978/571 1571/1979/572 1564/1980/573 +f 1564/1980/573 1565/1969/425 1557/1971/564 +f 1565/1969/425 1573/1981/574 1566/1972/565 +f 1566/1972/565 1574/1982/575 1567/1974/567 +f 1574/1982/575 1568/1983/576 1567/1974/567 +f 1569/1984/577 1577/1985/578 1570/1977/570 +f 1577/1985/578 1571/1979/572 1570/1977/570 +f 1578/1986/579 1565/1969/425 1571/1979/572 +f 1568/1983/576 1561/1987/483 1560/1975/568 +f 1575/1988/580 1561/1987/483 1568/1983/576 +f 1562/1976/569 1561/1989/483 1569/1984/577 +f 1576/1990/581 1569/1984/577 1561/1989/483 +f 1560/1975/568 1581/1991/410 1559/1973/566 +f 1563/1978/571 1584/1992/582 1562/1976/569 +f 1557/1971/564 1586/1993/583 1564/1980/573 +f 1561/1994/483 1582/1995/448 1560/1975/568 +f 1564/1980/573 1585/1996/411 1563/1978/571 +f 1559/1973/566 1580/1997/431 1558/1970/563 +f 1558/1970/563 1579/1998/415 1557/1971/564 +f 1562/1976/569 1583/1999/414 1561/2000/483 +f 1574/1982/575 1591/2001/439 1575/1988/580 +f 1577/1985/578 1594/2002/584 1578/1986/579 +f 1572/2003/585 1589/2004/456 1573/1981/574 +f 1561/2005/483 1592/2006/586 1576/1990/581 +f 1575/1988/580 1587/2007/412 1561/2008/483 +f 1576/1990/581 1593/2009/411 1577/1985/578 +f 1573/1981/574 1590/2010/410 1574/1982/575 +f 1578/1986/579 1588/2011/413 1572/2003/585 +f 1603/2012/425 1596/2013/563 1595/2014/564 +f 1604/2015/565 1597/2016/566 1596/2013/563 +f 1605/2017/567 1598/2018/568 1597/2016/566 +f 1600/2019/569 1608/2020/570 1601/2021/571 +f 1601/2021/571 1609/2022/572 1602/2023/573 +f 1602/2023/573 1603/2012/425 1595/2014/564 +f 1610/2024/585 1604/2015/565 1603/2012/425 +f 1604/2015/565 1612/2025/575 1605/2017/567 +f 1605/2017/567 1613/2026/580 1606/2027/576 +f 1607/2028/577 1615/2029/578 1608/2020/570 +f 1615/2029/578 1609/2022/572 1608/2020/570 +f 1616/2030/579 1603/2012/425 1609/2022/572 +f 1606/2027/576 1599/2031/483 1598/2018/568 +f 1613/2026/580 1599/2031/483 1606/2027/576 +f 1600/2019/569 1599/2032/483 1607/2028/577 +f 1614/2033/581 1607/2028/577 1599/2032/483 +f 1612/2025/575 1621/2034/439 1613/2026/580 +f 1615/2029/578 1624/2035/584 1616/2030/579 +f 1610/2024/585 1619/2036/456 1611/2037/574 +f 1599/2038/483 1622/2039/586 1614/2033/581 +f 1613/2026/580 1617/2040/412 1599/2041/483 +f 1614/2033/581 1623/2042/411 1615/2029/578 +f 1611/2037/574 1620/2043/410 1612/2025/575 +f 1616/2030/579 1618/2044/413 1610/2024/585 +f 1633/2045/439 1626/2046/587 1625/2047/588 +f 1626/2046/587 1635/2048/589 1627/2049/590 +f 1627/2050/590 1636/2051/591 1628/2052/592 +f 1637/2053/593 1631/2054/594 1630/2055/595 +f 1638/2056/596 1632/2057/597 1631/2054/594 +f 1632/2057/597 1633/2045/439 1625/2047/588 +f 1633/2045/439 1641/2058/598 1634/2059/599 +f 1641/2058/598 1635/2048/589 1634/2059/599 +f 1642/2060/600 1636/2051/591 1635/2061/589 +f 1644/2062/601 1638/2056/596 1637/2053/593 +f 1645/2063/602 1639/2064/603 1638/2056/596 +f 1639/2064/603 1640/2065/604 1633/2045/439 +f 1636/2051/591 1629/2066/584 1628/2052/592 +f 1643/2067/605 1629/2066/584 1636/2051/591 +f 1630/2055/595 1629/2066/584 1637/2053/593 +f 1644/2062/601 1637/2053/593 1629/2066/584 +f 1641/2058/598 1597/2016/566 1598/2018/568 +f 1642/2068/600 1598/2018/568 1599/2069/483 +f 1643/2067/605 1599/2070/483 1600/2019/569 +f 1629/2071/584 1600/2019/569 1601/2021/571 +f 1596/2013/563 1640/2065/604 1646/2072/606 +f 1646/2072/606 1595/2014/564 1596/2013/563 +f 1645/2063/602 1602/2023/573 1595/2014/564 +f 1602/2023/573 1629/2071/584 1601/2021/571 +f 1647/2073/607 1656/2074/608 1648/2075/609 +f 1656/2074/608 1649/2076/610 1648/2075/609 +f 1649/2076/610 1658/2077/611 1650/2078/612 +f 1659/2079/613 1653/2080/614 1652/2081/615 +f 1660/2082/616 1654/2083/617 1653/2084/614 +f 1661/2085/618 1647/2073/607 1654/2083/617 +f 1655/2086/584 1663/2087/619 1656/2074/608 +f 1663/2087/619 1657/2088/620 1656/2074/608 +f 1664/2089/621 1658/2077/611 1657/2088/620 +f 1659/2079/613 1667/2090/622 1660/2091/616 +f 1660/2082/616 1668/2092/623 1661/2085/618 +f 1661/2085/618 1662/2093/624 1655/2086/584 +f 1658/2077/611 1651/2094/439 1650/2078/612 +f 1665/2095/625 1651/2094/439 1658/2077/611 +f 1652/2081/615 1651/2094/439 1659/2079/613 +f 1666/2096/626 1659/2079/613 1651/2094/439 +f 1650/2078/612 1671/2097/415 1649/2076/610 +f 1653/2080/614 1674/2098/448 1652/2081/615 +f 1647/2073/607 1676/2099/582 1654/2083/617 +f 1651/2100/439 1672/2101/431 1650/2078/612 +f 1654/2083/617 1675/2102/414 1653/2084/614 +f 1649/2076/610 1670/2103/583 1648/2075/609 +f 1648/2075/609 1669/2104/411 1647/2073/607 +f 1652/2081/615 1673/2105/410 1651/2100/439 +f 1626/2046/587 1651/2106/439 1625/2047/588 +f 1667/2090/622 1626/2046/587 1627/2049/590 +f 1668/2092/623 1627/2050/590 1628/2052/592 +f 1629/2107/584 1668/2092/623 1628/2052/592 +f 1663/2087/619 1629/2107/584 1630/2055/595 +f 1664/2089/621 1630/2055/595 1631/2054/594 +f 1665/2095/625 1631/2054/594 1632/2057/597 +f 1651/2106/439 1632/2057/597 1625/2047/588 +f 1718/2108/627 1725/2109/424 1717/2110/628 +f 1719/2111/629 1726/2112/630 1718/2108/627 +f 1720/2113/631 1727/2114/632 1719/2111/629 +f 1722/2115/633 1730/2116/634 1729/2117/635 +f 1723/2118/636 1731/2119/637 1730/2116/634 +f 1724/2120/638 1725/2109/424 1731/2119/637 +f 1725/2109/424 1733/2121/639 1732/2122/640 +f 1726/2112/630 1734/2123/641 1733/2121/639 +f 1727/2114/632 1735/2124/642 1734/2123/641 +f 1729/2117/635 1737/2125/643 1736/2126/644 +f 1731/2119/637 1737/2125/643 1730/2116/634 +f 1725/2109/424 1738/2127/645 1731/2119/637 +f 1728/2128/646 1720/2113/631 1721/2129/480 +f 1735/2124/642 1728/2128/646 1721/2129/480 +f 1722/2115/633 1729/2117/635 1721/2130/480 +f 1736/2126/644 1721/2130/480 1729/2117/635 +f 1741/2131/410 1720/2113/631 1719/2111/629 +f 1744/2132/583 1723/2118/636 1722/2115/633 +f 1746/2133/582 1717/2110/628 1724/2120/638 +f 1742/2134/431 1721/2135/480 1720/2113/631 +f 1745/2136/411 1724/2120/638 1723/2118/636 +f 1740/2137/448 1719/2111/629 1718/2108/627 +f 1739/2138/414 1718/2108/627 1717/2110/628 +f 1743/2139/415 1722/2115/633 1721/2140/480 +f 1751/2141/439 1734/2123/641 1735/2124/642 +f 1754/2142/584 1737/2125/643 1738/2127/645 +f 1749/2143/456 1732/2122/640 1733/2121/639 +f 1752/2144/586 1721/2145/480 1736/2126/644 +f 1747/2146/412 1735/2124/642 1721/2147/480 +f 1753/2148/411 1736/2126/644 1737/2125/643 +f 1750/2149/410 1733/2121/639 1734/2123/641 +f 1748/2150/413 1738/2127/645 1732/2122/640 +f 1756/2151/627 1763/2152/424 1755/2153/628 +f 1757/2154/629 1764/2155/630 1756/2151/627 +f 1758/2156/631 1765/2157/632 1757/2154/629 +f 1760/2158/633 1768/2159/634 1767/2160/635 +f 1761/2161/636 1769/2162/637 1768/2159/634 +f 1762/2163/638 1763/2152/424 1769/2162/637 +f 1764/2155/630 1770/2164/640 1763/2152/424 +f 1764/2155/630 1772/2165/641 1771/2166/639 +f 1765/2157/632 1773/2167/642 1772/2165/641 +f 1767/2160/635 1775/2168/643 1774/2169/644 +f 1769/2162/637 1775/2168/643 1768/2159/634 +f 1763/2152/424 1776/2170/645 1769/2162/637 +f 1766/2171/646 1758/2156/631 1759/2172/480 +f 1773/2167/642 1766/2171/646 1759/2172/480 +f 1760/2158/633 1767/2160/635 1759/2173/480 +f 1774/2169/644 1759/2173/480 1767/2160/635 +f 1781/2174/439 1772/2165/641 1773/2167/642 +f 1784/2175/584 1775/2168/643 1776/2170/645 +f 1779/2176/456 1770/2164/640 1771/2166/639 +f 1782/2177/586 1759/2178/480 1774/2169/644 +f 1777/2179/412 1773/2167/642 1759/2180/480 +f 1783/2181/411 1774/2169/644 1775/2168/643 +f 1780/2182/410 1771/2166/639 1772/2165/641 +f 1778/2183/413 1776/2170/645 1770/2164/640 +f 1786/2184/597 1793/2185/439 1785/2186/588 +f 1786/2184/597 1795/2187/647 1794/2188/603 +f 1791/2189/590 1796/2190/591 1790/2191/592 +f 1792/2192/587 1797/2193/589 1791/2189/590 +f 1792/2192/587 1793/2185/439 1798/2194/599 +f 1793/2185/439 1800/2195/606 1799/2196/604 +f 1795/2187/647 1800/2195/606 1794/2188/603 +f 1797/2193/589 1803/2197/605 1796/2190/591 +f 1798/2194/599 1804/2198/600 1797/2193/589 +f 1793/2185/439 1805/2199/598 1798/2194/599 +f 1790/2191/592 1796/2190/591 1789/2200/648 +f 1803/2197/605 1789/2200/648 1796/2190/591 +f 1757/2154/629 1800/2195/606 1758/2156/631 +f 1758/2156/631 1801/2201/649 1759/2202/480 +f 1759/2203/480 1802/2204/583 1760/2158/633 +f 1760/2158/633 1789/2205/648 1761/2161/636 +f 1756/2151/627 1799/2196/604 1757/2154/629 +f 1755/2153/628 1805/2199/598 1756/2151/627 +f 1762/2163/638 1804/2198/600 1755/2153/628 +f 1789/2205/648 1762/2163/638 1761/2161/636 +f 1807/2206/617 1814/2207/584 1806/2208/607 +f 1808/2209/614 1815/2210/618 1807/2206/617 +f 1808/2209/614 1817/2211/613 1816/2212/616 +f 1812/2213/650 1819/2214/608 1818/2215/651 +f 1806/2208/607 1819/2214/608 1813/2216/609 +f 1815/2210/618 1820/2217/624 1814/2207/584 +f 1816/2212/616 1821/2218/623 1815/2210/618 +f 1817/2211/613 1822/2219/622 1816/2212/616 +f 1818/2215/651 1826/2220/619 1825/2221/652 +f 1819/2214/608 1820/2217/624 1826/2220/619 +f 1817/2211/613 1809/2222/615 1810/2223/653 +f 1823/2224/626 1817/2211/613 1810/2223/653 +f 1829/2225/414 1809/2222/615 1808/2209/614 +f 1832/2226/431 1812/2227/650 1811/2228/431 +f 1834/2229/583 1806/2208/607 1813/2216/609 +f 1830/2230/448 1810/2231/653 1809/2222/615 +f 1833/2232/415 1813/2216/609 1812/2213/650 +f 1828/2233/582 1808/2209/614 1807/2206/617 +f 1827/2234/411 1807/2206/617 1806/2208/607 +f 1831/2235/410 1811/2228/431 1810/2231/653 +f 1810/2236/653 1786/2184/597 1785/2186/588 +f 1786/2184/597 1825/2237/652 1787/2238/654 +f 1787/2239/654 1826/2220/619 1788/2240/425 +f 1826/2220/619 1789/2241/648 1788/2240/425 +f 1789/2241/648 1821/2218/623 1790/2191/592 +f 1790/2191/592 1822/2219/622 1791/2189/590 +f 1791/2189/590 1823/2224/626 1792/2192/587 +f 1792/2192/587 1810/2236/653 1785/2186/588 +f 1842/2242/413 1858/2243/476 1843/2244/476 +f 1841/2245/477 1859/2246/413 1842/2247/413 +f 1840/2248/424 1860/2249/477 1841/2245/477 +f 1839/2250/475 1861/2251/424 1840/2248/424 +f 1838/2252/414 1862/2253/475 1839/2250/475 +f 1837/2254/484 1863/2255/414 1838/2252/414 +f 1836/2256/483 1864/2257/484 1837/2254/484 +f 1835/2258/482 1865/2259/483 1836/2256/483 +f 1850/2260/412 1866/2261/482 1835/2258/482 +f 1850/2260/412 1852/2262/481 1851/2263/412 +f 1848/2264/480 1852/2262/481 1849/2265/481 +f 1848/2264/480 1854/2266/479 1853/2267/480 +f 1846/2268/415 1854/2266/479 1847/2269/479 +f 1846/2268/415 1856/2270/478 1855/2271/415 +f 1844/2272/425 1856/2270/478 1845/2273/478 +f 1844/2272/425 1858/2243/476 1857/2274/425 +f 1870/2275/475 1903/2276/414 1871/2277/414 +f 1878/2278/479 1911/2279/415 1879/2280/415 +f 1871/2277/414 1904/2281/484 1872/2282/484 +f 1879/2280/415 1912/2283/478 1880/2284/478 +f 1872/2282/484 1905/2285/483 1873/2286/483 +f 1880/2284/478 1913/2287/425 1881/2288/425 +f 1873/2286/483 1906/2289/482 1874/2290/482 +f 1881/2288/425 1914/2291/476 1882/2292/476 +f 1874/2290/482 1907/2293/412 1875/2294/412 +f 1867/2295/413 1900/2296/477 1868/2297/477 +f 1882/2292/476 1899/2298/413 1867/2295/413 +f 1875/2299/412 1908/2300/481 1876/2301/481 +f 1868/2297/477 1901/2302/424 1869/2303/424 +f 1876/2301/481 1909/2304/480 1877/2305/480 +f 1869/2303/424 1902/2306/475 1870/2275/475 +f 1877/2305/480 1910/2307/479 1878/2278/479 +f 1896/2308/478 1927/2309/415 1895/2310/415 +f 1889/2311/483 1920/2312/484 1888/2313/484 +f 1897/2314/425 1928/2315/478 1896/2308/478 +f 1890/2316/482 1921/2317/483 1889/2311/483 +f 1898/2318/476 1929/2319/425 1897/2314/425 +f 1891/2320/412 1922/2321/482 1890/2316/482 +f 1884/2322/477 1915/2323/413 1883/2324/413 +f 1883/2324/413 1930/2325/476 1898/2318/476 +f 1892/2326/481 1923/2327/412 1891/2328/412 +f 1885/2329/424 1916/2330/477 1884/2322/477 +f 1893/2331/480 1924/2332/481 1892/2326/481 +f 1886/2333/475 1917/2334/424 1885/2329/424 +f 1894/2335/479 1925/2336/480 1893/2331/480 +f 1887/2337/414 1918/2338/475 1886/2333/475 +f 1895/2310/415 1926/2339/479 1894/2335/479 +f 1888/2313/484 1919/2340/414 1887/2337/414 +f 1960/2341/478 1945/2342/425 1944/2343/478 +f 1961/2344/425 1946/2345/476 1945/2342/425 +f 1962/2346/476 1931/2347/413 1946/2345/476 +f 1947/2348/413 1932/2349/477 1931/2347/413 +f 1948/2350/477 1933/2351/424 1932/2349/477 +f 1949/2352/424 1934/2353/475 1933/2351/424 +f 1950/2354/475 1935/2355/414 1934/2353/475 +f 1951/2356/414 1936/2357/484 1935/2355/414 +f 1952/2358/484 1937/2359/483 1936/2357/484 +f 1953/2360/483 1938/2361/482 1937/2359/483 +f 1954/2362/482 1939/2363/412 1938/2361/482 +f 1955/2364/412 1940/2365/481 1939/2366/412 +f 1956/2367/481 1941/2368/480 1940/2365/481 +f 1957/2369/480 1942/2370/479 1941/2368/480 +f 1958/2371/479 1943/2372/415 1942/2370/479 +f 1959/2373/415 1944/2343/478 1943/2372/415 +f 2002/2374/476 2019/2375/413 2003/2376/413 +f 2003/2377/413 2020/2378/477 2004/2379/477 +f 2004/2379/477 2021/2380/424 2005/2381/424 +f 2005/2381/424 2022/2382/475 2006/2383/475 +f 2006/2383/475 2023/2384/414 2007/2385/414 +f 2007/2385/414 2024/2386/484 2008/2387/484 +f 2008/2387/484 2025/2388/483 2009/2389/483 +f 1995/2390/412 2012/2391/481 1996/2392/481 +f 2009/2389/483 2026/2393/482 2010/2394/482 +f 1996/2392/481 2013/2395/480 1997/2396/480 +f 2010/2394/482 2011/2397/412 1995/2390/412 +f 1997/2396/480 2014/2398/479 1998/2399/479 +f 1998/2399/479 2015/2400/415 1999/2401/415 +f 1999/2401/415 2016/2402/478 2000/2403/478 +f 2000/2403/478 2017/2404/425 2001/2405/425 +f 2001/2405/425 2018/2406/476 2002/2374/476 +f 2062/2407/655 2091/2408/656 2092/2409/657 +f 2067/2410/658 2075/2411/659 2068/2412/660 +f 2075/2411/659 2069/2413/661 2068/2412/660 +f 2076/2414/662 2070/2415/663 2069/2413/661 +f 2071/2416/664 2080/2417/665 2072/2418/666 +f 2080/2417/665 2073/2419/667 2072/2418/666 +f 2081/2420/668 2067/2410/658 2073/2419/667 +f 2074/2421/669 2083/2422/670 2075/2411/659 +f 2083/2422/670 2076/2414/662 2075/2411/659 +f 2076/2414/662 2085/2423/671 2077/2424/672 +f 2086/2425/673 2080/2417/665 2079/2426/674 +f 2080/2417/665 2088/2427/675 2081/2420/668 +f 2081/2420/668 2082/2428/676 2074/2421/669 +f 2079/2426/674 2078/2429/677 2086/2425/673 +f 2079/2426/674 2071/2416/664 2078/2429/677 +f 2078/2430/677 2077/2424/672 2085/2423/671 +f 2077/2424/672 2078/2430/677 2070/2415/663 +f 2085/2423/671 2061/2431/678 2062/2407/655 +f 2084/2432/679 2060/2433/680 2061/2431/678 +f 2083/2422/670 2059/2434/681 2060/2433/680 +f 2066/2435/682 2082/2428/676 2088/2427/675 +f 2088/2427/675 2065/2436/683 2066/2435/682 +f 2087/2437/684 2064/2438/685 2065/2436/683 +f 2064/2438/685 2078/2439/677 2063/2440/686 +f 2062/2407/655 2078/2441/677 2085/2423/671 +f 2092/2409/657 2101/2442/561 2093/2443/687 +f 2060/2433/680 2090/2444/688 2089/2445/689 +f 2066/2435/682 2090/2444/688 2059/2434/681 +f 2064/2438/685 2095/2446/690 2065/2436/683 +f 2063/2447/686 2092/2409/657 2093/2443/687 +f 2061/2431/678 2089/2445/689 2091/2408/656 +f 2065/2436/683 2096/2448/691 2066/2435/682 +f 2063/2440/686 2094/2449/692 2064/2438/685 +f 2089/2445/689 2099/2450/562 2091/2408/656 +f 2095/2446/690 2104/2451/559 2096/2448/691 +f 2093/2452/687 2102/2453/560 2094/2449/692 +f 2091/2408/656 2100/2454/557 2092/2409/657 +f 2090/2444/688 2097/2455/558 2089/2445/689 +f 2096/2448/691 2098/2456/549 2090/2444/688 +f 2094/2449/692 2103/2457/556 2095/2446/690 +f 2108/2458/693 2137/2459/694 2138/2460/695 +f 2113/2461/696 2121/2462/697 2114/2463/698 +f 2121/2462/697 2115/2464/699 2114/2463/698 +f 2122/2465/700 2116/2466/701 2115/2464/699 +f 2117/2467/702 2126/2468/703 2118/2469/704 +f 2126/2468/703 2119/2470/705 2118/2469/704 +f 2119/2470/705 2120/2471/706 2113/2461/696 +f 2120/2471/706 2129/2472/707 2121/2462/697 +f 2121/2462/697 2130/2473/708 2122/2465/700 +f 2122/2465/700 2131/2474/709 2123/2475/710 +f 2132/2476/711 2126/2468/703 2125/2477/712 +f 2133/2478/713 2127/2479/714 2126/2468/703 +f 2127/2479/714 2128/2480/715 2120/2471/706 +f 2125/2477/712 2124/2481/716 2132/2476/711 +f 2125/2477/712 2117/2467/702 2124/2481/716 +f 2124/2482/716 2123/2475/710 2131/2474/709 +f 2123/2475/710 2124/2482/716 2116/2466/701 +f 2131/2474/709 2107/2483/717 2108/2458/693 +f 2130/2473/708 2106/2484/718 2107/2483/717 +f 2129/2472/707 2105/2485/719 2106/2484/718 +f 2105/2485/719 2134/2486/720 2112/2487/721 +f 2134/2486/720 2111/2488/722 2112/2487/721 +f 2133/2478/713 2110/2489/723 2111/2488/722 +f 2110/2489/723 2124/2490/716 2109/2491/724 +f 2109/2492/724 2131/2474/709 2108/2458/693 +f 2138/2460/695 2147/2493/562 2139/2494/725 +f 2106/2484/718 2136/2495/726 2135/2496/727 +f 2112/2487/721 2136/2495/726 2105/2485/719 +f 2110/2489/723 2141/2497/728 2111/2488/722 +f 2109/2492/724 2138/2460/695 2139/2494/725 +f 2107/2483/717 2135/2496/727 2137/2459/694 +f 2111/2488/722 2142/2498/729 2112/2487/721 +f 2109/2491/724 2140/2499/730 2110/2489/723 +f 2135/2496/727 2145/2500/549 2137/2459/694 +f 2141/2497/728 2150/2501/560 2142/2498/729 +f 2139/2502/725 2148/2503/557 2140/2499/730 +f 2137/2459/694 2146/2504/558 2138/2460/695 +f 2136/2495/726 2143/2505/559 2135/2496/727 +f 2142/2498/729 2144/2506/556 2136/2495/726 +f 2140/2499/730 2149/2507/561 2141/2497/728 +f 2154/2508/731 2183/2509/732 2184/2510/733 +f 2159/2511/734 2167/2512/735 2160/2513/736 +f 2167/2512/735 2161/2514/737 2160/2513/736 +f 2161/2514/737 2169/2515/738 2162/2516/739 +f 2163/2517/740 2172/2518/741 2164/2519/742 +f 2172/2518/741 2165/2520/743 2164/2519/742 +f 2165/2520/743 2166/2521/744 2159/2511/734 +f 2166/2521/744 2175/2522/745 2167/2512/735 +f 2167/2512/735 2176/2523/746 2168/2524/747 +f 2168/2524/747 2177/2525/748 2169/2515/738 +f 2178/2526/749 2172/2518/741 2171/2527/750 +f 2172/2518/741 2180/2528/751 2173/2529/752 +f 2180/2528/751 2166/2521/744 2173/2529/752 +f 2171/2527/750 2170/2530/753 2178/2526/749 +f 2171/2527/750 2163/2517/740 2170/2530/753 +f 2170/2531/753 2169/2515/738 2177/2525/748 +f 2169/2515/738 2170/2531/753 2162/2516/739 +f 2177/2525/748 2153/2532/754 2154/2508/731 +f 2176/2523/746 2152/2533/755 2153/2532/754 +f 2175/2522/745 2151/2534/756 2152/2533/755 +f 2151/2534/756 2180/2528/751 2158/2535/757 +f 2180/2528/751 2157/2536/758 2158/2535/757 +f 2179/2537/759 2156/2538/760 2157/2536/758 +f 2156/2538/760 2170/2539/753 2155/2540/761 +f 2155/2541/761 2177/2525/748 2154/2508/731 +f 2184/2510/733 2193/2542/556 2185/2543/762 +f 2152/2533/755 2182/2544/763 2181/2545/764 +f 2158/2535/757 2182/2544/763 2151/2534/756 +f 2156/2538/760 2187/2546/765 2157/2536/758 +f 2155/2541/761 2184/2510/733 2185/2543/762 +f 2153/2532/754 2181/2545/764 2183/2509/732 +f 2157/2536/758 2188/2547/766 2158/2535/757 +f 2155/2540/761 2186/2548/767 2156/2538/760 +f 2181/2545/764 2191/2549/561 2183/2509/732 +f 2187/2546/765 2196/2550/558 2188/2547/766 +f 2185/2551/762 2194/2552/559 2186/2548/767 +f 2183/2509/732 2192/2553/560 2184/2510/733 +f 2182/2544/763 2189/2554/557 2181/2545/764 +f 2188/2547/766 2190/2555/562 2182/2544/763 +f 2186/2548/767 2195/2556/549 2187/2546/765 +f 2200/2557/768 2229/2558/769 2230/2559/770 +f 2205/2560/771 2213/2561/772 2206/2562/773 +f 2213/2561/772 2207/2563/774 2206/2562/773 +f 2214/2564/775 2208/2565/776 2207/2563/774 +f 2209/2566/777 2218/2567/778 2210/2568/779 +f 2218/2567/778 2211/2569/780 2210/2568/779 +f 2219/2570/781 2205/2560/771 2211/2569/780 +f 2212/2571/782 2221/2572/783 2213/2561/772 +f 2221/2572/783 2214/2564/775 2213/2561/772 +f 2222/2573/784 2215/2574/785 2214/2564/775 +f 2224/2575/786 2218/2567/778 2217/2576/787 +f 2218/2567/778 2226/2577/788 2219/2570/781 +f 2219/2570/781 2220/2578/789 2212/2571/782 +f 2217/2576/787 2216/2579/790 2224/2575/786 +f 2217/2576/787 2209/2566/777 2216/2579/790 +f 2216/2580/790 2215/2574/785 2223/2581/791 +f 2215/2574/785 2216/2580/790 2208/2565/776 +f 2223/2581/791 2199/2582/792 2200/2557/768 +f 2222/2573/784 2198/2583/793 2199/2582/792 +f 2221/2572/783 2197/2584/794 2198/2583/793 +f 2197/2584/794 2226/2577/788 2204/2585/795 +f 2226/2577/788 2203/2586/796 2204/2585/795 +f 2225/2587/797 2202/2588/798 2203/2586/796 +f 2202/2588/798 2216/2589/790 2201/2590/799 +f 2201/2591/799 2223/2581/791 2200/2557/768 +f 2230/2559/770 2239/2592/558 2231/2593/800 +f 2198/2583/793 2228/2594/801 2227/2595/802 +f 2204/2585/795 2228/2594/801 2197/2584/794 +f 2202/2588/798 2233/2596/803 2203/2586/796 +f 2201/2591/799 2230/2559/770 2231/2593/800 +f 2199/2582/792 2227/2595/802 2229/2558/769 +f 2203/2586/796 2234/2597/804 2204/2585/795 +f 2201/2590/799 2232/2598/805 2202/2588/798 +f 2227/2595/802 2237/2599/559 2229/2558/769 +f 2233/2596/803 2242/2600/561 2234/2597/804 +f 2231/2601/800 2240/2602/562 2232/2598/805 +f 2229/2558/769 2238/2603/549 2230/2559/770 +f 2228/2594/801 2235/2604/556 2227/2595/802 +f 2234/2597/804 2236/2605/560 2228/2594/801 +f 2232/2598/805 2241/2606/557 2233/2596/803 +f 2246/2607/806 2275/2608/807 2276/2609/808 +f 2251/2610/809 2259/2611/810 2252/2612/811 +f 2259/2611/810 2253/2613/812 2252/2612/811 +f 2260/2614/813 2254/2615/814 2253/2613/812 +f 2255/2616/815 2264/2617/816 2256/2618/817 +f 2264/2617/816 2257/2619/818 2256/2618/817 +f 2257/2619/818 2258/2620/819 2251/2610/809 +f 2258/2620/819 2267/2621/820 2259/2611/810 +f 2259/2611/810 2268/2622/821 2260/2614/813 +f 2268/2622/821 2261/2623/822 2260/2614/813 +f 2270/2624/823 2264/2617/816 2263/2625/824 +f 2264/2617/816 2272/2626/825 2265/2627/826 +f 2265/2627/826 2266/2628/827 2258/2620/819 +f 2263/2625/824 2262/2629/828 2270/2624/823 +f 2263/2625/824 2255/2616/815 2262/2629/828 +f 2262/2630/828 2261/2623/822 2269/2631/829 +f 2261/2623/822 2262/2630/828 2254/2615/814 +f 2269/2631/829 2245/2632/830 2246/2607/806 +f 2268/2622/821 2244/2633/831 2245/2632/830 +f 2267/2621/820 2243/2634/832 2244/2633/831 +f 2243/2634/832 2272/2626/825 2250/2635/833 +f 2272/2626/825 2249/2636/834 2250/2635/833 +f 2271/2637/835 2248/2638/836 2249/2636/834 +f 2248/2638/836 2262/2639/828 2247/2640/837 +f 2247/2641/837 2269/2631/829 2246/2607/806 +f 2276/2609/808 2285/2642/560 2277/2643/838 +f 2244/2633/831 2274/2644/839 2273/2645/840 +f 2250/2635/833 2274/2644/839 2243/2634/832 +f 2248/2638/836 2279/2646/841 2249/2636/834 +f 2247/2641/837 2276/2609/808 2277/2643/838 +f 2245/2632/830 2273/2645/840 2275/2608/807 +f 2249/2636/834 2280/2647/842 2250/2635/833 +f 2247/2640/837 2278/2648/843 2248/2638/836 +f 2273/2645/840 2283/2649/557 2275/2608/807 +f 2279/2646/841 2288/2650/549 2280/2647/842 +f 2277/2651/838 2286/2652/556 2278/2648/843 +f 2275/2608/807 2284/2653/561 2276/2609/808 +f 2274/2644/839 2281/2654/562 2273/2645/840 +f 2280/2647/842 2282/2655/558 2274/2644/839 +f 2278/2648/843 2287/2656/559 2279/2646/841 +f 2292/2657/844 2321/2658/845 2322/2659/846 +f 2297/2660/847 2305/2661/848 2298/2662/849 +f 2305/2661/848 2299/2663/850 2298/2662/849 +f 2306/2664/851 2300/2665/852 2299/2663/850 +f 2301/2666/853 2310/2667/854 2302/2668/855 +f 2310/2667/854 2303/2669/856 2302/2668/855 +f 2311/2670/857 2297/2660/847 2303/2669/856 +f 2312/2671/858 2305/2661/848 2304/2672/859 +f 2313/2673/860 2306/2664/851 2305/2661/848 +f 2314/2674/861 2307/2675/862 2306/2664/851 +f 2316/2676/863 2310/2667/854 2309/2677/864 +f 2317/2678/865 2311/2670/857 2310/2667/854 +f 2318/2679/866 2304/2672/859 2311/2670/857 +f 2309/2677/864 2308/2680/867 2316/2676/863 +f 2309/2677/864 2301/2666/853 2308/2680/867 +f 2308/2681/867 2307/2675/862 2315/2682/868 +f 2307/2675/862 2308/2681/867 2300/2665/852 +f 2315/2682/868 2291/2683/869 2292/2657/844 +f 2314/2674/861 2290/2684/870 2291/2683/869 +f 2313/2673/860 2289/2685/871 2290/2684/870 +f 2289/2685/871 2318/2679/866 2296/2686/872 +f 2318/2679/866 2295/2687/873 2296/2686/872 +f 2317/2678/865 2294/2688/874 2295/2687/873 +f 2294/2688/874 2308/2689/867 2293/2690/875 +f 2293/2691/875 2315/2682/868 2292/2657/844 +f 2322/2659/846 2331/2692/557 2323/2693/876 +f 2290/2684/870 2320/2694/877 2319/2695/878 +f 2296/2686/872 2320/2694/877 2289/2685/871 +f 2294/2688/874 2325/2696/879 2295/2687/873 +f 2293/2691/875 2322/2659/846 2323/2693/876 +f 2291/2683/869 2319/2695/878 2321/2658/845 +f 2295/2687/873 2326/2697/880 2296/2686/872 +f 2293/2690/875 2324/2698/881 2294/2688/874 +f 2319/2695/878 2329/2699/558 2321/2658/845 +f 2325/2696/879 2334/2700/556 2326/2697/880 +f 2323/2701/876 2332/2702/561 2324/2698/881 +f 2321/2658/845 2330/2703/562 2322/2659/846 +f 2319/2695/878 2328/2704/559 2327/2705/549 +f 2326/2697/880 2328/2704/559 2320/2694/877 +f 2324/2698/881 2333/2706/560 2325/2696/879 +f 2338/2707/882 2367/2708/883 2368/2709/884 +f 2350/2710/885 2344/2711/886 2343/2712/887 +f 2351/2713/888 2345/2714/889 2344/2711/886 +f 2345/2714/889 2353/2715/890 2346/2716/891 +f 2347/2717/892 2356/2718/893 2348/2719/894 +f 2356/2718/893 2349/2720/895 2348/2719/894 +f 2349/2720/895 2350/2710/885 2343/2712/887 +f 2350/2710/885 2359/2721/896 2351/2713/888 +f 2359/2721/896 2352/2722/897 2351/2713/888 +f 2360/2723/898 2353/2715/890 2352/2722/897 +f 2362/2724/899 2356/2718/893 2355/2725/900 +f 2356/2718/893 2364/2726/901 2357/2727/902 +f 2357/2727/902 2358/2728/903 2350/2710/885 +f 2355/2725/900 2354/2729/904 2362/2724/899 +f 2355/2725/900 2347/2717/892 2354/2729/904 +f 2354/2730/904 2353/2715/890 2361/2731/905 +f 2353/2715/890 2354/2730/904 2346/2716/891 +f 2361/2731/905 2337/2732/906 2338/2707/882 +f 2360/2723/898 2336/2733/907 2337/2732/906 +f 2359/2721/896 2335/2734/908 2336/2733/907 +f 2342/2735/909 2358/2728/903 2364/2726/901 +f 2364/2726/901 2341/2736/910 2342/2735/909 +f 2363/2737/911 2340/2738/912 2341/2736/910 +f 2340/2738/912 2354/2739/904 2339/2740/913 +f 2339/2741/913 2361/2731/905 2338/2707/882 +f 2369/2742/914 2376/2743/556 2377/2744/559 +f 2336/2733/907 2366/2745/915 2365/2746/916 +f 2342/2735/909 2366/2745/915 2335/2734/908 +f 2340/2738/912 2371/2747/917 2341/2736/910 +f 2339/2741/913 2368/2709/884 2369/2742/914 +f 2337/2732/906 2365/2746/916 2367/2708/883 +f 2341/2736/910 2372/2748/918 2342/2735/909 +f 2339/2740/913 2370/2749/919 2340/2738/912 +f 2365/2746/916 2375/2750/560 2367/2708/883 +f 2371/2747/917 2380/2751/562 2372/2748/918 +f 2369/2752/914 2378/2753/549 2370/2749/919 +f 2367/2708/883 2376/2743/556 2368/2709/884 +f 2366/2745/915 2373/2754/561 2365/2746/916 +f 2372/2748/918 2374/2755/557 2366/2745/915 +f 2370/2749/919 2379/2756/558 2371/2747/917 +f 2428/2757/557 2419/2758/562 2427/2759/562 +f 2427/2759/562 2413/2760/558 2421/2761/558 +f 2422/2762/549 2415/2763/559 2423/2764/559 +f 2424/2765/556 2417/2766/560 2425/2767/560 +f 2392/2768/562 2385/2769/558 2393/2770/558 +f 2390/2771/561 2383/2772/557 2391/2773/557 +f 2395/2774/556 2381/2775/560 2389/2776/560 +f 2396/2777/559 2387/2778/556 2395/2774/556 +f 2393/2770/558 2386/2779/549 2394/2780/549 +f 2391/2773/557 2384/2781/562 2392/2782/562 +f 2389/2776/560 2382/2783/561 2390/2771/561 +f 2394/2780/549 2388/2784/559 2396/2777/559 +f 2399/2785/559 2405/2786/556 2397/2787/556 +f 2404/2788/561 2411/2789/557 2403/2790/557 +f 2402/2791/562 2409/2792/558 2401/2793/558 +f 2400/2794/549 2407/2795/559 2399/2785/559 +f 2397/2787/556 2406/2796/560 2398/2797/560 +f 2398/2797/560 2412/2798/561 2404/2788/561 +f 2403/2790/557 2410/2799/562 2402/2791/562 +f 2401/2800/558 2408/2801/549 2400/2794/549 +f 2425/2767/560 2418/2802/561 2426/2803/561 +f 2423/2764/559 2416/2804/556 2424/2805/556 +f 2421/2761/558 2414/2806/549 2422/2762/549 +f 2426/2803/561 2420/2807/557 2428/2757/557 +f 2431/2808/557 2437/2809/562 2429/2810/562 +f 2436/2811/549 2443/2812/559 2435/2813/559 +f 2434/2814/556 2441/2815/560 2433/2816/560 +f 2432/2817/561 2439/2818/557 2431/2808/557 +f 2429/2810/562 2438/2819/558 2430/2820/558 +f 2430/2820/558 2444/2821/549 2436/2811/549 +f 2435/2813/559 2442/2822/556 2434/2814/556 +f 2433/2823/560 2440/2824/561 2432/2817/561 +f 2456/2825/920 2471/2826/921 2455/2827/921 +f 2454/2828/922 2471/2826/921 2470/2829/922 +f 2454/2828/922 2469/2830/923 2453/2831/923 +f 2453/2832/923 2468/2833/924 2452/2834/924 +f 2452/2834/924 2467/2835/925 2451/2836/925 +f 2451/2836/925 2466/2837/926 2450/2838/926 +f 2450/2838/926 2465/2839/927 2449/2840/927 +f 2448/2841/928 2465/2839/927 2464/2842/928 +f 2448/2841/928 2463/2843/929 2447/2844/929 +f 2447/2844/929 2462/2845/930 2446/2846/930 +f 2446/2846/930 2461/2847/931 2445/2848/931 +f 2445/2848/931 2476/2849/932 2460/2850/932 +f 2459/2851/933 2476/2849/932 2475/2852/933 +f 2459/2851/933 2474/2853/934 2458/2854/934 +f 2457/2855/935 2474/2853/934 2473/2856/935 +f 2457/2855/935 2472/2857/920 2456/2825/920 +f 2527/2858/480 2542/2859/481 2526/2860/481 +f 2535/2861/424 2550/2862/477 2534/2863/477 +f 2528/2864/479 2543/2865/480 2527/2858/480 +f 2536/2866/475 2551/2867/424 2535/2861/424 +f 2529/2868/415 2544/2869/479 2528/2864/479 +f 2537/2870/414 2552/2871/475 2536/2866/475 +f 2530/2872/478 2545/2873/415 2529/2868/415 +f 2538/2874/484 2553/2875/414 2537/2870/414 +f 2531/2876/425 2546/2877/478 2530/2872/478 +f 2539/2878/483 2554/2879/484 2538/2874/484 +f 2532/2880/476 2547/2881/425 2531/2876/425 +f 2540/2882/482 2555/2883/483 2539/2878/483 +f 2533/2884/413 2548/2885/476 2532/2880/476 +f 2526/2860/481 2541/2886/412 2525/2887/412 +f 2525/2887/412 2556/2888/482 2540/2882/482 +f 2534/2863/477 2549/2889/413 2533/2890/413 +f 1017/1162/426 1034/1674/457 1035/1659/427 +f 1016/1164/428 1035/1659/427 1036/1660/429 +f 1015/1166/430 1036/1660/429 1037/1661/431 +f 1014/1168/432 1037/1661/431 1038/1662/433 +f 1013/1170/434 1038/1662/433 1039/1663/435 +f 1012/1172/436 1039/1663/435 1040/1664/437 +f 1011/1174/438 1040/1664/437 1041/1665/439 +f 1010/1175/440 1041/1665/439 1026/1666/441 +f 1024/1146/443 1025/1144/442 1026/1666/441 +f 1023/1148/445 1024/1146/443 1027/1667/444 +f 1022/1150/447 1023/1148/445 1028/1668/446 +f 1021/1152/449 1022/1150/447 1029/1669/448 +f 1020/1155/451 1021/1152/449 1030/1670/450 +f 1019/1156/453 1020/1155/451 1031/1671/452 +f 1018/1159/455 1019/1156/453 1032/1672/454 +f 1018/1161/455 1033/2891/456 1034/1674/457 +f 1975/1675/458 1991/1679/458 1992/1676/459 +f 1974/1678/460 1990/2892/936 1991/1679/458 +f 1989/1680/461 1990/2892/936 1974/1678/460 +f 1988/1682/462 1989/1680/461 1973/1681/461 +f 1971/1684/463 1987/2893/463 1988/1682/462 +f 1970/1685/464 1986/2894/464 1987/1686/463 +f 1985/1688/465 1986/2894/464 1970/1685/464 +f 1968/1690/466 1984/1692/468 1985/1688/465 +f 1967/1691/467 1983/2895/467 1984/1692/468 +f 1982/1693/469 1983/2895/467 1967/1691/467 +f 1981/1695/470 1982/1693/469 1966/1694/469 +f 1980/1697/471 1981/1695/470 1965/1696/470 +f 1979/1699/472 1980/1697/471 1964/1698/471 +f 1994/1701/473 1979/1699/472 1963/1700/472 +f 1993/1703/474 1994/1701/473 1978/1702/473 +f 1992/1676/459 1993/1703/474 1977/1704/474 +f 1166/1705/475 2512/1709/475 2513/1706/414 +f 1167/1708/424 2511/1714/424 2512/1709/475 +f 1154/1710/476 2524/1716/476 2509/1711/413 +f 1168/1713/477 2510/1717/477 2511/1714/424 +f 1155/1715/425 2523/1719/425 2524/1716/476 +f 1169/1712/413 2509/1711/413 2510/1717/477 +f 1156/1718/478 2522/1721/478 2523/1719/425 +f 1157/1720/415 2521/1723/415 2522/1721/478 +f 1158/1722/479 2520/1725/479 2521/1723/415 +f 1159/1724/480 2519/1727/480 2520/1725/479 +f 1160/1726/481 2518/1729/481 2519/1727/480 +f 1161/1728/412 2517/2896/412 2518/1729/481 +f 1162/1730/482 2516/1734/482 2517/1731/412 +f 1163/1733/483 2515/1736/483 2516/1734/482 +f 1164/1735/484 2514/1737/484 2515/1736/483 +f 1165/1707/414 2513/1706/414 2514/1737/484 +f 2491/1738/425 2507/1769/425 2506/1739/478 +f 2483/1741/483 2499/1770/483 2498/1742/484 +f 2490/1740/478 2506/1739/478 2505/1744/415 +f 2482/1743/484 2498/1742/484 2497/1746/414 +f 2489/1745/415 2505/1744/415 2504/1748/479 +f 2481/1747/414 2497/1746/414 2496/1750/475 +f 2488/1749/479 2504/1748/479 2503/1752/480 +f 2480/1751/475 2496/1750/475 2495/1754/424 +f 2487/1753/480 2503/1752/480 2502/1756/481 +f 2479/1755/424 2495/1754/424 2494/1758/477 +f 2486/1757/481 2502/1756/481 2501/1760/412 +f 2477/1762/413 2493/1765/413 2508/1763/476 +f 2478/1759/477 2494/1758/477 2493/1765/413 +f 2485/1766/412 2501/2897/412 2500/1767/482 +f 2492/1764/476 2508/1763/476 2507/1769/425 +f 2484/1768/482 2500/1767/482 2499/1770/483 +f 1339/1771/485 1340/1829/516 1324/1772/486 +f 1316/1774/488 1332/1806/512 1333/1775/489 +f 1324/1772/486 1340/1830/516 1341/1777/491 +f 1333/1779/489 1334/1805/496 1318/1780/493 +f 1325/1778/492 1341/1832/491 1342/1781/494 +f 1334/1783/496 1335/1819/515 1319/1784/497 +f 1342/1785/494 1343/1835/501 1327/1786/498 +f 1319/1784/497 1335/1820/515 1336/1787/499 +f 1343/1789/501 1344/1817/514 1328/1790/502 +f 1320/1788/500 1336/1822/499 1337/1791/503 +f 1328/1790/502 1344/1814/514 1345/1793/505 +f 1337/1795/503 1338/1825/511 1322/1796/507 +f 1314/1797/508 1330/1810/513 1331/1798/509 +f 1345/1800/505 1330/1813/513 1314/1797/508 +f 1338/1801/511 1339/1827/485 1323/1773/487 +f 1331/1803/509 1332/1809/512 1316/1774/488 +f 1359/1836/415 1375/1843/415 1374/1837/479 +f 1352/1839/484 1368/1845/484 1367/1840/414 +f 1360/1842/478 1376/1847/478 1375/1843/415 +f 1353/1844/483 1369/1849/483 1368/1845/484 +f 1361/1846/425 1377/1851/425 1376/1847/478 +f 1354/1848/482 1370/1853/482 1369/1849/483 +f 1362/1850/476 1378/1857/476 1377/1851/425 +f 1355/1852/412 1371/2898/412 1370/1853/482 +f 1348/1854/477 1364/1862/477 1363/1855/413 +f 1347/1856/413 1363/1855/413 1378/1857/476 +f 1356/1858/481 1372/1864/481 1371/1859/412 +f 1349/1861/424 1365/1866/424 1364/1862/477 +f 1357/1863/480 1373/1867/480 1372/1864/481 +f 1350/1865/475 1366/1868/475 1365/1866/424 +f 1358/1838/479 1374/1837/479 1373/1867/480 +f 1351/1841/414 1367/1840/414 1366/1868/475 +f 1320/1788/500 1401/1870/483 1400/1869/484 +f 1321/1792/504 1402/1871/482 1401/1870/483 +f 1322/1796/507 1403/2899/412 1402/1871/482 +f 1323/1773/487 1404/1873/481 1403/1872/412 +f 1324/1772/486 1405/1874/480 1404/1873/481 +f 1325/1778/492 1406/1875/479 1405/1874/480 +f 1326/1782/495 1407/1876/415 1406/1875/479 +f 1327/1786/498 1408/1877/478 1407/1876/415 +f 1328/1790/502 1409/1879/425 1408/1877/478 +f 1315/1799/510 1396/1880/477 1395/1878/413 +f 1329/1794/506 1410/1881/476 1409/1879/425 +f 1316/1774/488 1397/1882/424 1396/1880/477 +f 1314/1797/508 1395/1878/413 1410/1881/476 +f 1317/1776/490 1398/1883/475 1397/1882/424 +f 1318/1780/493 1399/1884/414 1398/1883/475 +f 1319/1784/497 1400/1869/484 1399/1884/414 +f 1428/1885/477 1429/1891/424 1413/1886/424 +f 1436/1888/481 1437/1893/480 1421/1889/480 +f 1429/1891/424 1430/1895/475 1414/1892/475 +f 1437/1893/480 1438/1897/479 1422/1894/479 +f 1430/1895/475 1431/1899/414 1415/1896/414 +f 1438/1897/479 1439/1901/415 1423/1898/415 +f 1431/1899/414 1432/1903/484 1416/1900/484 +f 1439/1901/415 1440/1905/478 1424/1902/478 +f 1432/1903/484 1433/1907/483 1417/1904/483 +f 1440/1905/478 1441/1909/425 1425/1906/425 +f 1433/1907/483 1434/1911/482 1418/1908/482 +f 1441/1909/425 1442/1915/476 1426/1910/476 +f 1434/1911/482 1435/2900/412 1419/1912/412 +f 1427/1913/413 1428/1885/477 1412/1887/477 +f 1442/1915/476 1427/1913/413 1411/1914/413 +f 1435/1916/412 1436/1888/481 1420/1890/481 +f 1498/1918/517 1497/1942/540 1527/1919/518 +f 1510/1921/520 1511/1924/523 1504/1922/521 +f 1511/1924/523 1512/1926/525 1505/1925/524 +f 1512/1926/525 1513/1935/534 1506/1927/526 +f 1507/1928/527 1515/1937/536 1516/1929/528 +f 1508/1930/529 1516/1929/528 1517/1931/530 +f 1517/1931/530 1510/1921/520 1503/1923/522 +f 1510/1921/520 1518/1939/538 1519/1933/532 +f 1519/1933/532 1520/1943/541 1512/1926/525 +f 1512/1926/525 1520/1943/541 1521/1934/533 +f 1522/1936/535 1523/1948/546 1516/1929/528 +f 1516/1929/528 1523/1948/546 1524/1938/537 +f 1517/1931/530 1524/1938/537 1518/1939/538 +f 1521/1934/533 1520/1943/541 1497/1942/540 +f 1520/1943/541 1519/1933/532 1496/1944/542 +f 1519/1933/532 1518/1939/538 1495/1945/543 +f 1495/1945/543 1518/1939/538 1524/1938/537 +f 1524/1938/537 1523/1948/546 1501/1947/545 +f 1523/1948/546 1522/1936/535 1500/1949/547 +f 1500/1949/547 1522/1936/535 1514/1950/539 +f 1498/1918/517 1499/1958/548 1514/1952/539 +f 1528/1920/519 1536/1965/559 1537/1953/549 +f 1496/1944/542 1495/1945/543 1526/1955/551 +f 1502/1946/544 1532/1959/554 1526/1955/551 +f 1500/1949/547 1530/1960/555 1531/1957/553 +f 1499/1958/548 1498/1918/517 1528/1920/519 +f 1497/1942/540 1496/1944/542 1525/1956/552 +f 1501/1947/545 1531/1957/553 1532/1959/554 +f 1499/1951/548 1529/1963/550 1530/1960/555 +f 1525/1956/552 1533/1966/560 1535/1961/556 +f 1531/1957/553 1539/1968/562 1540/1962/557 +f 1529/1963/550 1537/2901/549 1538/1964/558 +f 1527/1919/518 1535/1961/556 1536/1965/559 +f 1526/1955/551 1534/1967/561 1533/1966/560 +f 1532/1959/554 1540/1962/557 1534/1967/561 +f 1530/1960/555 1538/1964/558 1539/1968/562 +f 1565/1969/425 1566/1972/565 1558/1970/563 +f 1566/1972/565 1567/1974/567 1559/1973/566 +f 1567/1974/567 1568/1983/576 1560/1975/568 +f 1562/1976/569 1569/1984/577 1570/1977/570 +f 1563/1978/571 1570/1977/570 1571/1979/572 +f 1564/1980/573 1571/1979/572 1565/1969/425 +f 1565/1969/425 1572/2003/585 1573/1981/574 +f 1566/1972/565 1573/1981/574 1574/1982/575 +f 1574/1982/575 1575/1988/580 1568/1983/576 +f 1569/1984/577 1576/1990/581 1577/1985/578 +f 1577/1985/578 1578/1986/579 1571/1979/572 +f 1578/1986/579 1572/2003/585 1565/1969/425 +f 1560/1975/568 1582/1995/448 1581/1991/410 +f 1563/1978/571 1585/1996/411 1584/1992/582 +f 1557/1971/564 1579/1998/415 1586/1993/583 +f 1561/1994/483 1583/2902/414 1582/1995/448 +f 1564/1980/573 1586/1993/583 1585/1996/411 +f 1559/1973/566 1581/1991/410 1580/1997/431 +f 1558/1970/563 1580/1997/431 1579/1998/415 +f 1562/1976/569 1584/1992/582 1583/1999/414 +f 1574/1982/575 1590/2010/410 1591/2001/439 +f 1577/1985/578 1593/2009/411 1594/2002/584 +f 1572/2003/585 1588/2011/413 1589/2004/456 +f 1561/2005/483 1587/2903/412 1592/2006/586 +f 1575/1988/580 1591/2001/439 1587/2007/412 +f 1576/1990/581 1592/2006/586 1593/2009/411 +f 1573/1981/574 1589/2004/456 1590/2010/410 +f 1578/1986/579 1594/2002/584 1588/2011/413 +f 1603/2012/425 1604/2015/565 1596/2013/563 +f 1604/2015/565 1605/2017/567 1597/2016/566 +f 1605/2017/567 1606/2027/576 1598/2018/568 +f 1600/2019/569 1607/2028/577 1608/2020/570 +f 1601/2021/571 1608/2020/570 1609/2022/572 +f 1602/2023/573 1609/2022/572 1603/2012/425 +f 1610/2024/585 1611/2037/574 1604/2015/565 +f 1604/2015/565 1611/2037/574 1612/2025/575 +f 1605/2017/567 1612/2025/575 1613/2026/580 +f 1607/2028/577 1614/2033/581 1615/2029/578 +f 1615/2029/578 1616/2030/579 1609/2022/572 +f 1616/2030/579 1610/2024/585 1603/2012/425 +f 1612/2025/575 1620/2043/410 1621/2034/439 +f 1615/2029/578 1623/2042/411 1624/2035/584 +f 1610/2024/585 1618/2044/413 1619/2036/456 +f 1599/2038/483 1617/2904/412 1622/2039/586 +f 1613/2026/580 1621/2034/439 1617/2040/412 +f 1614/2033/581 1622/2039/586 1623/2042/411 +f 1611/2037/574 1619/2036/456 1620/2043/410 +f 1616/2030/579 1624/2035/584 1618/2044/413 +f 1633/2045/439 1634/2059/599 1626/2046/587 +f 1626/2046/587 1634/2059/599 1635/2048/589 +f 1627/2050/590 1635/2061/589 1636/2051/591 +f 1637/2053/593 1638/2056/596 1631/2054/594 +f 1638/2056/596 1639/2064/603 1632/2057/597 +f 1632/2057/597 1639/2064/603 1633/2045/439 +f 1633/2045/439 1640/2065/604 1641/2058/598 +f 1641/2058/598 1642/2068/600 1635/2048/589 +f 1642/2060/600 1643/2067/605 1636/2051/591 +f 1644/2062/601 1645/2063/602 1638/2056/596 +f 1645/2063/602 1646/2072/606 1639/2064/603 +f 1639/2064/603 1646/2072/606 1640/2065/604 +f 1641/2058/598 1640/2065/604 1597/2016/566 +f 1642/2068/600 1641/2058/598 1598/2018/568 +f 1643/2067/605 1642/2060/600 1599/2070/483 +f 1629/2071/584 1643/2067/605 1600/2019/569 +f 1596/2013/563 1597/2016/566 1640/2065/604 +f 1646/2072/606 1645/2063/602 1595/2014/564 +f 1645/2063/602 1644/2062/601 1602/2023/573 +f 1602/2023/573 1644/2062/601 1629/2071/584 +f 1647/2073/607 1655/2086/584 1656/2074/608 +f 1656/2074/608 1657/2088/620 1649/2076/610 +f 1649/2076/610 1657/2088/620 1658/2077/611 +f 1659/2079/613 1660/2091/616 1653/2080/614 +f 1660/2082/616 1661/2085/618 1654/2083/617 +f 1661/2085/618 1655/2086/584 1647/2073/607 +f 1655/2086/584 1662/2093/624 1663/2087/619 +f 1663/2087/619 1664/2089/621 1657/2088/620 +f 1664/2089/621 1665/2095/625 1658/2077/611 +f 1659/2079/613 1666/2096/626 1667/2090/622 +f 1660/2082/616 1667/2905/622 1668/2092/623 +f 1661/2085/618 1668/2092/623 1662/2093/624 +f 1650/2078/612 1672/2101/431 1671/2097/415 +f 1653/2080/614 1675/2906/414 1674/2098/448 +f 1647/2073/607 1669/2104/411 1676/2099/582 +f 1651/2100/439 1673/2105/410 1672/2101/431 +f 1654/2083/617 1676/2099/582 1675/2102/414 +f 1649/2076/610 1671/2097/415 1670/2103/583 +f 1648/2075/609 1670/2103/583 1669/2104/411 +f 1652/2081/615 1674/2098/448 1673/2105/410 +f 1626/2046/587 1666/2096/626 1651/2106/439 +f 1667/2090/622 1666/2096/626 1626/2046/587 +f 1668/2092/623 1667/2905/622 1627/2050/590 +f 1629/2107/584 1662/2093/624 1668/2092/623 +f 1663/2087/619 1662/2093/624 1629/2107/584 +f 1664/2089/621 1663/2087/619 1630/2055/595 +f 1665/2095/625 1664/2089/621 1631/2054/594 +f 1651/2106/439 1665/2095/625 1632/2057/597 +f 1718/2108/627 1726/2112/630 1725/2109/424 +f 1719/2111/629 1727/2114/632 1726/2112/630 +f 1720/2113/631 1728/2128/646 1727/2114/632 +f 1722/2115/633 1723/2118/636 1730/2116/634 +f 1723/2118/636 1724/2120/638 1731/2119/637 +f 1724/2120/638 1717/2110/628 1725/2109/424 +f 1725/2109/424 1726/2112/630 1733/2121/639 +f 1726/2112/630 1727/2114/632 1734/2123/641 +f 1727/2114/632 1728/2128/646 1735/2124/642 +f 1729/2117/635 1730/2116/634 1737/2125/643 +f 1731/2119/637 1738/2127/645 1737/2125/643 +f 1725/2109/424 1732/2122/640 1738/2127/645 +f 1741/2131/410 1742/2134/431 1720/2113/631 +f 1744/2132/583 1745/2136/411 1723/2118/636 +f 1746/2133/582 1739/2138/414 1717/2110/628 +f 1742/2134/431 1743/2907/415 1721/2135/480 +f 1745/2136/411 1746/2133/582 1724/2120/638 +f 1740/2137/448 1741/2131/410 1719/2111/629 +f 1739/2138/414 1740/2137/448 1718/2108/627 +f 1743/2139/415 1744/2132/583 1722/2115/633 +f 1751/2141/439 1750/2149/410 1734/2123/641 +f 1754/2142/584 1753/2148/411 1737/2125/643 +f 1749/2143/456 1748/2150/413 1732/2122/640 +f 1752/2144/586 1747/2908/412 1721/2145/480 +f 1747/2146/412 1751/2141/439 1735/2124/642 +f 1753/2148/411 1752/2144/586 1736/2126/644 +f 1750/2149/410 1749/2143/456 1733/2121/639 +f 1748/2150/413 1754/2142/584 1738/2127/645 +f 1756/2151/627 1764/2155/630 1763/2152/424 +f 1757/2154/629 1765/2157/632 1764/2155/630 +f 1758/2156/631 1766/2171/646 1765/2157/632 +f 1760/2158/633 1761/2161/636 1768/2159/634 +f 1761/2161/636 1762/2163/638 1769/2162/637 +f 1762/2163/638 1755/2153/628 1763/2152/424 +f 1764/2155/630 1771/2166/639 1770/2164/640 +f 1764/2155/630 1765/2157/632 1772/2165/641 +f 1765/2157/632 1766/2171/646 1773/2167/642 +f 1767/2160/635 1768/2159/634 1775/2168/643 +f 1769/2162/637 1776/2170/645 1775/2168/643 +f 1763/2152/424 1770/2164/640 1776/2170/645 +f 1781/2174/439 1780/2182/410 1772/2165/641 +f 1784/2175/584 1783/2181/411 1775/2168/643 +f 1779/2176/456 1778/2183/413 1770/2164/640 +f 1782/2177/586 1777/2909/412 1759/2178/480 +f 1777/2179/412 1781/2174/439 1773/2167/642 +f 1783/2181/411 1782/2177/586 1774/2169/644 +f 1780/2182/410 1779/2176/456 1771/2166/639 +f 1778/2183/413 1784/2175/584 1776/2170/645 +f 1786/2184/597 1794/2188/603 1793/2185/439 +f 1786/2184/597 1787/2238/654 1795/2187/647 +f 1791/2189/590 1797/2193/589 1796/2190/591 +f 1792/2192/587 1798/2194/599 1797/2193/589 +f 1792/2192/587 1785/2186/588 1793/2185/439 +f 1793/2185/439 1794/2188/603 1800/2195/606 +f 1795/2187/647 1801/2201/649 1800/2195/606 +f 1797/2193/589 1804/2198/600 1803/2197/605 +f 1798/2194/599 1805/2199/598 1804/2198/600 +f 1793/2185/439 1799/2196/604 1805/2199/598 +f 1757/2154/629 1799/2196/604 1800/2195/606 +f 1758/2156/631 1800/2195/606 1801/2201/649 +f 1759/2203/480 1801/2910/649 1802/2204/583 +f 1760/2158/633 1802/2204/583 1789/2205/648 +f 1756/2151/627 1805/2199/598 1799/2196/604 +f 1755/2153/628 1804/2198/600 1805/2199/598 +f 1762/2163/638 1803/2197/605 1804/2198/600 +f 1789/2205/648 1803/2197/605 1762/2163/638 +f 1807/2206/617 1815/2210/618 1814/2207/584 +f 1808/2209/614 1816/2212/616 1815/2210/618 +f 1808/2209/614 1809/2222/615 1817/2211/613 +f 1812/2213/650 1813/2216/609 1819/2214/608 +f 1806/2208/607 1814/2207/584 1819/2214/608 +f 1815/2210/618 1821/2218/623 1820/2217/624 +f 1816/2212/616 1822/2219/622 1821/2218/623 +f 1817/2211/613 1823/2224/626 1822/2219/622 +f 1818/2215/651 1819/2214/608 1826/2220/619 +f 1819/2214/608 1814/2207/584 1820/2217/624 +f 1829/2225/414 1830/2230/448 1809/2222/615 +f 1832/2226/431 1833/2911/415 1812/2227/650 +f 1834/2229/583 1827/2234/411 1806/2208/607 +f 1830/2230/448 1831/2235/410 1810/2231/653 +f 1833/2232/415 1834/2229/583 1813/2216/609 +f 1828/2233/582 1829/2225/414 1808/2209/614 +f 1827/2234/411 1828/2233/582 1807/2206/617 +f 1831/2235/410 1832/2226/431 1811/2228/431 +f 1810/2236/653 1824/2912/480 1786/2184/597 +f 1786/2184/597 1824/2912/480 1825/2237/652 +f 1787/2239/654 1825/2221/652 1826/2220/619 +f 1826/2220/619 1820/2217/624 1789/2241/648 +f 1789/2241/648 1820/2217/624 1821/2218/623 +f 1790/2191/592 1821/2218/623 1822/2219/622 +f 1791/2189/590 1822/2219/622 1823/2224/626 +f 1792/2192/587 1823/2224/626 1810/2236/653 +f 1842/2242/413 1859/2913/413 1858/2243/476 +f 1841/2245/477 1860/2249/477 1859/2246/413 +f 1840/2248/424 1861/2251/424 1860/2249/477 +f 1839/2250/475 1862/2253/475 1861/2251/424 +f 1838/2252/414 1863/2255/414 1862/2253/475 +f 1837/2254/484 1864/2257/484 1863/2255/414 +f 1836/2256/483 1865/2259/483 1864/2257/484 +f 1835/2258/482 1866/2261/482 1865/2259/483 +f 1850/2260/412 1851/2263/412 1866/2261/482 +f 1850/2260/412 1849/2265/481 1852/2262/481 +f 1848/2264/480 1853/2267/480 1852/2262/481 +f 1848/2264/480 1847/2269/479 1854/2266/479 +f 1846/2268/415 1855/2271/415 1854/2266/479 +f 1846/2268/415 1845/2273/478 1856/2270/478 +f 1844/2272/425 1857/2274/425 1856/2270/478 +f 1844/2272/425 1843/2244/476 1858/2243/476 +f 1870/2275/475 1902/2306/475 1903/2276/414 +f 1878/2278/479 1910/2307/479 1911/2279/415 +f 1871/2277/414 1903/2276/414 1904/2281/484 +f 1879/2280/415 1911/2279/415 1912/2283/478 +f 1872/2282/484 1904/2281/484 1905/2285/483 +f 1880/2284/478 1912/2283/478 1913/2287/425 +f 1873/2286/483 1905/2285/483 1906/2289/482 +f 1881/2288/425 1913/2287/425 1914/2291/476 +f 1874/2290/482 1906/2289/482 1907/2293/412 +f 1867/2295/413 1899/2298/413 1900/2296/477 +f 1882/2292/476 1914/2291/476 1899/2298/413 +f 1875/2299/412 1907/2914/412 1908/2300/481 +f 1868/2297/477 1900/2296/477 1901/2302/424 +f 1876/2301/481 1908/2300/481 1909/2304/480 +f 1869/2303/424 1901/2302/424 1902/2306/475 +f 1877/2305/480 1909/2304/480 1910/2307/479 +f 1896/2308/478 1928/2315/478 1927/2309/415 +f 1889/2311/483 1921/2317/483 1920/2312/484 +f 1897/2314/425 1929/2319/425 1928/2315/478 +f 1890/2316/482 1922/2321/482 1921/2317/483 +f 1898/2318/476 1930/2325/476 1929/2319/425 +f 1891/2320/412 1923/2915/412 1922/2321/482 +f 1884/2322/477 1916/2330/477 1915/2323/413 +f 1883/2324/413 1915/2323/413 1930/2325/476 +f 1892/2326/481 1924/2332/481 1923/2327/412 +f 1885/2329/424 1917/2334/424 1916/2330/477 +f 1893/2331/480 1925/2336/480 1924/2332/481 +f 1886/2333/475 1918/2338/475 1917/2334/424 +f 1894/2335/479 1926/2339/479 1925/2336/480 +f 1887/2337/414 1919/2340/414 1918/2338/475 +f 1895/2310/415 1927/2309/415 1926/2339/479 +f 1888/2313/484 1920/2312/484 1919/2340/414 +f 1960/2341/478 1961/2344/425 1945/2342/425 +f 1961/2344/425 1962/2346/476 1946/2345/476 +f 1962/2346/476 1947/2348/413 1931/2347/413 +f 1947/2348/413 1948/2350/477 1932/2349/477 +f 1948/2350/477 1949/2352/424 1933/2351/424 +f 1949/2352/424 1950/2354/475 1934/2353/475 +f 1950/2354/475 1951/2356/414 1935/2355/414 +f 1951/2356/414 1952/2358/484 1936/2357/484 +f 1952/2358/484 1953/2360/483 1937/2359/483 +f 1953/2360/483 1954/2362/482 1938/2361/482 +f 1954/2362/482 1955/2916/412 1939/2363/412 +f 1955/2364/412 1956/2367/481 1940/2365/481 +f 1956/2367/481 1957/2369/480 1941/2368/480 +f 1957/2369/480 1958/2371/479 1942/2370/479 +f 1958/2371/479 1959/2373/415 1943/2372/415 +f 1959/2373/415 1960/2341/478 1944/2343/478 +f 2002/2374/476 2018/2406/476 2019/2375/413 +f 2003/2377/413 2019/2917/413 2020/2378/477 +f 2004/2379/477 2020/2378/477 2021/2380/424 +f 2005/2381/424 2021/2380/424 2022/2382/475 +f 2006/2383/475 2022/2382/475 2023/2384/414 +f 2007/2385/414 2023/2384/414 2024/2386/484 +f 2008/2387/484 2024/2386/484 2025/2388/483 +f 1995/2390/412 2011/2397/412 2012/2391/481 +f 2009/2389/483 2025/2388/483 2026/2393/482 +f 1996/2392/481 2012/2391/481 2013/2395/480 +f 2010/2394/482 2026/2393/482 2011/2397/412 +f 1997/2396/480 2013/2395/480 2014/2398/479 +f 1998/2399/479 2014/2398/479 2015/2400/415 +f 1999/2401/415 2015/2400/415 2016/2402/478 +f 2000/2403/478 2016/2402/478 2017/2404/425 +f 2001/2405/425 2017/2404/425 2018/2406/476 +f 2062/2407/655 2061/2431/678 2091/2408/656 +f 2067/2410/658 2074/2421/669 2075/2411/659 +f 2075/2411/659 2076/2414/662 2069/2413/661 +f 2076/2414/662 2077/2424/672 2070/2415/663 +f 2071/2416/664 2079/2426/674 2080/2417/665 +f 2080/2417/665 2081/2420/668 2073/2419/667 +f 2081/2420/668 2074/2421/669 2067/2410/658 +f 2074/2421/669 2082/2428/676 2083/2422/670 +f 2083/2422/670 2084/2432/679 2076/2414/662 +f 2076/2414/662 2084/2432/679 2085/2423/671 +f 2086/2425/673 2087/2437/684 2080/2417/665 +f 2080/2417/665 2087/2437/684 2088/2427/675 +f 2081/2420/668 2088/2427/675 2082/2428/676 +f 2085/2423/671 2084/2432/679 2061/2431/678 +f 2084/2432/679 2083/2422/670 2060/2433/680 +f 2083/2422/670 2082/2428/676 2059/2434/681 +f 2066/2435/682 2059/2434/681 2082/2428/676 +f 2088/2427/675 2087/2437/684 2065/2436/683 +f 2087/2437/684 2086/2425/673 2064/2438/685 +f 2064/2438/685 2086/2425/673 2078/2439/677 +f 2062/2407/655 2063/2447/686 2078/2441/677 +f 2092/2409/657 2100/2454/557 2101/2442/561 +f 2060/2433/680 2059/2434/681 2090/2444/688 +f 2066/2435/682 2096/2448/691 2090/2444/688 +f 2064/2438/685 2094/2449/692 2095/2446/690 +f 2063/2447/686 2062/2407/655 2092/2409/657 +f 2061/2431/678 2060/2433/680 2089/2445/689 +f 2065/2436/683 2095/2446/690 2096/2448/691 +f 2063/2440/686 2093/2452/687 2094/2449/692 +f 2089/2445/689 2097/2455/558 2099/2450/562 +f 2095/2446/690 2103/2457/556 2104/2451/559 +f 2093/2452/687 2101/2918/561 2102/2453/560 +f 2091/2408/656 2099/2450/562 2100/2454/557 +f 2090/2444/688 2098/2456/549 2097/2455/558 +f 2096/2448/691 2104/2451/559 2098/2456/549 +f 2094/2449/692 2102/2453/560 2103/2457/556 +f 2108/2458/693 2107/2483/717 2137/2459/694 +f 2113/2461/696 2120/2471/706 2121/2462/697 +f 2121/2462/697 2122/2465/700 2115/2464/699 +f 2122/2465/700 2123/2475/710 2116/2466/701 +f 2117/2467/702 2125/2477/712 2126/2468/703 +f 2126/2468/703 2127/2479/714 2119/2470/705 +f 2119/2470/705 2127/2479/714 2120/2471/706 +f 2120/2471/706 2128/2480/715 2129/2472/707 +f 2121/2462/697 2129/2472/707 2130/2473/708 +f 2122/2465/700 2130/2473/708 2131/2474/709 +f 2132/2476/711 2133/2478/713 2126/2468/703 +f 2133/2478/713 2134/2486/720 2127/2479/714 +f 2127/2479/714 2134/2486/720 2128/2480/715 +f 2131/2474/709 2130/2473/708 2107/2483/717 +f 2130/2473/708 2129/2472/707 2106/2484/718 +f 2129/2472/707 2128/2480/715 2105/2485/719 +f 2105/2485/719 2128/2480/715 2134/2486/720 +f 2134/2486/720 2133/2478/713 2111/2488/722 +f 2133/2478/713 2132/2476/711 2110/2489/723 +f 2110/2489/723 2132/2476/711 2124/2490/716 +f 2109/2492/724 2124/2919/716 2131/2474/709 +f 2138/2460/695 2146/2504/558 2147/2493/562 +f 2106/2484/718 2105/2485/719 2136/2495/726 +f 2112/2487/721 2142/2498/729 2136/2495/726 +f 2110/2489/723 2140/2499/730 2141/2497/728 +f 2109/2492/724 2108/2458/693 2138/2460/695 +f 2107/2483/717 2106/2484/718 2135/2496/727 +f 2111/2488/722 2141/2497/728 2142/2498/729 +f 2109/2491/724 2139/2502/725 2140/2499/730 +f 2135/2496/727 2143/2505/559 2145/2500/549 +f 2141/2497/728 2149/2507/561 2150/2501/560 +f 2139/2502/725 2147/2920/562 2148/2503/557 +f 2137/2459/694 2145/2500/549 2146/2504/558 +f 2136/2495/726 2144/2506/556 2143/2505/559 +f 2142/2498/729 2150/2501/560 2144/2506/556 +f 2140/2499/730 2148/2503/557 2149/2507/561 +f 2154/2508/731 2153/2532/754 2183/2509/732 +f 2159/2511/734 2166/2521/744 2167/2512/735 +f 2167/2512/735 2168/2524/747 2161/2514/737 +f 2161/2514/737 2168/2524/747 2169/2515/738 +f 2163/2517/740 2171/2527/750 2172/2518/741 +f 2172/2518/741 2173/2529/752 2165/2520/743 +f 2165/2520/743 2173/2529/752 2166/2521/744 +f 2166/2521/744 2174/2921/937 2175/2522/745 +f 2167/2512/735 2175/2522/745 2176/2523/746 +f 2168/2524/747 2176/2523/746 2177/2525/748 +f 2178/2526/749 2179/2537/759 2172/2518/741 +f 2172/2518/741 2179/2537/759 2180/2528/751 +f 2180/2528/751 2174/2921/937 2166/2521/744 +f 2177/2525/748 2176/2523/746 2153/2532/754 +f 2176/2523/746 2175/2522/745 2152/2533/755 +f 2175/2522/745 2174/2921/937 2151/2534/756 +f 2151/2534/756 2174/2921/937 2180/2528/751 +f 2180/2528/751 2179/2537/759 2157/2536/758 +f 2179/2537/759 2178/2526/749 2156/2538/760 +f 2156/2538/760 2178/2526/749 2170/2539/753 +f 2155/2541/761 2170/2922/753 2177/2525/748 +f 2184/2510/733 2192/2553/560 2193/2542/556 +f 2152/2533/755 2151/2534/756 2182/2544/763 +f 2158/2535/757 2188/2547/766 2182/2544/763 +f 2156/2538/760 2186/2548/767 2187/2546/765 +f 2155/2541/761 2154/2508/731 2184/2510/733 +f 2153/2532/754 2152/2533/755 2181/2545/764 +f 2157/2536/758 2187/2546/765 2188/2547/766 +f 2155/2540/761 2185/2551/762 2186/2548/767 +f 2181/2545/764 2189/2554/557 2191/2549/561 +f 2187/2546/765 2195/2556/549 2196/2550/558 +f 2185/2551/762 2193/2923/556 2194/2552/559 +f 2183/2509/732 2191/2549/561 2192/2553/560 +f 2182/2544/763 2190/2555/562 2189/2554/557 +f 2188/2547/766 2196/2550/558 2190/2555/562 +f 2186/2548/767 2194/2552/559 2195/2556/549 +f 2200/2557/768 2199/2582/792 2229/2558/769 +f 2205/2560/771 2212/2571/782 2213/2561/772 +f 2213/2561/772 2214/2564/775 2207/2563/774 +f 2214/2564/775 2215/2574/785 2208/2565/776 +f 2209/2566/777 2217/2576/787 2218/2567/778 +f 2218/2567/778 2219/2570/781 2211/2569/780 +f 2219/2570/781 2212/2571/782 2205/2560/771 +f 2212/2571/782 2220/2578/789 2221/2572/783 +f 2221/2572/783 2222/2573/784 2214/2564/775 +f 2222/2573/784 2223/2581/791 2215/2574/785 +f 2224/2575/786 2225/2587/797 2218/2567/778 +f 2218/2567/778 2225/2587/797 2226/2577/788 +f 2219/2570/781 2226/2577/788 2220/2578/789 +f 2223/2581/791 2222/2573/784 2199/2582/792 +f 2222/2573/784 2221/2572/783 2198/2583/793 +f 2221/2572/783 2220/2578/789 2197/2584/794 +f 2197/2584/794 2220/2578/789 2226/2577/788 +f 2226/2577/788 2225/2587/797 2203/2586/796 +f 2225/2587/797 2224/2575/786 2202/2588/798 +f 2202/2588/798 2224/2575/786 2216/2589/790 +f 2201/2591/799 2216/2924/790 2223/2581/791 +f 2230/2559/770 2238/2603/549 2239/2592/558 +f 2198/2583/793 2197/2584/794 2228/2594/801 +f 2204/2585/795 2234/2597/804 2228/2594/801 +f 2202/2588/798 2232/2598/805 2233/2596/803 +f 2201/2591/799 2200/2557/768 2230/2559/770 +f 2199/2582/792 2198/2583/793 2227/2595/802 +f 2203/2586/796 2233/2596/803 2234/2597/804 +f 2201/2590/799 2231/2601/800 2232/2598/805 +f 2227/2595/802 2235/2604/556 2237/2599/559 +f 2233/2596/803 2241/2606/557 2242/2600/561 +f 2231/2601/800 2239/2925/558 2240/2602/562 +f 2229/2558/769 2237/2599/559 2238/2603/549 +f 2228/2594/801 2236/2605/560 2235/2604/556 +f 2234/2597/804 2242/2600/561 2236/2605/560 +f 2232/2598/805 2240/2602/562 2241/2606/557 +f 2246/2607/806 2245/2632/830 2275/2608/807 +f 2251/2610/809 2258/2620/819 2259/2611/810 +f 2259/2611/810 2260/2614/813 2253/2613/812 +f 2260/2614/813 2261/2623/822 2254/2615/814 +f 2255/2616/815 2263/2625/824 2264/2617/816 +f 2264/2617/816 2265/2627/826 2257/2619/818 +f 2257/2619/818 2265/2627/826 2258/2620/819 +f 2258/2620/819 2266/2628/827 2267/2621/820 +f 2259/2611/810 2267/2621/820 2268/2622/821 +f 2268/2622/821 2269/2631/829 2261/2623/822 +f 2270/2624/823 2271/2637/835 2264/2617/816 +f 2264/2617/816 2271/2637/835 2272/2626/825 +f 2265/2627/826 2272/2626/825 2266/2628/827 +f 2269/2631/829 2268/2622/821 2245/2632/830 +f 2268/2622/821 2267/2621/820 2244/2633/831 +f 2267/2621/820 2266/2628/827 2243/2634/832 +f 2243/2634/832 2266/2628/827 2272/2626/825 +f 2272/2626/825 2271/2637/835 2249/2636/834 +f 2271/2637/835 2270/2624/823 2248/2638/836 +f 2248/2638/836 2270/2624/823 2262/2639/828 +f 2247/2641/837 2262/2926/828 2269/2631/829 +f 2276/2609/808 2284/2653/561 2285/2642/560 +f 2244/2633/831 2243/2634/832 2274/2644/839 +f 2250/2635/833 2280/2647/842 2274/2644/839 +f 2248/2638/836 2278/2648/843 2279/2646/841 +f 2247/2641/837 2246/2607/806 2276/2609/808 +f 2245/2632/830 2244/2633/831 2273/2645/840 +f 2249/2636/834 2279/2646/841 2280/2647/842 +f 2247/2640/837 2277/2651/838 2278/2648/843 +f 2273/2645/840 2281/2654/562 2283/2649/557 +f 2279/2646/841 2287/2656/559 2288/2650/549 +f 2277/2651/838 2285/2927/560 2286/2652/556 +f 2275/2608/807 2283/2649/557 2284/2653/561 +f 2274/2644/839 2282/2655/558 2281/2654/562 +f 2280/2647/842 2288/2650/549 2282/2655/558 +f 2278/2648/843 2286/2652/556 2287/2656/559 +f 2292/2657/844 2291/2683/869 2321/2658/845 +f 2297/2660/847 2304/2672/859 2305/2661/848 +f 2305/2661/848 2306/2664/851 2299/2663/850 +f 2306/2664/851 2307/2675/862 2300/2665/852 +f 2301/2666/853 2309/2677/864 2310/2667/854 +f 2310/2667/854 2311/2670/857 2303/2669/856 +f 2311/2670/857 2304/2672/859 2297/2660/847 +f 2312/2671/858 2313/2673/860 2305/2661/848 +f 2313/2673/860 2314/2674/861 2306/2664/851 +f 2314/2674/861 2315/2682/868 2307/2675/862 +f 2316/2676/863 2317/2678/865 2310/2667/854 +f 2317/2678/865 2318/2679/866 2311/2670/857 +f 2318/2679/866 2312/2671/858 2304/2672/859 +f 2315/2682/868 2314/2674/861 2291/2683/869 +f 2314/2674/861 2313/2673/860 2290/2684/870 +f 2313/2673/860 2312/2671/858 2289/2685/871 +f 2289/2685/871 2312/2671/858 2318/2679/866 +f 2318/2679/866 2317/2678/865 2295/2687/873 +f 2317/2678/865 2316/2676/863 2294/2688/874 +f 2294/2688/874 2316/2676/863 2308/2689/867 +f 2293/2691/875 2308/2928/867 2315/2682/868 +f 2322/2659/846 2330/2703/562 2331/2692/557 +f 2290/2684/870 2289/2685/871 2320/2694/877 +f 2296/2686/872 2326/2697/880 2320/2694/877 +f 2294/2688/874 2324/2698/881 2325/2696/879 +f 2293/2691/875 2292/2657/844 2322/2659/846 +f 2291/2683/869 2290/2684/870 2319/2695/878 +f 2295/2687/873 2325/2696/879 2326/2697/880 +f 2293/2690/875 2323/2701/876 2324/2698/881 +f 2319/2695/878 2327/2705/549 2329/2699/558 +f 2325/2696/879 2333/2706/560 2334/2700/556 +f 2323/2701/876 2331/2929/557 2332/2702/561 +f 2321/2658/845 2329/2699/558 2330/2703/562 +f 2319/2695/878 2320/2694/877 2328/2704/559 +f 2326/2697/880 2334/2700/556 2328/2704/559 +f 2324/2698/881 2332/2702/561 2333/2706/560 +f 2338/2707/882 2337/2732/906 2367/2708/883 +f 2350/2710/885 2351/2713/888 2344/2711/886 +f 2351/2713/888 2352/2722/897 2345/2714/889 +f 2345/2714/889 2352/2722/897 2353/2715/890 +f 2347/2717/892 2355/2725/900 2356/2718/893 +f 2356/2718/893 2357/2727/902 2349/2720/895 +f 2349/2720/895 2357/2727/902 2350/2710/885 +f 2350/2710/885 2358/2728/903 2359/2721/896 +f 2359/2721/896 2360/2723/898 2352/2722/897 +f 2360/2723/898 2361/2731/905 2353/2715/890 +f 2362/2724/899 2363/2737/911 2356/2718/893 +f 2356/2718/893 2363/2737/911 2364/2726/901 +f 2357/2727/902 2364/2726/901 2358/2728/903 +f 2361/2731/905 2360/2723/898 2337/2732/906 +f 2360/2723/898 2359/2721/896 2336/2733/907 +f 2359/2721/896 2358/2728/903 2335/2734/908 +f 2342/2735/909 2335/2734/908 2358/2728/903 +f 2364/2726/901 2363/2737/911 2341/2736/910 +f 2363/2737/911 2362/2724/899 2340/2738/912 +f 2340/2738/912 2362/2724/899 2354/2739/904 +f 2339/2741/913 2354/2930/904 2361/2731/905 +f 2369/2742/914 2368/2709/884 2376/2743/556 +f 2336/2733/907 2335/2734/908 2366/2745/915 +f 2342/2735/909 2372/2748/918 2366/2745/915 +f 2340/2738/912 2370/2749/919 2371/2747/917 +f 2339/2741/913 2338/2707/882 2368/2709/884 +f 2337/2732/906 2336/2733/907 2365/2746/916 +f 2341/2736/910 2371/2747/917 2372/2748/918 +f 2339/2740/913 2369/2752/914 2370/2749/919 +f 2365/2746/916 2373/2754/561 2375/2750/560 +f 2371/2747/917 2379/2756/558 2380/2751/562 +f 2369/2752/914 2377/2931/559 2378/2753/549 +f 2367/2708/883 2375/2750/560 2376/2743/556 +f 2366/2745/915 2374/2755/557 2373/2754/561 +f 2372/2748/918 2380/2751/562 2374/2755/557 +f 2370/2749/919 2378/2753/549 2379/2756/558 +f 2428/2757/557 2420/2807/557 2419/2758/562 +f 2427/2759/562 2419/2758/562 2413/2760/558 +f 2422/2762/549 2414/2806/549 2415/2763/559 +f 2424/2765/556 2416/2932/556 2417/2766/560 +f 2392/2768/562 2384/2933/562 2385/2769/558 +f 2390/2771/561 2382/2783/561 2383/2772/557 +f 2395/2774/556 2387/2778/556 2381/2775/560 +f 2396/2777/559 2388/2784/559 2387/2778/556 +f 2393/2770/558 2385/2769/558 2386/2779/549 +f 2391/2773/557 2383/2772/557 2384/2781/562 +f 2389/2776/560 2381/2775/560 2382/2783/561 +f 2394/2780/549 2386/2779/549 2388/2784/559 +f 2399/2785/559 2407/2795/559 2405/2786/556 +f 2404/2788/561 2412/2798/561 2411/2789/557 +f 2402/2791/562 2410/2799/562 2409/2792/558 +f 2400/2794/549 2408/2801/549 2407/2795/559 +f 2397/2787/556 2405/2786/556 2406/2796/560 +f 2398/2797/560 2406/2796/560 2412/2798/561 +f 2403/2790/557 2411/2789/557 2410/2799/562 +f 2401/2800/558 2409/2934/558 2408/2801/549 +f 2425/2767/560 2417/2766/560 2418/2802/561 +f 2423/2764/559 2415/2763/559 2416/2804/556 +f 2421/2761/558 2413/2760/558 2414/2806/549 +f 2426/2803/561 2418/2802/561 2420/2807/557 +f 2431/2808/557 2439/2818/557 2437/2809/562 +f 2436/2811/549 2444/2821/549 2443/2812/559 +f 2434/2814/556 2442/2822/556 2441/2815/560 +f 2432/2817/561 2440/2824/561 2439/2818/557 +f 2429/2810/562 2437/2809/562 2438/2819/558 +f 2430/2820/558 2438/2819/558 2444/2821/549 +f 2435/2813/559 2443/2812/559 2442/2822/556 +f 2433/2823/560 2441/2935/560 2440/2824/561 +f 2456/2825/920 2472/2857/920 2471/2826/921 +f 2454/2828/922 2455/2827/921 2471/2826/921 +f 2454/2828/922 2470/2829/922 2469/2830/923 +f 2453/2832/923 2469/2936/923 2468/2833/924 +f 2452/2834/924 2468/2833/924 2467/2835/925 +f 2451/2836/925 2467/2835/925 2466/2837/926 +f 2450/2838/926 2466/2837/926 2465/2839/927 +f 2448/2841/928 2449/2840/927 2465/2839/927 +f 2448/2841/928 2464/2842/928 2463/2843/929 +f 2447/2844/929 2463/2843/929 2462/2845/930 +f 2446/2846/930 2462/2845/930 2461/2847/931 +f 2445/2848/931 2461/2847/931 2476/2849/932 +f 2459/2851/933 2460/2850/932 2476/2849/932 +f 2459/2851/933 2475/2852/933 2474/2853/934 +f 2457/2855/935 2458/2854/934 2474/2853/934 +f 2457/2855/935 2473/2856/935 2472/2857/920 +f 2527/2858/480 2543/2865/480 2542/2859/481 +f 2535/2861/424 2551/2867/424 2550/2862/477 +f 2528/2864/479 2544/2869/479 2543/2865/480 +f 2536/2866/475 2552/2871/475 2551/2867/424 +f 2529/2868/415 2545/2873/415 2544/2869/479 +f 2537/2870/414 2553/2875/414 2552/2871/475 +f 2530/2872/478 2546/2877/478 2545/2873/415 +f 2538/2874/484 2554/2879/484 2553/2875/414 +f 2531/2876/425 2547/2881/425 2546/2877/478 +f 2539/2878/483 2555/2883/483 2554/2879/484 +f 2532/2880/476 2548/2885/476 2547/2881/425 +f 2540/2882/482 2556/2888/482 2555/2883/483 +f 2533/2884/413 2549/2937/413 2548/2885/476 +f 2526/2860/481 2542/2859/481 2541/2886/412 +f 2525/2887/412 2541/2886/412 2556/2888/482 +f 2534/2863/477 2550/2862/477 2549/2889/413 diff --git a/src/main/resources/assets/hbm/models/oilFlare.obj b/src/main/resources/assets/hbm/models/oilFlare.obj deleted file mode 100644 index 1ccf29389..000000000 --- a/src/main/resources/assets/hbm/models/oilFlare.obj +++ /dev/null @@ -1,895 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'oilFlare.blend' -# www.blender.org -o Plane -v -1.000000 10.000000 1.000000 -v 1.000000 10.000000 1.000000 -v -1.000000 10.000000 -1.000000 -v 1.000000 10.000000 -1.000000 -v 0.785714 10.000000 0.785714 -v 1.000000 10.000000 0.785714 -v 0.785714 10.000000 1.000000 -v -0.785714 10.000000 0.785714 -v -0.785714 10.000000 1.000000 -v -1.000000 10.000000 0.785714 -v -0.785714 10.000000 -0.785714 -v -1.000000 10.000000 -0.785714 -v -0.785714 10.000000 -1.000000 -v 0.785714 10.000000 -0.785714 -v 0.785714 10.000000 -1.000000 -v 1.000000 10.000000 -0.785714 -v -1.000000 -0.000000 0.785714 -v -1.000000 -0.000000 1.000000 -v 0.785714 -0.000001 -1.000000 -v 0.785714 -0.000001 -0.785714 -v 0.785714 -0.000001 0.785714 -v 1.000000 -0.000001 0.785714 -v -0.785714 -0.000000 -1.000000 -v -1.000000 -0.000000 -1.000000 -v 1.000000 -0.000001 -1.000000 -v 1.000000 -0.000001 -0.785714 -v -0.785714 -0.000000 0.785714 -v -0.785714 -0.000000 1.000000 -v -0.785714 -0.000000 -0.785714 -v -1.000000 -0.000000 -0.785714 -v 1.000000 -0.000001 1.000000 -v 0.785714 -0.000001 1.000000 -v 0.785714 2.499999 -0.785714 -v 1.000000 2.499999 -0.785714 -v 0.785714 2.499999 -1.000000 -v 0.785714 5.000000 -0.785714 -v 0.785714 5.000000 -1.000000 -v 1.000000 5.000000 -0.785714 -v 1.000000 2.499999 0.785714 -v 0.785714 2.499999 0.785714 -v 0.785714 2.499999 1.000000 -v 0.785714 7.500000 -1.000000 -v 1.000000 7.500000 -0.785714 -v 0.785714 7.500000 1.000000 -v 0.785714 7.500000 0.785714 -v 0.785714 7.500000 -0.785714 -v 1.000000 7.500000 0.785714 -v 0.785714 5.000000 1.000000 -v 1.000000 5.000000 0.785714 -v 0.785714 5.000000 0.785714 -v -1.000000 5.000000 -0.785714 -v -0.785714 5.000000 -0.785714 -v -0.785714 5.000000 -1.000000 -v -0.785714 7.500000 -0.785714 -v -1.000000 7.500000 -0.785714 -v -0.785714 7.500000 -1.000000 -v -1.000000 2.500000 -0.785714 -v -0.785714 2.500000 -1.000000 -v -0.785714 2.500000 -0.785714 -v -0.785714 5.000000 0.785714 -v -1.000000 5.000000 0.785714 -v -0.785714 5.000000 1.000000 -v -0.785714 2.500000 0.785714 -v -0.785714 2.500000 1.000000 -v -1.000000 2.500000 0.785714 -v -1.000000 2.500000 -1.000000 -v -1.000000 5.000000 -1.000000 -v -1.000000 7.500000 -1.000000 -v -1.000000 7.500000 0.785714 -v -0.785714 7.500000 0.785714 -v -0.785714 7.500000 1.000000 -v 1.000000 7.500000 1.000000 -v 1.000000 4.999417 1.000000 -v 1.000000 2.500000 1.000000 -v -1.000000 2.500000 1.000000 -v -1.000000 5.000000 1.000000 -v -1.000000 7.500000 1.000000 -v 1.000000 2.499999 -1.000000 -v 1.000000 4.999416 -1.000000 -v 1.000000 7.499999 -1.000000 -v 1.500000 5.000000 -1.500000 -v 1.500000 5.000000 1.500000 -v -1.500000 5.000000 1.500000 -v -1.500000 5.000000 -1.500000 -v 1.500000 10.000000 -1.500000 -v 1.500000 10.000000 1.500000 -v -1.500000 10.000000 1.500000 -v -1.500000 10.000000 -1.500000 -v 0.530330 2.000000 -0.530330 -v -0.000000 2.000000 -0.750000 -v 0.000000 2.000000 -0.250000 -v 0.000000 10.000000 -0.250000 -v 0.176777 2.000000 -0.176777 -v 0.176777 10.000000 -0.176777 -v 0.250000 2.000000 0.000000 -v 0.250000 10.000000 0.000000 -v 0.176777 2.000000 0.176777 -v 0.176777 10.000000 0.176777 -v -0.000000 2.000000 0.250000 -v -0.000000 10.000000 0.250000 -v -0.176777 2.000000 0.176777 -v -0.176777 10.000000 0.176777 -v -0.250000 2.000000 -0.000000 -v -0.250000 10.000000 -0.000000 -v -0.176777 2.000000 -0.176777 -v -0.176777 10.000000 -0.176777 -v 0.750000 2.000000 0.000000 -v 0.530330 2.000000 0.530330 -v -0.000000 2.000000 0.750000 -v -0.530330 2.000000 0.530330 -v -0.750000 2.000000 -0.000000 -v -0.530330 2.000000 -0.530330 -v -0.530330 0.000000 -0.530330 -v -0.000000 0.000000 -0.750000 -v -0.750000 0.000000 -0.000000 -v -0.530330 0.000000 0.530330 -v -0.000000 0.000000 0.750000 -v 0.530330 0.000000 0.530330 -v 0.750000 0.000000 0.000000 -v 0.530330 0.000000 -0.530330 -v -0.785714 5.000000 -0.000000 -v 0.000000 5.000000 -0.785714 -v 0.785714 5.000000 -0.000000 -v 0.000000 5.000000 0.785714 -v 0.000000 5.000000 -0.250000 -v 0.176777 5.000000 -0.176777 -v 0.250000 5.000000 0.000000 -v 0.176777 5.000000 0.176777 -v -0.000000 5.000000 0.250000 -v -0.176777 5.000000 0.176777 -v -0.250000 5.000000 -0.000000 -v -0.176777 5.000000 -0.176777 -v 0.176776 10.250000 -0.176777 -v -0.000000 10.250000 -0.250000 -v 0.250000 10.250000 0.000000 -v 0.176776 10.250000 0.176777 -v -0.000000 10.250000 0.250000 -v -0.176777 10.250000 0.176777 -v -0.250000 10.250000 -0.000000 -v -0.176777 10.250000 -0.176777 -v 0.353553 10.250000 -0.353553 -v -0.000000 10.250000 -0.500000 -v 0.500000 10.250000 0.000000 -v 0.353553 10.250000 0.353553 -v -0.000000 10.250000 0.500000 -v -0.353554 10.250000 0.353553 -v -0.500000 10.250000 -0.000000 -v -0.353554 10.250000 -0.353553 -v 0.353553 11.500000 -0.353553 -v -0.000000 11.500000 -0.500000 -v 0.500000 11.500000 0.000000 -v 0.353553 11.500000 0.353553 -v -0.000000 11.500000 0.500000 -v -0.353554 11.500000 0.353553 -v -0.500000 11.500000 -0.000000 -v -0.353554 11.500000 -0.353553 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 0.353553 10.500002 -0.353553 -v -0.000000 10.500002 -0.500000 -v 0.500000 10.500002 0.000000 -v 0.353553 10.500002 0.353553 -v -0.000000 10.500002 0.500000 -v -0.353554 10.500002 0.353553 -v -0.500000 10.500002 -0.000000 -v -0.353554 10.500002 -0.353553 -v 0.785714 10.000000 -0.000000 -v 0.000000 10.000000 -0.785714 -v 0.000000 10.000000 0.785714 -v -0.785714 10.000000 -0.000000 -vt 0.397379 0.676621 -vt 0.397379 0.659785 -vt 0.414215 0.659785 -vt 0.414215 0.676621 -vt 0.508956 0.682773 -vt 0.492119 0.682773 -vt 0.492119 0.665937 -vt 0.259282 0.481688 -vt 0.276118 0.481688 -vt 0.276118 0.678115 -vt 0.159765 0.487474 -vt 0.159766 0.683901 -vt 0.142929 0.683901 -vt 0.176602 0.683901 -vt 0.176602 0.487474 -vt 0.193439 0.487474 -vt 0.126092 0.683901 -vt 0.126092 0.487474 -vt 0.142929 0.487474 -vt 0.951130 0.419382 -vt 0.934293 0.419382 -vt 0.934293 0.187374 -vt 0.951130 0.187374 -vt 0.259282 0.678115 -vt 0.242445 0.678115 -vt 0.193439 0.683924 -vt 0.292955 0.481688 -vt 0.309792 0.481688 -vt 0.309792 0.678115 -vt 0.890550 0.895409 -vt 0.873714 0.895409 -vt 0.873714 0.663401 -vt 0.890550 0.663401 -vt 0.292955 0.678115 -vt 0.242445 0.481688 -vt 0.570884 0.348475 -vt 0.509150 0.365312 -vt 0.447416 0.348475 -vt 0.570884 0.427046 -vt 0.570884 0.365312 -vt 0.587721 0.365312 -vt 0.447416 0.505617 -vt 0.509150 0.488781 -vt 0.570884 0.505617 -vt 0.430579 0.365312 -vt 0.447416 0.427046 -vt 0.430579 0.488781 -vt 0.823073 0.955128 -vt 0.699604 0.955128 -vt 0.699604 0.938291 -vt 0.823073 0.938291 -vt 0.509151 0.488780 -vt 0.627007 0.309189 -vt 0.587721 0.488780 -vt 0.391293 0.309189 -vt 0.391293 0.544904 -vt 0.627007 0.544903 -vt 0.150959 0.194056 -vt 0.135925 0.157761 -vt 0.181027 0.157761 -vt 0.690955 0.644624 -vt 0.705989 0.644624 -vt 0.705989 0.880337 -vt 0.286264 0.194056 -vt 0.271230 0.157761 -vt 0.316332 0.157761 -vt 0.721023 0.644624 -vt 0.721023 0.880337 -vt 0.015654 0.194057 -vt 0.000620 0.157761 -vt 0.045721 0.157761 -vt 0.736057 0.644624 -vt 0.736057 0.880337 -vt 0.196060 0.194056 -vt 0.226128 0.157761 -vt 0.751091 0.644624 -vt 0.751091 0.880337 -vt 0.241162 0.194056 -vt 0.766125 0.644624 -vt 0.766125 0.880337 -vt 0.105857 0.194056 -vt 0.090823 0.157761 -vt 0.316332 0.000619 -vt 0.361434 0.000619 -vt 0.781159 0.644624 -vt 0.781159 0.880337 -vt 0.560809 0.260328 -vt 0.560809 0.240685 -vt 0.575842 0.240685 -vt 0.796193 0.644624 -vt 0.796193 0.880337 -vt 0.811227 0.644624 -vt 0.811227 0.880337 -vt 0.331366 0.194056 -vt 0.361434 0.157761 -vt 0.060755 0.194057 -vt 0.910214 0.111717 -vt 0.833220 0.143609 -vt 0.801328 0.066615 -vt 0.045721 0.000619 -vt 0.090823 0.000619 -vt 0.226128 0.000619 -vt 0.271230 0.000619 -vt 0.135925 0.000619 -vt 0.181026 0.000619 -vt 0.000619 0.000620 -vt 0.790588 0.620702 -vt 0.775554 0.620702 -vt 0.775553 0.227849 -vt 0.760519 0.227849 -vt 0.745486 0.227849 -vt 0.760520 0.620702 -vt 0.730452 0.227849 -vt 0.745486 0.620702 -vt 0.715418 0.227849 -vt 0.730451 0.620702 -vt 0.715417 0.620702 -vt 0.700383 0.620702 -vt 0.700384 0.227849 -vt 0.685350 0.620702 -vt 0.685350 0.227849 -vt 0.805622 0.620702 -vt 0.790588 0.227849 -vt 0.447416 0.365311 -vt 0.495261 0.413156 -vt 0.489507 0.427046 -vt 0.495261 0.440935 -vt 0.447416 0.488781 -vt 0.509150 0.446689 -vt 0.523040 0.440935 -vt 0.528793 0.427046 -vt 0.523040 0.413156 -vt 0.509150 0.407403 -vt 0.645304 0.053326 -vt 0.652821 0.071474 -vt 0.622753 0.071474 -vt 0.515707 0.260328 -vt 0.515707 0.240685 -vt 0.530741 0.240685 -vt 0.575842 0.260328 -vt 0.590876 0.240685 -vt 0.500673 0.260328 -vt 0.500673 0.240685 -vt 0.530741 0.260328 -vt 0.545775 0.240685 -vt 0.470605 0.260328 -vt 0.470605 0.240685 -vt 0.485639 0.240685 -vt 0.545775 0.260328 -vt 0.485639 0.260328 -vt 0.502482 0.071474 -vt 0.502482 0.169687 -vt 0.472414 0.169687 -vt 0.449863 0.053326 -vt 0.464897 0.053326 -vt 0.472414 0.071474 -vt 0.525033 0.053326 -vt 0.532550 0.071474 -vt 0.585168 0.053326 -vt 0.592685 0.071474 -vt 0.562617 0.071474 -vt 0.615236 0.053326 -vt 0.434829 0.053326 -vt 0.442346 0.071474 -vt 0.412278 0.071474 -vt 0.479931 0.053326 -vt 0.494965 0.053326 -vt 0.540067 0.053326 -vt 0.555101 0.053326 -vt 0.570884 0.488781 -vt 0.562617 0.169687 -vt 0.532550 0.169687 -vt 0.652821 0.169687 -vt 0.622753 0.169687 -vt 0.442346 0.169687 -vt 0.592685 0.169687 -vt 0.412278 0.169687 -vt 0.303414 0.349532 -vt 0.303414 0.374085 -vt 0.067700 0.374085 -vt 0.327967 0.398639 -vt 0.303414 0.398639 -vt 0.067700 0.324979 -vt 0.067700 0.300425 -vt 0.303414 0.300425 -vt 0.043147 0.374085 -vt 0.067700 0.398638 -vt 0.303414 0.324978 -vt 0.067700 0.349532 -vt 0.692864 0.104440 -vt 0.714125 0.053111 -vt 0.744193 0.125701 -vt 0.508956 0.665937 -vt 0.587721 0.505616 -vt 0.587721 0.348475 -vt 0.430579 0.348475 -vt 0.430579 0.505618 -vt 0.165993 0.194056 -vt 0.690955 0.880337 -vt 0.301298 0.194056 -vt 0.030687 0.194057 -vt 0.211094 0.194056 -vt 0.256196 0.194056 -vt 0.120891 0.194056 -vt 0.346400 0.194056 -vt 0.075789 0.194057 -vt 0.833220 0.034724 -vt 0.878322 0.034724 -vt 0.910214 0.066615 -vt 0.878322 0.143609 -vt 0.801328 0.111717 -vt 0.805622 0.227849 -vt 0.630270 0.053326 -vt 0.590877 0.260328 -vt 0.509999 0.053326 -vt 0.570134 0.053326 -vt 0.600202 0.053326 -vt 0.419795 0.053326 -vt 0.327967 0.374085 -vt 0.043147 0.398638 -vt 0.765454 0.074372 -vt 0.765454 0.104440 -vt 0.714125 0.125701 -vt 0.692864 0.074372 -vt 0.744193 0.053111 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.532200 0.846600 -vn 0.000000 0.532200 -0.846600 -vn -1.000000 0.000000 0.000000 -vn -0.846600 0.532200 0.000000 -vn 0.846600 0.532200 0.000000 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 0.923900 -vn 0.382700 0.000000 0.923900 -vn 0.923900 0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.382700 0.000000 -0.923900 -vn -0.003900 1.000000 -0.002700 -vn -0.003900 1.000000 0.002700 -vn 0.002700 1.000000 -0.003900 -vn 0.002700 1.000000 0.003900 -s off -f 7/1/1 2/2/1 6/3/1 -f 1/4/1 9/1/1 8/2/1 -f 12/1/1 11/2/1 13/3/1 -f 14/4/1 16/1/1 4/2/1 -f 25/5/2 26/6/2 20/7/2 -f 27/5/2 28/6/2 18/7/2 -f 23/5/2 29/6/2 30/7/2 -f 22/5/2 31/6/2 32/7/2 -f 56/8/3 68/9/3 3/10/3 -f 67/11/3 68/12/3 56/13/3 -f 57/14/4 30/15/4 29/16/4 -f 59/17/5 29/18/5 23/19/5 -f 34/20/6 33/21/6 21/22/6 -f 26/22/7 20/23/7 40/20/7 -f 41/8/8 48/24/8 50/25/8 -f 50/18/8 48/19/8 44/13/8 -f 50/16/3 45/26/3 47/14/3 -f 47/27/3 45/28/3 5/29/3 -f 44/8/8 7/24/8 5/25/8 -f 38/30/6 36/31/6 40/32/6 -f 33/33/7 50/30/7 49/31/7 -f 49/23/6 43/20/6 46/21/6 -f 47/33/6 16/30/6 14/31/6 -f 36/23/7 45/20/7 47/21/7 -f 5/30/7 6/31/7 43/32/7 -f 54/17/5 52/18/5 53/19/5 -f 55/14/4 51/15/4 52/16/4 -f 12/34/4 55/27/4 54/28/4 -f 11/25/5 54/35/5 56/8/5 -f 52/25/5 59/35/5 58/8/5 -f 51/34/4 57/27/4 59/28/4 -f 66/9/3 67/10/3 53/24/3 -f 58/13/3 23/19/3 24/11/3 -f 64/14/5 28/15/5 27/16/5 -f 63/28/5 60/29/5 62/34/5 -f 60/16/5 70/26/5 71/14/5 -f 9/34/5 71/27/5 70/28/5 -f 10/24/3 8/25/3 70/35/3 -f 70/17/3 60/18/3 61/19/3 -f 61/24/3 60/25/3 63/35/3 -f 27/18/3 17/19/3 65/13/3 -f 54/33/9 14/30/9 15/31/9 -f 52/23/9 46/20/9 42/21/9 -f 58/32/9 59/33/9 36/30/9 -f 33/20/9 35/21/9 23/22/9 -f 20/22/10 19/23/10 58/20/10 -f 52/31/10 33/32/10 35/33/10 -f 36/22/10 37/23/10 56/20/10 -f 11/30/10 46/33/10 42/32/10 -f 7/30/9 5/31/9 70/32/9 -f 62/23/9 44/20/9 45/21/9 -f 63/32/9 64/33/9 48/30/9 -f 40/21/9 27/22/9 28/23/9 -f 32/22/10 21/23/10 63/20/10 -f 41/32/10 40/33/10 60/30/10 -f 71/20/10 48/23/10 50/22/10 -f 45/33/10 8/30/10 9/31/10 -f 10/30/7 8/31/7 54/32/7 -f 70/33/6 11/30/6 12/31/6 -f 70/21/7 52/22/7 51/23/7 -f 52/30/6 51/31/6 65/32/6 -f 65/20/7 63/21/7 29/22/7 -f 59/20/6 57/21/6 17/22/6 -f 61/30/7 60/31/7 59/32/7 -f 60/23/6 54/20/6 55/21/6 -f 40/28/3 50/29/3 49/34/3 -f 40/17/8 21/18/8 32/19/8 -f 21/16/3 40/26/3 39/14/3 -f 33/17/4 20/18/4 26/19/4 -f 19/15/8 20/16/8 33/26/8 -f 38/24/4 36/25/4 33/35/4 -f 35/27/8 33/28/8 36/29/8 -f 38/19/4 43/13/4 46/17/4 -f 37/15/8 36/16/8 46/26/8 -f 16/24/4 14/25/4 46/35/4 -f 42/27/8 46/28/8 14/29/8 -f 7/36/1 183/37/1 9/38/1 -f 181/39/1 5/40/1 6/41/1 -f 13/42/1 182/43/1 15/44/1 -f 10/45/1 184/46/1 12/47/1 -f 40/48/1 63/49/1 64/50/1 -f 33/48/1 40/49/1 39/50/1 -f 59/51/1 57/48/1 65/49/1 -f 59/50/1 33/51/1 35/48/1 -f 53/42/1 122/52/1 37/44/1 -f 48/36/1 50/40/1 124/37/1 -f 121/46/1 51/47/1 61/45/1 -f 123/39/1 50/40/1 49/41/1 -f 70/50/1 54/51/1 55/48/1 -f 71/50/1 44/51/1 45/48/1 -f 46/51/1 42/48/1 56/49/1 -f 47/50/1 43/51/1 46/48/1 -f 72/9/4 2/10/4 7/24/4 -f 72/9/5 47/27/5 6/34/5 -f 41/13/4 32/19/4 31/11/4 -f 73/10/4 48/24/4 41/8/4 -f 48/19/4 73/11/4 72/12/4 -f 31/11/5 22/15/5 39/14/5 -f 39/27/5 49/34/5 73/10/5 -f 49/15/5 47/14/5 72/12/5 -f 68/9/8 55/27/8 12/34/8 -f 55/14/8 68/12/8 67/11/8 -f 51/34/8 67/10/8 66/9/8 -f 30/15/8 57/14/8 66/12/8 -f 65/13/8 17/19/8 18/11/8 -f 76/10/8 61/24/8 65/8/8 -f 69/13/8 61/19/8 76/11/8 -f 69/8/8 77/9/8 1/10/8 -f 28/15/4 64/14/4 75/12/4 -f 62/34/4 76/10/4 75/9/4 -f 71/14/4 77/12/4 76/11/4 -f 77/9/4 71/27/4 9/34/4 -f 4/10/5 16/24/5 43/8/5 -f 80/12/5 43/13/5 38/19/5 -f 79/10/5 38/24/5 34/8/5 -f 26/19/5 25/11/5 78/12/5 -f 19/15/3 35/14/3 78/12/3 -f 79/10/3 78/9/3 35/27/3 -f 80/12/3 79/11/3 37/15/3 -f 4/10/3 80/9/3 42/27/3 -f 49/41/1 82/53/1 38/54/1 -f 48/36/1 83/55/1 82/53/1 -f 53/42/1 37/44/1 84/56/1 -f 51/47/1 83/55/1 61/45/1 -f 88/56/1 87/55/1 10/45/1 -f 85/57/1 88/56/1 13/42/1 -f 86/53/1 85/57/1 16/54/1 -f 87/55/1 86/53/1 7/36/1 -f 97/58/1 108/59/1 107/60/1 -f 103/61/11 101/62/11 130/63/11 -f 91/64/1 90/65/1 112/66/1 -f 101/62/12 99/67/12 129/68/12 -f 103/69/1 111/70/1 110/71/1 -f 97/72/13 128/73/13 129/68/13 -f 95/74/1 107/60/1 89/75/1 -f 95/76/14 127/77/14 128/73/14 -f 93/78/1 89/75/1 90/65/1 -f 93/79/15 126/80/15 127/77/15 -f 99/81/1 109/82/1 108/59/1 -f 112/66/16 113/83/16 115/84/16 -f 91/85/17 125/86/17 126/80/17 -f 100/87/12 137/88/12 138/89/12 -f 91/85/18 105/90/18 132/91/18 -f 105/90/16 103/92/16 131/93/16 -f 105/94/1 112/66/1 111/95/1 -f 101/96/1 110/71/1 109/82/1 -f 118/97/2 116/98/2 113/99/2 -f 110/71/12 116/100/12 117/101/12 -f 89/75/17 120/102/17 114/103/17 -f 109/82/13 117/101/13 118/104/13 -f 108/59/14 118/104/14 119/105/14 -f 90/65/18 114/103/18 113/83/18 -f 111/70/11 115/106/11 116/100/11 -f 107/60/15 119/105/15 120/102/15 -f 106/107/18 92/108/18 125/109/18 -f 126/110/17 125/109/17 92/108/17 -f 127/111/15 126/110/15 94/112/15 -f 128/113/14 127/111/14 96/114/14 -f 129/115/13 128/113/13 98/116/13 -f 100/117/12 102/118/12 130/119/12 -f 102/118/11 104/120/11 131/121/11 -f 104/122/16 106/107/16 132/123/16 -f 121/46/1 60/124/1 130/125/1 -f 121/46/1 131/126/1 132/127/1 -f 122/52/1 52/128/1 132/127/1 -f 122/52/1 125/129/1 126/130/1 -f 126/130/1 127/131/1 123/39/1 -f 123/39/1 127/131/1 128/132/1 -f 128/132/1 129/133/1 124/37/1 -f 124/37/1 129/133/1 130/125/1 -f 139/134/2 147/135/2 148/136/2 -f 94/137/15 133/138/15 135/139/15 -f 102/140/11 138/89/11 139/141/11 -f 92/142/17 134/143/17 133/138/17 -f 96/144/14 135/139/14 136/145/14 -f 104/146/16 139/147/16 140/148/16 -f 98/149/13 136/145/13 137/88/13 -f 106/150/18 140/148/18 134/143/18 -f 144/151/13 152/152/13 153/153/13 -f 138/154/2 137/155/2 145/156/2 -f 135/157/2 143/158/2 144/151/2 -f 134/159/2 142/160/2 141/161/2 -f 140/162/2 148/136/2 142/160/2 -f 138/163/2 146/164/2 147/165/2 -f 137/166/2 136/167/2 144/151/2 -f 135/168/2 133/169/2 141/161/2 -f 181/39/1 14/170/1 94/130/1 -f 141/161/15 149/171/15 151/172/15 -f 147/135/16 155/173/16 156/174/16 -f 145/156/12 153/153/12 154/175/12 -f 143/158/14 151/172/14 152/152/14 -f 142/160/17 150/176/17 149/171/17 -f 148/136/18 156/174/18 150/176/18 -f 146/164/11 154/175/11 155/177/11 -f 160/178/8 159/179/8 157/180/8 -f 164/181/3 163/182/3 159/179/3 -f 162/183/5 161/184/5 163/185/5 -f 158/186/4 157/180/4 161/187/4 -f 159/179/2 163/182/2 161/187/2 -f 164/188/1 160/178/1 158/189/1 -f 168/186/8 167/180/8 165/187/8 -f 172/178/3 171/179/3 167/180/3 -f 170/181/5 169/182/5 171/179/5 -f 166/183/4 165/184/4 169/185/4 -f 167/180/2 171/179/2 169/182/2 -f 172/178/1 168/189/1 166/183/1 -f 179/190/1 177/191/1 174/192/1 -f 98/132/1 5/40/1 181/39/1 -f 183/37/1 5/40/1 98/132/1 -f 183/37/1 100/133/1 102/125/1 -f 184/46/1 8/124/1 102/125/1 -f 184/46/1 104/126/1 106/127/1 -f 182/43/1 11/128/1 106/127/1 -f 182/43/1 92/129/1 94/130/1 -f 5/4/1 7/1/1 6/3/1 -f 10/3/1 1/4/1 8/2/1 -f 3/4/1 12/1/1 13/3/1 -f 15/3/1 14/4/1 4/2/1 -f 19/193/2 25/5/2 20/7/2 -f 17/193/2 27/5/2 18/7/2 -f 24/193/2 23/5/2 30/7/2 -f 21/193/2 22/5/2 32/7/2 -f 13/24/3 56/8/3 3/10/3 -f 53/19/3 67/11/3 56/13/3 -f 59/26/4 57/14/4 29/16/4 -f 58/13/5 59/17/5 23/19/5 -f 22/23/6 34/20/6 21/22/6 -f 39/21/7 26/22/7 40/20/7 -f 40/35/8 41/8/8 50/25/8 -f 45/17/8 50/18/8 44/13/8 -f 49/15/3 50/16/3 47/14/3 -f 6/34/3 47/27/3 5/29/3 -f 45/35/8 44/8/8 5/25/8 -f 39/33/6 38/30/6 40/32/6 -f 34/32/7 33/33/7 49/31/7 -f 50/22/6 49/23/6 46/21/6 -f 45/32/6 47/33/6 14/31/6 -f 38/22/7 36/23/7 47/21/7 -f 46/33/7 5/30/7 43/32/7 -f 56/13/5 54/17/5 53/19/5 -f 54/26/4 55/14/4 52/16/4 -f 11/29/4 12/34/4 54/28/4 -f 13/24/5 11/25/5 56/8/5 -f 53/24/5 52/25/5 58/8/5 -f 52/29/4 51/34/4 59/28/4 -f 58/8/3 66/9/3 53/24/3 -f 66/12/3 58/13/3 24/11/3 -f 63/26/5 64/14/5 27/16/5 -f 64/27/5 63/28/5 62/34/5 -f 62/15/5 60/16/5 71/14/5 -f 8/29/5 9/34/5 70/28/5 -f 69/8/3 10/24/3 70/35/3 -f 69/13/3 70/17/3 61/19/3 -f 65/8/3 61/24/3 63/35/3 -f 63/17/3 27/18/3 65/13/3 -f 56/32/9 54/33/9 15/31/9 -f 53/22/9 52/23/9 42/21/9 -f 37/31/9 58/32/9 36/30/9 -f 29/23/9 33/20/9 23/22/9 -f 59/21/10 20/22/10 58/20/10 -f 53/30/10 52/31/10 35/33/10 -f 54/21/10 36/22/10 56/20/10 -f 13/31/10 11/30/10 42/32/10 -f 71/33/9 7/30/9 70/32/9 -f 60/22/9 62/23/9 45/21/9 -f 50/31/9 63/32/9 48/30/9 -f 41/20/9 40/21/9 28/23/9 -f 64/21/10 32/22/10 63/20/10 -f 62/31/10 41/32/10 60/30/10 -f 70/21/10 71/20/10 50/22/10 -f 44/32/10 45/33/10 9/31/10 -f 55/33/7 10/30/7 54/32/7 -f 69/32/6 70/33/6 12/31/6 -f 69/20/7 70/21/7 51/23/7 -f 63/33/6 52/30/6 65/32/6 -f 30/23/7 65/20/7 29/22/7 -f 27/23/6 59/20/6 17/22/6 -f 57/33/7 61/30/7 59/32/7 -f 61/22/6 60/23/6 55/21/6 -f 39/27/3 40/28/3 49/34/3 -f 41/13/8 40/17/8 32/19/8 -f 22/15/3 21/16/3 39/14/3 -f 34/13/4 33/17/4 26/19/4 -f 35/14/8 19/15/8 33/26/8 -f 34/8/4 38/24/4 33/35/4 -f 37/34/8 35/27/8 36/29/8 -f 36/18/4 38/19/4 46/17/4 -f 42/14/8 37/15/8 46/26/8 -f 43/8/4 16/24/4 46/35/4 -f 15/34/8 42/27/8 14/29/8 -f 8/124/1 9/38/1 183/37/1 -f 7/36/1 5/40/1 183/37/1 -f 6/41/1 16/54/1 181/39/1 -f 14/170/1 181/39/1 16/54/1 -f 14/170/1 15/44/1 182/43/1 -f 13/42/1 11/128/1 182/43/1 -f 11/128/1 12/47/1 184/46/1 -f 10/45/1 8/124/1 184/46/1 -f 41/51/1 40/48/1 64/50/1 -f 34/51/1 33/48/1 39/50/1 -f 63/50/1 59/51/1 65/49/1 -f 58/49/1 59/50/1 35/48/1 -f 36/170/1 37/44/1 122/52/1 -f 53/42/1 52/128/1 122/52/1 -f 124/37/1 60/124/1 62/38/1 -f 62/38/1 48/36/1 124/37/1 -f 61/45/1 60/124/1 121/46/1 -f 121/46/1 52/128/1 51/47/1 -f 49/41/1 38/54/1 123/39/1 -f 36/170/1 123/39/1 38/54/1 -f 69/49/1 70/50/1 55/48/1 -f 70/49/1 71/50/1 45/48/1 -f 54/50/1 46/51/1 56/49/1 -f 45/49/1 47/50/1 46/48/1 -f 44/8/4 72/9/4 7/24/4 -f 2/10/5 72/9/5 6/34/5 -f 74/12/4 41/13/4 31/11/4 -f 74/9/4 73/10/4 41/8/4 -f 44/13/4 48/19/4 72/12/4 -f 74/12/5 31/11/5 39/14/5 -f 74/9/5 39/27/5 73/10/5 -f 73/11/5 49/15/5 72/12/5 -f 3/10/8 68/9/8 12/34/8 -f 51/15/8 55/14/8 67/11/8 -f 57/27/8 51/34/8 66/9/8 -f 24/11/8 30/15/8 66/12/8 -f 75/12/8 65/13/8 18/11/8 -f 75/9/8 76/10/8 65/8/8 -f 77/12/8 69/13/8 76/11/8 -f 10/24/8 69/8/8 1/10/8 -f 18/11/4 28/15/4 75/12/4 -f 64/27/4 62/34/4 75/9/4 -f 62/15/4 71/14/4 76/11/4 -f 1/10/4 77/9/4 9/34/4 -f 80/9/5 4/10/5 43/8/5 -f 79/11/5 80/12/5 38/19/5 -f 78/9/5 79/10/5 34/8/5 -f 34/13/5 26/19/5 78/12/5 -f 25/11/3 19/15/3 78/12/3 -f 37/34/3 79/10/3 35/27/3 -f 42/14/3 80/12/3 37/15/3 -f 15/34/3 4/10/3 42/27/3 -f 81/57/19 79/194/19 38/54/19 -f 49/41/20 73/195/20 82/53/20 -f 81/57/1 38/54/1 82/53/1 -f 82/53/21 73/195/21 48/36/21 -f 48/36/1 62/38/1 83/55/1 -f 76/196/1 83/55/1 62/38/1 -f 81/57/1 84/56/1 37/44/1 -f 67/197/1 53/42/1 84/56/1 -f 37/44/22 79/194/22 81/57/22 -f 51/47/1 67/197/1 84/56/1 -f 76/196/1 61/45/1 83/55/1 -f 84/56/1 83/55/1 51/47/1 -f 12/47/1 3/197/1 88/56/1 -f 87/55/1 1/196/1 10/45/1 -f 10/45/1 12/47/1 88/56/1 -f 13/42/1 15/44/1 85/57/1 -f 4/194/1 85/57/1 15/44/1 -f 88/56/1 3/197/1 13/42/1 -f 16/54/1 6/41/1 86/53/1 -f 2/195/1 86/53/1 6/41/1 -f 85/57/1 4/194/1 16/54/1 -f 7/36/1 9/38/1 87/55/1 -f 1/196/1 87/55/1 9/38/1 -f 86/53/1 2/195/1 7/36/1 -f 95/198/1 97/58/1 107/60/1 -f 131/199/11 103/61/11 130/63/11 -f 105/200/1 91/64/1 112/66/1 -f 130/63/12 101/62/12 129/68/12 -f 101/201/1 103/69/1 110/71/1 -f 99/67/13 97/72/13 129/68/13 -f 93/202/1 95/74/1 89/75/1 -f 97/72/14 95/76/14 128/73/14 -f 91/203/1 93/78/1 90/65/1 -f 95/76/15 93/79/15 127/77/15 -f 97/204/1 99/81/1 108/59/1 -f 111/95/16 112/66/16 115/84/16 -f 93/79/17 91/85/17 126/80/17 -f 102/140/12 100/87/12 138/89/12 -f 125/86/18 91/85/18 132/91/18 -f 132/91/16 105/90/16 131/93/16 -f 103/205/1 105/94/1 111/95/1 -f 99/206/1 101/96/1 109/82/1 -f 113/99/2 114/207/2 120/208/2 -f 120/208/2 119/209/2 118/97/2 -f 118/97/2 117/210/2 116/98/2 -f 116/98/2 115/211/2 113/99/2 -f 113/99/2 120/208/2 118/97/2 -f 109/82/12 110/71/12 117/101/12 -f 90/65/17 89/75/17 114/103/17 -f 108/59/13 109/82/13 118/104/13 -f 107/60/14 108/59/14 119/105/14 -f 112/66/18 90/65/18 113/83/18 -f 110/71/11 111/70/11 116/100/11 -f 89/75/15 107/60/15 120/102/15 -f 132/123/18 106/107/18 125/109/18 -f 94/112/17 126/110/17 92/108/17 -f 96/114/15 127/111/15 94/112/15 -f 98/116/14 128/113/14 96/114/14 -f 100/117/13 129/115/13 98/116/13 -f 129/115/12 100/117/12 130/119/12 -f 130/119/11 102/118/11 131/121/11 -f 131/212/16 104/122/16 132/123/16 -f 131/126/1 121/46/1 130/125/1 -f 52/128/1 121/46/1 132/127/1 -f 125/129/1 122/52/1 132/127/1 -f 36/170/1 122/52/1 126/130/1 -f 36/170/1 126/130/1 123/39/1 -f 50/40/1 123/39/1 128/132/1 -f 50/40/1 128/132/1 124/37/1 -f 60/124/1 124/37/1 130/125/1 -f 140/213/2 139/134/2 148/136/2 -f 96/144/15 94/137/15 135/139/15 -f 104/214/11 102/140/11 139/141/11 -f 94/137/17 92/142/17 133/138/17 -f 98/149/14 96/144/14 136/145/14 -f 106/150/16 104/146/16 140/148/16 -f 100/87/13 98/149/13 137/88/13 -f 92/142/18 106/150/18 134/143/18 -f 145/156/13 144/151/13 153/153/13 -f 146/164/2 138/154/2 145/156/2 -f 136/215/2 135/157/2 144/151/2 -f 133/216/2 134/159/2 141/161/2 -f 134/217/2 140/162/2 142/160/2 -f 139/218/2 138/163/2 147/165/2 -f 145/156/2 137/166/2 144/151/2 -f 143/158/2 135/168/2 141/161/2 -f 96/131/1 181/39/1 94/130/1 -f 143/158/15 141/161/15 151/172/15 -f 148/136/16 147/135/16 156/174/16 -f 146/164/12 145/156/12 154/175/12 -f 144/151/14 143/158/14 152/152/14 -f 141/161/17 142/160/17 149/171/17 -f 142/160/18 148/136/18 150/176/18 -f 147/165/11 146/164/11 155/177/11 -f 158/189/8 160/178/8 157/180/8 -f 160/219/3 164/181/3 159/179/3 -f 164/188/5 162/183/5 163/185/5 -f 162/220/4 158/186/4 161/187/4 -f 157/180/2 159/179/2 161/187/2 -f 162/183/1 164/188/1 158/189/1 -f 166/220/8 168/186/8 165/187/8 -f 168/189/3 172/178/3 167/180/3 -f 172/219/5 170/181/5 171/179/5 -f 170/188/4 166/183/4 169/185/4 -f 165/187/2 167/180/2 169/182/2 -f 170/188/1 172/178/1 166/183/1 -f 175/221/1 173/222/1 174/192/1 -f 174/192/1 180/223/1 179/190/1 -f 179/190/1 178/224/1 177/191/1 -f 177/191/1 176/225/1 175/221/1 -f 175/221/1 174/192/1 177/191/1 -f 96/131/1 98/132/1 181/39/1 -f 100/133/1 183/37/1 98/132/1 -f 8/124/1 183/37/1 102/125/1 -f 104/126/1 184/46/1 102/125/1 -f 11/128/1 184/46/1 106/127/1 -f 92/129/1 182/43/1 106/127/1 -f 14/170/1 182/43/1 94/130/1 diff --git a/src/main/resources/assets/hbm/models/rbmk/crane_console.obj b/src/main/resources/assets/hbm/models/rbmk/crane_console.obj index 5ebffe130..9b4d984aa 100644 --- a/src/main/resources/assets/hbm/models/rbmk/crane_console.obj +++ b/src/main/resources/assets/hbm/models/rbmk/crane_console.obj @@ -1,5 +1,6292 @@ # Blender v2.79 (sub 0) OBJ File: 'crane_console.blend' # www.blender.org +o Shotgun +v 0.692149 1.035764 -0.683693 +v 0.692280 1.058377 -0.711010 +v 0.683466 1.035764 -0.707840 +v 0.700962 1.058377 -0.686862 +v 0.713559 1.067744 -0.718661 +v 0.722242 1.067744 -0.694513 +v 0.734838 1.058377 -0.726312 +v 0.743521 1.058377 -0.702164 +v 0.743652 1.035764 -0.729481 +v 0.752335 1.035764 -0.705334 +v 0.734838 1.013151 -0.726312 +v 0.743521 1.013151 -0.702164 +v 0.713559 1.003785 -0.718661 +v 0.722242 1.003785 -0.694513 +v 0.692280 1.013151 -0.711010 +v 0.700962 1.013151 -0.686862 +v 0.757006 1.032631 -0.719519 +v 0.731003 1.038897 -0.710169 +v 0.757006 1.038897 -0.719519 +v 0.731003 1.032631 -0.710169 +v 0.734968 1.038897 -0.699141 +v 0.734968 1.032631 -0.699141 +v 0.760971 1.038897 -0.708491 +v 0.760971 1.032631 -0.708491 +v 0.683875 1.038018 -0.681787 +v 0.683875 1.033816 -0.681787 +v 0.680346 1.035917 -0.680519 +v 0.696383 1.042221 -0.658085 +v 0.713356 1.042221 -0.664187 +v 0.704377 1.042221 -0.689159 +v 0.689325 1.035917 -0.655547 +v 0.692854 1.038018 -0.656816 +v 0.696383 1.033816 -0.658085 +v 0.687404 1.033816 -0.683056 +v 0.696383 1.029613 -0.658085 +v 0.687404 1.038018 -0.683056 +v 0.682492 1.029613 -0.733662 +v 0.687702 1.029613 -0.735535 +v 0.704377 1.029613 -0.689159 +v 0.687702 1.042221 -0.735535 +v 0.687404 1.042221 -0.683056 +v 0.696383 1.038018 -0.658085 +v 0.692854 1.033816 -0.656816 +v 0.682492 1.042221 -0.733662 +v 0.713356 1.029613 -0.664187 +v 0.687404 1.029613 -0.683056 +v 0.759877 1.035764 -0.694812 +v 0.598806 1.056565 -1.168236 +v 0.590698 1.035764 -1.165320 +v 0.767985 1.056565 -0.697727 +v 0.618380 1.065181 -1.175274 +v 0.787559 1.065181 -0.704765 +v 0.637954 1.056565 -1.182312 +v 0.807133 1.056565 -0.711803 +v 0.646062 1.035764 -1.185228 +v 0.815241 1.035764 -0.714719 +v 0.637954 1.014963 -1.182312 +v 0.807133 1.014963 -0.711803 +v 0.618380 1.006347 -1.175274 +v 0.787559 1.006347 -0.704765 +v 0.598806 1.014963 -1.168236 +v 0.767985 1.014963 -0.697727 +v 0.544332 1.020228 -1.385557 +v 0.548604 1.049507 -1.380858 +v 0.544332 1.049507 -1.385557 +v 0.548604 1.020228 -1.380858 +v 0.554948 1.049507 -1.380556 +v 0.554948 1.020228 -1.380556 +v 0.559647 1.049507 -1.384829 +v 0.559647 1.020228 -1.384829 +v 0.559949 1.049507 -1.391173 +v 0.559949 1.020228 -1.391173 +v 0.555676 1.049507 -1.395872 +v 0.555676 1.020228 -1.395872 +v 0.549333 1.049507 -1.396173 +v 0.549333 1.020228 -1.396173 +v 0.544633 1.049507 -1.391901 +v 0.544633 1.020228 -1.391901 +v 0.496631 0.997377 -1.485690 +v 0.496631 1.074152 -1.485690 +v 0.415581 1.045215 -1.458066 +v 0.477010 1.038732 -1.627683 +v 0.489400 1.032797 -1.647032 +v 0.477010 1.032797 -1.627683 +v 0.464578 1.038732 -1.604343 +v 0.464578 1.032797 -1.604343 +v 0.536348 1.032797 -1.694010 +v 0.538792 1.038732 -1.694847 +v 0.538792 1.032797 -1.694847 +v 0.513952 1.038866 -1.561843 +v 0.507087 1.032638 -1.550864 +v 0.513952 1.032663 -1.561843 +v 0.430109 1.055225 -1.521909 +v 0.422911 1.041705 -1.520928 +v 0.425503 1.058102 -1.520881 +v 0.442957 1.032797 -1.536957 +v 0.455435 1.038732 -1.583264 +v 0.455435 1.032797 -1.583264 +v 0.521014 1.038732 -1.682495 +v 0.525225 1.032797 -1.687010 +v 0.521014 1.032797 -1.682495 +v 0.530838 1.038732 -1.691225 +v 0.530838 1.032797 -1.691225 +v 0.440314 1.038732 -1.532288 +v 0.440314 1.032797 -1.532288 +v 0.525225 1.038732 -1.687010 +v 0.559794 1.053258 -1.615229 +v 0.558758 1.063808 -1.617134 +v 0.557800 1.063808 -1.619798 +v 0.422708 1.011845 -1.518055 +v 0.419038 1.026314 -1.511065 +v 0.420452 1.026314 -1.518019 +v 0.520935 1.038851 -1.570701 +v 0.520935 1.032677 -1.570701 +v 0.433345 1.033059 -1.524612 +v 0.415687 1.026314 -1.483283 +v 0.417041 1.045215 -1.498211 +v 0.417041 1.026314 -1.498211 +v 0.419038 1.045215 -1.511065 +v 0.440273 0.998881 -1.519687 +v 0.435242 1.004834 -1.521136 +v 0.443516 1.000634 -1.520263 +v 0.498310 1.030952 -1.505816 +v 0.496771 1.031138 -1.514354 +v 0.496771 1.035764 -1.514354 +v 0.502180 1.038928 -1.540707 +v 0.502180 1.032601 -1.540707 +v 0.499020 1.038981 -1.532603 +v 0.497031 1.032475 -1.524158 +v 0.499020 1.032548 -1.532603 +v 0.497031 1.039054 -1.524158 +v 0.496792 1.039153 -1.515142 +v 0.498310 1.051768 -1.505816 +v 0.498310 1.062960 -1.505816 +v 0.500792 1.074152 -1.498296 +v 0.428143 0.997377 -1.482553 +v 0.429425 0.997377 -1.496689 +v 0.500792 0.997377 -1.498296 +v 0.415340 1.045215 -1.470280 +v 0.415581 1.026314 -1.458066 +v 0.415340 1.026314 -1.470280 +v 0.415687 1.045215 -1.483283 +v 0.428660 1.001254 -1.517735 +v 0.436752 0.997377 -1.517133 +v 0.430026 1.032185 -1.522566 +v 0.429910 1.035764 -1.522436 +v 0.496774 1.039560 -1.514461 +v 0.496771 1.040391 -1.514354 +v 0.496782 1.039314 -1.514756 +v 0.484278 1.000622 -1.516503 +v 0.448976 1.003017 -1.522102 +v 0.484359 1.002998 -1.519120 +v 0.452980 1.067640 -1.524261 +v 0.484359 1.068531 -1.519120 +v 0.484454 1.067661 -1.522485 +v 0.433351 1.038685 -1.524616 +v 0.429425 1.074152 -1.496689 +v 0.428650 1.070258 -1.517789 +v 0.423233 1.070275 -1.497450 +v 0.429492 1.031970 -1.522376 +v 0.422923 1.029988 -1.520670 +v 0.435242 1.066695 -1.521136 +v 0.431711 1.068777 -1.520392 +v 0.430026 1.039344 -1.522566 +v 0.429492 1.039559 -1.522376 +v 0.496774 1.031968 -1.514461 +v 0.496782 1.032214 -1.514756 +v 0.496792 1.032376 -1.515142 +v 0.448976 1.068511 -1.522102 +v 0.484278 1.070907 -1.516503 +v 0.452980 1.003889 -1.524261 +v 0.484454 1.003868 -1.522485 +v 0.478882 1.003860 -1.595031 +v 0.461227 1.007737 -1.580949 +v 0.470199 1.007737 -1.601632 +v 0.456987 1.018328 -1.582644 +v 0.466084 1.018328 -1.603616 +v 0.478882 1.067669 -1.595031 +v 0.461227 1.063792 -1.580949 +v 0.470082 1.067669 -1.574744 +v 0.470199 1.063792 -1.601632 +v 0.456987 1.053200 -1.582644 +v 0.466084 1.053200 -1.603616 +v 0.490844 1.003860 -1.617489 +v 0.482396 1.007737 -1.624531 +v 0.478453 1.018328 -1.626839 +v 0.490844 1.067668 -1.617489 +v 0.482396 1.063792 -1.624531 +v 0.502770 1.003860 -1.636112 +v 0.494554 1.007737 -1.643517 +v 0.490781 1.018328 -1.646090 +v 0.502770 1.067668 -1.636112 +v 0.490781 1.053200 -1.646090 +v 0.478453 1.053200 -1.626839 +v 0.489400 1.038732 -1.647032 +v 0.533595 1.003860 -1.677699 +v 0.525836 1.007737 -1.678522 +v 0.529410 1.007737 -1.682355 +v 0.522306 1.018328 -1.681430 +v 0.526347 1.018328 -1.685763 +v 0.533595 1.067669 -1.677699 +v 0.525836 1.063792 -1.678522 +v 0.530658 1.067668 -1.674550 +v 0.529410 1.063792 -1.682355 +v 0.522306 1.053200 -1.681430 +v 0.526347 1.053200 -1.685763 +v 0.534142 1.007737 -1.685908 +v 0.537446 1.003860 -1.680592 +v 0.531723 1.018328 -1.689801 +v 0.534142 1.063792 -1.685908 +v 0.538818 1.007737 -1.688272 +v 0.541289 1.003861 -1.682534 +v 0.537010 1.018328 -1.692473 +v 0.537446 1.067669 -1.680592 +v 0.538818 1.063792 -1.688272 +v 0.537010 1.053200 -1.692473 +v 0.531723 1.053200 -1.689801 +v 0.536348 1.038732 -1.694010 +v 0.542249 1.007737 -1.689658 +v 0.545706 1.003860 -1.684468 +v 0.539718 1.018328 -1.693457 +v 0.541289 1.067668 -1.682534 +v 0.542249 1.063792 -1.689658 +v 0.539718 1.053200 -1.693457 +v 0.530658 1.003860 -1.674550 +v 0.494554 1.063792 -1.643517 +v 0.448636 1.007737 -1.534331 +v 0.454315 1.003860 -1.531705 +v 0.440864 1.018287 -1.529869 +v 0.444479 1.018328 -1.536253 +v 0.448636 1.063792 -1.534331 +v 0.443565 1.063756 -1.524691 +v 0.440864 1.053242 -1.529869 +v 0.444479 1.053200 -1.536253 +v 0.470082 1.003860 -1.574744 +v 0.454315 1.067668 -1.531705 +v 0.442957 1.038732 -1.536957 +v 0.511444 1.003859 -1.578805 +v 0.508845 1.007718 -1.565437 +v 0.503738 1.003859 -1.569030 +v 0.516190 1.007720 -1.574753 +v 0.512583 1.018261 -1.562806 +v 0.519664 1.018268 -1.571787 +v 0.511444 1.067670 -1.578805 +v 0.508845 1.063810 -1.565437 +v 0.516190 1.063808 -1.574753 +v 0.512583 1.053267 -1.562806 +v 0.519664 1.053260 -1.571787 +v 0.501620 1.007715 -1.553882 +v 0.496153 1.003859 -1.556901 +v 0.505622 1.018249 -1.551673 +v 0.503738 1.067670 -1.569030 +v 0.501620 1.063814 -1.553882 +v 0.505622 1.053280 -1.551673 +v 0.507087 1.038890 -1.550864 +v 0.490739 1.003859 -1.545693 +v 0.496460 1.007710 -1.543200 +v 0.500647 1.018230 -1.541375 +v 0.490739 1.067669 -1.545693 +v 0.496153 1.067669 -1.556901 +v 0.496460 1.063819 -1.543200 +v 0.560523 1.038848 -1.613557 +v 0.560751 1.053258 -1.612565 +v 0.555077 1.067669 -1.626040 +v 0.487082 1.003860 -1.536316 +v 0.490784 1.007693 -1.524833 +v 0.484537 1.003860 -1.525508 +v 0.493051 1.007703 -1.534459 +v 0.495357 1.018167 -1.524339 +v 0.497420 1.018204 -1.533100 +v 0.487082 1.067669 -1.536316 +v 0.490784 1.063835 -1.524833 +v 0.493051 1.063826 -1.534459 +v 0.495357 1.053361 -1.524339 +v 0.497420 1.053325 -1.533100 +v 0.490498 1.069629 -1.514866 +v 0.490535 1.066708 -1.515807 +v 0.495090 1.057271 -1.514491 +v 0.495108 1.055235 -1.515059 +v 0.500647 1.053298 -1.541375 +v 0.436377 1.018478 -1.524820 +v 0.443564 1.007801 -1.524691 +v 0.498310 1.074152 -1.505816 +v 0.484224 1.074152 -1.515378 +v 0.425528 1.013375 -1.520750 +v 0.430109 1.016304 -1.521909 +v 0.440237 1.072667 -1.519681 +v 0.420390 1.045105 -1.518407 +v 0.421577 1.001254 -1.470259 +v 0.421915 1.001254 -1.482918 +v 0.417011 1.011845 -1.470274 +v 0.417356 1.011845 -1.483185 +v 0.428143 1.074152 -1.482553 +v 0.421577 1.070275 -1.470259 +v 0.427814 1.074152 -1.470237 +v 0.421915 1.070275 -1.482918 +v 0.417011 1.059683 -1.470274 +v 0.417356 1.059683 -1.483185 +v 0.423233 1.001254 -1.497450 +v 0.418700 1.011845 -1.498007 +v 0.418979 1.011845 -1.499808 +v 0.418979 1.059683 -1.499808 +v 0.418700 1.059683 -1.498007 +v 0.417240 1.059683 -1.458632 +v 0.421776 1.070275 -1.460177 +v 0.427971 1.074152 -1.462289 +v 0.427971 0.997377 -1.462289 +v 0.427814 0.997377 -1.470237 +v 0.421776 1.001254 -1.460177 +v 0.417240 1.011845 -1.458632 +v 0.498310 0.997377 -1.505816 +v 0.490498 1.001900 -1.514866 +v 0.498310 1.008569 -1.505816 +v 0.495090 1.014257 -1.514491 +v 0.498310 1.019761 -1.505816 +v 0.484224 0.997377 -1.515378 +v 0.490535 1.004820 -1.515807 +v 0.495108 1.016294 -1.515059 +v 0.436380 1.053158 -1.524822 +v 0.490602 1.006910 -1.518150 +v 0.495149 1.017604 -1.516552 +v 0.490688 1.007684 -1.521243 +v 0.495203 1.018119 -1.518555 +v 0.490602 1.064619 -1.518150 +v 0.490688 1.063844 -1.521243 +v 0.495149 1.053925 -1.516552 +v 0.495203 1.053410 -1.518555 +v 0.439849 1.006929 -1.522719 +v 0.432913 1.017605 -1.522889 +v 0.439605 0.997377 -1.519021 +v 0.443516 1.070895 -1.520263 +v 0.439605 1.074152 -1.519021 +v 0.422666 1.059620 -1.518251 +v 0.439849 1.064600 -1.522719 +v 0.432913 1.053924 -1.522889 +v 0.484537 1.067669 -1.525508 +v 0.560523 1.032681 -1.613557 +v 0.561481 1.038848 -1.610893 +v 0.557800 1.007721 -1.619798 +v 0.556035 1.003860 -1.623376 +v 0.558758 1.007721 -1.617134 +v 0.559794 1.018270 -1.615229 +v 0.561481 1.032681 -1.610893 +v 0.568994 1.038847 -1.619025 +v 0.566654 1.007721 -1.625682 +v 0.568367 1.018271 -1.620809 +v 0.560751 1.018270 -1.612565 +v 0.568994 1.032682 -1.619025 +v 0.568367 1.053258 -1.620809 +v 0.566654 1.063807 -1.625682 +v 0.556035 1.067669 -1.623376 +v 0.564315 1.067669 -1.632339 +v 0.564315 1.003860 -1.632339 +v 0.436753 1.074152 -1.517136 +v 0.431726 1.002745 -1.520363 +v 0.545706 1.067669 -1.684468 +v 0.536263 1.005153 -1.669843 +v 0.480905 1.005153 -1.600961 +v 0.484860 1.005153 -1.597783 +v 0.483150 1.001881 -1.597014 +v 0.483150 1.005153 -1.597014 +v 0.540217 1.001881 -1.666665 +v 0.484860 1.001881 -1.597783 +v 0.480905 1.001881 -1.600961 +v 0.480522 1.005153 -1.599126 +v 0.540217 1.005153 -1.666665 +v 0.540601 1.005153 -1.668500 +v 0.536263 1.001881 -1.669843 +v 0.540601 1.001881 -1.668500 +v 0.540299 1.005153 -1.670817 +v 0.540299 1.001881 -1.670817 +v 0.537972 1.005153 -1.670613 +v 0.480823 1.001881 -1.596809 +v 0.480823 1.005153 -1.596809 +v 0.480522 1.001881 -1.599126 +v 0.537972 1.001881 -1.670613 +v 0.540851 1.005153 -1.660091 +v 0.485523 1.005153 -1.591245 +v 0.489477 1.005153 -1.588066 +v 0.487763 1.001881 -1.587291 +v 0.487763 1.005153 -1.587291 +v 0.544806 1.001881 -1.656912 +v 0.489477 1.001881 -1.588066 +v 0.485523 1.001881 -1.591245 +v 0.485134 1.005153 -1.589403 +v 0.544806 1.005153 -1.656912 +v 0.545194 1.005153 -1.658754 +v 0.540851 1.001881 -1.660091 +v 0.545194 1.001881 -1.658754 +v 0.544898 1.005153 -1.661076 +v 0.544898 1.001881 -1.661076 +v 0.542566 1.005153 -1.660866 +v 0.485431 1.001881 -1.587081 +v 0.485431 1.005153 -1.587081 +v 0.485134 1.001881 -1.589403 +v 0.542566 1.001881 -1.660866 +v 0.549330 1.005153 -1.639237 +v 0.494024 1.005153 -1.570419 +v 0.497979 1.005153 -1.567241 +v 0.496260 1.001881 -1.566461 +v 0.496260 1.005153 -1.566461 +v 0.553285 1.001881 -1.636059 +v 0.497979 1.001881 -1.567241 +v 0.494024 1.001881 -1.570419 +v 0.493632 1.005153 -1.568573 +v 0.553285 1.005153 -1.636059 +v 0.553677 1.005153 -1.637905 +v 0.549330 1.001881 -1.639237 +v 0.553677 1.001881 -1.637905 +v 0.553384 1.005153 -1.640232 +v 0.553384 1.001881 -1.640232 +v 0.551049 1.005153 -1.640017 +v 0.493925 1.001881 -1.566246 +v 0.493925 1.005153 -1.566246 +v 0.493632 1.001881 -1.568573 +v 0.551049 1.001881 -1.640017 +v 0.544834 1.005153 -1.649123 +v 0.489528 1.005153 -1.580305 +v 0.493483 1.005153 -1.577127 +v 0.491764 1.001881 -1.576347 +v 0.491764 1.005153 -1.576347 +v 0.548789 1.001881 -1.645945 +v 0.493483 1.001881 -1.577127 +v 0.489528 1.001881 -1.580305 +v 0.489136 1.005153 -1.578459 +v 0.548789 1.005153 -1.645945 +v 0.549181 1.005153 -1.647791 +v 0.544834 1.001881 -1.649123 +v 0.549181 1.001881 -1.647791 +v 0.548888 1.005153 -1.650118 +v 0.548888 1.001881 -1.650118 +v 0.546552 1.005153 -1.649903 +v 0.489428 1.001881 -1.576132 +v 0.489428 1.005153 -1.576132 +v 0.489136 1.001881 -1.578459 +v 0.546552 1.001881 -1.649903 +v 0.536263 1.069648 -1.669843 +v 0.480905 1.069648 -1.600961 +v 0.484860 1.069648 -1.597783 +v 0.483150 1.066375 -1.597014 +v 0.483150 1.069648 -1.597014 +v 0.540217 1.066375 -1.666665 +v 0.484860 1.066375 -1.597783 +v 0.480905 1.066375 -1.600961 +v 0.480522 1.069648 -1.599126 +v 0.540217 1.069648 -1.666665 +v 0.540601 1.069648 -1.668500 +v 0.536263 1.066375 -1.669843 +v 0.540601 1.066375 -1.668500 +v 0.540299 1.069648 -1.670817 +v 0.540299 1.066375 -1.670817 +v 0.537972 1.069648 -1.670613 +v 0.480823 1.066375 -1.596809 +v 0.480823 1.069648 -1.596809 +v 0.480522 1.066375 -1.599126 +v 0.537972 1.066375 -1.670613 +v 0.540851 1.069648 -1.660091 +v 0.485523 1.069648 -1.591245 +v 0.489477 1.069648 -1.588066 +v 0.487763 1.066375 -1.587291 +v 0.487763 1.069648 -1.587291 +v 0.544806 1.066375 -1.656912 +v 0.489477 1.066375 -1.588066 +v 0.485523 1.066375 -1.591245 +v 0.485134 1.069648 -1.589403 +v 0.544806 1.069648 -1.656912 +v 0.545194 1.069648 -1.658754 +v 0.540851 1.066375 -1.660091 +v 0.545194 1.066375 -1.658754 +v 0.544898 1.069648 -1.661076 +v 0.544898 1.066375 -1.661076 +v 0.542566 1.069648 -1.660866 +v 0.485431 1.066375 -1.587081 +v 0.485431 1.069648 -1.587081 +v 0.485134 1.066375 -1.589403 +v 0.542566 1.066375 -1.660866 +v 0.549330 1.069648 -1.639237 +v 0.494024 1.069648 -1.570419 +v 0.497979 1.069648 -1.567241 +v 0.496260 1.066375 -1.566461 +v 0.496260 1.069648 -1.566461 +v 0.553285 1.066375 -1.636059 +v 0.497979 1.066375 -1.567241 +v 0.494024 1.066375 -1.570419 +v 0.493632 1.069648 -1.568573 +v 0.553285 1.069648 -1.636059 +v 0.553677 1.069648 -1.637905 +v 0.549330 1.066375 -1.639237 +v 0.553677 1.066375 -1.637905 +v 0.553384 1.069648 -1.640232 +v 0.553384 1.066375 -1.640232 +v 0.551049 1.069648 -1.640017 +v 0.493925 1.066375 -1.566246 +v 0.493925 1.069648 -1.566246 +v 0.493632 1.066375 -1.568573 +v 0.551049 1.066375 -1.640017 +v 0.544834 1.069648 -1.649123 +v 0.489528 1.069648 -1.580305 +v 0.493483 1.069648 -1.577127 +v 0.491764 1.066375 -1.576347 +v 0.491764 1.069648 -1.576347 +v 0.548789 1.066375 -1.645945 +v 0.493483 1.066375 -1.577127 +v 0.489528 1.066375 -1.580305 +v 0.489136 1.069648 -1.578459 +v 0.548789 1.069648 -1.645945 +v 0.549181 1.069648 -1.647791 +v 0.544834 1.066375 -1.649123 +v 0.549181 1.066375 -1.647791 +v 0.548888 1.069648 -1.650118 +v 0.548888 1.066375 -1.650118 +v 0.546552 1.069648 -1.649903 +v 0.489428 1.066375 -1.576132 +v 0.489428 1.069648 -1.576132 +v 0.489136 1.066375 -1.578459 +v 0.546552 1.066375 -1.649903 +v 0.498310 1.040576 -1.505816 +v 0.555077 1.003860 -1.626040 +v 0.513440 0.998725 -1.433918 +v 0.495210 1.001154 -1.427363 +v 0.513440 1.001154 -1.433918 +v 0.495210 0.998725 -1.427363 +v 0.578615 1.001153 -1.195405 +v 0.578615 0.998725 -1.195405 +v 0.596844 1.001153 -1.201959 +v 0.596844 0.998725 -1.201959 +v 0.509272 1.074130 -1.444486 +v 0.484943 1.070375 -1.435738 +v 0.484943 1.074130 -1.435738 +v 0.563785 1.070375 -1.216468 +v 0.563785 1.074129 -1.216468 +v 0.598405 1.074129 -1.196595 +v 0.588114 1.074129 -1.225216 +v 0.588114 1.070375 -1.225216 +v 0.509272 1.070375 -1.444486 +v 0.574076 1.070375 -1.187847 +v 0.598405 1.070375 -1.196595 +v 0.543309 1.074129 -1.176785 +v 0.574076 1.074129 -1.187847 +v 0.533018 1.074129 -1.205405 +v 0.543309 1.070375 -1.176785 +v 0.533018 1.070375 -1.205405 +v 0.619333 1.001153 -1.176606 +v 0.566003 1.001153 -1.110426 +v 0.571481 1.001153 -1.160024 +v 0.533104 1.001153 -1.281312 +v 0.530132 1.001153 -1.286527 +v 0.439596 1.055536 -1.374785 +v 0.428063 1.015992 -1.410344 +v 0.439596 1.015992 -1.374785 +v 0.566003 1.070375 -1.110426 +v 0.503031 1.070375 -1.501351 +v 0.503031 1.001154 -1.501351 +v 0.435301 1.070375 -1.476998 +v 0.428063 1.055536 -1.410344 +v 0.422002 1.015992 -1.441826 +v 0.425381 1.070375 -1.465533 +v 0.425381 1.001154 -1.465533 +v 0.422002 1.055536 -1.441826 +v 0.435301 1.001154 -1.476998 +v 0.538240 1.055536 -1.100443 +v 0.465229 1.001154 -1.389116 +v 0.458451 1.002283 -1.376174 +v 0.451007 1.002283 -1.397240 +v 0.448542 1.005500 -1.375444 +v 0.438949 1.005500 -1.404127 +v 0.441922 1.010314 -1.374956 +v 0.430892 1.010314 -1.408728 +v 0.465229 1.070375 -1.389116 +v 0.458451 1.069246 -1.376174 +v 0.470140 1.070375 -1.377035 +v 0.451007 1.069246 -1.397240 +v 0.448542 1.066029 -1.375444 +v 0.438949 1.066029 -1.404127 +v 0.441922 1.061215 -1.374956 +v 0.430892 1.061215 -1.408728 +v 0.424088 1.002283 -1.456461 +v 0.422991 1.005500 -1.448770 +v 0.422259 1.010314 -1.443631 +v 0.422991 1.066029 -1.448770 +v 0.422259 1.061215 -1.443631 +v 0.540354 1.061215 -1.101203 +v 0.546372 1.066029 -1.103367 +v 0.555379 1.069245 -1.106606 +v 0.555379 1.002283 -1.106606 +v 0.540448 1.002283 -1.148130 +v 0.542563 1.002074 -1.148427 +v 0.470140 1.001154 -1.377035 +v 0.504003 1.001153 -1.282856 +v 0.495346 1.002074 -1.279744 +v 0.489446 1.005053 -1.265613 +v 0.529016 1.005053 -1.155564 +v 0.546372 1.005499 -1.103367 +v 0.540354 1.010314 -1.101203 +v 0.538240 1.015992 -1.100443 +v 0.662439 1.001153 -1.145520 +v 0.647915 1.070375 -1.186987 +v 0.662439 1.070375 -1.145520 +v 0.619333 1.070375 -1.176606 +v 0.647915 1.001153 -1.186987 +v 0.573704 1.034203 -1.165348 +v 0.571481 1.034203 -1.160024 +v 0.530132 1.034203 -1.286527 +v 0.525028 1.001153 -1.289216 +v 0.533104 1.034203 -1.281312 +v 0.572674 1.001153 -1.171262 +v 0.572674 1.034203 -1.171262 +v 0.557312 1.039003 -1.182406 +v 0.533764 1.039003 -1.173938 +v 0.528356 1.039003 -1.262937 +v 0.573704 1.001153 -1.165348 +v 0.490639 1.003398 -1.276851 +v 0.495346 1.034203 -1.279744 +v 0.519557 1.001153 -1.288449 +v 0.519557 1.034203 -1.288449 +v 0.490639 1.034203 -1.276851 +v 0.488416 1.004706 -1.271528 +v 0.566774 1.001153 -1.157132 +v 0.566774 1.034203 -1.157132 +v 0.488416 1.034203 -1.271528 +v 0.537092 1.034203 -1.147659 +v 0.531988 1.004706 -1.150348 +v 0.531988 1.034203 -1.150348 +v 0.489446 1.034203 -1.265613 +v 0.525028 1.034203 -1.289216 +v 0.537092 1.003398 -1.147659 +v 0.551220 1.001153 -1.151539 +v 0.569832 1.037775 -1.171952 +v 0.531353 1.037775 -1.278970 +v 0.532040 1.039003 -1.263454 +v 0.530318 1.037775 -1.280785 +v 0.568668 1.037775 -1.166247 +v 0.564354 1.037775 -1.163596 +v 0.570191 1.037775 -1.169894 +v 0.560482 1.039003 -1.184353 +v 0.542563 1.034203 -1.148427 +v 0.530080 1.039003 -1.173422 +v 0.535299 1.037775 -1.154249 +v 0.531802 1.037775 -1.156091 +v 0.501638 1.039003 -1.252522 +v 0.491929 1.037775 -1.266981 +v 0.493452 1.037775 -1.270628 +v 0.521807 1.037775 -1.281924 +v 0.526821 1.037775 -1.282627 +v 0.504807 1.039003 -1.254470 +v 0.530767 1.037775 -1.157906 +v 0.529016 1.034203 -1.155564 +v 0.492288 1.037775 -1.264923 +v 0.497766 1.037775 -1.273279 +v 0.540312 1.037775 -1.154952 +v 0.424088 1.069246 -1.456461 +v 0.493527 1.002283 -1.278626 +v 0.707876 1.035764 -0.647525 +v 0.546805 1.056565 -1.120949 +v 0.538697 1.035764 -1.118034 +v 0.715984 1.056565 -0.650440 +v 0.566379 1.065181 -1.127987 +v 0.735558 1.065181 -0.657479 +v 0.585953 1.056565 -1.135026 +v 0.755132 1.056565 -0.664517 +v 0.594061 1.035764 -1.137941 +v 0.763240 1.035764 -0.667432 +v 0.585953 1.014963 -1.135026 +v 0.755132 1.014963 -0.664517 +v 0.566379 1.006347 -1.127987 +v 0.735558 1.006347 -0.657479 +v 0.546805 1.014963 -1.120949 +v 0.715984 1.014963 -0.650440 +v 0.721610 1.035764 -0.601756 +v 0.711158 1.058377 -0.658507 +v 0.702344 1.035764 -0.655338 +v 0.730424 1.058377 -0.604925 +v 0.732437 1.067744 -0.666158 +v 0.751703 1.067744 -0.612576 +v 0.753716 1.058377 -0.673810 +v 0.772982 1.058377 -0.620228 +v 0.762530 1.035764 -0.676979 +v 0.781796 1.035764 -0.623397 +v 0.753716 1.013151 -0.673810 +v 0.772982 1.013151 -0.620228 +v 0.732437 1.003785 -0.666158 +v 0.751703 1.003785 -0.612576 +v 0.751703 1.009534 -0.612576 +v 0.734249 1.054312 -0.606300 +v 0.751703 1.061995 -0.612576 +v 0.711158 1.013151 -0.658507 +v 0.730424 1.013151 -0.604925 +v 0.732437 1.009534 -0.666158 +v 0.749891 1.017216 -0.672434 +v 0.714983 1.054312 -0.659882 +v 0.707753 1.035764 -0.657283 +v 0.732437 1.061995 -0.666158 +v 0.749891 1.054312 -0.672434 +v 0.769157 1.054312 -0.618852 +v 0.757121 1.035764 -0.675034 +v 0.776387 1.035764 -0.621452 +v 0.769157 1.017216 -0.618852 +v 0.734249 1.017216 -0.606300 +v 0.714983 1.017216 -0.659882 +v 0.727020 1.035764 -0.603701 +v 0.753707 1.035764 -0.705628 +v 0.755533 1.058083 -0.727871 +v 0.746833 1.035764 -0.724743 +v 0.762406 1.058083 -0.708756 +v 0.776535 1.067328 -0.735423 +v 0.783409 1.067328 -0.716308 +v 0.797538 1.058083 -0.742975 +v 0.804411 1.058083 -0.723859 +v 0.806237 1.035764 -0.746103 +v 0.813110 1.035764 -0.726987 +v 0.797538 1.013445 -0.742975 +v 0.804411 1.013445 -0.723859 +v 0.776535 1.004200 -0.735423 +v 0.783409 1.004200 -0.716308 +v 0.755533 1.013445 -0.727871 +v 0.762406 1.013445 -0.708756 +v 0.585552 1.001153 -1.115745 +v 0.589794 0.998029 -1.104150 +v 0.589564 1.001153 -1.104585 +v 0.744124 1.065964 -0.891414 +v 0.673053 1.066293 -0.872391 +v 0.675133 1.065964 -0.866607 +v 0.809292 1.015851 -0.749462 +v 0.756634 1.055639 -0.895912 +v 0.809292 1.055677 -0.749462 +v 0.671533 1.004444 -0.876620 +v 0.742301 1.005236 -0.897291 +v 0.673053 1.005236 -0.872391 +v 0.656907 1.001153 -1.075545 +v 0.661214 1.001153 -1.065693 +v 0.661427 1.001153 -1.059562 +v 0.598482 1.001153 -1.081104 +v 0.599859 1.001153 -1.077275 +v 0.667855 1.001153 -1.057394 +v 0.671401 1.001153 -1.094040 +v 0.673333 1.001153 -1.097359 +v 0.744124 1.005564 -0.891414 +v 0.675133 1.005564 -0.866607 +v 0.669354 1.069255 -0.882679 +v 0.741517 1.067086 -0.901788 +v 0.741653 1.069253 -0.908672 +v 0.727792 1.065964 -0.720157 +v 0.727792 1.005564 -0.720157 +v 0.796817 1.005564 -0.744976 +v 0.671757 1.060087 -1.146741 +v 0.671757 1.011441 -1.146741 +v 0.659283 1.070375 -1.142256 +v 0.669354 1.002274 -0.882679 +v 0.741517 1.004442 -0.901788 +v 0.665754 1.001153 -0.892692 +v 0.741086 1.001482 -0.913246 +v 0.667834 1.001482 -0.886908 +v 0.754904 1.015669 -0.901823 +v 0.756634 1.015890 -0.895912 +v 0.754229 1.056514 -0.906359 +v 0.754364 1.012848 -0.913241 +v 0.754364 1.058680 -0.913241 +v 0.742301 1.066293 -0.897291 +v 0.671533 1.067085 -0.876620 +v 0.754229 1.015015 -0.906359 +v 0.741086 1.070046 -0.913246 +v 0.665754 1.070375 -0.892692 +v 0.667834 1.070047 -0.886908 +v 0.751960 1.011479 -0.923688 +v 0.753689 1.059613 -0.917777 +v 0.753689 1.011915 -0.917777 +v 0.741653 1.002275 -0.908672 +v 0.753216 1.010452 -0.901216 +v 0.752526 1.009729 -0.905746 +v 0.747873 1.005859 -0.904073 +v 0.748603 1.006633 -0.899557 +v 0.754958 1.010727 -0.895309 +v 0.750379 1.006948 -0.893663 +v 0.754904 1.055860 -0.901823 +v 0.754958 1.060802 -0.895309 +v 0.748603 1.064895 -0.899557 +v 0.750379 1.064581 -0.893663 +v 0.753216 1.061076 -0.901216 +v 0.747873 1.065670 -0.904073 +v 0.752661 1.063967 -0.912629 +v 0.747388 1.068648 -0.915512 +v 0.748009 1.067837 -0.910956 +v 0.751960 1.060049 -0.923688 +v 0.752001 1.064830 -0.917170 +v 0.745705 1.068991 -0.921439 +v 0.739451 1.070375 -0.919191 +v 0.752001 1.006699 -0.917170 +v 0.750284 1.006316 -0.923086 +v 0.745705 1.002537 -0.921439 +v 0.747388 1.002880 -0.915512 +v 0.739451 1.001153 -0.919191 +v 0.752661 1.007562 -0.912629 +v 0.748009 1.003692 -0.910956 +v 0.807621 1.060821 -0.748860 +v 0.803055 1.064586 -0.747219 +v 0.796817 1.065964 -0.744976 +v 0.752526 1.061800 -0.905746 +v 0.803055 1.006942 -0.747219 +v 0.585552 1.070375 -1.115745 +v 0.589794 1.073499 -1.104149 +v 0.585341 1.073499 -1.116289 +v 0.669529 1.002532 -1.133345 +v 0.664216 0.998030 -1.130918 +v 0.671017 0.999532 -1.133364 +v 0.665520 1.068997 -1.144498 +v 0.671624 1.067891 -1.147313 +v 0.670086 1.065231 -1.146140 +v 0.675768 1.011443 -1.135588 +v 0.674096 1.006298 -1.134987 +v 0.663291 1.001153 -1.131102 +v 0.670864 1.070375 -1.036388 +v 0.674544 1.070375 -1.035088 +v 0.668145 1.070375 -1.057329 +v 0.615303 0.996639 -1.034018 +v 0.665366 1.001153 -1.052019 +v 0.615303 1.001153 -1.034018 +v 0.673716 1.074889 -1.028455 +v 0.623762 1.070375 -1.010493 +v 0.673716 1.070375 -1.028455 +v 0.603991 0.996639 -1.065477 +v 0.606844 1.001153 -1.057544 +v 0.603991 1.001153 -1.065477 +v 0.603991 1.074889 -1.065477 +v 0.606844 1.070375 -1.057544 +v 0.606844 1.074889 -1.057544 +v 0.599859 1.070375 -1.077275 +v 0.589565 1.070375 -1.104584 +v 0.603991 1.070375 -1.065477 +v 0.654055 0.996639 -1.083478 +v 0.654055 1.001153 -1.083478 +v 0.653946 1.074889 -1.083439 +v 0.632221 0.996639 -0.986968 +v 0.682284 1.001153 -1.004969 +v 0.632221 1.001153 -0.986968 +v 0.682175 1.074889 -1.004930 +v 0.632221 1.070375 -0.986968 +v 0.682175 1.070375 -1.004930 +v 0.612450 0.996639 -1.041952 +v 0.612450 1.001153 -1.041952 +v 0.612450 1.074889 -1.041952 +v 0.615303 1.070375 -1.034018 +v 0.615303 1.074889 -1.034018 +v 0.606844 0.996639 -1.057544 +v 0.656798 1.074889 -1.075506 +v 0.656798 1.070375 -1.075506 +v 0.662405 1.074889 -1.059914 +v 0.661427 1.070375 -1.059562 +v 0.668142 1.074909 -1.057332 +v 0.667445 1.070410 -1.054955 +v 0.667299 0.996639 -1.055338 +v 0.665366 0.996639 -1.052019 +v 0.662514 0.996639 -1.059953 +v 0.674544 1.074889 -1.035088 +v 0.670864 1.074889 -1.036388 +v 0.620909 0.996639 -1.018426 +v 0.623762 1.001153 -1.010493 +v 0.620909 1.001153 -1.018426 +v 0.620909 1.074889 -1.018426 +v 0.623762 1.074889 -1.010493 +v 0.658840 0.996639 -1.078864 +v 0.656907 0.996639 -1.075545 +v 0.665257 1.074889 -1.051980 +v 0.670973 1.001153 -1.036427 +v 0.670973 0.996639 -1.036427 +v 0.620909 1.070375 -1.018426 +v 0.690634 1.074889 -0.981404 +v 0.640680 1.070375 -0.963442 +v 0.690634 1.070375 -0.981404 +v 0.640680 0.996639 -0.963442 +v 0.690743 1.001153 -0.981443 +v 0.640680 1.001153 -0.963442 +v 0.699093 1.074889 -0.957879 +v 0.649138 1.070375 -0.939917 +v 0.699093 1.070375 -0.957879 +v 0.629368 0.996639 -0.994901 +v 0.629368 1.001153 -0.994901 +v 0.629368 1.074889 -0.994901 +v 0.632221 1.074889 -0.986968 +v 0.623762 0.996639 -1.010493 +v 0.673825 1.001153 -1.028494 +v 0.657627 1.074889 -1.082139 +v 0.679432 1.001153 -1.012902 +v 0.679432 0.996639 -1.012902 +v 0.679323 1.074889 -1.012863 +v 0.629368 1.070375 -0.994901 +v 0.649138 0.996639 -0.939917 +v 0.699202 1.001153 -0.957918 +v 0.649138 1.001153 -0.939917 +v 0.707552 1.074889 -0.934353 +v 0.657597 1.070375 -0.916391 +v 0.707552 1.070375 -0.934353 +v 0.637827 0.996639 -0.971375 +v 0.637827 1.001153 -0.971375 +v 0.637827 1.074889 -0.971375 +v 0.640680 1.074889 -0.963442 +v 0.675758 0.996639 -1.031813 +v 0.673825 0.996639 -1.028494 +v 0.687891 1.001153 -0.989376 +v 0.687891 0.996639 -0.989376 +v 0.687782 1.074889 -0.989337 +v 0.637827 1.070375 -0.971375 +v 0.657597 0.996639 -0.916391 +v 0.707661 1.001153 -0.934392 +v 0.657597 1.001153 -0.916391 +v 0.598482 1.074889 -1.081104 +v 0.658376 1.070375 -1.102640 +v 0.667062 1.074889 -1.105763 +v 0.646286 0.996639 -0.947850 +v 0.646286 1.001153 -0.947850 +v 0.646286 1.074889 -0.947850 +v 0.649138 1.074889 -0.939917 +v 0.684217 0.996639 -1.008288 +v 0.682284 0.996639 -1.004969 +v 0.696350 1.001153 -0.965851 +v 0.696350 0.996639 -0.965851 +v 0.696241 1.074889 -0.965812 +v 0.646286 1.070375 -0.947850 +v 0.671401 0.996639 -1.094040 +v 0.658069 1.001153 -1.089246 +v 0.667891 1.074889 -1.112396 +v 0.664210 1.074889 -1.113697 +v 0.654745 0.996639 -0.924324 +v 0.654745 1.001153 -0.924324 +v 0.654745 1.074889 -0.924324 +v 0.657597 1.074889 -0.916391 +v 0.692676 0.996639 -0.984762 +v 0.690743 0.996639 -0.981443 +v 0.683003 1.074889 -1.011562 +v 0.704808 1.001153 -0.942326 +v 0.704808 0.996639 -0.942326 +v 0.704700 1.074889 -0.942286 +v 0.654745 1.070375 -0.924324 +v 0.709594 0.996639 -0.937711 +v 0.707661 0.996639 -0.934392 +v 0.595630 0.996639 -1.089038 +v 0.595630 1.001153 -1.089038 +v 0.595630 1.074889 -1.089038 +v 0.598482 1.070375 -1.081104 +v 0.701135 0.996639 -0.961237 +v 0.699202 0.996639 -0.957918 +v 0.691462 1.074889 -0.988037 +v 0.658583 1.001153 -1.111673 +v 0.664319 0.996639 -1.113736 +v 0.602712 1.074889 -1.069342 +v 0.602712 1.070375 -1.069342 +v 0.658069 1.070375 -1.089246 +v 0.664210 1.070375 -1.113697 +v 0.658583 1.070375 -1.111673 +v 0.669104 0.996639 -1.109121 +v 0.667171 0.996639 -1.105803 +v 0.708380 1.074889 -0.940986 +v 0.599859 0.996639 -1.077275 +v 0.602712 1.001153 -1.069342 +v 0.599859 1.074889 -1.077275 +v 0.658376 1.001153 -1.102640 +v 0.598482 0.996639 -1.081104 +v 0.699921 1.074889 -0.964511 +v 0.658276 1.001153 -1.098279 +v 0.668439 1.074889 -1.101934 +v 0.668439 1.070375 -1.101934 +v 0.658276 1.070375 -1.098279 +v 0.659396 1.001153 -1.080919 +v 0.657658 1.001153 -1.082150 +v 0.658840 1.001153 -1.078864 +v 0.674576 1.001153 -1.035099 +v 0.683035 1.001153 -1.011574 +v 0.699953 1.001153 -0.964523 +v 0.708412 1.001153 -0.940997 +v 0.664319 1.001153 -1.113736 +v 0.667922 0.996639 -1.112408 +v 0.667922 1.001153 -1.112408 +v 0.669660 0.996639 -1.111177 +v 0.708412 0.996639 -0.940997 +v 0.710149 0.996639 -0.939767 +v 0.662514 1.001153 -1.059953 +v 0.666117 0.996639 -1.058625 +v 0.666117 1.001153 -1.058625 +v 0.667855 0.996639 -1.057394 +v 0.674576 0.996639 -1.035099 +v 0.676314 0.996639 -1.033868 +v 0.683035 0.996639 -1.011574 +v 0.684773 0.996639 -1.010343 +v 0.691494 0.996639 -0.988048 +v 0.691494 1.001153 -0.988048 +v 0.693232 0.996639 -0.986817 +v 0.699953 0.996639 -0.964523 +v 0.701690 0.996639 -0.963292 +v 0.673889 1.001153 -1.099414 +v 0.673333 0.996639 -1.097359 +v 0.673889 0.996639 -1.099414 +v 0.657658 0.996639 -1.082150 +v 0.659396 0.996639 -1.080919 +v 0.667299 1.001153 -1.055338 +v 0.676314 1.001153 -1.033868 +v 0.675758 1.001153 -1.031813 +v 0.693232 1.001153 -0.986817 +v 0.692676 1.001153 -0.984762 +v 0.701690 1.001153 -0.963292 +v 0.701135 1.001153 -0.961237 +v 0.710149 1.001153 -0.939767 +v 0.709594 1.001153 -0.937711 +v 0.668548 1.001153 -1.101973 +v 0.672152 0.996639 -1.100645 +v 0.668548 0.996639 -1.101973 +v 0.672152 1.001153 -1.100645 +v 0.684773 1.001153 -1.010343 +v 0.684217 1.001153 -1.008288 +v 0.669660 1.001153 -1.111177 +v 0.669104 1.001153 -1.109121 +v 0.653946 1.070375 -1.083439 +v 0.657627 1.070375 -1.082139 +v 0.659396 1.070375 -1.080919 +v 0.612450 1.070375 -1.041952 +v 0.679323 1.070375 -1.012863 +v 0.683003 1.070375 -1.011562 +v 0.687782 1.070375 -0.989337 +v 0.691462 1.070375 -0.988037 +v 0.696241 1.070375 -0.965812 +v 0.699921 1.070375 -0.964511 +v 0.701103 1.070375 -0.961225 +v 0.704700 1.070375 -0.942286 +v 0.708380 1.070375 -0.940986 +v 0.676314 1.070375 -1.033868 +v 0.676314 1.074889 -1.033868 +v 0.658808 1.074889 -1.078852 +v 0.658808 1.070375 -1.078852 +v 0.659396 1.074889 -1.080919 +v 0.675726 1.074889 -1.031802 +v 0.675726 1.070375 -1.031802 +v 0.684185 1.074889 -1.008276 +v 0.684185 1.070375 -1.008276 +v 0.684773 1.074889 -1.010343 +v 0.701103 1.074889 -0.961225 +v 0.701690 1.074889 -0.963292 +v 0.667062 1.070375 -1.105763 +v 0.669072 1.074889 -1.109110 +v 0.669072 1.070375 -1.109110 +v 0.669660 1.074889 -1.111177 +v 0.673889 1.070375 -1.099414 +v 0.672120 1.074889 -1.100633 +v 0.673889 1.074889 -1.099414 +v 0.672120 1.070375 -1.100633 +v 0.693232 1.070375 -0.986817 +v 0.693232 1.074889 -0.986817 +v 0.692644 1.074889 -0.984751 +v 0.692644 1.070375 -0.984751 +v 0.701690 1.070375 -0.963292 +v 0.710149 1.070375 -0.939767 +v 0.710149 1.074889 -0.939767 +v 0.709562 1.074889 -0.937700 +v 0.709562 1.070375 -0.937700 +v 0.671292 1.070375 -1.094001 +v 0.673302 1.074889 -1.097347 +v 0.671292 1.074889 -1.094001 +v 0.673302 1.070375 -1.097347 +v 0.684773 1.070375 -1.010343 +v 0.666085 1.070375 -1.058613 +v 0.666095 1.074943 -1.058587 +v 0.669660 1.070375 -1.111177 +v 0.667891 1.070375 -1.112396 +v 0.667443 1.074943 -1.054959 +v 0.665260 1.070356 -1.051977 +v 0.677818 1.062281 -1.135809 +v 0.675768 1.060086 -1.135588 +v 0.659283 1.001153 -1.142256 +v 0.585341 0.998029 -1.116289 +v 0.674096 1.065230 -1.134987 +v 0.675996 1.067890 -1.135154 +v 0.663291 1.070375 -1.131102 +v 0.750284 1.065212 -0.923086 +v 0.669529 1.068996 -1.133345 +v 0.673446 1.009246 -1.147969 +v 0.673446 1.062283 -1.147969 +v 0.658992 1.001153 -1.129556 +v 0.659529 0.998030 -1.129233 +v 0.659845 1.073499 -1.143078 +v 0.671017 1.071996 -1.133364 +v 0.665520 1.002532 -1.144498 +v 0.659846 0.998030 -1.143078 +v 0.666646 1.071996 -1.145523 +v 0.664216 1.073499 -1.130918 +v 0.666646 0.999532 -1.145523 +v 0.675996 1.003639 -1.135154 +v 0.671624 1.003638 -1.147313 +v 0.659529 1.073499 -1.129232 +v 0.658992 1.070375 -1.129556 +v 0.677818 1.009248 -1.135809 +v 0.670086 1.006297 -1.146140 +v 0.667171 1.001153 -1.105803 +v 0.807621 1.010708 -0.748860 +v 0.595630 1.070375 -1.089038 +v 0.662405 1.070375 -1.059914 +v 0.602712 0.996639 -1.069342 +v 0.496616 1.021493 -1.497419 +v 0.557190 1.049628 -1.328955 +v 0.496616 1.049628 -1.497419 +v 0.498670 1.021493 -1.498158 +v 0.498670 1.049628 -1.498158 +v 0.578160 1.049628 -1.407251 +v 0.570408 1.021493 -1.400785 +v 0.578160 1.021493 -1.407251 +v 0.541590 1.021493 -1.480804 +v 0.526866 1.049628 -1.482721 +v 0.541590 1.049628 -1.480804 +v 0.526866 1.021493 -1.482721 +v 0.511167 1.049628 -1.489276 +v 0.511167 1.021493 -1.489276 +v 0.557190 1.021493 -1.328955 +v 0.559358 1.049628 -1.329735 +v 0.546807 1.021493 -1.481672 +v 0.546807 1.049628 -1.481672 +v 0.570408 1.049628 -1.400785 +v 0.561532 1.021493 -1.383752 +v 0.561532 1.049628 -1.383752 +v 0.559065 1.021493 -1.356379 +v 0.559065 1.049628 -1.356379 +v 0.559358 1.021493 -1.329735 +v 0.555676 1.049628 -1.395872 +v 0.559949 1.049628 -1.391173 +v 0.557426 1.049628 -1.399047 +v 0.521387 1.049628 -1.458189 +v 0.522048 1.049628 -1.465217 +v 0.562755 1.049628 -1.472850 +v 0.559418 1.049628 -1.471864 +v 0.562835 1.049628 -1.464567 +v 0.581256 1.049628 -1.422436 +v 0.582417 1.021493 -1.413157 +v 0.581256 1.021493 -1.422436 +v 0.582417 1.049628 -1.413157 +v 0.555238 1.021493 -1.480624 +v 0.555238 1.049628 -1.480624 +v 0.562755 1.021493 -1.472850 +v 0.562835 1.021493 -1.464567 +v 0.559418 1.021493 -1.471864 +v 0.557426 1.021493 -1.399047 +v 0.559949 1.021493 -1.391173 +v 0.536786 1.021493 -1.413155 +v 0.544332 1.021493 -1.385557 +v 0.569292 1.049628 -1.403314 +v 0.542195 1.049628 -1.478675 +v 0.530329 1.021493 -1.474408 +v 0.542195 1.021493 -1.478675 +v 0.576222 1.021493 -1.427335 +v 0.576222 1.049628 -1.427335 +v 0.523398 1.049628 -1.450387 +v 0.523398 1.021493 -1.450387 +v 0.554432 1.021493 -1.476862 +v 0.554432 1.049628 -1.476862 +v 0.548146 1.021493 -1.479379 +v 0.548146 1.049628 -1.479379 +v 0.521387 1.021493 -1.458189 +v 0.522048 1.021493 -1.465217 +v 0.525292 1.049628 -1.471161 +v 0.525292 1.021493 -1.471161 +v 0.530329 1.049628 -1.474408 +v 0.551475 1.021493 -1.398343 +v 0.551475 1.049628 -1.398343 +v 0.545188 1.021493 -1.400860 +v 0.545188 1.049628 -1.400860 +v 0.540203 1.021493 -1.405858 +v 0.540203 1.049628 -1.405858 +v 0.536786 1.049628 -1.413155 +v 0.578234 1.021493 -1.419533 +v 0.578234 1.049628 -1.419533 +v 0.577573 1.021493 -1.412505 +v 0.577573 1.049628 -1.412505 +v 0.574329 1.021493 -1.406561 +v 0.574329 1.049628 -1.406561 +v 0.569292 1.021493 -1.403314 +v 0.548604 1.049628 -1.380858 +v 0.544332 1.049628 -1.385557 +v 0.554948 1.049628 -1.380556 +v 0.548604 1.021493 -1.380858 +v 0.559647 1.049628 -1.384829 +v 0.554948 1.021493 -1.380556 +v 0.559721 1.049628 -1.386380 +v 0.559721 1.021493 -1.386380 +v 0.555676 1.021493 -1.395872 +v 0.551889 1.049628 -1.396052 +v 0.549333 1.021493 -1.396173 +v 0.551889 1.021493 -1.396052 +v 0.544633 1.021493 -1.391901 +v 0.549333 1.049628 -1.396173 +v 0.544633 1.049628 -1.391901 +v 0.559647 1.021493 -1.384829 +v 0.567948 1.016754 -1.329629 +v 0.558531 1.054775 -1.326242 +v 0.567948 1.054775 -1.329629 +v 0.577965 1.016754 -1.301770 +v 0.577965 1.054775 -1.301770 +v 0.631913 1.019923 -1.203454 +v 0.628048 1.051605 -1.214202 +v 0.631913 1.051605 -1.203454 +v 0.602637 1.019923 -1.255320 +v 0.588858 1.051605 -1.277936 +v 0.602637 1.051605 -1.255320 +v 0.603564 1.016754 -1.230554 +v 0.621465 1.054775 -1.210324 +v 0.603564 1.054775 -1.230554 +v 0.582279 1.016754 -1.260194 +v 0.582279 1.054775 -1.260194 +v 0.558531 1.016754 -1.326242 +v 0.631097 1.053964 -1.203990 +v 0.628722 1.054775 -1.205552 +v 0.623644 1.051605 -1.223584 +v 0.625873 1.019923 -1.219519 +v 0.623644 1.019923 -1.223584 +v 0.589800 1.016754 -1.270145 +v 0.604193 1.016754 -1.246521 +v 0.625873 1.051605 -1.219519 +v 0.628048 1.019923 -1.214202 +v 0.583303 1.051605 -1.288577 +v 0.588858 1.019923 -1.277936 +v 0.583303 1.019923 -1.288577 +v 0.624928 1.016754 -1.215196 +v 0.625811 1.017564 -1.218084 +v 0.625634 1.016754 -1.213909 +v 0.623972 1.017564 -1.221439 +v 0.624928 1.054775 -1.215196 +v 0.625811 1.053964 -1.218084 +v 0.623972 1.053964 -1.221439 +v 0.627607 1.017564 -1.213696 +v 0.626322 1.016754 -1.212226 +v 0.625634 1.054775 -1.213909 +v 0.627607 1.053964 -1.213696 +v 0.603035 1.017564 -1.253070 +v 0.631097 1.017564 -1.203990 +v 0.628722 1.016754 -1.205552 +v 0.626322 1.054775 -1.212226 +v 0.604193 1.054775 -1.246521 +v 0.603035 1.053964 -1.253070 +v 0.583303 1.016754 -1.288577 +v 0.589099 1.017564 -1.275944 +v 0.583303 1.054775 -1.288577 +v 0.589800 1.054775 -1.270145 +v 0.589099 1.053964 -1.275944 +v 0.621465 1.016754 -1.210324 +v 0.528149 1.038786 -1.432743 +v 0.520582 1.038786 -1.453541 +v 0.528149 1.032743 -1.432743 +v 0.532004 1.032743 -1.469145 +v 0.526728 1.032743 -1.463709 +v 0.530552 1.032743 -1.470357 +v 0.533027 1.034308 -1.467348 +v 0.528251 1.037220 -1.462427 +v 0.528251 1.034308 -1.462427 +v 0.541834 1.034308 -1.471907 +v 0.533027 1.037220 -1.467348 +v 0.549776 1.034308 -1.472673 +v 0.541834 1.037220 -1.471907 +v 0.556162 1.034308 -1.471209 +v 0.549776 1.037220 -1.472673 +v 0.550521 1.038786 -1.474473 +v 0.550521 1.038786 -1.474473 +v 0.556162 1.037220 -1.471209 +v 0.541016 1.038786 -1.474955 +v 0.530552 1.038786 -1.470357 +v 0.532004 1.038786 -1.469145 +v 0.541016 1.032743 -1.474955 +v 0.550521 1.032743 -1.474473 +v 0.524641 1.032743 -1.464332 +v 0.520582 1.032743 -1.453541 +v 0.524641 1.038786 -1.464332 +v 0.526218 1.037220 -1.448325 +v 0.526218 1.034308 -1.448325 +v 0.525790 1.033143 -1.448390 +v 0.531355 1.033143 -1.423931 +v 0.532457 1.034308 -1.420902 +v 0.524546 1.032743 -1.448577 +v 0.527861 1.033143 -1.462755 +v 0.532766 1.033143 -1.467807 +v 0.541670 1.033143 -1.472417 +v 0.541192 1.032743 -1.473902 +v 0.549724 1.033143 -1.473194 +v 0.550521 1.032743 -1.474473 +v 0.554720 1.033143 -1.472044 +v 0.531355 1.038385 -1.423931 +v 0.532457 1.037220 -1.420902 +v 0.525790 1.038385 -1.448390 +v 0.527861 1.038385 -1.462755 +v 0.524546 1.038786 -1.448577 +v 0.532766 1.038385 -1.467807 +v 0.526728 1.038786 -1.463709 +v 0.541670 1.038385 -1.472417 +v 0.549724 1.038385 -1.473194 +v 0.541192 1.038786 -1.473902 +v 0.554720 1.038385 -1.472044 +v 0.764251 1.035764 -0.676303 +v 0.766077 1.058083 -0.698547 +v 0.757378 1.035764 -0.695419 +v 0.772950 1.058083 -0.679431 +v 0.787080 1.067328 -0.706098 +v 0.793953 1.067328 -0.686983 +v 0.808082 1.058083 -0.713650 +v 0.814955 1.058083 -0.694534 +v 0.816781 1.035764 -0.716778 +v 0.814955 1.013445 -0.694535 +v 0.808082 1.013445 -0.713650 +v 0.787080 1.004200 -0.706098 +v 0.793953 1.004200 -0.686983 +v 0.823655 1.035764 -0.697663 +v 0.766077 1.013445 -0.698547 +v 0.772950 1.013445 -0.679431 +v 0.451806 1.021880 -1.352307 +v 0.445677 1.049649 -1.350103 +v 0.451806 1.049649 -1.352307 +v 0.500120 1.049649 -1.198690 +v 0.500120 1.021880 -1.198690 +v 0.500100 1.035764 -1.198683 +v 0.502600 1.021880 -1.191793 +v 0.508729 1.049649 -1.193997 +v 0.502600 1.049649 -1.191793 +v 0.506249 1.021880 -1.200894 +v 0.506249 1.049649 -1.200894 +v 0.445677 1.021880 -1.350103 +v 0.508729 1.021880 -1.193997 +v 0.494289 1.021880 -1.196594 +v 0.496769 1.029589 -1.189696 +v 0.494289 1.029589 -1.196594 +v 0.494289 1.049649 -1.196594 +v 0.496769 1.041939 -1.189696 +v 0.496769 1.049649 -1.189696 +v 0.502580 1.035764 -1.191786 +v 0.494289 1.041939 -1.196594 +v 0.496769 1.021880 -1.189696 +v 0.601958 1.056398 -1.221501 +v 0.601958 1.015131 -1.221501 +v 0.601529 1.010761 -1.221699 +v 0.619214 1.060768 -1.172514 +v 0.601529 1.060768 -1.221699 +v 0.619214 1.010761 -1.172514 +v 0.645547 1.060768 -1.181983 +v 0.645547 1.010761 -1.181983 +v 0.640684 1.056398 -1.195506 +v 0.637175 1.060768 -1.205268 +v 0.637175 1.010761 -1.205268 +v 0.614669 1.015131 -1.186152 +v 0.614669 1.056398 -1.186152 +v 0.640684 1.015131 -1.195506 +v 0.637175 1.056398 -1.205268 +v 0.637175 1.015131 -1.205268 +v 0.522823 1.002659 -1.275367 +v 0.510153 1.016124 -1.270811 +v 0.522823 1.016124 -1.275367 +v 0.510153 1.002659 -1.270811 +v 0.515948 1.002659 -1.254694 +v 0.515948 1.002764 -1.254693 +v 0.546742 1.016124 -1.169050 +v 0.546742 1.002764 -1.169050 +v 0.547102 1.002716 -1.169180 +v 0.559413 1.016124 -1.173606 +v 0.559413 1.002716 -1.173606 +v 0.528575 1.002716 -1.259372 +v 0.528575 1.002659 -1.259372 +v 0.516262 1.002659 -1.254944 +v 0.540536 1.005798 -1.147583 +v 0.503010 1.009891 -1.228926 +v 0.506647 1.005798 -1.241834 +v 0.546759 1.003263 -1.149820 +v 0.510582 1.003263 -1.250433 +v 0.553216 1.002391 -1.152142 +v 0.580341 1.002391 -1.161895 +v 0.516253 1.002391 -1.254941 +v 0.543377 1.002391 -1.264694 +v 0.503099 1.010193 -1.228958 +v 0.540614 1.006105 -1.147611 +v 0.506721 1.006106 -1.241861 +v 0.546804 1.003582 -1.149836 +v 0.553227 1.002716 -1.152146 +v 0.543377 1.002716 -1.264694 +v 0.580341 1.002716 -1.161895 +v 0.533206 1.009891 -1.144947 +v 0.510622 1.003583 -1.250448 +v 0.533295 1.010193 -1.144979 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.520987 +vt 0.717254 0.520987 +vt 0.680946 0.743152 +vt 0.680946 0.743152 +vt 0.680946 0.747663 +vt 0.712868 0.738640 +vt 0.712868 0.716943 +vt 0.680946 0.716943 +vt 0.712868 0.747663 +vt 0.712868 0.743152 +vt 0.712868 0.738640 +vt 0.680946 0.738640 +vt 0.712868 0.738640 +vt 0.680946 0.738640 +vt 0.621661 0.723604 +vt 0.621661 0.716943 +vt 0.680946 0.716943 +vt 0.621661 0.716943 +vt 0.680946 0.738640 +vt 0.712868 0.738640 +vt 0.712868 0.743152 +vt 0.621661 0.723604 +vt 0.712868 0.716943 +vt 0.680946 0.738640 +vt 0.105115 0.891994 +vt 0.105115 0.913274 +vt 0.105115 0.891994 +vt 0.105115 0.913274 +vt 0.375880 0.913274 +vt 0.375880 0.913274 +vt 0.375880 0.891994 +vt 0.375880 0.891994 +vt 0.092643 0.892375 +vt 0.092643 0.920774 +vt 0.092643 0.920774 +vt 0.348596 0.920774 +vt 0.348596 0.920774 +vt 0.382005 0.892375 +vt 0.348596 0.892375 +vt 0.348596 0.892375 +vt 0.092643 0.892375 +vt 0.382005 0.920774 +vt 0.382005 0.892375 +vt 0.382005 0.956688 +vt 0.382005 0.920774 +vt 0.348596 0.956688 +vt 0.382005 0.956688 +vt 0.348596 0.956688 +vt 0.394791 0.688361 +vt 0.394791 0.696196 +vt 0.394791 0.688361 +vt 0.588350 0.696196 +vt 0.588350 0.696196 +vt 0.588350 0.696221 +vt 0.597168 0.696196 +vt 0.597168 0.688361 +vt 0.597168 0.696196 +vt 0.588350 0.688361 +vt 0.588350 0.688361 +vt 0.394791 0.696196 +vt 0.597168 0.688361 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.588350 0.703650 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.696221 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.371558 0.219091 +vt 0.371558 0.219091 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.434034 0.185834 +vt 0.434034 0.185834 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.404268 0.185834 +vt 0.416747 0.219091 +vt 0.416747 0.219091 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.404268 0.185834 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.540019 0.682674 +vt 0.540021 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682121 +vt 0.671399 0.663237 +vt 0.671399 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.682125 +vt 0.729032 0.553323 +vt 0.698162 0.542055 +vt 0.698162 0.553323 +vt 0.729032 0.542055 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.476384 +vt 0.729032 0.476384 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.542055 +vt 0.729032 0.542055 +vt 0.743036 0.769004 +vt 0.141560 0.758639 +vt 0.141560 0.769004 +vt 0.743036 0.758639 +vt 0.141560 0.733616 +vt 0.743036 0.733616 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.698229 +vt 0.743036 0.698229 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.733616 +vt 0.743036 0.733617 +vt 0.141560 0.758639 +vt 0.743036 0.758639 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.496592 0.393114 +vt 0.496592 0.393114 +vt 0.493668 0.386056 +vt 0.493668 0.386056 +vt 0.486610 0.383132 +vt 0.486610 0.383132 +vt 0.479552 0.386056 +vt 0.479552 0.386056 +vt 0.476628 0.393114 +vt 0.476628 0.393114 +vt 0.479552 0.400172 +vt 0.479552 0.400172 +vt 0.628329 0.321805 +vt 0.628329 0.321805 +vt 0.723547 0.410717 +vt 0.451913 0.450017 +vt 0.417065 0.447278 +vt 0.451913 0.450017 +vt 0.492148 0.449947 +vt 0.492148 0.449947 +vt 0.320353 0.418005 +vt 0.317476 0.415326 +vt 0.317476 0.415326 +vt 0.513735 0.353212 +vt 0.533389 0.354544 +vt 0.513735 0.353212 +vt 0.627472 0.437038 +vt 0.633953 0.445991 +vt 0.632155 0.442480 +vt 0.598064 0.430599 +vt 0.526987 0.447088 +vt 0.526987 0.447088 +vt 0.346805 0.430312 +vt 0.337725 0.427903 +vt 0.346805 0.430312 +vt 0.328043 0.423398 +vt 0.328043 0.423398 +vt 0.606224 0.430794 +vt 0.606224 0.430794 +vt 0.337725 0.427903 +vt 0.409219 0.330020 +vt 0.407407 0.332776 +vt 0.404520 0.335973 +vt 0.637952 0.444202 +vt 0.649964 0.444108 +vt 0.639619 0.447202 +vt 0.496840 0.350199 +vt 0.496840 0.350199 +vt 0.621523 0.434636 +vt 0.689639 0.428669 +vt 0.668641 0.437565 +vt 0.668641 0.437565 +vt 0.649964 0.444108 +vt 0.623159 0.421808 +vt 0.624826 0.429596 +vt 0.620060 0.417870 +vt 0.600123 0.333994 +vt 0.589773 0.342184 +vt 0.589773 0.342184 +vt 0.550537 0.353838 +vt 0.550537 0.353838 +vt 0.563678 0.352263 +vt 0.576433 0.348871 +vt 0.563678 0.352263 +vt 0.576433 0.348871 +vt 0.588701 0.342722 +vt 0.600123 0.333994 +vt 0.600123 0.333994 +vt 0.608431 0.325267 +vt 0.681681 0.411435 +vt 0.661797 0.419859 +vt 0.608431 0.325267 +vt 0.707333 0.419804 +vt 0.723547 0.410717 +vt 0.707333 0.419804 +vt 0.689639 0.428669 +vt 0.634111 0.435986 +vt 0.629112 0.424699 +vt 0.626650 0.437620 +vt 0.626907 0.437684 +vt 0.589627 0.342258 +vt 0.589773 0.342184 +vt 0.589226 0.342459 +vt 0.595854 0.360487 +vt 0.613675 0.411865 +vt 0.592285 0.362257 +vt 0.607904 0.408042 +vt 0.592285 0.362257 +vt 0.587703 0.364543 +vt 0.621514 0.434631 +vt 0.661797 0.419859 +vt 0.634046 0.436039 +vt 0.665219 0.428712 +vt 0.627288 0.438200 +vt 0.634290 0.445789 +vt 0.624826 0.429596 +vt 0.628358 0.433800 +vt 0.626650 0.437620 +vt 0.627288 0.438200 +vt 0.589627 0.342258 +vt 0.589226 0.342459 +vt 0.588701 0.342722 +vt 0.613675 0.411865 +vt 0.595854 0.360487 +vt 0.607904 0.408042 +vt 0.587703 0.364543 +vt 0.494375 0.424075 +vt 0.525936 0.437655 +vt 0.491751 0.440461 +vt 0.526705 0.444560 +vt 0.492041 0.447405 +vt 0.494375 0.424075 +vt 0.525936 0.437655 +vt 0.527906 0.421323 +vt 0.491751 0.440461 +vt 0.526705 0.444560 +vt 0.492041 0.447405 +vt 0.455663 0.424142 +vt 0.452277 0.440529 +vt 0.452011 0.447475 +vt 0.455663 0.424142 +vt 0.452277 0.440529 +vt 0.422122 0.421506 +vt 0.418083 0.437842 +vt 0.417338 0.444750 +vt 0.422122 0.421506 +vt 0.417338 0.444750 +vt 0.452011 0.447475 +vt 0.417065 0.447278 +vt 0.344211 0.409994 +vt 0.348674 0.420993 +vt 0.340968 0.418949 +vt 0.347305 0.427815 +vt 0.338594 0.425504 +vt 0.344211 0.409994 +vt 0.348674 0.420993 +vt 0.350543 0.411674 +vt 0.340968 0.418949 +vt 0.347305 0.427815 +vt 0.338594 0.425504 +vt 0.332805 0.415150 +vt 0.337566 0.406902 +vt 0.329319 0.421188 +vt 0.332805 0.415150 +vt 0.326277 0.410573 +vt 0.332202 0.403141 +vt 0.321940 0.416013 +vt 0.337566 0.406902 +vt 0.326277 0.410573 +vt 0.321940 0.416013 +vt 0.329319 0.421188 +vt 0.320353 0.418005 +vt 0.321958 0.406964 +vt 0.326439 0.398603 +vt 0.318677 0.413085 +vt 0.332202 0.403141 +vt 0.321958 0.406964 +vt 0.318677 0.413085 +vt 0.350543 0.411674 +vt 0.418083 0.437842 +vt 0.597512 0.421096 +vt 0.596961 0.411593 +vt 0.609075 0.428320 +vt 0.597916 0.428052 +vt 0.597512 0.421096 +vt 0.614083 0.420982 +vt 0.609075 0.428320 +vt 0.597916 0.428052 +vt 0.527906 0.421323 +vt 0.596961 0.411593 +vt 0.598064 0.430599 +vt 0.492779 0.368748 +vt 0.512578 0.362642 +vt 0.511421 0.372072 +vt 0.494809 0.359474 +vt 0.513425 0.355739 +vt 0.496296 0.352684 +vt 0.492779 0.368748 +vt 0.512578 0.362642 +vt 0.494809 0.359474 +vt 0.513425 0.355739 +vt 0.496296 0.352684 +vt 0.533263 0.364044 +vt 0.533137 0.373544 +vt 0.533356 0.357089 +vt 0.511421 0.372072 +vt 0.533263 0.364044 +vt 0.533356 0.357089 +vt 0.533389 0.354544 +vt 0.552058 0.372765 +vt 0.551297 0.363302 +vt 0.550740 0.356374 +vt 0.552058 0.372765 +vt 0.533137 0.373544 +vt 0.551297 0.363302 +vt 0.410939 0.327841 +vt 0.412106 0.326823 +vt 0.398101 0.344105 +vt 0.567262 0.370942 +vt 0.580011 0.357736 +vt 0.583588 0.366602 +vt 0.565470 0.361603 +vt 0.577392 0.351247 +vt 0.564158 0.354765 +vt 0.567262 0.370942 +vt 0.580011 0.357736 +vt 0.565470 0.361602 +vt 0.577392 0.351247 +vt 0.564158 0.354765 +vt 0.593588 0.350968 +vt 0.592299 0.351594 +vt 0.590796 0.344538 +vt 0.590020 0.344921 +vt 0.550740 0.356374 +vt 0.619069 0.430717 +vt 0.614084 0.420983 +vt 0.600123 0.333994 +vt 0.597402 0.359752 +vt 0.632313 0.442352 +vt 0.627472 0.437038 +vt 0.623193 0.421852 +vt 0.639144 0.447563 +vt 0.702887 0.411421 +vt 0.685660 0.420052 +vt 0.706141 0.417558 +vt 0.688573 0.426360 +vt 0.681681 0.411435 +vt 0.702887 0.411421 +vt 0.698440 0.403038 +vt 0.685660 0.420052 +vt 0.706141 0.417558 +vt 0.688573 0.426360 +vt 0.665219 0.428712 +vt 0.667724 0.435193 +vt 0.665108 0.436110 +vt 0.665108 0.436110 +vt 0.667724 0.435193 +vt 0.721597 0.408896 +vt 0.716269 0.403921 +vt 0.708991 0.397125 +vt 0.708991 0.397125 +vt 0.698440 0.403038 +vt 0.716269 0.403921 +vt 0.721597 0.408896 +vt 0.600123 0.333994 +vt 0.593588 0.350968 +vt 0.600123 0.333994 +vt 0.590796 0.344538 +vt 0.600123 0.333994 +vt 0.597402 0.359752 +vt 0.592299 0.351594 +vt 0.590020 0.344921 +vt 0.619065 0.430715 +vt 0.589107 0.353184 +vt 0.587987 0.345938 +vt 0.584897 0.355289 +vt 0.585262 0.347302 +vt 0.589107 0.353184 +vt 0.584897 0.355289 +vt 0.587987 0.345937 +vt 0.585262 0.347302 +vt 0.619396 0.424552 +vt 0.624145 0.433979 +vt 0.624532 0.422226 +vt 0.620060 0.417870 +vt 0.624532 0.422226 +vt 0.637719 0.444398 +vt 0.619396 0.424552 +vt 0.624145 0.433979 +vt 0.583588 0.366602 +vt 0.410939 0.327841 +vt 0.413826 0.324644 +vt 0.404520 0.335973 +vt 0.400987 0.340908 +vt 0.407407 0.332776 +vt 0.409219 0.330020 +vt 0.413826 0.324644 +vt 0.397524 0.320401 +vt 0.390272 0.328317 +vt 0.395581 0.322522 +vt 0.412106 0.326823 +vt 0.397524 0.320401 +vt 0.395581 0.322522 +vt 0.390272 0.328317 +vt 0.400987 0.340908 +vt 0.383020 0.336232 +vt 0.383020 0.336232 +vt 0.629108 0.424700 +vt 0.628386 0.433758 +vt 0.326439 0.398603 +vt 0.352835 0.400778 +vt 0.484968 0.425617 +vt 0.486394 0.418030 +vt 0.488653 0.419772 +vt 0.488653 0.419772 +vt 0.354262 0.393192 +vt 0.486394 0.418030 +vt 0.484968 0.425617 +vt 0.487705 0.424814 +vt 0.354262 0.393192 +vt 0.351525 0.393994 +vt 0.352835 0.400778 +vt 0.351525 0.393994 +vt 0.348633 0.396061 +vt 0.348633 0.396061 +vt 0.350577 0.399036 +vt 0.490597 0.422747 +vt 0.490597 0.422747 +vt 0.487705 0.424814 +vt 0.350577 0.399036 +vt 0.362627 0.387623 +vt 0.494690 0.412449 +vt 0.496116 0.404863 +vt 0.498387 0.406607 +vt 0.498387 0.406607 +vt 0.364053 0.380037 +vt 0.496116 0.404863 +vt 0.494690 0.412449 +vt 0.497439 0.411649 +vt 0.364053 0.380037 +vt 0.361304 0.380838 +vt 0.362627 0.387623 +vt 0.361304 0.380838 +vt 0.358401 0.382902 +vt 0.358401 0.382902 +vt 0.360356 0.385880 +vt 0.500342 0.409584 +vt 0.500342 0.409584 +vt 0.497439 0.411649 +vt 0.360356 0.385880 +vt 0.384519 0.361285 +vt 0.516529 0.386100 +vt 0.517955 0.378514 +vt 0.520235 0.380260 +vt 0.520235 0.380260 +vt 0.385945 0.353698 +vt 0.517955 0.378514 +vt 0.516529 0.386100 +vt 0.519287 0.385301 +vt 0.385945 0.353698 +vt 0.383187 0.354497 +vt 0.384519 0.361285 +vt 0.383187 0.354497 +vt 0.380275 0.356560 +vt 0.380275 0.356560 +vt 0.382239 0.359539 +vt 0.522198 0.383239 +vt 0.522198 0.383239 +vt 0.519287 0.385301 +vt 0.382239 0.359539 +vt 0.374483 0.374411 +vt 0.506492 0.399226 +vt 0.507919 0.391640 +vt 0.510198 0.393386 +vt 0.510198 0.393386 +vt 0.375909 0.366825 +vt 0.507919 0.391640 +vt 0.506492 0.399226 +vt 0.509250 0.398428 +vt 0.375909 0.366825 +vt 0.373151 0.367623 +vt 0.374483 0.374411 +vt 0.373151 0.367623 +vt 0.370239 0.369686 +vt 0.370239 0.369686 +vt 0.372203 0.372665 +vt 0.512162 0.396365 +vt 0.512162 0.396365 +vt 0.509250 0.398428 +vt 0.372203 0.372665 +vt 0.352835 0.400778 +vt 0.484968 0.425617 +vt 0.486394 0.418030 +vt 0.488653 0.419772 +vt 0.488653 0.419772 +vt 0.354262 0.393192 +vt 0.486394 0.418030 +vt 0.484968 0.425617 +vt 0.487705 0.424814 +vt 0.354262 0.393192 +vt 0.351525 0.393994 +vt 0.352835 0.400778 +vt 0.351525 0.393994 +vt 0.348633 0.396061 +vt 0.348633 0.396061 +vt 0.350577 0.399036 +vt 0.490597 0.422747 +vt 0.490597 0.422747 +vt 0.487705 0.424814 +vt 0.350577 0.399036 +vt 0.362627 0.387623 +vt 0.494690 0.412449 +vt 0.496116 0.404863 +vt 0.498387 0.406607 +vt 0.498387 0.406607 +vt 0.364053 0.380037 +vt 0.496116 0.404863 +vt 0.494690 0.412449 +vt 0.497439 0.411649 +vt 0.364053 0.380037 +vt 0.361304 0.380837 +vt 0.362627 0.387623 +vt 0.361304 0.380838 +vt 0.358401 0.382902 +vt 0.358401 0.382902 +vt 0.360356 0.385880 +vt 0.500342 0.409584 +vt 0.500342 0.409584 +vt 0.497439 0.411649 +vt 0.360356 0.385880 +vt 0.384519 0.361285 +vt 0.516529 0.386100 +vt 0.517955 0.378514 +vt 0.520235 0.380260 +vt 0.520235 0.380260 +vt 0.385945 0.353698 +vt 0.517955 0.378514 +vt 0.516529 0.386100 +vt 0.519287 0.385301 +vt 0.385945 0.353698 +vt 0.383187 0.354497 +vt 0.384519 0.361285 +vt 0.383187 0.354497 +vt 0.380275 0.356560 +vt 0.380275 0.356560 +vt 0.382239 0.359539 +vt 0.522198 0.383239 +vt 0.522198 0.383239 +vt 0.519287 0.385301 +vt 0.382239 0.359539 +vt 0.374483 0.374411 +vt 0.506492 0.399226 +vt 0.507919 0.391640 +vt 0.510198 0.393386 +vt 0.510198 0.393386 +vt 0.375909 0.366825 +vt 0.507919 0.391640 +vt 0.506492 0.399226 +vt 0.509250 0.398428 +vt 0.375909 0.366825 +vt 0.373151 0.367623 +vt 0.374483 0.374411 +vt 0.373151 0.367623 +vt 0.370239 0.369686 +vt 0.370239 0.369686 +vt 0.372203 0.372665 +vt 0.512162 0.396365 +vt 0.512162 0.396365 +vt 0.509250 0.398428 +vt 0.372203 0.372665 +vt 0.600123 0.333994 +vt 0.398101 0.344105 +vt 0.410446 0.878172 +vt 0.459032 0.957893 +vt 0.409800 0.933798 +vt 0.270167 0.928387 +vt 0.263671 0.929521 +vt 0.138793 0.990301 +vt 0.097751 0.989006 +vt 0.138793 0.990301 +vt 0.459032 0.957893 +vt 0.031544 0.877691 +vt 0.031544 0.877691 +vt 0.031544 0.956752 +vt 0.097751 0.989006 +vt 0.062956 0.983571 +vt 0.039707 0.971267 +vt 0.039707 0.971267 +vt 0.062956 0.983571 +vt 0.031544 0.956752 +vt 0.459032 0.990301 +vt 0.133506 0.958479 +vt 0.144365 0.970295 +vt 0.119823 0.970161 +vt 0.141437 0.980809 +vt 0.108223 0.980065 +vt 0.139480 0.987834 +vt 0.100472 0.986683 +vt 0.133506 0.958479 +vt 0.144365 0.970295 +vt 0.147819 0.957893 +vt 0.119823 0.970161 +vt 0.141437 0.980809 +vt 0.108223 0.980065 +vt 0.139480 0.987834 +vt 0.100472 0.986683 +vt 0.048604 0.975975 +vt 0.056147 0.979967 +vt 0.061187 0.982635 +vt 0.056147 0.979967 +vt 0.061187 0.982635 +vt 0.459032 0.987834 +vt 0.459032 0.980809 +vt 0.459032 0.970295 +vt 0.459032 0.970295 +vt 0.410561 0.970295 +vt 0.411041 0.967999 +vt 0.147819 0.957893 +vt 0.257754 0.957893 +vt 0.257754 0.967999 +vt 0.270167 0.979350 +vt 0.398628 0.979350 +vt 0.459032 0.980809 +vt 0.459032 0.987834 +vt 0.459032 0.990301 +vt 0.458599 0.845169 +vt 0.410339 0.844769 +vt 0.458599 0.845169 +vt 0.410446 0.878172 +vt 0.410339 0.844769 +vt 0.405124 0.929521 +vt 0.409800 0.933798 +vt 0.263671 0.929521 +vt 0.258995 0.933798 +vt 0.270167 0.928387 +vt 0.398628 0.928387 +vt 0.398628 0.928387 +vt 0.381400 0.940125 +vt 0.381400 0.967613 +vt 0.287395 0.940125 +vt 0.405124 0.929521 +vt 0.258995 0.973940 +vt 0.257754 0.967999 +vt 0.257754 0.939738 +vt 0.257754 0.939738 +vt 0.258995 0.973940 +vt 0.263671 0.978216 +vt 0.411041 0.939738 +vt 0.411041 0.939738 +vt 0.263671 0.978216 +vt 0.409800 0.973940 +vt 0.405124 0.978216 +vt 0.405124 0.978216 +vt 0.270167 0.979350 +vt 0.258995 0.933798 +vt 0.409800 0.973940 +vt 0.411041 0.957893 +vt 0.396858 0.931068 +vt 0.271936 0.931068 +vt 0.288230 0.936125 +vt 0.269676 0.931463 +vt 0.402323 0.934393 +vt 0.403459 0.939837 +vt 0.399119 0.931463 +vt 0.380565 0.936125 +vt 0.411041 0.967999 +vt 0.380565 0.971613 +vt 0.402323 0.973344 +vt 0.399119 0.976274 +vt 0.288230 0.971613 +vt 0.269676 0.976274 +vt 0.266472 0.973344 +vt 0.265336 0.939837 +vt 0.266472 0.934393 +vt 0.287395 0.967613 +vt 0.396858 0.976669 +vt 0.398628 0.979350 +vt 0.271937 0.976669 +vt 0.265336 0.967900 +vt 0.403459 0.967900 +vt 0.048604 0.975975 +vt 0.258234 0.970295 +vt 0.766609 0.756295 +vt 0.165134 0.745931 +vt 0.165134 0.756295 +vt 0.766609 0.745931 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.685521 +vt 0.766609 0.685521 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.745931 +vt 0.766609 0.745931 +vt 0.782994 0.575784 +vt 0.714498 0.564516 +vt 0.714498 0.575784 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.498845 +vt 0.782994 0.498845 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.782994 0.537314 +vt 0.782994 0.559627 +vt 0.782994 0.537314 +vt 0.714498 0.564516 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.714498 0.515002 +vt 0.714498 0.559627 +vt 0.714498 0.568869 +vt 0.714498 0.537314 +vt 0.714498 0.515002 +vt 0.782994 0.515002 +vt 0.714498 0.505760 +vt 0.782994 0.505760 +vt 0.782994 0.515002 +vt 0.782994 0.559627 +vt 0.714498 0.559627 +vt 0.782994 0.568869 +vt 0.729257 0.590922 +vt 0.704821 0.579801 +vt 0.704821 0.590922 +vt 0.729257 0.579801 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.514983 +vt 0.729257 0.514983 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.579801 +vt 0.729257 0.579801 +vt 0.164335 0.434657 +vt 0.179187 0.434574 +vt 0.178601 0.434657 +vt 0.482821 0.346461 +vt 0.475427 0.434657 +vt 0.482821 0.434657 +vt 0.670036 0.330470 +vt 0.482821 0.330470 +vt 0.670036 0.330470 +vt 0.470021 0.434657 +vt 0.475425 0.346133 +vt 0.475427 0.434657 +vt 0.238885 0.370245 +vt 0.251790 0.369380 +vt 0.258817 0.371634 +vt 0.208811 0.434119 +vt 0.213706 0.434119 +vt 0.263888 0.365240 +vt 0.223848 0.346310 +vt 0.220877 0.342772 +vt 0.482821 0.346461 +vt 0.482821 0.434657 +vt 0.462275 0.434657 +vt 0.470016 0.345190 +vt 0.462279 0.342235 +vt 0.670036 0.434657 +vt 0.670036 0.434657 +vt 0.670036 0.346418 +vt 0.164335 0.324456 +vt 0.164335 0.324456 +vt 0.164335 0.340403 +vt 0.462275 0.434657 +vt 0.470016 0.345190 +vt 0.449475 0.434657 +vt 0.456870 0.341015 +vt 0.456869 0.434657 +vt 0.475425 0.330022 +vt 0.482821 0.330470 +vt 0.470016 0.328940 +vt 0.462280 0.325986 +vt 0.462280 0.325986 +vt 0.475425 0.346133 +vt 0.470021 0.434657 +vt 0.470016 0.328940 +vt 0.456870 0.341015 +vt 0.449475 0.434657 +vt 0.456869 0.434657 +vt 0.449475 0.324456 +vt 0.456870 0.324904 +vt 0.456870 0.324904 +vt 0.462279 0.342235 +vt 0.475425 0.332181 +vt 0.470016 0.331117 +vt 0.470016 0.337065 +vt 0.475425 0.338078 +vt 0.482821 0.332613 +vt 0.482821 0.338466 +vt 0.475425 0.330022 +vt 0.482821 0.332613 +vt 0.475425 0.338078 +vt 0.482821 0.338466 +vt 0.475425 0.332181 +vt 0.470016 0.337065 +vt 0.462280 0.328162 +vt 0.456870 0.332959 +vt 0.462280 0.334110 +vt 0.449475 0.324456 +vt 0.456870 0.327062 +vt 0.449475 0.332451 +vt 0.449475 0.340446 +vt 0.456870 0.327062 +vt 0.449475 0.326598 +vt 0.449475 0.332451 +vt 0.456870 0.332959 +vt 0.449475 0.340446 +vt 0.462280 0.328163 +vt 0.462280 0.334110 +vt 0.670036 0.332607 +vt 0.670036 0.338444 +vt 0.670036 0.346418 +vt 0.470016 0.331117 +vt 0.670036 0.338444 +vt 0.164335 0.434657 +vt 0.179188 0.434574 +vt 0.163633 0.434674 +vt 0.178592 0.332430 +vt 0.179177 0.339433 +vt 0.179177 0.330739 +vt 0.164335 0.332429 +vt 0.163633 0.324373 +vt 0.164335 0.326592 +vt 0.178592 0.324456 +vt 0.178592 0.326592 +vt 0.178592 0.340405 +vt 0.288891 0.370384 +vt 0.291861 0.366747 +vt 0.264079 0.364938 +vt 0.268958 0.434243 +vt 0.268958 0.370245 +vt 0.268958 0.434243 +vt 0.299032 0.370384 +vt 0.299032 0.434243 +vt 0.299032 0.370384 +vt 0.228743 0.434243 +vt 0.238885 0.434243 +vt 0.228743 0.434243 +vt 0.228743 0.434243 +vt 0.238885 0.434243 +vt 0.238885 0.434243 +vt 0.213706 0.434119 +vt 0.178603 0.434657 +vt 0.228743 0.434243 +vt 0.228743 0.370245 +vt 0.228743 0.370245 +vt 0.228743 0.370384 +vt 0.329106 0.434243 +vt 0.329106 0.370245 +vt 0.329106 0.434243 +vt 0.329106 0.370384 +vt 0.329106 0.434243 +vt 0.329106 0.370384 +vt 0.258817 0.434243 +vt 0.258817 0.434243 +vt 0.258817 0.434243 +vt 0.268958 0.434243 +vt 0.268958 0.434243 +vt 0.238885 0.434243 +vt 0.238885 0.370384 +vt 0.238885 0.370384 +vt 0.258817 0.370384 +vt 0.258817 0.371634 +vt 0.264075 0.364940 +vt 0.266481 0.366696 +vt 0.265988 0.366706 +vt 0.268958 0.370245 +vt 0.258817 0.370245 +vt 0.291861 0.366747 +vt 0.288891 0.370384 +vt 0.288891 0.434243 +vt 0.299032 0.434243 +vt 0.288891 0.434243 +vt 0.288891 0.434243 +vt 0.299032 0.434243 +vt 0.235914 0.366706 +vt 0.238885 0.370245 +vt 0.268958 0.370384 +vt 0.288891 0.370245 +vt 0.288891 0.370245 +vt 0.288891 0.434243 +vt 0.359180 0.370384 +vt 0.359180 0.434243 +vt 0.359180 0.370384 +vt 0.359180 0.434243 +vt 0.359180 0.370245 +vt 0.359180 0.434243 +vt 0.389254 0.370384 +vt 0.389254 0.434243 +vt 0.389254 0.370384 +vt 0.318965 0.434243 +vt 0.318965 0.434243 +vt 0.318965 0.434243 +vt 0.329106 0.434243 +vt 0.299032 0.434243 +vt 0.299032 0.370245 +vt 0.231714 0.366747 +vt 0.318965 0.370245 +vt 0.318965 0.370245 +vt 0.318965 0.370384 +vt 0.318965 0.434243 +vt 0.389254 0.434243 +vt 0.389254 0.370245 +vt 0.389254 0.434243 +vt 0.419327 0.370384 +vt 0.419327 0.434243 +vt 0.419327 0.370384 +vt 0.349038 0.434243 +vt 0.349038 0.434243 +vt 0.349038 0.434243 +vt 0.359180 0.434243 +vt 0.296062 0.366706 +vt 0.299032 0.370245 +vt 0.349038 0.370245 +vt 0.349038 0.370245 +vt 0.349038 0.370384 +vt 0.349038 0.434243 +vt 0.419327 0.434243 +vt 0.419327 0.370245 +vt 0.419327 0.434243 +vt 0.208811 0.434119 +vt 0.208811 0.357554 +vt 0.208811 0.346449 +vt 0.379112 0.434243 +vt 0.379112 0.434243 +vt 0.379112 0.434243 +vt 0.389254 0.434243 +vt 0.326136 0.366706 +vt 0.329106 0.370245 +vt 0.379112 0.370245 +vt 0.379112 0.370245 +vt 0.379112 0.370384 +vt 0.379112 0.434243 +vt 0.223848 0.346310 +vt 0.223848 0.363353 +vt 0.201640 0.342812 +vt 0.198670 0.346449 +vt 0.409186 0.434243 +vt 0.409186 0.434243 +vt 0.409186 0.434243 +vt 0.419327 0.434243 +vt 0.356209 0.366706 +vt 0.359180 0.370245 +vt 0.321935 0.366747 +vt 0.409186 0.370245 +vt 0.409186 0.370245 +vt 0.409186 0.370384 +vt 0.409186 0.434243 +vt 0.416357 0.366706 +vt 0.419327 0.370245 +vt 0.198670 0.434119 +vt 0.198670 0.434119 +vt 0.198670 0.434119 +vt 0.208811 0.434119 +vt 0.386283 0.366706 +vt 0.389254 0.370245 +vt 0.352009 0.366747 +vt 0.198670 0.353643 +vt 0.198670 0.346310 +vt 0.223848 0.434119 +vt 0.223848 0.434119 +vt 0.223848 0.363353 +vt 0.198670 0.346449 +vt 0.198670 0.353643 +vt 0.205841 0.342772 +vt 0.208811 0.346310 +vt 0.412156 0.366747 +vt 0.213706 0.434119 +vt 0.223848 0.434119 +vt 0.213706 0.434119 +vt 0.208811 0.357554 +vt 0.208811 0.434119 +vt 0.382083 0.366747 +vt 0.213706 0.359442 +vt 0.213706 0.346449 +vt 0.213706 0.346449 +vt 0.213706 0.359442 +vt 0.233814 0.365240 +vt 0.231714 0.366706 +vt 0.235914 0.366706 +vt 0.291861 0.366706 +vt 0.321935 0.366706 +vt 0.382083 0.366706 +vt 0.412156 0.366706 +vt 0.198670 0.346310 +vt 0.201640 0.342772 +vt 0.201640 0.342772 +vt 0.203740 0.341306 +vt 0.412156 0.366706 +vt 0.414257 0.365240 +vt 0.258817 0.370245 +vt 0.261787 0.366706 +vt 0.261787 0.366706 +vt 0.263888 0.365240 +vt 0.291861 0.366706 +vt 0.293962 0.365240 +vt 0.321935 0.366706 +vt 0.324035 0.365240 +vt 0.352009 0.366706 +vt 0.352009 0.366706 +vt 0.354109 0.365240 +vt 0.382083 0.366706 +vt 0.384183 0.365240 +vt 0.218777 0.341306 +vt 0.220877 0.342772 +vt 0.218777 0.341306 +vt 0.231714 0.366706 +vt 0.233814 0.365240 +vt 0.265988 0.366706 +vt 0.293962 0.365240 +vt 0.296062 0.366706 +vt 0.354109 0.365240 +vt 0.356209 0.366706 +vt 0.384183 0.365240 +vt 0.386283 0.366706 +vt 0.414257 0.365240 +vt 0.416357 0.366706 +vt 0.213706 0.346310 +vt 0.216677 0.342772 +vt 0.213706 0.346310 +vt 0.216677 0.342772 +vt 0.324035 0.365240 +vt 0.326136 0.366706 +vt 0.203740 0.341306 +vt 0.205841 0.342772 +vt 0.228743 0.370384 +vt 0.231714 0.366747 +vt 0.233814 0.365240 +vt 0.258817 0.434243 +vt 0.318965 0.370384 +vt 0.321935 0.366747 +vt 0.349038 0.370384 +vt 0.352009 0.366747 +vt 0.379112 0.370384 +vt 0.382083 0.366747 +vt 0.386283 0.366747 +vt 0.409186 0.370384 +vt 0.412156 0.366747 +vt 0.293962 0.365240 +vt 0.293962 0.365240 +vt 0.235914 0.366747 +vt 0.235914 0.366747 +vt 0.233814 0.365240 +vt 0.296062 0.366747 +vt 0.296062 0.366747 +vt 0.326136 0.366747 +vt 0.326136 0.366747 +vt 0.324035 0.365240 +vt 0.386283 0.366747 +vt 0.384183 0.365240 +vt 0.208811 0.346449 +vt 0.205841 0.342812 +vt 0.205841 0.342812 +vt 0.203740 0.341306 +vt 0.218777 0.341306 +vt 0.216677 0.342812 +vt 0.218777 0.341306 +vt 0.216677 0.342812 +vt 0.354109 0.365240 +vt 0.354109 0.365240 +vt 0.356209 0.366747 +vt 0.356209 0.366747 +vt 0.384183 0.365240 +vt 0.414257 0.365240 +vt 0.414257 0.365240 +vt 0.416357 0.366747 +vt 0.416357 0.366747 +vt 0.223848 0.346449 +vt 0.220877 0.342812 +vt 0.223848 0.346449 +vt 0.220877 0.342812 +vt 0.324035 0.365240 +vt 0.261787 0.366747 +vt 0.261821 0.366747 +vt 0.203740 0.341306 +vt 0.201640 0.342812 +vt 0.266477 0.366698 +vt 0.268963 0.370382 +vt 0.179177 0.322044 +vt 0.178592 0.324456 +vt 0.164335 0.340403 +vt 0.163633 0.434674 +vt 0.178592 0.326592 +vt 0.179177 0.324374 +vt 0.178592 0.340405 +vt 0.449475 0.326598 +vt 0.178592 0.332430 +vt 0.163633 0.322044 +vt 0.163633 0.322044 +vt 0.178593 0.345901 +vt 0.179178 0.345425 +vt 0.163633 0.339431 +vt 0.179177 0.330739 +vt 0.164335 0.332429 +vt 0.163633 0.339431 +vt 0.163633 0.330737 +vt 0.179177 0.339433 +vt 0.163633 0.330737 +vt 0.179177 0.324374 +vt 0.163633 0.324373 +vt 0.179178 0.345425 +vt 0.178593 0.345901 +vt 0.179177 0.322044 +vt 0.164335 0.326592 +vt 0.208811 0.346310 +vt 0.670036 0.332607 +vt 0.198670 0.434119 +vt 0.258817 0.370384 +vt 0.223848 0.434119 +vt 0.176155 0.159372 +vt 0.351182 0.159372 +vt 0.176155 0.159372 +vt 0.176155 0.157238 +vt 0.176155 0.157238 +vt 0.286086 0.114179 +vt 0.289470 0.123449 +vt 0.286086 0.114179 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.188460 0.148679 +vt 0.188460 0.148679 +vt 0.351182 0.159372 +vt 0.351182 0.157119 +vt 0.207246 0.118405 +vt 0.207246 0.118405 +vt 0.289470 0.123449 +vt 0.302205 0.137250 +vt 0.302205 0.137250 +vt 0.326572 0.148575 +vt 0.326572 0.148575 +vt 0.351182 0.157119 +vt 0.289117 0.138628 +vt 0.294854 0.136252 +vt 0.286775 0.135968 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.220638 0.106650 +vt 0.220441 0.110047 +vt 0.228285 0.109317 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.210999 0.110994 +vt 0.210999 0.110994 +vt 0.220638 0.106650 +vt 0.228285 0.109317 +vt 0.220441 0.110047 +vt 0.286775 0.135968 +vt 0.294854 0.136252 +vt 0.266968 0.150290 +vt 0.294854 0.152477 +vt 0.286775 0.123640 +vt 0.208478 0.123640 +vt 0.208478 0.135968 +vt 0.208478 0.123640 +vt 0.266968 0.109317 +vt 0.266968 0.109317 +vt 0.228285 0.150290 +vt 0.228285 0.150290 +vt 0.214194 0.112981 +vt 0.214194 0.112981 +vt 0.209799 0.117931 +vt 0.209799 0.117931 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.209799 0.141676 +vt 0.209799 0.141676 +vt 0.208478 0.135968 +vt 0.285454 0.141676 +vt 0.285454 0.141676 +vt 0.281058 0.146627 +vt 0.281058 0.146627 +vt 0.274811 0.149560 +vt 0.274811 0.149560 +vt 0.266968 0.150290 +vt 0.274811 0.110047 +vt 0.274811 0.110047 +vt 0.281058 0.112981 +vt 0.281058 0.112981 +vt 0.285454 0.117931 +vt 0.285454 0.117931 +vt 0.286775 0.123640 +vt 0.300590 0.150101 +vt 0.294854 0.152477 +vt 0.302967 0.144365 +vt 0.300590 0.150101 +vt 0.300590 0.138628 +vt 0.302967 0.144365 +vt 0.299187 0.138047 +vt 0.299187 0.138047 +vt 0.289117 0.138628 +vt 0.287699 0.142053 +vt 0.286741 0.144365 +vt 0.287699 0.142053 +vt 0.289117 0.150101 +vt 0.286741 0.144365 +vt 0.289117 0.150101 +vt 0.300590 0.138628 +vt 0.437463 0.717486 +vt 0.437463 0.729525 +vt 0.437463 0.717486 +vt 0.473076 0.717486 +vt 0.473076 0.717486 +vt 0.606328 0.696434 +vt 0.592588 0.696434 +vt 0.606328 0.696434 +vt 0.535699 0.708464 +vt 0.504490 0.714856 +vt 0.535699 0.708464 +vt 0.564112 0.717495 +vt 0.594299 0.705466 +vt 0.564112 0.717495 +vt 0.521896 0.729525 +vt 0.521896 0.729525 +vt 0.437463 0.729525 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.580175 0.697602 +vt 0.585684 0.696733 +vt 0.580175 0.697602 +vt 0.513693 0.716961 +vt 0.546293 0.710284 +vt 0.585684 0.696733 +vt 0.592588 0.696434 +vt 0.490183 0.716814 +vt 0.504490 0.714856 +vt 0.490183 0.716814 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.591937 0.699287 +vt 0.582737 0.698103 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.582737 0.698103 +vt 0.592981 0.697140 +vt 0.594123 0.699193 +vt 0.591937 0.699287 +vt 0.592981 0.697140 +vt 0.538409 0.708929 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.594123 0.699193 +vt 0.546293 0.710284 +vt 0.538409 0.708929 +vt 0.490183 0.716814 +vt 0.506844 0.715395 +vt 0.490183 0.716814 +vt 0.513693 0.716961 +vt 0.506844 0.715395 +vt 0.594299 0.705466 +vt 0.559609 0.765930 +vt 0.494705 0.766175 +vt 0.559609 0.765930 +vt 0.462977 0.719170 +vt 0.472742 0.739125 +vt 0.458190 0.721973 +vt 0.468953 0.718129 +vt 0.477793 0.736194 +vt 0.477793 0.736194 +vt 0.465109 0.689302 +vt 0.468953 0.718129 +vt 0.470874 0.666624 +vt 0.465109 0.689302 +vt 0.481252 0.650452 +vt 0.470874 0.666624 +vt 0.466646 0.662781 +vt 0.466646 0.662781 +vt 0.481252 0.650452 +vt 0.455884 0.688533 +vt 0.458190 0.721973 +vt 0.462977 0.719170 +vt 0.455884 0.688533 +vt 0.466646 0.662781 +vt 0.468953 0.744266 +vt 0.494705 0.766175 +vt 0.468953 0.744266 +vt 0.514692 0.755797 +vt 0.514692 0.755797 +vt 0.514090 0.756913 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.512336 0.760159 +vt 0.476501 0.736944 +vt 0.467424 0.718395 +vt 0.463538 0.689249 +vt 0.458967 0.689095 +vt 0.469385 0.666251 +vt 0.466646 0.662781 +vt 0.477517 0.653605 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.514090 0.756913 +vt 0.476501 0.736944 +vt 0.512336 0.760159 +vt 0.467424 0.718395 +vt 0.472742 0.739125 +vt 0.463538 0.689249 +vt 0.469385 0.666251 +vt 0.458967 0.689095 +vt 0.477517 0.653605 +vt 0.771627 0.571391 +vt 0.747191 0.560270 +vt 0.747191 0.571391 +vt 0.771627 0.560270 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.747191 0.506573 +vt 0.771627 0.506573 +vt 0.747191 0.495452 +vt 0.771627 0.506573 +vt 0.747191 0.506573 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.771627 0.495452 +vt 0.747191 0.560270 +vt 0.771627 0.560270 +vt 0.697530 0.701590 +vt 0.568704 0.712834 +vt 0.552946 0.701590 +vt 0.697530 0.692045 +vt 0.543187 0.692045 +vt 0.697530 0.682139 +vt 0.697530 0.640529 +vt 0.539833 0.682139 +vt 0.539833 0.640529 +vt 0.568704 0.712699 +vt 0.697530 0.701471 +vt 0.552946 0.701476 +vt 0.697530 0.691975 +vt 0.697530 0.682121 +vt 0.539833 0.640529 +vt 0.697530 0.640529 +vt 0.697530 0.712834 +vt 0.543187 0.691982 +vt 0.697530 0.712699 +vn -0.3384 0.0000 -0.9410 +vn -0.9410 0.0000 0.3383 +vn 0.3384 0.0000 0.9410 +vn 0.9410 0.0000 -0.3384 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9410 0.0000 0.3384 +vn -0.4600 0.8724 0.1654 +vn -0.4600 -0.8724 0.1654 +vn -0.9953 0.0000 0.0966 +vn 0.3383 0.0000 0.9410 +vn -0.3383 0.0000 -0.9410 +vn 0.9410 0.0000 -0.3383 +vn -0.3346 0.0000 -0.9424 +vn 0.3281 0.0000 0.9447 +vn -0.6654 0.7071 0.2393 +vn -0.6654 -0.7071 0.2393 +vn -0.6654 -0.7071 0.2392 +vn 0.4189 0.0000 -0.9080 +vn 0.4186 0.0000 -0.9082 +vn 0.4188 0.0000 -0.9081 +vn -0.9412 0.0006 0.3377 +vn 0.9412 0.0000 -0.3378 +vn 0.6654 0.7071 -0.2393 +vn 0.6654 -0.7071 -0.2393 +vn -0.5173 -0.0000 0.8558 +vn -0.7299 0.5490 -0.4073 +vn -0.9438 -0.0000 -0.3304 +vn -0.3033 0.5490 0.7788 +vn -0.2133 0.7764 -0.5931 +vn 0.2133 0.7764 0.5931 +vn 0.3033 0.5490 -0.7788 +vn 0.7299 0.5490 0.4073 +vn 0.5173 0.0000 -0.8558 +vn 0.9438 -0.0000 0.3304 +vn 0.3034 -0.5490 -0.7788 +vn 0.7299 -0.5490 0.4073 +vn -0.2133 -0.7764 -0.5931 +vn 0.2133 -0.7764 0.5931 +vn -0.7299 -0.5490 -0.4073 +vn -0.3033 -0.5490 0.7788 +vn -0.4262 0.0000 0.9046 +vn 0.9047 0.0000 0.4261 +vn 0.9046 0.0000 0.4262 +vn 0.4261 0.0000 -0.9047 +vn -0.9047 0.0000 -0.4262 +vn -0.9047 0.0000 -0.4261 +vn 0.7105 0.0000 0.7037 +vn 0.3226 0.0000 0.9465 +vn -0.8616 0.0574 -0.5043 +vn -0.7956 -0.0572 -0.6031 +vn -0.8616 -0.0574 -0.5043 +vn -0.8992 0.0574 -0.4337 +vn -0.8992 -0.0574 -0.4337 +vn -0.3878 -0.0574 -0.9199 +vn -0.3244 0.0577 -0.9441 +vn -0.3245 -0.0577 -0.9441 +vn 0.8165 0.0579 0.5745 +vn 0.8741 -0.0579 0.4824 +vn 0.8165 -0.0579 0.5745 +vn -0.2207 0.0934 -0.9709 +vn -0.4812 0.0163 -0.8765 +vn -0.4133 0.1627 -0.8959 +vn -0.9237 -0.0579 -0.3786 +vn -0.9424 0.0573 -0.3295 +vn -0.9424 -0.0573 -0.3295 +vn -0.7377 0.0574 -0.6727 +vn -0.6674 -0.0575 -0.7425 +vn -0.7377 -0.0574 -0.6727 +vn -0.5270 0.0575 -0.8479 +vn -0.5270 -0.0575 -0.8479 +vn -0.8115 0.0647 -0.5808 +vn -0.8118 -0.0650 -0.5803 +vn -0.6674 0.0575 -0.7425 +vn -0.9408 -0.0217 0.3383 +vn -0.9399 -0.0487 0.3380 +vn -0.9371 -0.0905 0.3370 +vn -0.8184 -0.2983 -0.4911 +vn -0.9810 -0.0701 -0.1808 +vn -0.8723 -0.0815 -0.4821 +vn 0.7593 0.0578 0.6482 +vn 0.7593 -0.0578 0.6482 +vn -0.6306 -0.0531 -0.7743 +vn -0.9966 -0.0574 -0.0584 +vn -0.9909 0.0574 -0.1218 +vn -0.9909 -0.0574 -0.1218 +vn -0.9823 0.0693 -0.1740 +vn -0.0837 -0.3900 -0.9170 +vn -0.1348 -0.2335 -0.9630 +vn -0.0100 -0.4280 -0.9037 +vn 0.9693 0.0000 -0.2460 +vn 0.9341 -0.0442 -0.3543 +vn 0.9971 0.0000 -0.0758 +vn 0.9153 0.0579 0.3986 +vn 0.9153 -0.0579 0.3986 +vn 0.9534 0.0582 0.2961 +vn 0.9901 -0.0587 0.1279 +vn 0.9534 -0.0582 0.2961 +vn 0.9901 0.0587 0.1279 +vn 0.9987 0.0490 0.0163 +vn 0.9533 0.0215 -0.3012 +vn 0.9084 0.0518 -0.4150 +vn 1.0000 0.0000 0.0000 +vn -0.2791 -0.9601 -0.0164 +vn -0.2835 -0.9575 -0.0538 +vn -0.9983 0.0574 -0.0035 +vn -0.9982 -0.0568 0.0197 +vn -0.9982 0.0568 0.0197 +vn -0.9983 -0.0574 -0.0035 +vn -0.9966 0.0574 -0.0584 +vn -0.5909 -0.6494 -0.4787 +vn -0.2236 -0.9093 -0.3508 +vn -0.4212 -0.0227 -0.9067 +vn -0.3875 -0.0042 -0.9219 +vn 0.9990 0.0389 -0.0213 +vn 0.9342 0.0443 -0.3540 +vn 0.9989 0.0479 -0.0000 +vn 0.2393 -0.5035 -0.8302 +vn -0.0768 -0.6880 -0.7217 +vn 0.3047 -0.8339 -0.4602 +vn -0.1386 0.9537 -0.2668 +vn 0.3047 0.8339 -0.4602 +vn 0.2874 0.9515 -0.1097 +vn -0.6298 0.0522 -0.7750 +vn -0.2835 0.9575 -0.0538 +vn -0.5892 0.6508 -0.4789 +vn -0.7512 0.6471 -0.1306 +vn -0.2869 -0.0129 -0.9579 +vn -0.4987 -0.0341 -0.8661 +vn -0.1299 0.2325 -0.9639 +vn -0.2681 0.3995 -0.8766 +vn -0.4245 0.0200 -0.9052 +vn -0.2678 0.0138 -0.9634 +vn 0.9990 -0.0389 -0.0213 +vn 0.9989 -0.0479 -0.0000 +vn 0.9987 -0.0490 0.0163 +vn -0.0766 0.6888 -0.7209 +vn 0.2394 0.5035 -0.8302 +vn -0.1393 -0.9536 -0.2670 +vn 0.2874 -0.9515 -0.1098 +vn -0.1603 -0.9841 -0.0763 +vn -0.6585 -0.7159 -0.2320 +vn -0.6220 -0.7228 -0.3009 +vn -0.9124 -0.2562 -0.3192 +vn -0.8704 -0.2573 -0.4198 +vn -0.1603 0.9841 -0.0763 +vn -0.6585 0.7159 -0.2320 +vn -0.1758 0.9826 -0.0603 +vn -0.6221 0.7228 -0.3009 +vn -0.9124 0.2562 -0.3192 +vn -0.8704 0.2573 -0.4198 +vn -0.1515 -0.9845 -0.0878 +vn -0.5946 -0.7244 -0.3488 +vn -0.8340 -0.2573 -0.4881 +vn -0.1515 0.9846 -0.0878 +vn -0.5946 0.7244 -0.3488 +vn -0.1425 -0.9851 -0.0967 +vn -0.5595 -0.7168 -0.4161 +vn -0.7704 -0.2560 -0.5839 +vn -0.1425 0.9851 -0.0967 +vn -0.7704 0.2560 -0.5839 +vn -0.8340 0.2573 -0.4881 +vn -0.7956 0.0572 -0.6031 +vn -0.1921 -0.9578 -0.2137 +vn -0.5603 -0.6516 -0.5114 +vn -0.5106 -0.6454 -0.5681 +vn -0.7138 -0.2578 -0.6512 +vn -0.6461 -0.2569 -0.7187 +vn -0.1922 0.9578 -0.2137 +vn -0.5603 0.6516 -0.5114 +vn -0.2048 0.9611 -0.1852 +vn -0.5106 0.6454 -0.5681 +vn -0.7138 0.2578 -0.6512 +vn -0.6461 0.2569 -0.7187 +vn -0.4032 -0.6454 -0.6488 +vn -0.1515 -0.9579 -0.2440 +vn -0.5102 -0.2569 -0.8208 +vn -0.4032 0.6454 -0.6488 +vn -0.3135 -0.6477 -0.6944 +vn -0.1184 -0.9600 -0.2537 +vn -0.3832 -0.2564 -0.8874 +vn -0.1515 0.9578 -0.2441 +vn -0.3135 0.6477 -0.6944 +vn -0.3832 0.2564 -0.8874 +vn -0.5102 0.2569 -0.8208 +vn -0.3878 0.0574 -0.9199 +vn -0.2818 -0.6675 -0.6892 +vn -0.1087 -0.9628 -0.2476 +vn -0.3326 -0.2612 -0.9062 +vn -0.1184 0.9600 -0.2537 +vn -0.2818 0.6675 -0.6893 +vn -0.3326 0.2612 -0.9062 +vn -0.2048 -0.9611 -0.1852 +vn -0.5595 0.7168 -0.4161 +vn -0.6806 -0.6854 -0.2588 +vn -0.2823 -0.9566 -0.0718 +vn -0.7858 -0.2872 -0.5478 +vn -0.8929 -0.2613 -0.3666 +vn -0.6804 0.6854 -0.2593 +vn -0.4723 0.6136 -0.6328 +vn -0.7846 0.2865 -0.5499 +vn -0.8929 0.2613 -0.3666 +vn -0.1758 -0.9826 -0.0603 +vn -0.2823 0.9566 -0.0718 +vn -0.9237 0.0579 -0.3786 +vn 0.2032 -0.9637 0.1735 +vn 0.6149 -0.6594 0.4325 +vn 0.2163 -0.9644 0.1521 +vn 0.5730 -0.6576 0.4891 +vn 0.7896 -0.2606 0.5554 +vn 0.7344 -0.2600 0.6269 +vn 0.2032 0.9637 0.1735 +vn 0.6149 0.6594 0.4325 +vn 0.5730 0.6576 0.4891 +vn 0.7896 0.2606 0.5554 +vn 0.7344 0.2600 0.6269 +vn 0.6580 -0.6597 0.3631 +vn 0.2313 -0.9645 0.1277 +vn 0.8453 -0.2609 0.4663 +vn 0.2163 0.9644 0.1521 +vn 0.6580 0.6597 0.3631 +vn 0.8453 0.2609 0.4663 +vn 0.8741 0.0579 0.4824 +vn 0.2444 -0.9638 0.1064 +vn 0.6902 -0.6584 0.3002 +vn 0.8853 -0.2606 0.3851 +vn 0.2444 0.9638 0.1064 +vn 0.2313 0.9645 0.1277 +vn 0.6902 0.6584 0.3002 +vn -0.9410 -0.0044 0.3383 +vn -0.9409 -0.0175 0.3383 +vn 0.5313 0.6906 0.4908 +vn 0.0750 0.9948 0.0693 +vn 0.7076 0.2686 0.6536 +vn 0.7333 0.0586 0.6774 +vn 0.2490 -0.9654 0.0773 +vn 0.7380 -0.6680 0.0952 +vn 0.2517 -0.9672 0.0339 +vn 0.7154 -0.6625 0.2219 +vn 0.9565 -0.2646 0.1228 +vn 0.9217 -0.2621 0.2858 +vn 0.2490 0.9654 0.0773 +vn 0.7380 0.6680 0.0951 +vn 0.7154 0.6625 0.2219 +vn 0.9565 0.2646 0.1228 +vn 0.9217 0.2621 0.2858 +vn 0.5378 0.3495 -0.7672 +vn 0.6304 0.4005 -0.6649 +vn 0.8199 0.1705 -0.5465 +vn 0.9349 0.1920 -0.2984 +vn 0.8853 0.2606 0.3851 +vn -0.5808 -0.2303 -0.7808 +vn -0.4731 -0.6115 -0.6342 +vn -0.4315 -0.1607 -0.8877 +vn -0.2357 -0.0945 -0.9672 +vn -0.0850 0.3912 -0.9164 +vn -0.8693 0.0768 -0.4884 +vn -0.7597 -0.6503 -0.0027 +vn -0.7590 -0.6496 -0.0445 +vn -0.9663 -0.2575 -0.0034 +vn -0.9647 -0.2574 -0.0565 +vn -0.2791 0.9601 -0.0164 +vn -0.7597 0.6503 -0.0027 +vn -0.2782 0.9605 -0.0010 +vn -0.7590 0.6496 -0.0445 +vn -0.9663 0.2575 -0.0034 +vn -0.9647 0.2574 -0.0565 +vn -0.7512 -0.6470 -0.1307 +vn -0.9591 -0.2574 -0.1179 +vn -0.9456 -0.2735 -0.1761 +vn -0.9458 0.2735 -0.1752 +vn -0.9591 0.2574 -0.1179 +vn -0.9679 0.2504 0.0191 +vn -0.7837 0.6210 0.0154 +vn -0.3249 0.9457 0.0064 +vn -0.3249 -0.9457 0.0064 +vn -0.2782 -0.9605 -0.0010 +vn -0.7837 -0.6210 0.0154 +vn -0.9679 -0.2504 0.0191 +vn 0.8521 -0.0818 -0.5170 +vn 0.5378 -0.3495 -0.7672 +vn 0.9084 -0.0518 -0.4150 +vn 0.8199 -0.1705 -0.5465 +vn 0.9533 -0.0215 -0.3012 +vn 0.8521 0.0818 -0.5170 +vn 0.2446 0.3919 -0.8869 +vn 0.2446 -0.3919 -0.8869 +vn 0.6304 -0.4005 -0.6649 +vn 0.9349 -0.1920 -0.2984 +vn -0.5783 0.2352 -0.7811 +vn 0.7779 -0.5611 -0.2830 +vn 0.9715 -0.2204 -0.0876 +vn 0.7726 -0.6321 -0.0586 +vn 0.9696 -0.2445 -0.0070 +vn 0.7779 0.5611 -0.2830 +vn 0.7726 0.6322 -0.0586 +vn 0.9715 0.2204 -0.0876 +vn 0.9696 0.2445 -0.0070 +vn -0.2498 -0.3605 -0.8987 +vn -0.3577 -0.1356 -0.9239 +vn -0.3404 -0.2505 -0.9063 +vn -0.0100 0.4280 -0.9037 +vn -0.3366 0.2593 -0.9052 +vn -0.8149 0.3018 -0.4948 +vn -0.2508 0.3617 -0.8979 +vn -0.3608 0.1384 -0.9223 +vn 0.2517 0.9672 0.0339 +vn -0.9410 0.0044 0.3383 +vn -0.9410 -0.0040 0.3383 +vn -0.9372 0.0906 0.3370 +vn -0.9347 0.1160 0.3360 +vn -0.9399 0.0487 0.3380 +vn 0.7333 -0.0586 0.6774 +vn 0.7076 -0.2686 0.6536 +vn 0.5313 -0.6906 0.4908 +vn 0.7334 -0.0567 0.6775 +vn 0.7333 0.0588 0.6774 +vn 0.7334 0.0567 0.6775 +vn 0.2560 -0.9373 0.2364 +vn 0.5268 -0.6970 0.4866 +vn 0.5820 -0.6101 0.5376 +vn 0.7072 -0.2705 0.6532 +vn 0.7115 -0.2484 0.6573 +vn 0.7333 -0.0588 0.6774 +vn 0.7115 0.2484 0.6573 +vn 0.7072 0.2705 0.6532 +vn 0.5820 0.6101 0.5376 +vn 0.5268 0.6970 0.4866 +vn 0.2560 0.9373 0.2365 +vn 0.1437 0.9807 0.1328 +vn -0.9347 -0.1160 0.3361 +vn -0.9409 0.0175 0.3383 +vn -0.9410 0.0040 0.3383 +vn 0.9422 0.0006 -0.3351 +vn 0.9434 0.0000 -0.3316 +vn 0.9422 0.0019 -0.3351 +vn -0.9408 0.0217 0.3383 +vn -0.2235 0.9101 -0.3490 +vn -0.2735 -0.3980 -0.8757 +vn 0.8323 -0.0000 -0.5544 +vn 0.8323 -0.0000 -0.5543 +vn 0.2524 0.0000 0.9676 +vn 0.6118 0.0000 0.7910 +vn -0.9042 0.0000 -0.4272 +vn -0.9993 0.0000 -0.0383 +vn -0.9041 0.0000 -0.4272 +vn 0.9041 0.0000 0.4273 +vn 0.9993 0.0000 0.0383 +vn -0.6119 0.0000 -0.7910 +vn -0.6118 0.0000 -0.7910 +vn 0.9917 0.0000 -0.1289 +vn -0.0875 0.0000 -0.9962 +vn -0.2524 0.0000 -0.9676 +vn 0.0875 0.0000 0.9962 +vn -0.9917 0.0000 0.1289 +vn -0.2525 0.0000 -0.9676 +vn 0.2544 0.0000 0.9671 +vn 0.6125 0.0000 0.7905 +vn -0.9037 0.0000 -0.4281 +vn -0.9992 0.0000 -0.0404 +vn 0.9037 0.0000 0.4281 +vn 0.9992 0.0000 0.0404 +vn -0.6125 0.0000 -0.7905 +vn -0.6125 0.0000 -0.7904 +vn 0.9919 0.0000 -0.1267 +vn -0.0897 0.0000 -0.9960 +vn -0.2545 0.0000 -0.9671 +vn 0.0898 0.0000 0.9960 +vn -0.9919 0.0000 0.1266 +vn -0.9919 0.0000 0.1267 +vn 0.2560 0.0000 0.9667 +vn 0.6131 0.0000 0.7900 +vn -0.9034 0.0000 -0.4287 +vn -0.9991 0.0000 -0.0421 +vn -0.9034 0.0000 -0.4288 +vn 0.6132 0.0000 0.7900 +vn 0.9034 0.0000 0.4287 +vn 0.9991 0.0000 0.0420 +vn -0.6131 0.0000 -0.7900 +vn 0.9922 0.0000 -0.1249 +vn -0.0917 0.0000 -0.9958 +vn -0.2561 0.0000 -0.9666 +vn 0.0915 0.0000 0.9958 +vn -0.9922 0.0000 0.1248 +vn -0.9991 0.0000 -0.0420 +vn -0.2560 0.0000 -0.9667 +vn 0.2559 0.0000 0.9667 +vn -0.6132 0.0000 -0.7899 +vn -0.0915 0.0000 -0.9958 +vn -0.2561 0.0000 -0.9667 +vn 0.2525 0.0000 0.9676 +vn 0.2545 0.0000 0.9671 +vn -0.9038 0.0000 -0.4281 +vn -0.9992 0.0000 -0.0403 +vn -0.6126 0.0000 -0.7904 +vn -0.2544 0.0000 -0.9671 +vn -0.1086 0.9628 -0.2476 +vn 0.0750 -0.9948 0.0693 +vn 0.1437 -0.9807 0.1328 +vn 0.9434 0.0000 -0.3315 +vn 0.9420 0.0006 -0.3355 +vn 0.9420 -0.0006 -0.3355 +vn 0.9422 -0.0006 -0.3351 +vn 0.9422 -0.0019 -0.3351 +vn 0.8322 0.0000 -0.5544 +vn 0.0000 1.0000 -0.0001 +vn 0.0000 1.0000 0.0001 +vn 0.0916 0.0000 0.9958 +vn 0.0000 -1.0000 0.0001 +vn 0.0000 -1.0000 -0.0001 +vn -0.0470 -0.9988 0.0169 +vn -0.9295 0.1873 0.3178 +vn -0.9505 -0.1821 0.2519 +vn -0.9295 -0.1873 0.3177 +vn -0.0470 0.9988 0.0169 +vn -0.5658 0.0000 -0.8246 +vn -0.9505 0.1821 0.2519 +vn -0.9987 -0.0314 0.0402 +vn -0.9050 0.0000 -0.4254 +vn -0.9987 0.0314 0.0402 +vn -0.9244 0.1872 0.3324 +vn -0.0485 -0.9986 0.0196 +vn -0.1988 -0.9774 0.0717 +vn -0.2132 -0.9736 0.0821 +vn -0.4406 -0.8843 0.1543 +vn -0.4573 -0.8767 0.1490 +vn -0.7525 -0.6055 0.2590 +vn -0.7626 -0.6093 0.2174 +vn -0.0485 0.9986 0.0196 +vn -0.1988 0.9774 0.0717 +vn -0.0462 0.9988 0.0175 +vn -0.2132 0.9736 0.0821 +vn -0.4406 0.8843 0.1543 +vn -0.4573 0.8767 0.1490 +vn -0.7525 0.6055 0.2591 +vn -0.7626 0.6093 0.2174 +vn -0.0457 -0.9987 0.0211 +vn -0.2812 -0.9511 0.1278 +vn -0.8912 -0.4449 0.0889 +vn -0.9710 -0.2201 0.0929 +vn -0.0457 0.9987 0.0211 +vn -0.8912 0.4449 0.0889 +vn -0.9710 0.2201 0.0929 +vn -0.7485 0.6061 0.2691 +vn -0.4385 0.8848 0.1577 +vn -0.1980 0.9776 0.0712 +vn -0.1980 -0.9776 0.0712 +vn -0.2112 -0.9745 0.0759 +vn -0.0937 -0.9950 0.0337 +vn -0.0462 -0.9988 0.0175 +vn -0.0469 -0.9988 0.0169 +vn -0.2997 -0.9479 0.1077 +vn -0.2996 -0.9480 0.1078 +vn -0.4385 -0.8848 0.1577 +vn -0.7485 -0.6061 0.2691 +vn -0.9244 -0.1872 0.3324 +vn 0.3402 -0.0000 0.9403 +vn 0.9438 0.0000 -0.3306 +vn 0.9438 0.0000 -0.3305 +vn 0.9414 0.0000 -0.3372 +vn -0.3414 0.0000 -0.9399 +vn -0.9056 -0.4025 -0.1339 +vn -0.7599 0.0000 -0.6501 +vn -0.6618 -0.4662 -0.5871 +vn -0.6129 -0.4025 0.6799 +vn -0.1719 0.0000 0.9851 +vn -0.6953 0.0000 0.7187 +vn -0.8625 -0.3040 0.4047 +vn -0.9667 0.0000 0.2559 +vn -0.9227 -0.3039 0.2372 +vn -0.9083 0.0000 0.4183 +vn -0.0143 -0.9995 -0.0293 +vn -0.0076 -0.9995 -0.0318 +vn 0.0076 -0.9995 0.0318 +vn -0.9938 0.0000 -0.1114 +vn 0.7238 0.0000 0.6900 +vn 0.4274 0.0000 0.9041 +vn 0.4332 -0.0000 0.9013 +vn 0.2399 0.0000 0.9708 +vn 0.6618 -0.4662 0.5871 +vn 0.9907 0.0000 0.1360 +vn -0.4332 0.0000 -0.9013 +vn -0.4333 0.0000 -0.9013 +vn 0.9056 -0.4025 0.1339 +vn 0.9671 0.0000 -0.2544 +vn 0.1364 -0.4662 -0.8741 +vn 0.6773 0.0000 -0.7357 +vn 0.6129 -0.4025 -0.6799 +vn 0.9227 -0.3040 -0.2372 +vn 0.9076 0.0000 -0.4197 +vn -0.1364 -0.4662 0.8741 +vn -0.2462 -0.0000 -0.9692 +vn -0.1389 -0.0002 -0.9903 +vn 0.1186 -0.0000 -0.9929 +vn -0.5316 -0.8348 0.1433 +vn -0.5011 -0.8348 0.2281 +vn -0.1107 -0.9922 0.0567 +vn -0.3778 -0.8733 0.3075 +vn -0.2792 -0.9392 -0.1999 +vn -0.1223 -0.9601 -0.2514 +vn -0.1977 -0.8874 -0.4164 +vn -0.4871 -0.8733 0.0035 +vn -0.1215 -0.9922 0.0268 +vn -0.1127 -0.8875 -0.4469 +vn 0.1107 -0.9922 -0.0567 +vn 0.0879 -0.9392 -0.3319 +vn 0.3778 -0.8733 -0.3075 +vn 0.1215 -0.9922 -0.0268 +vn 0.4871 -0.8733 -0.0035 +vn 0.2792 -0.9392 0.1999 +vn 0.0658 -0.9601 0.2717 +vn 0.1127 -0.8875 0.4469 +vn -0.0879 -0.9392 0.3319 +vn 0.0143 -0.9995 0.0294 +vn 0.1977 -0.8874 0.4164 +vn 0.5011 -0.8348 -0.2281 +vn 0.8625 -0.3040 -0.4046 +vn 0.5316 -0.8348 -0.1433 +vn 0.1223 -0.9601 0.2514 +vn -0.0658 -0.9601 -0.2717 +vn -0.9900 0.0000 -0.1411 +vn -0.2812 0.9511 0.1278 +vn -0.2998 -0.9479 0.1078 +vn 0.3420 0.0000 0.9397 +vn 0.5235 0.0000 0.8520 +vn -0.2399 -0.0000 -0.9708 +vn -0.9400 -0.0001 0.3411 +vn -0.9405 -0.0176 0.3394 +vn -0.9410 -0.0078 0.3384 +vn 0.1049 0.9945 -0.0071 +vn 0.0385 0.9935 0.1070 +vn 0.0090 0.9996 0.0251 +vn 0.9280 -0.1655 -0.3337 +vn 0.9389 0.1639 -0.3027 +vn 0.9280 0.1655 -0.3337 +vn 0.0836 -0.9690 0.2326 +vn 0.1342 -0.9874 0.0833 +vn 0.0385 -0.9935 0.1070 +vn 0.0000 -1.0000 -0.0003 +vn 0.1049 -0.9945 -0.0071 +vn 0.0090 -0.9996 0.0251 +vn 0.0836 0.9690 0.2326 +vn 0.1796 0.9583 0.2224 +vn 0.1883 0.9564 0.2233 +vn 0.0963 -0.9947 -0.0347 +vn -0.4694 -0.0124 -0.8829 +vn -0.4694 0.0124 -0.8829 +vn -0.3451 -0.0959 -0.9337 +vn 0.1796 -0.9583 0.2224 +vn 0.1432 -0.9860 0.0855 +vn 0.0385 -0.9935 0.1069 +vn 0.9674 -0.1589 -0.1971 +vn 0.9389 -0.1639 -0.3027 +vn 0.9885 0.1488 -0.0278 +vn 0.9872 -0.1576 -0.0249 +vn 0.9872 0.1576 -0.0249 +vn 0.1342 0.9875 0.0833 +vn 0.9885 -0.1487 -0.0278 +vn 0.1433 0.9860 0.0854 +vn 0.9391 -0.1682 -0.2998 +vn 0.9674 0.1676 -0.1900 +vn 0.9674 -0.1676 -0.1900 +vn 0.1883 -0.9564 0.2233 +vn 0.8117 -0.5718 -0.1189 +vn 0.8389 -0.5386 0.0782 +vn 0.4794 -0.8593 0.1783 +vn 0.4373 -0.8993 0.0023 +vn 0.7774 -0.5813 -0.2403 +vn 0.4045 -0.9080 -0.1090 +vn 0.9674 0.1589 -0.1971 +vn 0.7774 0.5813 -0.2403 +vn 0.4373 0.8993 0.0023 +vn 0.4045 0.9080 -0.1090 +vn 0.8117 0.5718 -0.1189 +vn 0.4794 0.8593 0.1784 +vn 0.8370 0.5419 0.0765 +vn 0.4491 0.8934 0.0107 +vn 0.4881 0.8545 0.1776 +vn 0.9391 0.1682 -0.2998 +vn 0.8122 0.5737 -0.1062 +vn 0.4103 0.9059 -0.1053 +vn 0.1089 0.9940 -0.0066 +vn 0.8122 -0.5737 -0.1062 +vn 0.7784 -0.5825 -0.2340 +vn 0.4103 -0.9059 -0.1053 +vn 0.4491 -0.8934 0.0107 +vn 0.1089 -0.9940 -0.0066 +vn 0.8370 -0.5419 0.0765 +vn 0.4881 -0.8545 0.1776 +vn 0.7649 0.5824 -0.2752 +vn 0.3944 0.9079 -0.1419 +vn 0.0963 0.9947 -0.0347 +vn 0.8389 0.5386 0.0782 +vn 0.3944 -0.9079 -0.1419 +vn -0.9400 0.0001 0.3411 +vn -0.9405 0.0176 0.3394 +vn -0.9388 -0.0034 0.3444 +vn 0.2776 0.1319 0.9516 +vn 0.3188 0.1496 0.9360 +vn 0.2774 0.1318 0.9517 +vn -0.3758 -0.0904 -0.9223 +vn -0.4690 -0.1150 -0.8757 +vn -0.4292 -0.0592 -0.9013 +vn 0.9281 -0.1655 -0.3337 +vn 0.7650 -0.5824 -0.2750 +vn 0.3944 -0.9079 -0.1418 +vn 0.0963 -0.9947 -0.0346 +vn 0.6399 0.0000 0.7685 +vn 0.6347 0.0000 0.7728 +vn 0.0040 0.0000 -1.0000 +vn -0.0028 0.0000 -1.0000 +vn 0.0003 0.0014 -1.0000 +vn 0.9592 0.0007 0.2828 +vn 0.8961 0.0008 0.4439 +vn -0.0027 0.0000 -1.0000 +vn 0.4660 0.0000 -0.8848 +vn 0.5781 0.0000 -0.8160 +vn 0.5780 0.0000 -0.8160 +vn 0.9653 0.0000 0.2611 +vn 0.9227 0.0000 0.3854 +vn 0.9653 0.0000 0.2610 +vn 0.9227 0.0000 0.3855 +vn 0.4659 0.0000 -0.8848 +vn 0.5675 0.0000 -0.8234 +vn 0.4543 0.0000 -0.8909 +vn 0.9176 0.0000 0.3976 +vn 0.9619 0.0000 0.2735 +vn 0.9175 0.0000 0.3976 +vn 0.5674 0.0000 -0.8234 +vn -0.0064 1.0000 0.0023 +vn -0.0060 1.0000 0.0022 +vn 0.4542 0.0000 -0.8909 +vn 0.5247 0.0025 -0.8513 +vn 0.4335 0.0015 -0.9012 +vn 0.4330 0.0042 -0.9014 +vn 0.6062 0.0009 0.7953 +vn 0.8961 0.0008 0.4438 +vn 0.3383 0.0008 0.9410 +vn 0.5972 0.0009 0.8021 +vn 0.1267 0.0186 0.9918 +vn 0.1531 -0.0438 0.9872 +vn 0.1267 -0.0186 0.9918 +vn -0.3451 0.0959 -0.9337 +vn -0.3326 0.1835 -0.9250 +vn -0.3369 0.0923 -0.9370 +vn 0.2023 -0.0835 0.9758 +vn 0.2199 -0.0964 0.9708 +vn 0.0963 0.9947 -0.0346 +vn 0.7784 0.5825 -0.2340 +vn 0.3944 0.9079 -0.1418 +vn 0.9281 0.1655 -0.3337 +vn 0.9281 0.1654 -0.3337 +vn 0.3344 0.1537 0.9298 +vn 0.3344 0.1540 0.9298 +vn 0.3344 0.1538 0.9298 +vn -0.3326 -0.1835 -0.9250 +vn -0.3516 -0.1786 -0.9190 +vn 0.2776 -0.1319 0.9516 +vn 0.2774 -0.1318 0.9517 +vn -0.3758 0.0904 -0.9223 +vn -0.3516 0.1786 -0.9189 +vn 0.7650 0.5824 -0.2750 +vn 0.0963 0.9948 -0.0346 +vn 0.0963 -0.9948 -0.0346 +vn 0.7650 -0.5823 -0.2750 +vn 0.2199 0.0964 0.9707 +vn 0.2023 0.0835 0.9758 +vn 0.3215 -0.1503 0.9349 +vn 0.3344 -0.1538 0.9298 +vn -0.4690 0.1150 -0.8757 +vn -0.4017 0.1574 -0.9021 +vn -0.4017 -0.1574 -0.9021 +vn -0.5419 -0.0520 -0.8388 +vn 0.1531 0.0438 0.9872 +vn 0.3215 0.1503 0.9349 +vn -0.5419 0.0520 -0.8388 +vn -0.4292 0.0592 -0.9013 +vn 0.3188 -0.1496 0.9359 +vn 0.3344 -0.1539 0.9298 +vn -0.9388 0.0034 0.3444 +vn 0.0000 -1.0000 0.0009 +vn 0.0000 -1.0000 -0.0004 +vn 0.0000 -1.0000 -0.0002 +vn 0.0000 -1.0000 0.0017 +vn -0.9410 0.0078 0.3384 +vn -0.3369 -0.0923 -0.9370 +vn 0.3383 -0.0001 0.9410 +vn 0.3383 0.0001 0.9410 +vn 0.7649 -0.5824 -0.2751 +vn 0.0000 1.0000 0.0002 +vn 0.3112 -0.6367 0.7055 +vn 0.6761 -0.3911 0.6244 +vn 0.4445 -0.5517 0.7057 +vn 0.9592 0.0007 0.2829 +vn 0.8659 -0.1189 0.4858 +vn 0.5780 0.0000 -0.8161 +vn 0.0000 1.0000 -0.0009 +vn 0.9619 0.0000 0.2734 +vn -0.0076 1.0000 0.0028 +vn -0.0080 1.0000 0.0028 +vn 0.0219 0.9997 -0.0081 +vn 0.5291 -0.0003 -0.8486 +vn 0.9281 -0.1654 -0.3337 +vn 0.1359 0.0000 -0.9907 +vn 0.7316 0.0000 0.6817 +vn 0.7788 0.0000 0.6272 +vn -0.0177 0.0000 -0.9998 +vn 0.2595 0.0000 -0.9657 +vn 0.4853 0.0000 -0.8743 +vn -0.0207 0.0000 -0.9998 +vn 0.9596 0.0000 0.2813 +vn 0.9992 0.0000 0.0394 +vn 0.9999 0.0000 -0.0110 +vn 0.9718 0.0000 -0.2359 +vn 0.9689 0.0000 0.2474 +vn 0.4466 0.0000 -0.8947 +vn 0.8472 0.0000 -0.5313 +vn -0.4430 -0.0000 -0.8965 +vn -0.2294 -0.0000 -0.9733 +vn 0.2294 0.0000 0.9733 +vn 0.4430 0.0000 0.8965 +vn -0.9243 0.0000 0.3816 +vn -0.9557 0.0000 0.2944 +vn 0.9557 0.0000 -0.2943 +vn 0.9243 0.0000 -0.3816 +vn -0.8190 0.0000 0.5737 +vn -0.5512 0.0000 0.8344 +vn -0.5511 0.0000 0.8344 +vn -0.1312 0.0000 0.9914 +vn 0.9969 0.0000 -0.0792 +vn 0.9563 0.0000 0.2924 +vn 0.7324 0.0000 0.6808 +vn 0.7325 0.0000 0.6808 +vn 0.4429 0.0000 0.8966 +vn 0.1312 0.0000 -0.9914 +vn 0.5512 0.0000 -0.8344 +vn 0.8190 0.0000 -0.5738 +vn 0.8190 0.0000 -0.5737 +vn -0.9969 0.0000 0.0792 +vn -0.9563 0.0000 -0.2924 +vn -0.7325 0.0000 -0.6808 +vn 0.4262 0.0000 -0.9047 +vn 0.4262 0.0000 -0.9046 +vn -0.9989 0.0000 -0.0475 +vn -0.4261 -0.0000 0.9047 +vn -0.0474 0.0000 0.9989 +vn -0.0475 0.0000 0.9989 +vn -0.9046 0.0000 -0.4262 +vn 0.9342 0.0000 -0.3568 +vn 0.9355 -0.1082 -0.3364 +vn 0.9261 0.1228 -0.3567 +vn 0.9355 0.1082 -0.3364 +vn 0.8335 -0.1730 -0.5247 +vn 0.8767 0.1260 -0.4643 +vn 0.8335 0.1730 -0.5248 +vn -0.7816 0.0000 0.6238 +vn -0.6549 0.0000 0.7557 +vn -0.8852 0.0000 0.4653 +vn -0.5494 0.0000 0.8356 +vn -0.5494 0.0000 0.8355 +vn 0.8387 0.1737 -0.5161 +vn 0.8900 -0.1419 -0.4334 +vn 0.8387 -0.1737 -0.5161 +vn 0.1391 -0.9871 -0.0793 +vn 0.1237 -0.9890 -0.0810 +vn 0.8899 0.1419 -0.4334 +vn 0.9261 -0.1228 -0.3567 +vn 0.9078 0.0000 -0.4194 +vn 0.8766 -0.1260 -0.4643 +vn 0.1556 -0.9839 -0.0874 +vn 0.6770 -0.6627 -0.3201 +vn 0.1986 -0.9764 -0.0853 +vn 0.6071 -0.7080 -0.3608 +vn 0.1556 0.9839 -0.0874 +vn 0.6770 0.6628 -0.3201 +vn 0.6071 0.7080 -0.3608 +vn 0.7222 -0.6333 -0.2779 +vn 0.2070 -0.9752 -0.0780 +vn 0.1986 0.9764 -0.0852 +vn 0.7222 0.6334 -0.2779 +vn 0.5815 -0.7238 -0.3715 +vn 0.8387 -0.4534 -0.3016 +vn 0.3249 -0.9385 -0.1168 +vn 0.3249 0.9385 -0.1168 +vn 0.2070 0.9752 -0.0780 +vn 0.8387 0.4535 -0.3016 +vn 0.1237 0.9890 -0.0810 +vn 0.5814 0.7238 -0.3715 +vn 0.6339 -0.7179 -0.2876 +vn 0.7003 -0.6269 -0.3415 +vn 0.6339 0.7179 -0.2877 +vn 0.1391 0.9871 -0.0793 +vn 0.7002 0.6269 -0.3415 +vn -0.5493 -0.0001 0.8356 +vn -0.9397 0.0000 0.3419 +vn -1.0000 0.0000 -0.0054 +vn 0.0674 -0.9934 0.0928 +vn 0.0949 -0.9942 0.0510 +vn 0.5846 -0.2145 0.7825 +vn 0.8827 0.2064 0.4222 +vn 0.8827 -0.2063 0.4222 +vn 0.2755 -0.2195 0.9359 +vn 0.5846 0.2146 0.7824 +vn -0.0667 -0.2112 0.9752 +vn 0.2755 0.2196 0.9359 +vn -0.2218 -0.1183 0.9679 +vn -0.0667 0.2113 0.9751 +vn 0.5442 -0.0000 -0.8390 +vn 0.0533 0.0000 0.9986 +vn 0.5008 0.0000 -0.8655 +vn 0.0675 0.9934 0.0928 +vn -0.1807 0.0000 -0.9835 +vn 0.9997 0.0000 0.0253 +vn -0.5683 0.0000 -0.8228 +vn -0.8431 0.0000 -0.5378 +vn 0.9832 0.1773 -0.0436 +vn 0.9832 -0.1773 -0.0436 +vn 0.3034 -0.9504 -0.0690 +vn 0.6656 -0.7458 -0.0280 +vn 0.9093 -0.3610 -0.2069 +vn 0.9732 -0.0625 -0.2214 +vn 0.1377 -0.9905 -0.0031 +vn 0.5461 -0.7949 0.2644 +vn 0.3687 -0.7858 0.4965 +vn 0.1721 -0.7940 0.5831 +vn 0.0312 -0.9939 0.1057 +vn -0.0329 -0.7710 0.6359 +vn -0.0225 -0.7455 0.6661 +vn -0.1972 -0.4706 0.8600 +vn 0.9093 0.3610 -0.2069 +vn 0.9732 0.0625 -0.2214 +vn 0.6656 0.7457 -0.0280 +vn 0.3035 0.9503 -0.0691 +vn 0.5461 0.7949 0.2644 +vn 0.1378 0.9905 -0.0031 +vn 0.3687 0.7858 0.4965 +vn 0.0950 0.9942 0.0510 +vn 0.1721 0.7940 0.5831 +vn -0.0329 0.7710 0.6360 +vn 0.0312 0.9939 0.1058 +vn -0.1972 0.4706 0.8600 +vn -0.0225 0.7454 0.6662 +vn 0.0000 0.0000 1.0000 +vn -0.2218 0.1183 0.9679 +vn 0.5008 0.0000 -0.8656 +vn 0.9351 0.0000 0.3543 +vn 0.5009 0.0001 -0.8655 +vn -0.3880 -0.9111 0.1395 +vn -0.4378 -0.8852 0.1574 +vn -0.3600 -0.9239 0.1294 +vn -0.2293 -0.9698 0.0825 +vn -0.1850 -0.9805 0.0665 +vn -0.0594 -0.9980 0.0214 +vn -0.0526 -0.9984 0.0189 +vn 0.4378 0.8852 -0.1574 +vn 0.3881 0.9110 -0.1395 +vn 0.3602 0.9238 -0.1295 +vn 0.2293 0.9698 -0.0825 +vn 0.0593 0.9980 -0.0213 +vn 0.1184 0.9921 -0.0425 +vn -0.8984 0.2974 0.3231 +vn -0.9592 0.2825 0.0090 +vn -0.9601 0.2793 -0.0159 +vn 0.3385 0.0003 0.9410 +vn 0.3384 -0.0001 0.9410 +vn -0.9020 0.1822 -0.3913 +vn -0.7829 0.0711 -0.6181 +vn -0.7686 0.0678 -0.6361 +vn 0.3382 -0.0002 0.9411 +vn -0.6211 0.0134 -0.7836 +vn -0.4841 0.0054 -0.8750 +vn -0.4844 0.0060 -0.8748 +vn -0.3383 -0.0000 -0.9411 +vn -0.9053 0.1850 -0.3823 +vn 0.3382 0.0001 0.9411 +vn 0.1848 0.9805 -0.0664 +vn 0.1185 0.9920 -0.0426 +vn -0.6216 0.0115 -0.7832 +vn -0.3382 0.0000 -0.9411 +s off +f 17/1/1 18/2/1 19/3/1 +f 20/4/2 21/5/2 18/2/2 +f 22/6/3 23/7/3 21/5/3 +f 24/8/4 19/3/4 23/7/4 +f 21/5/5 19/3/5 18/2/5 +f 20/4/6 24/8/6 22/6/6 +f 17/1/1 20/4/1 18/2/1 +f 20/4/7 22/6/7 21/5/7 +f 22/6/3 24/8/3 23/7/3 +f 24/8/4 17/1/4 19/3/4 +f 21/5/5 23/7/5 19/3/5 +f 20/4/6 17/1/6 24/8/6 +f 25/9/1 26/10/1 27/11/1 +f 28/12/5 29/13/5 30/14/5 +f 25/9/8 31/15/8 32/16/8 +f 33/17/6 26/10/6 34/18/6 +f 34/18/7 35/19/7 33/17/7 +f 34/18/1 25/9/1 36/20/1 +f 37/21/6 38/22/6 39/23/6 +f 30/14/4 38/22/4 40/24/4 +f 41/25/7 42/26/7 28/12/7 +f 43/27/9 27/11/9 26/10/9 +f 34/18/10 36/20/10 44/28/10 +f 36/20/5 32/16/5 42/26/5 +f 29/13/4 39/23/4 30/14/4 +f 42/26/3 43/27/3 33/17/3 +f 42/26/3 33/17/3 45/29/3 +f 43/27/3 32/16/3 31/15/3 +f 37/21/1 40/24/1 38/22/1 +f 30/14/5 40/24/5 44/28/5 +f 44/28/5 41/25/5 30/14/5 +f 41/25/5 28/12/5 30/14/5 +f 25/9/8 27/11/8 31/15/8 +f 33/17/6 43/27/6 26/10/6 +f 34/18/7 46/30/7 35/19/7 +f 34/18/1 26/10/1 25/9/1 +f 39/23/6 45/29/6 35/19/6 +f 35/19/6 46/30/6 39/23/6 +f 46/30/6 37/21/6 39/23/6 +f 30/14/4 39/23/4 38/22/4 +f 41/25/7 36/20/7 42/26/7 +f 43/27/9 31/15/9 27/11/9 +f 36/20/10 41/25/10 44/28/10 +f 44/28/10 37/21/10 34/18/10 +f 37/21/10 46/30/10 34/18/10 +f 36/20/5 25/9/5 32/16/5 +f 29/13/4 45/29/4 39/23/4 +f 42/26/3 32/16/3 43/27/3 +f 45/29/3 29/13/3 42/26/3 +f 29/13/11 28/12/11 42/26/11 +f 33/17/11 35/19/11 45/29/11 +f 37/21/12 44/28/12 40/24/12 +f 519/31/1 520/32/1 521/33/1 +f 522/34/2 523/35/2 520/32/2 +f 524/36/3 525/37/3 523/35/3 +f 526/38/13 521/33/13 525/37/13 +f 522/34/6 526/38/6 524/36/6 +f 527/39/12 528/40/12 529/41/12 +f 529/41/7 530/42/7 531/43/7 +f 531/43/5 532/44/5 533/45/5 +f 527/39/4 534/46/4 535/47/4 +f 531/43/5 527/39/5 529/41/5 +f 532/44/11 536/48/11 537/49/11 +f 531/43/5 538/50/5 539/51/5 +f 533/45/4 537/49/4 534/46/4 +f 540/52/2 541/53/2 538/50/2 +f 539/51/11 541/53/11 536/48/11 +f 531/43/1 542/54/1 540/52/1 +f 519/31/12 522/34/12 520/32/12 +f 522/34/7 524/36/7 523/35/7 +f 524/36/3 526/38/3 525/37/3 +f 526/38/4 519/31/4 521/33/4 +f 522/34/6 519/31/6 526/38/6 +f 527/39/1 535/47/1 528/40/1 +f 529/41/7 528/40/7 530/42/7 +f 531/43/5 539/51/5 532/44/5 +f 527/39/4 533/45/4 534/46/4 +f 531/43/5 533/45/5 527/39/5 +f 532/44/3 539/51/3 536/48/3 +f 531/43/5 540/52/5 538/50/5 +f 533/45/4 532/44/4 537/49/4 +f 540/52/7 542/54/7 541/53/7 +f 539/51/3 538/50/3 541/53/3 +f 531/43/1 530/42/1 542/54/1 +f 1304/55/1 1305/56/1 1306/57/1 +f 1307/58/14 1308/59/14 1309/60/14 +f 1310/61/3 1311/62/3 1312/63/3 +f 1313/64/4 1306/57/4 1314/65/4 +f 1312/63/5 1314/65/5 1307/58/5 +f 1315/66/6 1313/64/6 1308/59/6 +f 1308/59/6 1316/67/6 1310/61/6 +f 1307/58/5 1306/57/5 1305/56/5 +f 1316/67/4 1314/65/4 1311/62/4 +f 1315/66/7 1307/58/7 1305/56/7 +f 1317/68/7 1318/69/7 1319/70/7 +f 1320/71/7 1321/72/7 1322/73/7 +f 1310/61/15 1312/63/15 1323/74/15 +f 1310/61/6 1317/68/6 1308/59/6 +f 1307/58/5 1322/73/5 1312/63/5 +f 1309/60/16 1318/69/16 1323/74/16 +f 1324/75/17 1323/74/17 1321/72/17 +f 1304/55/12 1315/66/12 1305/56/12 +f 1324/75/12 1320/71/12 1307/58/12 +f 1308/59/12 1317/68/12 1319/70/12 +f 1309/60/1 1324/75/1 1307/58/1 +f 1308/59/1 1319/70/1 1309/60/1 +f 1310/61/3 1316/67/3 1311/62/3 +f 1313/64/4 1304/55/4 1306/57/4 +f 1312/63/5 1311/62/5 1314/65/5 +f 1315/66/6 1304/55/6 1313/64/6 +f 1308/59/6 1313/64/6 1316/67/6 +f 1307/58/5 1314/65/5 1306/57/5 +f 1316/67/13 1313/64/13 1314/65/13 +f 1315/66/7 1308/59/7 1307/58/7 +f 1317/68/7 1325/76/7 1318/69/7 +f 1320/71/7 1324/75/7 1321/72/7 +f 1323/74/11 1318/69/11 1310/61/11 +f 1318/69/11 1325/76/11 1310/61/11 +f 1312/63/11 1322/73/11 1321/72/11 +f 1312/63/3 1321/72/3 1323/74/3 +f 1310/61/6 1325/76/6 1317/68/6 +f 1307/58/5 1320/71/5 1322/73/5 +f 1309/60/16 1319/70/16 1318/69/16 +f 1324/75/18 1309/60/18 1323/74/18 +f 1326/77/19 1327/78/19 1328/79/19 +f 1328/79/7 1329/80/7 1330/81/7 +f 1331/82/3 1332/83/3 1329/80/3 +f 1332/83/4 1333/84/4 1334/85/4 +f 1329/80/5 1335/86/5 1330/81/5 +f 1331/82/6 1336/87/6 1333/84/6 +f 1337/88/4 1326/77/4 1338/89/4 +f 1338/89/1 1339/90/1 1337/88/1 +f 1338/89/6 1340/91/6 1334/85/6 +f 1337/88/5 1341/92/5 1327/78/5 +f 1341/92/20 1336/87/20 1327/78/20 +f 1336/87/20 1328/79/20 1327/78/20 +f 1330/81/20 1335/86/20 1326/77/20 +f 1335/86/20 1340/91/20 1326/77/20 +f 1330/81/21 1326/77/21 1328/79/21 +f 1328/79/7 1331/82/7 1329/80/7 +f 1331/82/3 1333/84/3 1332/83/3 +f 1334/85/13 1340/91/13 1335/86/13 +f 1333/84/4 1336/87/4 1339/90/4 +f 1336/87/13 1341/92/13 1339/90/13 +f 1334/85/4 1335/86/4 1332/83/4 +f 1333/84/4 1339/90/4 1334/85/4 +f 1329/80/5 1332/83/5 1335/86/5 +f 1331/82/6 1328/79/6 1336/87/6 +f 1337/88/4 1327/78/4 1326/77/4 +f 1338/89/1 1334/85/1 1339/90/1 +f 1338/89/6 1326/77/6 1340/91/6 +f 1337/88/5 1339/90/5 1341/92/5 +f 1342/93/1 1343/94/1 1344/95/1 +f 1345/96/22 1346/97/22 1347/98/22 +f 1348/99/11 1349/100/11 1350/101/11 +f 1351/102/4 1352/103/4 1353/104/4 +f 1348/99/5 1344/95/5 1343/94/5 +f 1342/93/6 1354/105/6 1355/106/6 +f 1342/93/1 1345/96/1 1343/94/1 +f 1349/100/7 1348/99/7 1347/98/7 +f 1348/99/7 1343/94/7 1347/98/7 +f 1343/94/7 1345/96/7 1347/98/7 +f 1350/101/3 1352/103/3 1351/102/3 +f 1351/102/11 1348/99/11 1350/101/11 +f 1354/105/23 1342/93/23 1353/104/23 +f 1342/93/4 1344/95/4 1353/104/4 +f 1344/95/4 1351/102/4 1353/104/4 +f 1348/99/5 1351/102/5 1344/95/5 +f 1355/106/6 1346/97/6 1345/96/6 +f 1345/96/6 1342/93/6 1355/106/6 +s 1 +f 1/107/7 2/108/16 3/109/7 +f 4/110/16 5/111/5 2/108/16 +f 6/112/5 7/113/24 5/111/5 +f 8/114/24 9/115/4 7/113/24 +f 10/116/4 11/117/25 9/115/4 +f 12/118/25 13/119/6 11/117/25 +f 14/120/3 10/116/3 6/112/3 +f 14/120/6 15/121/17 13/119/6 +f 16/122/17 3/109/7 15/121/17 +f 13/119/1 15/121/1 7/113/1 +f 1/107/7 4/110/16 2/108/16 +f 4/110/16 6/112/5 5/111/5 +f 6/112/5 8/114/24 7/113/24 +f 8/114/24 10/116/4 9/115/4 +f 10/116/4 12/118/25 11/117/25 +f 12/118/25 14/120/6 13/119/6 +f 6/112/3 4/110/3 1/107/3 +f 1/107/3 16/122/3 14/120/3 +f 14/120/3 12/118/3 10/116/3 +f 10/116/3 8/114/3 6/112/3 +f 6/112/3 1/107/3 14/120/3 +f 14/120/6 16/122/17 15/121/17 +f 16/122/17 1/107/7 3/109/7 +f 15/121/1 3/109/1 7/113/1 +f 3/109/1 2/108/1 7/113/1 +f 2/108/1 5/111/1 7/113/1 +f 7/113/1 9/115/12 11/117/1 +f 11/117/1 13/119/1 7/113/1 +f 47/123/26 48/124/27 49/125/28 +f 50/126/29 51/127/30 48/124/27 +f 52/128/31 53/129/32 51/127/30 +f 54/130/33 55/131/34 53/129/32 +f 56/132/35 57/133/36 55/131/34 +f 58/134/37 59/135/38 57/133/36 +f 60/136/39 56/132/35 52/128/31 +f 60/136/39 61/137/40 59/135/38 +f 61/137/40 47/123/26 49/125/28 +f 57/133/36 59/135/38 61/137/40 +f 47/123/26 50/126/29 48/124/27 +f 50/126/29 52/128/31 51/127/30 +f 52/128/31 54/130/33 53/129/32 +f 54/130/33 56/132/35 55/131/34 +f 56/132/35 58/134/37 57/133/36 +f 58/134/37 60/136/39 59/135/38 +f 52/128/31 50/126/29 47/123/26 +f 47/123/26 62/138/41 52/128/31 +f 62/138/41 60/136/39 52/128/31 +f 60/136/39 58/134/37 56/132/35 +f 56/132/35 54/130/33 52/128/31 +f 60/136/39 62/138/41 61/137/40 +f 61/137/40 62/138/41 47/123/26 +f 61/137/40 49/125/28 48/124/27 +f 48/124/27 51/127/30 61/137/40 +f 51/127/30 53/129/32 61/137/40 +f 53/129/32 55/131/34 61/137/40 +f 55/131/34 57/133/36 61/137/40 +f 63/139/7 64/140/42 65/141/2 +f 66/142/42 67/143/3 64/140/42 +f 68/144/11 69/145/43 67/143/3 +f 70/146/44 71/147/4 69/145/43 +f 72/148/4 73/149/45 71/147/4 +f 74/150/45 75/151/1 73/149/45 +f 68/144/6 63/139/6 76/152/6 +f 76/152/1 77/153/46 75/151/1 +f 78/154/47 65/141/2 77/153/46 +f 75/151/5 77/153/5 69/145/5 +f 63/139/7 66/142/42 64/140/42 +f 66/142/42 68/144/11 67/143/3 +f 68/144/11 70/146/44 69/145/43 +f 70/146/44 72/148/4 71/147/4 +f 72/148/4 74/150/45 73/149/45 +f 74/150/45 76/152/1 75/151/1 +f 68/144/6 66/142/6 63/139/6 +f 63/139/6 78/154/6 76/152/6 +f 76/152/6 74/150/6 72/148/6 +f 72/148/6 70/146/6 76/152/6 +f 70/146/6 68/144/6 76/152/6 +f 76/152/1 78/154/47 77/153/46 +f 78/154/47 63/139/7 65/141/2 +f 77/153/5 65/141/5 69/145/5 +f 65/141/5 64/140/5 69/145/5 +f 64/140/5 67/143/5 69/145/5 +f 69/145/5 71/147/5 73/149/5 +f 73/149/5 75/151/5 69/145/5 +f 79/155/48 80/156/48 81/157/49 +f 82/158/50 83/159/51 84/160/52 +f 85/161/53 84/160/52 86/162/54 +f 87/163/55 88/164/56 89/165/57 +f 90/166/58 91/167/59 92/168/60 +f 93/169/61 94/170/62 95/171/63 +f 96/172/64 97/173/65 98/174/66 +f 99/175/67 100/176/68 101/177/69 +f 83/159/51 99/175/67 101/177/69 +f 102/178/70 87/163/55 103/179/71 +f 104/180/72 96/172/64 105/181/73 +f 106/182/74 103/179/71 100/176/68 +f 107/183/75 108/184/76 109/185/77 +f 110/186/78 111/187/79 112/188/80 +f 113/189/81 92/168/60 114/190/82 +f 115/191/83 104/180/72 105/181/73 +f 116/192/84 117/193/85 118/194/86 +f 118/194/86 119/195/87 111/187/79 +f 120/196/88 121/197/89 122/198/90 +f 123/199/91 124/200/92 125/201/93 +f 91/167/59 126/202/94 127/203/95 +f 128/204/96 129/205/97 130/206/98 +f 127/203/95 128/204/96 130/206/98 +f 131/207/99 132/208/100 125/201/93 +f 133/209/101 134/210/102 135/211/103 +f 136/212/104 137/213/105 79/155/6 +f 135/211/103 79/155/48 138/214/103 +f 97/173/65 86/162/54 98/174/66 +f 139/215/106 140/216/107 81/157/108 +f 141/217/109 142/218/110 116/192/84 +f 137/213/105 143/219/111 144/220/112 +f 115/191/83 145/221/113 146/222/114 +f 147/223/115 148/224/116 125/201/93 +f 132/208/100 149/225/117 125/201/93 +f 150/226/118 151/227/119 152/228/120 +f 153/229/121 154/230/122 155/231/123 +f 156/232/124 115/191/83 146/222/114 +f 157/233/125 158/234/126 159/235/127 +f 160/236/128 161/237/129 146/222/114 +f 162/238/130 95/171/63 163/239/131 +f 145/221/113 160/236/128 146/222/114 +f 164/240/132 156/232/124 146/222/114 +f 165/241/133 164/240/132 146/222/114 +f 124/200/92 166/242/134 125/201/93 +f 166/242/134 167/243/135 125/201/93 +f 167/243/135 168/244/136 125/201/93 +f 169/245/137 170/246/138 154/230/122 +f 149/225/117 147/223/115 125/201/93 +f 152/228/120 171/247/139 172/248/140 +f 173/249/141 174/250/142 175/251/143 +f 175/251/143 176/252/144 177/253/145 +f 177/253/145 98/174/66 86/162/54 +f 178/254/146 179/255/147 180/256/148 +f 181/257/149 182/258/150 179/255/147 +f 183/259/151 97/173/65 182/258/150 +f 184/260/152 175/251/143 185/261/153 +f 185/261/153 177/253/145 186/262/154 +f 177/253/145 84/160/52 186/262/154 +f 187/263/155 181/257/149 178/254/146 +f 188/264/156 183/259/151 181/257/149 +f 183/259/151 82/158/50 85/161/53 +f 189/265/157 185/261/153 190/266/158 +f 185/261/153 191/267/159 190/266/158 +f 186/262/154 83/159/51 191/267/159 +f 192/268/160 188/264/156 187/263/155 +f 188/264/156 193/269/161 194/270/162 +f 194/270/162 195/271/163 82/158/50 +f 196/272/164 197/273/165 198/274/166 +f 198/274/166 199/275/167 200/276/168 +f 200/276/168 101/177/69 100/176/68 +f 201/277/169 202/278/170 203/279/171 +f 204/280/172 205/281/173 202/278/170 +f 206/282/174 99/175/67 205/281/173 +f 196/272/164 207/283/175 208/284/176 +f 207/283/175 200/276/168 209/285/177 +f 200/276/168 103/179/71 209/285/177 +f 201/277/169 210/286/178 204/280/172 +f 210/286/178 206/282/174 204/280/172 +f 206/282/174 102/178/70 106/182/74 +f 208/284/176 211/287/179 212/288/180 +f 207/283/175 213/289/181 211/287/179 +f 209/285/177 87/163/55 213/289/181 +f 214/290/182 215/291/183 210/286/178 +f 210/286/178 216/292/184 217/293/185 +f 217/293/185 218/294/186 102/178/70 +f 212/288/180 219/295/187 220/296/188 +f 211/287/179 221/297/189 219/295/187 +f 213/289/181 89/165/57 221/297/189 +f 222/298/190 223/299/191 215/291/183 +f 215/291/183 224/300/192 216/292/184 +f 216/292/184 88/164/56 218/294/186 +f 225/301/193 190/266/158 197/273/165 +f 190/266/158 199/275/167 197/273/165 +f 191/267/159 101/177/69 199/275/167 +f 203/279/171 226/302/194 192/268/160 +f 226/302/194 205/281/173 193/269/161 +f 193/269/161 99/175/67 195/271/163 +f 171/247/139 227/303/195 228/304/196 +f 227/303/195 229/305/197 230/306/198 +f 230/306/198 105/181/73 96/172/64 +f 153/229/121 231/307/199 232/308/200 +f 231/307/199 233/309/201 232/308/200 +f 234/310/202 104/180/72 233/309/201 +f 235/311/203 227/303/195 174/250/142 +f 174/250/142 230/306/198 176/252/144 +f 176/252/144 96/172/64 98/174/66 +f 180/256/148 231/307/199 236/312/204 +f 179/255/147 234/310/202 231/307/199 +f 182/258/150 237/313/205 234/310/202 +f 238/314/206 239/315/207 240/316/208 +f 241/317/209 242/318/210 239/315/207 +f 243/319/211 92/168/60 242/318/210 +f 244/320/212 245/321/213 246/322/214 +f 246/322/214 247/323/215 248/324/216 +f 248/324/216 90/166/58 113/189/81 +f 240/316/208 249/325/217 250/326/218 +f 239/315/207 251/327/219 249/325/217 +f 242/318/210 91/167/59 251/327/219 +f 252/328/220 253/329/221 245/321/213 +f 245/321/213 254/330/222 247/323/215 +f 247/323/215 255/331/223 90/166/58 +f 256/332/224 249/325/217 257/333/225 +f 257/333/225 251/327/219 258/334/226 +f 251/327/219 127/203/95 258/334/226 +f 259/335/227 253/329/221 260/336/228 +f 261/337/229 254/330/222 253/329/221 +f 254/330/222 126/202/94 255/331/223 +f 262/338/230 263/339/231 107/183/75 +f 260/336/228 180/256/148 259/335/227 +f 244/320/212 109/185/232 264/340/233 +f 246/322/214 107/183/234 109/185/232 +f 248/324/216 262/338/235 107/183/234 +f 265/341/236 266/342/237 267/343/238 +f 268/344/239 269/345/240 266/342/237 +f 270/346/241 129/205/97 269/345/240 +f 271/347/242 272/348/243 273/349/244 +f 273/349/244 274/350/245 275/351/246 +f 275/351/246 131/207/99 128/204/96 +f 170/246/138 276/352/247 277/353/248 +f 277/353/248 278/354/249 279/355/250 +f 279/355/250 148/224/116 147/223/115 +f 256/332/224 268/344/239 265/341/236 +f 257/333/225 270/346/241 268/344/239 +f 258/334/226 130/206/98 270/346/241 +f 259/335/227 273/349/244 261/337/229 +f 261/337/229 275/351/246 280/356/251 +f 280/356/251 128/204/96 126/202/94 +f 105/181/73 281/357/252 115/191/83 +f 281/357/252 229/305/197 282/358/253 +f 283/359/5 284/360/5 80/156/5 +f 94/170/62 165/241/133 146/222/114 +f 121/197/89 285/361/254 286/362/255 +f 287/363/256 162/238/130 163/239/131 +f 112/188/80 119/195/87 288/364/257 +f 136/212/104 289/365/258 290/366/259 +f 290/366/259 291/367/260 292/368/261 +f 292/368/261 141/217/109 116/192/84 +f 293/369/262 294/370/263 295/371/264 +f 296/372/265 297/373/266 294/370/263 +f 298/374/267 139/215/106 297/373/266 +f 136/212/104 299/375/268 137/213/105 +f 299/375/268 292/368/261 300/376/269 +f 292/368/261 118/194/86 300/376/269 +f 293/369/262 159/235/127 296/372/265 +f 159/235/127 298/374/267 296/372/265 +f 298/374/267 117/193/85 142/218/110 +f 299/375/268 300/376/269 301/377/270 +f 301/377/270 118/194/86 111/187/79 +f 159/235/127 302/378/271 303/379/272 +f 302/378/271 117/193/85 303/379/272 +f 139/215/106 304/380/273 297/373/266 +f 297/373/266 305/381/274 294/370/263 +f 294/370/263 306/382/275 295/371/264 +f 307/383/276 289/365/258 308/384/277 +f 309/385/278 291/367/260 289/365/258 +f 310/386/279 141/217/109 291/367/260 +f 311/387/280 312/388/281 313/389/282 +f 313/389/282 314/390/283 315/391/284 +f 315/391/284 124/200/92 123/199/91 +f 283/359/285 276/352/247 284/360/286 +f 134/210/102 278/354/249 276/352/247 +f 133/209/101 148/224/116 278/354/249 +f 150/226/118 312/388/281 316/392/287 +f 317/393/288 314/390/283 312/388/281 +f 318/394/289 124/200/92 314/390/283 +f 104/180/72 319/395/290 233/309/201 +f 233/309/201 319/395/290 232/308/200 +f 152/228/120 317/393/288 150/226/118 +f 320/396/291 318/394/289 317/393/288 +f 321/397/292 166/242/134 318/394/289 +f 172/248/140 320/396/291 152/228/120 +f 322/398/293 321/397/292 320/396/291 +f 323/399/294 167/243/135 321/397/292 +f 155/231/123 324/400/295 325/401/296 +f 325/401/296 326/402/297 327/403/298 +f 327/403/298 149/225/117 132/208/100 +f 154/230/122 277/353/248 324/400/295 +f 324/400/295 279/355/250 326/402/297 +f 326/402/297 147/223/115 149/225/117 +f 151/227/119 282/358/253 171/247/139 +f 328/404/299 281/357/252 282/358/253 +f 281/357/252 145/221/113 115/191/83 +f 122/198/90 328/404/299 151/227/119 +f 121/197/89 329/405/300 328/404/299 +f 329/405/300 160/236/128 145/221/113 +f 330/406/301 120/196/88 122/198/90 +f 143/219/111 301/377/270 110/186/78 +f 94/170/62 146/222/114 161/237/129 +f 331/407/302 332/408/303 284/360/286 +f 158/234/126 302/378/271 159/235/127 +f 333/409/304 119/195/87 302/378/271 +f 331/407/302 334/410/305 162/238/130 +f 162/238/130 335/411/306 93/169/61 +f 335/411/306 165/241/133 93/169/61 +f 169/245/137 232/308/200 334/410/305 +f 334/410/305 319/395/290 335/411/306 +f 335/411/306 156/232/124 164/240/132 +f 129/205/97 323/399/294 269/345/240 +f 269/345/240 322/398/293 266/342/237 +f 266/342/237 172/248/140 267/343/238 +f 155/231/123 272/348/243 336/412/307 +f 325/401/296 274/350/245 272/348/243 +f 327/403/298 131/207/99 274/350/245 +f 337/413/308 338/414/309 262/338/230 +f 339/415/310 340/416/311 341/417/312 +f 243/319/211 337/413/313 114/190/82 +f 241/317/209 342/418/314 243/319/211 +f 238/314/206 339/415/315 241/317/209 +f 337/413/313 113/189/81 114/190/82 +f 343/419/316 344/420/317 338/414/318 +f 340/416/319 345/421/320 341/417/321 +f 341/417/321 346/422/322 347/423/323 +f 347/423/323 348/424/324 343/419/316 +f 263/339/325 344/420/317 349/425/326 +f 108/184/327 349/425/326 350/426/328 +f 351/427/329 350/426/328 352/428/330 +f 109/185/77 351/427/331 264/340/331 +f 337/413/308 347/423/332 343/419/333 +f 348/424/334 346/422/335 353/429/336 +f 250/326/218 256/332/224 235/311/203 +f 342/418/337 341/417/312 347/423/332 +f 144/220/112 120/196/88 330/406/301 +f 287/363/256 354/430/338 332/408/303 +f 163/239/131 354/430/338 287/363/256 +f 95/171/63 158/234/126 163/239/131 +f 95/171/63 288/364/257 333/409/304 +f 355/431/339 144/220/112 143/219/111 +f 285/361/254 143/219/111 110/186/78 +f 285/361/254 112/188/80 161/237/129 +f 161/237/129 288/364/257 94/170/62 +f 286/362/255 161/237/129 160/236/128 +f 88/164/340 224/300/341 356/432/340 +f 357/433/5 358/434/5 359/435/5 +f 360/436/342 359/435/343 361/437/342 +f 362/438/6 363/439/6 364/440/6 +f 364/440/344 365/441/345 358/434/346 +f 363/439/343 366/442/347 359/435/343 +f 362/438/347 367/443/348 366/442/347 +f 368/444/349 358/434/346 357/433/350 +f 369/445/348 370/446/351 367/443/348 +f 371/447/352 372/448/353 370/446/352 +f 361/437/342 373/449/354 360/436/342 +f 374/450/355 375/451/345 373/449/355 +f 376/452/356 357/433/350 372/448/353 +f 377/453/5 378/454/5 379/455/5 +f 380/456/357 379/455/358 381/457/357 +f 382/458/6 383/459/6 384/460/6 +f 384/460/359 385/461/360 378/454/359 +f 383/459/358 386/462/361 379/455/358 +f 382/458/361 387/463/362 386/462/361 +f 388/464/363 378/454/359 377/453/364 +f 389/465/362 390/466/365 387/463/362 +f 391/467/366 392/468/367 390/466/366 +f 381/457/357 393/469/368 380/456/357 +f 394/470/369 395/471/360 393/469/370 +f 396/472/367 377/453/364 392/468/367 +f 397/473/5 398/474/5 399/475/5 +f 400/476/371 399/475/372 401/477/371 +f 402/478/6 403/479/6 404/480/6 +f 404/480/373 405/481/374 398/474/375 +f 403/479/376 406/482/377 399/475/372 +f 402/478/377 407/483/378 406/482/377 +f 408/484/379 398/474/375 397/473/379 +f 409/485/378 410/486/380 407/483/378 +f 411/487/381 412/488/382 410/486/381 +f 401/477/371 413/489/383 400/476/371 +f 414/490/384 415/491/385 413/489/384 +f 416/492/386 397/473/379 412/488/382 +f 417/493/5 418/494/5 419/495/5 +f 420/496/371 419/495/372 421/497/387 +f 422/498/6 423/499/6 424/500/6 +f 424/500/373 425/501/385 418/494/373 +f 423/499/372 426/502/377 419/495/372 +f 422/498/377 427/503/378 426/502/377 +f 428/504/388 418/494/373 417/493/379 +f 429/505/378 430/506/380 427/503/378 +f 431/507/389 432/508/386 430/506/389 +f 421/497/387 433/509/383 420/496/371 +f 434/510/384 435/511/385 433/509/384 +f 436/512/390 417/493/379 432/508/386 +f 437/513/5 438/514/5 439/515/5 +f 440/516/391 439/515/343 441/517/391 +f 442/518/6 443/519/6 444/520/6 +f 444/520/346 445/521/345 438/514/346 +f 443/519/343 446/522/347 439/515/343 +f 442/518/347 447/523/348 446/522/347 +f 448/524/349 438/514/346 437/513/350 +f 449/525/348 450/526/351 447/523/348 +f 451/527/352 452/528/353 450/526/352 +f 441/517/391 453/529/354 440/516/391 +f 454/530/355 455/531/345 453/529/355 +f 456/532/356 437/513/350 452/528/353 +f 457/533/5 458/534/5 459/535/5 +f 460/536/392 459/535/358 461/537/357 +f 462/538/6 463/539/6 464/540/6 +f 464/540/393 465/541/394 458/534/393 +f 463/539/358 466/542/361 459/535/358 +f 462/538/361 467/543/362 466/542/361 +f 468/544/363 458/534/393 457/533/395 +f 469/545/362 470/546/365 467/543/362 +f 471/547/366 472/548/367 470/546/366 +f 461/537/357 473/549/368 460/536/392 +f 474/550/370 475/551/360 473/549/370 +f 476/552/396 457/533/395 472/548/367 +f 477/553/5 478/554/5 479/555/5 +f 480/556/371 479/555/372 481/557/371 +f 482/558/6 483/559/6 484/560/6 +f 484/560/375 485/561/385 478/554/375 +f 483/559/376 486/562/377 479/555/372 +f 482/558/377 487/563/378 486/562/377 +f 488/564/379 478/554/375 477/553/379 +f 489/565/378 490/566/380 487/563/378 +f 491/567/381 492/568/382 490/566/381 +f 481/557/371 493/569/383 480/556/371 +f 494/570/384 495/571/385 493/569/384 +f 496/572/386 477/553/379 492/568/382 +f 497/573/5 498/574/5 499/575/5 +f 500/576/371 499/575/372 501/577/387 +f 502/578/6 503/579/6 504/580/6 +f 504/580/373 505/581/385 498/574/373 +f 503/579/372 506/582/377 499/575/372 +f 502/578/377 507/583/378 506/582/377 +f 508/584/379 498/574/373 497/573/379 +f 509/585/378 510/586/380 507/583/378 +f 511/587/389 512/588/386 510/586/389 +f 501/577/387 513/589/383 500/576/371 +f 514/590/384 515/591/385 513/589/384 +f 516/592/386 497/573/379 512/588/386 +f 80/156/48 306/382/49 81/157/49 +f 306/382/49 305/381/49 304/380/49 +f 81/157/49 306/382/49 304/380/49 +f 81/157/49 140/216/49 79/155/48 +f 140/216/49 310/386/49 307/383/49 +f 310/386/49 309/385/49 307/383/49 +f 307/383/49 79/155/48 140/216/49 +f 82/158/50 195/271/163 83/159/51 +f 85/161/53 82/158/50 84/160/52 +f 87/163/55 218/294/186 88/164/56 +f 90/166/58 255/331/223 91/167/59 +f 93/169/61 165/241/133 94/170/62 +f 96/172/64 237/313/205 97/173/65 +f 99/175/67 106/182/74 100/176/68 +f 83/159/51 195/271/163 99/175/67 +f 102/178/70 218/294/186 87/163/55 +f 104/180/72 237/313/205 96/172/64 +f 106/182/74 102/178/70 103/179/71 +f 107/183/75 263/339/231 108/184/76 +f 110/186/78 301/377/270 111/187/79 +f 113/189/81 90/166/58 92/168/60 +f 115/191/83 156/232/124 104/180/72 +f 116/192/84 142/218/110 117/193/85 +f 118/194/86 117/193/85 119/195/87 +f 120/196/88 355/431/339 121/197/89 +f 148/224/116 517/593/91 125/201/93 +f 517/593/91 123/199/91 125/201/93 +f 91/167/59 255/331/223 126/202/94 +f 128/204/96 131/207/99 129/205/97 +f 127/203/95 126/202/94 128/204/96 +f 168/244/136 129/205/97 125/201/93 +f 129/205/97 131/207/99 125/201/93 +f 135/211/103 138/214/103 123/199/91 +f 138/214/103 311/387/280 313/389/282 +f 313/389/282 315/391/284 138/214/103 +f 315/391/284 123/199/91 138/214/103 +f 134/210/102 283/359/285 135/211/103 +f 123/199/91 517/593/91 135/211/103 +f 517/593/91 133/209/101 135/211/103 +f 137/213/105 144/220/112 330/406/6 +f 330/406/6 316/392/6 137/213/105 +f 316/392/6 311/387/6 79/155/6 +f 137/213/105 316/392/6 79/155/6 +f 311/387/6 138/214/6 79/155/6 +f 79/155/6 307/383/276 308/384/277 +f 308/384/277 136/212/104 79/155/6 +f 135/211/103 80/156/48 79/155/48 +f 97/173/65 85/161/53 86/162/54 +f 139/215/106 141/217/109 140/216/107 +f 141/217/109 139/215/106 142/218/110 +f 137/213/105 299/375/268 143/219/111 +f 150/226/118 122/198/90 151/227/119 +f 153/229/121 169/245/137 154/230/122 +f 157/233/125 354/430/338 158/234/126 +f 162/238/130 93/169/61 95/171/63 +f 169/245/137 331/407/302 170/246/138 +f 152/228/120 151/227/119 171/247/139 +f 173/249/141 235/311/203 174/250/142 +f 175/251/143 174/250/142 176/252/144 +f 177/253/145 176/252/144 98/174/66 +f 178/254/146 181/257/149 179/255/147 +f 181/257/149 183/259/151 182/258/150 +f 183/259/151 85/161/53 97/173/65 +f 184/260/152 173/249/141 175/251/143 +f 185/261/153 175/251/143 177/253/145 +f 177/253/145 86/162/54 84/160/52 +f 187/263/155 188/264/156 181/257/149 +f 188/264/156 194/270/162 183/259/151 +f 183/259/151 194/270/162 82/158/50 +f 189/265/157 184/260/152 185/261/153 +f 185/261/153 186/262/154 191/267/159 +f 186/262/154 84/160/52 83/159/51 +f 192/268/160 226/302/194 188/264/156 +f 188/264/156 226/302/194 193/269/161 +f 194/270/162 193/269/161 195/271/163 +f 196/272/164 225/301/193 197/273/165 +f 198/274/166 197/273/165 199/275/167 +f 200/276/168 199/275/167 101/177/69 +f 201/277/169 204/280/172 202/278/170 +f 204/280/172 206/282/174 205/281/173 +f 206/282/174 106/182/74 99/175/67 +f 196/272/164 198/274/166 207/283/175 +f 207/283/175 198/274/166 200/276/168 +f 200/276/168 100/176/68 103/179/71 +f 201/277/169 214/290/182 210/286/178 +f 210/286/178 217/293/185 206/282/174 +f 206/282/174 217/293/185 102/178/70 +f 208/284/176 207/283/175 211/287/179 +f 207/283/175 209/285/177 213/289/181 +f 209/285/177 103/179/71 87/163/55 +f 214/290/182 222/298/190 215/291/183 +f 210/286/178 215/291/183 216/292/184 +f 217/293/185 216/292/184 218/294/186 +f 212/288/180 211/287/179 219/295/187 +f 211/287/179 213/289/181 221/297/189 +f 213/289/181 87/163/55 89/165/57 +f 222/298/190 356/432/397 223/299/191 +f 215/291/183 223/299/191 224/300/192 +f 216/292/184 224/300/192 88/164/56 +f 225/301/193 189/265/157 190/266/158 +f 190/266/158 191/267/159 199/275/167 +f 191/267/159 83/159/51 101/177/69 +f 203/279/171 202/278/170 226/302/194 +f 226/302/194 202/278/170 205/281/173 +f 193/269/161 205/281/173 99/175/67 +f 171/247/139 282/358/253 227/303/195 +f 227/303/195 282/358/253 229/305/197 +f 230/306/198 229/305/197 105/181/73 +f 153/229/121 236/312/204 231/307/199 +f 231/307/199 234/310/202 233/309/201 +f 234/310/202 237/313/205 104/180/72 +f 235/311/203 228/304/196 227/303/195 +f 174/250/142 227/303/195 230/306/198 +f 176/252/144 230/306/198 96/172/64 +f 180/256/148 179/255/147 231/307/199 +f 179/255/147 182/258/150 234/310/202 +f 182/258/150 97/173/65 237/313/205 +f 238/314/206 241/317/209 239/315/207 +f 241/317/209 243/319/211 242/318/210 +f 243/319/211 114/190/82 92/168/60 +f 244/320/212 252/328/220 245/321/213 +f 246/322/214 245/321/213 247/323/215 +f 248/324/216 247/323/215 90/166/58 +f 240/316/208 239/315/207 249/325/217 +f 239/315/207 242/318/210 251/327/219 +f 242/318/210 92/168/60 91/167/59 +f 252/328/220 260/336/228 253/329/221 +f 245/321/213 253/329/221 254/330/222 +f 247/323/215 254/330/222 255/331/223 +f 256/332/224 250/326/218 249/325/217 +f 257/333/225 249/325/217 251/327/219 +f 251/327/219 91/167/59 127/203/95 +f 259/335/227 261/337/229 253/329/221 +f 261/337/229 280/356/251 254/330/222 +f 254/330/222 280/356/251 126/202/94 +f 262/338/230 338/414/309 263/339/231 +f 264/340/233 351/427/329 352/428/330 +f 352/428/330 356/432/397 222/298/190 +f 222/298/190 214/290/182 201/277/169 +f 201/277/169 203/279/171 222/298/190 +f 203/279/171 192/268/160 264/340/233 +f 192/268/160 187/263/155 244/320/212 +f 187/263/155 178/254/146 244/320/212 +f 178/254/146 180/256/148 252/328/220 +f 180/256/148 236/312/204 259/335/227 +f 178/254/146 252/328/220 244/320/212 +f 236/312/204 153/229/121 336/412/307 +f 153/229/121 155/231/123 336/412/307 +f 203/279/171 264/340/233 352/428/330 +f 352/428/330 222/298/190 203/279/171 +f 244/320/212 264/340/233 192/268/160 +f 236/312/204 336/412/307 271/347/242 +f 236/312/204 271/347/242 259/335/227 +f 252/328/220 180/256/148 260/336/228 +f 244/320/212 246/322/214 109/185/232 +f 246/322/214 248/324/216 107/183/234 +f 248/324/216 113/189/81 262/338/235 +f 265/341/236 268/344/239 266/342/237 +f 268/344/239 270/346/241 269/345/240 +f 270/346/241 130/206/98 129/205/97 +f 271/347/242 336/412/307 272/348/243 +f 273/349/244 272/348/243 274/350/245 +f 275/351/246 274/350/245 131/207/99 +f 170/246/138 284/360/286 276/352/247 +f 277/353/248 276/352/247 278/354/249 +f 279/355/250 278/354/249 148/224/116 +f 256/332/224 257/333/225 268/344/239 +f 257/333/225 258/334/226 270/346/241 +f 258/334/226 127/203/95 130/206/98 +f 259/335/227 271/347/242 273/349/244 +f 261/337/229 273/349/244 275/351/246 +f 280/356/251 275/351/246 128/204/96 +f 105/181/73 229/305/197 281/357/252 +f 284/360/5 332/408/5 157/233/125 +f 332/408/5 354/430/338 157/233/125 +f 157/233/125 293/369/262 80/156/5 +f 284/360/5 157/233/125 80/156/5 +f 293/369/262 295/371/264 80/156/5 +f 295/371/264 306/382/275 80/156/5 +f 80/156/5 135/211/5 283/359/5 +f 121/197/89 355/431/339 285/361/254 +f 287/363/256 331/407/302 162/238/130 +f 112/188/80 111/187/79 119/195/87 +f 136/212/104 308/384/277 289/365/258 +f 290/366/259 289/365/258 291/367/260 +f 292/368/261 291/367/260 141/217/109 +f 293/369/262 296/372/265 294/370/263 +f 296/372/265 298/374/267 297/373/266 +f 298/374/267 142/218/110 139/215/106 +f 136/212/104 290/366/259 299/375/268 +f 299/375/268 290/366/259 292/368/261 +f 292/368/261 116/192/84 118/194/86 +f 293/369/262 157/233/125 159/235/127 +f 159/235/127 303/379/272 298/374/267 +f 298/374/267 303/379/272 117/193/85 +f 301/377/270 300/376/269 118/194/86 +f 302/378/271 119/195/87 117/193/85 +f 139/215/106 81/157/108 304/380/273 +f 297/373/266 304/380/273 305/381/274 +f 294/370/263 305/381/274 306/382/275 +f 307/383/276 309/385/278 289/365/258 +f 309/385/278 310/386/279 291/367/260 +f 310/386/279 140/216/107 141/217/109 +f 311/387/280 316/392/287 312/388/281 +f 313/389/282 312/388/281 314/390/283 +f 315/391/284 314/390/283 124/200/92 +f 283/359/285 134/210/102 276/352/247 +f 134/210/102 133/209/101 278/354/249 +f 133/209/101 517/593/91 148/224/116 +f 150/226/118 317/393/288 312/388/281 +f 317/393/288 318/394/289 314/390/283 +f 318/394/289 166/242/134 124/200/92 +f 104/180/72 156/232/124 319/395/290 +f 152/228/120 320/396/291 317/393/288 +f 320/396/291 321/397/292 318/394/289 +f 321/397/292 167/243/135 166/242/134 +f 172/248/140 322/398/293 320/396/291 +f 322/398/293 323/399/294 321/397/292 +f 323/399/294 168/244/136 167/243/135 +f 155/231/123 154/230/122 324/400/295 +f 325/401/296 324/400/295 326/402/297 +f 327/403/298 326/402/297 149/225/117 +f 154/230/122 170/246/138 277/353/248 +f 324/400/295 277/353/248 279/355/250 +f 326/402/297 279/355/250 147/223/115 +f 151/227/119 328/404/299 282/358/253 +f 328/404/299 329/405/300 281/357/252 +f 281/357/252 329/405/300 145/221/113 +f 122/198/90 121/197/89 328/404/299 +f 121/197/89 286/362/255 329/405/300 +f 329/405/300 286/362/255 160/236/128 +f 150/226/118 316/392/287 122/198/90 +f 316/392/287 330/406/301 122/198/90 +f 143/219/111 299/375/268 301/377/270 +f 284/360/286 170/246/138 331/407/302 +f 331/407/302 287/363/256 332/408/303 +f 158/234/126 333/409/304 302/378/271 +f 333/409/304 288/364/257 119/195/87 +f 331/407/302 169/245/137 334/410/305 +f 162/238/130 334/410/305 335/411/306 +f 335/411/306 164/240/132 165/241/133 +f 169/245/137 153/229/121 232/308/200 +f 334/410/305 232/308/200 319/395/290 +f 335/411/306 319/395/290 156/232/124 +f 129/205/97 168/244/136 323/399/294 +f 269/345/240 323/399/294 322/398/293 +f 266/342/237 322/398/293 172/248/140 +f 155/231/123 325/401/296 272/348/243 +f 325/401/296 327/403/298 274/350/245 +f 327/403/298 132/208/100 131/207/99 +f 337/413/308 343/419/333 338/414/309 +f 339/415/310 518/594/311 340/416/311 +f 243/319/211 342/418/314 337/413/313 +f 241/317/209 339/415/315 342/418/314 +f 238/314/206 518/594/398 339/415/315 +f 337/413/313 262/338/235 113/189/81 +f 343/419/316 348/424/324 344/420/317 +f 340/416/319 353/429/399 345/421/320 +f 341/417/321 345/421/320 346/422/322 +f 347/423/323 346/422/322 348/424/324 +f 263/339/325 338/414/318 344/420/317 +f 108/184/327 263/339/325 349/425/326 +f 351/427/329 108/184/327 350/426/328 +f 109/185/77 108/184/76 351/427/331 +f 337/413/308 342/418/337 347/423/332 +f 346/422/335 345/421/400 353/429/336 +f 353/429/336 220/296/401 348/424/334 +f 220/296/401 356/432/402 344/420/403 +f 356/432/402 352/428/404 344/420/403 +f 352/428/404 350/426/335 349/425/335 +f 344/420/403 352/428/404 349/425/335 +f 344/420/403 348/424/334 220/296/401 +f 267/343/238 172/248/140 171/247/139 +f 171/247/139 228/304/196 267/343/238 +f 228/304/196 235/311/203 256/332/224 +f 267/343/238 228/304/196 265/341/236 +f 235/311/203 173/249/141 240/316/208 +f 173/249/141 184/260/152 238/314/206 +f 184/260/152 189/265/157 238/314/206 +f 189/265/157 225/301/193 518/594/398 +f 225/301/193 196/272/164 208/284/176 +f 208/284/176 212/288/180 225/301/193 +f 212/288/180 220/296/188 353/429/399 +f 353/429/399 340/416/319 518/594/398 +f 353/429/399 518/594/398 225/301/193 +f 212/288/180 353/429/399 225/301/193 +f 173/249/141 238/314/206 240/316/208 +f 189/265/157 518/594/398 238/314/206 +f 265/341/236 228/304/196 256/332/224 +f 240/316/208 250/326/218 235/311/203 +f 342/418/337 339/415/310 341/417/312 +f 163/239/131 158/234/126 354/430/338 +f 95/171/63 333/409/304 158/234/126 +f 95/171/63 94/170/62 288/364/257 +f 355/431/339 120/196/88 144/220/112 +f 285/361/254 355/431/339 143/219/111 +f 285/361/254 110/186/78 112/188/80 +f 161/237/129 112/188/80 288/364/257 +f 286/362/255 285/361/254 161/237/129 +f 223/299/341 356/432/340 224/300/341 +f 356/432/340 220/296/340 88/164/340 +f 220/296/340 219/295/341 221/297/341 +f 221/297/341 89/165/405 220/296/340 +f 89/165/405 88/164/340 220/296/340 +f 358/434/5 365/441/5 359/435/5 +f 365/441/5 374/450/406 361/437/5 +f 359/435/5 365/441/5 361/437/5 +f 359/435/5 366/442/5 357/433/5 +f 366/442/5 367/443/5 372/448/5 +f 367/443/5 370/446/407 372/448/5 +f 372/448/5 357/433/5 366/442/5 +f 360/436/342 363/439/343 359/435/343 +f 363/439/6 360/436/6 375/451/6 +f 360/436/6 373/449/6 375/451/6 +f 375/451/6 364/440/6 363/439/6 +f 364/440/6 368/444/6 362/438/6 +f 368/444/6 376/452/6 369/445/6 +f 376/452/6 371/447/6 369/445/6 +f 369/445/6 362/438/6 368/444/6 +f 364/440/344 375/451/345 365/441/345 +f 363/439/343 362/438/347 366/442/347 +f 362/438/347 369/445/348 367/443/348 +f 368/444/349 364/440/344 358/434/346 +f 369/445/348 371/447/351 370/446/351 +f 371/447/352 376/452/356 372/448/353 +f 361/437/342 374/450/354 373/449/354 +f 374/450/355 365/441/345 375/451/345 +f 376/452/356 368/444/349 357/433/350 +f 378/454/5 385/461/5 381/457/5 +f 385/461/5 394/470/5 381/457/5 +f 381/457/5 379/455/5 378/454/5 +f 379/455/5 386/462/5 377/453/5 +f 386/462/5 387/463/5 392/468/5 +f 387/463/5 390/466/5 392/468/5 +f 392/468/5 377/453/5 386/462/5 +f 380/456/357 383/459/358 379/455/358 +f 383/459/6 380/456/6 384/460/6 +f 380/456/6 393/469/6 395/471/6 +f 384/460/6 380/456/6 395/471/6 +f 384/460/6 388/464/6 382/458/6 +f 388/464/6 396/472/6 389/465/6 +f 396/472/6 391/467/6 389/465/6 +f 389/465/6 382/458/6 388/464/6 +f 384/460/359 395/471/360 385/461/360 +f 383/459/358 382/458/361 386/462/361 +f 382/458/361 389/465/362 387/463/362 +f 388/464/363 384/460/359 378/454/359 +f 389/465/362 391/467/365 390/466/365 +f 391/467/366 396/472/367 392/468/367 +f 381/457/357 394/470/368 393/469/368 +f 394/470/369 385/461/360 395/471/360 +f 396/472/367 388/464/363 377/453/364 +f 398/474/5 405/481/406 399/475/5 +f 405/481/406 414/490/406 401/477/5 +f 399/475/5 405/481/406 401/477/5 +f 399/475/5 406/482/5 397/473/5 +f 406/482/5 407/483/5 412/488/5 +f 407/483/5 410/486/5 412/488/5 +f 412/488/5 397/473/5 406/482/5 +f 400/476/371 403/479/376 399/475/372 +f 403/479/6 400/476/6 415/491/6 +f 400/476/6 413/489/6 415/491/6 +f 415/491/6 404/480/6 403/479/6 +f 404/480/6 408/484/6 402/478/6 +f 408/484/6 416/492/6 409/485/6 +f 416/492/6 411/487/6 409/485/6 +f 409/485/6 402/478/6 408/484/6 +f 404/480/373 415/491/385 405/481/374 +f 403/479/376 402/478/377 406/482/377 +f 402/478/377 409/485/378 407/483/378 +f 408/484/379 404/480/373 398/474/375 +f 409/485/378 411/487/380 410/486/380 +f 411/487/381 416/492/386 412/488/382 +f 401/477/371 414/490/408 413/489/383 +f 414/490/384 405/481/374 415/491/385 +f 416/492/386 408/484/379 397/473/379 +f 418/494/5 425/501/5 421/497/5 +f 425/501/5 434/510/5 421/497/5 +f 421/497/5 419/495/5 418/494/5 +f 419/495/5 426/502/5 417/493/5 +f 426/502/5 427/503/5 432/508/5 +f 427/503/5 430/506/407 432/508/5 +f 432/508/5 417/493/5 426/502/5 +f 420/496/371 423/499/372 419/495/372 +f 423/499/6 420/496/6 424/500/6 +f 420/496/6 433/509/6 435/511/6 +f 424/500/6 420/496/6 435/511/6 +f 424/500/6 428/504/6 422/498/6 +f 428/504/6 436/512/6 429/505/6 +f 436/512/6 431/507/409 429/505/6 +f 429/505/6 422/498/6 428/504/6 +f 424/500/373 435/511/385 425/501/385 +f 423/499/372 422/498/377 426/502/377 +f 422/498/377 429/505/378 427/503/378 +f 428/504/388 424/500/373 418/494/373 +f 429/505/378 431/507/380 430/506/380 +f 431/507/389 436/512/390 432/508/386 +f 421/497/387 434/510/383 433/509/383 +f 434/510/384 425/501/385 435/511/385 +f 436/512/390 428/504/388 417/493/379 +f 438/514/5 445/521/407 439/515/5 +f 445/521/407 454/530/5 441/517/406 +f 439/515/5 445/521/407 441/517/406 +f 439/515/5 446/522/5 437/513/5 +f 446/522/5 447/523/5 452/528/5 +f 447/523/5 450/526/5 452/528/5 +f 452/528/5 437/513/5 446/522/5 +f 440/516/391 443/519/343 439/515/343 +f 443/519/6 440/516/6 455/531/6 +f 440/516/6 453/529/6 455/531/6 +f 455/531/6 444/520/6 443/519/6 +f 444/520/6 448/524/6 442/518/6 +f 448/524/6 456/532/6 449/525/6 +f 456/532/6 451/527/6 449/525/6 +f 449/525/6 442/518/6 448/524/6 +f 444/520/346 455/531/345 445/521/345 +f 443/519/343 442/518/347 446/522/347 +f 442/518/347 449/525/348 447/523/348 +f 448/524/349 444/520/346 438/514/346 +f 449/525/348 451/527/351 450/526/351 +f 451/527/352 456/532/356 452/528/353 +f 441/517/391 454/530/354 453/529/354 +f 454/530/355 445/521/345 455/531/345 +f 456/532/356 448/524/349 437/513/350 +f 458/534/5 465/541/5 459/535/5 +f 465/541/5 474/550/5 461/537/5 +f 459/535/5 465/541/5 461/537/5 +f 459/535/5 466/542/5 457/533/5 +f 466/542/5 467/543/5 472/548/407 +f 467/543/5 470/546/5 472/548/407 +f 472/548/407 457/533/5 466/542/5 +f 460/536/392 463/539/358 459/535/358 +f 463/539/6 460/536/6 475/551/6 +f 460/536/6 473/549/409 475/551/6 +f 475/551/6 464/540/6 463/539/6 +f 464/540/6 468/544/6 462/538/6 +f 468/544/6 476/552/6 469/545/6 +f 476/552/6 471/547/410 469/545/6 +f 469/545/6 462/538/6 468/544/6 +f 464/540/393 475/551/360 465/541/394 +f 463/539/358 462/538/361 466/542/361 +f 462/538/361 469/545/362 467/543/362 +f 468/544/363 464/540/393 458/534/393 +f 469/545/362 471/547/365 470/546/365 +f 471/547/366 476/552/396 472/548/367 +f 461/537/357 474/550/368 473/549/368 +f 474/550/370 465/541/394 475/551/360 +f 476/552/396 468/544/363 457/533/395 +f 478/554/5 485/561/5 479/555/5 +f 485/561/5 494/570/5 481/557/5 +f 479/555/5 485/561/5 481/557/5 +f 479/555/5 486/562/5 477/553/5 +f 486/562/5 487/563/5 492/568/5 +f 487/563/5 490/566/5 492/568/5 +f 492/568/5 477/553/5 486/562/5 +f 480/556/371 483/559/376 479/555/372 +f 483/559/6 480/556/6 495/571/6 +f 480/556/6 493/569/6 495/571/6 +f 495/571/6 484/560/6 483/559/6 +f 484/560/6 488/564/6 482/558/6 +f 488/564/6 496/572/409 489/565/6 +f 496/572/409 491/567/6 489/565/6 +f 489/565/6 482/558/6 488/564/6 +f 484/560/375 495/571/385 485/561/385 +f 483/559/376 482/558/377 486/562/377 +f 482/558/377 489/565/378 487/563/378 +f 488/564/379 484/560/375 478/554/375 +f 489/565/378 491/567/380 490/566/380 +f 491/567/381 496/572/386 492/568/382 +f 481/557/371 494/570/408 493/569/383 +f 494/570/384 485/561/385 495/571/385 +f 496/572/386 488/564/379 477/553/379 +f 498/574/5 505/581/5 501/577/5 +f 505/581/5 514/590/5 501/577/5 +f 501/577/5 499/575/5 498/574/5 +f 499/575/5 506/582/5 497/573/5 +f 506/582/5 507/583/5 512/588/407 +f 507/583/5 510/586/5 512/588/407 +f 512/588/407 497/573/5 506/582/5 +f 500/576/371 503/579/372 499/575/372 +f 503/579/6 500/576/6 504/580/6 +f 500/576/6 513/589/6 515/591/6 +f 504/580/6 500/576/6 515/591/6 +f 504/580/6 508/584/6 502/578/6 +f 508/584/6 516/592/409 509/585/6 +f 516/592/409 511/587/6 509/585/6 +f 509/585/6 502/578/6 508/584/6 +f 504/580/373 515/591/385 505/581/385 +f 503/579/372 502/578/377 506/582/377 +f 502/578/377 509/585/378 507/583/378 +f 508/584/379 504/580/373 498/574/373 +f 509/585/378 511/587/380 510/586/380 +f 511/587/389 516/592/386 512/588/386 +f 501/577/387 514/590/383 513/589/383 +f 514/590/384 505/581/385 515/591/385 +f 516/592/386 508/584/379 497/573/379 +f 543/595/6 544/596/411 545/597/6 +f 520/32/6 546/598/6 547/599/6 +f 548/600/412 549/601/413 550/602/414 +f 541/53/5 542/54/5 551/603/415 +f 552/604/5 535/47/5 534/46/5 +f 553/605/1 554/606/416 552/604/1 +f 555/607/417 556/608/418 549/601/413 +f 557/609/419 558/610/419 559/611/420 +f 557/609/419 560/612/416 558/610/419 +f 550/602/414 561/613/421 548/600/412 +f 562/614/422 563/615/423 564/616/424 +f 564/616/424 565/617/425 566/618/426 +f 566/618/426 567/619/427 568/620/428 +f 568/620/428 550/602/414 549/601/413 +f 569/621/429 570/622/430 571/623/431 +f 572/624/432 573/625/433 570/622/430 +f 574/626/434 575/627/435 573/625/433 +f 576/628/436 548/600/412 575/627/435 +f 558/610/437 564/616/424 577/629/438 +f 564/616/424 578/630/439 577/629/438 +f 566/618/426 579/631/440 578/630/439 +f 579/631/440 549/601/413 556/608/418 +f 557/609/441 572/624/432 569/621/429 +f 572/624/432 580/632/442 574/626/434 +f 574/626/434 581/633/443 576/628/436 +f 581/633/443 555/607/417 576/628/436 +f 561/613/421 575/627/435 548/600/412 +f 582/634/444 573/625/433 575/627/435 +f 583/635/445 570/622/430 573/625/433 +f 584/636/446 571/623/431 570/622/430 +f 585/637/447 586/638/448 587/639/449 +f 588/640/450 589/641/451 590/642/449 +f 591/643/452 592/644/453 593/645/454 +f 565/617/425 594/646/455 567/619/427 +f 567/619/427 595/647/456 550/602/414 +f 551/603/457 595/647/3 544/596/457 +f 596/648/458 597/649/459 598/650/459 +f 543/595/460 552/604/460 599/651/460 +f 600/652/461 599/651/461 597/649/461 +f 601/653/462 545/597/463 602/654/464 +f 603/655/465 604/656/466 547/599/467 +f 605/657/468 606/658/469 607/659/470 +f 603/655/465 546/598/471 605/657/468 +f 608/660/472 609/661/473 610/662/474 +f 607/659/470 611/663/475 601/653/462 +f 612/664/476 590/642/477 613/665/478 +f 589/641/3 614/666/479 615/667/479 +f 616/668/480 617/669/481 612/664/476 +f 602/654/464 618/670/482 619/671/483 +f 620/672/484 591/643/485 617/669/481 +f 621/673/486 622/674/487 623/675/488 +f 624/676/489 592/644/490 591/643/485 +f 625/677/491 614/666/479 604/656/466 +f 587/639/492 586/638/493 626/678/494 +f 619/671/483 618/670/482 627/679/1 +f 605/657/468 628/680/495 629/681/496 +f 628/680/495 630/682/497 629/681/496 +f 630/682/497 631/683/498 629/681/496 +f 631/683/498 605/657/468 629/681/496 +f 608/660/472 632/684/499 633/685/500 +f 633/685/500 602/654/464 619/671/501 +f 607/659/470 634/686/502 628/680/495 +f 628/680/495 634/686/502 635/687/503 +f 636/688/504 633/685/500 619/671/501 +f 633/685/500 609/661/473 608/660/472 +f 637/689/505 638/690/506 639/691/507 +f 638/690/506 623/675/488 639/691/507 +f 640/692/508 641/693/509 642/694/510 +f 642/694/510 620/672/484 616/668/480 +f 625/677/491 643/695/511 615/667/512 +f 644/696/513 610/662/474 643/695/511 +f 645/697/514 643/695/511 610/662/474 +f 643/695/511 613/665/515 615/667/512 +f 624/676/489 646/698/516 647/699/517 +f 648/700/518 637/689/505 646/698/516 +f 645/697/514 642/694/510 649/701/519 +f 649/701/519 616/668/480 613/665/515 +f 624/676/489 641/693/509 648/700/518 +f 648/700/518 641/693/509 640/692/508 +f 637/689/505 639/691/507 646/698/516 +f 639/691/507 647/699/517 646/698/516 +f 621/673/486 650/702/520 636/688/504 +f 638/690/506 609/661/473 650/702/520 +f 630/682/497 644/696/513 631/683/498 +f 644/696/513 603/655/465 631/683/498 +f 635/687/503 634/686/502 632/684/499 +f 632/684/499 601/653/462 602/654/464 +f 592/644/490 623/675/488 622/674/487 +f 606/658/6 523/35/6 525/37/6 +f 543/595/6 600/652/6 596/648/6 +f 606/658/6 525/37/6 543/595/6 +f 611/663/6 606/658/6 543/595/6 +f 543/595/6 596/648/6 544/596/411 +f 544/596/411 627/679/451 618/670/6 +f 545/597/6 611/663/6 543/595/6 +f 544/596/411 618/670/6 545/597/6 +f 614/666/6 589/641/451 588/640/450 +f 562/614/422 558/610/437 520/32/6 +f 558/610/437 560/612/6 520/32/6 +f 614/666/6 588/640/450 604/656/6 +f 588/640/450 562/614/422 520/32/6 +f 604/656/6 588/640/450 520/32/6 +f 560/612/6 553/605/6 520/32/6 +f 553/605/6 543/595/6 521/33/6 +f 543/595/6 525/37/6 521/33/6 +f 547/599/6 604/656/6 520/32/6 +f 523/35/6 606/658/6 546/598/6 +f 520/32/6 523/35/6 546/598/6 +f 553/605/6 521/33/6 520/32/6 +f 548/600/412 555/607/417 549/601/413 +f 528/40/5 535/47/5 552/604/5 +f 552/604/5 554/606/5 528/40/5 +f 554/606/5 557/609/441 528/40/5 +f 557/609/441 569/621/429 528/40/5 +f 542/54/5 530/42/5 571/623/431 +f 530/42/5 528/40/5 571/623/431 +f 528/40/5 569/621/429 571/623/431 +f 551/603/415 598/650/5 599/651/5 +f 598/650/5 597/649/5 599/651/5 +f 599/651/5 537/49/5 536/48/5 +f 542/54/5 571/623/431 551/603/415 +f 599/651/5 536/48/5 551/603/415 +f 536/48/5 541/53/5 551/603/415 +f 534/46/5 537/49/5 599/651/5 +f 599/651/5 552/604/5 534/46/5 +f 553/605/1 560/612/416 554/606/416 +f 555/607/417 559/611/420 556/608/418 +f 577/629/521 578/630/439 556/608/418 +f 578/630/439 579/631/440 556/608/418 +f 556/608/418 559/611/420 558/610/419 +f 577/629/521 556/608/418 558/610/419 +f 559/611/420 581/633/443 580/632/442 +f 580/632/442 651/703/521 559/611/420 +f 651/703/521 557/609/419 559/611/420 +f 557/609/419 554/606/416 560/612/416 +f 550/602/414 595/647/456 561/613/421 +f 562/614/422 588/640/450 563/615/423 +f 564/616/424 563/615/423 565/617/425 +f 566/618/426 565/617/425 567/619/427 +f 568/620/428 567/619/427 550/602/414 +f 569/621/429 572/624/432 570/622/430 +f 572/624/432 574/626/434 573/625/433 +f 574/626/434 576/628/436 575/627/435 +f 576/628/436 555/607/417 548/600/412 +f 558/610/437 562/614/422 564/616/424 +f 564/616/424 566/618/426 578/630/439 +f 566/618/426 568/620/428 579/631/440 +f 579/631/440 568/620/428 549/601/413 +f 557/609/441 651/703/522 572/624/432 +f 572/624/432 651/703/522 580/632/442 +f 574/626/434 580/632/442 581/633/443 +f 581/633/443 559/611/420 555/607/417 +f 561/613/421 582/634/444 575/627/435 +f 582/634/444 583/635/445 573/625/433 +f 583/635/445 584/636/446 570/622/430 +f 584/636/446 551/603/415 571/623/431 +f 587/639/449 627/679/451 544/596/411 +f 544/596/411 585/637/447 587/639/449 +f 590/642/449 652/704/448 563/615/423 +f 563/615/423 588/640/450 590/642/449 +f 626/678/523 586/638/448 593/645/454 +f 586/638/448 585/637/447 593/645/454 +f 565/617/425 563/615/423 612/664/523 +f 563/615/423 652/704/448 612/664/523 +f 622/674/523 626/678/523 593/645/454 +f 565/617/425 612/664/523 617/669/523 +f 565/617/425 617/669/523 591/643/452 +f 592/644/453 622/674/523 593/645/454 +f 565/617/425 591/643/452 593/645/454 +f 565/617/425 593/645/454 594/646/455 +f 567/619/427 594/646/455 595/647/456 +f 594/646/3 593/645/11 595/647/3 +f 593/645/11 585/637/11 595/647/3 +f 585/637/11 544/596/457 595/647/3 +f 544/596/457 596/648/524 551/603/457 +f 596/648/524 598/650/524 551/603/457 +f 551/603/457 584/636/3 561/613/3 +f 584/636/3 583/635/11 561/613/3 +f 583/635/11 582/634/3 561/613/3 +f 561/613/3 595/647/3 551/603/457 +f 596/648/458 600/652/458 597/649/459 +f 543/595/460 553/605/460 552/604/460 +f 600/652/461 543/595/461 599/651/461 +f 601/653/462 611/663/475 545/597/463 +f 603/655/465 625/677/491 604/656/466 +f 605/657/468 546/598/471 606/658/469 +f 603/655/465 547/599/467 546/598/471 +f 637/689/505 640/692/508 645/697/514 +f 645/697/514 610/662/474 609/661/473 +f 610/662/474 630/682/497 608/660/472 +f 645/697/514 609/661/473 637/689/505 +f 630/682/497 635/687/503 608/660/472 +f 607/659/470 606/658/469 611/663/475 +f 613/665/478 616/668/480 612/664/476 +f 612/664/476 652/704/525 590/642/477 +f 615/667/479 613/665/478 589/641/3 +f 613/665/478 590/642/477 589/641/3 +f 616/668/480 620/672/484 617/669/481 +f 602/654/464 545/597/463 618/670/482 +f 620/672/484 624/676/489 591/643/485 +f 621/673/486 626/678/494 622/674/487 +f 624/676/489 647/699/517 592/644/490 +f 625/677/491 615/667/479 614/666/479 +f 626/678/494 621/673/486 636/688/526 +f 636/688/526 587/639/492 626/678/494 +f 587/639/492 636/688/526 627/679/1 +f 636/688/526 619/671/483 627/679/1 +f 605/657/468 607/659/470 628/680/495 +f 628/680/495 635/687/503 630/682/497 +f 631/683/498 603/655/465 605/657/468 +f 608/660/472 635/687/503 632/684/499 +f 633/685/500 632/684/499 602/654/464 +f 607/659/470 601/653/462 634/686/502 +f 636/688/504 650/702/520 633/685/500 +f 633/685/500 650/702/520 609/661/473 +f 638/690/506 621/673/486 623/675/488 +f 642/694/510 641/693/509 620/672/484 +f 625/677/491 644/696/513 643/695/511 +f 644/696/513 630/682/497 610/662/474 +f 645/697/514 649/701/519 643/695/511 +f 643/695/511 649/701/519 613/665/515 +f 624/676/489 648/700/518 646/698/516 +f 648/700/518 640/692/508 637/689/505 +f 645/697/514 640/692/508 642/694/510 +f 649/701/519 642/694/510 616/668/480 +f 624/676/489 620/672/484 641/693/509 +f 639/691/507 623/675/488 647/699/517 +f 621/673/486 638/690/506 650/702/520 +f 638/690/506 637/689/505 609/661/473 +f 644/696/513 625/677/491 603/655/465 +f 632/684/499 634/686/502 601/653/462 +f 592/644/490 647/699/517 623/675/488 +f 653/705/7 654/706/16 655/707/7 +f 656/708/16 657/709/5 654/706/16 +f 658/710/5 659/711/24 657/709/5 +f 660/712/24 661/713/4 659/711/24 +f 662/714/4 663/715/25 661/713/4 +f 664/716/25 665/717/6 663/715/25 +f 666/718/3 662/714/3 658/710/3 +f 666/718/6 667/719/17 665/717/6 +f 667/719/17 653/705/7 655/707/7 +f 663/715/1 665/717/1 667/719/1 +f 653/705/7 656/708/16 654/706/16 +f 656/708/16 658/710/5 657/709/5 +f 658/710/5 660/712/24 659/711/24 +f 660/712/24 662/714/4 661/713/4 +f 662/714/4 664/716/25 663/715/25 +f 664/716/25 666/718/6 665/717/6 +f 658/710/3 656/708/3 653/705/3 +f 653/705/3 668/720/3 658/710/3 +f 668/720/3 666/718/3 658/710/3 +f 666/718/3 664/716/3 662/714/3 +f 662/714/3 660/712/3 658/710/3 +f 666/718/6 668/720/17 667/719/17 +f 667/719/17 668/720/17 653/705/7 +f 667/719/1 655/707/1 654/706/1 +f 654/706/1 657/709/1 667/719/1 +f 657/709/1 659/711/1 667/719/1 +f 659/711/1 661/713/1 667/719/1 +f 661/713/1 663/715/1 667/719/1 +f 669/721/7 670/722/16 671/723/7 +f 672/724/16 673/725/5 670/722/16 +f 674/726/5 675/727/24 673/725/5 +f 676/728/24 677/729/4 675/727/24 +f 678/730/4 679/731/25 677/729/4 +f 680/732/25 681/733/6 679/731/25 +f 682/734/3 680/732/3 683/735/3 +f 684/736/3 685/737/11 674/726/11 +f 682/734/6 686/738/17 681/733/6 +f 687/739/17 671/723/7 686/738/17 +f 688/740/1 689/741/1 679/731/1 +f 670/722/12 673/725/1 690/742/12 +f 684/736/25 691/743/4 690/742/25 +f 684/736/25 692/744/6 685/737/6 +f 685/737/6 693/745/17 694/746/17 +f 694/746/17 695/747/7 696/748/7 +f 696/748/7 689/741/16 697/749/16 +f 683/735/5 689/741/16 688/740/5 +f 698/750/24 688/740/5 699/751/24 +f 700/752/4 699/751/24 691/743/4 +f 669/721/7 672/724/16 670/722/16 +f 672/724/16 674/726/5 673/725/5 +f 674/726/5 676/728/24 675/727/24 +f 676/728/24 678/730/4 677/729/4 +f 678/730/4 680/732/25 679/731/25 +f 680/732/25 682/734/6 681/733/6 +f 683/735/3 698/750/3 682/734/3 +f 698/750/3 687/739/3 682/734/3 +f 680/732/3 678/730/3 697/749/3 +f 678/730/3 696/748/3 697/749/3 +f 680/732/3 697/749/3 683/735/3 +f 694/746/3 696/748/3 678/730/3 +f 669/721/11 687/739/3 698/750/3 +f 669/721/11 698/750/3 700/752/11 +f 694/746/3 678/730/3 676/728/3 +f 685/737/11 694/746/3 674/726/11 +f 694/746/3 676/728/3 674/726/11 +f 672/724/3 669/721/11 700/752/11 +f 672/724/3 700/752/11 684/736/3 +f 672/724/3 684/736/3 674/726/11 +f 682/734/6 687/739/17 686/738/17 +f 687/739/17 669/721/7 671/723/7 +f 689/741/1 695/747/12 677/729/12 +f 681/733/1 686/738/12 699/751/12 +f 681/733/1 699/751/12 688/740/1 +f 689/741/1 677/729/12 679/731/1 +f 681/733/1 688/740/1 679/731/1 +f 699/751/12 686/738/12 671/723/1 +f 675/727/1 677/729/12 693/745/1 +f 677/729/12 695/747/12 693/745/1 +f 691/743/1 699/751/12 671/723/1 +f 690/742/12 691/743/1 670/722/12 +f 691/743/1 671/723/1 670/722/12 +f 673/725/1 675/727/1 693/745/1 +f 673/725/1 693/745/1 692/744/1 +f 673/725/1 692/744/1 690/742/12 +f 684/736/25 700/752/4 691/743/4 +f 684/736/25 690/742/25 692/744/6 +f 685/737/6 692/744/6 693/745/17 +f 694/746/17 693/745/17 695/747/7 +f 696/748/7 695/747/7 689/741/16 +f 683/735/5 697/749/16 689/741/16 +f 698/750/24 683/735/5 688/740/5 +f 700/752/4 698/750/24 699/751/24 +f 701/753/7 702/754/16 703/755/7 +f 704/756/16 705/757/5 702/754/16 +f 706/758/5 707/759/24 705/757/5 +f 708/760/24 709/761/4 707/759/24 +f 710/762/4 711/763/25 709/761/4 +f 712/764/25 713/765/6 711/763/25 +f 714/766/3 710/762/3 706/758/3 +f 714/766/6 715/767/17 713/765/6 +f 716/768/17 703/755/7 715/767/17 +f 711/763/1 713/765/1 715/767/1 +f 701/753/7 704/756/16 702/754/16 +f 704/756/16 706/758/5 705/757/5 +f 706/758/5 708/760/24 707/759/24 +f 708/760/24 710/762/4 709/761/4 +f 710/762/4 712/764/25 711/763/25 +f 712/764/25 714/766/6 713/765/6 +f 706/758/3 704/756/3 701/753/3 +f 701/753/3 716/768/3 714/766/3 +f 714/766/3 712/764/3 710/762/3 +f 710/762/3 708/760/3 706/758/3 +f 706/758/3 701/753/3 714/766/3 +f 714/766/6 716/768/17 715/767/17 +f 716/768/17 701/753/7 703/755/7 +f 715/767/1 703/755/12 702/754/1 +f 702/754/1 705/757/1 715/767/1 +f 705/757/1 707/759/1 715/767/1 +f 707/759/1 709/761/1 715/767/1 +f 709/761/1 711/763/1 715/767/1 +f 717/769/527 718/770/528 719/771/529 +f 720/772/530 721/773/531 722/774/532 +f 723/775/533 724/776/534 725/777/535 +f 726/778/536 727/779/537 728/780/538 +f 729/781/6 730/782/6 731/783/6 +f 719/771/6 732/784/539 733/785/6 +f 734/786/6 735/787/6 736/788/6 +f 728/780/538 737/789/540 738/790/541 +f 722/774/7 721/773/7 738/790/7 +f 739/791/542 740/792/543 741/793/544 +f 742/794/5 720/772/530 722/774/532 +f 743/795/6 737/789/540 744/796/545 +f 745/797/546 746/798/547 747/799/548 +f 748/800/536 749/801/549 726/778/536 +f 750/802/541 751/803/550 752/804/551 +f 753/805/552 724/776/534 754/806/553 +f 755/807/554 756/808/555 757/809/556 +f 758/810/557 759/811/542 721/773/531 +f 755/807/554 753/805/552 760/812/558 +f 761/813/559 762/814/532 763/815/531 +f 764/816/560 765/817/561 766/818/562 +f 741/793/544 763/815/531 739/791/542 +f 765/817/561 756/808/555 766/818/562 +f 752/804/551 767/819/563 748/800/536 +f 723/775/3 725/777/11 744/796/3 +f 760/812/558 768/820/564 769/821/565 +f 768/820/564 770/822/566 769/821/565 +f 771/823/567 749/801/549 770/822/566 +f 753/805/552 772/824/568 768/820/564 +f 772/824/568 771/823/567 768/820/564 +f 773/825/569 727/779/537 771/823/567 +f 774/826/570 775/827/571 724/776/534 +f 775/827/571 776/828/572 777/829/573 +f 777/829/573 758/810/557 720/772/530 +f 755/807/554 778/830/574 774/826/570 +f 778/830/574 779/831/575 776/828/572 +f 776/828/572 740/792/543 758/810/557 +f 765/817/561 780/832/576 757/809/556 +f 780/832/576 781/833/577 782/834/578 +f 782/834/578 761/813/559 741/793/544 +f 783/835/579 784/836/580 765/817/561 +f 784/836/580 785/837/581 781/833/577 +f 781/833/577 786/838/582 761/813/559 +f 764/816/560 787/839/583 788/840/584 +f 787/839/583 789/841/585 788/840/584 +f 790/842/586 791/843/587 789/841/585 +f 766/818/562 792/844/588 787/839/583 +f 792/844/588 790/842/586 787/839/583 +f 793/845/589 751/803/550 790/842/586 +f 725/777/535 775/827/571 794/846/590 +f 775/827/571 795/847/591 794/846/590 +f 777/829/573 796/848/592 795/847/591 +f 757/809/556 797/849/593 755/807/554 +f 797/849/593 782/834/578 779/831/575 +f 779/831/575 741/793/544 740/792/543 +f 723/775/533 772/824/568 754/806/553 +f 772/824/568 798/850/594 773/825/569 +f 773/825/569 744/796/545 737/789/540 +f 756/808/555 769/821/565 792/844/588 +f 769/821/565 793/845/589 792/844/588 +f 770/822/566 767/819/563 793/845/589 +f 799/851/595 800/852/596 801/853/597 +f 802/854/598 803/855/599 804/856/600 +f 805/857/601 806/858/602 807/859/603 +f 808/860/604 788/840/584 809/861/605 +f 788/840/584 802/854/606 809/861/605 +f 789/841/585 810/862/607 802/854/606 +f 811/863/5 812/864/5 813/865/5 +f 814/866/3 815/867/608 816/868/3 +f 817/869/609 818/870/3 819/871/609 +f 820/872/7 821/873/7 822/874/7 +f 823/875/7 824/876/7 825/877/7 +f 826/878/406 827/879/5 828/880/5 +f 829/881/610 822/874/1 830/882/610 +f 831/883/611 828/880/1 823/875/1 +f 832/884/3 833/885/608 834/886/3 +f 835/887/609 836/888/3 837/889/609 +f 838/890/7 816/868/7 839/891/7 +f 840/892/7 841/893/7 842/894/7 +f 843/895/3 729/781/608 821/873/3 +f 844/896/609 824/876/3 845/897/609 +f 838/890/12 839/891/12 731/783/12 +f 846/898/612 847/899/1 840/892/1 +f 848/900/613 849/901/614 813/865/613 +f 850/902/6 851/903/6 852/904/6 +f 853/905/5 854/906/5 817/869/5 +f 855/907/7 856/908/7 857/909/7 +f 858/910/7 818/870/7 859/911/7 +f 860/912/6 861/913/6 829/881/6 +f 862/914/3 842/894/3 841/893/3 +f 855/907/1 863/915/610 864/916/610 +f 854/906/611 865/917/1 858/910/1 +f 866/918/609 867/919/3 868/920/609 +f 869/921/3 870/922/608 871/923/3 +f 872/924/609 873/925/3 874/926/609 +f 875/927/7 834/886/7 876/928/7 +f 877/929/7 836/888/7 878/930/7 +f 879/931/3 880/932/608 856/908/3 +f 881/933/5 831/883/5 844/896/5 +f 875/927/1 882/934/610 883/935/610 +f 884/936/611 885/937/1 877/929/1 +f 886/938/3 887/939/608 888/940/3 +f 889/941/609 890/942/3 891/943/609 +f 892/944/7 871/923/7 893/945/7 +f 894/946/7 867/919/7 895/947/7 +f 896/948/6 897/949/6 864/916/6 +f 892/944/1 898/950/610 899/951/610 +f 900/952/615 901/953/1 894/946/1 +f 902/954/3 903/955/608 904/956/3 +f 905/957/3 906/958/3 907/959/609 +f 908/960/7 888/940/2 909/961/7 +f 910/962/7 873/925/2 911/963/2 +f 912/964/6 913/965/6 883/935/6 +f 908/960/1 914/966/610 915/967/610 +f 916/968/611 917/969/1 910/962/1 +f 918/970/608 735/787/608 919/971/3 +f 920/972/5 921/973/5 907/959/5 +f 922/974/7 904/956/7 923/975/7 +f 924/976/7 890/942/7 925/977/7 +f 926/978/6 927/979/6 899/951/6 +f 928/980/5 884/936/5 835/887/5 +f 922/974/1 929/981/610 930/982/610 +f 931/983/615 932/984/1 924/976/1 +f 933/985/6 934/986/6 930/982/6 +f 935/987/7 732/784/7 936/988/7 +f 937/989/7 938/990/7 905/957/7 +f 939/991/6 940/992/6 915/967/6 +f 941/993/5 900/952/5 866/918/5 +f 935/987/1 942/994/1 943/995/610 +f 944/996/3 945/997/3 946/998/3 +f 921/973/615 947/999/615 948/1000/1 +f 949/1001/6 950/1002/6 943/995/6 +f 951/1003/5 931/983/5 889/941/5 +f 952/1004/7 953/1005/7 733/785/7 +f 954/1006/7 945/997/7 944/996/7 +f 950/1002/608 955/1007/3 956/1008/3 +f 957/1009/5 916/968/5 872/924/5 +f 952/1004/1 733/785/1 958/1010/1 +f 959/1011/615 960/1012/611 961/1013/1 +f 962/1014/6 963/1015/6 919/971/6 +f 963/1015/6 830/882/6 919/971/6 +f 729/781/6 964/1016/6 730/782/6 +f 964/1016/6 962/1014/6 730/782/6 +f 815/867/6 965/1017/6 863/915/6 +f 880/932/6 966/1018/6 882/934/6 +f 833/885/6 898/950/6 893/945/6 +f 870/922/6 967/1019/6 914/966/6 +f 887/939/6 968/1020/6 929/981/6 +f 969/1021/610 970/1022/616 943/995/610 +f 971/1023/616 972/1024/617 970/1022/616 +f 929/981/610 973/1025/616 930/982/610 +f 968/1020/616 974/1026/618 973/1025/616 +f 975/1027/610 976/1028/616 852/904/610 +f 977/1029/616 978/1030/617 976/1028/616 +f 863/915/610 979/1031/616 864/916/610 +f 965/1017/616 980/1032/618 979/1031/616 +f 882/934/610 981/1033/616 883/935/610 +f 966/1018/616 982/1034/618 981/1033/616 +f 898/950/610 983/1035/616 899/951/610 +f 984/1036/616 985/1037/618 983/1035/616 +f 914/966/610 986/1038/616 915/967/610 +f 967/1019/616 987/1039/618 986/1038/616 +f 988/1040/619 989/1041/620 990/1042/621 +f 736/788/622 918/970/608 989/1041/620 +f 830/882/610 991/1043/616 829/881/610 +f 963/1015/623 992/1044/618 991/1043/616 +f 734/786/619 850/902/622 978/1030/619 +f 993/1045/622 851/903/608 850/902/622 +f 994/1046/619 896/948/620 980/1032/619 +f 995/1047/622 897/949/608 896/948/620 +f 996/1048/619 926/978/622 985/1037/619 +f 997/1049/622 927/979/608 926/978/622 +f 998/1050/619 939/991/622 987/1039/619 +f 999/1051/622 940/992/608 939/991/622 +f 1000/1052/619 933/985/620 974/1026/621 +f 1001/1053/622 934/986/608 933/985/620 +f 1002/1054/610 1003/1055/616 1004/1056/610 +f 1005/1057/616 990/1042/618 1003/1055/616 +f 962/1014/619 860/912/622 992/1044/619 +f 964/1016/622 861/913/608 860/912/622 +f 1006/1058/619 912/964/622 982/1034/619 +f 1007/1059/622 913/965/608 912/964/622 +f 1008/1060/619 949/1001/620 972/1024/621 +f 1009/1061/622 950/1002/608 949/1001/620 +f 989/1041/6 918/970/6 1004/1056/6 +f 1010/1062/5 1011/1063/5 946/998/5 +f 1011/1063/5 1012/1064/5 946/998/5 +f 824/876/5 1013/1065/5 847/899/5 +f 819/871/5 1014/1066/5 1015/1067/5 +f 837/889/5 1016/1068/5 1017/1069/5 +f 890/942/5 932/984/5 762/814/532 +f 868/920/5 1018/1070/5 1019/1071/5 +f 1020/1072/5 1021/1073/5 1022/1074/5 +f 1023/1075/624 853/905/625 1024/1076/624 +f 812/864/625 854/906/611 853/905/625 +f 845/897/609 1025/1077/626 844/896/609 +f 1026/1078/626 1027/1079/627 1025/1077/626 +f 819/871/609 1028/1080/626 817/869/609 +f 1029/1081/626 1024/1076/627 1028/1080/626 +f 837/889/609 1030/1082/628 835/887/609 +f 1031/1083/626 1032/1084/627 1030/1082/628 +f 874/926/609 1033/1085/626 872/924/609 +f 1020/1072/626 1034/1086/627 1033/1085/626 +f 1035/1087/609 1036/1088/626 907/959/609 +f 1037/1089/626 1038/1090/627 1036/1088/626 +f 1039/1091/624 1040/1092/625 1041/1093/624 +f 1042/1094/625 959/1011/615 1040/1092/625 +f 1043/1095/629 941/993/625 1044/1096/629 +f 1017/1069/625 900/952/615 941/993/625 +f 868/920/609 1045/1097/626 866/918/609 +f 1046/1098/626 1044/1096/627 1045/1097/626 +f 1047/1099/624 957/1009/625 1034/1086/624 +f 1019/1071/625 916/968/611 957/1009/625 +f 1048/1100/624 951/1003/625 1049/1101/624 +f 1022/1074/625 931/983/615 951/1003/625 +f 891/943/609 1050/1102/626 889/941/609 +f 1051/1103/626 1049/1101/627 1050/1102/626 +f 1052/1104/609 1053/1105/626 1054/1106/609 +f 1055/1107/626 1041/1093/627 1053/1105/626 +f 842/894/5 862/914/630 846/898/631 +f 1056/1108/624 928/980/632 1032/1084/624 +f 1015/1067/625 884/936/611 928/980/632 +f 1012/1064/629 881/933/632 1027/1079/624 +f 1011/1063/625 831/883/611 881/933/632 +f 848/900/633 1057/1109/634 1058/1110/635 +f 1057/1109/634 846/898/612 1058/1110/635 +f 1059/1111/624 920/972/625 1038/1090/624 +f 1060/1112/625 921/973/615 920/972/625 +f 1040/1092/5 959/1011/5 1054/1106/5 +f 862/914/636 849/901/614 1061/1113/637 +f 862/914/636 841/893/638 1062/1114/639 +f 808/860/640 1063/1115/641 1064/1116/642 +f 1065/1117/643 1066/1118/644 717/769/645 +f 1067/1119/646 1063/1115/641 1068/1120/647 +f 785/837/581 1069/1121/648 786/838/582 +f 1070/1122/649 1071/1123/650 785/837/581 +f 1064/1116/651 1070/1122/649 783/835/579 +f 764/816/560 1064/1116/651 783/835/579 +f 1063/1115/652 1072/1124/533 1073/1125/651 +f 1074/1126/653 718/770/654 1075/1127/655 +f 747/799/548 801/853/656 1076/1128/657 +f 1071/1123/658 1068/1120/647 1077/1129/659 +f 1078/1130/660 1079/1131/661 1065/1117/643 +f 1073/1125/651 1068/1120/662 1063/1115/652 +f 1068/1120/662 1080/1132/650 1077/1129/650 +f 1077/1129/650 1076/1128/648 1081/1133/663 +f 804/856/606 1079/1131/664 1082/1134/606 +f 1083/1135/665 1082/1134/606 1084/1136/605 +f 1072/1124/533 1083/1135/665 1084/1136/605 +f 803/855/664 1075/1127/6 1079/1131/664 +f 1075/1127/6 1066/1118/6 1079/1131/664 +f 1085/1137/5 1081/1133/663 1076/1128/648 +f 1085/1137/5 801/853/5 800/852/5 +f 802/854/598 1083/1135/666 809/861/667 +f 1069/1121/668 1085/1137/669 1086/1138/669 +f 1078/1130/660 1084/1136/670 1082/1134/671 +f 805/857/601 1076/1128/657 1080/1132/672 +f 807/859/603 1073/1125/673 745/797/546 +f 809/861/667 1087/1139/674 808/860/640 +f 810/862/675 1075/1127/655 803/855/599 +f 745/797/546 1072/1124/676 746/798/547 +f 1088/1140/677 1072/1124/676 1084/1136/670 +f 1071/1123/658 1081/1133/678 1069/1121/668 +f 1086/1138/669 800/852/679 827/879/679 +f 717/769/527 1066/1118/680 718/770/528 +f 720/772/530 758/810/557 721/773/531 +f 723/775/533 754/806/553 724/776/534 +f 726/778/536 749/801/549 727/779/537 +f 839/891/681 821/873/682 731/783/6 +f 821/873/682 729/781/6 731/783/6 +f 953/1005/682 919/971/6 830/882/6 +f 719/771/6 1074/1126/6 942/994/6 +f 719/771/6 942/994/6 936/988/6 +f 953/1005/682 830/882/6 822/874/681 +f 955/1007/6 958/1010/6 732/784/539 +f 958/1010/6 733/785/6 732/784/539 +f 733/785/6 953/1005/682 822/874/681 +f 822/874/681 719/771/6 733/785/6 +f 719/771/6 936/988/6 732/784/539 +f 996/1048/6 1007/1059/6 1006/1058/6 +f 1006/1058/6 994/1046/6 988/1040/6 +f 994/1046/6 734/786/6 736/788/6 +f 1006/1058/6 988/1040/6 791/843/587 +f 1000/1052/6 998/1050/6 791/843/587 +f 998/1050/6 996/1048/6 791/843/587 +f 996/1048/6 1006/1058/6 791/843/587 +f 888/940/681 923/975/683 750/802/541 +f 923/975/683 904/956/6 750/802/541 +f 893/945/6 871/923/6 750/802/541 +f 871/923/6 909/961/6 750/802/541 +f 909/961/6 888/940/681 750/802/541 +f 876/928/410 834/886/6 750/802/541 +f 834/886/6 893/945/6 750/802/541 +f 857/909/684 856/908/6 719/771/6 +f 856/908/6 876/928/410 719/771/6 +f 719/771/6 876/928/410 750/802/541 +f 839/891/681 816/868/6 719/771/6 +f 816/868/6 857/909/684 719/771/6 +f 822/874/681 821/873/682 719/771/6 +f 821/873/682 839/891/681 719/771/6 +f 942/994/6 1074/1126/6 969/1021/6 +f 1074/1126/6 810/862/607 969/1021/6 +f 971/1023/6 969/1021/6 810/862/607 +f 1008/1060/6 971/1023/6 810/862/607 +f 791/843/587 750/802/541 903/955/6 +f 750/802/541 904/956/6 903/955/6 +f 1008/1060/6 810/862/607 988/1040/6 +f 810/862/607 791/843/587 988/1040/6 +f 791/843/587 903/955/6 1001/1053/6 +f 791/843/587 1001/1053/6 1000/1052/6 +f 958/1010/6 955/1007/6 1002/1054/6 +f 955/1007/6 1089/1141/6 1002/1054/6 +f 1002/1054/6 1089/1141/6 1005/1057/6 +f 1089/1141/6 1009/1061/6 1005/1057/6 +f 988/1040/6 994/1046/6 736/788/6 +f 1005/1057/6 1009/1061/6 1008/1060/6 +f 988/1040/6 1005/1057/6 1008/1060/6 +f 975/1027/6 731/783/6 730/782/6 +f 962/1014/6 919/971/6 735/787/6 +f 975/1027/6 730/782/6 977/1029/6 +f 730/782/6 962/1014/6 735/787/6 +f 977/1029/6 730/782/6 734/786/6 +f 730/782/6 735/787/6 734/786/6 +f 728/780/538 727/779/537 737/789/540 +f 750/802/7 752/804/7 762/814/7 +f 752/804/7 748/800/7 763/815/7 +f 762/814/7 752/804/7 763/815/7 +f 748/800/7 726/778/7 739/791/7 +f 799/851/595 717/769/527 719/771/529 +f 719/771/529 750/802/7 762/814/7 +f 726/778/7 728/780/7 759/811/7 +f 827/879/685 799/851/595 719/771/529 +f 762/814/7 827/879/685 719/771/529 +f 748/800/7 739/791/7 763/815/7 +f 759/811/7 739/791/7 726/778/7 +f 738/790/7 743/795/7 742/794/7 +f 728/780/7 738/790/7 721/773/7 +f 721/773/7 759/811/7 728/780/7 +f 738/790/7 742/794/7 722/774/7 +f 739/791/542 759/811/542 740/792/543 +f 742/794/5 796/848/592 720/772/530 +f 743/795/6 738/790/541 737/789/540 +f 746/798/547 1088/1140/677 1078/1130/660 +f 1078/1130/660 1065/1117/643 746/798/547 +f 1065/1117/643 717/769/645 747/799/548 +f 746/798/547 1065/1117/643 747/799/548 +f 717/769/645 799/851/686 747/799/548 +f 747/799/548 805/857/601 745/797/546 +f 805/857/601 807/859/603 745/797/546 +f 748/800/536 767/819/563 749/801/549 +f 750/802/541 791/843/587 751/803/550 +f 753/805/552 774/826/570 724/776/534 +f 755/807/554 760/812/558 756/808/555 +f 758/810/557 740/792/543 759/811/542 +f 755/807/554 774/826/570 753/805/552 +f 761/813/559 786/838/582 762/814/532 +f 764/816/560 783/835/579 765/817/561 +f 741/793/544 761/813/559 763/815/531 +f 765/817/561 757/809/556 756/808/555 +f 752/804/551 751/803/550 767/819/563 +f 725/777/11 794/846/687 795/847/11 +f 795/847/11 796/848/3 725/777/11 +f 796/848/3 742/794/3 744/796/3 +f 725/777/11 796/848/3 744/796/3 +f 742/794/3 743/795/3 744/796/3 +f 744/796/3 798/850/3 723/775/3 +f 798/850/3 1090/1142/688 723/775/3 +f 760/812/558 753/805/552 768/820/564 +f 768/820/564 771/823/567 770/822/566 +f 771/823/567 727/779/537 749/801/549 +f 753/805/552 754/806/553 772/824/568 +f 772/824/568 773/825/569 771/823/567 +f 773/825/569 737/789/540 727/779/537 +f 774/826/570 778/830/574 775/827/571 +f 775/827/571 778/830/574 776/828/572 +f 777/829/573 776/828/572 758/810/557 +f 755/807/554 797/849/593 778/830/574 +f 778/830/574 797/849/593 779/831/575 +f 776/828/572 779/831/575 740/792/543 +f 765/817/561 784/836/580 780/832/576 +f 780/832/576 784/836/580 781/833/577 +f 782/834/578 781/833/577 761/813/559 +f 783/835/579 1070/1122/649 784/836/580 +f 784/836/580 1070/1122/649 785/837/581 +f 781/833/577 785/837/581 786/838/582 +f 764/816/560 766/818/562 787/839/583 +f 787/839/583 790/842/586 789/841/585 +f 790/842/586 751/803/550 791/843/587 +f 766/818/562 756/808/555 792/844/588 +f 792/844/588 793/845/589 790/842/586 +f 793/845/589 767/819/563 751/803/550 +f 725/777/535 724/776/534 775/827/571 +f 775/827/571 777/829/573 795/847/591 +f 777/829/573 720/772/530 796/848/592 +f 757/809/556 780/832/576 797/849/593 +f 797/849/593 780/832/576 782/834/578 +f 779/831/575 782/834/578 741/793/544 +f 723/775/533 1090/1142/689 772/824/568 +f 772/824/568 1090/1142/689 798/850/594 +f 773/825/569 798/850/594 744/796/545 +f 756/808/555 760/812/558 769/821/565 +f 769/821/565 770/822/566 793/845/589 +f 770/822/566 749/801/549 767/819/563 +f 799/851/595 827/879/685 800/852/596 +f 802/854/598 810/862/675 803/855/599 +f 805/857/601 1080/1132/672 806/858/602 +f 808/860/604 764/816/560 788/840/584 +f 788/840/584 789/841/585 802/854/606 +f 789/841/585 791/843/587 810/862/607 +f 812/864/5 1023/1075/5 813/865/5 +f 813/865/5 841/893/5 811/863/5 +f 841/893/5 865/917/5 811/863/5 +f 814/866/3 851/903/608 815/867/608 +f 817/869/609 859/911/3 818/870/3 +f 820/872/7 843/895/7 821/873/7 +f 823/875/7 828/880/7 824/876/7 +f 961/1013/5 906/958/5 938/990/5 +f 1091/1143/690 948/1000/5 827/879/5 +f 948/1000/5 1086/1138/5 827/879/5 +f 826/878/406 961/1013/5 938/990/5 +f 945/997/5 826/878/406 828/880/5 +f 826/878/406 938/990/5 827/879/5 +f 938/990/5 1091/1143/690 827/879/5 +f 828/880/5 1010/1062/5 945/997/5 +f 1010/1062/5 946/998/5 945/997/5 +f 829/881/610 820/872/1 822/874/1 +f 831/883/611 1010/1062/615 828/880/1 +f 832/884/3 913/965/608 833/885/608 +f 835/887/609 878/930/3 836/888/3 +f 838/890/7 814/866/7 816/868/7 +f 840/892/7 1013/1065/2 841/893/7 +f 843/895/3 861/913/608 729/781/608 +f 844/896/609 825/877/3 824/876/3 +f 731/783/12 975/1027/610 852/904/610 +f 852/904/610 838/890/12 731/783/12 +f 1092/1144/611 847/899/1 846/898/612 +f 847/899/1 1013/1065/1 840/892/1 +f 848/900/613 1061/1113/637 849/901/614 +f 851/903/6 814/866/6 838/890/6 +f 838/890/6 852/904/6 851/903/6 +f 852/904/6 976/1028/6 850/902/6 +f 976/1028/6 978/1030/6 850/902/6 +f 854/906/5 858/910/5 859/911/5 +f 859/911/5 817/869/5 854/906/5 +f 817/869/5 1028/1080/5 853/905/5 +f 1028/1080/5 1024/1076/5 853/905/5 +f 855/907/7 879/931/7 856/908/7 +f 858/910/7 865/917/7 818/870/7 +f 861/913/6 843/895/6 820/872/6 +f 820/872/6 829/881/6 861/913/6 +f 829/881/6 991/1043/6 860/912/6 +f 991/1043/6 992/1044/6 860/912/6 +f 841/893/691 813/865/692 862/914/693 +f 813/865/692 848/900/694 1061/1113/695 +f 862/914/693 813/865/692 1061/1113/695 +f 855/907/1 857/909/1 863/915/610 +f 854/906/611 811/863/611 865/917/1 +f 866/918/609 895/947/3 867/919/3 +f 869/921/3 927/979/608 870/922/608 +f 872/924/609 911/963/3 873/925/3 +f 875/927/7 832/884/7 834/886/7 +f 877/929/7 885/937/7 836/888/7 +f 879/931/3 897/949/608 880/932/608 +f 831/883/5 823/875/5 825/877/5 +f 825/877/5 844/896/5 831/883/5 +f 844/896/5 1025/1077/5 881/933/5 +f 1025/1077/5 1027/1079/5 881/933/5 +f 875/927/1 876/928/1 882/934/610 +f 884/936/611 1014/1066/611 885/937/1 +f 886/938/3 940/992/608 887/939/608 +f 889/941/609 925/977/3 890/942/3 +f 892/944/7 869/921/7 871/923/7 +f 894/946/7 901/953/7 867/919/7 +f 897/949/6 879/931/6 855/907/6 +f 855/907/6 864/916/6 897/949/6 +f 864/916/6 979/1031/6 896/948/6 +f 979/1031/6 980/1032/6 896/948/6 +f 892/944/1 893/945/1 898/950/610 +f 900/952/615 1016/1068/615 901/953/1 +f 902/954/3 934/986/608 903/955/608 +f 938/990/3 906/958/3 905/957/3 +f 906/958/3 1035/1087/609 907/959/609 +f 908/960/7 886/938/2 888/940/2 +f 910/962/7 917/969/7 873/925/2 +f 913/965/6 832/884/6 875/927/6 +f 875/927/6 883/935/6 913/965/6 +f 883/935/6 981/1033/6 912/964/6 +f 981/1033/6 982/1034/6 912/964/6 +f 908/960/1 909/961/1 914/966/610 +f 916/968/611 1018/1070/611 917/969/1 +f 919/971/3 953/1005/3 1093/1145/3 +f 1093/1145/3 918/970/608 919/971/3 +f 921/973/5 937/989/5 905/957/5 +f 905/957/5 907/959/5 921/973/5 +f 907/959/5 1036/1088/5 920/972/5 +f 1036/1088/5 1038/1090/5 920/972/5 +f 922/974/7 902/954/7 904/956/7 +f 924/976/7 932/984/7 890/942/7 +f 927/979/6 869/921/6 892/944/6 +f 892/944/6 899/951/6 927/979/6 +f 899/951/6 983/1035/6 926/978/6 +f 983/1035/6 985/1037/6 926/978/6 +f 884/936/5 877/929/5 878/930/5 +f 878/930/5 835/887/5 884/936/5 +f 835/887/5 1030/1082/5 928/980/5 +f 1030/1082/5 1032/1084/5 928/980/5 +f 922/974/1 923/975/1 929/981/610 +f 931/983/615 1021/1073/611 932/984/1 +f 934/986/6 902/954/6 922/974/6 +f 922/974/6 930/982/6 934/986/6 +f 930/982/6 973/1025/6 933/985/6 +f 973/1025/6 974/1026/6 933/985/6 +f 935/987/7 956/1008/7 732/784/7 +f 937/989/7 1091/1143/2 938/990/7 +f 940/992/6 886/938/6 908/960/6 +f 908/960/6 915/967/6 940/992/6 +f 915/967/6 986/1038/6 939/991/6 +f 986/1038/6 987/1039/6 939/991/6 +f 900/952/5 894/946/5 895/947/5 +f 895/947/5 866/918/5 900/952/5 +f 866/918/5 1045/1097/5 941/993/5 +f 1045/1097/5 1044/1096/407 941/993/5 +f 936/988/1 942/994/1 935/987/1 +f 942/994/1 969/1021/610 943/995/610 +f 946/998/3 1052/1104/609 1054/1106/609 +f 1054/1106/609 944/996/3 946/998/3 +f 948/1000/1 1091/1143/1 937/989/1 +f 937/989/1 921/973/615 948/1000/1 +f 950/1002/6 956/1008/6 935/987/6 +f 935/987/6 943/995/6 950/1002/6 +f 943/995/6 970/1022/6 949/1001/6 +f 970/1022/6 972/1024/6 949/1001/6 +f 931/983/5 924/976/5 925/977/5 +f 925/977/5 889/941/5 931/983/5 +f 889/941/5 1050/1102/5 951/1003/5 +f 1050/1102/5 1049/1101/5 951/1003/5 +f 952/1004/7 1093/1145/7 953/1005/7 +f 954/1006/7 826/878/7 945/997/7 +f 1089/1141/608 955/1007/3 950/1002/608 +f 955/1007/3 732/784/3 956/1008/3 +f 916/968/5 910/962/5 911/963/5 +f 911/963/5 872/924/5 916/968/5 +f 872/924/5 1033/1085/5 957/1009/5 +f 1033/1085/5 1034/1086/5 957/1009/5 +f 1002/1054/610 1004/1056/610 958/1010/1 +f 1004/1056/610 952/1004/1 958/1010/1 +f 961/1013/1 826/878/1 954/1006/1 +f 954/1006/1 959/1011/615 961/1013/1 +f 993/1045/6 734/786/6 994/1046/6 +f 993/1045/6 994/1046/6 965/1017/6 +f 857/909/684 816/868/6 815/867/6 +f 815/867/6 993/1045/6 965/1017/6 +f 863/915/6 857/909/684 815/867/6 +f 995/1047/6 994/1046/6 1006/1058/6 +f 995/1047/6 1006/1058/6 966/1018/6 +f 876/928/410 856/908/6 880/932/6 +f 880/932/6 995/1047/6 966/1018/6 +f 882/934/6 876/928/410 880/932/6 +f 833/885/6 1007/1059/6 984/1036/6 +f 1007/1059/6 996/1048/6 984/1036/6 +f 893/945/6 834/886/6 833/885/6 +f 833/885/6 984/1036/6 898/950/6 +f 997/1049/6 996/1048/6 998/1050/6 +f 997/1049/6 998/1050/6 967/1019/6 +f 909/961/6 871/923/6 870/922/6 +f 870/922/6 997/1049/6 967/1019/6 +f 914/966/6 909/961/6 870/922/6 +f 999/1051/6 998/1050/6 1000/1052/6 +f 999/1051/6 1000/1052/6 968/1020/6 +f 923/975/683 888/940/681 887/939/6 +f 887/939/6 999/1051/6 968/1020/6 +f 929/981/6 923/975/683 887/939/6 +f 969/1021/610 971/1023/616 970/1022/616 +f 971/1023/616 1008/1060/618 972/1024/617 +f 929/981/610 968/1020/616 973/1025/616 +f 968/1020/616 1000/1052/618 974/1026/618 +f 975/1027/610 977/1029/616 976/1028/616 +f 977/1029/616 734/786/618 978/1030/617 +f 863/915/610 965/1017/616 979/1031/616 +f 965/1017/616 994/1046/618 980/1032/618 +f 882/934/610 966/1018/616 981/1033/616 +f 966/1018/616 1006/1058/618 982/1034/618 +f 898/950/610 984/1036/616 983/1035/616 +f 984/1036/616 996/1048/696 985/1037/618 +f 914/966/610 967/1019/616 986/1038/616 +f 967/1019/616 998/1050/618 987/1039/618 +f 988/1040/619 736/788/622 989/1041/620 +f 736/788/622 735/787/608 918/970/608 +f 830/882/610 963/1015/623 991/1043/616 +f 963/1015/623 962/1014/618 992/1044/618 +f 734/786/619 993/1045/622 850/902/622 +f 993/1045/622 815/867/608 851/903/608 +f 994/1046/619 995/1047/622 896/948/620 +f 995/1047/622 880/932/608 897/949/608 +f 996/1048/619 997/1049/622 926/978/622 +f 997/1049/622 870/922/608 927/979/608 +f 998/1050/619 999/1051/622 939/991/622 +f 999/1051/622 887/939/608 940/992/608 +f 1000/1052/619 1001/1053/622 933/985/620 +f 1001/1053/622 903/955/608 934/986/608 +f 1002/1054/610 1005/1057/616 1003/1055/616 +f 1005/1057/616 988/1040/618 990/1042/618 +f 962/1014/619 964/1016/622 860/912/622 +f 964/1016/622 729/781/608 861/913/608 +f 1006/1058/619 1007/1059/622 912/964/622 +f 1007/1059/622 833/885/608 913/965/608 +f 1008/1060/619 1009/1061/622 949/1001/620 +f 1009/1061/622 1089/1141/608 950/1002/608 +f 918/970/6 1093/1145/6 952/1004/6 +f 952/1004/6 1004/1056/6 918/970/6 +f 1004/1056/6 1003/1055/6 989/1041/6 +f 1003/1055/6 990/1042/6 989/1041/6 +f 847/899/5 1026/1078/5 845/897/5 +f 845/897/5 824/876/5 847/899/5 +f 1056/1108/5 1029/1081/5 1015/1067/5 +f 1029/1081/5 819/871/5 1015/1067/5 +f 819/871/5 818/870/697 885/937/407 +f 819/871/5 885/937/407 1014/1066/5 +f 1043/1095/5 1031/1083/5 1017/1069/5 +f 1031/1083/5 837/889/5 1017/1069/5 +f 837/889/5 836/888/5 901/953/5 +f 837/889/5 901/953/5 1016/1068/5 +f 1012/1064/5 1026/1078/5 813/865/5 +f 1026/1078/5 847/899/5 1092/1144/5 +f 1026/1078/5 1092/1144/5 1057/1109/5 +f 1052/1104/5 946/998/5 1012/1064/5 +f 1052/1104/5 1012/1064/5 813/865/5 +f 1026/1078/5 1057/1109/5 813/865/5 +f 1055/1107/5 1052/1104/5 813/865/5 +f 1039/1091/5 1055/1107/5 1023/1075/5 +f 1055/1107/5 813/865/5 1023/1075/5 +f 1023/1075/5 1029/1081/5 1056/1108/5 +f 1039/1091/5 1023/1075/5 1056/1108/5 +f 1056/1108/5 1031/1083/5 1043/1095/5 +f 1043/1095/5 1046/1098/5 1047/1099/5 +f 1043/1095/5 1047/1099/5 786/838/582 +f 1047/1099/5 1048/1100/5 786/838/582 +f 1043/1095/5 786/838/582 1056/1108/5 +f 1039/1091/5 1056/1108/5 786/838/582 +f 906/958/5 961/1013/5 960/1012/5 +f 1035/1087/5 906/958/5 960/1012/5 +f 1035/1087/5 960/1012/5 1042/1094/5 +f 1037/1089/5 1035/1087/5 1042/1094/5 +f 1037/1089/5 1042/1094/5 1039/1091/5 +f 1059/1111/407 1037/1089/5 1039/1091/5 +f 1086/1138/5 948/1000/5 947/999/5 +f 828/880/5 827/879/5 824/876/5 +f 827/879/5 762/814/532 885/937/407 +f 824/876/5 827/879/5 1013/1065/5 +f 841/893/5 1013/1065/5 827/879/5 +f 841/893/5 827/879/5 865/917/5 +f 1069/1121/648 1086/1138/5 947/999/5 +f 1069/1121/648 947/999/5 1060/1112/5 +f 865/917/5 827/879/5 818/870/697 +f 885/937/407 818/870/697 827/879/5 +f 1069/1121/648 1060/1112/5 1059/1111/407 +f 1069/1121/648 1059/1111/407 1039/1091/5 +f 867/919/5 901/953/5 762/814/532 +f 901/953/5 836/888/5 762/814/532 +f 836/888/5 885/937/407 762/814/532 +f 786/838/582 1069/1121/648 1039/1091/5 +f 932/984/5 873/925/5 762/814/532 +f 873/925/5 917/969/5 762/814/532 +f 917/969/5 867/919/5 762/814/532 +f 786/838/582 1048/1100/5 1051/1103/5 +f 786/838/582 1051/1103/5 891/943/5 +f 786/838/582 891/943/5 762/814/532 +f 891/943/5 890/942/5 762/814/532 +f 1047/1099/5 1046/1098/5 1019/1071/5 +f 1046/1098/5 868/920/5 1019/1071/5 +f 868/920/5 867/919/5 917/969/5 +f 868/920/5 917/969/5 1018/1070/5 +f 874/926/5 873/925/5 932/984/5 +f 874/926/5 932/984/5 1021/1073/5 +f 1048/1100/5 1047/1099/5 1020/1072/5 +f 1020/1072/5 874/926/5 1021/1073/5 +f 1022/1074/5 1048/1100/5 1020/1072/5 +f 1023/1075/624 812/864/625 853/905/625 +f 812/864/625 811/863/611 854/906/611 +f 845/897/609 1026/1078/626 1025/1077/626 +f 1026/1078/626 1012/1064/627 1027/1079/627 +f 819/871/609 1029/1081/626 1028/1080/626 +f 1029/1081/626 1023/1075/627 1024/1076/627 +f 837/889/609 1031/1083/626 1030/1082/628 +f 1031/1083/626 1056/1108/627 1032/1084/627 +f 874/926/609 1020/1072/626 1033/1085/626 +f 1020/1072/626 1047/1099/627 1034/1086/627 +f 1035/1087/609 1037/1089/626 1036/1088/626 +f 1037/1089/626 1059/1111/627 1038/1090/627 +f 1039/1091/624 1042/1094/625 1040/1092/625 +f 1042/1094/625 960/1012/611 959/1011/615 +f 1043/1095/629 1017/1069/625 941/993/625 +f 1017/1069/625 1016/1068/615 900/952/615 +f 868/920/609 1046/1098/626 1045/1097/626 +f 1046/1098/626 1043/1095/627 1044/1096/627 +f 1047/1099/624 1019/1071/625 957/1009/625 +f 1019/1071/625 1018/1070/611 916/968/611 +f 1048/1100/624 1022/1074/625 951/1003/625 +f 1022/1074/625 1021/1073/611 931/983/615 +f 891/943/609 1051/1103/626 1050/1102/626 +f 1051/1103/626 1048/1100/627 1049/1101/627 +f 1052/1104/609 1055/1107/626 1053/1105/626 +f 1055/1107/626 1039/1091/698 1041/1093/627 +f 862/914/630 1061/1113/699 1058/1110/700 +f 1061/1113/699 848/900/701 1058/1110/700 +f 1058/1110/700 846/898/631 862/914/630 +f 846/898/631 840/892/5 842/894/5 +f 1056/1108/624 1015/1067/625 928/980/632 +f 1015/1067/625 1014/1066/611 884/936/611 +f 1012/1064/629 1011/1063/625 881/933/632 +f 1011/1063/625 1010/1062/615 831/883/611 +f 848/900/633 813/865/702 1057/1109/634 +f 1057/1109/634 1092/1144/611 846/898/612 +f 1059/1111/624 1060/1112/625 920/972/625 +f 1060/1112/625 947/999/615 921/973/615 +f 959/1011/5 954/1006/5 944/996/5 +f 944/996/5 1054/1106/5 959/1011/5 +f 1054/1106/5 1053/1105/5 1040/1092/5 +f 1053/1105/5 1041/1093/5 1040/1092/5 +f 862/914/636 1062/1114/639 849/901/614 +f 808/860/640 1087/1139/674 1063/1115/641 +f 1065/1117/643 1079/1131/661 1066/1118/644 +f 1067/1119/646 1064/1116/642 1063/1115/641 +f 785/837/581 1071/1123/650 1069/1121/648 +f 1070/1122/649 1067/1119/662 1071/1123/650 +f 1064/1116/651 1067/1119/662 1070/1122/649 +f 764/816/560 808/860/604 1064/1116/651 +f 1063/1115/652 1087/1139/703 1072/1124/533 +f 1074/1126/653 719/771/654 718/770/654 +f 747/799/548 799/851/686 801/853/656 +f 1071/1123/658 1067/1119/646 1068/1120/647 +f 1078/1130/660 1082/1134/671 1079/1131/661 +f 1073/1125/651 806/858/662 1068/1120/662 +f 1068/1120/662 806/858/662 1080/1132/650 +f 1077/1129/650 1080/1132/650 1076/1128/648 +f 804/856/606 803/855/664 1079/1131/664 +f 1083/1135/665 804/856/606 1082/1134/606 +f 1072/1124/533 1087/1139/703 1083/1135/665 +f 1075/1127/6 718/770/6 1066/1118/6 +f 1085/1137/5 1076/1128/648 801/853/5 +f 802/854/598 804/856/600 1083/1135/666 +f 1069/1121/668 1081/1133/678 1085/1137/669 +f 1078/1130/660 1088/1140/677 1084/1136/670 +f 805/857/601 747/799/548 1076/1128/657 +f 807/859/603 806/858/602 1073/1125/673 +f 809/861/667 1083/1135/666 1087/1139/674 +f 810/862/675 1074/1126/653 1075/1127/655 +f 745/797/546 1073/1125/673 1072/1124/676 +f 1088/1140/677 746/798/547 1072/1124/676 +f 1071/1123/658 1077/1129/659 1081/1133/678 +f 1086/1138/669 1085/1137/669 800/852/679 +f 1094/1146/7 1095/1147/7 1096/1148/7 +f 1097/1149/704 1096/1148/1 1098/1150/704 +f 1099/1151/705 1100/1152/706 1101/1153/705 +f 1102/1154/707 1103/1155/708 1104/1156/707 +f 1105/1157/708 1106/1158/709 1103/1155/708 +f 1107/1159/709 1098/1150/704 1106/1158/709 +f 1108/1160/3 1109/1161/3 1095/1147/3 +f 1110/1162/710 1104/1156/707 1111/1163/710 +f 1112/1164/706 1113/1165/711 1100/1152/706 +f 1114/1166/711 1115/1167/712 1113/1165/711 +f 1116/1168/712 1117/1169/713 1115/1167/712 +f 1118/1170/5 1119/1171/5 1120/1172/5 +f 1121/1173/5 1122/1174/5 1106/1158/5 +f 1123/1175/5 1124/1176/5 1125/1177/5 +f 1126/1178/714 1127/1179/715 1128/1180/714 +f 1129/1181/715 1101/1153/705 1127/1179/715 +f 1111/1163/710 1130/1182/716 1110/1162/710 +f 1131/1183/716 1132/1184/717 1130/1182/716 +f 1132/1184/717 1126/1178/714 1128/1180/714 +f 1133/1185/6 1134/1186/6 1132/1184/6 +f 1135/1187/6 1100/1152/6 1136/1188/6 +f 1137/1189/6 1138/1190/6 1094/1146/6 +f 1139/1191/718 1135/1187/719 1120/1172/719 +f 1140/1192/720 1141/1193/721 1142/1194/720 +f 1125/1177/722 1143/1195/723 1144/1196/723 +f 1145/1197/724 1137/1189/725 1146/1198/724 +f 1124/1176/726 1133/1185/722 1125/1177/722 +f 1124/1176/726 1147/1199/727 1134/1186/726 +f 1148/1200/728 1149/1201/729 1147/1199/727 +f 1150/1202/729 1142/1194/720 1149/1201/729 +f 1121/1173/730 1146/1198/724 1151/1203/730 +f 1122/1174/731 1151/1203/730 1152/1204/731 +f 1153/1205/732 1152/1204/731 1154/1206/733 +f 1154/1206/733 1155/1207/734 1153/1205/732 +f 1120/1172/719 1156/1208/735 1157/1209/735 +f 1157/1209/735 1158/1210/736 1159/1211/736 +f 1159/1211/736 1160/1212/737 1161/1213/738 +f 1162/1214/725 1160/1212/737 1137/1189/725 +f 1144/1196/723 1163/1215/739 1164/1216/739 +f 1164/1216/739 1165/1217/740 1166/1218/740 +f 1166/1218/740 1167/1219/741 1168/1220/741 +f 1168/1220/741 1169/1221/718 1139/1191/718 +f 1170/1222/742 1138/1190/4 1171/1223/4 +f 1172/1224/1 1173/1225/743 1170/1222/742 +f 1174/1226/46 1175/1227/12 1172/1224/1 +f 1176/1228/744 1136/1188/7 1177/1229/744 +f 1119/1171/7 1178/1230/745 1136/1188/7 +f 1179/1231/746 1180/1232/11 1181/1233/747 +f 1182/1234/43 1183/1235/3 1184/1236/43 +f 1184/1236/43 1138/1190/4 1182/1234/43 +f 1094/1146/7 1108/1160/7 1095/1147/7 +f 1097/1149/704 1094/1146/12 1096/1148/1 +f 1099/1151/705 1112/1164/706 1100/1152/706 +f 1102/1154/707 1105/1157/708 1103/1155/708 +f 1105/1157/708 1107/1159/709 1106/1158/709 +f 1107/1159/709 1097/1149/704 1098/1150/704 +f 1108/1160/3 1117/1169/3 1109/1161/3 +f 1110/1162/710 1102/1154/707 1104/1156/707 +f 1112/1164/706 1114/1166/711 1113/1165/711 +f 1114/1166/711 1116/1168/712 1115/1167/712 +f 1116/1168/712 1109/1161/713 1117/1169/713 +f 1119/1171/5 1176/1228/5 1114/1166/5 +f 1114/1166/5 1112/1164/5 1119/1171/5 +f 1112/1164/5 1139/1191/5 1120/1172/5 +f 1119/1171/5 1112/1164/5 1120/1172/5 +f 1120/1172/5 1157/1209/5 1118/1170/5 +f 1157/1209/5 1179/1231/5 1118/1170/5 +f 1183/1235/5 1179/1231/5 1157/1209/5 +f 1183/1235/5 1157/1209/5 1159/1211/5 +f 1184/1236/5 1183/1235/5 1159/1211/5 +f 1184/1236/5 1159/1211/5 1161/1213/5 +f 1171/1223/5 1184/1236/5 1161/1213/5 +f 1171/1223/5 1161/1213/5 1162/1214/5 +f 1171/1223/5 1162/1214/5 1096/1148/5 +f 1162/1214/5 1145/1197/5 1096/1148/5 +f 1114/1166/5 1176/1228/5 1174/1226/5 +f 1095/1147/5 1109/1161/5 1116/1168/5 +f 1116/1168/5 1114/1166/5 1172/1224/5 +f 1114/1166/5 1174/1226/5 1172/1224/5 +f 1098/1150/5 1096/1148/5 1106/1158/5 +f 1096/1148/5 1095/1147/5 1171/1223/5 +f 1096/1148/5 1145/1197/5 1121/1173/5 +f 1106/1158/5 1096/1148/5 1121/1173/5 +f 1095/1147/5 1116/1168/5 1171/1223/5 +f 1116/1168/5 1172/1224/5 1170/1222/5 +f 1116/1168/5 1170/1222/5 1171/1223/5 +f 1140/1192/5 1104/1156/5 1155/1207/5 +f 1104/1156/5 1103/1155/5 1155/1207/5 +f 1155/1207/5 1103/1155/5 1153/1205/5 +f 1103/1155/5 1106/1158/5 1153/1205/5 +f 1122/1174/5 1153/1205/5 1106/1158/5 +f 1168/1220/5 1139/1191/5 1112/1164/5 +f 1112/1164/5 1099/1151/5 1168/1220/5 +f 1099/1151/5 1129/1181/5 1166/1218/5 +f 1168/1220/5 1099/1151/5 1166/1218/5 +f 1129/1181/5 1126/1178/5 1164/1216/5 +f 1126/1178/5 1123/1175/5 1125/1177/5 +f 1123/1175/5 1131/1183/5 1148/1200/5 +f 1131/1183/5 1111/1163/5 1150/1202/5 +f 1148/1200/5 1131/1183/5 1150/1202/5 +f 1111/1163/5 1104/1156/5 1140/1192/5 +f 1111/1163/5 1140/1192/5 1150/1202/5 +f 1164/1216/5 1166/1218/5 1129/1181/5 +f 1144/1196/5 1164/1216/5 1126/1178/5 +f 1123/1175/5 1148/1200/5 1124/1176/5 +f 1125/1177/5 1144/1196/5 1126/1178/5 +f 1126/1178/714 1129/1181/715 1127/1179/715 +f 1129/1181/715 1099/1151/705 1101/1153/705 +f 1111/1163/710 1131/1183/716 1130/1182/716 +f 1131/1183/716 1123/1175/717 1132/1184/717 +f 1132/1184/717 1123/1175/717 1126/1178/714 +f 1149/1201/6 1142/1194/6 1110/1162/6 +f 1142/1194/6 1102/1154/6 1110/1162/6 +f 1110/1162/6 1130/1182/6 1149/1201/6 +f 1132/1184/6 1128/1180/6 1133/1185/6 +f 1128/1180/6 1127/1179/6 1163/1215/6 +f 1133/1185/6 1128/1180/6 1143/1195/6 +f 1127/1179/6 1101/1153/6 1165/1217/6 +f 1101/1153/6 1100/1152/6 1167/1219/6 +f 1100/1152/6 1169/1221/6 1167/1219/6 +f 1101/1153/6 1167/1219/6 1165/1217/6 +f 1147/1199/6 1149/1201/6 1130/1182/6 +f 1127/1179/6 1165/1217/6 1163/1215/6 +f 1147/1199/6 1130/1182/6 1132/1184/6 +f 1134/1186/6 1147/1199/6 1132/1184/6 +f 1163/1215/6 1143/1195/6 1128/1180/6 +f 1178/1230/6 1181/1233/6 1156/1208/6 +f 1135/1187/6 1169/1221/6 1100/1152/6 +f 1178/1230/6 1156/1208/6 1135/1187/6 +f 1113/1165/6 1177/1229/6 1136/1188/6 +f 1136/1188/6 1178/1230/6 1135/1187/6 +f 1100/1152/6 1113/1165/6 1136/1188/6 +f 1185/1237/6 1177/1229/6 1113/1165/6 +f 1115/1167/6 1117/1169/6 1108/1160/6 +f 1185/1237/6 1113/1165/6 1175/1227/6 +f 1113/1165/6 1115/1167/6 1175/1227/6 +f 1108/1160/6 1094/1146/6 1138/1190/6 +f 1094/1146/6 1097/1149/6 1107/1159/6 +f 1146/1198/6 1094/1146/6 1151/1203/6 +f 1094/1146/6 1146/1198/6 1137/1189/6 +f 1094/1146/6 1107/1159/6 1151/1203/6 +f 1175/1227/6 1115/1167/6 1173/1225/6 +f 1115/1167/6 1108/1160/6 1138/1190/6 +f 1173/1225/6 1115/1167/6 1138/1190/6 +f 1105/1157/6 1102/1154/6 1141/1193/6 +f 1102/1154/6 1142/1194/6 1141/1193/6 +f 1107/1159/6 1105/1157/6 1154/1206/6 +f 1105/1157/6 1141/1193/6 1154/1206/6 +f 1156/1208/6 1181/1233/6 1180/1232/6 +f 1158/1210/6 1156/1208/6 1180/1232/6 +f 1158/1210/6 1180/1232/6 1182/1234/6 +f 1160/1212/6 1158/1210/6 1182/1234/6 +f 1160/1212/6 1182/1234/6 1138/1190/6 +f 1137/1189/6 1160/1212/6 1138/1190/6 +f 1107/1159/6 1154/1206/6 1152/1204/6 +f 1107/1159/6 1152/1204/6 1151/1203/6 +f 1139/1191/718 1169/1221/718 1135/1187/719 +f 1140/1192/720 1155/1207/734 1141/1193/721 +f 1125/1177/722 1133/1185/722 1143/1195/723 +f 1145/1197/724 1162/1214/725 1137/1189/725 +f 1124/1176/726 1134/1186/726 1133/1185/722 +f 1124/1176/726 1148/1200/728 1147/1199/727 +f 1148/1200/728 1150/1202/729 1149/1201/729 +f 1150/1202/729 1140/1192/720 1142/1194/720 +f 1121/1173/730 1145/1197/724 1146/1198/724 +f 1122/1174/731 1121/1173/730 1151/1203/730 +f 1153/1205/732 1122/1174/731 1152/1204/731 +f 1154/1206/733 1141/1193/721 1155/1207/734 +f 1120/1172/719 1135/1187/719 1156/1208/735 +f 1157/1209/735 1156/1208/735 1158/1210/736 +f 1159/1211/736 1158/1210/736 1160/1212/737 +f 1162/1214/725 1161/1213/738 1160/1212/737 +f 1144/1196/723 1143/1195/723 1163/1215/739 +f 1164/1216/739 1163/1215/739 1165/1217/740 +f 1166/1218/740 1165/1217/740 1167/1219/741 +f 1168/1220/741 1167/1219/741 1169/1221/718 +f 1170/1222/742 1173/1225/743 1138/1190/4 +f 1172/1224/1 1175/1227/12 1173/1225/743 +f 1174/1226/46 1185/1237/748 1175/1227/12 +f 1185/1237/748 1174/1226/46 1176/1228/744 +f 1176/1228/744 1119/1171/7 1136/1188/7 +f 1177/1229/744 1185/1237/748 1176/1228/744 +f 1119/1171/7 1118/1170/745 1178/1230/745 +f 1181/1233/747 1178/1230/745 1118/1170/745 +f 1179/1231/746 1183/1235/3 1180/1232/11 +f 1181/1233/747 1118/1170/745 1179/1231/746 +f 1182/1234/43 1180/1232/11 1183/1235/3 +f 1184/1236/43 1171/1223/4 1138/1190/4 +f 1186/1238/1 1187/1239/1 1188/1240/1 +f 1189/1241/749 1188/1240/4 1190/1242/749 +f 1191/1243/750 1192/1244/751 1193/1245/752 +f 1194/1246/753 1195/1247/754 1196/1248/755 +f 1197/1249/756 1198/1250/757 1199/1251/756 +f 1200/1252/758 1199/1251/756 1201/1253/758 +f 1202/1254/7 1201/1253/758 1187/1239/7 +f 1193/1245/759 1203/1255/760 1204/1256/760 +f 1205/1257/761 1206/1258/762 1207/1259/763 +f 1200/1252/6 1208/1260/764 1209/1261/765 +f 1210/1262/766 1211/1263/767 1206/1258/762 +f 1212/1264/768 1213/1265/769 1214/1266/768 +f 1190/1242/749 1212/1264/768 1214/1266/768 +f 1207/1259/763 1196/1248/755 1205/1257/761 +f 1215/1267/770 1216/1268/771 1217/1269/772 +f 1218/1270/773 1206/1258/762 1216/1268/771 +f 1219/1271/774 1220/1272/775 1221/1273/776 +f 1221/1273/776 1210/1262/766 1205/1257/761 +f 1217/1269/772 1222/1274/777 1223/1275/778 +f 1216/1268/771 1211/1263/767 1222/1274/777 +f 1224/1276/779 1225/1277/780 1220/1272/775 +f 1220/1272/775 1192/1244/751 1210/1262/766 +f 1207/1259/763 1226/1278/781 1194/1246/753 +f 1218/1270/773 1209/1261/765 1226/1278/781 +f 1211/1263/767 1227/1279/782 1222/1274/777 +f 1222/1274/777 1228/1280/783 1223/1275/778 +f 1204/1256/784 1225/1277/780 1229/1281/785 +f 1203/1255/786 1192/1244/751 1225/1277/780 +f 1230/1282/787 1221/1273/776 1231/1283/788 +f 1231/1283/788 1205/1257/761 1196/1248/755 +f 1208/1260/764 1232/1284/789 1233/1285/790 +f 1232/1284/789 1213/1265/769 1233/1285/790 +f 1234/1286/791 1235/1287/792 1236/1288/793 +f 1234/1286/791 1195/1247/754 1212/1264/768 +f 1235/1287/792 1231/1283/788 1236/1288/793 +f 1236/1288/793 1196/1248/755 1195/1247/754 +f 1208/1260/764 1226/1278/781 1209/1261/765 +f 1233/1285/790 1194/1246/753 1226/1278/781 +f 1201/1253/5 1230/1282/787 1235/1287/792 +f 1186/1238/1 1202/1254/12 1187/1239/1 +f 1189/1241/749 1186/1238/4 1188/1240/4 +f 1191/1243/750 1211/1263/767 1192/1244/751 +f 1194/1246/753 1213/1265/769 1195/1247/754 +f 1197/1249/756 1237/1289/757 1198/1250/757 +f 1200/1252/758 1197/1249/756 1199/1251/756 +f 1202/1254/7 1200/1252/758 1201/1253/758 +f 1204/1256/760 1198/1250/757 1193/1245/759 +f 1198/1250/757 1237/1289/757 1193/1245/759 +f 1237/1289/757 1228/1280/759 1191/1243/759 +f 1228/1280/759 1227/1279/794 1191/1243/759 +f 1191/1243/759 1193/1245/759 1237/1289/757 +f 1205/1257/761 1210/1262/766 1206/1258/762 +f 1228/1280/783 1237/1289/6 1223/1275/778 +f 1237/1289/6 1197/1249/6 1215/1267/770 +f 1223/1275/778 1237/1289/6 1217/1269/772 +f 1197/1249/6 1200/1252/6 1209/1261/765 +f 1200/1252/6 1202/1254/6 1189/1241/6 +f 1208/1260/764 1200/1252/6 1232/1284/789 +f 1202/1254/6 1186/1238/6 1189/1241/6 +f 1189/1241/6 1232/1284/789 1200/1252/6 +f 1209/1261/765 1215/1267/770 1197/1249/6 +f 1215/1267/770 1217/1269/772 1237/1289/6 +f 1210/1262/766 1192/1244/751 1211/1263/767 +f 1212/1264/768 1195/1247/754 1213/1265/769 +f 1232/1284/789 1189/1241/749 1214/1266/768 +f 1189/1241/749 1190/1242/749 1214/1266/768 +f 1190/1242/749 1234/1286/791 1212/1264/768 +f 1207/1259/763 1194/1246/753 1196/1248/755 +f 1215/1267/770 1218/1270/773 1216/1268/771 +f 1218/1270/773 1207/1259/763 1206/1258/762 +f 1219/1271/774 1224/1276/779 1220/1272/775 +f 1221/1273/776 1220/1272/775 1210/1262/766 +f 1217/1269/772 1216/1268/771 1222/1274/777 +f 1216/1268/771 1206/1258/762 1211/1263/767 +f 1224/1276/779 1229/1281/785 1225/1277/780 +f 1220/1272/775 1225/1277/780 1192/1244/751 +f 1207/1259/763 1218/1270/773 1226/1278/781 +f 1218/1270/773 1215/1267/770 1209/1261/765 +f 1211/1263/767 1191/1243/750 1227/1279/782 +f 1222/1274/777 1227/1279/782 1228/1280/783 +f 1204/1256/784 1203/1255/786 1225/1277/780 +f 1203/1255/786 1193/1245/752 1192/1244/751 +f 1230/1282/787 1219/1271/774 1221/1273/776 +f 1231/1283/788 1221/1273/776 1205/1257/761 +f 1232/1284/789 1214/1266/768 1213/1265/769 +f 1234/1286/791 1236/1288/793 1195/1247/754 +f 1235/1287/792 1230/1282/787 1231/1283/788 +f 1236/1288/793 1231/1283/788 1196/1248/755 +f 1208/1260/764 1233/1285/790 1226/1278/781 +f 1233/1285/790 1213/1265/769 1194/1246/753 +f 1188/1240/5 1187/1239/5 1190/1242/5 +f 1187/1239/5 1201/1253/5 1190/1242/5 +f 1201/1253/5 1199/1251/5 1230/1282/787 +f 1199/1251/5 1198/1250/5 1219/1271/774 +f 1219/1271/774 1198/1250/5 1224/1276/779 +f 1198/1250/5 1204/1256/784 1229/1281/785 +f 1229/1281/785 1224/1276/779 1198/1250/5 +f 1219/1271/774 1230/1282/787 1199/1251/5 +f 1235/1287/792 1234/1286/791 1201/1253/5 +f 1234/1286/791 1190/1242/5 1201/1253/5 +f 1238/1290/795 1239/1291/796 1240/1292/795 +f 1241/1293/797 1242/1294/798 1243/1295/6 +f 1244/1296/799 1245/1297/800 1246/1298/801 +f 1247/1299/802 1248/1300/803 1244/1296/799 +f 1249/1301/804 1250/1302/805 1247/1299/802 +f 1251/1303/806 1252/1304/807 1249/1301/804 +f 1253/1305/808 1254/1306/809 1255/1307/810 +f 1256/1308/5 1257/1309/5 1258/1310/811 +f 1259/1311/812 1253/1305/808 1260/1312/813 +f 1243/1295/814 1256/1308/812 1259/1311/812 +f 1261/1313/815 1257/1309/814 1243/1295/814 +f 1262/1314/796 1263/1315/815 1261/1313/815 +f 1246/1298/801 1264/1316/816 1265/1317/817 +f 1240/1292/818 1266/1318/819 1267/1319/820 +f 1267/1319/820 1265/1317/817 1268/1320/821 +f 1269/1321/822 1270/1322/823 1266/1318/819 +f 1266/1318/819 1246/1298/801 1265/1317/817 +f 1242/1294/798 1271/1323/824 1270/1322/823 +f 1270/1322/823 1244/1296/799 1246/1298/801 +f 1241/1293/797 1272/1324/825 1271/1323/824 +f 1271/1323/824 1247/1299/802 1244/1296/799 +f 1273/1325/826 1274/1326/827 1272/1324/825 +f 1274/1326/827 1247/1299/802 1272/1324/825 +f 1275/1327/828 1276/1328/829 1274/1326/827 +f 1276/1328/829 1249/1301/804 1274/1326/827 +f 1264/1316/816 1277/1329/830 1278/1330/831 +f 1279/1331/832 1238/1290/833 1277/1329/830 +f 1245/1297/800 1279/1331/832 1264/1316/816 +f 1280/1332/834 1281/1333/835 1279/1331/832 +f 1248/1300/803 1280/1332/834 1245/1297/800 +f 1282/1334/836 1283/1335/837 1280/1332/834 +f 1250/1302/805 1282/1334/836 1248/1300/803 +f 1284/1336/838 1258/1310/811 1282/1334/836 +f 1250/1302/805 1285/1337/839 1284/1336/838 +f 1285/1337/839 1286/1338/840 1284/1336/838 +f 1252/1304/807 1287/1339/841 1285/1337/839 +f 1285/1337/839 1287/1339/841 1254/1306/842 +f 1265/1317/817 1278/1330/831 1268/1320/821 +f 1239/1291/796 1262/1314/796 1240/1292/795 +f 1240/1292/795 1267/1319/795 1277/1329/795 +f 1267/1319/795 1268/1320/795 1277/1329/795 +f 1268/1320/795 1278/1330/795 1277/1329/795 +f 1277/1329/795 1238/1290/795 1240/1292/795 +f 1259/1311/6 1260/1312/843 1275/1327/828 +f 1259/1311/6 1275/1327/828 1273/1325/826 +f 1262/1314/6 1261/1313/6 1242/1294/798 +f 1261/1313/6 1243/1295/6 1242/1294/798 +f 1269/1321/822 1240/1292/818 1262/1314/6 +f 1242/1294/798 1269/1321/822 1262/1314/6 +f 1243/1295/6 1259/1311/6 1241/1293/797 +f 1259/1311/6 1273/1325/826 1241/1293/797 +f 1244/1296/799 1248/1300/803 1245/1297/800 +f 1247/1299/802 1250/1302/805 1248/1300/803 +f 1249/1301/804 1252/1304/807 1250/1302/805 +f 1251/1303/806 1255/1307/844 1252/1304/807 +f 1255/1307/810 1251/1303/845 1276/1328/845 +f 1275/1327/846 1260/1312/813 1253/1305/808 +f 1255/1307/810 1276/1328/845 1253/1305/808 +f 1276/1328/845 1275/1327/846 1253/1305/808 +f 1254/1306/809 1287/1339/847 1255/1307/810 +f 1257/1309/5 1263/1315/5 1283/1335/837 +f 1263/1315/5 1239/1291/5 1283/1335/837 +f 1239/1291/5 1238/1290/833 1281/1333/835 +f 1239/1291/5 1281/1333/835 1283/1335/837 +f 1254/1306/842 1253/1305/843 1256/1308/5 +f 1286/1338/840 1254/1306/842 1256/1308/5 +f 1258/1310/811 1286/1338/840 1256/1308/5 +f 1257/1309/5 1283/1335/837 1258/1310/811 +f 1259/1311/812 1256/1308/812 1253/1305/808 +f 1243/1295/814 1257/1309/814 1256/1308/812 +f 1261/1313/815 1263/1315/815 1257/1309/814 +f 1262/1314/796 1239/1291/796 1263/1315/815 +f 1246/1298/801 1245/1297/800 1264/1316/816 +f 1240/1292/818 1269/1321/822 1266/1318/819 +f 1267/1319/820 1266/1318/819 1265/1317/817 +f 1269/1321/822 1242/1294/798 1270/1322/823 +f 1266/1318/819 1270/1322/823 1246/1298/801 +f 1242/1294/798 1241/1293/797 1271/1323/824 +f 1270/1322/823 1271/1323/824 1244/1296/799 +f 1241/1293/797 1273/1325/826 1272/1324/825 +f 1271/1323/824 1272/1324/825 1247/1299/802 +f 1273/1325/826 1275/1327/828 1274/1326/827 +f 1274/1326/827 1249/1301/804 1247/1299/802 +f 1276/1328/829 1251/1303/806 1249/1301/804 +f 1264/1316/816 1279/1331/832 1277/1329/830 +f 1279/1331/832 1281/1333/835 1238/1290/833 +f 1245/1297/800 1280/1332/834 1279/1331/832 +f 1280/1332/834 1283/1335/837 1281/1333/835 +f 1248/1300/803 1282/1334/836 1280/1332/834 +f 1282/1334/836 1258/1310/811 1283/1335/837 +f 1250/1302/805 1284/1336/838 1282/1334/836 +f 1284/1336/838 1286/1338/840 1258/1310/811 +f 1250/1302/805 1252/1304/807 1285/1337/839 +f 1285/1337/839 1254/1306/842 1286/1338/840 +f 1252/1304/807 1255/1307/844 1287/1339/841 +f 1265/1317/817 1264/1316/816 1278/1330/831 +f 1288/1340/7 1289/1341/16 1290/1342/7 +f 1291/1343/16 1292/1344/5 1289/1341/16 +f 1293/1345/5 1294/1346/24 1292/1344/5 +f 1295/1347/24 1296/1348/4 1294/1346/24 +f 1296/1348/4 1297/1349/25 1298/1350/25 +f 1297/1349/25 1299/1351/6 1298/1350/25 +f 1300/1352/3 1301/1353/3 1293/1345/3 +f 1300/1352/6 1302/1354/17 1299/1351/6 +f 1303/1355/17 1290/1342/7 1302/1354/17 +f 1298/1350/1 1299/1351/1 1302/1354/1 +f 1288/1340/7 1291/1343/16 1289/1341/16 +f 1291/1343/16 1293/1345/5 1292/1344/5 +f 1293/1345/5 1295/1347/24 1294/1346/24 +f 1295/1347/24 1301/1353/4 1296/1348/4 +f 1296/1348/4 1301/1353/4 1297/1349/25 +f 1297/1349/25 1300/1352/6 1299/1351/6 +f 1293/1345/3 1291/1343/3 1288/1340/3 +f 1288/1340/3 1303/1355/3 1300/1352/3 +f 1300/1352/3 1297/1349/3 1301/1353/3 +f 1301/1353/3 1295/1347/3 1293/1345/3 +f 1293/1345/3 1288/1340/3 1300/1352/3 +f 1300/1352/6 1303/1355/17 1302/1354/17 +f 1303/1355/17 1288/1340/7 1290/1342/7 +f 1302/1354/1 1290/1342/1 1289/1341/1 +f 1289/1341/1 1292/1344/1 1302/1354/1 +f 1292/1344/1 1294/1346/1 1302/1354/1 +f 1294/1346/1 1296/1348/1 1302/1354/1 +f 1296/1348/1 1298/1350/1 1302/1354/1 +f 1356/1356/848 1357/1357/849 1358/1358/850 +f 1358/1358/850 1359/1359/851 1356/1356/848 +f 1360/1360/852 1361/1361/853 1359/1359/851 +f 1362/1362/6 1363/1363/854 1364/1364/6 +f 1365/1365/855 1366/1366/856 1367/1367/857 +f 1368/1368/858 1367/1367/857 1366/1366/856 +f 1369/1369/859 1350/101/859 1349/100/860 +f 1370/1370/5 1353/104/5 1352/103/5 +f 1364/1364/4 1371/1371/4 1362/1362/4 +f 1372/1372/861 1365/1365/862 1357/1357/863 +f 1356/1356/864 1368/1368/865 1366/1366/864 +f 1358/1358/866 1373/1373/867 1360/1360/868 +f 1359/1359/865 1369/1369/869 1368/1368/865 +f 1346/97/870 1355/106/871 1363/1363/872 +f 1363/1363/872 1355/106/871 1354/105/873 +f 1362/1362/3 1369/1369/869 1361/1361/869 +f 1357/1357/863 1367/1367/874 1358/1358/866 +f 1372/1372/875 1366/1366/864 1374/1374/875 +f 1356/1356/848 1372/1372/849 1357/1357/849 +f 1358/1358/850 1360/1360/852 1359/1359/851 +f 1360/1360/852 1363/1363/854 1361/1361/853 +f 1362/1362/6 1361/1361/853 1363/1363/854 +f 1365/1365/855 1374/1374/855 1366/1366/856 +f 1368/1368/858 1373/1373/876 1367/1367/857 +f 1349/100/860 1347/98/877 1373/1373/876 +f 1373/1373/876 1368/1368/858 1349/100/860 +f 1368/1368/858 1369/1369/859 1349/100/860 +f 1350/101/859 1369/1369/859 1352/103/5 +f 1369/1369/859 1371/1371/5 1352/103/5 +f 1371/1371/5 1370/1370/5 1352/103/5 +f 1364/1364/4 1370/1370/4 1371/1371/4 +f 1372/1372/861 1374/1374/861 1365/1365/862 +f 1356/1356/864 1359/1359/865 1368/1368/865 +f 1358/1358/866 1367/1367/874 1373/1373/867 +f 1359/1359/865 1361/1361/869 1369/1369/869 +f 1363/1363/872 1360/1360/868 1346/97/870 +f 1360/1360/868 1373/1373/867 1346/97/870 +f 1373/1373/867 1347/98/878 1346/97/870 +f 1353/104/879 1370/1370/1 1354/105/873 +f 1370/1370/1 1364/1364/1 1354/105/873 +f 1364/1364/1 1363/1363/872 1354/105/873 +f 1362/1362/3 1371/1371/3 1369/1369/869 +f 1357/1357/863 1365/1365/862 1367/1367/874 +f 1372/1372/875 1356/1356/864 1366/1366/864 o Lamp2 v 0.406250 1.020000 -0.418749 v 0.353217 1.020000 -0.396782 @@ -89,44 +6376,44 @@ vn 0.7071 0.0000 0.7071 vn 0.0000 0.0000 -1.0000 vn 0.7071 0.0000 -0.7071 s 1 -f 17/1/1 16/2/2 15/3/3 -f 20/4/4 13/5/5 19/6/6 -f 21/7/7 12/8/8 11/9/9 -f 23/10/10 10/11/11 9/12/12 -f 18/13/13 9/12/12 16/2/2 -f 17/1/1 14/14/14 20/4/4 -f 22/15/15 13/5/5 12/8/8 -f 21/7/7 10/11/11 24/16/16 -f 16/2/2 9/12/12 13/5/5 -f 3/17/17 24/18/16 2/19/18 -f 5/20/19 22/21/15 4/22/20 -f 7/23/21 20/24/4 6/25/22 -f 1/26/23 18/27/13 8/28/24 -f 2/29/18 23/30/10 1/26/23 -f 4/31/20 21/32/7 3/17/17 -f 6/33/22 19/34/6 5/20/19 -f 8/35/24 17/36/1 7/23/21 -f 17/1/1 18/13/13 16/2/2 -f 20/4/4 14/14/14 13/5/5 -f 21/7/7 22/15/15 12/8/8 -f 23/10/10 24/16/16 10/11/11 -f 18/13/13 23/10/10 9/12/12 -f 17/1/1 15/3/3 14/14/14 -f 22/15/15 19/6/6 13/5/5 -f 21/7/7 11/9/9 10/11/11 -f 9/12/12 10/11/11 11/9/9 -f 11/9/9 12/8/8 9/12/12 -f 12/8/8 13/5/5 9/12/12 -f 13/5/5 14/14/14 15/3/3 -f 15/3/3 16/2/2 13/5/5 -f 3/17/17 21/32/7 24/18/16 -f 5/20/19 19/34/6 22/21/15 -f 7/23/21 17/36/1 20/24/4 -f 1/26/23 23/30/10 18/27/13 -f 2/29/18 24/37/16 23/30/10 -f 4/31/20 22/38/15 21/32/7 -f 6/33/22 20/39/4 19/34/6 -f 8/35/24 18/27/13 17/36/1 +f 1391/1375/880 1390/1376/881 1389/1377/882 +f 1394/1378/883 1387/1379/884 1393/1380/885 +f 1395/1381/886 1386/1382/887 1385/1383/888 +f 1397/1384/889 1384/1385/890 1383/1386/891 +f 1392/1387/892 1383/1386/891 1390/1376/881 +f 1391/1375/880 1388/1388/893 1394/1378/883 +f 1396/1389/894 1387/1379/884 1386/1382/887 +f 1395/1381/886 1384/1385/890 1398/1390/895 +f 1390/1376/881 1383/1386/891 1387/1379/884 +f 1377/1391/896 1398/1392/895 1376/1393/897 +f 1379/1394/898 1396/1395/894 1378/1396/899 +f 1381/1397/900 1394/1398/883 1380/1399/901 +f 1375/1400/902 1392/1401/892 1382/1402/903 +f 1376/1403/897 1397/1404/889 1375/1400/902 +f 1378/1405/899 1395/1406/886 1377/1391/896 +f 1380/1407/901 1393/1408/885 1379/1394/898 +f 1382/1409/903 1391/1410/880 1381/1397/900 +f 1391/1375/880 1392/1387/892 1390/1376/881 +f 1394/1378/883 1388/1388/893 1387/1379/884 +f 1395/1381/886 1396/1389/894 1386/1382/887 +f 1397/1384/889 1398/1390/895 1384/1385/890 +f 1392/1387/892 1397/1384/889 1383/1386/891 +f 1391/1375/880 1389/1377/882 1388/1388/893 +f 1396/1389/894 1393/1380/885 1387/1379/884 +f 1395/1381/886 1385/1383/888 1384/1385/890 +f 1383/1386/891 1384/1385/890 1385/1383/888 +f 1385/1383/888 1386/1382/887 1383/1386/891 +f 1386/1382/887 1387/1379/884 1383/1386/891 +f 1387/1379/884 1388/1388/893 1389/1377/882 +f 1389/1377/882 1390/1376/881 1387/1379/884 +f 1377/1391/896 1395/1406/886 1398/1392/895 +f 1379/1394/898 1393/1408/885 1396/1395/894 +f 1381/1397/900 1391/1410/880 1394/1398/883 +f 1375/1400/902 1397/1404/889 1392/1401/892 +f 1376/1403/897 1398/1411/895 1397/1404/889 +f 1378/1405/899 1396/1412/894 1395/1406/886 +f 1380/1407/901 1394/1413/883 1393/1408/885 +f 1382/1409/903 1392/1401/892 1391/1410/880 o Lamp1 v 0.406250 1.020000 -0.168749 v 0.353217 1.020000 -0.146782 @@ -216,44 +6503,44 @@ vn 0.7071 0.0000 0.7071 vn 0.0000 0.0000 -1.0000 vn 0.7071 0.0000 -0.7071 s 1 -f 41/40/25 40/41/26 39/42/27 -f 44/43/28 37/44/29 43/45/30 -f 45/46/31 36/47/32 35/48/33 -f 48/49/34 33/50/35 47/51/36 -f 42/52/37 33/50/35 40/41/26 -f 41/40/25 38/53/38 44/43/28 -f 46/54/39 37/44/29 36/47/32 -f 45/46/31 34/55/40 48/49/34 -f 40/41/26 33/50/35 37/44/29 -f 27/56/41 48/57/34 26/58/42 -f 29/59/43 46/60/39 28/61/44 -f 31/62/45 44/63/28 30/64/46 -f 25/65/47 42/66/37 32/67/48 -f 26/68/42 47/69/36 25/65/47 -f 28/70/44 45/71/31 27/56/41 -f 30/72/46 43/73/30 29/59/43 -f 32/74/48 41/75/25 31/62/45 -f 41/40/25 42/52/37 40/41/26 -f 44/43/28 38/53/38 37/44/29 -f 45/46/31 46/54/39 36/47/32 -f 48/49/34 34/55/40 33/50/35 -f 42/52/37 47/51/36 33/50/35 -f 41/40/25 39/42/27 38/53/38 -f 46/54/39 43/45/30 37/44/29 -f 45/46/31 35/48/33 34/55/40 -f 33/50/35 34/55/40 35/48/33 -f 35/48/33 36/47/32 33/50/35 -f 36/47/32 37/44/29 33/50/35 -f 37/44/29 38/53/38 39/42/27 -f 39/42/27 40/41/26 37/44/29 -f 27/56/41 45/71/31 48/57/34 -f 29/59/43 43/73/30 46/60/39 -f 31/62/45 41/75/25 44/63/28 -f 25/65/47 47/69/36 42/66/37 -f 26/68/42 48/57/34 47/69/36 -f 28/70/44 46/76/39 45/71/31 -f 30/72/46 44/77/28 43/73/30 -f 32/74/48 42/78/37 41/75/25 +f 1415/1414/904 1414/1415/905 1413/1416/906 +f 1418/1417/907 1411/1418/908 1417/1419/909 +f 1419/1420/910 1410/1421/911 1409/1422/912 +f 1422/1423/913 1407/1424/914 1421/1425/915 +f 1416/1426/916 1407/1424/914 1414/1415/905 +f 1415/1414/904 1412/1427/917 1418/1417/907 +f 1420/1428/918 1411/1418/908 1410/1421/911 +f 1419/1420/910 1408/1429/919 1422/1423/913 +f 1414/1415/905 1407/1424/914 1411/1418/908 +f 1401/1430/920 1422/1431/913 1400/1432/921 +f 1403/1433/922 1420/1434/918 1402/1435/923 +f 1405/1436/924 1418/1437/907 1404/1438/925 +f 1399/1439/926 1416/1440/916 1406/1441/927 +f 1400/1442/921 1421/1443/915 1399/1439/926 +f 1402/1444/923 1419/1445/910 1401/1430/920 +f 1404/1446/925 1417/1447/909 1403/1433/922 +f 1406/1448/927 1415/1449/904 1405/1436/924 +f 1415/1414/904 1416/1426/916 1414/1415/905 +f 1418/1417/907 1412/1427/917 1411/1418/908 +f 1419/1420/910 1420/1428/918 1410/1421/911 +f 1422/1423/913 1408/1429/919 1407/1424/914 +f 1416/1426/916 1421/1425/915 1407/1424/914 +f 1415/1414/904 1413/1416/906 1412/1427/917 +f 1420/1428/918 1417/1419/909 1411/1418/908 +f 1419/1420/910 1409/1422/912 1408/1429/919 +f 1407/1424/914 1408/1429/919 1409/1422/912 +f 1409/1422/912 1410/1421/911 1407/1424/914 +f 1410/1421/911 1411/1418/908 1407/1424/914 +f 1411/1418/908 1412/1427/917 1413/1416/906 +f 1413/1416/906 1414/1415/905 1411/1418/908 +f 1401/1430/920 1419/1445/910 1422/1431/913 +f 1403/1433/922 1417/1447/909 1420/1434/918 +f 1405/1436/924 1415/1449/904 1418/1437/907 +f 1399/1439/926 1421/1443/915 1416/1440/916 +f 1400/1442/921 1422/1431/913 1421/1443/915 +f 1402/1444/923 1420/1450/918 1419/1445/910 +f 1404/1446/925 1418/1451/907 1417/1447/909 +f 1406/1448/927 1416/1452/916 1415/1449/904 o Meter2 v 0.000000 1.250000 0.218750 v 0.000000 1.272097 0.227903 @@ -317,31 +6604,31 @@ vn 0.0000 0.3827 0.9239 vn 0.0000 0.3827 -0.9239 vn 0.0000 -0.3827 -0.9239 s off -f 60/79/49 62/80/49 61/81/49 -f 60/79/49 59/82/49 58/83/49 -f 66/84/49 63/85/49 64/86/49 -f 65/87/49 66/84/49 64/86/49 -f 54/88/50 63/89/50 53/90/50 -f 52/91/51 61/92/51 57/93/51 -f 57/94/52 62/95/52 51/96/52 -f 55/97/53 64/98/53 54/88/53 -f 51/99/54 58/100/54 50/101/54 -f 56/102/55 65/103/55 55/104/55 -f 53/90/56 60/105/56 52/91/56 -f 50/101/57 59/106/57 49/107/57 -f 49/107/58 66/108/58 56/102/58 -f 60/79/49 58/83/49 62/80/49 -f 60/79/49 63/85/49 59/82/49 -f 66/84/49 59/82/49 63/85/49 -f 54/88/50 64/98/50 63/89/50 -f 52/91/51 60/105/51 61/92/51 -f 57/94/52 61/109/52 62/95/52 -f 55/97/53 65/110/53 64/98/53 -f 51/99/54 62/111/54 58/100/54 -f 56/102/55 66/108/55 65/103/55 -f 53/90/56 63/89/56 60/105/56 -f 50/101/57 58/100/57 59/106/57 -f 49/107/58 59/106/58 66/108/58 +f 1434/1453/928 1436/1454/928 1435/1455/928 +f 1434/1453/928 1433/1456/928 1432/1457/928 +f 1440/1458/928 1437/1459/928 1438/1460/928 +f 1439/1461/928 1440/1458/928 1438/1460/928 +f 1428/1462/929 1437/1463/929 1427/1464/929 +f 1426/1465/930 1435/1466/930 1431/1467/930 +f 1431/1468/931 1436/1469/931 1425/1470/931 +f 1429/1471/932 1438/1472/932 1428/1462/932 +f 1425/1473/933 1432/1474/933 1424/1475/933 +f 1430/1476/934 1439/1477/934 1429/1478/934 +f 1427/1464/935 1434/1479/935 1426/1465/935 +f 1424/1475/936 1433/1480/936 1423/1481/936 +f 1423/1481/937 1440/1482/937 1430/1476/937 +f 1434/1453/928 1432/1457/928 1436/1454/928 +f 1434/1453/928 1437/1459/928 1433/1456/928 +f 1440/1458/928 1433/1456/928 1437/1459/928 +f 1428/1462/929 1438/1472/929 1437/1463/929 +f 1426/1465/930 1434/1479/930 1435/1466/930 +f 1431/1468/931 1435/1483/931 1436/1469/931 +f 1429/1471/932 1439/1484/932 1438/1472/932 +f 1425/1473/933 1436/1485/933 1432/1474/933 +f 1430/1476/934 1440/1482/934 1439/1477/934 +f 1427/1464/935 1437/1463/935 1434/1479/935 +f 1424/1475/936 1432/1474/936 1433/1480/936 +f 1423/1481/937 1433/1480/937 1440/1482/937 o Joystick v 0.750000 1.042097 -0.022096 v 0.750000 1.020000 -0.031249 @@ -567,115 +6854,115 @@ vn 0.0000 -0.6302 0.7764 vn -0.5532 0.8330 0.0000 vn 0.0000 0.8330 0.5532 s 1 -f 68/112/59 72/113/60 69/114/61 -f 67/115/62 83/116/63 70/117/64 -f 79/118/65 69/114/61 72/113/60 -f 67/115/62 71/119/66 68/112/59 -f 72/113/60 74/120/67 75/121/68 -f 70/117/64 83/122/63 73/123/69 -f 79/124/65 72/113/60 75/121/68 -f 71/119/66 73/123/69 74/120/67 -f 75/121/68 77/125/70 78/126/71 -f 73/123/69 83/127/63 76/128/72 -f 79/129/65 75/121/68 78/126/71 -f 73/123/69 77/125/70 74/120/67 -f 77/125/70 82/130/73 78/126/71 -f 76/128/72 83/131/63 80/132/74 -f 79/133/65 78/126/71 82/130/73 -f 77/125/70 80/132/74 81/134/75 -f 81/134/75 86/135/76 82/130/73 -f 80/132/74 83/136/63 84/137/77 -f 79/138/65 82/130/73 86/135/76 -f 81/134/75 84/137/77 85/139/78 -f 86/135/76 88/140/79 89/141/80 -f 84/137/77 83/142/63 87/143/81 -f 79/144/65 86/135/76 89/141/80 -f 84/137/77 88/140/79 85/139/78 -f 87/145/81 91/146/82 88/147/79 -f 89/148/80 91/146/82 92/149/83 -f 87/145/81 83/150/63 90/151/84 -f 79/152/65 89/148/80 92/149/83 -f 79/153/65 92/149/83 69/114/61 -f 90/151/84 68/112/59 91/146/82 -f 91/146/82 69/114/61 92/149/83 -f 90/151/84 83/154/63 67/115/62 -f 123/155/85 125/156/86 127/157/87 -f 119/158/88 116/159/89 115/160/90 -f 96/161/59 97/162/66 95/163/59 -f 122/164/91 127/165/87 128/166/92 -f 124/167/93 111/168/94 93/169/95 -f 98/170/66 99/171/67 97/162/66 -f 121/172/96 130/173/97 120/174/98 -f 120/174/98 115/175/90 114/176/99 -f 100/177/67 101/178/70 99/171/67 -f 117/179/100 125/180/86 124/167/93 -f 118/181/101 94/182/102 116/159/89 -f 102/183/70 103/184/75 101/178/70 -f 117/179/100 132/185/103 126/186/104 -f 123/155/85 112/187/105 111/168/94 -f 104/188/75 105/189/78 103/184/75 -f 127/190/87 125/191/86 130/192/97 -f 122/164/91 113/193/106 112/187/105 -f 106/194/78 107/195/79 105/189/78 -f 112/196/105 114/197/99 116/159/89 -f 117/179/100 93/169/95 94/182/102 -f 108/198/79 109/199/82 107/200/79 -f 120/174/98 131/201/107 119/202/88 -f 121/172/96 114/176/99 113/193/106 -f 110/203/82 95/163/59 109/199/82 -f 121/172/96 128/204/92 129/205/108 -f 119/158/88 132/206/103 118/181/101 -f 68/112/59 71/119/66 72/113/60 -f 67/115/62 70/117/64 71/119/66 -f 72/113/60 71/119/66 74/120/67 -f 71/119/66 70/117/64 73/123/69 -f 75/121/68 74/120/67 77/125/70 -f 73/123/69 76/128/72 77/125/70 -f 77/125/70 81/134/75 82/130/73 -f 77/125/70 76/128/72 80/132/74 -f 81/134/75 85/139/78 86/135/76 -f 81/134/75 80/132/74 84/137/77 -f 86/135/76 85/139/78 88/140/79 -f 84/137/77 87/143/81 88/140/79 -f 87/145/81 90/151/84 91/146/82 -f 89/148/80 88/147/79 91/146/82 -f 90/151/84 67/115/62 68/112/59 -f 91/146/82 68/112/59 69/114/61 -f 123/155/85 124/167/93 125/156/86 -f 119/158/88 118/181/101 116/159/89 -f 96/161/59 98/170/66 97/162/66 -f 122/164/91 123/155/85 127/165/87 -f 124/167/93 123/155/85 111/168/94 -f 98/170/66 100/177/67 99/171/67 -f 121/172/96 129/207/108 130/173/97 -f 120/174/98 119/202/88 115/175/90 -f 100/177/67 102/183/70 101/178/70 -f 117/179/100 126/208/104 125/180/86 -f 118/181/101 117/179/100 94/182/102 -f 102/183/70 104/188/75 103/184/75 -f 117/179/100 118/181/101 132/185/103 -f 123/155/85 122/164/91 112/187/105 -f 104/188/75 106/194/78 105/189/78 -f 125/191/86 126/209/104 130/192/97 -f 126/209/104 132/210/103 130/192/97 -f 132/210/103 131/201/107 130/192/97 -f 130/192/97 129/211/108 128/212/92 -f 128/212/92 127/190/87 130/192/97 -f 122/164/91 121/172/96 113/193/106 -f 106/194/78 108/213/79 107/195/79 -f 116/159/89 94/214/102 93/215/95 -f 93/215/95 111/216/94 116/159/89 -f 111/216/94 112/196/105 116/159/89 -f 112/196/105 113/217/106 114/197/99 -f 114/197/99 115/160/90 116/159/89 -f 117/179/100 124/167/93 93/169/95 -f 108/198/79 110/203/82 109/199/82 -f 120/174/98 130/192/97 131/201/107 -f 121/172/96 120/174/98 114/176/99 -f 110/203/82 96/161/59 95/163/59 -f 121/172/96 122/164/91 128/204/92 -f 119/158/88 131/218/107 132/206/103 -o Shotgun +f 1442/1486/938 1446/1487/939 1443/1488/940 +f 1441/1489/941 1457/1490/942 1444/1491/943 +f 1453/1492/944 1443/1488/940 1446/1487/939 +f 1441/1489/941 1445/1493/945 1442/1486/938 +f 1446/1487/939 1448/1494/946 1449/1495/947 +f 1444/1491/943 1457/1496/942 1447/1497/948 +f 1453/1498/944 1446/1487/939 1449/1495/947 +f 1445/1493/945 1447/1497/948 1448/1494/946 +f 1449/1495/947 1451/1499/949 1452/1500/950 +f 1447/1497/948 1457/1501/942 1450/1502/951 +f 1453/1503/944 1449/1495/947 1452/1500/950 +f 1447/1497/948 1451/1499/949 1448/1494/946 +f 1451/1499/949 1456/1504/952 1452/1500/950 +f 1450/1502/951 1457/1505/942 1454/1506/953 +f 1453/1507/944 1452/1500/950 1456/1504/952 +f 1451/1499/949 1454/1506/953 1455/1508/954 +f 1455/1508/954 1460/1509/955 1456/1504/952 +f 1454/1506/953 1457/1510/942 1458/1511/956 +f 1453/1512/944 1456/1504/952 1460/1509/955 +f 1455/1508/954 1458/1511/956 1459/1513/957 +f 1460/1509/955 1462/1514/958 1463/1515/959 +f 1458/1511/956 1457/1516/942 1461/1517/960 +f 1453/1518/944 1460/1509/955 1463/1515/959 +f 1458/1511/956 1462/1514/958 1459/1513/957 +f 1461/1519/960 1465/1520/961 1462/1521/958 +f 1463/1522/959 1465/1520/961 1466/1523/962 +f 1461/1519/960 1457/1524/942 1464/1525/963 +f 1453/1526/944 1463/1522/959 1466/1523/962 +f 1453/1527/944 1466/1523/962 1443/1488/940 +f 1464/1525/963 1442/1486/938 1465/1520/961 +f 1465/1520/961 1443/1488/940 1466/1523/962 +f 1464/1525/963 1457/1528/942 1441/1489/941 +f 1497/1529/964 1499/1530/965 1501/1531/966 +f 1493/1532/967 1490/1533/968 1489/1534/969 +f 1470/1535/938 1471/1536/945 1469/1537/938 +f 1496/1538/970 1501/1539/966 1502/1540/971 +f 1498/1541/972 1485/1542/973 1467/1543/974 +f 1472/1544/945 1473/1545/946 1471/1536/945 +f 1495/1546/975 1504/1547/976 1494/1548/977 +f 1494/1548/977 1489/1549/969 1488/1550/978 +f 1474/1551/946 1475/1552/949 1473/1545/946 +f 1491/1553/979 1499/1554/965 1498/1541/972 +f 1492/1555/980 1468/1556/981 1490/1533/968 +f 1476/1557/949 1477/1558/954 1475/1552/949 +f 1491/1553/979 1506/1559/982 1500/1560/983 +f 1497/1529/964 1486/1561/984 1485/1542/973 +f 1478/1562/954 1479/1563/957 1477/1558/954 +f 1501/1564/966 1499/1565/965 1504/1566/976 +f 1496/1538/970 1487/1567/985 1486/1561/984 +f 1480/1568/957 1481/1569/958 1479/1563/957 +f 1486/1570/984 1488/1571/978 1490/1533/968 +f 1491/1553/979 1467/1543/974 1468/1556/981 +f 1482/1572/958 1483/1573/961 1481/1574/958 +f 1494/1548/977 1505/1575/986 1493/1576/967 +f 1495/1546/975 1488/1550/978 1487/1567/985 +f 1484/1577/961 1469/1537/938 1483/1573/961 +f 1495/1546/975 1502/1578/971 1503/1579/987 +f 1493/1532/967 1506/1580/982 1492/1555/980 +f 1442/1486/938 1445/1493/945 1446/1487/939 +f 1441/1489/941 1444/1491/943 1445/1493/945 +f 1446/1487/939 1445/1493/945 1448/1494/946 +f 1445/1493/945 1444/1491/943 1447/1497/948 +f 1449/1495/947 1448/1494/946 1451/1499/949 +f 1447/1497/948 1450/1502/951 1451/1499/949 +f 1451/1499/949 1455/1508/954 1456/1504/952 +f 1451/1499/949 1450/1502/951 1454/1506/953 +f 1455/1508/954 1459/1513/957 1460/1509/955 +f 1455/1508/954 1454/1506/953 1458/1511/956 +f 1460/1509/955 1459/1513/957 1462/1514/958 +f 1458/1511/956 1461/1517/960 1462/1514/958 +f 1461/1519/960 1464/1525/963 1465/1520/961 +f 1463/1522/959 1462/1521/958 1465/1520/961 +f 1464/1525/963 1441/1489/941 1442/1486/938 +f 1465/1520/961 1442/1486/938 1443/1488/940 +f 1497/1529/964 1498/1541/972 1499/1530/965 +f 1493/1532/967 1492/1555/980 1490/1533/968 +f 1470/1535/938 1472/1544/945 1471/1536/945 +f 1496/1538/970 1497/1529/964 1501/1539/966 +f 1498/1541/972 1497/1529/964 1485/1542/973 +f 1472/1544/945 1474/1551/946 1473/1545/946 +f 1495/1546/975 1503/1581/987 1504/1547/976 +f 1494/1548/977 1493/1576/967 1489/1549/969 +f 1474/1551/946 1476/1557/949 1475/1552/949 +f 1491/1553/979 1500/1582/983 1499/1554/965 +f 1492/1555/980 1491/1553/979 1468/1556/981 +f 1476/1557/949 1478/1562/954 1477/1558/954 +f 1491/1553/979 1492/1555/980 1506/1559/982 +f 1497/1529/964 1496/1538/970 1486/1561/984 +f 1478/1562/954 1480/1568/957 1479/1563/957 +f 1499/1565/965 1500/1583/983 1504/1566/976 +f 1500/1583/983 1506/1584/982 1504/1566/976 +f 1506/1584/982 1505/1575/986 1504/1566/976 +f 1504/1566/976 1503/1585/987 1502/1586/971 +f 1502/1586/971 1501/1564/966 1504/1566/976 +f 1496/1538/970 1495/1546/975 1487/1567/985 +f 1480/1568/957 1482/1587/958 1481/1569/958 +f 1490/1533/968 1468/1588/981 1467/1589/974 +f 1467/1589/974 1485/1590/973 1490/1533/968 +f 1485/1590/973 1486/1570/984 1490/1533/968 +f 1486/1570/984 1487/1591/985 1488/1571/978 +f 1488/1571/978 1489/1534/969 1490/1533/968 +f 1491/1553/979 1498/1541/972 1467/1543/974 +f 1482/1572/958 1484/1577/961 1483/1573/961 +f 1494/1548/977 1504/1566/976 1505/1575/986 +f 1495/1546/975 1494/1548/977 1488/1550/978 +f 1484/1577/961 1470/1535/938 1469/1537/938 +f 1495/1546/975 1496/1538/970 1502/1578/971 +f 1493/1532/967 1505/1592/986 1506/1580/982 +o Shotgun1 v 0.583272 1.027674 -1.302697 v 0.578802 1.019935 -1.299444 v 0.583413 1.018165 -1.302630 @@ -1261,279 +7548,279 @@ vn -0.7199 -0.6428 0.2620 vn 0.3127 0.9430 -0.1138 vn 0.4257 0.0000 0.9049 s off -f 133/219/109 134/220/109 135/221/109 -f 135/221/109 136/222/109 133/219/109 -f 133/219/110 137/223/110 134/220/110 -f 193/224/111 194/225/111 195/226/111 -f 196/227/112 197/228/112 198/229/112 -f 199/230/111 200/231/111 201/232/111 -f 202/233/112 203/234/112 204/235/112 -f 205/236/113 206/237/113 204/238/113 -f 207/239/111 208/240/111 209/241/111 -f 210/242/111 211/243/111 212/244/111 -f 213/245/111 214/246/111 215/247/111 -f 216/248/112 217/249/112 218/250/112 -f 219/251/111 220/252/111 221/253/111 -f 222/254/111 223/255/111 220/252/111 -f 221/253/111 193/224/111 195/226/111 -f 194/225/111 224/256/111 195/226/111 -f 195/226/111 219/251/111 221/253/111 -f 223/255/111 221/253/111 220/252/111 -f 225/257/112 226/258/112 227/259/112 -f 227/259/112 228/260/112 198/229/112 -f 196/227/112 229/261/112 230/262/112 -f 230/262/112 197/228/112 196/227/112 -f 198/229/112 225/257/112 227/259/112 -f 228/260/112 196/227/112 198/229/112 -f 231/263/111 206/264/111 201/232/111 -f 205/265/111 232/266/111 199/230/111 -f 233/267/111 199/230/111 232/266/111 -f 200/231/111 234/268/111 201/232/111 -f 201/232/111 206/264/111 205/265/111 -f 205/265/111 199/230/111 201/232/111 -f 235/269/112 204/235/112 203/234/112 -f 236/270/112 237/271/112 202/233/112 -f 202/233/112 238/272/112 239/273/112 -f 239/273/112 203/234/112 202/233/112 -f 240/274/112 235/269/112 203/234/112 -f 236/270/112 202/233/112 204/235/112 -f 240/275/114 233/276/114 235/277/114 -f 232/278/115 205/236/115 204/238/115 -f 206/237/116 231/279/116 237/280/116 -f 237/280/117 236/281/117 206/237/117 -f 235/277/118 233/276/118 232/278/118 -f 206/237/119 236/281/119 204/238/119 -f 204/238/120 235/277/120 232/278/120 -f 241/282/111 242/283/111 209/241/111 -f 243/284/111 244/285/111 242/283/111 -f 245/286/111 207/239/111 244/285/111 -f 208/240/111 246/287/111 209/241/111 -f 209/241/111 242/283/111 244/285/111 -f 244/285/111 207/239/111 209/241/111 -f 247/288/111 248/289/111 212/244/111 -f 210/242/111 249/290/111 250/291/111 -f 250/291/111 251/292/111 210/242/111 -f 252/293/111 211/243/111 210/242/111 -f 212/244/111 248/289/111 210/242/111 -f 210/242/111 251/292/111 252/293/111 -f 253/294/111 254/295/111 255/296/111 -f 256/297/111 257/298/111 254/295/111 -f 255/296/111 213/245/111 215/247/111 -f 214/246/111 258/299/111 215/247/111 -f 215/247/111 253/294/111 255/296/111 -f 257/298/111 255/296/111 254/295/111 -f 259/300/112 260/301/112 261/302/112 -f 261/302/112 262/303/112 218/250/112 -f 216/248/112 263/304/112 264/305/112 -f 264/305/112 217/249/112 216/248/112 -f 218/250/112 259/300/112 261/302/112 -f 262/303/112 216/248/112 218/250/112 +f 1507/1593/988 1508/1594/988 1509/1595/988 +f 1509/1595/988 1510/1596/988 1507/1593/988 +f 1507/1593/989 1511/1597/989 1508/1594/989 +f 1567/1598/990 1568/1599/990 1569/1600/990 +f 1570/1601/991 1571/1602/991 1572/1603/991 +f 1573/1604/990 1574/1605/990 1575/1606/990 +f 1576/1607/991 1577/1608/991 1578/1609/991 +f 1579/1610/992 1580/1611/992 1578/1612/992 +f 1581/1613/990 1582/1614/990 1583/1615/990 +f 1584/1616/990 1585/1617/990 1586/1618/990 +f 1587/1619/990 1588/1620/990 1589/1621/990 +f 1590/1622/991 1591/1623/991 1592/1624/991 +f 1593/1625/990 1594/1626/990 1595/1627/990 +f 1596/1628/990 1597/1629/990 1594/1626/990 +f 1595/1627/990 1567/1598/990 1569/1600/990 +f 1568/1599/990 1598/1630/990 1569/1600/990 +f 1569/1600/990 1593/1625/990 1595/1627/990 +f 1597/1629/990 1595/1627/990 1594/1626/990 +f 1599/1631/991 1600/1632/991 1601/1633/991 +f 1601/1633/991 1602/1634/991 1572/1603/991 +f 1570/1601/991 1603/1635/991 1604/1636/991 +f 1604/1636/991 1571/1602/991 1570/1601/991 +f 1572/1603/991 1599/1631/991 1601/1633/991 +f 1602/1634/991 1570/1601/991 1572/1603/991 +f 1605/1637/990 1580/1638/990 1575/1606/990 +f 1579/1639/990 1606/1640/990 1573/1604/990 +f 1607/1641/990 1573/1604/990 1606/1640/990 +f 1574/1605/990 1608/1642/990 1575/1606/990 +f 1575/1606/990 1580/1638/990 1579/1639/990 +f 1579/1639/990 1573/1604/990 1575/1606/990 +f 1609/1643/991 1578/1609/991 1577/1608/991 +f 1610/1644/991 1611/1645/991 1576/1607/991 +f 1576/1607/991 1612/1646/991 1613/1647/991 +f 1613/1647/991 1577/1608/991 1576/1607/991 +f 1614/1648/991 1609/1643/991 1577/1608/991 +f 1610/1644/991 1576/1607/991 1578/1609/991 +f 1614/1649/993 1607/1650/993 1609/1651/993 +f 1606/1652/994 1579/1610/994 1578/1612/994 +f 1580/1611/995 1605/1653/995 1611/1654/995 +f 1611/1654/996 1610/1655/996 1580/1611/996 +f 1609/1651/997 1607/1650/997 1606/1652/997 +f 1580/1611/998 1610/1655/998 1578/1612/998 +f 1578/1612/999 1609/1651/999 1606/1652/999 +f 1615/1656/990 1616/1657/990 1583/1615/990 +f 1617/1658/990 1618/1659/990 1616/1657/990 +f 1619/1660/990 1581/1613/990 1618/1659/990 +f 1582/1614/990 1620/1661/990 1583/1615/990 +f 1583/1615/990 1616/1657/990 1618/1659/990 +f 1618/1659/990 1581/1613/990 1583/1615/990 +f 1621/1662/990 1622/1663/990 1586/1618/990 +f 1584/1616/990 1623/1664/990 1624/1665/990 +f 1624/1665/990 1625/1666/990 1584/1616/990 +f 1626/1667/990 1585/1617/990 1584/1616/990 +f 1586/1618/990 1622/1663/990 1584/1616/990 +f 1584/1616/990 1625/1666/990 1626/1667/990 +f 1627/1668/990 1628/1669/990 1629/1670/990 +f 1630/1671/990 1631/1672/990 1628/1669/990 +f 1629/1670/990 1587/1619/990 1589/1621/990 +f 1588/1620/990 1632/1673/990 1589/1621/990 +f 1589/1621/990 1627/1668/990 1629/1670/990 +f 1631/1672/990 1629/1670/990 1628/1669/990 +f 1633/1674/991 1634/1675/991 1635/1676/991 +f 1635/1676/991 1636/1677/991 1592/1624/991 +f 1590/1622/991 1637/1678/991 1638/1679/991 +f 1638/1679/991 1591/1623/991 1590/1622/991 +f 1592/1624/991 1633/1674/991 1635/1676/991 +f 1636/1677/991 1590/1622/991 1592/1624/991 s 1 -f 138/306/121 139/307/122 140/308/123 -f 141/309/124 138/306/121 142/310/125 -f 143/311/126 142/310/125 144/312/127 -f 145/313/128 146/314/128 147/315/129 -f 148/316/130 149/317/131 150/318/132 -f 151/319/133 152/320/134 153/321/135 -f 154/322/136 140/308/123 139/307/122 -f 153/323/135 152/324/134 155/325/137 -f 149/317/131 148/316/130 156/326/138 -f 157/327/139 155/328/137 158/329/140 -f 159/330/141 160/331/142 133/332/142 -f 133/332/142 160/331/142 161/333/143 -f 137/334/144 161/333/143 162/335/145 -f 162/335/145 163/336/146 135/337/146 -f 135/337/146 163/336/146 159/338/141 -f 164/339/147 165/340/148 166/341/149 -f 165/340/148 167/342/150 168/343/151 -f 167/342/150 169/344/152 170/345/153 -f 170/345/153 169/344/152 171/346/154 -f 172/347/155 171/346/154 164/348/147 -f 173/349/156 174/350/157 165/351/148 -f 174/350/157 175/352/158 167/342/150 -f 175/352/158 176/353/159 169/344/152 -f 169/344/152 176/353/159 177/354/160 -f 171/355/154 177/354/160 173/356/156 -f 178/357/161 179/358/162 180/359/163 -f 181/360/164 180/359/163 182/361/165 -f 182/361/165 183/362/166 184/363/167 -f 183/362/166 185/364/168 186/365/169 -f 185/364/168 179/366/162 178/367/161 -f 179/368/162 187/369/170 166/370/149 -f 180/371/163 166/370/149 168/343/151 -f 168/343/151 170/345/153 183/362/166 -f 170/345/153 172/372/155 185/373/168 -f 172/372/155 187/374/170 179/375/162 -f 140/308/123 154/322/136 188/376/171 -f 138/306/121 140/308/123 142/310/125 -f 189/377/172 142/378/173 140/379/173 -f 188/380/173 151/319/133 140/379/173 -f 151/319/133 189/377/172 140/379/173 -f 150/318/132 146/314/128 145/313/128 -f 189/381/174 153/382/175 148/383/176 -f 190/384/177 191/385/178 188/376/171 -f 150/386/179 188/376/171 191/385/178 -f 150/386/179 149/387/180 151/388/181 -f 143/311/126 141/309/124 142/310/125 -f 145/389/182 143/311/126 144/312/127 -f 144/390/183 148/316/130 150/318/132 -f 189/377/172 151/319/133 153/321/135 -f 157/391/139 153/323/135 155/325/137 -f 158/329/140 149/317/131 156/326/138 -f 156/326/138 157/327/139 158/329/140 -f 136/392/184 159/330/141 133/332/142 -f 137/334/144 133/332/142 161/333/143 -f 134/393/145 137/334/144 162/335/145 -f 134/393/145 162/335/145 135/337/146 -f 136/394/184 135/337/146 159/338/141 -f 187/395/170 164/339/147 166/341/149 -f 166/341/149 165/340/148 168/343/151 -f 168/343/151 167/342/150 170/345/153 -f 172/347/155 170/345/153 171/346/154 -f 187/396/170 172/347/155 164/348/147 -f 164/397/147 173/349/156 165/351/148 -f 165/351/148 174/350/157 167/342/150 -f 167/342/150 175/352/158 169/344/152 -f 171/355/154 169/344/152 177/354/160 -f 164/398/147 171/355/154 173/356/156 -f 181/360/164 178/357/161 180/359/163 -f 192/399/185 181/360/164 182/361/165 -f 192/399/185 182/361/165 184/363/167 -f 184/363/167 183/362/166 186/365/169 -f 186/365/169 185/364/168 178/367/161 -f 180/371/163 179/368/162 166/370/149 -f 182/361/165 180/371/163 168/343/151 -f 182/361/165 168/343/151 183/362/166 -f 183/362/166 170/345/153 185/373/168 -f 185/373/168 172/372/155 179/375/162 -f 144/390/183 150/318/132 145/313/128 -f 148/383/176 144/312/127 189/381/174 -f 142/310/125 189/381/174 144/312/127 -f 153/382/175 157/400/186 148/383/176 -f 156/401/186 148/383/176 157/400/186 -f 154/322/136 190/384/177 188/376/171 -f 146/402/187 150/386/179 191/385/178 -f 152/403/188 151/388/181 149/387/180 -f 188/376/171 150/386/179 151/388/181 -f 149/387/180 158/404/189 155/405/189 -f 155/405/189 152/403/188 149/387/180 -f 222/406/173 220/407/190 227/408/190 -f 220/407/190 219/409/191 228/410/191 -f 219/409/191 195/411/192 196/412/192 -f 195/411/192 224/413/193 229/414/193 -f 224/413/193 194/415/194 230/416/194 -f 194/415/194 193/417/195 197/418/195 -f 193/417/195 221/419/196 198/420/196 -f 221/419/196 223/421/197 225/422/197 -f 223/421/197 222/423/173 226/424/173 -f 231/425/198 201/426/199 202/427/199 -f 201/426/199 234/428/200 238/429/200 -f 234/428/200 200/430/201 239/431/201 -f 200/430/201 199/432/202 203/433/202 -f 199/432/202 233/434/203 240/435/203 -f 265/436/173 243/437/173 242/438/204 -f 242/438/204 241/439/205 266/440/205 -f 241/439/205 209/441/206 267/442/206 -f 209/441/206 246/443/207 268/444/207 -f 246/443/207 208/445/208 269/446/208 -f 269/446/208 208/445/208 207/447/209 -f 270/448/209 207/447/209 245/449/210 -f 271/450/210 245/449/210 244/451/211 -f 244/451/211 243/452/173 265/453/173 -f 146/402/187 191/385/178 272/454/212 -f 272/454/212 143/311/126 145/389/182 -f 190/384/177 273/455/213 272/454/212 -f 272/454/212 273/455/213 141/309/124 -f 274/456/214 275/457/215 154/322/136 -f 275/457/215 276/458/216 190/384/177 -f 276/458/216 277/459/217 273/455/213 -f 273/455/213 277/459/217 278/460/218 -f 141/309/124 278/460/218 279/461/219 -f 138/306/121 279/461/219 274/456/214 -f 280/462/173 281/463/220 275/457/215 -f 281/463/220 282/464/221 276/458/216 -f 282/464/221 283/465/170 277/459/217 -f 277/459/217 283/465/170 284/466/222 -f 278/460/218 284/466/222 285/467/223 -f 279/461/219 285/467/223 280/462/173 -f 210/468/173 248/469/204 286/470/224 -f 248/469/204 247/471/205 287/472/205 -f 247/471/205 212/473/225 288/474/225 -f 212/473/225 211/475/207 289/476/207 -f 211/475/207 252/477/208 290/478/208 -f 252/477/208 251/479/226 291/480/226 -f 251/479/226 250/481/210 292/482/210 -f 250/481/210 249/483/227 293/484/211 -f 249/483/227 210/485/173 294/486/173 -f 256/487/173 254/488/190 261/489/190 -f 254/488/190 253/490/191 262/491/191 -f 253/490/191 215/492/228 216/493/228 -f 215/492/228 258/494/193 263/495/193 -f 258/494/193 214/496/194 264/497/194 -f 214/496/194 213/498/195 217/499/195 -f 213/498/195 255/500/196 218/501/196 -f 218/501/196 255/500/196 257/502/197 -f 259/503/197 257/502/197 256/504/173 -f 226/505/173 222/406/173 227/408/190 -f 227/408/190 220/407/190 228/410/191 -f 228/410/191 219/409/191 196/412/192 -f 196/412/192 195/411/192 229/414/193 -f 229/414/193 224/413/193 230/416/194 -f 230/416/194 194/415/194 197/418/195 -f 197/418/195 193/417/195 198/420/196 -f 198/420/196 221/419/196 225/422/197 -f 225/422/197 223/421/197 226/424/173 -f 237/506/198 231/425/198 202/427/199 -f 202/427/199 201/426/199 238/429/200 -f 238/429/200 234/428/200 239/431/201 -f 239/431/201 200/430/201 203/433/202 -f 203/433/202 199/432/202 240/435/203 -f 295/507/204 265/436/173 242/438/204 -f 295/507/204 242/438/204 266/440/205 -f 266/440/205 241/439/205 267/442/206 -f 267/442/206 209/441/206 268/444/207 -f 268/444/207 246/443/207 269/446/208 -f 270/448/209 269/446/208 207/447/209 -f 271/450/210 270/448/209 245/449/210 -f 296/508/211 271/450/210 244/451/211 -f 296/508/211 244/451/211 265/453/173 -f 147/509/229 146/402/187 272/454/212 -f 147/509/229 272/454/212 145/389/182 -f 191/385/178 190/384/177 272/454/212 -f 143/311/126 272/454/212 141/309/124 -f 139/307/122 274/456/214 154/322/136 -f 154/322/136 275/457/215 190/384/177 -f 190/384/177 276/458/216 273/455/213 -f 141/309/124 273/455/213 278/460/218 -f 138/306/121 141/309/124 279/461/219 -f 139/307/122 138/306/121 274/456/214 -f 274/456/214 280/462/173 275/457/215 -f 275/457/215 281/463/220 276/458/216 -f 276/458/216 282/464/221 277/459/217 -f 278/460/218 277/459/217 284/466/222 -f 279/461/219 278/460/218 285/467/223 -f 274/456/214 279/461/219 280/462/173 -f 294/510/173 210/468/173 286/470/224 -f 286/470/224 248/469/204 287/472/205 -f 287/472/205 247/471/205 288/474/225 -f 288/474/225 212/473/225 289/476/207 -f 289/476/207 211/475/207 290/478/208 -f 290/478/208 252/477/208 291/480/226 -f 291/480/226 251/479/226 292/482/210 -f 292/482/210 250/481/210 293/484/211 -f 293/484/211 249/483/227 294/486/173 -f 260/511/173 256/487/173 261/489/190 -f 261/489/190 254/488/190 262/491/191 -f 262/491/191 253/490/191 216/493/228 -f 216/493/228 215/492/228 263/495/193 -f 263/495/193 258/494/193 264/497/194 -f 264/497/194 214/496/194 217/499/195 -f 217/499/195 213/498/195 218/501/196 -f 259/503/197 218/501/196 257/502/197 -f 260/512/173 259/503/197 256/504/173 -l 300 301 -l 297 298 -l 297 299 +f 1512/1680/1000 1513/1681/1001 1514/1682/1002 +f 1515/1683/1003 1512/1680/1000 1516/1684/1004 +f 1517/1685/1005 1516/1684/1004 1518/1686/1006 +f 1519/1687/1007 1520/1688/1007 1521/1689/1008 +f 1522/1690/1009 1523/1691/1010 1524/1692/1011 +f 1525/1693/1012 1526/1694/1013 1527/1695/1014 +f 1528/1696/1015 1514/1682/1002 1513/1681/1001 +f 1527/1697/1014 1526/1698/1013 1529/1699/1016 +f 1523/1691/1010 1522/1690/1009 1530/1700/1017 +f 1531/1701/1018 1529/1702/1016 1532/1703/1019 +f 1533/1704/1020 1534/1705/1021 1507/1706/1021 +f 1507/1706/1021 1534/1705/1021 1535/1707/1022 +f 1511/1708/1023 1535/1707/1022 1536/1709/1024 +f 1536/1709/1024 1537/1710/1025 1509/1711/1025 +f 1509/1711/1025 1537/1710/1025 1533/1712/1020 +f 1538/1713/1026 1539/1714/1027 1540/1715/1028 +f 1539/1714/1027 1541/1716/1029 1542/1717/1030 +f 1541/1716/1029 1543/1718/1031 1544/1719/1032 +f 1544/1719/1032 1543/1718/1031 1545/1720/1033 +f 1546/1721/1034 1545/1720/1033 1538/1722/1026 +f 1547/1723/1035 1548/1724/1036 1539/1725/1027 +f 1548/1724/1036 1549/1726/1037 1541/1716/1029 +f 1549/1726/1037 1550/1727/1038 1543/1718/1031 +f 1543/1718/1031 1550/1727/1038 1551/1728/1039 +f 1545/1729/1033 1551/1728/1039 1547/1730/1035 +f 1552/1731/1040 1553/1732/1041 1554/1733/1042 +f 1555/1734/1043 1554/1733/1042 1556/1735/1044 +f 1556/1735/1044 1557/1736/1045 1558/1737/1046 +f 1557/1736/1045 1559/1738/1047 1560/1739/1048 +f 1559/1738/1047 1553/1740/1041 1552/1741/1040 +f 1553/1742/1041 1561/1743/1049 1540/1744/1028 +f 1554/1745/1042 1540/1744/1028 1542/1717/1030 +f 1542/1717/1030 1544/1719/1032 1557/1736/1045 +f 1544/1719/1032 1546/1746/1034 1559/1747/1047 +f 1546/1746/1034 1561/1748/1049 1553/1749/1041 +f 1514/1682/1002 1528/1696/1015 1562/1750/1050 +f 1512/1680/1000 1514/1682/1002 1516/1684/1004 +f 1563/1751/1051 1516/1752/1052 1514/1753/1052 +f 1562/1754/1052 1525/1693/1012 1514/1753/1052 +f 1525/1693/1012 1563/1751/1051 1514/1753/1052 +f 1524/1692/1011 1520/1688/1007 1519/1687/1007 +f 1563/1755/1053 1527/1756/1054 1522/1757/1055 +f 1564/1758/1056 1565/1759/1057 1562/1750/1050 +f 1524/1760/1058 1562/1750/1050 1565/1759/1057 +f 1524/1760/1058 1523/1761/1059 1525/1762/1060 +f 1517/1685/1005 1515/1683/1003 1516/1684/1004 +f 1519/1763/1061 1517/1685/1005 1518/1686/1006 +f 1518/1764/1062 1522/1690/1009 1524/1692/1011 +f 1563/1751/1051 1525/1693/1012 1527/1695/1014 +f 1531/1765/1018 1527/1697/1014 1529/1699/1016 +f 1532/1703/1019 1523/1691/1010 1530/1700/1017 +f 1530/1700/1017 1531/1701/1018 1532/1703/1019 +f 1510/1766/1063 1533/1704/1020 1507/1706/1021 +f 1511/1708/1023 1507/1706/1021 1535/1707/1022 +f 1508/1767/1024 1511/1708/1023 1536/1709/1024 +f 1508/1767/1024 1536/1709/1024 1509/1711/1025 +f 1510/1768/1063 1509/1711/1025 1533/1712/1020 +f 1561/1769/1049 1538/1713/1026 1540/1715/1028 +f 1540/1715/1028 1539/1714/1027 1542/1717/1030 +f 1542/1717/1030 1541/1716/1029 1544/1719/1032 +f 1546/1721/1034 1544/1719/1032 1545/1720/1033 +f 1561/1770/1049 1546/1721/1034 1538/1722/1026 +f 1538/1771/1026 1547/1723/1035 1539/1725/1027 +f 1539/1725/1027 1548/1724/1036 1541/1716/1029 +f 1541/1716/1029 1549/1726/1037 1543/1718/1031 +f 1545/1729/1033 1543/1718/1031 1551/1728/1039 +f 1538/1772/1026 1545/1729/1033 1547/1730/1035 +f 1555/1734/1043 1552/1731/1040 1554/1733/1042 +f 1566/1773/1064 1555/1734/1043 1556/1735/1044 +f 1566/1773/1064 1556/1735/1044 1558/1737/1046 +f 1558/1737/1046 1557/1736/1045 1560/1739/1048 +f 1560/1739/1048 1559/1738/1047 1552/1741/1040 +f 1554/1745/1042 1553/1742/1041 1540/1744/1028 +f 1556/1735/1044 1554/1745/1042 1542/1717/1030 +f 1556/1735/1044 1542/1717/1030 1557/1736/1045 +f 1557/1736/1045 1544/1719/1032 1559/1747/1047 +f 1559/1747/1047 1546/1746/1034 1553/1749/1041 +f 1518/1764/1062 1524/1692/1011 1519/1687/1007 +f 1522/1757/1055 1518/1686/1006 1563/1755/1053 +f 1516/1684/1004 1563/1755/1053 1518/1686/1006 +f 1527/1756/1054 1531/1774/1065 1522/1757/1055 +f 1530/1775/1065 1522/1757/1055 1531/1774/1065 +f 1528/1696/1015 1564/1758/1056 1562/1750/1050 +f 1520/1776/1066 1524/1760/1058 1565/1759/1057 +f 1526/1777/1067 1525/1762/1060 1523/1761/1059 +f 1562/1750/1050 1524/1760/1058 1525/1762/1060 +f 1523/1761/1059 1532/1778/1068 1529/1779/1068 +f 1529/1779/1068 1526/1777/1067 1523/1761/1059 +f 1596/1780/1052 1594/1781/1069 1601/1782/1069 +f 1594/1781/1069 1593/1783/1070 1602/1784/1070 +f 1593/1783/1070 1569/1785/1071 1570/1786/1071 +f 1569/1785/1071 1598/1787/1072 1603/1788/1072 +f 1598/1787/1072 1568/1789/1073 1604/1790/1073 +f 1568/1789/1073 1567/1791/1074 1571/1792/1074 +f 1567/1791/1074 1595/1793/1075 1572/1794/1075 +f 1595/1793/1075 1597/1795/1076 1599/1796/1076 +f 1597/1795/1076 1596/1797/1052 1600/1798/1052 +f 1605/1799/1077 1575/1800/1078 1576/1801/1078 +f 1575/1800/1078 1608/1802/1079 1612/1803/1079 +f 1608/1802/1079 1574/1804/1080 1613/1805/1080 +f 1574/1804/1080 1573/1806/1081 1577/1807/1081 +f 1573/1806/1081 1607/1808/1082 1614/1809/1082 +f 1639/1810/1052 1617/1811/1052 1616/1812/1083 +f 1616/1812/1083 1615/1813/1084 1640/1814/1084 +f 1615/1813/1084 1583/1815/1085 1641/1816/1085 +f 1583/1815/1085 1620/1817/1086 1642/1818/1086 +f 1620/1817/1086 1582/1819/1087 1643/1820/1087 +f 1643/1820/1087 1582/1819/1087 1581/1821/1088 +f 1644/1822/1088 1581/1821/1088 1619/1823/1089 +f 1645/1824/1089 1619/1823/1089 1618/1825/1090 +f 1618/1825/1090 1617/1826/1052 1639/1827/1052 +f 1520/1776/1066 1565/1759/1057 1646/1828/1091 +f 1646/1828/1091 1517/1685/1005 1519/1763/1061 +f 1564/1758/1056 1647/1829/1092 1646/1828/1091 +f 1646/1828/1091 1647/1829/1092 1515/1683/1003 +f 1648/1830/1093 1649/1831/1094 1528/1696/1015 +f 1649/1831/1094 1650/1832/1095 1564/1758/1056 +f 1650/1832/1095 1651/1833/1096 1647/1829/1092 +f 1647/1829/1092 1651/1833/1096 1652/1834/1097 +f 1515/1683/1003 1652/1834/1097 1653/1835/1098 +f 1512/1680/1000 1653/1835/1098 1648/1830/1093 +f 1654/1836/1052 1655/1837/1099 1649/1831/1094 +f 1655/1837/1099 1656/1838/1100 1650/1832/1095 +f 1656/1838/1100 1657/1839/1049 1651/1833/1096 +f 1651/1833/1096 1657/1839/1049 1658/1840/1101 +f 1652/1834/1097 1658/1840/1101 1659/1841/1102 +f 1653/1835/1098 1659/1841/1102 1654/1836/1052 +f 1584/1842/1052 1622/1843/1083 1660/1844/1103 +f 1622/1843/1083 1621/1845/1084 1661/1846/1084 +f 1621/1845/1084 1586/1847/1104 1662/1848/1104 +f 1586/1847/1104 1585/1849/1086 1663/1850/1086 +f 1585/1849/1086 1626/1851/1087 1664/1852/1087 +f 1626/1851/1087 1625/1853/1105 1665/1854/1105 +f 1625/1853/1105 1624/1855/1089 1666/1856/1089 +f 1624/1855/1089 1623/1857/1106 1667/1858/1090 +f 1623/1857/1106 1584/1859/1052 1668/1860/1052 +f 1630/1861/1052 1628/1862/1069 1635/1863/1069 +f 1628/1862/1069 1627/1864/1070 1636/1865/1070 +f 1627/1864/1070 1589/1866/1107 1590/1867/1107 +f 1589/1866/1107 1632/1868/1072 1637/1869/1072 +f 1632/1868/1072 1588/1870/1073 1638/1871/1073 +f 1588/1870/1073 1587/1872/1074 1591/1873/1074 +f 1587/1872/1074 1629/1874/1075 1592/1875/1075 +f 1592/1875/1075 1629/1874/1075 1631/1876/1076 +f 1633/1877/1076 1631/1876/1076 1630/1878/1052 +f 1600/1879/1052 1596/1780/1052 1601/1782/1069 +f 1601/1782/1069 1594/1781/1069 1602/1784/1070 +f 1602/1784/1070 1593/1783/1070 1570/1786/1071 +f 1570/1786/1071 1569/1785/1071 1603/1788/1072 +f 1603/1788/1072 1598/1787/1072 1604/1790/1073 +f 1604/1790/1073 1568/1789/1073 1571/1792/1074 +f 1571/1792/1074 1567/1791/1074 1572/1794/1075 +f 1572/1794/1075 1595/1793/1075 1599/1796/1076 +f 1599/1796/1076 1597/1795/1076 1600/1798/1052 +f 1611/1880/1077 1605/1799/1077 1576/1801/1078 +f 1576/1801/1078 1575/1800/1078 1612/1803/1079 +f 1612/1803/1079 1608/1802/1079 1613/1805/1080 +f 1613/1805/1080 1574/1804/1080 1577/1807/1081 +f 1577/1807/1081 1573/1806/1081 1614/1809/1082 +f 1669/1881/1083 1639/1810/1052 1616/1812/1083 +f 1669/1881/1083 1616/1812/1083 1640/1814/1084 +f 1640/1814/1084 1615/1813/1084 1641/1816/1085 +f 1641/1816/1085 1583/1815/1085 1642/1818/1086 +f 1642/1818/1086 1620/1817/1086 1643/1820/1087 +f 1644/1822/1088 1643/1820/1087 1581/1821/1088 +f 1645/1824/1089 1644/1822/1088 1619/1823/1089 +f 1670/1882/1090 1645/1824/1089 1618/1825/1090 +f 1670/1882/1090 1618/1825/1090 1639/1827/1052 +f 1521/1883/1108 1520/1776/1066 1646/1828/1091 +f 1521/1883/1108 1646/1828/1091 1519/1763/1061 +f 1565/1759/1057 1564/1758/1056 1646/1828/1091 +f 1517/1685/1005 1646/1828/1091 1515/1683/1003 +f 1513/1681/1001 1648/1830/1093 1528/1696/1015 +f 1528/1696/1015 1649/1831/1094 1564/1758/1056 +f 1564/1758/1056 1650/1832/1095 1647/1829/1092 +f 1515/1683/1003 1647/1829/1092 1652/1834/1097 +f 1512/1680/1000 1515/1683/1003 1653/1835/1098 +f 1513/1681/1001 1512/1680/1000 1648/1830/1093 +f 1648/1830/1093 1654/1836/1052 1649/1831/1094 +f 1649/1831/1094 1655/1837/1099 1650/1832/1095 +f 1650/1832/1095 1656/1838/1100 1651/1833/1096 +f 1652/1834/1097 1651/1833/1096 1658/1840/1101 +f 1653/1835/1098 1652/1834/1097 1659/1841/1102 +f 1648/1830/1093 1653/1835/1098 1654/1836/1052 +f 1668/1884/1052 1584/1842/1052 1660/1844/1103 +f 1660/1844/1103 1622/1843/1083 1661/1846/1084 +f 1661/1846/1084 1621/1845/1084 1662/1848/1104 +f 1662/1848/1104 1586/1847/1104 1663/1850/1086 +f 1663/1850/1086 1585/1849/1086 1664/1852/1087 +f 1664/1852/1087 1626/1851/1087 1665/1854/1105 +f 1665/1854/1105 1625/1853/1105 1666/1856/1089 +f 1666/1856/1089 1624/1855/1089 1667/1858/1090 +f 1667/1858/1090 1623/1857/1106 1668/1860/1052 +f 1634/1885/1052 1630/1861/1052 1635/1863/1069 +f 1635/1863/1069 1628/1862/1069 1636/1865/1070 +f 1636/1865/1070 1627/1864/1070 1590/1867/1107 +f 1590/1867/1107 1589/1866/1107 1637/1869/1072 +f 1637/1869/1072 1632/1868/1072 1638/1871/1073 +f 1638/1871/1073 1588/1870/1073 1591/1873/1074 +f 1591/1873/1074 1587/1872/1074 1592/1875/1075 +f 1633/1877/1076 1592/1875/1075 1631/1876/1076 +f 1634/1886/1052 1633/1877/1076 1630/1878/1052 +l 1674 1675 +l 1671 1672 +l 1671 1673 o MiniNuke v 0.500000 0.992052 -1.000000 v 0.425000 0.992052 -1.000000 @@ -1979,207 +8266,207 @@ vn -0.9239 -0.0000 0.3827 vn -0.9239 -0.0000 -0.3827 vn -0.3827 -0.0000 -0.9239 s off -f 302/513/230 303/514/230 304/515/230 -f 305/516/230 306/517/230 307/518/230 -f 308/519/231 309/520/231 310/521/231 -f 311/522/231 312/523/231 313/524/231 -f 314/525/232 315/526/232 316/527/232 -f 317/528/232 318/529/232 319/530/232 -f 320/531/233 321/532/233 322/533/233 -f 323/534/233 324/535/233 325/536/233 -f 326/537/230 327/538/230 304/515/230 -f 327/538/230 302/513/230 304/515/230 -f 307/518/230 328/539/230 305/516/230 -f 328/539/230 329/540/230 305/516/230 -f 310/521/231 330/541/231 308/519/231 -f 330/541/231 331/542/231 308/519/231 -f 332/543/231 333/544/231 313/524/231 -f 333/544/231 311/522/231 313/524/231 -f 316/527/232 334/545/232 314/525/232 -f 334/545/232 335/546/232 314/525/232 -f 336/547/232 337/548/232 319/530/232 -f 337/548/232 317/528/232 319/530/232 -f 338/549/233 339/550/233 322/533/233 -f 339/550/233 320/531/233 322/533/233 -f 325/536/233 340/551/233 323/534/233 -f 340/551/233 341/552/233 323/534/233 +f 1676/1887/1109 1677/1888/1109 1678/1889/1109 +f 1679/1890/1109 1680/1891/1109 1681/1892/1109 +f 1682/1893/1110 1683/1894/1110 1684/1895/1110 +f 1685/1896/1110 1686/1897/1110 1687/1898/1110 +f 1688/1899/1111 1689/1900/1111 1690/1901/1111 +f 1691/1902/1111 1692/1903/1111 1693/1904/1111 +f 1694/1905/1112 1695/1906/1112 1696/1907/1112 +f 1697/1908/1112 1698/1909/1112 1699/1910/1112 +f 1700/1911/1109 1701/1912/1109 1678/1889/1109 +f 1701/1912/1109 1676/1887/1109 1678/1889/1109 +f 1681/1892/1109 1702/1913/1109 1679/1890/1109 +f 1702/1913/1109 1703/1914/1109 1679/1890/1109 +f 1684/1895/1110 1704/1915/1110 1682/1893/1110 +f 1704/1915/1110 1705/1916/1110 1682/1893/1110 +f 1706/1917/1110 1707/1918/1110 1687/1898/1110 +f 1707/1918/1110 1685/1896/1110 1687/1898/1110 +f 1690/1901/1111 1708/1919/1111 1688/1899/1111 +f 1708/1919/1111 1709/1920/1111 1688/1899/1111 +f 1710/1921/1111 1711/1922/1111 1693/1904/1111 +f 1711/1922/1111 1691/1902/1111 1693/1904/1111 +f 1712/1923/1112 1713/1924/1112 1696/1907/1112 +f 1713/1924/1112 1694/1905/1112 1696/1907/1112 +f 1699/1910/1112 1714/1925/1112 1697/1908/1112 +f 1714/1925/1112 1715/1926/1112 1697/1908/1112 s 1 -f 342/553/234 343/554/235 344/555/236 -f 345/556/233 346/557/237 347/558/238 -f 348/559/239 349/560/240 350/561/241 -f 342/553/234 346/557/237 351/562/242 -f 350/561/241 352/563/243 345/556/233 -f 348/559/239 353/564/244 354/565/245 -f 354/566/245 355/567/246 349/560/240 -f 346/557/237 356/568/247 351/569/242 -f 352/563/243 355/567/246 357/570/230 -f 353/571/244 358/572/248 354/566/245 -f 343/573/235 356/568/247 359/574/249 -f 352/563/243 360/575/250 346/557/237 -f 356/576/247 361/577/251 362/578/252 -f 355/579/246 363/580/253 357/581/230 -f 364/582/254 365/583/255 358/584/248 -f 356/576/247 366/585/256 359/586/249 -f 357/581/230 361/577/251 360/587/250 -f 358/584/248 367/588/257 355/579/246 -f 365/589/255 368/590/258 369/591/259 -f 362/592/252 370/593/260 366/594/256 -f 363/580/253 371/595/261 361/577/251 -f 365/589/255 372/596/262 367/588/257 -f 361/577/251 373/597/263 362/592/252 -f 363/580/253 372/596/262 374/598/231 -f 370/599/260 375/600/264 376/601/265 -f 374/598/231 377/602/266 371/595/261 -f 369/603/259 378/604/267 372/596/262 -f 373/605/263 377/602/266 375/600/264 -f 372/596/262 379/606/268 374/598/231 -f 369/603/259 380/607/269 381/608/270 -f 377/602/266 382/609/271 375/610/264 -f 378/604/267 383/611/232 379/606/268 -f 380/612/269 384/613/272 381/614/270 -f 375/610/264 385/615/273 376/616/265 -f 379/606/268 386/617/274 377/602/266 -f 378/604/267 384/613/272 387/618/275 -f 382/619/271 388/620/276 389/621/277 -f 383/611/232 390/622/278 391/623/279 -f 384/624/272 392/625/280 393/626/281 -f 385/627/273 389/621/277 394/628/282 -f 383/611/232 388/620/276 386/617/274 -f 384/624/272 390/622/278 387/618/275 -f 395/629/283 396/630/284 353/564/244 -f 397/631/285 344/555/236 343/554/235 -f 353/571/244 396/632/284 364/633/254 -f 397/634/285 343/573/235 359/574/249 -f 397/635/285 359/586/249 366/585/256 -f 364/582/254 396/636/284 398/637/286 -f 398/638/286 396/639/284 368/590/258 -f 397/640/285 366/594/256 370/593/260 -f 368/641/258 396/642/284 380/607/269 -f 397/643/285 370/599/260 376/601/265 -f 380/612/269 396/644/284 399/645/287 -f 397/646/285 376/616/265 385/615/273 -f 399/647/287 396/648/284 392/625/280 -f 397/649/285 385/627/273 394/628/282 -f 389/650/277 344/651/236 394/652/282 -f 391/623/279 347/558/238 388/620/276 -f 393/653/281 350/561/241 390/622/278 -f 392/654/280 396/655/284 395/656/283 -f 397/657/285 394/652/282 344/651/236 -f 388/620/276 342/658/234 389/650/277 -f 390/622/278 345/556/233 391/623/279 -f 393/653/281 395/656/283 348/659/239 -f 400/660/230 401/661/288 402/662/288 -f 403/663/253 401/661/288 404/664/230 -f 405/665/289 406/666/231 407/667/289 -f 403/663/253 405/665/289 408/668/253 -f 406/666/231 409/669/290 410/670/290 -f 411/671/268 409/669/290 412/672/231 -f 411/671/268 413/673/291 414/674/268 -f 413/673/291 415/675/232 416/676/291 -f 415/675/232 417/677/292 418/678/292 -f 419/679/279 417/677/292 420/680/232 -f 419/679/279 421/681/293 422/682/279 -f 421/681/293 423/683/233 424/684/293 -f 423/683/233 425/685/294 426/686/294 -f 427/687/243 425/685/294 428/688/233 -f 427/687/243 429/689/295 430/690/243 -f 429/689/295 400/691/230 431/692/295 -f 432/693/292 433/694/232 434/695/292 -f 435/696/279 432/693/292 436/697/279 -f 437/698/233 438/699/293 439/700/293 -f 435/696/279 438/699/293 440/701/233 -f 441/702/294 437/698/233 442/703/294 -f 443/704/243 441/702/294 444/705/243 -f 443/704/243 445/706/295 446/707/230 -f 447/708/230 445/706/295 448/709/295 -f 449/710/288 447/708/230 450/711/288 -f 451/712/253 449/710/288 452/713/253 -f 451/712/253 453/714/289 454/715/231 -f 455/716/231 453/714/289 456/717/289 -f 457/718/290 455/716/231 458/719/290 -f 459/720/268 457/718/290 460/721/268 -f 459/720/268 461/722/291 462/723/232 -f 433/724/232 461/722/291 463/725/291 -f 342/553/234 351/562/242 343/554/235 -f 345/556/233 352/563/243 346/557/237 -f 348/559/239 354/565/245 349/560/240 -f 342/553/234 347/558/238 346/557/237 -f 350/561/241 349/560/240 352/563/243 -f 348/559/239 395/629/283 353/564/244 -f 354/566/245 358/572/248 355/567/246 -f 346/557/237 360/575/250 356/568/247 -f 352/563/243 349/560/240 355/567/246 -f 353/571/244 364/633/254 358/572/248 -f 343/573/235 351/569/242 356/568/247 -f 352/563/243 357/570/230 360/575/250 -f 356/576/247 360/587/250 361/577/251 -f 355/579/246 367/588/257 363/580/253 -f 364/582/254 398/637/286 365/583/255 -f 356/576/247 362/578/252 366/585/256 -f 357/581/230 363/580/253 361/577/251 -f 358/584/248 365/583/255 367/588/257 -f 365/589/255 398/638/286 368/590/258 -f 362/592/252 373/597/263 370/593/260 -f 363/580/253 374/598/231 371/595/261 -f 365/589/255 369/591/259 372/596/262 -f 361/577/251 371/595/261 373/597/263 -f 363/580/253 367/588/257 372/596/262 -f 370/599/260 373/605/263 375/600/264 -f 374/598/231 379/606/268 377/602/266 -f 369/603/259 381/608/270 378/604/267 -f 373/605/263 371/595/261 377/602/266 -f 372/596/262 378/604/267 379/606/268 -f 369/603/259 368/641/258 380/607/269 -f 377/602/266 386/617/274 382/609/271 -f 378/604/267 387/618/275 383/611/232 -f 380/612/269 399/645/287 384/613/272 -f 375/610/264 382/609/271 385/615/273 -f 379/606/268 383/611/232 386/617/274 -f 378/604/267 381/614/270 384/613/272 -f 382/619/271 386/617/274 388/620/276 -f 383/611/232 387/618/275 390/622/278 -f 384/624/272 399/647/287 392/625/280 -f 385/627/273 382/619/271 389/621/277 -f 383/611/232 391/623/279 388/620/276 -f 384/624/272 393/626/281 390/622/278 -f 389/650/277 342/658/234 344/651/236 -f 391/623/279 345/556/233 347/558/238 -f 393/653/281 348/659/239 350/561/241 -f 388/620/276 347/558/238 342/658/234 -f 390/622/278 350/561/241 345/556/233 -f 393/653/281 392/654/280 395/656/283 -f 400/660/230 404/664/230 401/661/288 -f 403/663/253 408/668/253 401/661/288 -f 405/665/289 412/672/231 406/666/231 -f 403/663/253 412/672/231 405/665/289 -f 406/666/231 412/672/231 409/669/290 -f 411/671/268 414/674/268 409/669/290 -f 411/671/268 420/680/232 413/673/291 -f 413/673/291 420/680/232 415/675/232 -f 415/675/232 420/680/232 417/677/292 -f 419/679/279 422/682/279 417/677/292 -f 419/679/279 428/688/233 421/681/293 -f 421/681/293 428/688/233 423/683/233 -f 423/683/233 428/688/233 425/685/294 -f 427/687/243 430/690/243 425/685/294 -f 427/687/243 404/726/230 429/689/295 -f 429/689/295 404/726/230 400/691/230 -f 432/693/292 462/727/232 433/694/232 -f 435/696/279 462/727/232 432/693/292 -f 437/698/233 440/701/233 438/699/293 -f 435/696/279 436/697/279 438/699/293 -f 441/702/294 440/701/233 437/698/233 -f 443/704/243 440/701/233 441/702/294 -f 443/704/243 444/705/243 445/706/295 -f 447/708/230 446/707/230 445/706/295 -f 449/710/288 446/707/230 447/708/230 -f 451/712/253 446/707/230 449/710/288 -f 451/712/253 452/713/253 453/714/289 -f 455/716/231 454/715/231 453/714/289 -f 457/718/290 454/715/231 455/716/231 -f 459/720/268 454/715/231 457/718/290 -f 459/720/268 460/721/268 461/722/291 -f 433/724/232 462/723/232 461/722/291 +f 1716/1927/1113 1717/1928/1114 1718/1929/1115 +f 1719/1930/1112 1720/1931/1116 1721/1932/1117 +f 1722/1933/1118 1723/1934/1119 1724/1935/1120 +f 1716/1927/1113 1720/1931/1116 1725/1936/1121 +f 1724/1935/1120 1726/1937/1122 1719/1930/1112 +f 1722/1933/1118 1727/1938/1123 1728/1939/1124 +f 1728/1940/1124 1729/1941/1125 1723/1934/1119 +f 1720/1931/1116 1730/1942/1126 1725/1943/1121 +f 1726/1937/1122 1729/1941/1125 1731/1944/1109 +f 1727/1945/1123 1732/1946/1127 1728/1940/1124 +f 1717/1947/1114 1730/1942/1126 1733/1948/1128 +f 1726/1937/1122 1734/1949/1129 1720/1931/1116 +f 1730/1950/1126 1735/1951/1130 1736/1952/1131 +f 1729/1953/1125 1737/1954/1132 1731/1955/1109 +f 1738/1956/1133 1739/1957/1134 1732/1958/1127 +f 1730/1950/1126 1740/1959/1135 1733/1960/1128 +f 1731/1955/1109 1735/1951/1130 1734/1961/1129 +f 1732/1958/1127 1741/1962/1136 1729/1953/1125 +f 1739/1963/1134 1742/1964/1137 1743/1965/1138 +f 1736/1966/1131 1744/1967/1139 1740/1968/1135 +f 1737/1954/1132 1745/1969/1140 1735/1951/1130 +f 1739/1963/1134 1746/1970/1141 1741/1962/1136 +f 1735/1951/1130 1747/1971/1142 1736/1966/1131 +f 1737/1954/1132 1746/1970/1141 1748/1972/1110 +f 1744/1973/1139 1749/1974/1143 1750/1975/1144 +f 1748/1972/1110 1751/1976/1145 1745/1969/1140 +f 1743/1977/1138 1752/1978/1146 1746/1970/1141 +f 1747/1979/1142 1751/1976/1145 1749/1974/1143 +f 1746/1970/1141 1753/1980/1147 1748/1972/1110 +f 1743/1977/1138 1754/1981/1148 1755/1982/1149 +f 1751/1976/1145 1756/1983/1150 1749/1984/1143 +f 1752/1978/1146 1757/1985/1111 1753/1980/1147 +f 1754/1986/1148 1758/1987/1151 1755/1988/1149 +f 1749/1984/1143 1759/1989/1152 1750/1990/1144 +f 1753/1980/1147 1760/1991/1153 1751/1976/1145 +f 1752/1978/1146 1758/1987/1151 1761/1992/1154 +f 1756/1993/1150 1762/1994/1155 1763/1995/1156 +f 1757/1985/1111 1764/1996/1157 1765/1997/1158 +f 1758/1998/1151 1766/1999/1159 1767/2000/1160 +f 1759/2001/1152 1763/1995/1156 1768/2002/1161 +f 1757/1985/1111 1762/1994/1155 1760/1991/1153 +f 1758/1998/1151 1764/1996/1157 1761/1992/1154 +f 1769/2003/1162 1770/2004/1163 1727/1938/1123 +f 1771/2005/1164 1718/1929/1115 1717/1928/1114 +f 1727/1945/1123 1770/2006/1163 1738/2007/1133 +f 1771/2008/1164 1717/1947/1114 1733/1948/1128 +f 1771/2009/1164 1733/1960/1128 1740/1959/1135 +f 1738/1956/1133 1770/2010/1163 1772/2011/1165 +f 1772/2012/1165 1770/2013/1163 1742/1964/1137 +f 1771/2014/1164 1740/1968/1135 1744/1967/1139 +f 1742/2015/1137 1770/2016/1163 1754/1981/1148 +f 1771/2017/1164 1744/1973/1139 1750/1975/1144 +f 1754/1986/1148 1770/2018/1163 1773/2019/1166 +f 1771/2020/1164 1750/1990/1144 1759/1989/1152 +f 1773/2021/1166 1770/2022/1163 1766/1999/1159 +f 1771/2023/1164 1759/2001/1152 1768/2002/1161 +f 1763/2024/1156 1718/2025/1115 1768/2026/1161 +f 1765/1997/1158 1721/1932/1117 1762/1994/1155 +f 1767/2027/1160 1724/1935/1120 1764/1996/1157 +f 1766/2028/1159 1770/2029/1163 1769/2030/1162 +f 1771/2031/1164 1768/2026/1161 1718/2025/1115 +f 1762/1994/1155 1716/2032/1113 1763/2024/1156 +f 1764/1996/1157 1719/1930/1112 1765/1997/1158 +f 1767/2027/1160 1769/2030/1162 1722/2033/1118 +f 1774/2034/1109 1775/2035/1167 1776/2036/1167 +f 1777/2037/1132 1775/2035/1167 1778/2038/1109 +f 1779/2039/1168 1780/2040/1110 1781/2041/1168 +f 1777/2037/1132 1779/2039/1168 1782/2042/1132 +f 1780/2040/1110 1783/2043/1169 1784/2044/1169 +f 1785/2045/1147 1783/2043/1169 1786/2046/1110 +f 1785/2045/1147 1787/2047/1170 1788/2048/1147 +f 1787/2047/1170 1789/2049/1111 1790/2050/1170 +f 1789/2049/1111 1791/2051/1171 1792/2052/1171 +f 1793/2053/1158 1791/2051/1171 1794/2054/1111 +f 1793/2053/1158 1795/2055/1172 1796/2056/1158 +f 1795/2055/1172 1797/2057/1112 1798/2058/1172 +f 1797/2057/1112 1799/2059/1173 1800/2060/1173 +f 1801/2061/1122 1799/2059/1173 1802/2062/1112 +f 1801/2061/1122 1803/2063/1174 1804/2064/1122 +f 1803/2063/1174 1774/2065/1109 1805/2066/1174 +f 1806/2067/1171 1807/2068/1111 1808/2069/1171 +f 1809/2070/1158 1806/2067/1171 1810/2071/1158 +f 1811/2072/1112 1812/2073/1172 1813/2074/1172 +f 1809/2070/1158 1812/2073/1172 1814/2075/1112 +f 1815/2076/1173 1811/2072/1112 1816/2077/1173 +f 1817/2078/1122 1815/2076/1173 1818/2079/1122 +f 1817/2078/1122 1819/2080/1174 1820/2081/1109 +f 1821/2082/1109 1819/2080/1174 1822/2083/1174 +f 1823/2084/1167 1821/2082/1109 1824/2085/1167 +f 1825/2086/1132 1823/2084/1167 1826/2087/1132 +f 1825/2086/1132 1827/2088/1168 1828/2089/1110 +f 1829/2090/1110 1827/2088/1168 1830/2091/1168 +f 1831/2092/1169 1829/2090/1110 1832/2093/1169 +f 1833/2094/1147 1831/2092/1169 1834/2095/1147 +f 1833/2094/1147 1835/2096/1170 1836/2097/1111 +f 1807/2098/1111 1835/2096/1170 1837/2099/1170 +f 1716/1927/1113 1725/1936/1121 1717/1928/1114 +f 1719/1930/1112 1726/1937/1122 1720/1931/1116 +f 1722/1933/1118 1728/1939/1124 1723/1934/1119 +f 1716/1927/1113 1721/1932/1117 1720/1931/1116 +f 1724/1935/1120 1723/1934/1119 1726/1937/1122 +f 1722/1933/1118 1769/2003/1162 1727/1938/1123 +f 1728/1940/1124 1732/1946/1127 1729/1941/1125 +f 1720/1931/1116 1734/1949/1129 1730/1942/1126 +f 1726/1937/1122 1723/1934/1119 1729/1941/1125 +f 1727/1945/1123 1738/2007/1133 1732/1946/1127 +f 1717/1947/1114 1725/1943/1121 1730/1942/1126 +f 1726/1937/1122 1731/1944/1109 1734/1949/1129 +f 1730/1950/1126 1734/1961/1129 1735/1951/1130 +f 1729/1953/1125 1741/1962/1136 1737/1954/1132 +f 1738/1956/1133 1772/2011/1165 1739/1957/1134 +f 1730/1950/1126 1736/1952/1131 1740/1959/1135 +f 1731/1955/1109 1737/1954/1132 1735/1951/1130 +f 1732/1958/1127 1739/1957/1134 1741/1962/1136 +f 1739/1963/1134 1772/2012/1165 1742/1964/1137 +f 1736/1966/1131 1747/1971/1142 1744/1967/1139 +f 1737/1954/1132 1748/1972/1110 1745/1969/1140 +f 1739/1963/1134 1743/1965/1138 1746/1970/1141 +f 1735/1951/1130 1745/1969/1140 1747/1971/1142 +f 1737/1954/1132 1741/1962/1136 1746/1970/1141 +f 1744/1973/1139 1747/1979/1142 1749/1974/1143 +f 1748/1972/1110 1753/1980/1147 1751/1976/1145 +f 1743/1977/1138 1755/1982/1149 1752/1978/1146 +f 1747/1979/1142 1745/1969/1140 1751/1976/1145 +f 1746/1970/1141 1752/1978/1146 1753/1980/1147 +f 1743/1977/1138 1742/2015/1137 1754/1981/1148 +f 1751/1976/1145 1760/1991/1153 1756/1983/1150 +f 1752/1978/1146 1761/1992/1154 1757/1985/1111 +f 1754/1986/1148 1773/2019/1166 1758/1987/1151 +f 1749/1984/1143 1756/1983/1150 1759/1989/1152 +f 1753/1980/1147 1757/1985/1111 1760/1991/1153 +f 1752/1978/1146 1755/1988/1149 1758/1987/1151 +f 1756/1993/1150 1760/1991/1153 1762/1994/1155 +f 1757/1985/1111 1761/1992/1154 1764/1996/1157 +f 1758/1998/1151 1773/2021/1166 1766/1999/1159 +f 1759/2001/1152 1756/1993/1150 1763/1995/1156 +f 1757/1985/1111 1765/1997/1158 1762/1994/1155 +f 1758/1998/1151 1767/2000/1160 1764/1996/1157 +f 1763/2024/1156 1716/2032/1113 1718/2025/1115 +f 1765/1997/1158 1719/1930/1112 1721/1932/1117 +f 1767/2027/1160 1722/2033/1118 1724/1935/1120 +f 1762/1994/1155 1721/1932/1117 1716/2032/1113 +f 1764/1996/1157 1724/1935/1120 1719/1930/1112 +f 1767/2027/1160 1766/2028/1159 1769/2030/1162 +f 1774/2034/1109 1778/2038/1109 1775/2035/1167 +f 1777/2037/1132 1782/2042/1132 1775/2035/1167 +f 1779/2039/1168 1786/2046/1110 1780/2040/1110 +f 1777/2037/1132 1786/2046/1110 1779/2039/1168 +f 1780/2040/1110 1786/2046/1110 1783/2043/1169 +f 1785/2045/1147 1788/2048/1147 1783/2043/1169 +f 1785/2045/1147 1794/2054/1111 1787/2047/1170 +f 1787/2047/1170 1794/2054/1111 1789/2049/1111 +f 1789/2049/1111 1794/2054/1111 1791/2051/1171 +f 1793/2053/1158 1796/2056/1158 1791/2051/1171 +f 1793/2053/1158 1802/2062/1112 1795/2055/1172 +f 1795/2055/1172 1802/2062/1112 1797/2057/1112 +f 1797/2057/1112 1802/2062/1112 1799/2059/1173 +f 1801/2061/1122 1804/2064/1122 1799/2059/1173 +f 1801/2061/1122 1778/2100/1109 1803/2063/1174 +f 1803/2063/1174 1778/2100/1109 1774/2065/1109 +f 1806/2067/1171 1836/2101/1111 1807/2068/1111 +f 1809/2070/1158 1836/2101/1111 1806/2067/1171 +f 1811/2072/1112 1814/2075/1112 1812/2073/1172 +f 1809/2070/1158 1810/2071/1158 1812/2073/1172 +f 1815/2076/1173 1814/2075/1112 1811/2072/1112 +f 1817/2078/1122 1814/2075/1112 1815/2076/1173 +f 1817/2078/1122 1818/2079/1122 1819/2080/1174 +f 1821/2082/1109 1820/2081/1109 1819/2080/1174 +f 1823/2084/1167 1820/2081/1109 1821/2082/1109 +f 1825/2086/1132 1820/2081/1109 1823/2084/1167 +f 1825/2086/1132 1826/2087/1132 1827/2088/1168 +f 1829/2090/1110 1828/2089/1110 1827/2088/1168 +f 1831/2092/1169 1828/2089/1110 1829/2090/1110 +f 1833/2094/1147 1828/2089/1110 1831/2092/1169 +f 1833/2094/1147 1834/2095/1147 1835/2096/1170 +f 1807/2098/1111 1836/2097/1111 1835/2096/1170 o Meter1 v 0.000000 1.250000 0.718750 v 0.000000 1.272097 0.727903 @@ -2243,31 +8530,31 @@ vn 0.0000 0.3827 0.9239 vn 0.0000 0.3827 -0.9239 vn 0.0000 -0.3827 -0.9239 s off -f 475/728/296 477/729/296 476/730/296 -f 475/728/296 474/731/296 473/732/296 -f 481/733/296 478/734/296 479/735/296 -f 480/736/296 481/733/296 479/735/296 -f 469/737/297 478/738/297 468/739/297 -f 467/740/298 476/741/298 472/742/298 -f 472/743/299 477/744/299 466/745/299 -f 470/746/300 479/747/300 469/737/300 -f 466/748/301 473/749/301 465/750/301 -f 471/751/302 480/752/302 470/753/302 -f 468/739/303 475/754/303 467/740/303 -f 465/750/304 474/755/304 464/756/304 -f 464/756/305 481/757/305 471/751/305 -f 475/728/296 473/732/296 477/729/296 -f 475/728/296 478/734/296 474/731/296 -f 481/733/296 474/731/296 478/734/296 -f 469/737/297 479/747/297 478/738/297 -f 467/740/298 475/754/298 476/741/298 -f 472/743/299 476/758/299 477/744/299 -f 470/746/300 480/759/300 479/747/300 -f 466/748/301 477/760/301 473/749/301 -f 471/751/302 481/757/302 480/752/302 -f 468/739/303 478/738/303 475/754/303 -f 465/750/304 473/749/304 474/755/304 -f 464/756/305 474/755/305 481/757/305 +f 1849/2102/1175 1851/2103/1175 1850/2104/1175 +f 1849/2102/1175 1848/2105/1175 1847/2106/1175 +f 1855/2107/1175 1852/2108/1175 1853/2109/1175 +f 1854/2110/1175 1855/2107/1175 1853/2109/1175 +f 1843/2111/1176 1852/2112/1176 1842/2113/1176 +f 1841/2114/1177 1850/2115/1177 1846/2116/1177 +f 1846/2117/1178 1851/2118/1178 1840/2119/1178 +f 1844/2120/1179 1853/2121/1179 1843/2111/1179 +f 1840/2122/1180 1847/2123/1180 1839/2124/1180 +f 1845/2125/1181 1854/2126/1181 1844/2127/1181 +f 1842/2113/1182 1849/2128/1182 1841/2114/1182 +f 1839/2124/1183 1848/2129/1183 1838/2130/1183 +f 1838/2130/1184 1855/2131/1184 1845/2125/1184 +f 1849/2102/1175 1847/2106/1175 1851/2103/1175 +f 1849/2102/1175 1852/2108/1175 1848/2105/1175 +f 1855/2107/1175 1848/2105/1175 1852/2108/1175 +f 1843/2111/1176 1853/2121/1176 1852/2112/1176 +f 1841/2114/1177 1849/2128/1177 1850/2115/1177 +f 1846/2117/1178 1850/2132/1178 1851/2118/1178 +f 1844/2120/1179 1854/2133/1179 1853/2121/1179 +f 1840/2122/1180 1851/2134/1180 1847/2123/1180 +f 1845/2125/1181 1855/2131/1181 1854/2126/1181 +f 1842/2113/1182 1852/2112/1182 1849/2128/1182 +f 1839/2124/1183 1847/2123/1183 1848/2129/1183 +f 1838/2130/1184 1848/2129/1184 1855/2131/1184 o Console_Coonsole v -1.000000 0.000000 -1.500000 v 0.000000 0.000000 -1.500000 @@ -5118,1514 +11405,1514 @@ vn -0.7764 0.6302 0.0000 vn 0.0000 0.6302 0.7764 vn 0.7764 0.6302 0.0000 s off -f 483/761/306 484/762/306 482/763/306 -f 483/761/307 487/764/307 485/765/307 -f 486/766/308 489/767/308 487/768/308 -f 488/769/307 491/770/307 489/767/307 -f 490/771/309 493/772/309 491/770/309 -f 492/773/307 495/774/307 493/775/307 -f 494/776/309 497/777/309 495/774/309 -f 497/777/310 482/778/310 484/779/310 -f 489/780/311 493/772/311 487/781/311 -f 492/782/312 488/783/312 486/784/312 -f 496/785/312 492/773/312 486/786/312 -f 487/764/311 493/775/311 497/787/311 -f 513/788/309 511/789/309 512/790/309 -f 526/791/313 510/792/313 524/793/313 -f 524/794/314 513/788/314 523/795/314 -f 525/796/315 511/789/315 526/797/315 -f 523/798/316 512/790/316 525/799/316 -f 518/800/316 520/801/316 515/802/316 -f 515/803/315 521/804/315 514/805/315 -f 517/806/314 519/807/314 518/808/314 -f 514/809/313 522/810/313 517/811/313 -f 519/807/309 521/804/309 520/801/309 -f 530/812/309 528/813/309 529/814/309 -f 534/815/313 527/816/313 532/817/313 -f 532/818/314 530/812/314 531/819/314 -f 533/820/315 528/813/315 534/821/315 -f 531/822/316 529/814/316 533/823/316 -f 516/824/316 536/825/316 508/826/316 -f 508/827/315 537/828/315 507/829/315 -f 509/830/314 535/831/314 516/832/314 -f 507/833/313 538/834/313 509/835/313 -f 535/831/309 537/828/309 536/825/309 -f 542/836/309 540/837/309 541/838/309 -f 498/839/313 539/840/313 500/841/313 -f 500/842/314 542/836/314 501/843/314 -f 499/844/315 540/837/315 498/845/315 -f 501/846/316 541/838/316 499/847/316 -f 506/848/316 504/849/316 544/850/316 -f 544/851/315 503/852/315 543/853/315 -f 545/854/314 505/855/314 506/856/314 -f 543/857/313 502/858/313 545/859/313 -f 505/855/309 503/852/309 504/849/309 -f 563/860/309 561/861/309 562/862/309 -f 576/863/313 560/864/313 574/865/313 -f 574/866/314 563/860/314 573/867/314 -f 575/868/315 561/861/315 576/869/315 -f 573/870/316 562/862/316 575/871/316 -f 568/872/316 570/873/316 565/874/316 -f 565/875/315 571/876/315 564/877/315 -f 567/878/314 569/879/314 568/880/314 -f 564/881/313 572/882/313 567/883/313 -f 569/879/309 571/876/309 570/873/309 -f 580/884/309 578/885/309 579/886/309 -f 584/887/313 577/888/313 582/889/313 -f 582/890/314 580/884/314 581/891/314 -f 583/892/315 578/885/315 584/893/315 -f 581/894/316 579/886/316 583/895/316 -f 566/896/316 586/897/316 558/898/316 -f 558/899/315 609/900/315 557/901/315 -f 559/902/314 585/903/314 566/904/314 -f 557/905/313 610/906/313 559/907/313 -f 585/903/309 609/900/309 586/897/309 -f 614/908/309 612/909/309 613/910/309 -f 546/911/313 611/912/313 549/913/313 -f 549/914/314 614/908/314 551/915/314 -f 547/916/315 612/909/315 546/917/315 -f 551/918/316 613/910/316 547/919/316 -f 556/920/316 554/921/316 616/922/316 -f 616/923/315 553/924/315 615/925/315 -f 617/926/314 555/927/314 556/928/314 -f 615/929/313 552/930/313 617/931/313 -f 555/927/309 553/924/309 554/921/309 -f 591/932/309 589/933/309 590/934/309 -f 596/935/313 588/936/313 594/937/313 -f 594/938/314 591/932/314 593/939/314 -f 595/940/315 589/933/315 596/941/315 -f 593/942/316 590/934/316 595/943/316 -f 600/944/309 598/945/309 599/946/309 -f 604/947/313 597/948/313 602/949/313 -f 602/950/314 600/944/314 601/951/314 -f 603/952/315 598/945/315 604/953/315 -f 601/954/316 599/946/316 603/955/316 -f 592/956/316 606/957/316 550/958/316 -f 550/959/315 607/960/315 548/961/315 -f 587/962/314 605/963/314 592/964/314 -f 548/965/313 608/966/313 587/967/313 -f 605/963/309 607/960/309 606/957/309 -f 633/968/309 631/969/309 632/970/309 -f 646/971/313 630/972/313 644/973/313 -f 644/974/314 633/968/314 643/975/314 -f 645/976/315 631/969/315 646/977/315 -f 643/978/316 632/970/316 645/979/316 -f 638/980/316 640/981/316 635/982/316 -f 635/983/315 641/984/315 634/985/315 -f 637/986/314 639/987/314 638/988/314 -f 634/989/313 642/990/313 637/991/313 -f 639/987/309 641/984/309 640/981/309 -f 650/992/309 648/993/309 649/994/309 -f 654/995/313 647/996/313 652/997/313 -f 652/998/314 650/992/314 651/999/314 -f 653/1000/315 648/993/315 654/1001/315 -f 651/1002/316 649/994/316 653/1003/316 -f 636/1004/316 656/1005/316 628/1006/316 -f 628/1007/315 657/1008/315 627/1009/315 -f 629/1010/314 655/1011/314 636/1012/314 -f 627/1013/313 658/1014/313 629/1015/313 -f 655/1011/309 657/1008/309 656/1005/309 -f 662/1016/309 660/1017/309 661/1018/309 -f 618/1019/313 659/1020/313 620/1021/313 -f 620/1022/314 662/1016/314 621/1023/314 -f 619/1024/315 660/1017/315 618/1025/315 -f 621/1026/316 661/1018/316 619/1027/316 -f 626/1028/316 624/1029/316 664/1030/316 -f 664/1031/315 623/1032/315 663/1033/315 -f 665/1034/314 625/1035/314 626/1036/314 -f 663/1037/313 622/1038/313 665/1039/313 -f 625/1035/309 623/1032/309 624/1029/309 -f 730/1040/309 732/1041/309 731/1042/309 -f 669/1043/313 733/1044/313 666/1045/313 -f 666/1046/314 730/1040/314 729/1047/314 -f 667/1048/315 732/1041/315 669/1049/315 -f 729/1050/316 731/1042/316 667/1051/316 -f 734/1052/316 672/1053/316 736/1054/316 -f 736/1055/315 673/1056/315 737/1057/315 -f 735/1058/314 671/1059/314 734/1060/314 -f 737/1061/313 674/1062/313 735/1063/313 -f 671/1059/309 673/1056/309 672/1053/309 -f 678/1064/309 676/1065/309 677/1066/309 -f 706/1067/313 675/1068/313 704/1069/313 -f 704/1070/314 678/1064/314 697/1071/314 -f 705/1072/315 676/1065/315 706/1073/315 -f 697/1074/316 677/1066/316 705/1075/316 -f 682/1076/316 684/1077/316 680/1078/316 -f 680/1079/315 685/1080/315 679/1081/315 -f 681/1082/314 683/1083/314 682/1084/314 -f 679/1085/313 686/1086/313 681/1087/313 -f 683/1083/309 685/1080/309 684/1077/309 -f 694/1088/309 692/1089/309 693/1090/309 -f 699/1091/313 691/1092/313 696/1093/313 -f 696/1094/314 694/1088/314 695/1095/314 -f 698/1096/315 692/1089/315 699/1097/315 -f 695/1098/316 693/1090/316 698/1099/316 -f 690/1100/316 701/1101/316 688/1102/316 -f 688/1103/315 702/1104/315 687/1105/315 -f 689/1106/314 700/1107/314 690/1108/314 -f 687/1109/313 703/1110/313 689/1111/313 -f 700/1107/309 702/1104/309 701/1101/309 -f 708/1112/309 670/1113/309 707/1114/309 -f 728/1115/313 668/1116/313 726/1117/313 -f 726/1118/314 708/1112/314 721/1119/314 -f 727/1120/315 670/1113/315 728/1121/315 -f 721/1122/316 707/1114/316 727/1123/316 -f 712/1124/316 714/1125/316 710/1126/316 -f 710/1127/315 715/1128/315 709/1129/315 -f 711/1130/314 713/1131/314 712/1132/314 -f 709/1133/313 716/1134/313 711/1135/313 -f 713/1131/309 715/1128/309 714/1125/309 -f 720/1136/316 723/1137/316 718/1138/316 -f 718/1139/315 724/1140/315 717/1141/315 -f 719/1142/314 722/1143/314 720/1144/314 -f 717/1145/313 725/1146/313 719/1147/313 -f 722/1143/309 724/1140/309 723/1137/309 -f 750/1148/309 748/1149/309 749/1150/309 -f 829/1151/313 747/1152/313 784/1153/313 -f 784/1154/314 750/1148/314 775/1155/314 -f 827/1156/315 748/1149/315 829/1157/315 -f 775/1158/316 749/1150/316 827/1159/316 -f 766/1160/316 768/1161/316 752/1162/316 -f 757/1163/309 755/1164/309 756/1165/309 -f 833/1166/313 754/1167/313 799/1168/313 -f 799/1169/314 757/1163/314 794/1170/314 -f 832/1171/315 755/1164/315 833/1172/315 -f 794/1173/316 756/1165/316 832/1174/316 -f 761/1175/316 763/1176/316 759/1177/316 -f 759/1178/315 764/1179/315 758/1180/315 -f 760/1181/314 762/1182/314 761/1183/314 -f 758/1184/313 765/1185/313 760/1186/313 -f 762/1182/309 764/1179/309 763/1176/309 -f 752/1187/315 769/1188/315 751/1189/315 -f 753/1190/314 767/1191/314 766/1192/314 -f 751/1193/313 770/1194/313 753/1195/313 -f 767/1191/309 769/1188/309 768/1161/309 -f 774/1196/316 781/1197/316 772/1198/316 -f 772/1199/315 782/1200/315 771/1201/315 -f 773/1202/314 780/1203/314 774/1204/314 -f 771/1205/313 783/1206/313 773/1207/313 -f 780/1203/309 782/1200/309 781/1197/309 -f 822/1208/309 824/1209/309 823/1210/309 -f 740/1211/313 825/1212/313 738/1213/313 -f 738/1214/314 822/1208/314 821/1215/314 -f 739/1216/315 824/1209/315 740/1217/315 -f 821/1218/316 823/1210/316 739/1219/316 -f 826/1220/316 742/1221/316 830/1222/316 -f 779/1223/316 796/1224/316 777/1225/316 -f 777/1226/315 797/1227/315 776/1228/315 -f 778/1229/314 795/1230/314 779/1231/314 -f 776/1232/313 798/1233/313 778/1234/313 -f 795/1230/309 797/1227/309 796/1224/309 -f 830/1235/315 743/1236/315 831/1237/315 -f 828/1238/314 741/1239/314 826/1240/314 -f 831/1241/313 744/1242/313 828/1243/313 -f 741/1239/309 743/1236/309 742/1221/309 -f 786/1244/309 746/1245/309 785/1246/309 -f 820/1247/313 745/1248/313 818/1249/313 -f 818/1250/314 786/1244/314 811/1251/314 -f 819/1252/315 746/1245/315 820/1253/315 -f 811/1254/316 785/1246/316 819/1255/316 -f 790/1256/316 792/1257/316 788/1258/316 -f 788/1259/315 793/1260/315 787/1261/315 -f 789/1262/314 791/1263/314 790/1264/314 -f 787/1265/313 800/1266/313 789/1267/313 -f 791/1263/309 793/1260/309 792/1257/309 -f 808/1268/309 806/1269/309 807/1270/309 -f 813/1271/313 805/1272/313 810/1273/313 -f 810/1274/314 808/1268/314 809/1275/314 -f 812/1276/315 806/1269/315 813/1277/315 -f 809/1278/316 807/1270/316 812/1279/316 -f 804/1280/316 815/1281/316 802/1282/316 -f 802/1283/315 816/1284/315 801/1285/315 -f 803/1286/314 814/1287/314 804/1288/314 -f 801/1289/313 817/1290/313 803/1291/313 -f 814/1287/309 816/1284/309 815/1281/309 -f 894/1292/309 892/1293/309 893/1294/309 -f 834/1295/313 891/1296/313 837/1297/313 -f 837/1298/314 894/1292/314 839/1299/314 -f 835/1300/315 892/1293/315 834/1301/315 -f 839/1302/317 893/1294/317 835/1303/317 -f 890/1304/317 842/1305/317 896/1306/317 -f 896/1307/315 841/1308/315 895/1309/315 -f 897/1310/314 889/1311/314 890/1312/314 -f 895/1313/313 840/1314/313 897/1315/313 -f 889/1311/309 841/1308/309 842/1305/309 -f 846/1316/309 844/1317/309 845/1318/309 -f 866/1319/313 843/1320/313 864/1321/313 -f 864/1322/314 846/1316/314 859/1323/314 -f 865/1324/315 844/1317/315 866/1325/315 -f 859/1326/316 845/1318/316 865/1327/316 -f 850/1328/316 852/1329/316 848/1330/316 -f 848/1331/315 853/1332/315 847/1333/315 -f 849/1334/314 851/1335/314 850/1336/314 -f 847/1337/313 854/1338/313 849/1339/313 -f 851/1335/309 853/1332/309 852/1329/309 -f 858/1340/316 861/1341/316 856/1342/316 -f 856/1343/315 862/1344/315 855/1345/315 -f 857/1346/314 860/1347/314 858/1348/314 -f 855/1349/313 863/1350/313 857/1351/313 -f 860/1347/309 862/1344/309 861/1341/309 -f 871/1352/309 869/1353/309 870/1354/309 -f 876/1355/313 868/1356/313 874/1357/313 -f 874/1358/314 871/1352/314 873/1359/314 -f 875/1360/315 869/1353/315 876/1361/315 -f 873/1362/316 870/1354/316 875/1363/316 -f 880/1364/309 878/1365/309 879/1366/309 -f 884/1367/313 877/1368/313 882/1369/313 -f 882/1370/314 880/1364/314 881/1371/314 -f 883/1372/315 878/1365/315 884/1373/315 -f 881/1374/316 879/1366/316 883/1375/316 -f 872/1376/316 886/1377/316 838/1378/316 -f 838/1379/315 887/1380/315 836/1381/315 -f 867/1382/314 885/1383/314 872/1384/314 -f 836/1385/313 888/1386/313 867/1387/313 -f 885/1383/309 887/1380/309 886/1377/309 -f 910/1388/309 908/1389/309 909/1390/309 -f 959/1391/313 907/1392/313 928/1393/313 -f 928/1394/314 910/1388/314 923/1395/314 -f 957/1396/315 908/1389/315 959/1397/315 -f 923/1398/316 909/1390/316 957/1399/316 -f 914/1400/316 916/1401/316 912/1402/316 -f 912/1403/315 917/1404/315 911/1405/315 -f 913/1406/314 915/1407/314 914/1408/314 -f 911/1409/313 918/1410/313 913/1411/313 -f 915/1407/309 917/1404/309 916/1401/309 -f 922/1412/316 925/1413/316 920/1414/316 -f 920/1415/315 926/1416/315 919/1417/315 -f 921/1418/314 924/1419/314 922/1420/314 -f 919/1421/313 927/1422/313 921/1423/313 -f 924/1419/309 926/1416/309 925/1413/309 -f 935/1424/309 933/1425/309 934/1426/309 -f 940/1427/313 932/1428/313 938/1429/313 -f 938/1430/314 935/1424/314 937/1431/314 -f 939/1432/315 933/1425/315 940/1433/315 -f 937/1434/317 934/1426/317 939/1435/317 -f 944/1436/309 942/1437/309 943/1438/309 -f 948/1439/313 941/1440/313 946/1441/313 -f 946/1442/314 944/1436/314 945/1443/314 -f 947/1444/315 942/1437/315 948/1445/315 -f 945/1446/317 943/1438/317 947/1447/317 -f 936/1448/317 950/1449/317 930/1450/317 -f 930/1451/315 951/1452/315 929/1453/315 -f 931/1454/314 949/1455/314 936/1456/314 -f 929/1457/313 952/1458/313 931/1459/313 -f 949/1455/309 951/1452/309 950/1449/309 -f 906/1460/309 954/1461/309 953/1462/309 -f 900/1463/313 955/1464/313 898/1465/313 -f 898/1466/314 906/1460/314 905/1467/314 -f 899/1468/315 954/1461/315 900/1469/315 -f 905/1470/316 953/1462/316 899/1471/316 -f 956/1472/316 902/1473/316 960/1474/316 -f 960/1475/315 903/1476/315 961/1477/315 -f 958/1478/314 901/1479/314 956/1480/314 -f 961/1481/313 904/1482/313 958/1483/313 -f 901/1479/309 903/1476/309 902/1473/309 -f 998/1484/309 996/1485/309 997/1486/309 -f 962/1487/313 995/1488/313 965/1489/313 -f 965/1490/314 998/1484/314 967/1491/314 -f 963/1492/315 996/1485/315 962/1493/315 -f 967/1494/316 997/1486/316 963/1495/316 -f 994/1496/316 970/1497/316 1000/1498/316 -f 1000/1499/315 969/1500/315 999/1501/315 -f 1001/1502/314 993/1503/314 994/1504/314 -f 999/1505/313 968/1506/313 1001/1507/313 -f 993/1503/309 969/1500/309 970/1497/309 -f 975/1508/309 973/1509/309 974/1510/309 -f 980/1511/313 972/1512/313 978/1513/313 -f 978/1514/314 975/1508/314 977/1515/314 -f 979/1516/315 973/1509/315 980/1517/315 -f 977/1518/316 974/1510/316 979/1519/316 -f 984/1520/309 982/1521/309 983/1522/309 -f 988/1523/313 981/1524/313 986/1525/313 -f 986/1526/314 984/1520/314 985/1527/314 -f 987/1528/315 982/1521/315 988/1529/315 -f 985/1530/316 983/1522/316 987/1531/316 -f 976/1532/316 990/1533/316 966/1534/316 -f 966/1535/315 991/1536/315 964/1537/315 -f 971/1538/314 989/1539/314 976/1540/314 -f 964/1541/313 992/1542/313 971/1543/313 -f 989/1539/309 991/1536/309 990/1533/309 -f 1014/1544/309 1012/1545/309 1013/1546/309 -f 1071/1547/313 1011/1548/313 1032/1549/313 -f 1032/1550/314 1014/1544/314 1027/1551/314 -f 1069/1552/315 1012/1545/315 1071/1553/315 -f 1027/1554/317 1013/1546/317 1069/1555/317 -f 1018/1556/317 1020/1557/317 1016/1558/317 -f 1016/1559/315 1021/1560/315 1015/1561/315 -f 1017/1562/314 1019/1563/314 1018/1564/314 -f 1015/1565/313 1022/1566/313 1017/1567/313 -f 1019/1563/309 1021/1560/309 1020/1557/309 -f 1026/1568/317 1029/1569/317 1024/1570/317 -f 1024/1571/315 1030/1572/315 1023/1573/315 -f 1025/1574/314 1028/1575/314 1026/1576/314 -f 1023/1577/313 1031/1578/313 1025/1579/313 -f 1028/1575/309 1030/1572/309 1029/1569/309 -f 1064/1580/309 1066/1581/309 1065/1582/309 -f 1004/1583/313 1067/1584/313 1002/1585/313 -f 1002/1586/314 1064/1580/314 1063/1587/314 -f 1003/1588/315 1066/1581/315 1004/1589/315 -f 1063/1590/316 1065/1582/316 1003/1591/316 -f 1068/1592/316 1006/1593/316 1072/1594/316 -f 1072/1595/315 1007/1596/315 1073/1597/315 -f 1070/1598/314 1005/1599/314 1068/1600/314 -f 1073/1601/313 1008/1602/313 1070/1603/313 -f 1005/1599/309 1007/1596/309 1006/1593/309 -f 1034/1604/309 1010/1605/309 1033/1606/309 -f 1062/1607/313 1009/1608/313 1060/1609/313 -f 1060/1610/314 1034/1604/314 1053/1611/314 -f 1061/1612/315 1010/1605/315 1062/1613/315 -f 1053/1614/316 1033/1606/316 1061/1615/316 -f 1038/1616/316 1040/1617/316 1036/1618/316 -f 1036/1619/315 1041/1620/315 1035/1621/315 -f 1037/1622/314 1039/1623/314 1038/1624/314 -f 1035/1625/313 1042/1626/313 1037/1627/313 -f 1039/1623/309 1041/1620/309 1040/1617/309 -f 1050/1628/309 1048/1629/309 1049/1630/309 -f 1055/1631/313 1047/1632/313 1052/1633/313 -f 1052/1634/314 1050/1628/314 1051/1635/314 -f 1054/1636/315 1048/1629/315 1055/1637/315 -f 1051/1638/316 1049/1630/316 1054/1639/316 -f 1046/1640/316 1057/1641/316 1044/1642/316 -f 1044/1643/315 1058/1644/315 1043/1645/315 -f 1045/1646/314 1056/1647/314 1046/1648/314 -f 1043/1649/313 1059/1650/313 1045/1651/313 -f 1056/1647/309 1058/1644/309 1057/1641/309 -f 1101/1652/307 1112/1653/307 1100/1654/307 -f 1108/1655/307 1119/1656/307 1107/1657/307 -f 1104/1658/307 1117/1659/307 1116/1660/307 -f 1102/1661/307 1113/1662/307 1101/1652/307 -f 1109/1663/307 1120/1664/307 1108/1655/307 -f 1099/1665/307 1110/1666/307 1098/1667/307 -f 1106/1668/307 1117/1659/307 1105/1669/307 -f 1102/1661/307 1115/1670/307 1114/1671/307 -f 1098/1667/307 1121/1672/307 1109/1663/307 -f 1100/1654/307 1111/1673/307 1099/1665/307 -f 1106/1668/307 1119/1674/307 1118/1675/307 -f 1104/1658/307 1115/1670/307 1103/1676/307 -f 1137/1677/307 1148/1678/307 1136/1679/307 -f 1144/1680/307 1155/1681/307 1143/1682/307 -f 1140/1683/307 1153/1684/307 1152/1685/307 -f 1138/1686/307 1149/1687/307 1137/1677/307 -f 1145/1688/307 1156/1689/307 1144/1680/307 -f 1135/1690/307 1146/1691/307 1134/1692/307 -f 1142/1693/307 1153/1684/307 1141/1694/307 -f 1138/1686/307 1151/1695/307 1150/1696/307 -f 1134/1692/307 1157/1697/307 1145/1688/307 -f 1136/1679/307 1147/1698/307 1135/1690/307 -f 1142/1693/307 1155/1699/307 1154/1700/307 -f 1140/1683/307 1151/1695/307 1139/1701/307 -f 1182/1702/318 1181/1703/318 1179/1704/318 -f 1184/1705/319 1181/1703/319 1180/1706/319 -f 1183/1707/320 1178/1708/320 1185/1709/320 -f 1185/1709/321 1182/1710/321 1179/1704/321 -f 1181/1703/307 1185/1709/307 1179/1704/307 -f 1172/1711/317 1170/1712/317 1171/1713/317 -f 1177/1714/313 1175/1715/313 1176/1716/313 -f 1177/1717/314 1172/1711/314 1171/1718/314 -f 1173/1719/309 1176/1716/309 1175/1715/309 -f 1173/1719/315 1174/1720/315 1170/1721/315 -f 1212/1722/317 1210/1723/317 1211/1724/317 -f 1217/1725/313 1215/1726/313 1216/1727/313 -f 1217/1728/314 1212/1722/314 1211/1729/314 -f 1213/1730/309 1216/1727/309 1215/1726/309 -f 1213/1730/315 1214/1731/315 1210/1732/315 -f 1220/1733/317 1218/1734/317 1219/1735/317 -f 1225/1736/313 1223/1737/313 1224/1738/313 -f 1225/1739/314 1220/1733/314 1219/1740/314 -f 1221/1741/309 1224/1738/309 1223/1737/309 -f 1221/1741/315 1222/1742/315 1218/1743/315 -f 1228/1744/317 1226/1745/317 1227/1746/317 -f 1233/1747/313 1231/1748/313 1232/1749/313 -f 1233/1750/314 1228/1744/314 1227/1751/314 -f 1229/1752/309 1232/1749/309 1231/1748/309 -f 1229/1752/315 1230/1753/315 1226/1754/315 -f 1243/1755/309 1248/1756/309 1249/1757/309 -f 1251/1758/309 1252/1759/309 1250/1760/309 -f 1255/1761/309 1256/1762/309 1254/1763/309 -f 1262/1764/318 1261/1765/318 1259/1766/318 -f 1264/1767/319 1261/1765/319 1260/1768/319 -f 1263/1769/320 1258/1770/320 1265/1771/320 -f 1265/1771/321 1262/1772/321 1259/1766/321 -f 1261/1765/307 1265/1771/307 1259/1766/307 -f 1294/1773/318 1293/1774/318 1291/1775/318 -f 1296/1776/319 1293/1774/319 1292/1777/319 -f 1295/1778/320 1290/1779/320 1297/1780/320 -f 1297/1780/322 1294/1781/322 1291/1775/322 -f 1293/1774/307 1297/1780/307 1291/1775/307 -f 1326/1782/318 1325/1783/318 1323/1784/318 -f 1328/1785/319 1325/1783/319 1324/1786/319 -f 1327/1787/320 1322/1788/320 1329/1789/320 -f 1329/1789/322 1326/1790/322 1323/1784/322 -f 1325/1783/307 1329/1789/307 1323/1784/307 -f 1358/1791/318 1357/1792/318 1355/1793/318 -f 1360/1794/319 1357/1792/319 1356/1795/319 -f 1359/1796/320 1354/1797/320 1361/1798/320 -f 1361/1798/322 1358/1799/322 1355/1793/322 -f 1357/1792/307 1361/1798/307 1355/1793/307 -f 1390/1800/318 1389/1801/318 1387/1802/318 -f 1392/1803/319 1389/1801/319 1388/1804/319 -f 1391/1805/320 1386/1806/320 1393/1807/320 -f 1393/1807/322 1390/1808/322 1387/1802/322 -f 1389/1801/307 1393/1807/307 1387/1802/307 -f 1422/1809/318 1421/1810/318 1419/1811/318 -f 1424/1812/319 1421/1810/319 1420/1813/319 -f 1423/1814/320 1418/1815/320 1425/1816/320 -f 1425/1816/321 1422/1817/321 1419/1811/321 -f 1421/1810/307 1425/1816/307 1419/1811/307 -f 1454/1818/318 1453/1819/318 1451/1820/318 -f 1456/1821/319 1453/1819/319 1452/1822/319 -f 1455/1823/320 1450/1824/320 1457/1825/320 -f 1457/1825/321 1454/1826/321 1451/1820/321 -f 1453/1819/307 1457/1825/307 1451/1820/307 -f 1486/1827/318 1485/1828/318 1483/1829/318 -f 1488/1830/319 1485/1828/319 1484/1831/319 -f 1487/1832/320 1482/1833/320 1489/1834/320 -f 1489/1834/321 1486/1835/321 1483/1829/321 -f 1485/1828/307 1489/1834/307 1483/1829/307 -f 1554/1836/309 1556/1837/309 1555/1838/309 -f 1516/1839/313 1557/1840/313 1514/1841/313 -f 1514/1842/314 1554/1836/314 1553/1843/314 -f 1515/1844/315 1556/1837/315 1516/1845/315 -f 1553/1846/316 1555/1838/316 1515/1847/316 -f 1558/1848/316 1518/1849/316 1560/1850/316 -f 1560/1851/315 1519/1852/315 1561/1853/315 -f 1559/1854/314 1517/1855/314 1558/1856/314 -f 1561/1857/313 1520/1858/313 1559/1859/313 -f 1517/1855/309 1519/1852/309 1518/1849/309 -f 1524/1860/309 1522/1861/309 1523/1862/309 -f 1552/1863/313 1521/1864/313 1550/1865/313 -f 1550/1866/314 1524/1860/314 1543/1867/314 -f 1551/1868/315 1522/1861/315 1552/1869/315 -f 1543/1870/316 1523/1862/316 1551/1871/316 -f 1528/1872/316 1530/1873/316 1526/1874/316 -f 1526/1875/315 1531/1876/315 1525/1877/315 -f 1527/1878/314 1529/1879/314 1528/1880/314 -f 1525/1881/313 1532/1882/313 1527/1883/313 -f 1529/1879/309 1531/1876/309 1530/1873/309 -f 1540/1884/309 1538/1885/309 1539/1886/309 -f 1545/1887/313 1537/1888/313 1542/1889/313 -f 1542/1890/314 1540/1884/314 1541/1891/314 -f 1544/1892/315 1538/1885/315 1545/1893/315 -f 1541/1894/316 1539/1886/316 1544/1895/316 -f 1536/1896/316 1547/1897/316 1534/1898/316 -f 1534/1899/315 1548/1900/315 1533/1901/315 -f 1535/1902/314 1546/1903/314 1536/1904/314 -f 1533/1905/313 1549/1906/313 1535/1907/313 -f 1546/1903/309 1548/1900/309 1547/1897/309 -f 1602/1908/309 1604/1909/309 1603/1910/309 -f 1564/1911/313 1605/1912/313 1562/1913/313 -f 1562/1914/314 1602/1908/314 1601/1915/314 -f 1563/1916/315 1604/1909/315 1564/1917/315 -f 1601/1918/316 1603/1910/316 1563/1919/316 -f 1606/1920/316 1566/1921/316 1608/1922/316 -f 1608/1923/315 1567/1924/315 1609/1925/315 -f 1607/1926/314 1565/1927/314 1606/1928/314 -f 1609/1929/313 1568/1930/313 1607/1931/313 -f 1565/1927/309 1567/1924/309 1566/1921/309 -f 1572/1932/309 1570/1933/309 1571/1934/309 -f 1600/1935/313 1569/1936/313 1598/1937/313 -f 1598/1938/314 1572/1932/314 1591/1939/314 -f 1599/1940/315 1570/1933/315 1600/1941/315 -f 1591/1942/316 1571/1934/316 1599/1943/316 -f 1576/1944/316 1578/1945/316 1574/1946/316 -f 1574/1947/315 1579/1948/315 1573/1949/315 -f 1575/1950/314 1577/1951/314 1576/1952/314 -f 1573/1953/313 1580/1954/313 1575/1955/313 -f 1577/1951/309 1579/1948/309 1578/1945/309 -f 1588/1956/309 1586/1957/309 1587/1958/309 -f 1593/1959/313 1585/1960/313 1590/1961/313 -f 1590/1962/314 1588/1956/314 1589/1963/314 -f 1592/1964/315 1586/1957/315 1593/1965/315 -f 1589/1966/316 1587/1958/316 1592/1967/316 -f 1584/1968/316 1595/1969/316 1582/1970/316 -f 1582/1971/315 1596/1972/315 1581/1973/315 -f 1583/1974/314 1594/1975/314 1584/1976/314 -f 1581/1977/313 1597/1978/313 1583/1979/313 -f 1594/1975/309 1596/1972/309 1595/1969/309 -f 483/761/306 485/765/306 484/762/306 -f 483/761/307 486/786/307 487/764/307 -f 486/766/308 488/769/308 489/767/308 -f 488/769/307 490/771/307 491/770/307 -f 490/771/309 492/782/309 493/772/309 -f 492/773/307 494/776/307 495/774/307 -f 494/776/309 496/1980/309 497/777/309 -f 497/777/310 496/1980/310 482/778/310 -f 489/780/311 491/770/311 493/772/311 -f 492/782/312 490/771/312 488/783/312 -f 483/761/312 482/1981/312 486/786/312 -f 482/1981/312 496/785/312 486/786/312 -f 496/785/312 494/776/312 492/773/312 -f 484/1982/311 485/765/311 487/764/311 -f 493/775/311 495/774/311 497/787/311 -f 484/1982/311 487/764/311 497/787/311 -f 513/788/309 510/792/309 511/789/309 -f 526/791/323 511/789/323 510/792/323 -f 524/794/324 510/792/324 513/788/324 -f 525/796/325 512/790/325 511/789/325 -f 523/798/317 513/788/317 512/790/317 -f 518/800/317 519/807/317 520/801/317 -f 515/803/325 520/801/325 521/804/325 -f 517/806/324 522/810/324 519/807/324 -f 514/809/323 521/804/323 522/810/323 -f 519/807/309 522/810/309 521/804/309 -f 530/812/309 527/816/309 528/813/309 -f 534/815/323 528/813/323 527/816/323 -f 532/818/324 527/816/324 530/812/324 -f 533/820/325 529/814/325 528/813/325 -f 531/822/317 530/812/317 529/814/317 -f 516/824/317 535/831/317 536/825/317 -f 508/827/325 536/825/325 537/828/325 -f 509/830/324 538/834/324 535/831/324 -f 507/833/323 537/828/323 538/834/323 -f 535/831/309 538/834/309 537/828/309 -f 542/836/309 539/840/309 540/837/309 -f 498/839/323 540/837/323 539/840/323 -f 500/842/324 539/840/324 542/836/324 -f 499/844/325 541/838/325 540/837/325 -f 501/846/317 542/836/317 541/838/317 -f 506/848/317 505/855/317 504/849/317 -f 544/851/325 504/849/325 503/852/325 -f 545/854/324 502/858/324 505/855/324 -f 543/857/323 503/852/323 502/858/323 -f 505/855/309 502/858/309 503/852/309 -f 563/860/309 560/864/309 561/861/309 -f 576/863/313 561/861/313 560/864/313 -f 574/866/324 560/864/324 563/860/324 -f 575/868/325 562/862/325 561/861/325 -f 573/870/317 563/860/317 562/862/317 -f 568/872/317 569/879/317 570/873/317 -f 565/875/325 570/873/325 571/876/325 -f 567/878/324 572/882/324 569/879/324 -f 564/881/313 571/876/313 572/882/313 -f 569/879/309 572/882/309 571/876/309 -f 580/884/309 577/888/309 578/885/309 -f 584/887/313 578/885/313 577/888/313 -f 582/890/324 577/888/324 580/884/324 -f 583/892/325 579/886/325 578/885/325 -f 581/894/317 580/884/317 579/886/317 -f 566/896/317 585/903/317 586/897/317 -f 558/899/325 586/897/325 609/900/325 -f 559/902/324 610/906/324 585/903/324 -f 557/905/313 609/900/313 610/906/313 -f 585/903/309 610/906/309 609/900/309 -f 614/908/309 611/912/309 612/909/309 -f 546/911/313 612/909/313 611/912/313 -f 549/914/324 611/912/324 614/908/324 -f 547/916/325 613/910/325 612/909/325 -f 551/918/317 614/908/317 613/910/317 -f 556/920/317 555/927/317 554/921/317 -f 616/923/325 554/921/325 553/924/325 -f 617/926/324 552/930/324 555/927/324 -f 615/929/313 553/924/313 552/930/313 -f 555/927/309 552/930/309 553/924/309 -f 591/932/309 588/936/309 589/933/309 -f 596/935/313 589/933/313 588/936/313 -f 594/938/324 588/936/324 591/932/324 -f 595/940/325 590/934/325 589/933/325 -f 593/942/317 591/932/317 590/934/317 -f 600/944/309 597/948/309 598/945/309 -f 604/947/313 598/945/313 597/948/313 -f 602/950/324 597/948/324 600/944/324 -f 603/952/325 599/946/325 598/945/325 -f 601/954/317 600/944/317 599/946/317 -f 592/956/317 605/963/317 606/957/317 -f 550/959/325 606/957/325 607/960/325 -f 587/962/324 608/966/324 605/963/324 -f 548/965/313 607/960/313 608/966/313 -f 605/963/309 608/966/309 607/960/309 -f 633/968/309 630/972/309 631/969/309 -f 646/971/313 631/969/313 630/972/313 -f 644/974/324 630/972/324 633/968/324 -f 645/976/325 632/970/325 631/969/325 -f 643/978/317 633/968/317 632/970/317 -f 638/980/317 639/987/317 640/981/317 -f 635/983/325 640/981/325 641/984/325 -f 637/986/324 642/990/324 639/987/324 -f 634/989/313 641/984/313 642/990/313 -f 639/987/309 642/990/309 641/984/309 -f 650/992/309 647/996/309 648/993/309 -f 654/995/313 648/993/313 647/996/313 -f 652/998/324 647/996/324 650/992/324 -f 653/1000/325 649/994/325 648/993/325 -f 651/1002/317 650/992/317 649/994/317 -f 636/1004/317 655/1011/317 656/1005/317 -f 628/1007/325 656/1005/325 657/1008/325 -f 629/1010/324 658/1014/324 655/1011/324 -f 627/1013/313 657/1008/313 658/1014/313 -f 655/1011/309 658/1014/309 657/1008/309 -f 662/1016/309 659/1020/309 660/1017/309 -f 618/1019/313 660/1017/313 659/1020/313 -f 620/1022/324 659/1020/324 662/1016/324 -f 619/1024/325 661/1018/325 660/1017/325 -f 621/1026/317 662/1016/317 661/1018/317 -f 626/1028/317 625/1035/317 624/1029/317 -f 664/1031/325 624/1029/325 623/1032/325 -f 665/1034/324 622/1038/324 625/1035/324 -f 663/1037/313 623/1032/313 622/1038/313 -f 625/1035/309 622/1038/309 623/1032/309 -f 730/1040/309 733/1044/309 732/1041/309 -f 669/1043/313 732/1041/313 733/1044/313 -f 666/1046/324 733/1044/324 730/1040/324 -f 667/1048/325 731/1042/325 732/1041/325 -f 729/1050/317 730/1040/317 731/1042/317 -f 734/1052/317 671/1059/317 672/1053/317 -f 736/1055/325 672/1053/325 673/1056/325 -f 735/1058/324 674/1062/324 671/1059/324 -f 737/1061/313 673/1056/313 674/1062/313 -f 671/1059/309 674/1062/309 673/1056/309 -f 678/1064/309 675/1068/309 676/1065/309 -f 706/1067/313 676/1065/313 675/1068/313 -f 704/1070/324 675/1068/324 678/1064/324 -f 705/1072/325 677/1066/325 676/1065/325 -f 697/1074/317 678/1064/317 677/1066/317 -f 682/1076/317 683/1083/317 684/1077/317 -f 680/1079/325 684/1077/325 685/1080/325 -f 681/1082/324 686/1086/324 683/1083/324 -f 679/1085/313 685/1080/313 686/1086/313 -f 683/1083/309 686/1086/309 685/1080/309 -f 694/1088/309 691/1092/309 692/1089/309 -f 699/1091/313 692/1089/313 691/1092/313 -f 696/1094/324 691/1092/324 694/1088/324 -f 698/1096/325 693/1090/325 692/1089/325 -f 695/1098/317 694/1088/317 693/1090/317 -f 690/1100/317 700/1107/317 701/1101/317 -f 688/1103/325 701/1101/325 702/1104/325 -f 689/1106/324 703/1110/324 700/1107/324 -f 687/1109/313 702/1104/313 703/1110/313 -f 700/1107/309 703/1110/309 702/1104/309 -f 708/1112/309 668/1116/309 670/1113/309 -f 728/1115/313 670/1113/313 668/1116/313 -f 726/1118/324 668/1116/324 708/1112/324 -f 727/1120/325 707/1114/325 670/1113/325 -f 721/1122/317 708/1112/317 707/1114/317 -f 712/1124/317 713/1131/317 714/1125/317 -f 710/1127/325 714/1125/325 715/1128/325 -f 711/1130/324 716/1134/324 713/1131/324 -f 709/1133/313 715/1128/313 716/1134/313 -f 713/1131/309 716/1134/309 715/1128/309 -f 720/1136/317 722/1143/317 723/1137/317 -f 718/1139/325 723/1137/325 724/1140/325 -f 719/1142/324 725/1146/324 722/1143/324 -f 717/1145/313 724/1140/313 725/1146/313 -f 722/1143/309 725/1146/309 724/1140/309 -f 750/1148/309 747/1152/309 748/1149/309 -f 829/1151/313 748/1149/313 747/1152/313 -f 784/1154/324 747/1152/324 750/1148/324 -f 827/1156/325 749/1150/325 748/1149/325 -f 775/1158/317 750/1148/317 749/1150/317 -f 766/1160/317 767/1191/317 768/1161/317 -f 757/1163/309 754/1167/309 755/1164/309 -f 833/1166/323 755/1164/323 754/1167/323 -f 799/1169/324 754/1167/324 757/1163/324 -f 832/1171/325 756/1165/325 755/1164/325 -f 794/1173/317 757/1163/317 756/1165/317 -f 761/1175/317 762/1182/317 763/1176/317 -f 759/1178/325 763/1176/325 764/1179/325 -f 760/1181/324 765/1185/324 762/1182/324 -f 758/1184/323 764/1179/323 765/1185/323 -f 762/1182/309 765/1185/309 764/1179/309 -f 752/1187/325 768/1161/325 769/1188/325 -f 753/1190/324 770/1194/324 767/1191/324 -f 751/1193/313 769/1188/313 770/1194/313 -f 767/1191/309 770/1194/309 769/1188/309 -f 774/1196/317 780/1203/317 781/1197/317 -f 772/1199/325 781/1197/325 782/1200/325 -f 773/1202/324 783/1206/324 780/1203/324 -f 771/1205/313 782/1200/313 783/1206/313 -f 780/1203/309 783/1206/309 782/1200/309 -f 822/1208/309 825/1212/309 824/1209/309 -f 740/1211/313 824/1209/313 825/1212/313 -f 738/1214/324 825/1212/324 822/1208/324 -f 739/1216/325 823/1210/325 824/1209/325 -f 821/1218/317 822/1208/317 823/1210/317 -f 826/1220/317 741/1239/317 742/1221/317 -f 779/1223/317 795/1230/317 796/1224/317 -f 777/1226/325 796/1224/325 797/1227/325 -f 778/1229/324 798/1233/324 795/1230/324 -f 776/1232/323 797/1227/323 798/1233/323 -f 795/1230/309 798/1233/309 797/1227/309 -f 830/1235/325 742/1221/325 743/1236/325 -f 828/1238/324 744/1242/324 741/1239/324 -f 831/1241/313 743/1236/313 744/1242/313 -f 741/1239/309 744/1242/309 743/1236/309 -f 786/1244/309 745/1248/309 746/1245/309 -f 820/1247/313 746/1245/313 745/1248/313 -f 818/1250/324 745/1248/324 786/1244/324 -f 819/1252/325 785/1246/325 746/1245/325 -f 811/1254/317 786/1244/317 785/1246/317 -f 790/1256/317 791/1263/317 792/1257/317 -f 788/1259/325 792/1257/325 793/1260/325 -f 789/1262/324 800/1266/324 791/1263/324 -f 787/1265/313 793/1260/313 800/1266/313 -f 791/1263/309 800/1266/309 793/1260/309 -f 808/1268/309 805/1272/309 806/1269/309 -f 813/1271/313 806/1269/313 805/1272/313 -f 810/1274/324 805/1272/324 808/1268/324 -f 812/1276/325 807/1270/325 806/1269/325 -f 809/1278/317 808/1268/317 807/1270/317 -f 804/1280/317 814/1287/317 815/1281/317 -f 802/1283/325 815/1281/325 816/1284/325 -f 803/1286/324 817/1290/324 814/1287/324 -f 801/1289/313 816/1284/313 817/1290/313 -f 814/1287/309 817/1290/309 816/1284/309 -f 894/1292/309 891/1296/309 892/1293/309 -f 834/1295/313 892/1293/313 891/1296/313 -f 837/1298/324 891/1296/324 894/1292/324 -f 835/1300/325 893/1294/325 892/1293/325 -f 839/1302/317 894/1292/317 893/1294/317 -f 890/1304/317 889/1311/317 842/1305/317 -f 896/1307/325 842/1305/325 841/1308/325 -f 897/1310/324 840/1314/324 889/1311/324 -f 895/1313/313 841/1308/313 840/1314/313 -f 889/1311/309 840/1314/309 841/1308/309 -f 846/1316/309 843/1320/309 844/1317/309 -f 866/1319/313 844/1317/313 843/1320/313 -f 864/1322/324 843/1320/324 846/1316/324 -f 865/1324/325 845/1318/325 844/1317/325 -f 859/1326/317 846/1316/317 845/1318/317 -f 850/1328/317 851/1335/317 852/1329/317 -f 848/1331/325 852/1329/325 853/1332/325 -f 849/1334/324 854/1338/324 851/1335/324 -f 847/1337/313 853/1332/313 854/1338/313 -f 851/1335/309 854/1338/309 853/1332/309 -f 858/1340/317 860/1347/317 861/1341/317 -f 856/1343/325 861/1341/325 862/1344/325 -f 857/1346/324 863/1350/324 860/1347/324 -f 855/1349/313 862/1344/313 863/1350/313 -f 860/1347/309 863/1350/309 862/1344/309 -f 871/1352/309 868/1356/309 869/1353/309 -f 876/1355/323 869/1353/323 868/1356/323 -f 874/1358/324 868/1356/324 871/1352/324 -f 875/1360/325 870/1354/325 869/1353/325 -f 873/1362/317 871/1352/317 870/1354/317 -f 880/1364/309 877/1368/309 878/1365/309 -f 884/1367/323 878/1365/323 877/1368/323 -f 882/1370/324 877/1368/324 880/1364/324 -f 883/1372/325 879/1366/325 878/1365/325 -f 881/1374/317 880/1364/317 879/1366/317 -f 872/1376/317 885/1383/317 886/1377/317 -f 838/1379/325 886/1377/325 887/1380/325 -f 867/1382/324 888/1386/324 885/1383/324 -f 836/1385/323 887/1380/323 888/1386/323 -f 885/1383/309 888/1386/309 887/1380/309 -f 910/1388/309 907/1392/309 908/1389/309 -f 959/1391/313 908/1389/313 907/1392/313 -f 928/1394/324 907/1392/324 910/1388/324 -f 957/1396/325 909/1390/325 908/1389/325 -f 923/1398/317 910/1388/317 909/1390/317 -f 914/1400/317 915/1407/317 916/1401/317 -f 912/1403/325 916/1401/325 917/1404/325 -f 913/1406/324 918/1410/324 915/1407/324 -f 911/1409/313 917/1404/313 918/1410/313 -f 915/1407/309 918/1410/309 917/1404/309 -f 922/1412/317 924/1419/317 925/1413/317 -f 920/1415/325 925/1413/325 926/1416/325 -f 921/1418/324 927/1422/324 924/1419/324 -f 919/1421/313 926/1416/313 927/1422/313 -f 924/1419/309 927/1422/309 926/1416/309 -f 935/1424/309 932/1428/309 933/1425/309 -f 940/1427/313 933/1425/313 932/1428/313 -f 938/1430/324 932/1428/324 935/1424/324 -f 939/1432/325 934/1426/325 933/1425/325 -f 937/1434/317 935/1424/317 934/1426/317 -f 944/1436/309 941/1440/309 942/1437/309 -f 948/1439/313 942/1437/313 941/1440/313 -f 946/1442/324 941/1440/324 944/1436/324 -f 947/1444/325 943/1438/325 942/1437/325 -f 945/1446/317 944/1436/317 943/1438/317 -f 936/1448/317 949/1455/317 950/1449/317 -f 930/1451/325 950/1449/325 951/1452/325 -f 931/1454/324 952/1458/324 949/1455/324 -f 929/1457/313 951/1452/313 952/1458/313 -f 949/1455/309 952/1458/309 951/1452/309 -f 906/1460/309 955/1464/309 954/1461/309 -f 900/1463/323 954/1461/323 955/1464/323 -f 898/1466/324 955/1464/324 906/1460/324 -f 899/1468/325 953/1462/325 954/1461/325 -f 905/1470/317 906/1460/317 953/1462/317 -f 956/1472/317 901/1479/317 902/1473/317 -f 960/1475/325 902/1473/325 903/1476/325 -f 958/1478/324 904/1482/324 901/1479/324 -f 961/1481/323 903/1476/323 904/1482/323 -f 901/1479/309 904/1482/309 903/1476/309 -f 998/1484/309 995/1488/309 996/1485/309 -f 962/1487/313 996/1485/313 995/1488/313 -f 965/1490/324 995/1488/324 998/1484/324 -f 963/1492/325 997/1486/325 996/1485/325 -f 967/1494/317 998/1484/317 997/1486/317 -f 994/1496/317 993/1503/317 970/1497/317 -f 1000/1499/325 970/1497/325 969/1500/325 -f 1001/1502/324 968/1506/324 993/1503/324 -f 999/1505/313 969/1500/313 968/1506/313 -f 993/1503/309 968/1506/309 969/1500/309 -f 975/1508/309 972/1512/309 973/1509/309 -f 980/1511/323 973/1509/323 972/1512/323 -f 978/1514/324 972/1512/324 975/1508/324 -f 979/1516/325 974/1510/325 973/1509/325 -f 977/1518/317 975/1508/317 974/1510/317 -f 984/1520/309 981/1524/309 982/1521/309 -f 988/1523/323 982/1521/323 981/1524/323 -f 986/1526/324 981/1524/324 984/1520/324 -f 987/1528/325 983/1522/325 982/1521/325 -f 985/1530/317 984/1520/317 983/1522/317 -f 976/1532/317 989/1539/317 990/1533/317 -f 966/1535/325 990/1533/325 991/1536/325 -f 971/1538/324 992/1542/324 989/1539/324 -f 964/1541/323 991/1536/323 992/1542/323 -f 989/1539/309 992/1542/309 991/1536/309 -f 1014/1544/309 1011/1548/309 1012/1545/309 -f 1071/1547/313 1012/1545/313 1011/1548/313 -f 1032/1550/324 1011/1548/324 1014/1544/324 -f 1069/1552/325 1013/1546/325 1012/1545/325 -f 1027/1554/317 1014/1544/317 1013/1546/317 -f 1018/1556/317 1019/1563/317 1020/1557/317 -f 1016/1559/325 1020/1557/325 1021/1560/325 -f 1017/1562/324 1022/1566/324 1019/1563/324 -f 1015/1565/313 1021/1560/313 1022/1566/313 -f 1019/1563/309 1022/1566/309 1021/1560/309 -f 1026/1568/317 1028/1575/317 1029/1569/317 -f 1024/1571/325 1029/1569/325 1030/1572/325 -f 1025/1574/324 1031/1578/324 1028/1575/324 -f 1023/1577/313 1030/1572/313 1031/1578/313 -f 1028/1575/309 1031/1578/309 1030/1572/309 -f 1064/1580/309 1067/1584/309 1066/1581/309 -f 1004/1583/323 1066/1581/323 1067/1584/323 -f 1002/1586/324 1067/1584/324 1064/1580/324 -f 1003/1588/325 1065/1582/325 1066/1581/325 -f 1063/1590/317 1064/1580/317 1065/1582/317 -f 1068/1592/317 1005/1599/317 1006/1593/317 -f 1072/1595/325 1006/1593/325 1007/1596/325 -f 1070/1598/324 1008/1602/324 1005/1599/324 -f 1073/1601/323 1007/1596/323 1008/1602/323 -f 1005/1599/309 1008/1602/309 1007/1596/309 -f 1034/1604/309 1009/1608/309 1010/1605/309 -f 1062/1607/323 1010/1605/323 1009/1608/323 -f 1060/1610/324 1009/1608/324 1034/1604/324 -f 1061/1612/325 1033/1606/325 1010/1605/325 -f 1053/1614/317 1034/1604/317 1033/1606/317 -f 1038/1616/317 1039/1623/317 1040/1617/317 -f 1036/1619/325 1040/1617/325 1041/1620/325 -f 1037/1622/324 1042/1626/324 1039/1623/324 -f 1035/1625/323 1041/1620/323 1042/1626/323 -f 1039/1623/309 1042/1626/309 1041/1620/309 -f 1050/1628/309 1047/1632/309 1048/1629/309 -f 1055/1631/323 1048/1629/323 1047/1632/323 -f 1052/1634/324 1047/1632/324 1050/1628/324 -f 1054/1636/325 1049/1630/325 1048/1629/325 -f 1051/1638/317 1050/1628/317 1049/1630/317 -f 1046/1640/317 1056/1647/317 1057/1641/317 -f 1044/1643/325 1057/1641/325 1058/1644/325 -f 1045/1646/324 1059/1650/324 1056/1647/324 -f 1043/1649/323 1058/1644/323 1059/1650/323 -f 1056/1647/309 1059/1650/309 1058/1644/309 -f 1101/1652/307 1113/1662/307 1112/1653/307 -f 1108/1655/307 1120/1664/307 1119/1656/307 -f 1104/1658/307 1105/1669/307 1117/1659/307 -f 1102/1661/307 1114/1671/307 1113/1662/307 -f 1109/1663/307 1121/1672/307 1120/1664/307 -f 1099/1665/307 1111/1673/307 1110/1666/307 -f 1106/1668/307 1118/1675/307 1117/1659/307 -f 1102/1661/307 1103/1676/307 1115/1670/307 -f 1098/1667/307 1110/1666/307 1121/1672/307 -f 1100/1654/307 1112/1653/307 1111/1673/307 -f 1106/1668/307 1107/1983/307 1119/1674/307 -f 1104/1658/307 1116/1660/307 1115/1670/307 -f 1137/1677/307 1149/1687/307 1148/1678/307 -f 1144/1680/307 1156/1689/307 1155/1681/307 -f 1140/1683/307 1141/1694/307 1153/1684/307 -f 1138/1686/307 1150/1696/307 1149/1687/307 -f 1145/1688/307 1157/1697/307 1156/1689/307 -f 1135/1690/307 1147/1698/307 1146/1691/307 -f 1142/1693/307 1154/1700/307 1153/1684/307 -f 1138/1686/307 1139/1701/307 1151/1695/307 -f 1134/1692/307 1146/1691/307 1157/1697/307 -f 1136/1679/307 1148/1678/307 1147/1698/307 -f 1142/1693/307 1143/1984/307 1155/1699/307 -f 1140/1683/307 1152/1685/307 1151/1695/307 -f 1182/1702/318 1180/1985/318 1181/1703/318 -f 1184/1705/326 1183/1707/326 1181/1703/326 -f 1183/1707/320 1184/1986/320 1178/1708/320 -f 1185/1709/321 1178/1987/321 1182/1710/321 -f 1181/1703/307 1183/1707/307 1185/1709/307 -f 1172/1711/317 1173/1719/317 1170/1712/317 -f 1177/1714/323 1174/1988/323 1175/1715/323 -f 1177/1717/314 1176/1716/314 1172/1711/314 -f 1173/1719/309 1172/1711/309 1176/1716/309 -f 1173/1719/315 1175/1715/315 1174/1720/315 -f 1212/1722/316 1213/1730/316 1210/1723/316 -f 1217/1725/313 1214/1989/313 1215/1726/313 -f 1217/1728/314 1216/1727/314 1212/1722/314 -f 1213/1730/309 1212/1722/309 1216/1727/309 -f 1213/1730/315 1215/1726/315 1214/1731/315 -f 1220/1733/316 1221/1741/316 1218/1734/316 -f 1225/1736/313 1222/1990/313 1223/1737/313 -f 1225/1739/314 1224/1738/314 1220/1733/314 -f 1221/1741/309 1220/1733/309 1224/1738/309 -f 1221/1741/315 1223/1737/315 1222/1742/315 -f 1228/1744/317 1229/1752/317 1226/1745/317 -f 1233/1747/323 1230/1991/323 1231/1748/323 -f 1233/1750/314 1232/1749/314 1228/1744/314 -f 1229/1752/309 1228/1744/309 1232/1749/309 -f 1229/1752/315 1231/1748/315 1230/1753/315 -f 1249/1757/309 1246/1992/309 1245/1993/309 -f 1246/1992/309 1247/1994/309 1245/1993/309 -f 1247/1994/309 1244/1995/309 1245/1993/309 -f 1245/1993/309 1242/1996/309 1249/1757/309 -f 1242/1996/309 1243/1755/309 1249/1757/309 -f 1251/1758/309 1253/1997/309 1252/1759/309 -f 1255/1761/309 1257/1998/309 1256/1762/309 -f 1262/1764/318 1260/1999/318 1261/1765/318 -f 1264/1767/326 1263/1769/326 1261/1765/326 -f 1263/1769/320 1264/2000/320 1258/1770/320 -f 1265/1771/321 1258/2001/321 1262/1772/321 -f 1261/1765/307 1263/1769/307 1265/1771/307 -f 1294/1773/318 1292/2002/318 1293/1774/318 -f 1296/1776/326 1295/1778/326 1293/1774/326 -f 1295/1778/320 1296/2003/320 1290/1779/320 -f 1297/1780/321 1290/2004/321 1294/1781/321 -f 1293/1774/307 1295/1778/307 1297/1780/307 -f 1326/1782/318 1324/2005/318 1325/1783/318 -f 1328/1785/326 1327/1787/326 1325/1783/326 -f 1327/1787/320 1328/2006/320 1322/1788/320 -f 1329/1789/321 1322/2007/321 1326/1790/321 -f 1325/1783/307 1327/1787/307 1329/1789/307 -f 1358/1791/318 1356/2008/318 1357/1792/318 -f 1360/1794/326 1359/1796/326 1357/1792/326 -f 1359/1796/320 1360/2009/320 1354/1797/320 -f 1361/1798/321 1354/2010/321 1358/1799/321 -f 1357/1792/307 1359/1796/307 1361/1798/307 -f 1390/1800/318 1388/2011/318 1389/1801/318 -f 1392/1803/326 1391/1805/326 1389/1801/326 -f 1391/1805/320 1392/2012/320 1386/1806/320 -f 1393/1807/321 1386/2013/321 1390/1808/321 -f 1389/1801/307 1391/1805/307 1393/1807/307 -f 1422/1809/318 1420/2014/318 1421/1810/318 -f 1424/1812/326 1423/1814/326 1421/1810/326 -f 1423/1814/320 1424/2015/320 1418/1815/320 -f 1425/1816/321 1418/2016/321 1422/1817/321 -f 1421/1810/307 1423/1814/307 1425/1816/307 -f 1454/1818/318 1452/2017/318 1453/1819/318 -f 1456/1821/326 1455/1823/326 1453/1819/326 -f 1455/1823/320 1456/2018/320 1450/1824/320 -f 1457/1825/321 1450/2019/321 1454/1826/321 -f 1453/1819/307 1455/1823/307 1457/1825/307 -f 1486/1827/318 1484/2020/318 1485/1828/318 -f 1488/1830/326 1487/1832/326 1485/1828/326 -f 1487/1832/320 1488/2021/320 1482/1833/320 -f 1489/1834/321 1482/2022/321 1486/1835/321 -f 1485/1828/307 1487/1832/307 1489/1834/307 -f 1554/1836/309 1557/1840/309 1556/1837/309 -f 1516/1839/323 1556/1837/323 1557/1840/323 -f 1514/1842/324 1557/1840/324 1554/1836/324 -f 1515/1844/325 1555/1838/325 1556/1837/325 -f 1553/1846/317 1554/1836/317 1555/1838/317 -f 1558/1848/317 1517/1855/317 1518/1849/317 -f 1560/1851/325 1518/1849/325 1519/1852/325 -f 1559/1854/324 1520/1858/324 1517/1855/324 -f 1561/1857/323 1519/1852/323 1520/1858/323 -f 1517/1855/309 1520/1858/309 1519/1852/309 -f 1524/1860/309 1521/1864/309 1522/1861/309 -f 1552/1863/323 1522/1861/323 1521/1864/323 -f 1550/1866/324 1521/1864/324 1524/1860/324 -f 1551/1868/325 1523/1862/325 1522/1861/325 -f 1543/1870/317 1524/1860/317 1523/1862/317 -f 1528/1872/317 1529/1879/317 1530/1873/317 -f 1526/1875/325 1530/1873/325 1531/1876/325 -f 1527/1878/324 1532/1882/324 1529/1879/324 -f 1525/1881/323 1531/1876/323 1532/1882/323 -f 1529/1879/309 1532/1882/309 1531/1876/309 -f 1540/1884/309 1537/1888/309 1538/1885/309 -f 1545/1887/323 1538/1885/323 1537/1888/323 -f 1542/1890/324 1537/1888/324 1540/1884/324 -f 1544/1892/325 1539/1886/325 1538/1885/325 -f 1541/1894/317 1540/1884/317 1539/1886/317 -f 1536/1896/317 1546/1903/317 1547/1897/317 -f 1534/1899/325 1547/1897/325 1548/1900/325 -f 1535/1902/324 1549/1906/324 1546/1903/324 -f 1533/1905/323 1548/1900/323 1549/1906/323 -f 1546/1903/309 1549/1906/309 1548/1900/309 -f 1602/1908/309 1605/1912/309 1604/1909/309 -f 1564/1911/323 1604/1909/323 1605/1912/323 -f 1562/1914/324 1605/1912/324 1602/1908/324 -f 1563/1916/325 1603/1910/325 1604/1909/325 -f 1601/1918/317 1602/1908/317 1603/1910/317 -f 1606/1920/317 1565/1927/317 1566/1921/317 -f 1608/1923/325 1566/1921/325 1567/1924/325 -f 1607/1926/324 1568/1930/324 1565/1927/324 -f 1609/1929/323 1567/1924/323 1568/1930/323 -f 1565/1927/309 1568/1930/309 1567/1924/309 -f 1572/1932/309 1569/1936/309 1570/1933/309 -f 1600/1935/323 1570/1933/323 1569/1936/323 -f 1598/1938/324 1569/1936/324 1572/1932/324 -f 1599/1940/325 1571/1934/325 1570/1933/325 -f 1591/1942/317 1572/1932/317 1571/1934/317 -f 1576/1944/317 1577/1951/317 1578/1945/317 -f 1574/1947/325 1578/1945/325 1579/1948/325 -f 1575/1950/324 1580/1954/324 1577/1951/324 -f 1573/1953/323 1579/1948/323 1580/1954/323 -f 1577/1951/309 1580/1954/309 1579/1948/309 -f 1588/1956/309 1585/1960/309 1586/1957/309 -f 1593/1959/323 1586/1957/323 1585/1960/323 -f 1590/1962/324 1585/1960/324 1588/1956/324 -f 1592/1964/325 1587/1958/325 1586/1957/325 -f 1589/1966/317 1588/1956/317 1587/1958/317 -f 1584/1968/317 1594/1975/317 1595/1969/317 -f 1582/1971/325 1595/1969/325 1596/1972/325 -f 1583/1974/324 1597/1978/324 1594/1975/324 -f 1581/1977/323 1596/1972/323 1597/1978/323 -f 1594/1975/309 1597/1978/309 1596/1972/309 +f 1857/2135/1185 1858/2136/1185 1856/2137/1185 +f 1857/2135/1186 1861/2138/1186 1859/2139/1186 +f 1860/2140/1187 1863/2141/1187 1861/2142/1187 +f 1862/2143/1186 1865/2144/1186 1863/2141/1186 +f 1864/2145/1188 1867/2146/1188 1865/2144/1188 +f 1866/2147/1186 1869/2148/1186 1867/2149/1186 +f 1868/2150/1188 1871/2151/1188 1869/2148/1188 +f 1871/2151/1189 1856/2152/1189 1858/2153/1189 +f 1863/2154/1190 1867/2146/1190 1861/2155/1190 +f 1866/2156/1191 1862/2157/1191 1860/2158/1191 +f 1870/2159/1191 1866/2147/1191 1860/2160/1191 +f 1861/2138/1190 1867/2149/1190 1871/2161/1190 +f 1887/2162/1188 1885/2163/1188 1886/2164/1188 +f 1900/2165/1192 1884/2166/1192 1898/2167/1192 +f 1898/2168/1193 1887/2162/1193 1897/2169/1193 +f 1899/2170/1194 1885/2163/1194 1900/2171/1194 +f 1897/2172/1195 1886/2164/1195 1899/2173/1195 +f 1892/2174/1195 1894/2175/1195 1889/2176/1195 +f 1889/2177/1194 1895/2178/1194 1888/2179/1194 +f 1891/2180/1193 1893/2181/1193 1892/2182/1193 +f 1888/2183/1192 1896/2184/1192 1891/2185/1192 +f 1893/2181/1188 1895/2178/1188 1894/2175/1188 +f 1904/2186/1188 1902/2187/1188 1903/2188/1188 +f 1908/2189/1192 1901/2190/1192 1906/2191/1192 +f 1906/2192/1193 1904/2186/1193 1905/2193/1193 +f 1907/2194/1194 1902/2187/1194 1908/2195/1194 +f 1905/2196/1195 1903/2188/1195 1907/2197/1195 +f 1890/2198/1195 1910/2199/1195 1882/2200/1195 +f 1882/2201/1194 1911/2202/1194 1881/2203/1194 +f 1883/2204/1193 1909/2205/1193 1890/2206/1193 +f 1881/2207/1192 1912/2208/1192 1883/2209/1192 +f 1909/2205/1188 1911/2202/1188 1910/2199/1188 +f 1916/2210/1188 1914/2211/1188 1915/2212/1188 +f 1872/2213/1192 1913/2214/1192 1874/2215/1192 +f 1874/2216/1193 1916/2210/1193 1875/2217/1193 +f 1873/2218/1194 1914/2211/1194 1872/2219/1194 +f 1875/2220/1195 1915/2212/1195 1873/2221/1195 +f 1880/2222/1195 1878/2223/1195 1918/2224/1195 +f 1918/2225/1194 1877/2226/1194 1917/2227/1194 +f 1919/2228/1193 1879/2229/1193 1880/2230/1193 +f 1917/2231/1192 1876/2232/1192 1919/2233/1192 +f 1879/2229/1188 1877/2226/1188 1878/2223/1188 +f 1937/2234/1188 1935/2235/1188 1936/2236/1188 +f 1950/2237/1192 1934/2238/1192 1948/2239/1192 +f 1948/2240/1193 1937/2234/1193 1947/2241/1193 +f 1949/2242/1194 1935/2235/1194 1950/2243/1194 +f 1947/2244/1195 1936/2236/1195 1949/2245/1195 +f 1942/2246/1195 1944/2247/1195 1939/2248/1195 +f 1939/2249/1194 1945/2250/1194 1938/2251/1194 +f 1941/2252/1193 1943/2253/1193 1942/2254/1193 +f 1938/2255/1192 1946/2256/1192 1941/2257/1192 +f 1943/2253/1188 1945/2250/1188 1944/2247/1188 +f 1954/2258/1188 1952/2259/1188 1953/2260/1188 +f 1958/2261/1192 1951/2262/1192 1956/2263/1192 +f 1956/2264/1193 1954/2258/1193 1955/2265/1193 +f 1957/2266/1194 1952/2259/1194 1958/2267/1194 +f 1955/2268/1195 1953/2260/1195 1957/2269/1195 +f 1940/2270/1195 1960/2271/1195 1932/2272/1195 +f 1932/2273/1194 1983/2274/1194 1931/2275/1194 +f 1933/2276/1193 1959/2277/1193 1940/2278/1193 +f 1931/2279/1192 1984/2280/1192 1933/2281/1192 +f 1959/2277/1188 1983/2274/1188 1960/2271/1188 +f 1988/2282/1188 1986/2283/1188 1987/2284/1188 +f 1920/2285/1192 1985/2286/1192 1923/2287/1192 +f 1923/2288/1193 1988/2282/1193 1925/2289/1193 +f 1921/2290/1194 1986/2283/1194 1920/2291/1194 +f 1925/2292/1195 1987/2284/1195 1921/2293/1195 +f 1930/2294/1195 1928/2295/1195 1990/2296/1195 +f 1990/2297/1194 1927/2298/1194 1989/2299/1194 +f 1991/2300/1193 1929/2301/1193 1930/2302/1193 +f 1989/2303/1192 1926/2304/1192 1991/2305/1192 +f 1929/2301/1188 1927/2298/1188 1928/2295/1188 +f 1965/2306/1188 1963/2307/1188 1964/2308/1188 +f 1970/2309/1192 1962/2310/1192 1968/2311/1192 +f 1968/2312/1193 1965/2306/1193 1967/2313/1193 +f 1969/2314/1194 1963/2307/1194 1970/2315/1194 +f 1967/2316/1195 1964/2308/1195 1969/2317/1195 +f 1974/2318/1188 1972/2319/1188 1973/2320/1188 +f 1978/2321/1192 1971/2322/1192 1976/2323/1192 +f 1976/2324/1193 1974/2318/1193 1975/2325/1193 +f 1977/2326/1194 1972/2319/1194 1978/2327/1194 +f 1975/2328/1195 1973/2320/1195 1977/2329/1195 +f 1966/2330/1195 1980/2331/1195 1924/2332/1195 +f 1924/2333/1194 1981/2334/1194 1922/2335/1194 +f 1961/2336/1193 1979/2337/1193 1966/2338/1193 +f 1922/2339/1192 1982/2340/1192 1961/2341/1192 +f 1979/2337/1188 1981/2334/1188 1980/2331/1188 +f 2007/2342/1188 2005/2343/1188 2006/2344/1188 +f 2020/2345/1192 2004/2346/1192 2018/2347/1192 +f 2018/2348/1193 2007/2342/1193 2017/2349/1193 +f 2019/2350/1194 2005/2343/1194 2020/2351/1194 +f 2017/2352/1195 2006/2344/1195 2019/2353/1195 +f 2012/2354/1195 2014/2355/1195 2009/2356/1195 +f 2009/2357/1194 2015/2358/1194 2008/2359/1194 +f 2011/2360/1193 2013/2361/1193 2012/2362/1193 +f 2008/2363/1192 2016/2364/1192 2011/2365/1192 +f 2013/2361/1188 2015/2358/1188 2014/2355/1188 +f 2024/2366/1188 2022/2367/1188 2023/2368/1188 +f 2028/2369/1192 2021/2370/1192 2026/2371/1192 +f 2026/2372/1193 2024/2366/1193 2025/2373/1193 +f 2027/2374/1194 2022/2367/1194 2028/2375/1194 +f 2025/2376/1195 2023/2368/1195 2027/2377/1195 +f 2010/2378/1195 2030/2379/1195 2002/2380/1195 +f 2002/2381/1194 2031/2382/1194 2001/2383/1194 +f 2003/2384/1193 2029/2385/1193 2010/2386/1193 +f 2001/2387/1192 2032/2388/1192 2003/2389/1192 +f 2029/2385/1188 2031/2382/1188 2030/2379/1188 +f 2036/2390/1188 2034/2391/1188 2035/2392/1188 +f 1992/2393/1192 2033/2394/1192 1994/2395/1192 +f 1994/2396/1193 2036/2390/1193 1995/2397/1193 +f 1993/2398/1194 2034/2391/1194 1992/2399/1194 +f 1995/2400/1195 2035/2392/1195 1993/2401/1195 +f 2000/2402/1195 1998/2403/1195 2038/2404/1195 +f 2038/2405/1194 1997/2406/1194 2037/2407/1194 +f 2039/2408/1193 1999/2409/1193 2000/2410/1193 +f 2037/2411/1192 1996/2412/1192 2039/2413/1192 +f 1999/2409/1188 1997/2406/1188 1998/2403/1188 +f 2104/2414/1188 2106/2415/1188 2105/2416/1188 +f 2043/2417/1192 2107/2418/1192 2040/2419/1192 +f 2040/2420/1193 2104/2414/1193 2103/2421/1193 +f 2041/2422/1194 2106/2415/1194 2043/2423/1194 +f 2103/2424/1195 2105/2416/1195 2041/2425/1195 +f 2108/2426/1195 2046/2427/1195 2110/2428/1195 +f 2110/2429/1194 2047/2430/1194 2111/2431/1194 +f 2109/2432/1193 2045/2433/1193 2108/2434/1193 +f 2111/2435/1192 2048/2436/1192 2109/2437/1192 +f 2045/2433/1188 2047/2430/1188 2046/2427/1188 +f 2052/2438/1188 2050/2439/1188 2051/2440/1188 +f 2080/2441/1192 2049/2442/1192 2078/2443/1192 +f 2078/2444/1193 2052/2438/1193 2071/2445/1193 +f 2079/2446/1194 2050/2439/1194 2080/2447/1194 +f 2071/2448/1195 2051/2440/1195 2079/2449/1195 +f 2056/2450/1195 2058/2451/1195 2054/2452/1195 +f 2054/2453/1194 2059/2454/1194 2053/2455/1194 +f 2055/2456/1193 2057/2457/1193 2056/2458/1193 +f 2053/2459/1192 2060/2460/1192 2055/2461/1192 +f 2057/2457/1188 2059/2454/1188 2058/2451/1188 +f 2068/2462/1188 2066/2463/1188 2067/2464/1188 +f 2073/2465/1192 2065/2466/1192 2070/2467/1192 +f 2070/2468/1193 2068/2462/1193 2069/2469/1193 +f 2072/2470/1194 2066/2463/1194 2073/2471/1194 +f 2069/2472/1195 2067/2464/1195 2072/2473/1195 +f 2064/2474/1195 2075/2475/1195 2062/2476/1195 +f 2062/2477/1194 2076/2478/1194 2061/2479/1194 +f 2063/2480/1193 2074/2481/1193 2064/2482/1193 +f 2061/2483/1192 2077/2484/1192 2063/2485/1192 +f 2074/2481/1188 2076/2478/1188 2075/2475/1188 +f 2082/2486/1188 2044/2487/1188 2081/2488/1188 +f 2102/2489/1192 2042/2490/1192 2100/2491/1192 +f 2100/2492/1193 2082/2486/1193 2095/2493/1193 +f 2101/2494/1194 2044/2487/1194 2102/2495/1194 +f 2095/2496/1195 2081/2488/1195 2101/2497/1195 +f 2086/2498/1195 2088/2499/1195 2084/2500/1195 +f 2084/2501/1194 2089/2502/1194 2083/2503/1194 +f 2085/2504/1193 2087/2505/1193 2086/2506/1193 +f 2083/2507/1192 2090/2508/1192 2085/2509/1192 +f 2087/2505/1188 2089/2502/1188 2088/2499/1188 +f 2094/2510/1195 2097/2511/1195 2092/2512/1195 +f 2092/2513/1194 2098/2514/1194 2091/2515/1194 +f 2093/2516/1193 2096/2517/1193 2094/2518/1193 +f 2091/2519/1192 2099/2520/1192 2093/2521/1192 +f 2096/2517/1188 2098/2514/1188 2097/2511/1188 +f 2124/2522/1188 2122/2523/1188 2123/2524/1188 +f 2203/2525/1192 2121/2526/1192 2158/2527/1192 +f 2158/2528/1193 2124/2522/1193 2149/2529/1193 +f 2201/2530/1194 2122/2523/1194 2203/2531/1194 +f 2149/2532/1195 2123/2524/1195 2201/2533/1195 +f 2140/2534/1195 2142/2535/1195 2126/2536/1195 +f 2131/2537/1188 2129/2538/1188 2130/2539/1188 +f 2207/2540/1192 2128/2541/1192 2173/2542/1192 +f 2173/2543/1193 2131/2537/1193 2168/2544/1193 +f 2206/2545/1194 2129/2538/1194 2207/2546/1194 +f 2168/2547/1195 2130/2539/1195 2206/2548/1195 +f 2135/2549/1195 2137/2550/1195 2133/2551/1195 +f 2133/2552/1194 2138/2553/1194 2132/2554/1194 +f 2134/2555/1193 2136/2556/1193 2135/2557/1193 +f 2132/2558/1192 2139/2559/1192 2134/2560/1192 +f 2136/2556/1188 2138/2553/1188 2137/2550/1188 +f 2126/2561/1194 2143/2562/1194 2125/2563/1194 +f 2127/2564/1193 2141/2565/1193 2140/2566/1193 +f 2125/2567/1192 2144/2568/1192 2127/2569/1192 +f 2141/2565/1188 2143/2562/1188 2142/2535/1188 +f 2148/2570/1195 2155/2571/1195 2146/2572/1195 +f 2146/2573/1194 2156/2574/1194 2145/2575/1194 +f 2147/2576/1193 2154/2577/1193 2148/2578/1193 +f 2145/2579/1192 2157/2580/1192 2147/2581/1192 +f 2154/2577/1188 2156/2574/1188 2155/2571/1188 +f 2196/2582/1188 2198/2583/1188 2197/2584/1188 +f 2114/2585/1192 2199/2586/1192 2112/2587/1192 +f 2112/2588/1193 2196/2582/1193 2195/2589/1193 +f 2113/2590/1194 2198/2583/1194 2114/2591/1194 +f 2195/2592/1195 2197/2584/1195 2113/2593/1195 +f 2200/2594/1195 2116/2595/1195 2204/2596/1195 +f 2153/2597/1195 2170/2598/1195 2151/2599/1195 +f 2151/2600/1194 2171/2601/1194 2150/2602/1194 +f 2152/2603/1193 2169/2604/1193 2153/2605/1193 +f 2150/2606/1192 2172/2607/1192 2152/2608/1192 +f 2169/2604/1188 2171/2601/1188 2170/2598/1188 +f 2204/2609/1194 2117/2610/1194 2205/2611/1194 +f 2202/2612/1193 2115/2613/1193 2200/2614/1193 +f 2205/2615/1192 2118/2616/1192 2202/2617/1192 +f 2115/2613/1188 2117/2610/1188 2116/2595/1188 +f 2160/2618/1188 2120/2619/1188 2159/2620/1188 +f 2194/2621/1192 2119/2622/1192 2192/2623/1192 +f 2192/2624/1193 2160/2618/1193 2185/2625/1193 +f 2193/2626/1194 2120/2619/1194 2194/2627/1194 +f 2185/2628/1195 2159/2620/1195 2193/2629/1195 +f 2164/2630/1195 2166/2631/1195 2162/2632/1195 +f 2162/2633/1194 2167/2634/1194 2161/2635/1194 +f 2163/2636/1193 2165/2637/1193 2164/2638/1193 +f 2161/2639/1192 2174/2640/1192 2163/2641/1192 +f 2165/2637/1188 2167/2634/1188 2166/2631/1188 +f 2182/2642/1188 2180/2643/1188 2181/2644/1188 +f 2187/2645/1192 2179/2646/1192 2184/2647/1192 +f 2184/2648/1193 2182/2642/1193 2183/2649/1193 +f 2186/2650/1194 2180/2643/1194 2187/2651/1194 +f 2183/2652/1195 2181/2644/1195 2186/2653/1195 +f 2178/2654/1195 2189/2655/1195 2176/2656/1195 +f 2176/2657/1194 2190/2658/1194 2175/2659/1194 +f 2177/2660/1193 2188/2661/1193 2178/2662/1193 +f 2175/2663/1192 2191/2664/1192 2177/2665/1192 +f 2188/2661/1188 2190/2658/1188 2189/2655/1188 +f 2268/2666/1188 2266/2667/1188 2267/2668/1188 +f 2208/2669/1192 2265/2670/1192 2211/2671/1192 +f 2211/2672/1193 2268/2666/1193 2213/2673/1193 +f 2209/2674/1194 2266/2667/1194 2208/2675/1194 +f 2213/2676/1196 2267/2668/1196 2209/2677/1196 +f 2264/2678/1196 2216/2679/1196 2270/2680/1196 +f 2270/2681/1194 2215/2682/1194 2269/2683/1194 +f 2271/2684/1193 2263/2685/1193 2264/2686/1193 +f 2269/2687/1192 2214/2688/1192 2271/2689/1192 +f 2263/2685/1188 2215/2682/1188 2216/2679/1188 +f 2220/2690/1188 2218/2691/1188 2219/2692/1188 +f 2240/2693/1192 2217/2694/1192 2238/2695/1192 +f 2238/2696/1193 2220/2690/1193 2233/2697/1193 +f 2239/2698/1194 2218/2691/1194 2240/2699/1194 +f 2233/2700/1195 2219/2692/1195 2239/2701/1195 +f 2224/2702/1195 2226/2703/1195 2222/2704/1195 +f 2222/2705/1194 2227/2706/1194 2221/2707/1194 +f 2223/2708/1193 2225/2709/1193 2224/2710/1193 +f 2221/2711/1192 2228/2712/1192 2223/2713/1192 +f 2225/2709/1188 2227/2706/1188 2226/2703/1188 +f 2232/2714/1195 2235/2715/1195 2230/2716/1195 +f 2230/2717/1194 2236/2718/1194 2229/2719/1194 +f 2231/2720/1193 2234/2721/1193 2232/2722/1193 +f 2229/2723/1192 2237/2724/1192 2231/2725/1192 +f 2234/2721/1188 2236/2718/1188 2235/2715/1188 +f 2245/2726/1188 2243/2727/1188 2244/2728/1188 +f 2250/2729/1192 2242/2730/1192 2248/2731/1192 +f 2248/2732/1193 2245/2726/1193 2247/2733/1193 +f 2249/2734/1194 2243/2727/1194 2250/2735/1194 +f 2247/2736/1195 2244/2728/1195 2249/2737/1195 +f 2254/2738/1188 2252/2739/1188 2253/2740/1188 +f 2258/2741/1192 2251/2742/1192 2256/2743/1192 +f 2256/2744/1193 2254/2738/1193 2255/2745/1193 +f 2257/2746/1194 2252/2739/1194 2258/2747/1194 +f 2255/2748/1195 2253/2740/1195 2257/2749/1195 +f 2246/2750/1195 2260/2751/1195 2212/2752/1195 +f 2212/2753/1194 2261/2754/1194 2210/2755/1194 +f 2241/2756/1193 2259/2757/1193 2246/2758/1193 +f 2210/2759/1192 2262/2760/1192 2241/2761/1192 +f 2259/2757/1188 2261/2754/1188 2260/2751/1188 +f 2284/2762/1188 2282/2763/1188 2283/2764/1188 +f 2333/2765/1192 2281/2766/1192 2302/2767/1192 +f 2302/2768/1193 2284/2762/1193 2297/2769/1193 +f 2331/2770/1194 2282/2763/1194 2333/2771/1194 +f 2297/2772/1195 2283/2764/1195 2331/2773/1195 +f 2288/2774/1195 2290/2775/1195 2286/2776/1195 +f 2286/2777/1194 2291/2778/1194 2285/2779/1194 +f 2287/2780/1193 2289/2781/1193 2288/2782/1193 +f 2285/2783/1192 2292/2784/1192 2287/2785/1192 +f 2289/2781/1188 2291/2778/1188 2290/2775/1188 +f 2296/2786/1195 2299/2787/1195 2294/2788/1195 +f 2294/2789/1194 2300/2790/1194 2293/2791/1194 +f 2295/2792/1193 2298/2793/1193 2296/2794/1193 +f 2293/2795/1192 2301/2796/1192 2295/2797/1192 +f 2298/2793/1188 2300/2790/1188 2299/2787/1188 +f 2309/2798/1188 2307/2799/1188 2308/2800/1188 +f 2314/2801/1192 2306/2802/1192 2312/2803/1192 +f 2312/2804/1193 2309/2798/1193 2311/2805/1193 +f 2313/2806/1194 2307/2799/1194 2314/2807/1194 +f 2311/2808/1196 2308/2800/1196 2313/2809/1196 +f 2318/2810/1188 2316/2811/1188 2317/2812/1188 +f 2322/2813/1192 2315/2814/1192 2320/2815/1192 +f 2320/2816/1193 2318/2810/1193 2319/2817/1193 +f 2321/2818/1194 2316/2811/1194 2322/2819/1194 +f 2319/2820/1196 2317/2812/1196 2321/2821/1196 +f 2310/2822/1196 2324/2823/1196 2304/2824/1196 +f 2304/2825/1194 2325/2826/1194 2303/2827/1194 +f 2305/2828/1193 2323/2829/1193 2310/2830/1193 +f 2303/2831/1192 2326/2832/1192 2305/2833/1192 +f 2323/2829/1188 2325/2826/1188 2324/2823/1188 +f 2280/2834/1188 2328/2835/1188 2327/2836/1188 +f 2274/2837/1192 2329/2838/1192 2272/2839/1192 +f 2272/2840/1193 2280/2834/1193 2279/2841/1193 +f 2273/2842/1194 2328/2835/1194 2274/2843/1194 +f 2279/2844/1195 2327/2836/1195 2273/2845/1195 +f 2330/2846/1195 2276/2847/1195 2334/2848/1195 +f 2334/2849/1194 2277/2850/1194 2335/2851/1194 +f 2332/2852/1193 2275/2853/1193 2330/2854/1193 +f 2335/2855/1192 2278/2856/1192 2332/2857/1192 +f 2275/2853/1188 2277/2850/1188 2276/2847/1188 +f 2372/2858/1188 2370/2859/1188 2371/2860/1188 +f 2336/2861/1192 2369/2862/1192 2339/2863/1192 +f 2339/2864/1193 2372/2858/1193 2341/2865/1193 +f 2337/2866/1194 2370/2859/1194 2336/2867/1194 +f 2341/2868/1195 2371/2860/1195 2337/2869/1195 +f 2368/2870/1195 2344/2871/1195 2374/2872/1195 +f 2374/2873/1194 2343/2874/1194 2373/2875/1194 +f 2375/2876/1193 2367/2877/1193 2368/2878/1193 +f 2373/2879/1192 2342/2880/1192 2375/2881/1192 +f 2367/2877/1188 2343/2874/1188 2344/2871/1188 +f 2349/2882/1188 2347/2883/1188 2348/2884/1188 +f 2354/2885/1192 2346/2886/1192 2352/2887/1192 +f 2352/2888/1193 2349/2882/1193 2351/2889/1193 +f 2353/2890/1194 2347/2883/1194 2354/2891/1194 +f 2351/2892/1195 2348/2884/1195 2353/2893/1195 +f 2358/2894/1188 2356/2895/1188 2357/2896/1188 +f 2362/2897/1192 2355/2898/1192 2360/2899/1192 +f 2360/2900/1193 2358/2894/1193 2359/2901/1193 +f 2361/2902/1194 2356/2895/1194 2362/2903/1194 +f 2359/2904/1195 2357/2896/1195 2361/2905/1195 +f 2350/2906/1195 2364/2907/1195 2340/2908/1195 +f 2340/2909/1194 2365/2910/1194 2338/2911/1194 +f 2345/2912/1193 2363/2913/1193 2350/2914/1193 +f 2338/2915/1192 2366/2916/1192 2345/2917/1192 +f 2363/2913/1188 2365/2910/1188 2364/2907/1188 +f 2388/2918/1188 2386/2919/1188 2387/2920/1188 +f 2445/2921/1192 2385/2922/1192 2406/2923/1192 +f 2406/2924/1193 2388/2918/1193 2401/2925/1193 +f 2443/2926/1194 2386/2919/1194 2445/2927/1194 +f 2401/2928/1196 2387/2920/1196 2443/2929/1196 +f 2392/2930/1196 2394/2931/1196 2390/2932/1196 +f 2390/2933/1194 2395/2934/1194 2389/2935/1194 +f 2391/2936/1193 2393/2937/1193 2392/2938/1193 +f 2389/2939/1192 2396/2940/1192 2391/2941/1192 +f 2393/2937/1188 2395/2934/1188 2394/2931/1188 +f 2400/2942/1196 2403/2943/1196 2398/2944/1196 +f 2398/2945/1194 2404/2946/1194 2397/2947/1194 +f 2399/2948/1193 2402/2949/1193 2400/2950/1193 +f 2397/2951/1192 2405/2952/1192 2399/2953/1192 +f 2402/2949/1188 2404/2946/1188 2403/2943/1188 +f 2438/2954/1188 2440/2955/1188 2439/2956/1188 +f 2378/2957/1192 2441/2958/1192 2376/2959/1192 +f 2376/2960/1193 2438/2954/1193 2437/2961/1193 +f 2377/2962/1194 2440/2955/1194 2378/2963/1194 +f 2437/2964/1195 2439/2956/1195 2377/2965/1195 +f 2442/2966/1195 2380/2967/1195 2446/2968/1195 +f 2446/2969/1194 2381/2970/1194 2447/2971/1194 +f 2444/2972/1193 2379/2973/1193 2442/2974/1193 +f 2447/2975/1192 2382/2976/1192 2444/2977/1192 +f 2379/2973/1188 2381/2970/1188 2380/2967/1188 +f 2408/2978/1188 2384/2979/1188 2407/2980/1188 +f 2436/2981/1192 2383/2982/1192 2434/2983/1192 +f 2434/2984/1193 2408/2978/1193 2427/2985/1193 +f 2435/2986/1194 2384/2979/1194 2436/2987/1194 +f 2427/2988/1195 2407/2980/1195 2435/2989/1195 +f 2412/2990/1195 2414/2991/1195 2410/2992/1195 +f 2410/2993/1194 2415/2994/1194 2409/2995/1194 +f 2411/2996/1193 2413/2997/1193 2412/2998/1193 +f 2409/2999/1192 2416/3000/1192 2411/3001/1192 +f 2413/2997/1188 2415/2994/1188 2414/2991/1188 +f 2424/3002/1188 2422/3003/1188 2423/3004/1188 +f 2429/3005/1192 2421/3006/1192 2426/3007/1192 +f 2426/3008/1193 2424/3002/1193 2425/3009/1193 +f 2428/3010/1194 2422/3003/1194 2429/3011/1194 +f 2425/3012/1195 2423/3004/1195 2428/3013/1195 +f 2420/3014/1195 2431/3015/1195 2418/3016/1195 +f 2418/3017/1194 2432/3018/1194 2417/3019/1194 +f 2419/3020/1193 2430/3021/1193 2420/3022/1193 +f 2417/3023/1192 2433/3024/1192 2419/3025/1192 +f 2430/3021/1188 2432/3018/1188 2431/3015/1188 +f 2475/3026/1186 2486/3027/1186 2474/3028/1186 +f 2482/3029/1186 2493/3030/1186 2481/3031/1186 +f 2478/3032/1186 2491/3033/1186 2490/3034/1186 +f 2476/3035/1186 2487/3036/1186 2475/3026/1186 +f 2483/3037/1186 2494/3038/1186 2482/3029/1186 +f 2473/3039/1186 2484/3040/1186 2472/3041/1186 +f 2480/3042/1186 2491/3033/1186 2479/3043/1186 +f 2476/3035/1186 2489/3044/1186 2488/3045/1186 +f 2472/3041/1186 2495/3046/1186 2483/3037/1186 +f 2474/3028/1186 2485/3047/1186 2473/3039/1186 +f 2480/3042/1186 2493/3048/1186 2492/3049/1186 +f 2478/3032/1186 2489/3044/1186 2477/3050/1186 +f 2511/3051/1186 2522/3052/1186 2510/3053/1186 +f 2518/3054/1186 2529/3055/1186 2517/3056/1186 +f 2514/3057/1186 2527/3058/1186 2526/3059/1186 +f 2512/3060/1186 2523/3061/1186 2511/3051/1186 +f 2519/3062/1186 2530/3063/1186 2518/3054/1186 +f 2509/3064/1186 2520/3065/1186 2508/3066/1186 +f 2516/3067/1186 2527/3058/1186 2515/3068/1186 +f 2512/3060/1186 2525/3069/1186 2524/3070/1186 +f 2508/3066/1186 2531/3071/1186 2519/3062/1186 +f 2510/3053/1186 2521/3072/1186 2509/3064/1186 +f 2516/3067/1186 2529/3073/1186 2528/3074/1186 +f 2514/3057/1186 2525/3069/1186 2513/3075/1186 +f 2556/3076/1197 2555/3077/1197 2553/3078/1197 +f 2558/3079/1198 2555/3077/1198 2554/3080/1198 +f 2557/3081/1199 2552/3082/1199 2559/3083/1199 +f 2559/3083/1200 2556/3084/1200 2553/3078/1200 +f 2555/3077/1186 2559/3083/1186 2553/3078/1186 +f 2546/3085/1196 2544/3086/1196 2545/3087/1196 +f 2551/3088/1192 2549/3089/1192 2550/3090/1192 +f 2551/3091/1193 2546/3085/1193 2545/3092/1193 +f 2547/3093/1188 2550/3090/1188 2549/3089/1188 +f 2547/3093/1194 2548/3094/1194 2544/3095/1194 +f 2586/3096/1196 2584/3097/1196 2585/3098/1196 +f 2591/3099/1192 2589/3100/1192 2590/3101/1192 +f 2591/3102/1193 2586/3096/1193 2585/3103/1193 +f 2587/3104/1188 2590/3101/1188 2589/3100/1188 +f 2587/3104/1194 2588/3105/1194 2584/3106/1194 +f 2594/3107/1196 2592/3108/1196 2593/3109/1196 +f 2599/3110/1192 2597/3111/1192 2598/3112/1192 +f 2599/3113/1193 2594/3107/1193 2593/3114/1193 +f 2595/3115/1188 2598/3112/1188 2597/3111/1188 +f 2595/3115/1194 2596/3116/1194 2592/3117/1194 +f 2602/3118/1196 2600/3119/1196 2601/3120/1196 +f 2607/3121/1192 2605/3122/1192 2606/3123/1192 +f 2607/3124/1193 2602/3118/1193 2601/3125/1193 +f 2603/3126/1188 2606/3123/1188 2605/3122/1188 +f 2603/3126/1194 2604/3127/1194 2600/3128/1194 +f 2617/3129/1188 2622/3130/1188 2623/3131/1188 +f 2625/3132/1188 2626/3133/1188 2624/3134/1188 +f 2629/3135/1188 2630/3136/1188 2628/3137/1188 +f 2636/3138/1197 2635/3139/1197 2633/3140/1197 +f 2638/3141/1198 2635/3139/1198 2634/3142/1198 +f 2637/3143/1199 2632/3144/1199 2639/3145/1199 +f 2639/3145/1200 2636/3146/1200 2633/3140/1200 +f 2635/3139/1186 2639/3145/1186 2633/3140/1186 +f 2668/3147/1197 2667/3148/1197 2665/3149/1197 +f 2670/3150/1198 2667/3148/1198 2666/3151/1198 +f 2669/3152/1199 2664/3153/1199 2671/3154/1199 +f 2671/3154/1201 2668/3155/1201 2665/3149/1201 +f 2667/3148/1186 2671/3154/1186 2665/3149/1186 +f 2700/3156/1197 2699/3157/1197 2697/3158/1197 +f 2702/3159/1198 2699/3157/1198 2698/3160/1198 +f 2701/3161/1199 2696/3162/1199 2703/3163/1199 +f 2703/3163/1201 2700/3164/1201 2697/3158/1201 +f 2699/3157/1186 2703/3163/1186 2697/3158/1186 +f 2732/3165/1197 2731/3166/1197 2729/3167/1197 +f 2734/3168/1198 2731/3166/1198 2730/3169/1198 +f 2733/3170/1199 2728/3171/1199 2735/3172/1199 +f 2735/3172/1201 2732/3173/1201 2729/3167/1201 +f 2731/3166/1186 2735/3172/1186 2729/3167/1186 +f 2764/3174/1197 2763/3175/1197 2761/3176/1197 +f 2766/3177/1198 2763/3175/1198 2762/3178/1198 +f 2765/3179/1199 2760/3180/1199 2767/3181/1199 +f 2767/3181/1201 2764/3182/1201 2761/3176/1201 +f 2763/3175/1186 2767/3181/1186 2761/3176/1186 +f 2796/3183/1197 2795/3184/1197 2793/3185/1197 +f 2798/3186/1198 2795/3184/1198 2794/3187/1198 +f 2797/3188/1199 2792/3189/1199 2799/3190/1199 +f 2799/3190/1200 2796/3191/1200 2793/3185/1200 +f 2795/3184/1186 2799/3190/1186 2793/3185/1186 +f 2828/3192/1197 2827/3193/1197 2825/3194/1197 +f 2830/3195/1198 2827/3193/1198 2826/3196/1198 +f 2829/3197/1199 2824/3198/1199 2831/3199/1199 +f 2831/3199/1200 2828/3200/1200 2825/3194/1200 +f 2827/3193/1186 2831/3199/1186 2825/3194/1186 +f 2860/3201/1197 2859/3202/1197 2857/3203/1197 +f 2862/3204/1198 2859/3202/1198 2858/3205/1198 +f 2861/3206/1199 2856/3207/1199 2863/3208/1199 +f 2863/3208/1200 2860/3209/1200 2857/3203/1200 +f 2859/3202/1186 2863/3208/1186 2857/3203/1186 +f 2928/3210/1188 2930/3211/1188 2929/3212/1188 +f 2890/3213/1192 2931/3214/1192 2888/3215/1192 +f 2888/3216/1193 2928/3210/1193 2927/3217/1193 +f 2889/3218/1194 2930/3211/1194 2890/3219/1194 +f 2927/3220/1195 2929/3212/1195 2889/3221/1195 +f 2932/3222/1195 2892/3223/1195 2934/3224/1195 +f 2934/3225/1194 2893/3226/1194 2935/3227/1194 +f 2933/3228/1193 2891/3229/1193 2932/3230/1193 +f 2935/3231/1192 2894/3232/1192 2933/3233/1192 +f 2891/3229/1188 2893/3226/1188 2892/3223/1188 +f 2898/3234/1188 2896/3235/1188 2897/3236/1188 +f 2926/3237/1192 2895/3238/1192 2924/3239/1192 +f 2924/3240/1193 2898/3234/1193 2917/3241/1193 +f 2925/3242/1194 2896/3235/1194 2926/3243/1194 +f 2917/3244/1195 2897/3236/1195 2925/3245/1195 +f 2902/3246/1195 2904/3247/1195 2900/3248/1195 +f 2900/3249/1194 2905/3250/1194 2899/3251/1194 +f 2901/3252/1193 2903/3253/1193 2902/3254/1193 +f 2899/3255/1192 2906/3256/1192 2901/3257/1192 +f 2903/3253/1188 2905/3250/1188 2904/3247/1188 +f 2914/3258/1188 2912/3259/1188 2913/3260/1188 +f 2919/3261/1192 2911/3262/1192 2916/3263/1192 +f 2916/3264/1193 2914/3258/1193 2915/3265/1193 +f 2918/3266/1194 2912/3259/1194 2919/3267/1194 +f 2915/3268/1195 2913/3260/1195 2918/3269/1195 +f 2910/3270/1195 2921/3271/1195 2908/3272/1195 +f 2908/3273/1194 2922/3274/1194 2907/3275/1194 +f 2909/3276/1193 2920/3277/1193 2910/3278/1193 +f 2907/3279/1192 2923/3280/1192 2909/3281/1192 +f 2920/3277/1188 2922/3274/1188 2921/3271/1188 +f 2976/3282/1188 2978/3283/1188 2977/3284/1188 +f 2938/3285/1192 2979/3286/1192 2936/3287/1192 +f 2936/3288/1193 2976/3282/1193 2975/3289/1193 +f 2937/3290/1194 2978/3283/1194 2938/3291/1194 +f 2975/3292/1195 2977/3284/1195 2937/3293/1195 +f 2980/3294/1195 2940/3295/1195 2982/3296/1195 +f 2982/3297/1194 2941/3298/1194 2983/3299/1194 +f 2981/3300/1193 2939/3301/1193 2980/3302/1193 +f 2983/3303/1192 2942/3304/1192 2981/3305/1192 +f 2939/3301/1188 2941/3298/1188 2940/3295/1188 +f 2946/3306/1188 2944/3307/1188 2945/3308/1188 +f 2974/3309/1192 2943/3310/1192 2972/3311/1192 +f 2972/3312/1193 2946/3306/1193 2965/3313/1193 +f 2973/3314/1194 2944/3307/1194 2974/3315/1194 +f 2965/3316/1195 2945/3308/1195 2973/3317/1195 +f 2950/3318/1195 2952/3319/1195 2948/3320/1195 +f 2948/3321/1194 2953/3322/1194 2947/3323/1194 +f 2949/3324/1193 2951/3325/1193 2950/3326/1193 +f 2947/3327/1192 2954/3328/1192 2949/3329/1192 +f 2951/3325/1188 2953/3322/1188 2952/3319/1188 +f 2962/3330/1188 2960/3331/1188 2961/3332/1188 +f 2967/3333/1192 2959/3334/1192 2964/3335/1192 +f 2964/3336/1193 2962/3330/1193 2963/3337/1193 +f 2966/3338/1194 2960/3331/1194 2967/3339/1194 +f 2963/3340/1195 2961/3332/1195 2966/3341/1195 +f 2958/3342/1195 2969/3343/1195 2956/3344/1195 +f 2956/3345/1194 2970/3346/1194 2955/3347/1194 +f 2957/3348/1193 2968/3349/1193 2958/3350/1193 +f 2955/3351/1192 2971/3352/1192 2957/3353/1192 +f 2968/3349/1188 2970/3346/1188 2969/3343/1188 +f 1857/2135/1185 1859/2139/1185 1858/2136/1185 +f 1857/2135/1186 1860/2160/1186 1861/2138/1186 +f 1860/2140/1187 1862/2143/1187 1863/2141/1187 +f 1862/2143/1186 1864/2145/1186 1865/2144/1186 +f 1864/2145/1188 1866/2156/1188 1867/2146/1188 +f 1866/2147/1186 1868/2150/1186 1869/2148/1186 +f 1868/2150/1188 1870/3354/1188 1871/2151/1188 +f 1871/2151/1189 1870/3354/1189 1856/2152/1189 +f 1863/2154/1190 1865/2144/1190 1867/2146/1190 +f 1866/2156/1191 1864/2145/1191 1862/2157/1191 +f 1857/2135/1191 1856/3355/1191 1860/2160/1191 +f 1856/3355/1191 1870/2159/1191 1860/2160/1191 +f 1870/2159/1191 1868/2150/1191 1866/2147/1191 +f 1858/3356/1190 1859/2139/1190 1861/2138/1190 +f 1867/2149/1190 1869/2148/1190 1871/2161/1190 +f 1858/3356/1190 1861/2138/1190 1871/2161/1190 +f 1887/2162/1188 1884/2166/1188 1885/2163/1188 +f 1900/2165/1202 1885/2163/1202 1884/2166/1202 +f 1898/2168/1203 1884/2166/1203 1887/2162/1203 +f 1899/2170/1204 1886/2164/1204 1885/2163/1204 +f 1897/2172/1196 1887/2162/1196 1886/2164/1196 +f 1892/2174/1196 1893/2181/1196 1894/2175/1196 +f 1889/2177/1204 1894/2175/1204 1895/2178/1204 +f 1891/2180/1203 1896/2184/1203 1893/2181/1203 +f 1888/2183/1202 1895/2178/1202 1896/2184/1202 +f 1893/2181/1188 1896/2184/1188 1895/2178/1188 +f 1904/2186/1188 1901/2190/1188 1902/2187/1188 +f 1908/2189/1202 1902/2187/1202 1901/2190/1202 +f 1906/2192/1203 1901/2190/1203 1904/2186/1203 +f 1907/2194/1204 1903/2188/1204 1902/2187/1204 +f 1905/2196/1196 1904/2186/1196 1903/2188/1196 +f 1890/2198/1196 1909/2205/1196 1910/2199/1196 +f 1882/2201/1204 1910/2199/1204 1911/2202/1204 +f 1883/2204/1203 1912/2208/1203 1909/2205/1203 +f 1881/2207/1202 1911/2202/1202 1912/2208/1202 +f 1909/2205/1188 1912/2208/1188 1911/2202/1188 +f 1916/2210/1188 1913/2214/1188 1914/2211/1188 +f 1872/2213/1202 1914/2211/1202 1913/2214/1202 +f 1874/2216/1203 1913/2214/1203 1916/2210/1203 +f 1873/2218/1204 1915/2212/1204 1914/2211/1204 +f 1875/2220/1196 1916/2210/1196 1915/2212/1196 +f 1880/2222/1196 1879/2229/1196 1878/2223/1196 +f 1918/2225/1204 1878/2223/1204 1877/2226/1204 +f 1919/2228/1203 1876/2232/1203 1879/2229/1203 +f 1917/2231/1202 1877/2226/1202 1876/2232/1202 +f 1879/2229/1188 1876/2232/1188 1877/2226/1188 +f 1937/2234/1188 1934/2238/1188 1935/2235/1188 +f 1950/2237/1192 1935/2235/1192 1934/2238/1192 +f 1948/2240/1203 1934/2238/1203 1937/2234/1203 +f 1949/2242/1204 1936/2236/1204 1935/2235/1204 +f 1947/2244/1196 1937/2234/1196 1936/2236/1196 +f 1942/2246/1196 1943/2253/1196 1944/2247/1196 +f 1939/2249/1204 1944/2247/1204 1945/2250/1204 +f 1941/2252/1203 1946/2256/1203 1943/2253/1203 +f 1938/2255/1192 1945/2250/1192 1946/2256/1192 +f 1943/2253/1188 1946/2256/1188 1945/2250/1188 +f 1954/2258/1188 1951/2262/1188 1952/2259/1188 +f 1958/2261/1192 1952/2259/1192 1951/2262/1192 +f 1956/2264/1203 1951/2262/1203 1954/2258/1203 +f 1957/2266/1204 1953/2260/1204 1952/2259/1204 +f 1955/2268/1196 1954/2258/1196 1953/2260/1196 +f 1940/2270/1196 1959/2277/1196 1960/2271/1196 +f 1932/2273/1204 1960/2271/1204 1983/2274/1204 +f 1933/2276/1203 1984/2280/1203 1959/2277/1203 +f 1931/2279/1192 1983/2274/1192 1984/2280/1192 +f 1959/2277/1188 1984/2280/1188 1983/2274/1188 +f 1988/2282/1188 1985/2286/1188 1986/2283/1188 +f 1920/2285/1192 1986/2283/1192 1985/2286/1192 +f 1923/2288/1203 1985/2286/1203 1988/2282/1203 +f 1921/2290/1204 1987/2284/1204 1986/2283/1204 +f 1925/2292/1196 1988/2282/1196 1987/2284/1196 +f 1930/2294/1196 1929/2301/1196 1928/2295/1196 +f 1990/2297/1204 1928/2295/1204 1927/2298/1204 +f 1991/2300/1203 1926/2304/1203 1929/2301/1203 +f 1989/2303/1192 1927/2298/1192 1926/2304/1192 +f 1929/2301/1188 1926/2304/1188 1927/2298/1188 +f 1965/2306/1188 1962/2310/1188 1963/2307/1188 +f 1970/2309/1192 1963/2307/1192 1962/2310/1192 +f 1968/2312/1203 1962/2310/1203 1965/2306/1203 +f 1969/2314/1204 1964/2308/1204 1963/2307/1204 +f 1967/2316/1196 1965/2306/1196 1964/2308/1196 +f 1974/2318/1188 1971/2322/1188 1972/2319/1188 +f 1978/2321/1192 1972/2319/1192 1971/2322/1192 +f 1976/2324/1203 1971/2322/1203 1974/2318/1203 +f 1977/2326/1204 1973/2320/1204 1972/2319/1204 +f 1975/2328/1196 1974/2318/1196 1973/2320/1196 +f 1966/2330/1196 1979/2337/1196 1980/2331/1196 +f 1924/2333/1204 1980/2331/1204 1981/2334/1204 +f 1961/2336/1203 1982/2340/1203 1979/2337/1203 +f 1922/2339/1192 1981/2334/1192 1982/2340/1192 +f 1979/2337/1188 1982/2340/1188 1981/2334/1188 +f 2007/2342/1188 2004/2346/1188 2005/2343/1188 +f 2020/2345/1192 2005/2343/1192 2004/2346/1192 +f 2018/2348/1203 2004/2346/1203 2007/2342/1203 +f 2019/2350/1204 2006/2344/1204 2005/2343/1204 +f 2017/2352/1196 2007/2342/1196 2006/2344/1196 +f 2012/2354/1196 2013/2361/1196 2014/2355/1196 +f 2009/2357/1204 2014/2355/1204 2015/2358/1204 +f 2011/2360/1203 2016/2364/1203 2013/2361/1203 +f 2008/2363/1192 2015/2358/1192 2016/2364/1192 +f 2013/2361/1188 2016/2364/1188 2015/2358/1188 +f 2024/2366/1188 2021/2370/1188 2022/2367/1188 +f 2028/2369/1192 2022/2367/1192 2021/2370/1192 +f 2026/2372/1203 2021/2370/1203 2024/2366/1203 +f 2027/2374/1204 2023/2368/1204 2022/2367/1204 +f 2025/2376/1196 2024/2366/1196 2023/2368/1196 +f 2010/2378/1196 2029/2385/1196 2030/2379/1196 +f 2002/2381/1204 2030/2379/1204 2031/2382/1204 +f 2003/2384/1203 2032/2388/1203 2029/2385/1203 +f 2001/2387/1192 2031/2382/1192 2032/2388/1192 +f 2029/2385/1188 2032/2388/1188 2031/2382/1188 +f 2036/2390/1188 2033/2394/1188 2034/2391/1188 +f 1992/2393/1192 2034/2391/1192 2033/2394/1192 +f 1994/2396/1203 2033/2394/1203 2036/2390/1203 +f 1993/2398/1204 2035/2392/1204 2034/2391/1204 +f 1995/2400/1196 2036/2390/1196 2035/2392/1196 +f 2000/2402/1196 1999/2409/1196 1998/2403/1196 +f 2038/2405/1204 1998/2403/1204 1997/2406/1204 +f 2039/2408/1203 1996/2412/1203 1999/2409/1203 +f 2037/2411/1192 1997/2406/1192 1996/2412/1192 +f 1999/2409/1188 1996/2412/1188 1997/2406/1188 +f 2104/2414/1188 2107/2418/1188 2106/2415/1188 +f 2043/2417/1192 2106/2415/1192 2107/2418/1192 +f 2040/2420/1203 2107/2418/1203 2104/2414/1203 +f 2041/2422/1204 2105/2416/1204 2106/2415/1204 +f 2103/2424/1196 2104/2414/1196 2105/2416/1196 +f 2108/2426/1196 2045/2433/1196 2046/2427/1196 +f 2110/2429/1204 2046/2427/1204 2047/2430/1204 +f 2109/2432/1203 2048/2436/1203 2045/2433/1203 +f 2111/2435/1192 2047/2430/1192 2048/2436/1192 +f 2045/2433/1188 2048/2436/1188 2047/2430/1188 +f 2052/2438/1188 2049/2442/1188 2050/2439/1188 +f 2080/2441/1192 2050/2439/1192 2049/2442/1192 +f 2078/2444/1203 2049/2442/1203 2052/2438/1203 +f 2079/2446/1204 2051/2440/1204 2050/2439/1204 +f 2071/2448/1196 2052/2438/1196 2051/2440/1196 +f 2056/2450/1196 2057/2457/1196 2058/2451/1196 +f 2054/2453/1204 2058/2451/1204 2059/2454/1204 +f 2055/2456/1203 2060/2460/1203 2057/2457/1203 +f 2053/2459/1192 2059/2454/1192 2060/2460/1192 +f 2057/2457/1188 2060/2460/1188 2059/2454/1188 +f 2068/2462/1188 2065/2466/1188 2066/2463/1188 +f 2073/2465/1192 2066/2463/1192 2065/2466/1192 +f 2070/2468/1203 2065/2466/1203 2068/2462/1203 +f 2072/2470/1204 2067/2464/1204 2066/2463/1204 +f 2069/2472/1196 2068/2462/1196 2067/2464/1196 +f 2064/2474/1196 2074/2481/1196 2075/2475/1196 +f 2062/2477/1204 2075/2475/1204 2076/2478/1204 +f 2063/2480/1203 2077/2484/1203 2074/2481/1203 +f 2061/2483/1192 2076/2478/1192 2077/2484/1192 +f 2074/2481/1188 2077/2484/1188 2076/2478/1188 +f 2082/2486/1188 2042/2490/1188 2044/2487/1188 +f 2102/2489/1192 2044/2487/1192 2042/2490/1192 +f 2100/2492/1203 2042/2490/1203 2082/2486/1203 +f 2101/2494/1204 2081/2488/1204 2044/2487/1204 +f 2095/2496/1196 2082/2486/1196 2081/2488/1196 +f 2086/2498/1196 2087/2505/1196 2088/2499/1196 +f 2084/2501/1204 2088/2499/1204 2089/2502/1204 +f 2085/2504/1203 2090/2508/1203 2087/2505/1203 +f 2083/2507/1192 2089/2502/1192 2090/2508/1192 +f 2087/2505/1188 2090/2508/1188 2089/2502/1188 +f 2094/2510/1196 2096/2517/1196 2097/2511/1196 +f 2092/2513/1204 2097/2511/1204 2098/2514/1204 +f 2093/2516/1203 2099/2520/1203 2096/2517/1203 +f 2091/2519/1192 2098/2514/1192 2099/2520/1192 +f 2096/2517/1188 2099/2520/1188 2098/2514/1188 +f 2124/2522/1188 2121/2526/1188 2122/2523/1188 +f 2203/2525/1192 2122/2523/1192 2121/2526/1192 +f 2158/2528/1203 2121/2526/1203 2124/2522/1203 +f 2201/2530/1204 2123/2524/1204 2122/2523/1204 +f 2149/2532/1196 2124/2522/1196 2123/2524/1196 +f 2140/2534/1196 2141/2565/1196 2142/2535/1196 +f 2131/2537/1188 2128/2541/1188 2129/2538/1188 +f 2207/2540/1202 2129/2538/1202 2128/2541/1202 +f 2173/2543/1203 2128/2541/1203 2131/2537/1203 +f 2206/2545/1204 2130/2539/1204 2129/2538/1204 +f 2168/2547/1196 2131/2537/1196 2130/2539/1196 +f 2135/2549/1196 2136/2556/1196 2137/2550/1196 +f 2133/2552/1204 2137/2550/1204 2138/2553/1204 +f 2134/2555/1203 2139/2559/1203 2136/2556/1203 +f 2132/2558/1202 2138/2553/1202 2139/2559/1202 +f 2136/2556/1188 2139/2559/1188 2138/2553/1188 +f 2126/2561/1204 2142/2535/1204 2143/2562/1204 +f 2127/2564/1203 2144/2568/1203 2141/2565/1203 +f 2125/2567/1192 2143/2562/1192 2144/2568/1192 +f 2141/2565/1188 2144/2568/1188 2143/2562/1188 +f 2148/2570/1196 2154/2577/1196 2155/2571/1196 +f 2146/2573/1204 2155/2571/1204 2156/2574/1204 +f 2147/2576/1203 2157/2580/1203 2154/2577/1203 +f 2145/2579/1192 2156/2574/1192 2157/2580/1192 +f 2154/2577/1188 2157/2580/1188 2156/2574/1188 +f 2196/2582/1188 2199/2586/1188 2198/2583/1188 +f 2114/2585/1192 2198/2583/1192 2199/2586/1192 +f 2112/2588/1203 2199/2586/1203 2196/2582/1203 +f 2113/2590/1204 2197/2584/1204 2198/2583/1204 +f 2195/2592/1196 2196/2582/1196 2197/2584/1196 +f 2200/2594/1196 2115/2613/1196 2116/2595/1196 +f 2153/2597/1196 2169/2604/1196 2170/2598/1196 +f 2151/2600/1204 2170/2598/1204 2171/2601/1204 +f 2152/2603/1203 2172/2607/1203 2169/2604/1203 +f 2150/2606/1202 2171/2601/1202 2172/2607/1202 +f 2169/2604/1188 2172/2607/1188 2171/2601/1188 +f 2204/2609/1204 2116/2595/1204 2117/2610/1204 +f 2202/2612/1203 2118/2616/1203 2115/2613/1203 +f 2205/2615/1192 2117/2610/1192 2118/2616/1192 +f 2115/2613/1188 2118/2616/1188 2117/2610/1188 +f 2160/2618/1188 2119/2622/1188 2120/2619/1188 +f 2194/2621/1192 2120/2619/1192 2119/2622/1192 +f 2192/2624/1203 2119/2622/1203 2160/2618/1203 +f 2193/2626/1204 2159/2620/1204 2120/2619/1204 +f 2185/2628/1196 2160/2618/1196 2159/2620/1196 +f 2164/2630/1196 2165/2637/1196 2166/2631/1196 +f 2162/2633/1204 2166/2631/1204 2167/2634/1204 +f 2163/2636/1203 2174/2640/1203 2165/2637/1203 +f 2161/2639/1192 2167/2634/1192 2174/2640/1192 +f 2165/2637/1188 2174/2640/1188 2167/2634/1188 +f 2182/2642/1188 2179/2646/1188 2180/2643/1188 +f 2187/2645/1192 2180/2643/1192 2179/2646/1192 +f 2184/2648/1203 2179/2646/1203 2182/2642/1203 +f 2186/2650/1204 2181/2644/1204 2180/2643/1204 +f 2183/2652/1196 2182/2642/1196 2181/2644/1196 +f 2178/2654/1196 2188/2661/1196 2189/2655/1196 +f 2176/2657/1204 2189/2655/1204 2190/2658/1204 +f 2177/2660/1203 2191/2664/1203 2188/2661/1203 +f 2175/2663/1192 2190/2658/1192 2191/2664/1192 +f 2188/2661/1188 2191/2664/1188 2190/2658/1188 +f 2268/2666/1188 2265/2670/1188 2266/2667/1188 +f 2208/2669/1192 2266/2667/1192 2265/2670/1192 +f 2211/2672/1203 2265/2670/1203 2268/2666/1203 +f 2209/2674/1204 2267/2668/1204 2266/2667/1204 +f 2213/2676/1196 2268/2666/1196 2267/2668/1196 +f 2264/2678/1196 2263/2685/1196 2216/2679/1196 +f 2270/2681/1204 2216/2679/1204 2215/2682/1204 +f 2271/2684/1203 2214/2688/1203 2263/2685/1203 +f 2269/2687/1192 2215/2682/1192 2214/2688/1192 +f 2263/2685/1188 2214/2688/1188 2215/2682/1188 +f 2220/2690/1188 2217/2694/1188 2218/2691/1188 +f 2240/2693/1192 2218/2691/1192 2217/2694/1192 +f 2238/2696/1203 2217/2694/1203 2220/2690/1203 +f 2239/2698/1204 2219/2692/1204 2218/2691/1204 +f 2233/2700/1196 2220/2690/1196 2219/2692/1196 +f 2224/2702/1196 2225/2709/1196 2226/2703/1196 +f 2222/2705/1204 2226/2703/1204 2227/2706/1204 +f 2223/2708/1203 2228/2712/1203 2225/2709/1203 +f 2221/2711/1192 2227/2706/1192 2228/2712/1192 +f 2225/2709/1188 2228/2712/1188 2227/2706/1188 +f 2232/2714/1196 2234/2721/1196 2235/2715/1196 +f 2230/2717/1204 2235/2715/1204 2236/2718/1204 +f 2231/2720/1203 2237/2724/1203 2234/2721/1203 +f 2229/2723/1192 2236/2718/1192 2237/2724/1192 +f 2234/2721/1188 2237/2724/1188 2236/2718/1188 +f 2245/2726/1188 2242/2730/1188 2243/2727/1188 +f 2250/2729/1202 2243/2727/1202 2242/2730/1202 +f 2248/2732/1203 2242/2730/1203 2245/2726/1203 +f 2249/2734/1204 2244/2728/1204 2243/2727/1204 +f 2247/2736/1196 2245/2726/1196 2244/2728/1196 +f 2254/2738/1188 2251/2742/1188 2252/2739/1188 +f 2258/2741/1202 2252/2739/1202 2251/2742/1202 +f 2256/2744/1203 2251/2742/1203 2254/2738/1203 +f 2257/2746/1204 2253/2740/1204 2252/2739/1204 +f 2255/2748/1196 2254/2738/1196 2253/2740/1196 +f 2246/2750/1196 2259/2757/1196 2260/2751/1196 +f 2212/2753/1204 2260/2751/1204 2261/2754/1204 +f 2241/2756/1203 2262/2760/1203 2259/2757/1203 +f 2210/2759/1202 2261/2754/1202 2262/2760/1202 +f 2259/2757/1188 2262/2760/1188 2261/2754/1188 +f 2284/2762/1188 2281/2766/1188 2282/2763/1188 +f 2333/2765/1192 2282/2763/1192 2281/2766/1192 +f 2302/2768/1203 2281/2766/1203 2284/2762/1203 +f 2331/2770/1204 2283/2764/1204 2282/2763/1204 +f 2297/2772/1196 2284/2762/1196 2283/2764/1196 +f 2288/2774/1196 2289/2781/1196 2290/2775/1196 +f 2286/2777/1204 2290/2775/1204 2291/2778/1204 +f 2287/2780/1203 2292/2784/1203 2289/2781/1203 +f 2285/2783/1192 2291/2778/1192 2292/2784/1192 +f 2289/2781/1188 2292/2784/1188 2291/2778/1188 +f 2296/2786/1196 2298/2793/1196 2299/2787/1196 +f 2294/2789/1204 2299/2787/1204 2300/2790/1204 +f 2295/2792/1203 2301/2796/1203 2298/2793/1203 +f 2293/2795/1192 2300/2790/1192 2301/2796/1192 +f 2298/2793/1188 2301/2796/1188 2300/2790/1188 +f 2309/2798/1188 2306/2802/1188 2307/2799/1188 +f 2314/2801/1192 2307/2799/1192 2306/2802/1192 +f 2312/2804/1203 2306/2802/1203 2309/2798/1203 +f 2313/2806/1204 2308/2800/1204 2307/2799/1204 +f 2311/2808/1196 2309/2798/1196 2308/2800/1196 +f 2318/2810/1188 2315/2814/1188 2316/2811/1188 +f 2322/2813/1192 2316/2811/1192 2315/2814/1192 +f 2320/2816/1203 2315/2814/1203 2318/2810/1203 +f 2321/2818/1204 2317/2812/1204 2316/2811/1204 +f 2319/2820/1196 2318/2810/1196 2317/2812/1196 +f 2310/2822/1196 2323/2829/1196 2324/2823/1196 +f 2304/2825/1204 2324/2823/1204 2325/2826/1204 +f 2305/2828/1203 2326/2832/1203 2323/2829/1203 +f 2303/2831/1192 2325/2826/1192 2326/2832/1192 +f 2323/2829/1188 2326/2832/1188 2325/2826/1188 +f 2280/2834/1188 2329/2838/1188 2328/2835/1188 +f 2274/2837/1202 2328/2835/1202 2329/2838/1202 +f 2272/2840/1203 2329/2838/1203 2280/2834/1203 +f 2273/2842/1204 2327/2836/1204 2328/2835/1204 +f 2279/2844/1196 2280/2834/1196 2327/2836/1196 +f 2330/2846/1196 2275/2853/1196 2276/2847/1196 +f 2334/2849/1204 2276/2847/1204 2277/2850/1204 +f 2332/2852/1203 2278/2856/1203 2275/2853/1203 +f 2335/2855/1202 2277/2850/1202 2278/2856/1202 +f 2275/2853/1188 2278/2856/1188 2277/2850/1188 +f 2372/2858/1188 2369/2862/1188 2370/2859/1188 +f 2336/2861/1192 2370/2859/1192 2369/2862/1192 +f 2339/2864/1203 2369/2862/1203 2372/2858/1203 +f 2337/2866/1204 2371/2860/1204 2370/2859/1204 +f 2341/2868/1196 2372/2858/1196 2371/2860/1196 +f 2368/2870/1196 2367/2877/1196 2344/2871/1196 +f 2374/2873/1204 2344/2871/1204 2343/2874/1204 +f 2375/2876/1203 2342/2880/1203 2367/2877/1203 +f 2373/2879/1192 2343/2874/1192 2342/2880/1192 +f 2367/2877/1188 2342/2880/1188 2343/2874/1188 +f 2349/2882/1188 2346/2886/1188 2347/2883/1188 +f 2354/2885/1202 2347/2883/1202 2346/2886/1202 +f 2352/2888/1203 2346/2886/1203 2349/2882/1203 +f 2353/2890/1204 2348/2884/1204 2347/2883/1204 +f 2351/2892/1196 2349/2882/1196 2348/2884/1196 +f 2358/2894/1188 2355/2898/1188 2356/2895/1188 +f 2362/2897/1202 2356/2895/1202 2355/2898/1202 +f 2360/2900/1203 2355/2898/1203 2358/2894/1203 +f 2361/2902/1204 2357/2896/1204 2356/2895/1204 +f 2359/2904/1196 2358/2894/1196 2357/2896/1196 +f 2350/2906/1196 2363/2913/1196 2364/2907/1196 +f 2340/2909/1204 2364/2907/1204 2365/2910/1204 +f 2345/2912/1203 2366/2916/1203 2363/2913/1203 +f 2338/2915/1202 2365/2910/1202 2366/2916/1202 +f 2363/2913/1188 2366/2916/1188 2365/2910/1188 +f 2388/2918/1188 2385/2922/1188 2386/2919/1188 +f 2445/2921/1192 2386/2919/1192 2385/2922/1192 +f 2406/2924/1203 2385/2922/1203 2388/2918/1203 +f 2443/2926/1204 2387/2920/1204 2386/2919/1204 +f 2401/2928/1196 2388/2918/1196 2387/2920/1196 +f 2392/2930/1196 2393/2937/1196 2394/2931/1196 +f 2390/2933/1204 2394/2931/1204 2395/2934/1204 +f 2391/2936/1203 2396/2940/1203 2393/2937/1203 +f 2389/2939/1192 2395/2934/1192 2396/2940/1192 +f 2393/2937/1188 2396/2940/1188 2395/2934/1188 +f 2400/2942/1196 2402/2949/1196 2403/2943/1196 +f 2398/2945/1204 2403/2943/1204 2404/2946/1204 +f 2399/2948/1203 2405/2952/1203 2402/2949/1203 +f 2397/2951/1192 2404/2946/1192 2405/2952/1192 +f 2402/2949/1188 2405/2952/1188 2404/2946/1188 +f 2438/2954/1188 2441/2958/1188 2440/2955/1188 +f 2378/2957/1202 2440/2955/1202 2441/2958/1202 +f 2376/2960/1203 2441/2958/1203 2438/2954/1203 +f 2377/2962/1204 2439/2956/1204 2440/2955/1204 +f 2437/2964/1196 2438/2954/1196 2439/2956/1196 +f 2442/2966/1196 2379/2973/1196 2380/2967/1196 +f 2446/2969/1204 2380/2967/1204 2381/2970/1204 +f 2444/2972/1203 2382/2976/1203 2379/2973/1203 +f 2447/2975/1202 2381/2970/1202 2382/2976/1202 +f 2379/2973/1188 2382/2976/1188 2381/2970/1188 +f 2408/2978/1188 2383/2982/1188 2384/2979/1188 +f 2436/2981/1202 2384/2979/1202 2383/2982/1202 +f 2434/2984/1203 2383/2982/1203 2408/2978/1203 +f 2435/2986/1204 2407/2980/1204 2384/2979/1204 +f 2427/2988/1196 2408/2978/1196 2407/2980/1196 +f 2412/2990/1196 2413/2997/1196 2414/2991/1196 +f 2410/2993/1204 2414/2991/1204 2415/2994/1204 +f 2411/2996/1203 2416/3000/1203 2413/2997/1203 +f 2409/2999/1202 2415/2994/1202 2416/3000/1202 +f 2413/2997/1188 2416/3000/1188 2415/2994/1188 +f 2424/3002/1188 2421/3006/1188 2422/3003/1188 +f 2429/3005/1202 2422/3003/1202 2421/3006/1202 +f 2426/3008/1203 2421/3006/1203 2424/3002/1203 +f 2428/3010/1204 2423/3004/1204 2422/3003/1204 +f 2425/3012/1196 2424/3002/1196 2423/3004/1196 +f 2420/3014/1196 2430/3021/1196 2431/3015/1196 +f 2418/3017/1204 2431/3015/1204 2432/3018/1204 +f 2419/3020/1203 2433/3024/1203 2430/3021/1203 +f 2417/3023/1202 2432/3018/1202 2433/3024/1202 +f 2430/3021/1188 2433/3024/1188 2432/3018/1188 +f 2475/3026/1186 2487/3036/1186 2486/3027/1186 +f 2482/3029/1186 2494/3038/1186 2493/3030/1186 +f 2478/3032/1186 2479/3043/1186 2491/3033/1186 +f 2476/3035/1186 2488/3045/1186 2487/3036/1186 +f 2483/3037/1186 2495/3046/1186 2494/3038/1186 +f 2473/3039/1186 2485/3047/1186 2484/3040/1186 +f 2480/3042/1186 2492/3049/1186 2491/3033/1186 +f 2476/3035/1186 2477/3050/1186 2489/3044/1186 +f 2472/3041/1186 2484/3040/1186 2495/3046/1186 +f 2474/3028/1186 2486/3027/1186 2485/3047/1186 +f 2480/3042/1186 2481/3357/1186 2493/3048/1186 +f 2478/3032/1186 2490/3034/1186 2489/3044/1186 +f 2511/3051/1186 2523/3061/1186 2522/3052/1186 +f 2518/3054/1186 2530/3063/1186 2529/3055/1186 +f 2514/3057/1186 2515/3068/1186 2527/3058/1186 +f 2512/3060/1186 2524/3070/1186 2523/3061/1186 +f 2519/3062/1186 2531/3071/1186 2530/3063/1186 +f 2509/3064/1186 2521/3072/1186 2520/3065/1186 +f 2516/3067/1186 2528/3074/1186 2527/3058/1186 +f 2512/3060/1186 2513/3075/1186 2525/3069/1186 +f 2508/3066/1186 2520/3065/1186 2531/3071/1186 +f 2510/3053/1186 2522/3052/1186 2521/3072/1186 +f 2516/3067/1186 2517/3358/1186 2529/3073/1186 +f 2514/3057/1186 2526/3059/1186 2525/3069/1186 +f 2556/3076/1197 2554/3359/1197 2555/3077/1197 +f 2558/3079/1205 2557/3081/1205 2555/3077/1205 +f 2557/3081/1199 2558/3360/1199 2552/3082/1199 +f 2559/3083/1200 2552/3361/1200 2556/3084/1200 +f 2555/3077/1186 2557/3081/1186 2559/3083/1186 +f 2546/3085/1196 2547/3093/1196 2544/3086/1196 +f 2551/3088/1202 2548/3362/1202 2549/3089/1202 +f 2551/3091/1193 2550/3090/1193 2546/3085/1193 +f 2547/3093/1188 2546/3085/1188 2550/3090/1188 +f 2547/3093/1194 2549/3089/1194 2548/3094/1194 +f 2586/3096/1195 2587/3104/1195 2584/3097/1195 +f 2591/3099/1192 2588/3363/1192 2589/3100/1192 +f 2591/3102/1193 2590/3101/1193 2586/3096/1193 +f 2587/3104/1188 2586/3096/1188 2590/3101/1188 +f 2587/3104/1194 2589/3100/1194 2588/3105/1194 +f 2594/3107/1195 2595/3115/1195 2592/3108/1195 +f 2599/3110/1192 2596/3364/1192 2597/3111/1192 +f 2599/3113/1193 2598/3112/1193 2594/3107/1193 +f 2595/3115/1188 2594/3107/1188 2598/3112/1188 +f 2595/3115/1194 2597/3111/1194 2596/3116/1194 +f 2602/3118/1196 2603/3126/1196 2600/3119/1196 +f 2607/3121/1202 2604/3365/1202 2605/3122/1202 +f 2607/3124/1193 2606/3123/1193 2602/3118/1193 +f 2603/3126/1188 2602/3118/1188 2606/3123/1188 +f 2603/3126/1194 2605/3122/1194 2604/3127/1194 +f 2623/3131/1188 2620/3366/1188 2619/3367/1188 +f 2620/3366/1188 2621/3368/1188 2619/3367/1188 +f 2621/3368/1188 2618/3369/1188 2619/3367/1188 +f 2619/3367/1188 2616/3370/1188 2623/3131/1188 +f 2616/3370/1188 2617/3129/1188 2623/3131/1188 +f 2625/3132/1188 2627/3371/1188 2626/3133/1188 +f 2629/3135/1188 2631/3372/1188 2630/3136/1188 +f 2636/3138/1197 2634/3373/1197 2635/3139/1197 +f 2638/3141/1205 2637/3143/1205 2635/3139/1205 +f 2637/3143/1199 2638/3374/1199 2632/3144/1199 +f 2639/3145/1200 2632/3375/1200 2636/3146/1200 +f 2635/3139/1186 2637/3143/1186 2639/3145/1186 +f 2668/3147/1197 2666/3376/1197 2667/3148/1197 +f 2670/3150/1205 2669/3152/1205 2667/3148/1205 +f 2669/3152/1199 2670/3377/1199 2664/3153/1199 +f 2671/3154/1200 2664/3378/1200 2668/3155/1200 +f 2667/3148/1186 2669/3152/1186 2671/3154/1186 +f 2700/3156/1197 2698/3379/1197 2699/3157/1197 +f 2702/3159/1205 2701/3161/1205 2699/3157/1205 +f 2701/3161/1199 2702/3380/1199 2696/3162/1199 +f 2703/3163/1200 2696/3381/1200 2700/3164/1200 +f 2699/3157/1186 2701/3161/1186 2703/3163/1186 +f 2732/3165/1197 2730/3382/1197 2731/3166/1197 +f 2734/3168/1205 2733/3170/1205 2731/3166/1205 +f 2733/3170/1199 2734/3383/1199 2728/3171/1199 +f 2735/3172/1200 2728/3384/1200 2732/3173/1200 +f 2731/3166/1186 2733/3170/1186 2735/3172/1186 +f 2764/3174/1197 2762/3385/1197 2763/3175/1197 +f 2766/3177/1205 2765/3179/1205 2763/3175/1205 +f 2765/3179/1199 2766/3386/1199 2760/3180/1199 +f 2767/3181/1200 2760/3387/1200 2764/3182/1200 +f 2763/3175/1186 2765/3179/1186 2767/3181/1186 +f 2796/3183/1197 2794/3388/1197 2795/3184/1197 +f 2798/3186/1205 2797/3188/1205 2795/3184/1205 +f 2797/3188/1199 2798/3389/1199 2792/3189/1199 +f 2799/3190/1200 2792/3390/1200 2796/3191/1200 +f 2795/3184/1186 2797/3188/1186 2799/3190/1186 +f 2828/3192/1197 2826/3391/1197 2827/3193/1197 +f 2830/3195/1205 2829/3197/1205 2827/3193/1205 +f 2829/3197/1199 2830/3392/1199 2824/3198/1199 +f 2831/3199/1200 2824/3393/1200 2828/3200/1200 +f 2827/3193/1186 2829/3197/1186 2831/3199/1186 +f 2860/3201/1197 2858/3394/1197 2859/3202/1197 +f 2862/3204/1205 2861/3206/1205 2859/3202/1205 +f 2861/3206/1199 2862/3395/1199 2856/3207/1199 +f 2863/3208/1200 2856/3396/1200 2860/3209/1200 +f 2859/3202/1186 2861/3206/1186 2863/3208/1186 +f 2928/3210/1188 2931/3214/1188 2930/3211/1188 +f 2890/3213/1202 2930/3211/1202 2931/3214/1202 +f 2888/3216/1203 2931/3214/1203 2928/3210/1203 +f 2889/3218/1204 2929/3212/1204 2930/3211/1204 +f 2927/3220/1196 2928/3210/1196 2929/3212/1196 +f 2932/3222/1196 2891/3229/1196 2892/3223/1196 +f 2934/3225/1204 2892/3223/1204 2893/3226/1204 +f 2933/3228/1203 2894/3232/1203 2891/3229/1203 +f 2935/3231/1202 2893/3226/1202 2894/3232/1202 +f 2891/3229/1188 2894/3232/1188 2893/3226/1188 +f 2898/3234/1188 2895/3238/1188 2896/3235/1188 +f 2926/3237/1202 2896/3235/1202 2895/3238/1202 +f 2924/3240/1203 2895/3238/1203 2898/3234/1203 +f 2925/3242/1204 2897/3236/1204 2896/3235/1204 +f 2917/3244/1196 2898/3234/1196 2897/3236/1196 +f 2902/3246/1196 2903/3253/1196 2904/3247/1196 +f 2900/3249/1204 2904/3247/1204 2905/3250/1204 +f 2901/3252/1203 2906/3256/1203 2903/3253/1203 +f 2899/3255/1202 2905/3250/1202 2906/3256/1202 +f 2903/3253/1188 2906/3256/1188 2905/3250/1188 +f 2914/3258/1188 2911/3262/1188 2912/3259/1188 +f 2919/3261/1202 2912/3259/1202 2911/3262/1202 +f 2916/3264/1203 2911/3262/1203 2914/3258/1203 +f 2918/3266/1204 2913/3260/1204 2912/3259/1204 +f 2915/3268/1196 2914/3258/1196 2913/3260/1196 +f 2910/3270/1196 2920/3277/1196 2921/3271/1196 +f 2908/3273/1204 2921/3271/1204 2922/3274/1204 +f 2909/3276/1203 2923/3280/1203 2920/3277/1203 +f 2907/3279/1202 2922/3274/1202 2923/3280/1202 +f 2920/3277/1188 2923/3280/1188 2922/3274/1188 +f 2976/3282/1188 2979/3286/1188 2978/3283/1188 +f 2938/3285/1202 2978/3283/1202 2979/3286/1202 +f 2936/3288/1203 2979/3286/1203 2976/3282/1203 +f 2937/3290/1204 2977/3284/1204 2978/3283/1204 +f 2975/3292/1196 2976/3282/1196 2977/3284/1196 +f 2980/3294/1196 2939/3301/1196 2940/3295/1196 +f 2982/3297/1204 2940/3295/1204 2941/3298/1204 +f 2981/3300/1203 2942/3304/1203 2939/3301/1203 +f 2983/3303/1202 2941/3298/1202 2942/3304/1202 +f 2939/3301/1188 2942/3304/1188 2941/3298/1188 +f 2946/3306/1188 2943/3310/1188 2944/3307/1188 +f 2974/3309/1202 2944/3307/1202 2943/3310/1202 +f 2972/3312/1203 2943/3310/1203 2946/3306/1203 +f 2973/3314/1204 2945/3308/1204 2944/3307/1204 +f 2965/3316/1196 2946/3306/1196 2945/3308/1196 +f 2950/3318/1196 2951/3325/1196 2952/3319/1196 +f 2948/3321/1204 2952/3319/1204 2953/3322/1204 +f 2949/3324/1203 2954/3328/1203 2951/3325/1203 +f 2947/3327/1202 2953/3322/1202 2954/3328/1202 +f 2951/3325/1188 2954/3328/1188 2953/3322/1188 +f 2962/3330/1188 2959/3334/1188 2960/3331/1188 +f 2967/3333/1202 2960/3331/1202 2959/3334/1202 +f 2964/3336/1203 2959/3334/1203 2962/3330/1203 +f 2966/3338/1204 2961/3332/1204 2960/3331/1204 +f 2963/3340/1196 2962/3330/1196 2961/3332/1196 +f 2958/3342/1196 2968/3349/1196 2969/3343/1196 +f 2956/3345/1204 2969/3343/1204 2970/3346/1204 +f 2957/3348/1203 2971/3352/1203 2968/3349/1203 +f 2955/3351/1202 2970/3346/1202 2971/3352/1202 +f 2968/3349/1188 2971/3352/1188 2970/3346/1188 s 1 -f 1086/2023/312 1109/1663/327 1097/2024/328 -f 1088/2025/329 1099/1665/330 1087/2026/331 -f 1095/2027/306 1106/1668/332 1094/2028/333 -f 1091/2029/334 1104/1658/335 1103/1676/336 -f 1088/2025/329 1101/1652/337 1100/1654/338 -f 1096/2030/339 1107/1657/340 1095/2031/306 -f 1093/2032/341 1104/1658/335 1092/2033/311 -f 1090/2034/342 1101/1652/337 1089/2035/309 -f 1097/2024/328 1108/1655/343 1096/2030/339 -f 1087/2026/331 1098/1667/344 1086/2023/312 -f 1094/2028/333 1105/1669/345 1093/2032/341 -f 1091/2029/334 1102/1661/346 1090/2034/342 -f 1116/1660/347 1127/2036/328 1115/1670/348 -f 1113/1662/349 1124/2037/333 1112/1653/350 -f 1120/1664/351 1131/2038/309 1119/1656/352 -f 1117/1659/353 1128/2039/312 1116/1660/347 -f 1114/1671/354 1125/2040/306 1113/1662/349 -f 1121/1672/355 1132/2041/342 1120/1664/351 -f 1111/1673/356 1122/2042/311 1110/1666/357 -f 1118/1675/358 1129/2043/331 1117/1659/353 -f 1115/1670/348 1126/2044/339 1114/1671/354 -f 1110/1666/357 1133/2045/334 1121/1672/355 -f 1112/1653/350 1123/2046/341 1111/1673/356 -f 1119/1674/352 1130/2047/329 1118/1675/358 -f 1085/2048/312 1145/1688/327 1074/2049/328 -f 1083/2050/329 1135/1690/330 1084/2051/331 -f 1076/2052/306 1142/1693/332 1077/2053/333 -f 1080/2054/334 1140/1683/335 1139/1701/336 -f 1083/2050/329 1137/1677/337 1136/1679/338 -f 1075/2055/339 1143/1682/340 1076/2056/306 -f 1078/2057/341 1140/1683/335 1079/2058/311 -f 1081/2059/342 1137/1677/337 1082/2060/309 -f 1074/2049/328 1144/1680/343 1075/2055/339 -f 1084/2051/331 1134/1692/344 1085/2048/312 -f 1077/2053/333 1141/1694/345 1078/2057/341 -f 1080/2054/334 1138/1686/346 1081/2059/342 -f 1152/1685/347 1163/2061/328 1151/1695/348 -f 1149/1687/349 1160/2062/333 1148/1678/350 -f 1156/1689/351 1167/2063/309 1155/1681/352 -f 1153/1684/353 1164/2064/312 1152/1685/347 -f 1150/1696/354 1161/2065/306 1149/1687/349 -f 1157/1697/355 1168/2066/342 1156/1689/351 -f 1147/1698/356 1158/2067/311 1146/1691/357 -f 1154/1700/358 1165/2068/331 1153/1684/353 -f 1151/1695/348 1162/2069/339 1150/1696/354 -f 1146/1691/357 1169/2070/334 1157/1697/355 -f 1148/1678/350 1159/2071/341 1147/1698/356 -f 1155/1699/352 1166/2072/329 1154/1700/358 -f 1195/2073/359 1202/2074/360 1203/2075/361 -f 1193/2076/362 1200/2077/363 1192/2078/306 -f 1191/2079/364 1198/2080/365 1190/2081/311 -f 1189/2082/366 1196/2083/367 1188/2084/309 -f 1186/2085/312 1194/2086/368 1195/2073/359 -f 1186/2085/312 1201/2087/369 1193/2076/362 -f 1192/2088/306 1199/2089/370 1191/2079/364 -f 1190/2081/311 1197/2090/371 1189/2082/366 -f 1188/2084/309 1194/2086/368 1187/2091/372 -f 1206/2092/373 1208/2093/374 1203/2094/361 -f 1195/2073/359 1209/2095/375 1201/2087/369 -f 1199/2089/370 1208/2096/374 1207/2097/376 -f 1198/2080/365 1205/2098/377 1197/2090/371 -f 1194/2086/368 1204/2099/378 1202/2074/360 -f 1200/2077/363 1209/2095/375 1208/2100/374 -f 1198/2080/365 1207/2097/376 1206/2101/373 -f 1197/2090/371 1204/2099/378 1196/2083/367 -f 1236/2102/310 1249/2103/379 1235/2104/380 -f 1238/2105/311 1247/2106/381 1237/2107/382 -f 1240/2108/307 1245/2109/383 1239/2110/384 -f 1234/2111/312 1243/1755/385 1241/2112/386 -f 1235/2104/380 1248/1756/387 1234/2111/312 -f 1237/2107/382 1246/2113/388 1236/2102/310 -f 1239/2110/384 1244/2114/389 1238/2105/311 -f 1241/2112/386 1242/1996/390 1240/2115/307 -f 1274/2116/368 1283/2117/361 1275/2118/359 -f 1273/2119/362 1280/2120/363 1272/2121/306 -f 1271/2122/364 1278/2123/365 1270/2124/311 -f 1269/2125/366 1276/2126/367 1268/2127/309 -f 1266/2128/312 1274/2116/368 1275/2118/359 -f 1266/2128/312 1281/2129/369 1273/2119/362 -f 1272/2130/306 1279/2131/370 1271/2122/364 -f 1270/2124/311 1277/2132/371 1269/2125/366 -f 1267/2133/372 1276/2126/367 1274/2116/368 -f 1286/2134/373 1288/2135/374 1283/2136/361 -f 1275/2118/359 1289/2137/375 1281/2129/369 -f 1280/2138/363 1287/2139/376 1279/2131/370 -f 1278/2123/365 1285/2140/377 1277/2132/371 -f 1274/2116/368 1284/2141/378 1282/2142/360 -f 1280/2120/363 1289/2137/375 1288/2143/374 -f 1278/2123/365 1287/2139/376 1286/2144/373 -f 1277/2132/371 1284/2141/378 1276/2126/367 -f 1307/2145/359 1314/2146/360 1315/2147/361 -f 1305/2148/362 1312/2149/363 1304/2150/306 -f 1303/2151/364 1310/2152/365 1302/2153/311 -f 1301/2154/366 1308/2155/367 1300/2156/309 -f 1298/2157/312 1306/2158/368 1307/2145/359 -f 1298/2157/312 1313/2159/369 1305/2148/362 -f 1304/2160/306 1311/2161/370 1303/2151/364 -f 1302/2153/311 1309/2162/371 1301/2154/366 -f 1299/2163/372 1308/2155/367 1306/2158/368 -f 1318/2164/373 1320/2165/374 1315/2166/361 -f 1307/2145/359 1321/2167/375 1313/2159/369 -f 1312/2168/363 1319/2169/376 1311/2161/370 -f 1310/2152/365 1317/2170/377 1309/2162/371 -f 1306/2158/368 1316/2171/378 1314/2146/360 -f 1312/2149/363 1321/2167/375 1320/2172/374 -f 1310/2152/365 1319/2169/376 1318/2173/373 -f 1309/2162/371 1316/2171/378 1308/2155/367 -f 1343/2174/367 1334/2175/377 1335/2176/378 -f 1341/2177/365 1332/2178/376 1333/2179/373 -f 1339/2180/363 1330/2181/375 1331/2182/374 -f 1345/2183/368 1335/2176/378 1337/2184/360 -f 1341/2177/365 1334/2175/377 1342/2185/371 -f 1339/2186/363 1332/2178/376 1340/2187/370 -f 1344/2188/359 1330/2181/375 1338/2189/369 -f 1333/2190/373 1331/2191/374 1336/2192/361 -f 1352/2193/372 1343/2174/367 1345/2183/368 -f 1349/2194/311 1342/2185/371 1350/2195/366 -f 1347/2196/306 1340/2187/370 1348/2197/364 -f 1353/2198/312 1338/2189/369 1346/2199/362 -f 1353/2198/312 1345/2183/368 1344/2188/359 -f 1350/2195/366 1343/2174/367 1351/2200/309 -f 1348/2197/364 1341/2177/365 1349/2194/311 -f 1346/2199/362 1339/2180/363 1347/2201/306 -f 1344/2188/359 1337/2184/360 1336/2202/361 -f 1371/2203/359 1378/2204/360 1379/2205/361 -f 1369/2206/362 1376/2207/363 1368/2208/306 -f 1367/2209/364 1374/2210/365 1366/2211/311 -f 1364/2212/309 1373/2213/371 1372/2214/367 -f 1362/2215/312 1370/2216/368 1371/2203/359 -f 1362/2215/312 1377/2217/369 1369/2206/362 -f 1368/2218/306 1375/2219/370 1367/2209/364 -f 1366/2211/311 1373/2213/371 1365/2220/366 -f 1364/2212/309 1370/2216/368 1363/2221/372 -f 1382/2222/373 1384/2223/374 1379/2224/361 -f 1371/2203/359 1385/2225/375 1377/2217/369 -f 1376/2226/363 1383/2227/376 1375/2219/370 -f 1374/2210/365 1381/2228/377 1373/2213/371 -f 1370/2216/368 1380/2229/378 1378/2204/360 -f 1376/2207/363 1385/2225/375 1384/2230/374 -f 1374/2210/365 1383/2227/376 1382/2231/373 -f 1373/2213/371 1380/2229/378 1372/2214/367 -f 1406/2232/371 1399/2233/378 1407/2234/367 -f 1405/2235/365 1396/2236/376 1397/2237/373 -f 1403/2238/363 1394/2239/375 1395/2240/374 -f 1409/2241/368 1399/2233/378 1401/2242/360 -f 1405/2235/365 1398/2243/377 1406/2232/371 -f 1403/2244/363 1396/2236/376 1404/2245/370 -f 1408/2246/359 1394/2239/375 1402/2247/369 -f 1397/2248/373 1395/2249/374 1400/2250/361 -f 1415/2251/309 1409/2241/368 1416/2252/372 -f 1413/2253/311 1406/2232/371 1414/2254/366 -f 1411/2255/306 1404/2245/370 1412/2256/364 -f 1417/2257/312 1402/2247/369 1410/2258/362 -f 1417/2257/312 1409/2241/368 1408/2246/359 -f 1415/2251/309 1406/2232/371 1407/2234/367 -f 1412/2256/364 1405/2235/365 1413/2253/311 -f 1410/2258/362 1403/2238/363 1411/2259/306 -f 1408/2246/359 1401/2242/360 1400/2260/361 -f 1435/2261/359 1442/2262/360 1443/2263/361 -f 1433/2264/362 1440/2265/363 1432/2266/306 -f 1431/2267/364 1438/2268/365 1430/2269/311 -f 1429/2270/366 1436/2271/367 1428/2272/309 -f 1426/2273/312 1434/2274/368 1435/2261/359 -f 1426/2273/312 1441/2275/369 1433/2264/362 -f 1432/2276/306 1439/2277/370 1431/2267/364 -f 1430/2269/311 1437/2278/371 1429/2270/366 -f 1427/2279/372 1436/2271/367 1434/2274/368 -f 1446/2280/373 1448/2281/374 1443/2282/361 -f 1435/2261/359 1449/2283/375 1441/2275/369 -f 1440/2284/363 1447/2285/376 1439/2277/370 -f 1437/2278/371 1446/2286/373 1445/2287/377 -f 1434/2274/368 1444/2288/378 1442/2262/360 -f 1440/2265/363 1449/2283/375 1448/2289/374 -f 1438/2268/365 1447/2285/376 1446/2286/373 -f 1437/2278/371 1444/2288/378 1436/2271/367 -f 1471/2290/367 1462/2291/377 1463/2292/378 -f 1469/2293/365 1460/2294/376 1461/2295/373 -f 1467/2296/363 1458/2297/375 1459/2298/374 -f 1473/2299/368 1463/2292/378 1465/2300/360 -f 1470/2301/371 1461/2295/373 1462/2291/377 -f 1467/2302/363 1460/2294/376 1468/2303/370 -f 1472/2304/359 1458/2297/375 1466/2305/369 -f 1461/2306/373 1459/2307/374 1464/2308/361 -f 1480/2309/372 1471/2290/367 1473/2299/368 -f 1477/2310/311 1470/2301/371 1478/2311/366 -f 1475/2312/306 1468/2303/370 1476/2313/364 -f 1481/2314/312 1466/2305/369 1474/2315/362 -f 1481/2314/312 1473/2299/368 1472/2304/359 -f 1478/2311/366 1471/2290/367 1479/2316/309 -f 1476/2313/364 1469/2293/365 1477/2310/311 -f 1474/2315/362 1467/2296/363 1475/2317/306 -f 1472/2304/359 1465/2300/360 1464/2318/361 -f 1502/2319/371 1495/2320/378 1503/2321/367 -f 1501/2322/365 1492/2323/376 1493/2324/373 -f 1499/2325/363 1490/2326/375 1491/2327/374 -f 1505/2328/368 1495/2320/378 1497/2329/360 -f 1501/2322/365 1494/2330/377 1502/2319/371 -f 1499/2331/363 1492/2323/376 1500/2332/370 -f 1504/2333/359 1490/2326/375 1498/2334/369 -f 1493/2335/373 1491/2336/374 1496/2337/361 -f 1511/2338/309 1505/2328/368 1512/2339/372 -f 1509/2340/311 1502/2319/371 1510/2341/366 -f 1507/2342/306 1500/2332/370 1508/2343/364 -f 1513/2344/312 1498/2334/369 1506/2345/362 -f 1513/2344/312 1505/2328/368 1504/2333/359 -f 1510/2341/366 1503/2321/367 1511/2338/309 -f 1508/2343/364 1501/2322/365 1509/2340/311 -f 1506/2345/362 1499/2325/363 1507/2346/306 -f 1504/2333/359 1497/2329/360 1496/2347/361 -f 1086/2023/312 1098/1667/344 1109/1663/327 -f 1088/2025/329 1100/1654/338 1099/1665/330 -f 1095/2027/306 1107/1983/340 1106/1668/332 -f 1091/2029/334 1092/2033/311 1104/1658/335 -f 1088/2025/329 1089/2035/309 1101/1652/337 -f 1096/2030/339 1108/1655/343 1107/1657/340 -f 1093/2032/341 1105/1669/345 1104/1658/335 -f 1090/2034/342 1102/1661/346 1101/1652/337 -f 1097/2024/328 1109/1663/327 1108/1655/343 -f 1087/2026/331 1099/1665/330 1098/1667/344 -f 1094/2028/333 1106/1668/332 1105/1669/345 -f 1091/2029/334 1103/1676/336 1102/1661/346 -f 1116/1660/347 1128/2039/312 1127/2036/328 -f 1113/1662/349 1125/2040/306 1124/2037/333 -f 1120/1664/351 1132/2041/342 1131/2038/309 -f 1117/1659/353 1129/2043/331 1128/2039/312 -f 1114/1671/354 1126/2044/339 1125/2040/306 -f 1121/1672/355 1133/2045/334 1132/2041/342 -f 1111/1673/356 1123/2046/341 1122/2042/311 -f 1118/1675/358 1130/2047/329 1129/2043/331 -f 1115/1670/348 1127/2036/328 1126/2044/339 -f 1110/1666/357 1122/2042/311 1133/2045/334 -f 1112/1653/350 1124/2037/333 1123/2046/341 -f 1119/1674/352 1131/2348/309 1130/2047/329 -f 1085/2048/312 1134/1692/344 1145/1688/327 -f 1083/2050/329 1136/1679/338 1135/1690/330 -f 1076/2052/306 1143/1984/340 1142/1693/332 -f 1080/2054/334 1079/2058/311 1140/1683/335 -f 1083/2050/329 1082/2060/309 1137/1677/337 -f 1075/2055/339 1144/1680/343 1143/1682/340 -f 1078/2057/341 1141/1694/345 1140/1683/335 -f 1081/2059/342 1138/1686/346 1137/1677/337 -f 1074/2049/328 1145/1688/327 1144/1680/343 -f 1084/2051/331 1135/1690/330 1134/1692/344 -f 1077/2053/333 1142/1693/332 1141/1694/345 -f 1080/2054/334 1139/1701/336 1138/1686/346 -f 1152/1685/347 1164/2064/312 1163/2061/328 -f 1149/1687/349 1161/2065/306 1160/2062/333 -f 1156/1689/351 1168/2066/342 1167/2063/309 -f 1153/1684/353 1165/2068/331 1164/2064/312 -f 1150/1696/354 1162/2069/339 1161/2065/306 -f 1157/1697/355 1169/2070/334 1168/2066/342 -f 1147/1698/356 1159/2071/341 1158/2067/311 -f 1154/1700/358 1166/2072/329 1165/2068/331 -f 1151/1695/348 1163/2061/328 1162/2069/339 -f 1146/1691/357 1158/2067/311 1169/2070/334 -f 1148/1678/350 1160/2062/333 1159/2071/341 -f 1155/1699/352 1167/2349/309 1166/2072/329 -f 1195/2073/359 1194/2086/368 1202/2074/360 -f 1193/2076/362 1201/2087/369 1200/2077/363 -f 1191/2079/364 1199/2089/370 1198/2080/365 -f 1189/2082/366 1197/2090/371 1196/2083/367 -f 1186/2085/312 1187/2091/372 1194/2086/368 -f 1186/2085/312 1195/2073/359 1201/2087/369 -f 1192/2088/306 1200/2350/363 1199/2089/370 -f 1190/2081/311 1198/2080/365 1197/2090/371 -f 1188/2084/309 1196/2083/367 1194/2086/368 -f 1203/2094/361 1202/2351/360 1204/2352/378 -f 1204/2352/378 1205/2353/377 1206/2092/373 -f 1206/2092/373 1207/2354/376 1208/2093/374 -f 1208/2093/374 1209/2095/375 1203/2094/361 -f 1203/2094/361 1204/2352/378 1206/2092/373 -f 1195/2073/359 1203/2075/361 1209/2095/375 -f 1199/2089/370 1200/2350/363 1208/2096/374 -f 1198/2080/365 1206/2101/373 1205/2098/377 -f 1194/2086/368 1196/2083/367 1204/2099/378 -f 1200/2077/363 1201/2087/369 1209/2095/375 -f 1198/2080/365 1199/2089/370 1207/2097/376 -f 1197/2090/371 1205/2098/377 1204/2099/378 -f 1236/2102/310 1246/2113/388 1249/2103/379 -f 1238/2105/311 1244/2114/389 1247/2106/381 -f 1240/2108/307 1242/2355/390 1245/2109/383 -f 1234/2111/312 1248/1756/387 1243/1755/385 -f 1235/2104/380 1249/2103/379 1248/1756/387 -f 1237/2107/382 1247/2106/381 1246/2113/388 -f 1239/2110/384 1245/2109/383 1244/2114/389 -f 1241/2112/386 1243/1755/385 1242/1996/390 -f 1274/2116/368 1282/2142/360 1283/2117/361 -f 1273/2119/362 1281/2129/369 1280/2120/363 -f 1271/2122/364 1279/2131/370 1278/2123/365 -f 1269/2125/366 1277/2132/371 1276/2126/367 -f 1266/2128/312 1267/2133/372 1274/2116/368 -f 1266/2128/312 1275/2118/359 1281/2129/369 -f 1272/2130/306 1280/2138/363 1279/2131/370 -f 1270/2124/311 1278/2123/365 1277/2132/371 -f 1267/2133/372 1268/2127/309 1276/2126/367 -f 1283/2136/361 1282/2356/360 1284/2357/378 -f 1284/2357/378 1285/2358/377 1286/2134/373 -f 1286/2134/373 1287/2359/376 1288/2135/374 -f 1288/2135/374 1289/2137/375 1283/2136/361 -f 1283/2136/361 1284/2357/378 1286/2134/373 -f 1275/2118/359 1283/2117/361 1289/2137/375 -f 1280/2138/363 1288/2360/374 1287/2139/376 -f 1278/2123/365 1286/2144/373 1285/2140/377 -f 1274/2116/368 1276/2126/367 1284/2141/378 -f 1280/2120/363 1281/2129/369 1289/2137/375 -f 1278/2123/365 1279/2131/370 1287/2139/376 -f 1277/2132/371 1285/2140/377 1284/2141/378 -f 1307/2145/359 1306/2158/368 1314/2146/360 -f 1305/2148/362 1313/2159/369 1312/2149/363 -f 1303/2151/364 1311/2161/370 1310/2152/365 -f 1301/2154/366 1309/2162/371 1308/2155/367 -f 1298/2157/312 1299/2163/372 1306/2158/368 -f 1298/2157/312 1307/2145/359 1313/2159/369 -f 1304/2160/306 1312/2168/363 1311/2161/370 -f 1302/2153/311 1310/2152/365 1309/2162/371 -f 1299/2163/372 1300/2156/309 1308/2155/367 -f 1315/2166/361 1314/2361/360 1316/2362/378 -f 1316/2362/378 1317/2363/377 1318/2164/373 -f 1318/2164/373 1319/2364/376 1320/2165/374 -f 1320/2165/374 1321/2167/375 1315/2166/361 -f 1315/2166/361 1316/2362/378 1318/2164/373 -f 1307/2145/359 1315/2147/361 1321/2167/375 -f 1312/2168/363 1320/2365/374 1319/2169/376 -f 1310/2152/365 1318/2173/373 1317/2170/377 -f 1306/2158/368 1308/2155/367 1316/2171/378 -f 1312/2149/363 1313/2159/369 1321/2167/375 -f 1310/2152/365 1311/2161/370 1319/2169/376 -f 1309/2162/371 1317/2170/377 1316/2171/378 -f 1343/2174/367 1342/2185/371 1334/2175/377 -f 1341/2177/365 1340/2187/370 1332/2178/376 -f 1339/2180/363 1338/2189/369 1330/2181/375 -f 1345/2183/368 1343/2174/367 1335/2176/378 -f 1341/2177/365 1333/2179/373 1334/2175/377 -f 1339/2186/363 1331/2366/374 1332/2178/376 -f 1344/2188/359 1336/2202/361 1330/2181/375 -f 1336/2192/361 1337/2367/360 1335/2368/378 -f 1335/2368/378 1334/2369/377 1333/2190/373 -f 1333/2190/373 1332/2370/376 1331/2191/374 -f 1331/2191/374 1330/2181/375 1336/2192/361 -f 1336/2192/361 1335/2368/378 1333/2190/373 -f 1352/2193/372 1351/2200/309 1343/2174/367 -f 1349/2194/311 1341/2177/365 1342/2185/371 -f 1347/2196/306 1339/2186/363 1340/2187/370 -f 1353/2198/312 1344/2188/359 1338/2189/369 -f 1353/2198/312 1352/2193/372 1345/2183/368 -f 1350/2195/366 1342/2185/371 1343/2174/367 -f 1348/2197/364 1340/2187/370 1341/2177/365 -f 1346/2199/362 1338/2189/369 1339/2180/363 -f 1344/2188/359 1345/2183/368 1337/2184/360 -f 1371/2203/359 1370/2216/368 1378/2204/360 -f 1369/2206/362 1377/2217/369 1376/2207/363 -f 1367/2209/364 1375/2219/370 1374/2210/365 -f 1364/2212/309 1365/2220/366 1373/2213/371 -f 1362/2215/312 1363/2221/372 1370/2216/368 -f 1362/2215/312 1371/2203/359 1377/2217/369 -f 1368/2218/306 1376/2226/363 1375/2219/370 -f 1366/2211/311 1374/2210/365 1373/2213/371 -f 1364/2212/309 1372/2214/367 1370/2216/368 -f 1379/2224/361 1378/2371/360 1380/2372/378 -f 1380/2372/378 1381/2373/377 1382/2222/373 -f 1382/2222/373 1383/2374/376 1384/2223/374 -f 1384/2223/374 1385/2225/375 1379/2224/361 -f 1379/2224/361 1380/2372/378 1382/2222/373 -f 1371/2203/359 1379/2205/361 1385/2225/375 -f 1376/2226/363 1384/2375/374 1383/2227/376 -f 1374/2210/365 1382/2231/373 1381/2228/377 -f 1370/2216/368 1372/2214/367 1380/2229/378 -f 1376/2207/363 1377/2217/369 1385/2225/375 -f 1374/2210/365 1375/2219/370 1383/2227/376 -f 1373/2213/371 1381/2228/377 1380/2229/378 -f 1406/2232/371 1398/2243/377 1399/2233/378 -f 1405/2235/365 1404/2245/370 1396/2236/376 -f 1403/2238/363 1402/2247/369 1394/2239/375 -f 1409/2241/368 1407/2234/367 1399/2233/378 -f 1405/2235/365 1397/2237/373 1398/2243/377 -f 1403/2244/363 1395/2376/374 1396/2236/376 -f 1408/2246/359 1400/2260/361 1394/2239/375 -f 1400/2250/361 1401/2377/360 1399/2378/378 -f 1399/2378/378 1398/2379/377 1397/2248/373 -f 1397/2248/373 1396/2380/376 1395/2249/374 -f 1395/2249/374 1394/2239/375 1400/2250/361 -f 1400/2250/361 1399/2378/378 1397/2248/373 -f 1415/2251/309 1407/2234/367 1409/2241/368 -f 1413/2253/311 1405/2235/365 1406/2232/371 -f 1411/2255/306 1403/2244/363 1404/2245/370 -f 1417/2257/312 1408/2246/359 1402/2247/369 -f 1417/2257/312 1416/2252/372 1409/2241/368 -f 1415/2251/309 1414/2254/366 1406/2232/371 -f 1412/2256/364 1404/2245/370 1405/2235/365 -f 1410/2258/362 1402/2247/369 1403/2238/363 -f 1408/2246/359 1409/2241/368 1401/2242/360 -f 1435/2261/359 1434/2274/368 1442/2262/360 -f 1433/2264/362 1441/2275/369 1440/2265/363 -f 1431/2267/364 1439/2277/370 1438/2268/365 -f 1429/2270/366 1437/2278/371 1436/2271/367 -f 1426/2273/312 1427/2279/372 1434/2274/368 -f 1426/2273/312 1435/2261/359 1441/2275/369 -f 1432/2276/306 1440/2284/363 1439/2277/370 -f 1430/2269/311 1438/2268/365 1437/2278/371 -f 1427/2279/372 1428/2272/309 1436/2271/367 -f 1443/2282/361 1442/2381/360 1444/2382/378 -f 1444/2382/378 1445/2383/377 1446/2280/373 -f 1446/2280/373 1447/2384/376 1448/2281/374 -f 1448/2281/374 1449/2283/375 1443/2282/361 -f 1443/2282/361 1444/2382/378 1446/2280/373 -f 1435/2261/359 1443/2263/361 1449/2283/375 -f 1440/2284/363 1448/2385/374 1447/2285/376 -f 1437/2278/371 1438/2268/365 1446/2286/373 -f 1434/2274/368 1436/2271/367 1444/2288/378 -f 1440/2265/363 1441/2275/369 1449/2283/375 -f 1438/2268/365 1439/2277/370 1447/2285/376 -f 1437/2278/371 1445/2287/377 1444/2288/378 -f 1471/2290/367 1470/2301/371 1462/2291/377 -f 1469/2293/365 1468/2303/370 1460/2294/376 -f 1467/2296/363 1466/2305/369 1458/2297/375 -f 1473/2299/368 1471/2290/367 1463/2292/378 -f 1470/2301/371 1469/2293/365 1461/2295/373 -f 1467/2302/363 1459/2386/374 1460/2294/376 -f 1472/2304/359 1464/2318/361 1458/2297/375 -f 1464/2308/361 1465/2387/360 1463/2388/378 -f 1463/2388/378 1462/2389/377 1461/2306/373 -f 1461/2306/373 1460/2390/376 1459/2307/374 -f 1459/2307/374 1458/2297/375 1464/2308/361 -f 1464/2308/361 1463/2388/378 1461/2306/373 -f 1480/2309/372 1479/2316/309 1471/2290/367 -f 1477/2310/311 1469/2293/365 1470/2301/371 -f 1475/2312/306 1467/2302/363 1468/2303/370 -f 1481/2314/312 1472/2304/359 1466/2305/369 -f 1481/2314/312 1480/2309/372 1473/2299/368 -f 1478/2311/366 1470/2301/371 1471/2290/367 -f 1476/2313/364 1468/2303/370 1469/2293/365 -f 1474/2315/362 1466/2305/369 1467/2296/363 -f 1472/2304/359 1473/2299/368 1465/2300/360 -f 1502/2319/371 1494/2330/377 1495/2320/378 -f 1501/2322/365 1500/2332/370 1492/2323/376 -f 1499/2325/363 1498/2334/369 1490/2326/375 -f 1505/2328/368 1503/2321/367 1495/2320/378 -f 1501/2322/365 1493/2324/373 1494/2330/377 -f 1499/2331/363 1491/2391/374 1492/2323/376 -f 1504/2333/359 1496/2347/361 1490/2326/375 -f 1496/2337/361 1497/2392/360 1495/2393/378 -f 1495/2393/378 1494/2394/377 1493/2335/373 -f 1493/2335/373 1492/2395/376 1491/2336/374 -f 1491/2336/374 1490/2326/375 1496/2337/361 -f 1496/2337/361 1495/2393/378 1493/2335/373 -f 1511/2338/309 1503/2321/367 1505/2328/368 -f 1509/2340/311 1501/2322/365 1502/2319/371 -f 1507/2342/306 1499/2331/363 1500/2332/370 -f 1513/2344/312 1504/2333/359 1498/2334/369 -f 1513/2344/312 1512/2339/372 1505/2328/368 -f 1510/2341/366 1502/2319/371 1503/2321/367 -f 1508/2343/364 1500/2332/370 1501/2322/365 -f 1506/2345/362 1498/2334/369 1499/2325/363 -f 1504/2333/359 1505/2328/368 1497/2329/360 +f 2460/3397/1191 2483/3037/1206 2471/3398/1207 +f 2462/3399/1208 2473/3039/1209 2461/3400/1210 +f 2469/3401/1185 2480/3042/1211 2468/3402/1212 +f 2465/3403/1213 2478/3032/1214 2477/3050/1215 +f 2462/3399/1208 2475/3026/1216 2474/3028/1217 +f 2470/3404/1218 2481/3031/1219 2469/3405/1185 +f 2467/3406/1220 2478/3032/1214 2466/3407/1190 +f 2464/3408/1221 2475/3026/1216 2463/3409/1188 +f 2471/3398/1207 2482/3029/1222 2470/3404/1218 +f 2461/3400/1210 2472/3041/1223 2460/3397/1191 +f 2468/3402/1212 2479/3043/1224 2467/3406/1220 +f 2465/3403/1213 2476/3035/1225 2464/3408/1221 +f 2490/3034/1226 2501/3410/1207 2489/3044/1227 +f 2487/3036/1228 2498/3411/1212 2486/3027/1229 +f 2494/3038/1230 2505/3412/1188 2493/3030/1231 +f 2491/3033/1232 2502/3413/1191 2490/3034/1226 +f 2488/3045/1233 2499/3414/1185 2487/3036/1228 +f 2495/3046/1234 2506/3415/1221 2494/3038/1230 +f 2485/3047/1235 2496/3416/1190 2484/3040/1236 +f 2492/3049/1237 2503/3417/1210 2491/3033/1232 +f 2489/3044/1227 2500/3418/1218 2488/3045/1233 +f 2484/3040/1236 2507/3419/1213 2495/3046/1234 +f 2486/3027/1229 2497/3420/1220 2485/3047/1235 +f 2493/3048/1231 2504/3421/1208 2492/3049/1237 +f 2459/3422/1191 2519/3062/1206 2448/3423/1207 +f 2457/3424/1208 2509/3064/1209 2458/3425/1210 +f 2450/3426/1185 2516/3067/1211 2451/3427/1212 +f 2454/3428/1213 2514/3057/1214 2513/3075/1215 +f 2457/3424/1208 2511/3051/1216 2510/3053/1217 +f 2449/3429/1218 2517/3056/1219 2450/3430/1185 +f 2452/3431/1220 2514/3057/1214 2453/3432/1190 +f 2455/3433/1221 2511/3051/1216 2456/3434/1188 +f 2448/3423/1207 2518/3054/1222 2449/3429/1218 +f 2458/3425/1210 2508/3066/1223 2459/3422/1191 +f 2451/3427/1212 2515/3068/1224 2452/3431/1220 +f 2454/3428/1213 2512/3060/1225 2455/3433/1221 +f 2526/3059/1226 2537/3435/1207 2525/3069/1227 +f 2523/3061/1228 2534/3436/1212 2522/3052/1229 +f 2530/3063/1230 2541/3437/1188 2529/3055/1231 +f 2527/3058/1232 2538/3438/1191 2526/3059/1226 +f 2524/3070/1233 2535/3439/1185 2523/3061/1228 +f 2531/3071/1234 2542/3440/1221 2530/3063/1230 +f 2521/3072/1235 2532/3441/1190 2520/3065/1236 +f 2528/3074/1237 2539/3442/1210 2527/3058/1232 +f 2525/3069/1227 2536/3443/1218 2524/3070/1233 +f 2520/3065/1236 2543/3444/1213 2531/3071/1234 +f 2522/3052/1229 2533/3445/1220 2521/3072/1235 +f 2529/3073/1231 2540/3446/1208 2528/3074/1237 +f 2569/3447/1238 2576/3448/1239 2577/3449/1240 +f 2567/3450/1241 2574/3451/1242 2566/3452/1185 +f 2565/3453/1243 2572/3454/1244 2564/3455/1190 +f 2563/3456/1245 2570/3457/1246 2562/3458/1188 +f 2560/3459/1191 2568/3460/1247 2569/3447/1238 +f 2560/3459/1191 2575/3461/1248 2567/3450/1241 +f 2566/3462/1185 2573/3463/1249 2565/3453/1243 +f 2564/3455/1190 2571/3464/1250 2563/3456/1245 +f 2562/3458/1188 2568/3460/1247 2561/3465/1251 +f 2580/3466/1252 2582/3467/1253 2577/3468/1240 +f 2569/3447/1238 2583/3469/1254 2575/3461/1248 +f 2573/3463/1249 2582/3470/1253 2581/3471/1255 +f 2572/3454/1244 2579/3472/1256 2571/3464/1250 +f 2568/3460/1247 2578/3473/1257 2576/3448/1239 +f 2574/3451/1242 2583/3469/1254 2582/3474/1253 +f 2572/3454/1244 2581/3471/1255 2580/3475/1252 +f 2571/3464/1250 2578/3473/1257 2570/3457/1246 +f 2610/3476/1189 2623/3477/1258 2609/3478/1259 +f 2612/3479/1190 2621/3480/1260 2611/3481/1261 +f 2614/3482/1186 2619/3483/1262 2613/3484/1263 +f 2608/3485/1191 2617/3129/1264 2615/3486/1265 +f 2609/3478/1259 2622/3130/1266 2608/3485/1191 +f 2611/3481/1261 2620/3487/1267 2610/3476/1189 +f 2613/3484/1263 2618/3488/1268 2612/3479/1190 +f 2615/3486/1265 2616/3370/1269 2614/3489/1186 +f 2648/3490/1247 2657/3491/1240 2649/3492/1238 +f 2647/3493/1241 2654/3494/1242 2646/3495/1185 +f 2645/3496/1243 2652/3497/1244 2644/3498/1190 +f 2643/3499/1245 2650/3500/1246 2642/3501/1188 +f 2640/3502/1191 2648/3490/1247 2649/3492/1238 +f 2640/3502/1191 2655/3503/1248 2647/3493/1241 +f 2646/3504/1185 2653/3505/1249 2645/3496/1243 +f 2644/3498/1190 2651/3506/1250 2643/3499/1245 +f 2641/3507/1251 2650/3500/1246 2648/3490/1247 +f 2660/3508/1252 2662/3509/1253 2657/3510/1240 +f 2649/3492/1238 2663/3511/1254 2655/3503/1248 +f 2654/3512/1242 2661/3513/1255 2653/3505/1249 +f 2652/3497/1244 2659/3514/1256 2651/3506/1250 +f 2648/3490/1247 2658/3515/1257 2656/3516/1239 +f 2654/3494/1242 2663/3511/1254 2662/3517/1253 +f 2652/3497/1244 2661/3513/1255 2660/3518/1252 +f 2651/3506/1250 2658/3515/1257 2650/3500/1246 +f 2681/3519/1238 2688/3520/1239 2689/3521/1240 +f 2679/3522/1241 2686/3523/1242 2678/3524/1185 +f 2677/3525/1243 2684/3526/1244 2676/3527/1190 +f 2675/3528/1245 2682/3529/1246 2674/3530/1188 +f 2672/3531/1191 2680/3532/1247 2681/3519/1238 +f 2672/3531/1191 2687/3533/1248 2679/3522/1241 +f 2678/3534/1185 2685/3535/1249 2677/3525/1243 +f 2676/3527/1190 2683/3536/1250 2675/3528/1245 +f 2673/3537/1251 2682/3529/1246 2680/3532/1247 +f 2692/3538/1252 2694/3539/1253 2689/3540/1240 +f 2681/3519/1238 2695/3541/1254 2687/3533/1248 +f 2686/3542/1242 2693/3543/1255 2685/3535/1249 +f 2684/3526/1244 2691/3544/1256 2683/3536/1250 +f 2680/3532/1247 2690/3545/1257 2688/3520/1239 +f 2686/3523/1242 2695/3541/1254 2694/3546/1253 +f 2684/3526/1244 2693/3543/1255 2692/3547/1252 +f 2683/3536/1250 2690/3545/1257 2682/3529/1246 +f 2717/3548/1246 2708/3549/1256 2709/3550/1257 +f 2715/3551/1244 2706/3552/1255 2707/3553/1252 +f 2713/3554/1242 2704/3555/1254 2705/3556/1253 +f 2719/3557/1247 2709/3550/1257 2711/3558/1239 +f 2715/3551/1244 2708/3549/1256 2716/3559/1250 +f 2713/3560/1242 2706/3552/1255 2714/3561/1249 +f 2718/3562/1238 2704/3555/1254 2712/3563/1248 +f 2707/3564/1252 2705/3565/1253 2710/3566/1240 +f 2726/3567/1251 2717/3548/1246 2719/3557/1247 +f 2723/3568/1190 2716/3559/1250 2724/3569/1245 +f 2721/3570/1185 2714/3561/1249 2722/3571/1243 +f 2727/3572/1191 2712/3563/1248 2720/3573/1241 +f 2727/3572/1191 2719/3557/1247 2718/3562/1238 +f 2724/3569/1245 2717/3548/1246 2725/3574/1188 +f 2722/3571/1243 2715/3551/1244 2723/3568/1190 +f 2720/3573/1241 2713/3554/1242 2721/3575/1185 +f 2718/3562/1238 2711/3558/1239 2710/3576/1240 +f 2745/3577/1238 2752/3578/1239 2753/3579/1240 +f 2743/3580/1241 2750/3581/1242 2742/3582/1185 +f 2741/3583/1243 2748/3584/1244 2740/3585/1190 +f 2738/3586/1188 2747/3587/1250 2746/3588/1246 +f 2736/3589/1191 2744/3590/1247 2745/3577/1238 +f 2736/3589/1191 2751/3591/1248 2743/3580/1241 +f 2742/3592/1185 2749/3593/1249 2741/3583/1243 +f 2740/3585/1190 2747/3587/1250 2739/3594/1245 +f 2738/3586/1188 2744/3590/1247 2737/3595/1251 +f 2756/3596/1252 2758/3597/1253 2753/3598/1240 +f 2745/3577/1238 2759/3599/1254 2751/3591/1248 +f 2750/3600/1242 2757/3601/1255 2749/3593/1249 +f 2748/3584/1244 2755/3602/1256 2747/3587/1250 +f 2744/3590/1247 2754/3603/1257 2752/3578/1239 +f 2750/3581/1242 2759/3599/1254 2758/3604/1253 +f 2748/3584/1244 2757/3601/1255 2756/3605/1252 +f 2747/3587/1250 2754/3603/1257 2746/3588/1246 +f 2780/3606/1250 2773/3607/1257 2781/3608/1246 +f 2779/3609/1244 2770/3610/1255 2771/3611/1252 +f 2777/3612/1242 2768/3613/1254 2769/3614/1253 +f 2783/3615/1247 2773/3607/1257 2775/3616/1239 +f 2779/3609/1244 2772/3617/1256 2780/3606/1250 +f 2777/3618/1242 2770/3610/1255 2778/3619/1249 +f 2782/3620/1238 2768/3613/1254 2776/3621/1248 +f 2771/3622/1252 2769/3623/1253 2774/3624/1240 +f 2789/3625/1188 2783/3615/1247 2790/3626/1251 +f 2787/3627/1190 2780/3606/1250 2788/3628/1245 +f 2785/3629/1185 2778/3619/1249 2786/3630/1243 +f 2791/3631/1191 2776/3621/1248 2784/3632/1241 +f 2791/3631/1191 2783/3615/1247 2782/3620/1238 +f 2789/3625/1188 2780/3606/1250 2781/3608/1246 +f 2786/3630/1243 2779/3609/1244 2787/3627/1190 +f 2784/3632/1241 2777/3612/1242 2785/3633/1185 +f 2782/3620/1238 2775/3616/1239 2774/3634/1240 +f 2809/3635/1238 2816/3636/1239 2817/3637/1240 +f 2807/3638/1241 2814/3639/1242 2806/3640/1185 +f 2805/3641/1243 2812/3642/1244 2804/3643/1190 +f 2803/3644/1245 2810/3645/1246 2802/3646/1188 +f 2800/3647/1191 2808/3648/1247 2809/3635/1238 +f 2800/3647/1191 2815/3649/1248 2807/3638/1241 +f 2806/3650/1185 2813/3651/1249 2805/3641/1243 +f 2804/3643/1190 2811/3652/1250 2803/3644/1245 +f 2801/3653/1251 2810/3645/1246 2808/3648/1247 +f 2820/3654/1252 2822/3655/1253 2817/3656/1240 +f 2809/3635/1238 2823/3657/1254 2815/3649/1248 +f 2814/3658/1242 2821/3659/1255 2813/3651/1249 +f 2811/3652/1250 2820/3660/1252 2819/3661/1256 +f 2808/3648/1247 2818/3662/1257 2816/3636/1239 +f 2814/3639/1242 2823/3657/1254 2822/3663/1253 +f 2812/3642/1244 2821/3659/1255 2820/3660/1252 +f 2811/3652/1250 2818/3662/1257 2810/3645/1246 +f 2845/3664/1246 2836/3665/1256 2837/3666/1257 +f 2843/3667/1244 2834/3668/1255 2835/3669/1252 +f 2841/3670/1242 2832/3671/1254 2833/3672/1253 +f 2847/3673/1247 2837/3666/1257 2839/3674/1239 +f 2844/3675/1250 2835/3669/1252 2836/3665/1256 +f 2841/3676/1242 2834/3668/1255 2842/3677/1249 +f 2846/3678/1238 2832/3671/1254 2840/3679/1248 +f 2835/3680/1252 2833/3681/1253 2838/3682/1240 +f 2854/3683/1251 2845/3664/1246 2847/3673/1247 +f 2851/3684/1190 2844/3675/1250 2852/3685/1245 +f 2849/3686/1185 2842/3677/1249 2850/3687/1243 +f 2855/3688/1191 2840/3679/1248 2848/3689/1241 +f 2855/3688/1191 2847/3673/1247 2846/3678/1238 +f 2852/3685/1245 2845/3664/1246 2853/3690/1188 +f 2850/3687/1243 2843/3667/1244 2851/3684/1190 +f 2848/3689/1241 2841/3670/1242 2849/3691/1185 +f 2846/3678/1238 2839/3674/1239 2838/3692/1240 +f 2876/3693/1250 2869/3694/1257 2877/3695/1246 +f 2875/3696/1244 2866/3697/1255 2867/3698/1252 +f 2873/3699/1242 2864/3700/1254 2865/3701/1253 +f 2879/3702/1247 2869/3694/1257 2871/3703/1239 +f 2875/3696/1244 2868/3704/1256 2876/3693/1250 +f 2873/3705/1242 2866/3697/1255 2874/3706/1249 +f 2878/3707/1238 2864/3700/1254 2872/3708/1248 +f 2867/3709/1252 2865/3710/1253 2870/3711/1240 +f 2885/3712/1188 2879/3702/1247 2886/3713/1251 +f 2883/3714/1190 2876/3693/1250 2884/3715/1245 +f 2881/3716/1185 2874/3706/1249 2882/3717/1243 +f 2887/3718/1191 2872/3708/1248 2880/3719/1241 +f 2887/3718/1191 2879/3702/1247 2878/3707/1238 +f 2884/3715/1245 2877/3695/1246 2885/3712/1188 +f 2882/3717/1243 2875/3696/1244 2883/3714/1190 +f 2880/3719/1241 2873/3699/1242 2881/3720/1185 +f 2878/3707/1238 2871/3703/1239 2870/3721/1240 +f 2460/3397/1191 2472/3041/1223 2483/3037/1206 +f 2462/3399/1208 2474/3028/1217 2473/3039/1209 +f 2469/3401/1185 2481/3357/1219 2480/3042/1211 +f 2465/3403/1213 2466/3407/1190 2478/3032/1214 +f 2462/3399/1208 2463/3409/1188 2475/3026/1216 +f 2470/3404/1218 2482/3029/1222 2481/3031/1219 +f 2467/3406/1220 2479/3043/1224 2478/3032/1214 +f 2464/3408/1221 2476/3035/1225 2475/3026/1216 +f 2471/3398/1207 2483/3037/1206 2482/3029/1222 +f 2461/3400/1210 2473/3039/1209 2472/3041/1223 +f 2468/3402/1212 2480/3042/1211 2479/3043/1224 +f 2465/3403/1213 2477/3050/1215 2476/3035/1225 +f 2490/3034/1226 2502/3413/1191 2501/3410/1207 +f 2487/3036/1228 2499/3414/1185 2498/3411/1212 +f 2494/3038/1230 2506/3415/1221 2505/3412/1188 +f 2491/3033/1232 2503/3417/1210 2502/3413/1191 +f 2488/3045/1233 2500/3418/1218 2499/3414/1185 +f 2495/3046/1234 2507/3419/1213 2506/3415/1221 +f 2485/3047/1235 2497/3420/1220 2496/3416/1190 +f 2492/3049/1237 2504/3421/1208 2503/3417/1210 +f 2489/3044/1227 2501/3410/1207 2500/3418/1218 +f 2484/3040/1236 2496/3416/1190 2507/3419/1213 +f 2486/3027/1229 2498/3411/1212 2497/3420/1220 +f 2493/3048/1231 2505/3722/1188 2504/3421/1208 +f 2459/3422/1191 2508/3066/1223 2519/3062/1206 +f 2457/3424/1208 2510/3053/1217 2509/3064/1209 +f 2450/3426/1185 2517/3358/1219 2516/3067/1211 +f 2454/3428/1213 2453/3432/1190 2514/3057/1214 +f 2457/3424/1208 2456/3434/1188 2511/3051/1216 +f 2449/3429/1218 2518/3054/1222 2517/3056/1219 +f 2452/3431/1220 2515/3068/1224 2514/3057/1214 +f 2455/3433/1221 2512/3060/1225 2511/3051/1216 +f 2448/3423/1207 2519/3062/1206 2518/3054/1222 +f 2458/3425/1210 2509/3064/1209 2508/3066/1223 +f 2451/3427/1212 2516/3067/1211 2515/3068/1224 +f 2454/3428/1213 2513/3075/1215 2512/3060/1225 +f 2526/3059/1226 2538/3438/1191 2537/3435/1207 +f 2523/3061/1228 2535/3439/1185 2534/3436/1212 +f 2530/3063/1230 2542/3440/1221 2541/3437/1188 +f 2527/3058/1232 2539/3442/1210 2538/3438/1191 +f 2524/3070/1233 2536/3443/1218 2535/3439/1185 +f 2531/3071/1234 2543/3444/1213 2542/3440/1221 +f 2521/3072/1235 2533/3445/1220 2532/3441/1190 +f 2528/3074/1237 2540/3446/1208 2539/3442/1210 +f 2525/3069/1227 2537/3435/1207 2536/3443/1218 +f 2520/3065/1236 2532/3441/1190 2543/3444/1213 +f 2522/3052/1229 2534/3436/1212 2533/3445/1220 +f 2529/3073/1231 2541/3723/1188 2540/3446/1208 +f 2569/3447/1238 2568/3460/1247 2576/3448/1239 +f 2567/3450/1241 2575/3461/1248 2574/3451/1242 +f 2565/3453/1243 2573/3463/1249 2572/3454/1244 +f 2563/3456/1245 2571/3464/1250 2570/3457/1246 +f 2560/3459/1191 2561/3465/1251 2568/3460/1247 +f 2560/3459/1191 2569/3447/1238 2575/3461/1248 +f 2566/3462/1185 2574/3724/1242 2573/3463/1249 +f 2564/3455/1190 2572/3454/1244 2571/3464/1250 +f 2562/3458/1188 2570/3457/1246 2568/3460/1247 +f 2577/3468/1240 2576/3725/1239 2578/3726/1257 +f 2578/3726/1257 2579/3727/1256 2580/3466/1252 +f 2580/3466/1252 2581/3728/1255 2582/3467/1253 +f 2582/3467/1253 2583/3469/1254 2577/3468/1240 +f 2577/3468/1240 2578/3726/1257 2580/3466/1252 +f 2569/3447/1238 2577/3449/1240 2583/3469/1254 +f 2573/3463/1249 2574/3724/1242 2582/3470/1253 +f 2572/3454/1244 2580/3475/1252 2579/3472/1256 +f 2568/3460/1247 2570/3457/1246 2578/3473/1257 +f 2574/3451/1242 2575/3461/1248 2583/3469/1254 +f 2572/3454/1244 2573/3463/1249 2581/3471/1255 +f 2571/3464/1250 2579/3472/1256 2578/3473/1257 +f 2610/3476/1189 2620/3487/1267 2623/3477/1258 +f 2612/3479/1190 2618/3488/1268 2621/3480/1260 +f 2614/3482/1186 2616/3729/1269 2619/3483/1262 +f 2608/3485/1191 2622/3130/1266 2617/3129/1264 +f 2609/3478/1259 2623/3477/1258 2622/3130/1266 +f 2611/3481/1261 2621/3480/1260 2620/3487/1267 +f 2613/3484/1263 2619/3483/1262 2618/3488/1268 +f 2615/3486/1265 2617/3129/1264 2616/3370/1269 +f 2648/3490/1247 2656/3516/1239 2657/3491/1240 +f 2647/3493/1241 2655/3503/1248 2654/3494/1242 +f 2645/3496/1243 2653/3505/1249 2652/3497/1244 +f 2643/3499/1245 2651/3506/1250 2650/3500/1246 +f 2640/3502/1191 2641/3507/1251 2648/3490/1247 +f 2640/3502/1191 2649/3492/1238 2655/3503/1248 +f 2646/3504/1185 2654/3512/1242 2653/3505/1249 +f 2644/3498/1190 2652/3497/1244 2651/3506/1250 +f 2641/3507/1251 2642/3501/1188 2650/3500/1246 +f 2657/3510/1240 2656/3730/1239 2658/3731/1257 +f 2658/3731/1257 2659/3732/1256 2660/3508/1252 +f 2660/3508/1252 2661/3733/1255 2662/3509/1253 +f 2662/3509/1253 2663/3511/1254 2657/3510/1240 +f 2657/3510/1240 2658/3731/1257 2660/3508/1252 +f 2649/3492/1238 2657/3491/1240 2663/3511/1254 +f 2654/3512/1242 2662/3734/1253 2661/3513/1255 +f 2652/3497/1244 2660/3518/1252 2659/3514/1256 +f 2648/3490/1247 2650/3500/1246 2658/3515/1257 +f 2654/3494/1242 2655/3503/1248 2663/3511/1254 +f 2652/3497/1244 2653/3505/1249 2661/3513/1255 +f 2651/3506/1250 2659/3514/1256 2658/3515/1257 +f 2681/3519/1238 2680/3532/1247 2688/3520/1239 +f 2679/3522/1241 2687/3533/1248 2686/3523/1242 +f 2677/3525/1243 2685/3535/1249 2684/3526/1244 +f 2675/3528/1245 2683/3536/1250 2682/3529/1246 +f 2672/3531/1191 2673/3537/1251 2680/3532/1247 +f 2672/3531/1191 2681/3519/1238 2687/3533/1248 +f 2678/3534/1185 2686/3542/1242 2685/3535/1249 +f 2676/3527/1190 2684/3526/1244 2683/3536/1250 +f 2673/3537/1251 2674/3530/1188 2682/3529/1246 +f 2689/3540/1240 2688/3735/1239 2690/3736/1257 +f 2690/3736/1257 2691/3737/1256 2692/3538/1252 +f 2692/3538/1252 2693/3738/1255 2694/3539/1253 +f 2694/3539/1253 2695/3541/1254 2689/3540/1240 +f 2689/3540/1240 2690/3736/1257 2692/3538/1252 +f 2681/3519/1238 2689/3521/1240 2695/3541/1254 +f 2686/3542/1242 2694/3739/1253 2693/3543/1255 +f 2684/3526/1244 2692/3547/1252 2691/3544/1256 +f 2680/3532/1247 2682/3529/1246 2690/3545/1257 +f 2686/3523/1242 2687/3533/1248 2695/3541/1254 +f 2684/3526/1244 2685/3535/1249 2693/3543/1255 +f 2683/3536/1250 2691/3544/1256 2690/3545/1257 +f 2717/3548/1246 2716/3559/1250 2708/3549/1256 +f 2715/3551/1244 2714/3561/1249 2706/3552/1255 +f 2713/3554/1242 2712/3563/1248 2704/3555/1254 +f 2719/3557/1247 2717/3548/1246 2709/3550/1257 +f 2715/3551/1244 2707/3553/1252 2708/3549/1256 +f 2713/3560/1242 2705/3740/1253 2706/3552/1255 +f 2718/3562/1238 2710/3576/1240 2704/3555/1254 +f 2710/3566/1240 2711/3741/1239 2709/3742/1257 +f 2709/3742/1257 2708/3743/1256 2707/3564/1252 +f 2707/3564/1252 2706/3744/1255 2705/3565/1253 +f 2705/3565/1253 2704/3555/1254 2710/3566/1240 +f 2710/3566/1240 2709/3742/1257 2707/3564/1252 +f 2726/3567/1251 2725/3574/1188 2717/3548/1246 +f 2723/3568/1190 2715/3551/1244 2716/3559/1250 +f 2721/3570/1185 2713/3560/1242 2714/3561/1249 +f 2727/3572/1191 2718/3562/1238 2712/3563/1248 +f 2727/3572/1191 2726/3567/1251 2719/3557/1247 +f 2724/3569/1245 2716/3559/1250 2717/3548/1246 +f 2722/3571/1243 2714/3561/1249 2715/3551/1244 +f 2720/3573/1241 2712/3563/1248 2713/3554/1242 +f 2718/3562/1238 2719/3557/1247 2711/3558/1239 +f 2745/3577/1238 2744/3590/1247 2752/3578/1239 +f 2743/3580/1241 2751/3591/1248 2750/3581/1242 +f 2741/3583/1243 2749/3593/1249 2748/3584/1244 +f 2738/3586/1188 2739/3594/1245 2747/3587/1250 +f 2736/3589/1191 2737/3595/1251 2744/3590/1247 +f 2736/3589/1191 2745/3577/1238 2751/3591/1248 +f 2742/3592/1185 2750/3600/1242 2749/3593/1249 +f 2740/3585/1190 2748/3584/1244 2747/3587/1250 +f 2738/3586/1188 2746/3588/1246 2744/3590/1247 +f 2753/3598/1240 2752/3745/1239 2754/3746/1257 +f 2754/3746/1257 2755/3747/1256 2756/3596/1252 +f 2756/3596/1252 2757/3748/1255 2758/3597/1253 +f 2758/3597/1253 2759/3599/1254 2753/3598/1240 +f 2753/3598/1240 2754/3746/1257 2756/3596/1252 +f 2745/3577/1238 2753/3579/1240 2759/3599/1254 +f 2750/3600/1242 2758/3749/1253 2757/3601/1255 +f 2748/3584/1244 2756/3605/1252 2755/3602/1256 +f 2744/3590/1247 2746/3588/1246 2754/3603/1257 +f 2750/3581/1242 2751/3591/1248 2759/3599/1254 +f 2748/3584/1244 2749/3593/1249 2757/3601/1255 +f 2747/3587/1250 2755/3602/1256 2754/3603/1257 +f 2780/3606/1250 2772/3617/1256 2773/3607/1257 +f 2779/3609/1244 2778/3619/1249 2770/3610/1255 +f 2777/3612/1242 2776/3621/1248 2768/3613/1254 +f 2783/3615/1247 2781/3608/1246 2773/3607/1257 +f 2779/3609/1244 2771/3611/1252 2772/3617/1256 +f 2777/3618/1242 2769/3750/1253 2770/3610/1255 +f 2782/3620/1238 2774/3634/1240 2768/3613/1254 +f 2774/3624/1240 2775/3751/1239 2773/3752/1257 +f 2773/3752/1257 2772/3753/1256 2771/3622/1252 +f 2771/3622/1252 2770/3754/1255 2769/3623/1253 +f 2769/3623/1253 2768/3613/1254 2774/3624/1240 +f 2774/3624/1240 2773/3752/1257 2771/3622/1252 +f 2789/3625/1188 2781/3608/1246 2783/3615/1247 +f 2787/3627/1190 2779/3609/1244 2780/3606/1250 +f 2785/3629/1185 2777/3618/1242 2778/3619/1249 +f 2791/3631/1191 2782/3620/1238 2776/3621/1248 +f 2791/3631/1191 2790/3626/1251 2783/3615/1247 +f 2789/3625/1188 2788/3628/1245 2780/3606/1250 +f 2786/3630/1243 2778/3619/1249 2779/3609/1244 +f 2784/3632/1241 2776/3621/1248 2777/3612/1242 +f 2782/3620/1238 2783/3615/1247 2775/3616/1239 +f 2809/3635/1238 2808/3648/1247 2816/3636/1239 +f 2807/3638/1241 2815/3649/1248 2814/3639/1242 +f 2805/3641/1243 2813/3651/1249 2812/3642/1244 +f 2803/3644/1245 2811/3652/1250 2810/3645/1246 +f 2800/3647/1191 2801/3653/1251 2808/3648/1247 +f 2800/3647/1191 2809/3635/1238 2815/3649/1248 +f 2806/3650/1185 2814/3658/1242 2813/3651/1249 +f 2804/3643/1190 2812/3642/1244 2811/3652/1250 +f 2801/3653/1251 2802/3646/1188 2810/3645/1246 +f 2817/3656/1240 2816/3755/1239 2818/3756/1257 +f 2818/3756/1257 2819/3757/1256 2820/3654/1252 +f 2820/3654/1252 2821/3758/1255 2822/3655/1253 +f 2822/3655/1253 2823/3657/1254 2817/3656/1240 +f 2817/3656/1240 2818/3756/1257 2820/3654/1252 +f 2809/3635/1238 2817/3637/1240 2823/3657/1254 +f 2814/3658/1242 2822/3759/1253 2821/3659/1255 +f 2811/3652/1250 2812/3642/1244 2820/3660/1252 +f 2808/3648/1247 2810/3645/1246 2818/3662/1257 +f 2814/3639/1242 2815/3649/1248 2823/3657/1254 +f 2812/3642/1244 2813/3651/1249 2821/3659/1255 +f 2811/3652/1250 2819/3661/1256 2818/3662/1257 +f 2845/3664/1246 2844/3675/1250 2836/3665/1256 +f 2843/3667/1244 2842/3677/1249 2834/3668/1255 +f 2841/3670/1242 2840/3679/1248 2832/3671/1254 +f 2847/3673/1247 2845/3664/1246 2837/3666/1257 +f 2844/3675/1250 2843/3667/1244 2835/3669/1252 +f 2841/3676/1242 2833/3760/1253 2834/3668/1255 +f 2846/3678/1238 2838/3692/1240 2832/3671/1254 +f 2838/3682/1240 2839/3761/1239 2837/3762/1257 +f 2837/3762/1257 2836/3763/1256 2835/3680/1252 +f 2835/3680/1252 2834/3764/1255 2833/3681/1253 +f 2833/3681/1253 2832/3671/1254 2838/3682/1240 +f 2838/3682/1240 2837/3762/1257 2835/3680/1252 +f 2854/3683/1251 2853/3690/1188 2845/3664/1246 +f 2851/3684/1190 2843/3667/1244 2844/3675/1250 +f 2849/3686/1185 2841/3676/1242 2842/3677/1249 +f 2855/3688/1191 2846/3678/1238 2840/3679/1248 +f 2855/3688/1191 2854/3683/1251 2847/3673/1247 +f 2852/3685/1245 2844/3675/1250 2845/3664/1246 +f 2850/3687/1243 2842/3677/1249 2843/3667/1244 +f 2848/3689/1241 2840/3679/1248 2841/3670/1242 +f 2846/3678/1238 2847/3673/1247 2839/3674/1239 +f 2876/3693/1250 2868/3704/1256 2869/3694/1257 +f 2875/3696/1244 2874/3706/1249 2866/3697/1255 +f 2873/3699/1242 2872/3708/1248 2864/3700/1254 +f 2879/3702/1247 2877/3695/1246 2869/3694/1257 +f 2875/3696/1244 2867/3698/1252 2868/3704/1256 +f 2873/3705/1242 2865/3765/1253 2866/3697/1255 +f 2878/3707/1238 2870/3721/1240 2864/3700/1254 +f 2870/3711/1240 2871/3766/1239 2869/3767/1257 +f 2869/3767/1257 2868/3768/1256 2867/3709/1252 +f 2867/3709/1252 2866/3769/1255 2865/3710/1253 +f 2865/3710/1253 2864/3700/1254 2870/3711/1240 +f 2870/3711/1240 2869/3767/1257 2867/3709/1252 +f 2885/3712/1188 2877/3695/1246 2879/3702/1247 +f 2883/3714/1190 2875/3696/1244 2876/3693/1250 +f 2881/3716/1185 2873/3705/1242 2874/3706/1249 +f 2887/3718/1191 2878/3707/1238 2872/3708/1248 +f 2887/3718/1191 2886/3713/1251 2879/3702/1247 +f 2884/3715/1245 2876/3693/1250 2877/3695/1246 +f 2882/3717/1243 2874/3706/1249 2875/3696/1244 +f 2880/3719/1241 2872/3708/1248 2873/3699/1242 +f 2878/3707/1238 2879/3702/1247 2871/3703/1239 diff --git a/src/main/resources/assets/hbm/models/turrets/turret_arty.obj b/src/main/resources/assets/hbm/models/turrets/turret_arty.obj new file mode 100644 index 000000000..e84a5dc3d --- /dev/null +++ b/src/main/resources/assets/hbm/models/turrets/turret_arty.obj @@ -0,0 +1,4319 @@ +# Blender v2.79 (sub 0) OBJ File: 'turret_arty.blend' +# www.blender.org +o Carriage +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v 0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v 0.500000 2.500000 0.500000 +v 0.500000 2.500000 -0.500000 +v -1.250000 2.125000 0.750000 +v 1.250000 2.125000 0.750000 +v 0.500000 3.000000 -0.500000 +v -1.250000 2.125000 -0.750000 +v 1.250000 2.125000 -0.750000 +v 1.250000 2.000000 -0.750000 +v -1.250000 2.000000 -0.750000 +v 1.250000 2.000000 0.750000 +v -1.250000 2.000000 0.750000 +v 0.750000 2.000000 -1.250000 +v -0.750000 2.000000 -1.250000 +v 0.750000 2.000000 -0.750000 +v -0.750000 2.000000 -0.750000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.250000 0.433012 +v 0.500000 3.433012 0.250000 +v 0.500000 3.500000 0.000000 +v 0.500000 3.433013 -0.250000 +v 0.500000 3.250000 -0.433012 +v 0.750000 2.125000 -1.250000 +v -0.750000 2.125000 -1.250000 +v 0.750000 2.125000 -0.750000 +v -0.750000 2.125000 -0.750000 +v -0.750000 2.125000 1.250000 +v 0.750000 2.125000 1.250000 +v -0.750000 2.000000 1.250000 +v 0.750000 2.000000 1.250000 +v 0.500000 2.125000 0.500000 +v 0.500000 2.250000 -1.000000 +v 0.750000 2.125000 0.750000 +v -0.750000 2.125000 0.750000 +v 0.750000 2.000000 0.750000 +v -0.750000 2.000000 0.750000 +v 0.500000 2.500000 1.000000 +v 0.500000 2.125000 1.125000 +v 0.500000 2.125000 -1.000000 +v 0.625000 2.500000 0.500000 +v 0.625000 2.500000 -0.500000 +v 0.625000 2.125000 0.500000 +v 0.625000 2.125000 -1.000000 +v 0.625000 3.000000 -0.500000 +v 0.625000 3.000000 0.500000 +v 0.625000 3.250000 0.433012 +v 0.625000 3.433012 0.250000 +v 0.625000 2.250000 -1.000000 +v 0.625000 3.500000 0.000000 +v 0.625000 3.433013 -0.250000 +v 0.625000 3.250000 -0.433012 +v 0.625000 2.500000 1.000000 +v 0.625000 2.125000 1.125000 +v -1.501304 2.250000 0.621861 +v -1.149048 2.250000 1.149048 +v -0.621861 2.250000 1.501304 +v -0.000000 2.250000 1.625000 +v 0.621860 2.250000 1.501305 +v 1.149048 2.250000 1.149049 +v 1.501304 2.250000 0.621861 +v -1.385819 2.250000 0.574025 +v -1.060660 2.250000 1.060660 +v -0.574025 2.250000 1.385819 +v -0.000000 2.250000 1.500000 +v 0.574025 2.250000 1.385819 +v 1.060660 2.250000 1.060660 +v 1.385819 2.250000 0.574025 +v -1.501304 2.750000 0.621861 +v -1.149048 3.000000 1.149048 +v -0.621861 3.000000 1.501304 +v -0.000000 3.000000 1.625000 +v 0.621860 3.000000 1.501305 +v 1.149048 3.000000 1.149049 +v 1.501304 2.750000 0.621861 +v -1.385819 2.750000 0.574025 +v -1.060660 3.000000 1.060660 +v -0.574025 3.000000 1.385819 +v -0.000000 3.000000 1.500000 +v 0.574025 3.000000 1.385819 +v 1.060660 3.000000 1.060660 +v 1.385819 2.750000 0.574025 +v -0.593750 2.281250 1.406250 +v -0.593750 2.468750 1.406250 +v -0.593750 2.281250 0.968750 +v -0.593750 2.468750 0.968750 +v -0.531250 2.281250 1.406250 +v -0.531250 2.468750 1.406250 +v -0.531250 2.281250 0.968750 +v -0.531250 2.468750 0.968750 +v 0.531250 2.281250 1.406250 +v 0.531250 2.468750 1.406250 +v 0.531250 2.281250 0.968750 +v 0.531250 2.468750 0.968750 +v 0.593750 2.281250 1.406250 +v 0.593750 2.468750 1.406250 +v 0.593750 2.281250 0.968750 +v 0.593750 2.468750 0.968750 +v 1.250000 2.062500 0.750000 +v 1.250000 2.062500 -1.000000 +v 1.375000 2.062500 0.750000 +v 1.375000 2.062500 -1.000000 +v 1.250000 2.562500 0.750000 +v 1.250000 2.312500 -1.000000 +v 1.375000 2.562500 0.750000 +v 1.375000 2.312500 -1.000000 +v -1.250000 2.562500 -0.500000 +v 1.250000 2.562500 -0.500000 +v -1.375000 2.562500 -0.500000 +v 1.375000 2.562500 -0.500000 +v -1.250000 2.312500 -1.000000 +v -1.250000 2.562500 0.750000 +v -1.375000 2.312500 -1.000000 +v -1.375000 2.562500 0.750000 +v -1.250000 2.062500 -1.000000 +v -1.250000 2.062500 0.750000 +v -1.375000 2.062500 -1.000000 +v -1.375000 2.062500 0.750000 +v -0.625000 2.500000 0.500000 +v -0.625000 2.500000 -0.500000 +v -0.625000 3.000000 -0.500000 +v -0.625000 3.000000 0.500000 +v -0.625000 3.250000 0.433012 +v -0.625000 3.433012 0.250000 +v -0.625000 3.500000 0.000000 +v -0.625000 3.433013 -0.250000 +v -0.625000 3.250000 -0.433012 +v -0.625000 2.125000 0.500000 +v -0.625000 2.250000 -1.000000 +v -0.625000 2.500000 1.000000 +v -0.625000 2.125000 1.125000 +v -0.625000 2.125000 -1.000000 +v -0.500000 2.500000 0.500000 +v -0.500000 2.500000 -0.500000 +v -0.500000 2.125000 0.500000 +v -0.500000 2.125000 -1.000000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.250000 0.433012 +v -0.500000 3.433012 0.250000 +v -0.500000 2.250000 -1.000000 +v -0.500000 3.500000 0.000000 +v -0.500000 3.433013 -0.250000 +v -0.500000 3.250000 -0.433012 +v -0.500000 2.500000 1.000000 +v -0.500000 2.125000 1.125000 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v 0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v -1.501304 2.250000 0.621861 +v -1.149048 2.250000 1.149048 +v -0.621861 2.250000 1.501304 +v -0.000000 2.250000 1.625000 +v 0.621860 2.250000 1.501305 +v 1.149048 2.250000 1.149049 +v 1.501304 2.250000 0.621861 +v -1.501304 2.750000 0.621861 +v -1.149048 3.000000 1.149048 +v -0.621861 3.000000 1.501304 +v -0.000000 3.000000 1.625000 +v 0.621860 3.000000 1.501305 +v 1.149048 3.000000 1.149049 +v 1.501304 2.750000 0.621861 +v -1.385819 2.250000 0.574025 +v -1.060660 2.250000 1.060660 +v -0.574025 2.250000 1.385819 +v -0.000000 2.250000 1.500000 +v 0.574025 2.250000 1.385819 +v 1.060660 2.250000 1.060660 +v 1.385819 2.250000 0.574025 +v -1.385819 2.750000 0.574025 +v -1.060660 3.000000 1.060660 +v -0.574025 3.000000 1.385819 +v -0.000000 3.000000 1.500000 +v 0.574025 3.000000 1.385819 +v 1.060660 3.000000 1.060660 +v 1.385819 2.750000 0.574025 +v 0.500000 2.500000 0.500000 +v 0.500000 2.500000 -0.500000 +v 0.500000 3.000000 -0.500000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.250000 0.433012 +v 0.500000 3.433012 0.250000 +v 0.500000 3.500000 0.000000 +v 0.500000 3.433013 -0.250000 +v 0.500000 3.250000 -0.433012 +v 0.625000 2.500000 0.500000 +v 0.625000 2.500000 -0.500000 +v 0.625000 3.000000 -0.500000 +v 0.625000 3.000000 0.500000 +v 0.625000 3.250000 0.433012 +v 0.625000 3.433012 0.250000 +v 0.625000 3.500000 0.000000 +v 0.625000 3.433013 -0.250000 +v 0.625000 3.250000 -0.433012 +v -0.625000 2.500000 0.500000 +v -0.625000 2.500000 -0.500000 +v -0.625000 3.000000 -0.500000 +v -0.625000 3.000000 0.500000 +v -0.625000 3.250000 0.433012 +v -0.625000 3.433012 0.250000 +v -0.625000 3.500000 0.000000 +v -0.625000 3.433013 -0.250000 +v -0.625000 3.250000 -0.433012 +v -0.500000 2.500000 0.500000 +v -0.500000 2.500000 -0.500000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.250000 0.433012 +v -0.500000 3.433012 0.250000 +v -0.500000 3.500000 0.000000 +v -0.500000 3.433013 -0.250000 +v -0.500000 3.250000 -0.433012 +vt 0.408333 0.670000 +vt 0.308333 0.710000 +vt 0.308333 0.670000 +vt 0.408333 0.500000 +vt 0.308333 0.510000 +vt 0.308333 0.500000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.500000 0.640000 +vt 0.275000 0.710000 +vt 0.308333 0.720000 +vt 0.275000 0.720000 +vt 0.408333 0.720000 +vt 0.408333 0.550000 +vt 0.441667 0.710000 +vt 0.450000 0.670000 +vt 0.450000 0.710000 +vt 0.408333 0.510000 +vt 0.408333 0.710000 +vt 0.441667 0.720000 +vt 0.441667 0.550000 +vt 0.450000 0.510000 +vt 0.450000 0.550000 +vt 0.441667 0.670000 +vt 0.275000 0.550000 +vt 0.275000 0.670000 +vt 0.275000 0.500000 +vt 0.266667 0.710000 +vt 0.266667 0.670000 +vt 0.566667 0.640000 +vt 0.600000 0.620000 +vt 0.600000 0.610000 +vt 0.266667 0.550000 +vt 0.441667 0.510000 +vt 0.266667 0.510000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.458333 0.610000 +vt 0.600000 0.610000 +vt 0.600000 0.620000 +vt 0.566667 0.640000 +vt 0.566667 0.680000 +vt 0.608333 0.660000 +vt 0.608333 0.620000 +vt 0.566667 0.680000 +vt 0.500000 0.640000 +vt 0.450000 0.640000 +vt 0.458333 0.680000 +vt 0.450000 0.680000 +vt 0.608333 0.610000 +vt 0.450000 0.610000 +vt 0.458333 0.640000 +vt 0.516772 0.714549 +vt 0.500210 0.680126 +vt 0.562019 0.700000 +vt 0.566457 0.680126 +vt 0.500210 0.680126 +vt 0.516772 0.714549 +vt 0.858333 0.610000 +vt 0.866667 0.570000 +vt 0.866667 0.610000 +vt 0.608333 0.610000 +vt 0.600000 0.570000 +vt 0.608333 0.570000 +vt 0.650000 0.630000 +vt 0.608333 0.640000 +vt 0.608333 0.630000 +vt 0.691667 0.630000 +vt 0.650000 0.640000 +vt 0.733333 0.630000 +vt 0.691667 0.640000 +vt 0.775000 0.630000 +vt 0.733333 0.640000 +vt 0.816667 0.630000 +vt 0.775000 0.640000 +vt 0.858333 0.630000 +vt 0.816667 0.640000 +vt 0.816667 0.560000 +vt 0.858333 0.570000 +vt 0.816667 0.570000 +vt 0.775000 0.560000 +vt 0.775000 0.570000 +vt 0.733333 0.560000 +vt 0.733333 0.570000 +vt 0.691667 0.560000 +vt 0.691667 0.570000 +vt 0.650000 0.560000 +vt 0.650000 0.570000 +vt 0.608333 0.560000 +vt 0.558333 0.250000 +vt 0.587500 0.265000 +vt 0.558333 0.265000 +vt 0.587500 0.285000 +vt 0.558333 0.270000 +vt 0.587500 0.270000 +vt 0.587500 0.285000 +vt 0.558333 0.270000 +vt 0.587500 0.270000 +vt 0.558333 0.250000 +vt 0.587500 0.265000 +vt 0.558333 0.265000 +vt 0.587500 0.290000 +vt 0.558333 0.285000 +vt 0.587500 0.290000 +vt 0.558333 0.285000 +vt 0.600000 0.510000 +vt 0.483333 0.500000 +vt 0.600000 0.500000 +vt 0.483333 0.560000 +vt 0.566667 0.550000 +vt 0.566667 0.560000 +vt 0.450000 0.550000 +vt 0.483333 0.560000 +vt 0.450000 0.560000 +vt 0.600000 0.530000 +vt 0.566667 0.550000 +vt 0.608333 0.510000 +vt 0.483333 0.600000 +vt 0.566667 0.560000 +vt 0.600000 0.550000 +vt 0.600000 0.560000 +vt 0.600000 0.550000 +vt 0.600000 0.560000 +vt 0.483333 0.600000 +vt 0.608333 0.510000 +vt 0.600000 0.530000 +vt 0.600000 0.510000 +vt 0.450000 0.550000 +vt 0.450000 0.560000 +vt 0.483333 0.500000 +vt 0.600000 0.500000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.500000 0.640000 +vt 0.566667 0.640000 +vt 0.600000 0.620000 +vt 0.600000 0.610000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.458333 0.610000 +vt 0.600000 0.610000 +vt 0.600000 0.620000 +vt 0.566667 0.640000 +vt 0.566667 0.680000 +vt 0.608333 0.660000 +vt 0.608333 0.620000 +vt 0.566667 0.680000 +vt 0.500000 0.640000 +vt 0.450000 0.640000 +vt 0.458333 0.680000 +vt 0.450000 0.680000 +vt 0.608333 0.610000 +vt 0.450000 0.610000 +vt 0.458333 0.640000 +vt 0.516772 0.714549 +vt 0.500210 0.680126 +vt 0.562019 0.700000 +vt 0.566457 0.680126 +vt 0.500210 0.680126 +vt 0.516772 0.714549 +vt 0.825000 0.248422 +vt 0.726315 0.130000 +vt 0.825000 0.011578 +vt 0.466667 0.610000 +vt 0.308333 0.550000 +vt 0.275000 0.510000 +vt 0.441667 0.500000 +vt 0.500000 0.680000 +vt 0.600000 0.660000 +vt 0.500000 0.680000 +vt 0.504648 0.700000 +vt 0.566457 0.680126 +vt 0.549895 0.714549 +vt 0.533333 0.719874 +vt 0.504648 0.700000 +vt 0.533333 0.719874 +vt 0.549895 0.714549 +vt 0.562019 0.700000 +vt 0.600000 0.610000 +vt 0.858333 0.640000 +vt 0.858333 0.560000 +vt 0.587500 0.250000 +vt 0.587500 0.250000 +vt 0.558333 0.290000 +vt 0.558333 0.290000 +vt 0.483333 0.510000 +vt 0.483333 0.550000 +vt 0.483333 0.550000 +vt 0.608333 0.530000 +vt 0.600000 0.580000 +vt 0.600000 0.600000 +vt 0.600000 0.580000 +vt 0.600000 0.600000 +vt 0.608333 0.530000 +vt 0.483333 0.510000 +vt 0.466667 0.610000 +vt 0.500000 0.680000 +vt 0.600000 0.660000 +vt 0.500000 0.680000 +vt 0.504648 0.700000 +vt 0.566457 0.680126 +vt 0.549895 0.714549 +vt 0.533333 0.719874 +vt 0.504648 0.700000 +vt 0.533333 0.719874 +vt 0.549895 0.714549 +vt 0.562019 0.700000 +vt 0.787235 0.239407 +vt 0.755219 0.213737 +vt 0.733827 0.175318 +vt 0.733827 0.084682 +vt 0.755219 0.046263 +vt 0.787235 0.020592 +vt 0.862765 0.020592 +vt 0.894781 0.046263 +vt 0.916173 0.084682 +vt 0.923685 0.130000 +vt 0.916173 0.175318 +vt 0.894781 0.213737 +vt 0.862765 0.239408 +vt 0.741667 0.000000 +vt 0.704167 0.010000 +vt 0.704167 0.000000 +vt 0.441667 0.000000 +vt 0.404167 0.010000 +vt 0.404167 0.000000 +vt 0.779167 0.000000 +vt 0.741667 0.010000 +vt 0.479167 -0.000000 +vt 0.441667 0.010000 +vt 0.816667 0.000000 +vt 0.779167 0.010000 +vt 0.516667 0.000000 +vt 0.479167 0.010000 +vt 0.854167 0.000000 +vt 0.816667 0.010000 +vt 0.554167 0.000000 +vt 0.516667 0.010000 +vt 0.891667 0.000000 +vt 0.854167 0.010000 +vt 0.591667 0.000000 +vt 0.554167 0.010000 +vt 0.929167 0.000000 +vt 0.891667 0.010000 +vt 0.629167 0.000000 +vt 0.591667 0.010000 +vt 0.966667 0.000000 +vt 0.929167 0.010000 +vt 0.666667 0.010000 +vt 0.666667 0.000000 +vt 0.629167 0.010000 +vt 0.366667 0.010000 +vt 0.366667 0.000000 +vt 0.775000 0.570000 +vt 0.733333 0.630000 +vt 0.733333 0.570000 +vt 0.575000 0.680000 +vt 0.566667 0.640000 +vt 0.575000 0.640000 +vt 0.491667 0.720000 +vt 0.500000 0.740000 +vt 0.491667 0.740000 +vt 0.575000 0.700000 +vt 0.566667 0.680000 +vt 0.575000 0.740000 +vt 0.566667 0.720000 +vt 0.575000 0.720000 +vt 0.491667 0.680000 +vt 0.500000 0.700000 +vt 0.491667 0.700000 +vt 0.566667 0.700000 +vt 0.500000 0.720000 +vt 0.491667 0.640000 +vt 0.500000 0.680000 +vt 0.608333 0.520000 +vt 0.650000 0.560000 +vt 0.608333 0.560000 +vt 0.575000 0.700000 +vt 0.566667 0.680000 +vt 0.575000 0.680000 +vt 0.733333 0.500000 +vt 0.775000 0.560000 +vt 0.733333 0.560000 +vt 0.575000 0.740000 +vt 0.566667 0.720000 +vt 0.575000 0.720000 +vt 0.691667 0.500000 +vt 0.691667 0.560000 +vt 0.491667 0.680000 +vt 0.500000 0.700000 +vt 0.491667 0.700000 +vt 0.816667 0.560000 +vt 0.858333 0.520000 +vt 0.858333 0.560000 +vt 0.566667 0.700000 +vt 0.650000 0.500000 +vt 0.775000 0.500000 +vt 0.500000 0.720000 +vt 0.491667 0.720000 +vt 0.491667 0.640000 +vt 0.500000 0.680000 +vt 0.650000 0.570000 +vt 0.608333 0.610000 +vt 0.608333 0.570000 +vt 0.816667 0.570000 +vt 0.775000 0.630000 +vt 0.691667 0.570000 +vt 0.650000 0.630000 +vt 0.858333 0.610000 +vt 0.816667 0.630000 +vt 0.691667 0.630000 +vt 0.500000 0.740000 +vt 0.491667 0.740000 +vt 0.566667 0.640000 +vt 0.575000 0.640000 +vt 0.966667 0.010000 +vt 0.566667 0.740000 +vt 0.500000 0.640000 +vt 0.566667 0.740000 +vt 0.816667 0.500000 +vt 0.500000 0.640000 +vt 0.858333 0.570000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.3162 0.9487 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn -0.1427 0.9278 -0.3446 +vn 0.2638 0.9278 -0.2638 +vn 0.0000 -1.0000 0.0000 +vn -0.2823 0.9168 -0.2823 +vn 0.1528 0.9168 -0.3689 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.1305 0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.8314 0.0000 -0.5556 +vn -0.8314 0.0000 -0.5556 +vn 0.6861 0.0000 -0.7275 +vn -0.8314 0.0000 0.5556 +vn -0.6877 0.0000 0.7259 +vn 0.8314 0.0000 0.5556 +vn 0.6877 0.0000 0.7259 +vn -0.6861 0.0000 -0.7275 +s off +f 56/1/1 55/2/1 57/3/1 +f 61/4/2 58/5/2 60/6/2 +f 62/7/3 68/8/3 33/9/3 +f 57/10/3 45/11/3 47/12/3 +f 55/2/4 44/13/4 45/11/4 +f 57/3/1 64/14/1 56/1/1 +f 56/15/4 40/16/4 46/17/4 +f 64/14/1 58/5/1 59/18/1 +f 54/19/5 46/20/5 44/13/5 +f 36/21/2 66/22/2 42/23/2 +f 39/24/5 42/23/5 40/16/5 +f 64/14/1 39/24/1 56/1/1 +f 35/25/1 57/3/1 38/26/1 +f 58/5/3 67/27/3 60/6/3 +f 38/26/4 47/28/4 41/29/4 +f 34/30/3 63/31/3 70/32/3 +f 35/25/3 41/29/3 43/33/3 +f 61/4/5 64/34/5 59/18/5 +f 67/35/2 35/25/2 43/33/2 +f 73/36/5 83/37/5 84/38/5 +f 74/39/5 79/40/5 72/41/5 +f 33/9/3 37/42/3 34/30/3 +f 34/43/6 79/40/6 63/44/6 +f 75/45/5 71/46/5 72/41/5 +f 68/47/1 71/48/1 33/49/1 +f 63/44/4 74/39/4 70/50/4 +f 69/51/7 83/52/7 68/47/7 +f 78/53/5 76/54/5 82/55/5 +f 37/56/3 48/57/3 50/58/3 +f 105/59/8 98/60/8 112/61/8 +f 99/62/9 92/63/9 85/64/9 +f 100/65/10 106/66/10 99/67/10 +f 101/68/1 107/69/1 100/65/1 +f 102/70/1 108/71/1 101/68/1 +f 103/72/1 109/73/1 102/70/1 +f 104/74/1 110/75/1 103/72/1 +f 105/76/11 111/77/11 104/74/11 +f 97/78/12 91/79/12 90/80/12 +f 96/81/12 90/80/12 89/82/12 +f 95/83/12 89/82/12 88/84/12 +f 94/85/12 88/84/12 87/86/12 +f 93/87/12 87/86/12 86/88/12 +f 92/89/12 86/88/12 85/64/12 +f 114/90/3 115/91/3 113/92/3 +f 128/93/5 125/94/5 127/95/5 +f 120/96/5 117/97/5 119/98/5 +f 122/99/3 123/100/3 121/101/3 +f 119/98/12 113/92/12 115/91/12 +f 116/102/1 118/103/1 120/96/1 +f 127/95/12 121/101/12 123/100/12 +f 124/104/1 126/105/1 128/93/1 +f 132/106/12 129/107/12 130/108/12 +f 144/109/1 137/110/1 139/111/1 +f 131/112/2 133/113/2 129/114/2 +f 132/106/5 136/115/5 140/116/5 +f 130/117/4 136/115/4 132/106/4 +f 129/118/3 133/113/3 138/119/3 +f 138/119/6 136/120/6 134/121/6 +f 139/111/6 141/122/6 143/123/6 +f 133/113/1 140/116/1 138/119/1 +f 148/124/3 144/109/3 139/111/3 +f 147/125/4 141/126/4 145/127/4 +f 145/127/5 141/126/5 137/110/5 +f 146/128/2 144/109/2 148/129/2 +f 145/127/12 148/130/12 147/131/12 +f 158/132/3 160/133/3 149/134/3 +f 150/135/3 159/136/3 162/137/3 +f 165/138/5 175/139/5 176/140/5 +f 166/141/5 171/142/5 164/143/5 +f 149/134/3 151/144/3 150/135/3 +f 150/145/6 171/142/6 159/146/6 +f 167/147/5 163/148/5 164/143/5 +f 160/149/1 163/150/1 149/151/1 +f 159/146/4 166/141/4 162/152/4 +f 161/153/7 175/154/7 160/149/7 +f 170/155/5 168/156/5 174/157/5 +f 151/158/3 152/159/3 154/160/3 +f 177/161/1 181/162/1 185/163/1 +f 56/1/1 54/19/1 55/2/1 +f 61/4/2 59/18/2 58/5/2 +f 62/7/3 69/164/3 68/8/3 +f 57/10/3 55/2/3 45/11/3 +f 55/2/4 54/19/4 44/13/4 +f 57/3/1 65/165/1 64/14/1 +f 56/15/4 39/24/4 40/16/4 +f 64/14/1 65/165/1 58/5/1 +f 54/19/5 56/15/5 46/20/5 +f 36/21/2 64/34/2 66/22/2 +f 39/24/5 36/21/5 42/23/5 +f 64/14/1 36/21/1 39/24/1 +f 35/25/1 65/165/1 57/3/1 +f 58/5/3 65/166/3 67/27/3 +f 38/26/4 57/10/4 47/28/4 +f 70/32/3 62/7/3 34/30/3 +f 62/7/3 33/9/3 34/30/3 +f 35/25/3 38/26/3 41/29/3 +f 61/4/5 66/167/5 64/34/5 +f 67/35/2 65/166/2 35/25/2 +f 73/36/5 71/46/5 83/37/5 +f 71/46/5 73/36/5 72/41/5 +f 73/36/5 74/39/5 72/41/5 +f 33/9/3 48/168/3 37/42/3 +f 34/43/6 72/169/6 79/40/6 +f 75/45/5 76/170/5 71/46/5 +f 68/47/1 83/52/1 71/48/1 +f 63/44/4 79/40/4 74/39/4 +f 69/51/7 84/38/7 83/52/7 +f 78/53/5 77/171/5 76/54/5 +f 76/54/5 75/172/5 82/55/5 +f 82/55/5 81/173/5 80/174/5 +f 80/174/5 78/53/5 82/55/5 +f 48/57/3 49/175/3 50/58/3 +f 50/58/3 51/176/3 52/177/3 +f 52/177/3 53/178/3 50/58/3 +f 53/178/3 37/56/3 50/58/3 +f 105/59/8 91/79/8 98/60/8 +f 99/62/9 106/179/9 92/63/9 +f 100/65/13 107/69/13 106/66/13 +f 101/68/1 108/71/1 107/69/1 +f 102/70/1 109/73/1 108/71/1 +f 103/72/1 110/75/1 109/73/1 +f 104/74/1 111/77/1 110/75/1 +f 105/76/14 112/180/14 111/77/14 +f 97/78/12 98/181/12 91/79/12 +f 96/81/12 97/78/12 90/80/12 +f 95/83/12 96/81/12 89/82/12 +f 94/85/12 95/83/12 88/84/12 +f 93/87/12 94/85/12 87/86/12 +f 92/89/12 93/87/12 86/88/12 +f 114/90/3 116/182/3 115/91/3 +f 128/93/5 126/105/5 125/94/5 +f 120/96/5 118/103/5 117/97/5 +f 122/99/3 124/183/3 123/100/3 +f 119/98/12 117/97/12 113/92/12 +f 116/102/1 114/184/1 118/103/1 +f 127/95/12 125/94/12 121/101/12 +f 124/104/1 122/185/1 126/105/1 +f 132/106/12 131/186/12 129/107/12 +f 144/109/1 142/187/1 137/110/1 +f 131/112/2 135/188/2 133/113/2 +f 135/188/5 131/186/5 140/116/5 +f 131/186/5 132/106/5 140/116/5 +f 130/117/4 134/189/4 136/115/4 +f 134/190/3 130/191/3 138/119/3 +f 130/191/3 129/118/3 138/119/3 +f 138/119/6 140/116/6 136/120/6 +f 139/111/6 137/110/6 141/122/6 +f 133/113/1 135/188/1 140/116/1 +f 143/192/3 147/193/3 139/111/3 +f 147/193/3 148/124/3 139/111/3 +f 147/125/4 143/194/4 141/126/4 +f 142/187/5 146/195/5 137/110/5 +f 146/195/5 145/127/5 137/110/5 +f 146/128/2 142/187/2 144/109/2 +f 145/127/12 146/195/12 148/130/12 +f 158/132/3 161/196/3 160/133/3 +f 162/137/3 158/132/3 150/135/3 +f 158/132/3 149/134/3 150/135/3 +f 165/138/5 163/148/5 175/139/5 +f 163/148/5 165/138/5 164/143/5 +f 165/138/5 166/141/5 164/143/5 +f 149/134/3 152/197/3 151/144/3 +f 150/145/6 164/198/6 171/142/6 +f 167/147/5 168/199/5 163/148/5 +f 160/149/1 175/154/1 163/150/1 +f 159/146/4 171/142/4 166/141/4 +f 161/153/7 176/140/7 175/154/7 +f 170/155/5 169/200/5 168/156/5 +f 168/156/5 167/201/5 174/157/5 +f 174/157/5 173/202/5 172/203/5 +f 172/203/5 170/155/5 174/157/5 +f 152/159/3 153/204/3 154/160/3 +f 154/160/3 155/205/3 156/206/3 +f 156/206/3 157/207/3 154/160/3 +f 157/207/3 151/158/3 154/160/3 +f 177/161/1 178/208/1 181/162/1 +f 178/208/1 179/209/1 181/162/1 +f 179/209/1 180/210/1 181/162/1 +f 181/162/1 182/211/1 185/163/1 +f 182/211/1 183/212/1 185/163/1 +f 183/212/1 184/213/1 185/163/1 +f 185/163/1 186/214/1 187/215/1 +f 187/215/1 188/216/1 189/217/1 +f 189/217/1 190/218/1 191/219/1 +f 191/219/1 192/220/1 177/161/1 +f 185/163/1 187/215/1 189/217/1 +f 189/217/1 191/219/1 185/163/1 +f 191/219/1 177/161/1 185/163/1 +s 1 +f 3/221/15 18/222/9 2/223/9 +f 11/224/16 26/225/17 10/226/17 +f 4/227/18 19/228/15 3/221/15 +f 12/229/19 27/230/16 11/224/16 +f 5/231/3 20/232/18 4/227/18 +f 13/233/5 28/234/19 12/229/19 +f 6/235/20 21/236/3 5/231/3 +f 14/237/21 29/238/5 13/233/5 +f 7/239/22 22/240/20 6/235/20 +f 15/241/23 30/242/21 14/237/21 +f 8/243/24 23/244/22 7/239/22 +f 16/245/8 31/246/23 15/241/23 +f 9/247/2 24/248/24 8/243/24 +f 2/223/9 17/249/4 1/250/4 +f 1/250/4 32/251/8 16/245/8 +f 10/226/17 25/252/2 9/253/2 +f 197/254/17 203/255/2 196/256/2 +f 241/257/25 249/258/4 240/259/4 +f 244/260/26 254/261/1 245/262/1 +f 247/263/27 250/264/25 241/257/25 +f 245/265/1 255/266/28 246/267/28 +f 242/268/29 252/269/30 243/270/30 +f 246/267/28 256/271/27 247/263/27 +f 243/270/30 253/272/26 244/260/26 +f 239/273/2 251/274/29 242/268/29 +f 214/275/31 208/276/23 207/277/31 +f 229/278/27 232/279/25 223/280/25 +f 217/281/4 211/282/9 210/283/4 +f 227/284/1 237/285/28 228/286/28 +f 216/287/8 210/283/4 209/288/8 +f 224/289/29 234/290/30 225/291/30 +f 212/292/15 220/293/32 213/294/32 +f 228/286/28 238/295/27 229/278/27 +f 215/296/33 209/288/8 208/276/23 +f 218/297/9 212/292/15 211/282/9 +f 225/291/30 235/298/26 226/299/26 +f 221/300/2 233/301/29 224/289/29 +f 194/302/22 200/303/34 193/304/34 +f 198/305/16 204/306/17 197/254/17 +f 195/307/24 201/308/35 194/302/22 +f 198/305/16 206/309/36 205/310/37 +f 196/256/2 202/311/24 195/307/24 +f 226/299/26 236/312/1 227/313/1 +f 223/280/25 231/314/4 222/315/4 +f 3/221/15 19/228/15 18/222/9 +f 11/224/16 27/230/16 26/225/17 +f 4/227/18 20/232/18 19/228/15 +f 12/229/19 28/234/19 27/230/16 +f 5/231/3 21/236/3 20/232/18 +f 13/233/5 29/238/5 28/234/19 +f 6/235/20 22/240/20 21/236/3 +f 14/237/21 30/242/21 29/238/5 +f 7/239/22 23/244/22 22/240/20 +f 15/241/23 31/246/23 30/242/21 +f 8/243/24 24/248/24 23/244/22 +f 16/245/8 32/251/8 31/246/23 +f 9/247/2 25/316/2 24/248/24 +f 2/223/9 18/222/9 17/249/4 +f 1/250/4 17/249/4 32/251/8 +f 10/226/17 26/225/17 25/252/2 +f 197/254/17 204/306/17 203/255/2 +f 241/257/25 250/264/25 249/258/4 +f 244/260/26 253/272/26 254/261/1 +f 247/263/27 256/271/27 250/264/25 +f 245/265/1 254/317/1 255/266/28 +f 242/268/29 251/274/29 252/269/30 +f 246/267/28 255/266/28 256/271/27 +f 243/270/30 252/269/30 253/272/26 +f 239/273/2 248/318/2 251/274/29 +f 214/275/31 215/296/33 208/276/23 +f 229/278/27 238/295/27 232/279/25 +f 217/281/4 218/297/9 211/282/9 +f 227/284/1 236/319/1 237/285/28 +f 216/287/8 217/281/4 210/283/4 +f 224/289/29 233/301/29 234/290/30 +f 212/292/15 219/320/38 220/293/32 +f 228/286/28 237/285/28 238/295/27 +f 215/296/33 216/287/8 209/288/8 +f 218/297/9 219/320/38 212/292/15 +f 225/291/30 234/290/30 235/298/26 +f 221/300/2 230/321/2 233/301/29 +f 194/302/22 201/308/35 200/303/34 +f 198/305/16 205/310/37 204/306/17 +f 195/307/24 202/311/24 201/308/35 +f 198/305/16 199/322/36 206/309/36 +f 196/256/2 203/255/2 202/311/24 +f 226/299/26 235/298/26 236/312/1 +f 223/280/25 232/279/25 231/314/4 +o Cannon +v 0.000000 3.500000 0.500000 +v -0.250000 3.433013 0.500000 +v -0.433013 3.250000 0.500000 +v -0.500000 3.000000 0.500000 +v -0.433013 2.750000 0.500000 +v -0.250000 2.566987 0.500000 +v 0.000000 2.500000 0.500000 +v 0.250000 2.566987 0.500000 +v 0.433013 2.750000 0.500000 +v 0.500000 3.000000 0.500000 +v 0.433013 3.250000 0.500000 +v 0.250000 3.433012 0.500000 +v 0.000000 3.500000 -2.000000 +v -0.250000 3.433013 -2.000000 +v -0.433013 3.250000 -2.000000 +v -0.500000 3.000000 -2.000000 +v -0.433013 2.750000 -2.000000 +v -0.250000 2.566987 -2.000000 +v 0.000000 2.500000 -2.000000 +v 0.250000 2.566987 -2.000000 +v 0.433013 2.750000 -2.000000 +v 0.500000 3.000000 -2.000000 +v 0.433013 3.250000 -2.000000 +v 0.250000 3.433012 -2.000000 +v 0.000000 3.312500 0.750000 +v -0.156250 3.270633 0.750000 +v -0.270633 3.156250 0.750000 +v -0.312500 3.000000 0.750000 +v -0.270633 2.843750 0.750000 +v -0.156250 2.729367 0.750000 +v 0.000000 2.687500 0.750000 +v 0.156250 2.729367 0.750000 +v 0.270633 2.843750 0.750000 +v 0.312500 3.000000 0.750000 +v 0.270633 3.156250 0.750000 +v 0.156250 3.270633 0.750000 +v 0.750000 2.911612 -0.088388 +v 0.750000 3.000000 -0.125000 +v 0.750000 3.000000 -0.062500 +v 1.125000 3.000000 -0.062500 +v 0.750000 2.955806 -0.044194 +v 1.125000 2.955806 -0.044194 +v 0.750000 2.937500 0.000000 +v 1.125000 2.937500 0.000000 +v 0.750000 2.955806 0.044194 +v 1.125000 2.955806 0.044194 +v 0.750000 3.000000 0.062500 +v 1.125000 3.000000 0.062500 +v 0.750000 3.044194 0.044194 +v 1.125000 3.044194 0.044194 +v 0.750000 3.062500 0.000000 +v 1.125000 3.062500 0.000000 +v 0.750000 3.044194 -0.044194 +v 1.125000 3.044194 -0.044194 +v 0.750000 2.875000 0.000000 +v 0.750000 2.911612 0.088388 +v 0.750000 3.000000 0.125000 +v 0.750000 3.088388 0.088388 +v 0.750000 3.125000 0.000000 +v 0.750000 3.088388 -0.088388 +v 0.625000 2.911612 -0.088388 +v 0.625000 3.000000 -0.125000 +v 0.625000 2.875000 0.000000 +v 0.625000 2.911612 0.088388 +v 0.625000 3.000000 0.125000 +v 0.625000 3.088388 0.088388 +v 0.625000 3.125000 0.000000 +v 0.625000 3.088388 -0.088388 +v 0.250000 3.433012 -1.375000 +v 0.433013 3.250000 -1.375000 +v 0.500000 3.000000 -1.375000 +v 0.433013 2.750000 -1.375000 +v 0.250000 2.566987 -1.375000 +v 0.000000 2.500000 -1.375000 +v -0.250000 2.566987 -1.375000 +v -0.433013 2.750000 -1.375000 +v -0.500000 3.000000 -1.375000 +v -0.433013 3.250000 -1.375000 +v -0.250000 3.433013 -1.375000 +v 0.000000 3.500000 -1.375000 +v 0.000000 3.562500 -1.375000 +v -0.281250 3.487139 -1.375000 +v -0.487139 3.281250 -1.375000 +v -0.562500 3.000000 -1.375000 +v -0.487139 2.718750 -1.375000 +v -0.281250 2.512861 -1.375000 +v 0.000000 2.437500 -1.375000 +v 0.281250 2.512861 -1.375000 +v 0.487139 2.718750 -1.375000 +v 0.562500 3.000000 -1.375000 +v 0.487139 3.281250 -1.375000 +v 0.281250 3.487139 -1.375000 +v 0.000000 3.562500 -1.500000 +v -0.281250 3.487139 -1.500000 +v -0.487139 3.281250 -1.500000 +v -0.562500 3.000000 -1.500000 +v -0.487139 2.718750 -1.500000 +v -0.281250 2.512861 -1.500000 +v 0.000000 2.437500 -1.500000 +v 0.281250 2.512861 -1.500000 +v 0.487139 2.718750 -1.500000 +v 0.562500 3.000000 -1.500000 +v 0.487139 3.281250 -1.500000 +v 0.281250 3.487139 -1.500000 +v 0.937500 2.625000 0.750000 +v 0.937500 3.375000 0.250000 +v 0.937500 2.625000 -0.750000 +v 0.937500 3.375000 -0.750000 +v 1.062500 2.625000 0.750000 +v 1.062500 3.375000 0.250000 +v 1.062500 2.625000 -0.750000 +v 1.062500 3.375000 -0.750000 +v 0.937500 2.750000 0.750000 +v 0.375000 2.750000 -1.187500 +v 0.937500 3.250000 0.250000 +v 1.062500 3.250000 0.250000 +v 0.375000 3.250000 -1.187500 +v 1.062500 2.750000 0.750000 +v 0.375000 2.750000 -1.312500 +v 0.375000 3.250000 -1.312500 +v -0.500000 3.625000 0.500000 +v -0.500000 3.750000 0.500000 +v -0.500000 3.625000 -0.750000 +v -0.500000 3.750000 -0.750000 +v 0.500000 3.625000 0.500000 +v 0.500000 3.750000 0.500000 +v 0.500000 3.625000 -0.750000 +v 0.500000 3.750000 -0.750000 +v -0.750000 3.375000 0.500000 +v -0.750000 3.375000 -0.750000 +v 0.750000 3.375000 0.500000 +v 0.750000 3.375000 -0.750000 +v -0.875000 3.375000 0.500000 +v -0.875000 3.375000 -0.750000 +v 0.875000 3.375000 0.500000 +v 0.875000 3.375000 -0.750000 +v -0.750000 2.875000 -0.750000 +v -0.750000 2.875000 0.000000 +v 0.750000 2.875000 0.000000 +v 0.750000 2.875000 -0.750000 +v -0.875000 2.875000 -0.750000 +v -0.875000 2.875000 0.000000 +v 0.875000 2.875000 0.000000 +v 0.875000 2.875000 -0.750000 +v -0.250000 3.625000 -0.500000 +v 0.250000 3.750000 -0.500000 +v 0.250000 3.625000 -0.500000 +v -0.250000 3.750000 -0.500000 +v -0.750000 2.911612 -0.088388 +v -0.750000 3.000000 -0.125000 +v -0.750000 3.000000 -0.062500 +v -1.125000 3.000000 -0.062500 +v -0.750000 2.955806 -0.044194 +v -1.125000 2.955806 -0.044194 +v -0.750000 2.937500 0.000000 +v -1.125000 2.937500 0.000000 +v -0.750000 2.955806 0.044194 +v -1.125000 2.955806 0.044194 +v -0.750000 3.000000 0.062500 +v -1.125000 3.000000 0.062500 +v -0.750000 3.044194 0.044194 +v -1.125000 3.044194 0.044194 +v -0.750000 3.062500 0.000000 +v -1.125000 3.062500 0.000000 +v -0.750000 3.044194 -0.044194 +v -1.125000 3.044194 -0.044194 +v -0.750000 2.875000 0.000000 +v -0.750000 2.911612 0.088388 +v -0.750000 3.000000 0.125000 +v -0.750000 3.088388 0.088388 +v -0.750000 3.125000 0.000000 +v -0.750000 3.088388 -0.088388 +v -0.625000 2.911612 -0.088388 +v -0.625000 3.000000 -0.125000 +v -0.625000 2.875000 0.000000 +v -0.625000 2.911612 0.088388 +v -0.625000 3.000000 0.125000 +v -0.625000 3.088388 0.088388 +v -0.625000 3.125000 0.000000 +v -0.625000 3.088388 -0.088388 +v -0.375000 3.250000 -1.312500 +v -0.375000 2.750000 -1.312500 +v -1.062500 2.750000 0.750000 +v -0.375000 3.250000 -1.187500 +v -1.062500 3.250000 0.250000 +v -0.937500 3.250000 0.250000 +v -0.375000 2.750000 -1.187500 +v -0.937500 2.750000 0.750000 +v -1.062500 3.375000 -0.750000 +v -1.062500 2.625000 -0.750000 +v -1.062500 3.375000 0.250000 +v -1.062500 2.625000 0.750000 +v -0.937500 3.375000 -0.750000 +v -0.937500 2.625000 -0.750000 +v -0.937500 3.375000 0.250000 +v -0.937500 2.625000 0.750000 +v 0.000000 2.562500 -2.000000 +v -0.218750 2.621114 -2.000000 +v -0.378886 2.781250 -2.000000 +v -0.437500 3.000000 -2.000000 +v -0.378886 3.218750 -2.000000 +v -0.218750 3.378886 -2.000000 +v 0.000000 3.437500 -2.000000 +v 0.218750 3.378886 -2.000000 +v 0.378886 3.218750 -2.000000 +v 0.437500 3.000000 -2.000000 +v 0.378886 2.781250 -2.000000 +v 0.218750 2.621114 -2.000000 +v 0.000000 2.562500 -5.500000 +v -0.218750 2.621114 -5.500000 +v -0.378886 2.781250 -5.500000 +v -0.437500 3.000000 -5.500000 +v -0.378886 3.218750 -5.500000 +v -0.218750 3.378886 -5.500000 +v 0.000000 3.437500 -5.500000 +v 0.218750 3.378886 -5.500000 +v 0.378886 3.218750 -5.500000 +v 0.437500 3.000000 -5.500000 +v 0.378886 2.781250 -5.500000 +v 0.218750 2.621114 -5.500000 +v 0.000000 2.687500 -5.625000 +v -0.156250 2.729367 -5.625000 +v -0.270633 2.843750 -5.625000 +v -0.312500 3.000000 -5.625000 +v -0.270633 3.156250 -5.625000 +v -0.156250 3.270633 -5.625000 +v 0.000000 3.312500 -5.625000 +v 0.156250 3.270633 -5.625000 +v 0.270633 3.156250 -5.625000 +v 0.312500 3.000000 -5.625000 +v 0.270633 2.843750 -5.625000 +v 0.156250 2.729367 -5.625000 +v 0.000000 3.375000 -5.593750 +v -0.187500 3.324759 -5.593750 +v -0.324759 3.187500 -5.593750 +v -0.375000 3.000000 -5.593750 +v -0.324759 2.812500 -5.593750 +v -0.187500 2.675241 -5.593750 +v 0.000000 2.625000 -5.593750 +v 0.187500 2.675241 -5.593750 +v 0.324759 2.812500 -5.593750 +v 0.375000 3.000000 -5.593750 +v 0.324760 3.187500 -5.593750 +v 0.187500 3.324759 -5.593750 +v -0.250000 3.625000 0.750000 +v 0.250000 3.750000 0.750000 +v 0.250000 3.625000 0.750000 +v -0.250000 3.750000 0.750000 +v -0.375000 3.625000 0.250000 +v 0.375000 3.625000 0.250000 +v -0.375000 3.625000 0.000000 +v 0.375000 3.625000 0.000000 +v -0.375000 3.500000 0.250000 +v 0.375000 3.500000 0.250000 +v -0.375000 3.500000 0.000000 +v 0.375000 3.500000 0.000000 +v -0.250000 3.375000 0.250000 +v 0.250000 3.375000 0.250000 +v -0.250000 3.375000 0.000000 +v 0.250000 3.375000 0.000000 +v 0.000000 3.625000 0.000000 +v -0.044194 3.606694 0.000000 +v -0.062500 3.562500 0.000000 +v -0.044194 3.518306 0.000000 +v 0.000000 3.500000 0.000000 +v 0.044194 3.518306 0.000000 +v 0.062500 3.562500 0.000000 +v 0.044194 3.606694 0.000000 +v 0.000000 3.625000 -1.750000 +v -0.044194 3.606694 -1.750000 +v -0.062500 3.562500 -1.750000 +v -0.044194 3.518306 -1.750000 +v 0.000000 3.500000 -1.750000 +v 0.044194 3.518306 -1.750000 +v 0.062500 3.562500 -1.750000 +v 0.044194 3.606694 -1.750000 +v 0.044194 3.375000 -1.856694 +v 0.062500 3.375000 -1.812500 +v 0.044194 3.375000 -1.768306 +v -0.044194 3.375000 -1.768306 +v -0.062500 3.375000 -1.812500 +v -0.044194 3.375000 -1.856694 +v 0.000000 3.500000 -1.875000 +v -0.044194 3.500000 -1.856694 +v -0.062500 3.500000 -1.812500 +v -0.044194 3.500000 -1.768306 +v 0.000000 3.375000 -1.750000 +v 0.044194 3.500000 -1.768306 +v 0.062500 3.500000 -1.812500 +v 0.044194 3.500000 -1.856694 +v 0.044194 3.575444 -1.825444 +v 0.062500 3.544194 -1.794194 +v 0.044194 3.512944 -1.762944 +v 0.000000 3.375000 -1.875000 +v -0.044194 3.512944 -1.762944 +v -0.062500 3.544194 -1.794194 +v -0.044194 3.575444 -1.825444 +v 0.000000 3.588388 -1.838388 +v 0.213763 3.587308 0.000000 +v 0.165973 3.585221 0.000000 +v 0.133656 3.549953 0.000000 +v 0.135742 3.502163 0.000000 +v 0.171010 3.469846 0.000000 +v 0.218800 3.471933 0.000000 +v 0.251117 3.507201 0.000000 +v 0.249031 3.554991 0.000000 +v 0.213763 3.587308 -1.500000 +v 0.165973 3.585221 -1.500000 +v 0.133656 3.549953 -1.500000 +v 0.135742 3.502163 -1.500000 +v 0.171010 3.469846 -1.500000 +v 0.218800 3.471933 -1.500000 +v 0.251117 3.507201 -1.500000 +v 0.249031 3.554991 -1.500000 +v 0.169787 3.337270 -1.606694 +v 0.186988 3.331008 -1.562500 +v 0.169787 3.337270 -1.518306 +v 0.086729 3.367500 -1.518306 +v 0.069527 3.373761 -1.562500 +v 0.086729 3.367500 -1.606694 +v 0.171010 3.469846 -1.625000 +v 0.129481 3.484962 -1.606694 +v 0.112279 3.491222 -1.562500 +v 0.129481 3.484962 -1.518306 +v 0.128258 3.352385 -1.500000 +v 0.212539 3.454731 -1.518306 +v 0.229741 3.448470 -1.562500 +v 0.212539 3.454731 -1.606694 +v 0.238343 3.525625 -1.575444 +v 0.244856 3.489999 -1.544194 +v 0.216966 3.466895 -1.512944 +v 0.128258 3.352385 -1.625000 +v 0.133908 3.497125 -1.512944 +v 0.127395 3.532752 -1.544194 +v 0.155284 3.555856 -1.575444 +v 0.201241 3.552904 -1.588388 +v -0.201241 3.552904 -1.588388 +v -0.238342 3.525625 -1.575444 +v -0.244856 3.489999 -1.544194 +v -0.216966 3.466895 -1.512944 +v -0.128257 3.352385 -1.625000 +v -0.133908 3.497125 -1.512944 +v -0.127395 3.532752 -1.544194 +v -0.155285 3.555856 -1.575444 +v -0.129481 3.484962 -1.606694 +v -0.112279 3.491222 -1.562500 +v -0.129481 3.484962 -1.518306 +v -0.128257 3.352385 -1.500000 +v -0.212539 3.454731 -1.518306 +v -0.229741 3.448470 -1.562500 +v -0.212539 3.454731 -1.606694 +v -0.171010 3.469846 -1.625000 +v -0.169786 3.337270 -1.606694 +v -0.186988 3.331008 -1.562500 +v -0.169786 3.337270 -1.518306 +v -0.086729 3.367500 -1.518306 +v -0.069527 3.373761 -1.562500 +v -0.086729 3.367500 -1.606694 +v -0.165973 3.585221 -1.500000 +v -0.133655 3.549953 -1.500000 +v -0.135742 3.502163 -1.500000 +v -0.171010 3.469846 -1.500000 +v -0.218800 3.471933 -1.500000 +v -0.251117 3.507201 -1.500000 +v -0.249031 3.554991 -1.500000 +v -0.213763 3.587308 -1.500000 +v -0.165973 3.585221 0.000000 +v -0.133655 3.549953 0.000000 +v -0.135742 3.502163 0.000000 +v -0.171010 3.469846 0.000000 +v -0.218800 3.471933 0.000000 +v -0.251117 3.507201 0.000000 +v -0.249031 3.554991 0.000000 +v -0.213763 3.587308 0.000000 +v -1.125000 3.000000 -0.062500 +v -1.125000 2.955806 -0.044194 +v -1.125000 2.937500 0.000000 +v -1.125000 2.955806 0.044194 +v -1.125000 3.000000 0.062500 +v -1.125000 3.044194 0.044194 +v -1.125000 3.062500 0.000000 +v -1.125000 3.044194 -0.044194 +v 1.125000 3.000000 -0.062500 +v 1.125000 2.955806 -0.044194 +v 1.125000 2.937500 0.000000 +v 1.125000 2.955806 0.044194 +v 1.125000 3.000000 0.062500 +v 1.125000 3.044194 0.044194 +v 1.125000 3.062500 0.000000 +v 1.125000 3.044194 -0.044194 +v -0.750000 2.911612 -0.088388 +v -0.750000 3.000000 -0.125000 +v -0.750000 3.000000 -0.062500 +v -0.750000 2.955806 -0.044194 +v -0.750000 2.937500 0.000000 +v -0.750000 2.955806 0.044194 +v -0.750000 3.000000 0.062500 +v -0.750000 3.044194 0.044194 +v -0.750000 3.062500 0.000000 +v -0.750000 3.044194 -0.044194 +v -0.750000 2.875000 0.000000 +v -0.750000 2.911612 0.088388 +v -0.750000 3.000000 0.125000 +v -0.750000 3.088388 0.088388 +v -0.750000 3.125000 0.000000 +v -0.750000 3.088388 -0.088388 +v 0.750000 2.911612 -0.088388 +v 0.750000 3.000000 -0.125000 +v 0.750000 3.000000 -0.062500 +v 0.750000 2.955806 -0.044194 +v 0.750000 2.937500 0.000000 +v 0.750000 2.955806 0.044194 +v 0.750000 3.000000 0.062500 +v 0.750000 3.044194 0.044194 +v 0.750000 3.062500 0.000000 +v 0.750000 3.044194 -0.044194 +v 0.750000 2.875000 0.000000 +v 0.750000 2.911612 0.088388 +v 0.750000 3.000000 0.125000 +v 0.750000 3.088388 0.088388 +v 0.750000 3.125000 0.000000 +v 0.750000 3.088388 -0.088388 +v 0.000000 3.500000 -2.000000 +v -0.250000 3.433013 -2.000000 +v -0.433013 3.250000 -2.000000 +v -0.500000 3.000000 -2.000000 +v -0.433013 2.750000 -2.000000 +v -0.250000 2.566987 -2.000000 +v 0.000000 2.500000 -2.000000 +v 0.250000 2.566987 -2.000000 +v 0.433013 2.750000 -2.000000 +v 0.500000 3.000000 -2.000000 +v 0.433013 3.250000 -2.000000 +v 0.250000 3.433012 -2.000000 +v 0.000000 2.562500 -2.000000 +v -0.218750 2.621114 -2.000000 +v -0.378886 2.781250 -2.000000 +v -0.437500 3.000000 -2.000000 +v -0.378886 3.218750 -2.000000 +v -0.218750 3.378886 -2.000000 +v 0.000000 3.437500 -2.000000 +v 0.218750 3.378886 -2.000000 +v 0.378886 3.218750 -2.000000 +v 0.437500 3.000000 -2.000000 +v 0.378886 2.781250 -2.000000 +v 0.218750 2.621114 -2.000000 +v 0.000000 3.500000 -1.500000 +v -0.250000 3.433013 -1.500000 +v -0.433013 3.250000 -1.500000 +v -0.500000 3.000000 -1.500000 +v -0.433013 2.750000 -1.500000 +v -0.250000 2.566987 -1.500000 +v 0.000000 2.500000 -1.500000 +v 0.250000 2.566987 -1.500000 +v 0.433013 2.750000 -1.500000 +v 0.500000 3.000000 -1.500000 +v 0.433013 3.250000 -1.500000 +v 0.250000 3.433012 -1.500000 +v 0.000000 3.562500 -1.500000 +v -0.281250 3.487139 -1.500000 +v -0.487139 3.281250 -1.500000 +v -0.562500 3.000000 -1.500000 +v -0.487139 2.718750 -1.500000 +v -0.281250 2.512861 -1.500000 +v 0.000000 2.437500 -1.500000 +v 0.281250 2.512861 -1.500000 +v 0.487139 2.718750 -1.500000 +v 0.562500 3.000000 -1.500000 +v 0.487139 3.281250 -1.500000 +v 0.281250 3.487139 -1.500000 +v 0.000000 3.562500 -1.375000 +v -0.281250 3.487139 -1.375000 +v -0.487139 3.281250 -1.375000 +v -0.562500 3.000000 -1.375000 +v -0.487139 2.718750 -1.375000 +v -0.281250 2.512861 -1.375000 +v 0.000000 2.437500 -1.375000 +v 0.281250 2.512861 -1.375000 +v 0.487139 2.718750 -1.375000 +v 0.562500 3.000000 -1.375000 +v 0.487139 3.281250 -1.375000 +v 0.281250 3.487139 -1.375000 +v 0.000000 3.500000 0.500000 +v -0.250000 3.433013 0.500000 +v -0.433013 3.250000 0.500000 +v -0.500000 3.000000 0.500000 +v -0.433013 2.750000 0.500000 +v -0.250000 2.566987 0.500000 +v 0.000000 2.500000 0.500000 +v 0.250000 2.566987 0.500000 +v 0.433013 2.750000 0.500000 +v 0.500000 3.000000 0.500000 +v 0.433013 3.250000 0.500000 +v 0.250000 3.433012 0.500000 +v 0.000000 3.312500 0.750000 +v -0.156250 3.270633 0.750000 +v -0.270633 3.156250 0.750000 +v -0.312500 3.000000 0.750000 +v -0.270633 2.843750 0.750000 +v -0.156250 2.729367 0.750000 +v 0.000000 2.687500 0.750000 +v 0.156250 2.729367 0.750000 +v 0.270633 2.843750 0.750000 +v 0.312500 3.000000 0.750000 +v 0.270633 3.156250 0.750000 +v 0.156250 3.270633 0.750000 +vt 0.611298 0.652620 +vt 0.647035 0.652620 +vt 0.629167 0.689759 +vt 0.208333 0.840000 +vt 0.204167 0.860000 +vt 0.204167 0.840000 +vt 0.187500 0.980000 +vt 0.191667 1.000000 +vt 0.187500 1.000000 +vt 0.187500 0.960000 +vt 0.191667 0.980000 +vt 0.187500 0.940000 +vt 0.191667 0.960000 +vt 0.191667 0.920000 +vt 0.191667 0.940000 +vt 0.187500 0.920000 +vt 0.191667 0.900000 +vt 0.187500 0.900000 +vt 0.191667 0.880000 +vt 0.495833 0.030000 +vt 0.500000 0.020000 +vt 0.500000 0.025000 +vt 0.187500 0.880000 +vt 0.191667 0.860000 +vt 0.187500 0.860000 +vt 0.191667 0.840000 +vt 0.191667 0.840000 +vt 0.195833 0.860000 +vt 0.191667 0.860000 +vt 0.195833 0.820000 +vt 0.191667 0.820000 +vt 0.195833 0.800000 +vt 0.191667 0.800000 +vt 0.195833 0.780000 +vt 0.191667 0.780000 +vt 0.195833 0.760000 +vt 0.191667 0.760000 +vt 0.191667 0.980000 +vt 0.195833 1.000000 +vt 0.191667 1.000000 +vt 0.191667 0.960000 +vt 0.195833 0.980000 +vt 0.195833 0.940000 +vt 0.191667 0.940000 +vt 0.195833 0.920000 +vt 0.191667 0.920000 +vt 0.195833 0.900000 +vt 0.191667 0.900000 +vt 0.195833 0.880000 +vt 0.191667 0.880000 +vt 0.841667 0.340000 +vt 0.908333 0.330000 +vt 0.908333 0.390000 +vt 0.908333 0.260000 +vt 0.966667 0.310000 +vt 0.908333 0.320000 +vt 0.841667 0.310000 +vt 0.808333 0.270000 +vt 0.808333 0.260000 +vt 0.841667 0.320000 +vt 0.833333 0.310000 +vt 0.808333 0.250000 +vt 0.908333 0.250000 +vt 0.800000 0.260000 +vt 0.966667 0.260000 +vt 0.800000 0.680000 +vt 0.883333 0.710000 +vt 0.800000 0.710000 +vt 0.808333 0.310000 +vt 0.800000 0.270000 +vt 0.966667 0.320000 +vt 0.966667 0.330000 +vt 0.958333 0.380000 +vt 0.991667 0.610000 +vt 1.000000 0.590000 +vt 1.000000 0.610000 +vt 0.883333 0.820000 +vt 0.800000 0.790000 +vt 0.883333 0.790000 +vt 0.908333 0.670000 +vt 0.991667 0.710000 +vt 0.908333 0.710000 +vt 0.991667 0.590000 +vt 0.908333 0.550000 +vt 0.991667 0.550000 +vt 1.000000 0.510000 +vt 1.000000 0.550000 +vt 0.900000 0.590000 +vt 0.908333 0.590000 +vt 0.900000 0.670000 +vt 0.900000 0.750000 +vt 0.900000 0.710000 +vt 1.000000 0.670000 +vt 0.991667 0.670000 +vt 0.991667 0.510000 +vt 0.941667 0.500000 +vt 0.991667 0.500000 +vt 0.941667 0.750000 +vt 0.991667 0.760000 +vt 0.941667 0.760000 +vt 0.833333 0.860000 +vt 0.800000 0.820000 +vt 1.000000 0.710000 +vt 0.991667 0.750000 +vt 0.900000 0.550000 +vt 0.908333 0.510000 +vt 0.883333 0.680000 +vt 0.833333 0.640000 +vt 0.883333 0.640000 +vt 0.941667 0.510000 +vt 1.000000 0.650000 +vt 0.991667 0.650000 +vt 0.500000 0.080000 +vt 0.495833 0.090000 +vt 0.495833 0.080000 +vt 0.500000 0.040000 +vt 0.495833 0.050000 +vt 0.495833 0.040000 +vt 0.500000 0.060000 +vt 0.495833 0.070000 +vt 0.495833 0.060000 +vt 0.500000 0.010000 +vt 0.495833 0.020000 +vt 0.495833 0.010000 +vt 0.500000 0.050000 +vt 0.500000 0.020000 +vt 0.495833 0.030000 +vt 0.481773 0.019520 +vt 0.479567 0.013128 +vt 0.484893 0.010480 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.500000 0.075000 +vt 0.500000 0.070000 +vt 0.958333 0.380000 +vt 0.908333 0.330000 +vt 0.908333 0.390000 +vt 0.966667 0.320000 +vt 0.908333 0.320000 +vt 0.800000 0.270000 +vt 0.808333 0.310000 +vt 0.808333 0.270000 +vt 0.966667 0.260000 +vt 0.908333 0.250000 +vt 0.908333 0.260000 +vt 0.800000 0.260000 +vt 0.808333 0.260000 +vt 0.841667 0.320000 +vt 0.808333 0.250000 +vt 0.833333 0.310000 +vt 0.841667 0.310000 +vt 0.966667 0.310000 +vt 0.841667 0.330000 +vt 0.841667 0.340000 +vt 0.204167 0.820000 +vt 0.208333 0.820000 +vt 0.204167 0.800000 +vt 0.208333 0.800000 +vt 0.204167 0.780000 +vt 0.208333 0.780000 +vt 0.204167 0.760000 +vt 0.208333 0.760000 +vt 0.208333 0.980000 +vt 0.204167 1.000000 +vt 0.204167 0.980000 +vt 0.208333 0.960000 +vt 0.204167 0.960000 +vt 0.204167 0.940000 +vt 0.208333 0.940000 +vt 0.204167 0.920000 +vt 0.208333 0.920000 +vt 0.204167 0.900000 +vt 0.208333 0.900000 +vt 0.204167 0.880000 +vt 0.208333 0.880000 +vt 0.208333 0.860000 +vt 0.883333 0.610000 +vt 0.891667 0.650000 +vt 0.883333 0.650000 +vt 0.783333 0.770000 +vt 0.891667 0.590000 +vt 0.883333 0.590000 +vt 0.891667 0.670000 +vt 0.883333 0.670000 +vt 0.975000 0.610000 +vt 0.975000 0.650000 +vt 0.587500 0.270000 +vt 0.604167 0.260000 +vt 0.604167 0.270000 +vt 0.720833 0.270000 +vt 0.670833 0.270000 +vt 0.679167 0.250000 +vt 0.654167 0.270000 +vt 0.670833 0.260000 +vt 0.587500 0.260000 +vt 0.604167 0.250000 +vt 0.654167 0.260000 +vt 0.670833 0.250000 +vt 0.645833 0.250000 +vt 0.612500 0.250000 +vt 0.479567 0.013128 +vt 0.484893 0.010480 +vt 0.487100 0.016872 +vt 0.495833 0.070000 +vt 0.500000 0.060000 +vt 0.500000 0.065000 +vt 0.500000 0.075000 +vt 0.500000 0.070000 +vt 0.500000 0.045000 +vt 0.495833 0.040000 +vt 0.500000 0.040000 +vt 0.500000 0.085000 +vt 0.495833 0.080000 +vt 0.500000 0.080000 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.500000 0.055000 +vt 0.495833 0.050000 +vt 0.500000 0.050000 +vt 0.500000 0.015000 +vt 0.495833 0.010000 +vt 0.500000 0.010000 +vt 0.187500 0.780000 +vt 0.191667 0.760000 +vt 0.191667 0.780000 +vt 0.187500 0.800000 +vt 0.191667 0.800000 +vt 0.187500 0.820000 +vt 0.191667 0.820000 +vt 0.187500 0.840000 +vt 0.618850 0.686442 +vt 0.611298 0.677380 +vt 0.608534 0.665000 +vt 0.618850 0.643558 +vt 0.629167 0.640240 +vt 0.639483 0.643558 +vt 0.649800 0.665000 +vt 0.647035 0.677380 +vt 0.639483 0.686442 +vt 0.495833 0.020000 +vt 0.195833 0.840000 +vt 0.195833 0.960000 +vt 0.808333 0.390000 +vt 0.808333 0.380000 +vt 0.841667 0.330000 +vt 0.966667 0.270000 +vt 0.833333 0.320000 +vt 0.966667 0.250000 +vt 0.800000 0.310000 +vt 0.958333 0.340000 +vt 0.908333 0.750000 +vt 0.883333 0.860000 +vt 1.000000 0.750000 +vt 0.900000 0.510000 +vt 0.500000 0.085000 +vt 0.500000 0.045000 +vt 0.500000 0.065000 +vt 0.500000 0.015000 +vt 0.500000 0.055000 +vt 0.500000 0.025000 +vt 0.487100 0.013128 +vt 0.487100 0.016872 +vt 0.484893 0.019520 +vt 0.479567 0.016872 +vt 0.481773 0.010480 +vt 0.958333 0.340000 +vt 0.966667 0.330000 +vt 0.800000 0.310000 +vt 0.966667 0.250000 +vt 0.833333 0.320000 +vt 0.966667 0.270000 +vt 0.808333 0.380000 +vt 0.808333 0.390000 +vt 0.208333 1.000000 +vt 0.891667 0.610000 +vt 0.866667 0.730000 +vt 0.866667 0.770000 +vt 0.783333 0.730000 +vt 0.712500 0.250000 +vt 0.720833 0.260000 +vt 0.587500 0.250000 +vt 0.654167 0.250000 +vt 0.484893 0.019520 +vt 0.481773 0.019520 +vt 0.479567 0.016872 +vt 0.481773 0.010480 +vt 0.487100 0.013128 +vt 0.495833 0.060000 +vt 0.495833 0.090000 +vt 0.187500 0.760000 +vt 0.020833 0.820000 +vt 0.187500 0.840000 +vt 0.020833 0.840000 +vt 0.020833 0.760000 +vt 0.187500 0.780000 +vt 0.020833 0.780000 +vt 0.020833 0.940000 +vt 0.187500 0.960000 +vt 0.020833 0.960000 +vt 0.187500 0.860000 +vt 0.020833 0.860000 +vt 0.020833 0.900000 +vt 0.187500 0.880000 +vt 0.187500 0.900000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.187500 0.980000 +vt 0.020833 0.980000 +vt 0.020833 0.880000 +vt 0.187500 0.920000 +vt 0.020833 0.920000 +vt 0.187500 0.820000 +vt 0.187500 1.000000 +vt 0.020833 1.000000 +vt 0.187500 0.940000 +vt 0.495833 0.030000 +vt 0.487500 0.040000 +vt 0.487500 0.030000 +vt 0.500000 0.070000 +vt 0.525000 0.075000 +vt 0.500000 0.075000 +vt 0.495833 0.070000 +vt 0.487500 0.080000 +vt 0.487500 0.070000 +vt 0.525000 0.080000 +vt 0.500000 0.085000 +vt 0.500000 0.080000 +vt 0.495833 0.090000 +vt 0.495833 0.080000 +vt 0.525000 0.010000 +vt 0.500000 0.015000 +vt 0.500000 0.010000 +vt 0.495833 0.050000 +vt 0.495833 0.040000 +vt 0.525000 0.020000 +vt 0.500000 0.025000 +vt 0.500000 0.020000 +vt 0.487500 0.060000 +vt 0.495833 0.060000 +vt 0.525000 0.030000 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.495833 0.020000 +vt 0.487500 0.010000 +vt 0.495833 0.010000 +vt 0.525000 0.040000 +vt 0.500000 0.045000 +vt 0.500000 0.040000 +vt 0.525000 0.050000 +vt 0.500000 0.055000 +vt 0.500000 0.050000 +vt 0.487500 0.050000 +vt 0.487500 0.020000 +vt 0.525000 0.060000 +vt 0.500000 0.065000 +vt 0.500000 0.060000 +vt 0.195833 0.860000 +vt 0.204167 0.880000 +vt 0.195833 0.880000 +vt 0.195833 0.900000 +vt 0.204167 0.900000 +vt 0.195833 0.920000 +vt 0.204167 0.920000 +vt 0.195833 0.940000 +vt 0.204167 0.940000 +vt 0.195833 0.960000 +vt 0.204167 0.960000 +vt 0.195833 0.980000 +vt 0.204167 0.980000 +vt 0.195833 1.000000 +vt 0.204167 0.760000 +vt 0.195833 0.780000 +vt 0.195833 0.760000 +vt 0.204167 0.780000 +vt 0.195833 0.800000 +vt 0.204167 0.800000 +vt 0.195833 0.820000 +vt 0.204167 0.820000 +vt 0.195833 0.840000 +vt 0.204167 0.840000 +vt 0.495833 0.070000 +vt 0.487500 0.060000 +vt 0.495833 0.060000 +vt 0.500000 0.020000 +vt 0.525000 0.025000 +vt 0.500000 0.025000 +vt 0.495833 0.030000 +vt 0.487500 0.020000 +vt 0.495833 0.020000 +vt 0.500000 0.010000 +vt 0.525000 0.015000 +vt 0.500000 0.015000 +vt 0.495833 0.010000 +vt 0.500000 0.080000 +vt 0.525000 0.085000 +vt 0.500000 0.085000 +vt 0.495833 0.050000 +vt 0.500000 0.075000 +vt 0.525000 0.070000 +vt 0.525000 0.075000 +vt 0.487500 0.040000 +vt 0.495833 0.040000 +vt 0.500000 0.060000 +vt 0.525000 0.065000 +vt 0.500000 0.065000 +vt 0.487500 0.090000 +vt 0.495833 0.080000 +vt 0.495833 0.090000 +vt 0.500000 0.050000 +vt 0.525000 0.055000 +vt 0.500000 0.055000 +vt 0.500000 0.040000 +vt 0.525000 0.045000 +vt 0.500000 0.045000 +vt 0.487500 0.050000 +vt 0.487500 0.080000 +vt 0.500000 0.030000 +vt 0.525000 0.035000 +vt 0.500000 0.035000 +vt 0.208333 0.860000 +vt 0.441667 0.880000 +vt 0.208333 0.880000 +vt 0.208333 0.920000 +vt 0.441667 0.940000 +vt 0.208333 0.940000 +vt 0.208333 0.780000 +vt 0.441667 0.800000 +vt 0.208333 0.800000 +vt 0.208333 0.980000 +vt 0.441667 1.000000 +vt 0.208333 1.000000 +vt 0.208333 0.840000 +vt 0.441667 0.860000 +vt 0.208333 0.900000 +vt 0.441667 0.920000 +vt 0.208333 0.760000 +vt 0.441667 0.780000 +vt 0.208333 0.960000 +vt 0.441667 0.980000 +vt 0.208333 0.820000 +vt 0.441667 0.840000 +vt 0.441667 0.900000 +vt 0.441667 0.960000 +vt 0.441667 0.820000 +vt 0.450000 0.860000 +vt 0.450000 0.865000 +vt 0.450000 0.885000 +vt 0.450000 0.905000 +vt 0.450000 0.925000 +vt 0.450000 0.960000 +vt 0.450000 0.980000 +vt 0.450000 1.000000 +vt 0.450000 0.765000 +vt 0.441667 0.760000 +vt 0.450000 0.785000 +vt 0.450000 0.820000 +vt 0.450000 0.840000 +vt 0.454167 0.845000 +vt 0.450000 0.845000 +vt 0.454167 0.865000 +vt 0.450000 0.880000 +vt 0.454167 0.885000 +vt 0.450000 0.900000 +vt 0.454167 0.920000 +vt 0.454167 0.905000 +vt 0.454167 0.925000 +vt 0.450000 0.940000 +vt 0.454167 0.960000 +vt 0.450000 0.945000 +vt 0.454167 0.945000 +vt 0.454167 0.980000 +vt 0.450000 0.965000 +vt 0.454167 0.965000 +vt 0.454167 1.000000 +vt 0.450000 0.985000 +vt 0.454167 0.985000 +vt 0.454167 0.765000 +vt 0.450000 0.780000 +vt 0.454167 0.785000 +vt 0.450000 0.800000 +vt 0.454167 0.805000 +vt 0.450000 0.805000 +vt 0.454167 0.825000 +vt 0.450000 0.825000 +vt 0.704167 0.280000 +vt 0.587500 0.285000 +vt 0.587500 0.280000 +vt 0.704167 0.270000 +vt 0.587500 0.275000 +vt 0.587500 0.270000 +vt 0.704167 0.300000 +vt 0.587500 0.305000 +vt 0.587500 0.300000 +vt 0.704167 0.290000 +vt 0.587500 0.295000 +vt 0.587500 0.290000 +vt 0.704167 0.285000 +vt 0.704167 0.275000 +vt 0.704167 0.305000 +vt 0.587500 0.310000 +vt 0.704167 0.295000 +vt 0.712500 0.310000 +vt 0.712500 0.305000 +vt 0.716667 0.305000 +vt 0.716667 0.300000 +vt 0.712500 0.295000 +vt 0.712500 0.300000 +vt 0.712500 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.285000 +vt 0.720833 0.290000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.708333 0.305000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.275000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.300000 +vt 0.720833 0.300000 +vt 0.729167 0.305000 +vt 0.720833 0.305000 +vt 0.729167 0.295000 +vt 0.729167 0.290000 +vt 0.720833 0.275000 +vt 0.729167 0.280000 +vt 0.720833 0.280000 +vt 0.729167 0.300000 +vt 0.729167 0.310000 +vt 0.720833 0.310000 +vt 0.729167 0.285000 +vt 0.720833 0.270000 +vt 0.729167 0.275000 +vt 0.704167 0.280000 +vt 0.604167 0.285000 +vt 0.604167 0.280000 +vt 0.704167 0.270000 +vt 0.604167 0.275000 +vt 0.604167 0.270000 +vt 0.704167 0.300000 +vt 0.604167 0.305000 +vt 0.604167 0.300000 +vt 0.704167 0.290000 +vt 0.604167 0.295000 +vt 0.604167 0.290000 +vt 0.704167 0.285000 +vt 0.704167 0.275000 +vt 0.704167 0.305000 +vt 0.604167 0.310000 +vt 0.704167 0.295000 +vt 0.712500 0.310000 +vt 0.712500 0.305000 +vt 0.716667 0.305000 +vt 0.712500 0.300000 +vt 0.712500 0.295000 +vt 0.716667 0.300000 +vt 0.712500 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.285000 +vt 0.720833 0.290000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.708333 0.305000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.275000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.300000 +vt 0.720833 0.300000 +vt 0.729167 0.305000 +vt 0.720833 0.305000 +vt 0.729167 0.295000 +vt 0.729167 0.285000 +vt 0.729167 0.290000 +vt 0.720833 0.280000 +vt 0.729167 0.275000 +vt 0.729167 0.280000 +vt 0.729167 0.300000 +vt 0.729167 0.310000 +vt 0.720833 0.310000 +vt 0.720833 0.270000 +vt 0.720833 0.275000 +vt 0.720833 0.270000 +vt 0.729167 0.275000 +vt 0.720833 0.275000 +vt 0.720833 0.285000 +vt 0.729167 0.280000 +vt 0.729167 0.285000 +vt 0.720833 0.310000 +vt 0.729167 0.305000 +vt 0.729167 0.310000 +vt 0.720833 0.300000 +vt 0.729167 0.295000 +vt 0.729167 0.300000 +vt 0.720833 0.280000 +vt 0.720833 0.290000 +vt 0.729167 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.305000 +vt 0.712500 0.305000 +vt 0.708333 0.300000 +vt 0.712500 0.300000 +vt 0.712500 0.295000 +vt 0.704167 0.295000 +vt 0.712500 0.290000 +vt 0.704167 0.290000 +vt 0.704167 0.285000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.275000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.305000 +vt 0.712500 0.310000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.716667 0.300000 +vt 0.716667 0.305000 +vt 0.604167 0.300000 +vt 0.604167 0.295000 +vt 0.704167 0.305000 +vt 0.604167 0.310000 +vt 0.604167 0.305000 +vt 0.704167 0.275000 +vt 0.604167 0.280000 +vt 0.604167 0.275000 +vt 0.604167 0.290000 +vt 0.604167 0.285000 +vt 0.704167 0.300000 +vt 0.704167 0.270000 +vt 0.604167 0.270000 +vt 0.704167 0.280000 +vt 0.020833 0.840000 +vt 0.000000 0.825000 +vt 0.020833 0.820000 +vt 0.020833 0.780000 +vt -0.000000 0.765000 +vt 0.020833 0.760000 +vt 0.020833 0.960000 +vt -0.000000 0.945000 +vt 0.020833 0.940000 +vt 0.020833 0.860000 +vt 0.000000 0.845000 +vt 0.020833 0.900000 +vt 0.000000 0.885000 +vt 0.020833 0.880000 +vt 0.020833 0.800000 +vt 0.000000 0.785000 +vt -0.000000 0.980000 +vt 0.000000 0.965000 +vt 0.000000 0.880000 +vt -0.000000 0.865000 +vt 0.020833 0.920000 +vt 0.000000 0.905000 +vt 0.000000 0.820000 +vt 0.000000 0.805000 +vt 0.020833 1.000000 +vt -0.000000 0.985000 +vt 0.020833 0.980000 +vt -0.000000 0.925000 +vt 0.187500 0.760000 +vt 0.525000 0.070000 +vt 0.525000 0.085000 +vt 0.487500 0.090000 +vt 0.525000 0.015000 +vt 0.525000 0.025000 +vt 0.525000 0.035000 +vt 0.525000 0.045000 +vt 0.525000 0.055000 +vt 0.525000 0.065000 +vt 0.204167 0.860000 +vt 0.204167 1.000000 +vt 0.487500 0.070000 +vt 0.525000 0.020000 +vt 0.487500 0.030000 +vt 0.525000 0.010000 +vt 0.487500 0.010000 +vt 0.525000 0.080000 +vt 0.500000 0.070000 +vt 0.525000 0.060000 +vt 0.525000 0.050000 +vt 0.525000 0.040000 +vt 0.525000 0.030000 +vt 0.450000 0.920000 +vt 0.454167 0.860000 +vt 0.454167 0.880000 +vt 0.454167 0.900000 +vt 0.454167 0.940000 +vt 0.454167 0.780000 +vt 0.454167 0.800000 +vt 0.454167 0.820000 +vt 0.454167 0.840000 +vt 0.704167 0.310000 +vt 0.729167 0.270000 +vt 0.704167 0.310000 +vt 0.729167 0.270000 +vt 0.729167 0.270000 +vt 0.704167 0.310000 +vt 0.000000 0.840000 +vt -0.000000 0.780000 +vt 0.000000 0.960000 +vt 0.000000 0.860000 +vt 0.000000 0.900000 +vt -0.000000 0.800000 +vt -0.000000 0.920000 +vt -0.000000 1.000000 +vt -0.000000 0.940000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.6332 0.0000 -0.7740 +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.9762 -0.2169 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.2169 0.9762 0.0000 +vn -0.6139 0.0000 0.7894 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.6139 0.0000 0.7894 +vn 0.0000 0.9762 -0.2169 +vn -0.6332 0.0000 -0.7740 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.2169 -0.9762 0.0000 +vn 0.2169 0.9762 0.0000 +vn 0.2169 -0.9762 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9608 -0.2773 +vn -0.9608 0.0000 -0.2773 +vn 0.8320 -0.4804 -0.2773 +vn 0.0000 -0.9608 -0.2773 +vn 0.4804 0.8320 -0.2773 +vn -0.8320 0.4804 -0.2773 +vn 0.4804 -0.8320 -0.2773 +vn -0.4804 -0.8320 -0.2773 +vn 0.8320 0.4804 -0.2773 +vn -0.4804 0.8320 -0.2773 +vn -0.8320 -0.4804 -0.2773 +vn 0.9608 0.0000 -0.2773 +vn 0.3422 0.5927 -0.7291 +vn 0.0000 0.6844 -0.7291 +vn -0.3422 0.5927 -0.7291 +vn -0.5927 0.3422 -0.7291 +vn -0.5927 -0.3422 -0.7291 +vn -0.3422 -0.5927 -0.7291 +vn 0.0000 -0.6844 -0.7291 +vn 0.3422 -0.5927 -0.7291 +vn 0.6844 0.0000 -0.7291 +vn 0.5927 0.3422 -0.7291 +vn 0.3873 0.2236 -0.8944 +vn 0.2236 0.3873 -0.8944 +vn 0.0000 0.4472 -0.8944 +vn -0.3873 0.2236 -0.8944 +vn -0.2236 0.3873 -0.8944 +vn -0.6844 0.0000 -0.7291 +vn -0.3873 -0.2236 -0.8944 +vn -0.4472 0.0000 -0.8944 +vn -0.2236 -0.3873 -0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.2236 -0.3873 -0.8944 +vn 0.5927 -0.3422 -0.7291 +vn 0.3873 -0.2236 -0.8944 +vn 0.4472 0.0000 -0.8944 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn 0.0000 0.9824 -0.1866 +vn 0.6794 0.7194 -0.1447 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1447 +vn -0.7573 -0.4617 0.4617 +vn -0.7263 -0.1363 0.6737 +vn -0.9987 0.0196 -0.0473 +vn -0.6630 0.5293 -0.5293 +vn -0.9955 0.0670 -0.0670 +vn -0.6794 0.1447 -0.7194 +vn 0.6794 0.1447 -0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.6630 0.5293 -0.5293 +vn 0.9987 0.0196 -0.0473 +vn 0.7263 -0.1363 0.6737 +vn 0.7573 -0.4617 0.4617 +vn 0.9955 0.0670 -0.0670 +vn 0.9546 -0.2971 -0.0196 +vn 0.9063 0.4226 0.0000 +vn 0.9397 -0.3420 0.0000 +vn -0.2418 -0.6644 0.7071 +vn 0.4226 -0.9063 0.0000 +vn -0.3420 -0.9397 0.0000 +vn -0.9223 0.3860 -0.0196 +vn -0.9063 -0.4226 0.0000 +vn -0.9397 0.3420 0.0000 +vn 0.3360 0.9232 -0.1866 +vn -0.4226 0.9063 0.0000 +vn 0.3420 0.9397 0.0000 +vn 0.8844 0.4436 -0.1447 +vn 0.4521 -0.8815 0.1363 +vn -0.9129 -0.3847 0.1363 +vn -0.3924 0.9083 -0.1447 +vn -0.8696 -0.1748 0.4617 +vn -0.7291 0.1203 0.6737 +vn -0.9125 0.4035 -0.0670 +vn -0.4420 0.7242 -0.5293 +vn -0.9318 0.3600 -0.0473 +vn 0.2418 0.6644 -0.7071 +vn -0.5889 0.3684 -0.7194 +vn 0.6879 -0.0963 -0.7194 +vn 0.0638 0.1753 -0.9824 +vn 0.8040 0.2706 -0.5293 +vn 0.9452 -0.3232 -0.0473 +vn 0.6359 -0.3765 0.6737 +vn 0.5538 -0.6929 0.4617 +vn 0.9584 -0.2774 -0.0670 +vn -0.6644 0.2418 0.7071 +vn -0.6644 0.2418 -0.7071 +vn 0.6644 -0.2418 -0.7071 +vn 0.6644 -0.2418 0.7071 +vn 0.2418 -0.6644 0.7071 +vn 0.6644 0.2418 0.7071 +vn 0.7291 0.1203 0.6737 +vn 0.5889 0.3684 -0.7194 +vn 0.9397 0.3420 0.0000 +vn 0.6644 0.2418 -0.7071 +vn -0.6644 -0.2418 0.7071 +vn -0.9452 -0.3232 -0.0473 +vn -0.6644 -0.2418 -0.7071 +vn -0.9397 -0.3420 0.0000 +vn 0.9318 0.3600 -0.0473 +vn -0.0638 0.1753 -0.9824 +vn -0.6879 -0.0963 -0.7194 +vn -0.6359 -0.3765 0.6737 +vn -0.5538 -0.6929 0.4617 +vn -0.9546 -0.2971 -0.0196 +vn -0.9584 -0.2774 -0.0670 +vn -0.8040 0.2706 -0.5293 +vn -0.8844 0.4436 -0.1447 +vn -0.2418 0.6644 -0.7071 +vn -0.3360 0.9232 -0.1866 +vn 0.3924 0.9083 -0.1447 +vn 0.9125 0.4035 -0.0671 +vn 0.9223 0.3860 -0.0196 +vn 0.9129 -0.3847 0.1363 +vn 0.8696 -0.1748 0.4617 +vn -0.4521 -0.8815 0.1363 +vn 0.4420 0.7242 -0.5293 +vn -0.9063 0.4226 0.0000 +vn 0.3420 -0.9397 0.0000 +vn -0.4226 -0.9063 0.0000 +vn 0.9063 -0.4226 0.0000 +vn -0.3420 0.9397 0.0000 +vn 0.4226 0.9063 0.0000 +vn 0.6928 0.4000 0.6000 +vn 0.8000 0.0000 0.6000 +vn 0.4000 -0.6928 0.6000 +vn 0.0000 -0.8000 0.6000 +vn -0.6928 -0.4000 0.6000 +vn -0.8000 0.0000 0.6000 +vn 0.4000 0.6928 0.6000 +vn -0.4000 0.6928 0.6000 +vn 0.0000 0.8000 0.6000 +vn 0.6928 -0.4000 0.6000 +vn -0.4000 -0.6928 0.6000 +vn -0.6928 0.4000 0.6000 +s off +f 285/323/39 289/324/39 281/325/39 +f 713/326/40 726/327/40 725/328/40 +f 684/329/40 691/330/40 685/331/40 +f 683/332/40 692/333/40 684/329/40 +f 682/334/40 693/335/40 683/332/40 +f 682/334/40 695/336/40 694/337/40 +f 681/338/40 696/339/40 695/336/40 +f 680/340/40 697/341/40 696/339/40 +f 648/342/41 650/343/41 649/344/41 +f 679/345/40 698/346/40 697/341/40 +f 690/347/40 699/348/40 698/346/40 +f 326/349/39 738/350/39 325/351/39 +f 736/352/39 326/349/39 327/353/39 +f 735/354/39 327/353/39 328/355/39 +f 734/356/39 328/355/39 329/357/39 +f 733/358/39 329/357/39 330/359/39 +f 331/360/39 733/361/39 330/362/39 +f 332/363/39 732/364/39 331/360/39 +f 730/365/39 332/363/39 333/366/39 +f 729/367/39 333/366/39 334/368/39 +f 728/369/39 334/368/39 335/370/39 +f 727/371/39 335/370/39 336/372/39 +f 325/351/39 727/371/39 336/372/39 +f 371/373/41 364/374/41 363/375/41 +f 367/376/42 376/377/42 368/378/42 +f 372/379/43 374/380/43 365/381/43 +f 366/382/39 371/383/39 372/379/39 +f 367/376/44 361/384/44 363/385/44 +f 364/374/45 366/382/45 368/378/45 +f 374/380/39 361/386/39 365/381/39 +f 363/385/46 375/387/46 367/376/46 +f 385/388/47 379/389/47 377/390/47 +f 372/391/48 369/392/48 374/380/48 +f 364/374/49 376/393/49 373/394/49 +f 364/374/50 370/395/50 363/375/50 +f 402/396/51 383/397/51 403/398/51 +f 388/399/52 381/400/52 383/401/52 +f 378/402/53 390/403/53 389/404/53 +f 384/405/54 391/406/54 392/407/54 +f 392/407/40 383/397/40 384/405/40 +f 392/407/40 396/408/40 388/409/40 +f 381/410/39 391/406/39 382/411/39 +f 389/404/39 377/412/39 378/402/39 +f 389/404/55 394/413/55 385/414/55 +f 379/415/40 390/403/40 380/416/40 +f 400/417/44 395/418/44 396/419/44 +f 398/420/44 393/421/44 394/422/44 +f 388/399/41 395/423/41 387/424/41 +f 390/403/41 398/420/41 389/404/41 +f 386/425/40 397/426/40 390/403/40 +f 387/427/55 399/428/55 391/406/55 +f 386/429/43 394/430/43 393/431/43 +f 392/407/43 399/432/43 400/417/43 +f 380/416/56 401/433/56 379/415/56 +f 404/434/40 403/398/40 401/433/40 +f 666/435/43 673/436/43 663/437/43 +f 670/438/43 677/439/43 676/440/43 +f 672/441/43 664/442/43 678/443/43 +f 667/444/43 674/445/43 673/446/43 +f 671/447/43 678/443/43 677/439/43 +f 668/448/43 675/449/43 674/445/43 +f 645/450/43 643/451/43 641/452/43 +f 670/453/43 675/449/43 669/454/43 +f 666/455/43 664/442/43 665/456/43 +f 443/457/57 449/458/57 450/459/57 +f 449/458/58 437/460/58 445/461/58 +f 444/462/48 441/463/48 439/464/48 +f 438/465/46 450/466/46 446/467/46 +f 452/468/39 439/464/39 448/469/39 +f 447/470/45 449/458/45 445/461/45 +f 452/471/44 446/467/44 450/466/44 +f 442/472/39 447/470/39 441/473/39 +f 441/473/41 447/470/41 445/461/41 +f 437/474/59 446/467/59 445/461/59 +f 449/458/43 451/475/43 442/476/43 +f 713/326/40 724/477/40 712/478/40 +f 712/478/40 723/479/40 711/480/40 +f 711/480/40 722/481/40 710/482/40 +f 710/482/40 721/483/40 709/484/40 +f 708/485/40 721/486/40 720/487/40 +f 707/488/40 720/487/40 719/489/40 +f 707/488/40 718/490/40 706/491/40 +f 706/491/40 717/492/40 705/493/40 +f 705/493/40 716/494/40 704/495/40 +f 704/495/40 715/496/40 703/497/40 +f 714/498/40 715/496/40 726/327/40 +f 503/499/39 504/500/39 501/501/39 +f 381/400/44 503/502/44 377/390/44 +f 382/503/60 503/499/60 381/504/60 +f 501/501/61 378/505/61 377/506/61 +f 382/411/45 402/507/45 404/508/45 +f 507/509/41 509/510/41 505/511/41 +f 507/512/40 508/513/40 516/514/40 +f 506/515/43 512/516/43 508/513/43 +f 511/517/52 513/518/52 509/510/52 +f 510/519/47 516/520/47 512/516/47 +f 514/521/39 505/511/39 513/522/39 +f 635/523/41 637/524/41 631/525/41 +f 659/526/41 654/527/41 653/528/41 +f 652/529/41 659/526/41 653/530/41 +f 655/531/41 662/532/41 656/533/41 +f 651/534/41 658/535/41 652/536/41 +f 656/537/41 648/342/41 649/538/41 +f 654/539/41 661/540/41 655/541/41 +f 650/542/41 657/543/41 651/544/41 +f 686/545/40 691/546/40 702/547/40 +f 687/548/40 702/547/40 701/549/40 +f 688/550/40 701/549/40 700/551/40 +f 689/552/40 700/551/40 699/348/40 +f 281/325/39 282/553/39 285/323/39 +f 282/553/39 283/554/39 285/323/39 +f 283/554/39 284/555/39 285/323/39 +f 285/323/39 286/556/39 289/324/39 +f 286/556/39 287/557/39 289/324/39 +f 287/557/39 288/558/39 289/324/39 +f 289/324/39 290/559/39 291/560/39 +f 291/560/39 292/561/39 289/324/39 +f 292/561/39 281/325/39 289/324/39 +f 713/326/40 714/498/40 726/327/40 +f 684/329/40 692/333/40 691/330/40 +f 683/332/40 693/335/40 692/333/40 +f 682/334/40 694/337/40 693/335/40 +f 682/334/40 681/338/40 695/336/40 +f 681/338/40 680/340/40 696/339/40 +f 680/340/40 679/345/40 697/341/40 +f 648/342/41 647/562/41 650/343/41 +f 679/345/40 690/347/40 698/346/40 +f 690/347/40 689/552/40 699/348/40 +f 326/349/39 737/563/39 738/350/39 +f 736/352/39 737/563/39 326/349/39 +f 735/354/39 736/352/39 327/353/39 +f 734/356/39 735/354/39 328/355/39 +f 733/358/39 734/356/39 329/357/39 +f 331/360/39 732/364/39 733/361/39 +f 332/363/39 731/564/39 732/364/39 +f 730/365/39 731/564/39 332/363/39 +f 729/367/39 730/365/39 333/366/39 +f 728/369/39 729/367/39 334/368/39 +f 727/371/39 728/369/39 335/370/39 +f 325/351/39 738/350/39 727/371/39 +f 363/375/41 361/565/41 371/373/41 +f 361/565/41 369/566/41 371/373/41 +f 371/373/41 362/567/41 364/374/41 +f 367/376/42 375/568/42 376/377/42 +f 365/381/43 367/376/43 372/379/43 +f 367/376/43 368/378/43 372/379/43 +f 368/378/43 366/382/43 372/379/43 +f 366/382/39 362/569/39 371/383/39 +f 367/376/44 365/381/44 361/384/44 +f 364/374/45 362/567/45 366/382/45 +f 374/380/39 369/392/39 361/386/39 +f 363/385/62 370/570/62 375/387/62 +f 385/388/47 386/429/47 379/389/47 +f 372/391/48 371/571/48 369/392/48 +f 364/374/58 368/378/58 376/393/58 +f 364/374/50 373/572/50 370/395/50 +f 402/396/51 384/405/51 383/397/51 +f 388/399/52 387/424/52 381/400/52 +f 378/402/53 380/416/53 390/403/53 +f 384/405/54 382/411/54 391/406/54 +f 392/407/40 388/409/40 383/397/40 +f 392/407/40 400/417/40 396/408/40 +f 381/410/39 387/427/39 391/406/39 +f 389/404/39 385/414/39 377/412/39 +f 389/404/55 398/573/55 394/413/55 +f 379/415/40 386/425/40 390/403/40 +f 400/417/44 399/432/44 395/418/44 +f 398/420/44 397/426/44 393/421/44 +f 388/399/41 396/574/41 395/423/41 +f 390/403/41 397/426/41 398/420/41 +f 386/425/40 393/575/40 397/426/40 +f 387/427/55 395/576/55 399/428/55 +f 386/429/43 385/388/43 394/430/43 +f 392/407/43 391/406/43 399/432/43 +f 380/416/56 404/434/56 401/433/56 +f 404/434/40 402/396/40 403/398/40 +f 666/435/43 667/577/43 673/436/43 +f 670/438/43 671/578/43 677/439/43 +f 672/441/43 665/579/43 664/442/43 +f 667/444/43 668/580/43 674/445/43 +f 671/447/43 672/581/43 678/443/43 +f 668/448/43 669/582/43 675/449/43 +f 641/452/43 640/583/43 639/584/43 +f 639/584/43 646/585/43 645/450/43 +f 645/450/43 644/586/43 643/451/43 +f 643/451/43 642/587/43 641/452/43 +f 641/452/43 639/584/43 645/450/43 +f 670/453/43 676/440/43 675/449/43 +f 666/455/43 663/437/43 664/442/43 +f 443/457/57 440/588/57 449/458/57 +f 449/458/63 440/589/63 437/460/63 +f 444/462/48 442/590/48 441/463/48 +f 438/465/64 443/591/64 450/466/64 +f 452/468/39 444/462/39 439/464/39 +f 447/470/45 451/475/45 449/458/45 +f 452/471/44 448/469/44 446/467/44 +f 442/472/39 451/592/39 447/470/39 +f 445/461/41 446/467/41 441/473/41 +f 446/467/41 448/469/41 441/473/41 +f 448/469/41 439/464/41 441/473/41 +f 437/474/59 438/593/59 446/467/59 +f 444/594/43 452/595/43 442/476/43 +f 452/595/43 450/459/43 442/476/43 +f 450/459/43 449/458/43 442/476/43 +f 713/326/40 725/328/40 724/477/40 +f 712/478/40 724/477/40 723/479/40 +f 711/480/40 723/479/40 722/481/40 +f 710/482/40 722/481/40 721/483/40 +f 708/485/40 709/596/40 721/486/40 +f 707/488/40 708/485/40 720/487/40 +f 707/488/40 719/489/40 718/490/40 +f 706/491/40 718/490/40 717/492/40 +f 705/493/40 717/492/40 716/494/40 +f 704/495/40 716/494/40 715/496/40 +f 714/498/40 703/497/40 715/496/40 +f 503/499/39 502/597/39 504/500/39 +f 377/390/44 379/389/44 401/598/44 +f 403/599/44 383/401/44 381/400/44 +f 377/390/44 401/598/44 403/599/44 +f 503/502/44 501/600/44 377/390/44 +f 403/599/44 381/400/44 377/390/44 +f 382/503/60 502/597/60 503/499/60 +f 501/501/61 504/500/61 378/505/61 +f 380/416/45 378/402/45 404/508/45 +f 378/402/45 504/500/45 382/411/45 +f 404/508/45 378/402/45 382/411/45 +f 504/500/45 502/597/45 382/411/45 +f 382/411/45 384/405/45 402/507/45 +f 507/509/41 511/517/41 509/510/41 +f 508/513/40 512/516/40 516/514/40 +f 516/514/40 515/601/40 507/512/40 +f 515/601/40 511/602/40 507/512/40 +f 506/515/43 510/519/43 512/516/43 +f 511/517/52 515/603/52 513/518/52 +f 510/519/47 514/604/47 516/520/47 +f 514/521/39 510/519/39 506/515/39 +f 506/515/39 505/511/39 514/521/39 +f 505/511/39 509/510/39 513/522/39 +f 631/525/41 632/605/41 633/606/41 +f 633/606/41 634/607/41 635/523/41 +f 635/523/41 636/608/41 637/524/41 +f 637/524/41 638/609/41 631/525/41 +f 631/525/41 633/606/41 635/523/41 +f 659/526/41 660/610/41 654/527/41 +f 652/529/41 658/535/41 659/526/41 +f 655/531/41 661/540/41 662/532/41 +f 651/534/41 657/611/41 658/535/41 +f 656/537/41 662/532/41 648/342/41 +f 654/539/41 660/610/41 661/540/41 +f 650/542/41 647/562/41 657/543/41 +f 686/545/40 685/612/40 691/546/40 +f 687/548/40 686/545/40 702/547/40 +f 688/550/40 687/548/40 701/549/40 +f 689/552/40 688/550/40 700/551/40 +s 1 +f 266/613/43 279/614/65 267/615/65 +f 263/616/44 276/617/66 264/618/66 +f 260/619/41 273/620/67 261/621/67 +f 267/615/65 280/622/68 268/623/68 +f 258/624/69 269/625/45 270/626/69 +f 264/618/66 277/627/70 265/628/70 +f 261/621/67 274/629/71 262/630/71 +f 268/623/68 269/625/45 257/631/45 +f 258/624/69 271/632/72 259/633/72 +f 265/628/70 278/634/43 266/613/43 +f 262/630/71 275/635/44 263/636/44 +f 259/633/72 272/637/41 260/619/41 +f 313/638/39 322/639/48 321/640/39 +f 295/641/40 298/642/73 297/643/73 +f 294/644/40 317/645/73 318/646/40 +f 298/647/73 299/648/44 297/649/73 +f 311/650/44 317/645/73 293/651/73 +f 300/652/44 301/653/55 299/654/44 +f 315/655/45 322/639/48 314/656/48 +f 302/657/55 303/658/39 301/659/55 +f 294/644/40 324/660/74 316/661/74 +f 304/662/39 305/663/48 303/664/39 +f 312/665/55 319/666/44 311/667/44 +f 306/668/48 307/669/45 305/670/48 +f 308/671/45 309/672/74 307/673/45 +f 316/661/74 323/674/45 315/655/45 +f 313/638/39 320/675/55 312/665/55 +f 310/676/74 295/677/40 309/678/74 +f 348/679/68 349/680/45 337/681/45 +f 349/680/45 338/682/69 337/681/45 +f 350/683/69 339/684/72 338/682/69 +f 351/685/72 340/686/41 339/684/72 +f 352/687/41 341/688/67 340/686/41 +f 353/689/67 342/690/71 341/688/67 +f 354/691/71 343/692/44 342/690/71 +f 355/693/44 344/694/66 343/695/44 +f 356/696/66 345/697/70 344/694/66 +f 357/698/70 346/699/43 345/697/70 +f 358/700/43 347/701/65 346/699/43 +f 359/702/65 348/679/68 347/701/65 +f 425/703/39 434/704/48 426/705/48 +f 409/706/73 408/707/40 407/708/40 +f 406/709/40 429/710/73 405/711/73 +f 411/712/44 410/713/73 409/714/73 +f 429/710/73 423/715/44 405/711/73 +f 413/716/55 412/717/44 411/718/44 +f 434/704/48 427/719/45 426/705/48 +f 413/720/55 416/721/39 414/722/55 +f 436/723/74 406/709/40 428/724/74 +f 417/725/48 416/726/39 415/727/39 +f 431/728/44 424/729/55 423/730/44 +f 419/731/45 418/732/48 417/733/48 +f 421/734/74 420/735/45 419/736/45 +f 435/737/45 428/724/74 427/719/45 +f 432/738/55 425/703/39 424/729/55 +f 407/739/40 422/740/74 421/741/74 +f 460/742/68 471/743/75 459/744/45 +f 457/745/72 468/746/76 456/747/41 +f 464/748/66 475/749/77 463/750/70 +f 454/751/71 465/752/78 453/753/44 +f 461/754/65 472/755/79 460/742/68 +f 458/756/69 469/757/80 457/745/72 +f 453/758/44 476/759/81 464/748/66 +f 455/760/67 466/761/82 454/751/71 +f 462/762/43 473/763/83 461/754/65 +f 459/744/45 470/764/84 458/756/69 +f 456/747/41 467/765/85 455/760/67 +f 463/750/70 474/766/86 462/762/43 +f 473/763/83 500/767/87 472/755/79 +f 500/768/87 471/743/75 472/755/79 +f 489/769/88 470/764/84 471/743/75 +f 490/770/89 469/757/80 470/764/84 +f 491/771/90 468/746/76 469/757/80 +f 468/746/76 493/772/91 467/765/85 +f 467/765/85 494/773/92 466/761/82 +f 466/761/82 495/774/93 465/752/78 +f 495/775/93 476/759/81 465/776/78 +f 496/777/94 475/749/77 476/759/81 +f 475/749/77 498/778/95 474/766/86 +f 474/766/86 499/779/96 473/763/83 +f 485/780/97 500/767/87 499/781/96 +f 484/782/98 489/783/88 500/768/87 +f 483/784/99 490/785/89 489/769/88 +f 481/786/100 490/770/89 482/787/101 +f 481/788/100 492/789/102 491/771/90 +f 479/790/103 492/791/102 480/792/104 +f 478/793/105 493/794/91 479/795/103 +f 477/796/106 494/797/92 478/798/105 +f 477/799/106 496/800/94 495/775/93 +f 488/801/107 497/802/108 496/777/94 +f 487/803/109 498/778/95 497/804/108 +f 486/805/110 499/779/96 498/806/95 +f 531/807/111 524/808/54 523/809/43 +f 529/810/55 522/811/47 521/812/44 +f 527/813/112 520/814/52 519/815/41 +f 525/816/113 518/817/53 517/818/45 +f 532/819/114 517/818/45 524/808/54 +f 530/820/115 523/809/43 522/811/47 +f 528/821/116 521/822/44 520/814/52 +f 526/823/117 519/815/41 518/817/53 +f 529/824/55 551/825/118 542/826/119 +f 551/825/118 541/827/120 542/826/119 +f 553/828/121 541/827/120 552/829/122 +f 554/830/74 540/831/123 553/828/121 +f 554/830/74 546/832/124 539/833/125 +f 547/834/126 545/835/127 546/832/124 +f 528/836/116 551/825/118 529/824/55 +f 544/837/128 549/838/129 529/839/55 +f 529/839/55 549/838/129 530/840/115 +f 549/838/129 545/835/127 548/841/130 +f 549/838/129 531/842/111 530/840/115 +f 548/841/130 532/819/114 531/842/111 +f 532/819/114 554/830/74 525/816/113 +f 554/830/74 526/823/117 525/816/113 +f 526/823/117 552/829/122 527/843/112 +f 551/825/118 527/843/112 552/829/122 +f 541/844/120 536/845/61 542/846/119 +f 539/833/125 538/847/51 540/831/123 +f 546/832/124 550/848/40 539/833/125 +f 544/849/128 534/850/43 545/851/127 +f 540/831/123 537/852/41 541/844/120 +f 542/846/119 543/853/39 529/854/55 +f 545/851/127 533/855/56 546/832/124 +f 529/856/55 535/857/60 544/849/128 +f 569/858/131 562/859/132 561/860/133 +f 567/861/134 560/862/135 559/863/136 +f 565/864/137 558/865/138 557/866/139 +f 563/867/140 556/868/141 555/869/142 +f 570/870/143 555/869/142 562/859/132 +f 568/871/144 561/860/133 560/862/135 +f 566/872/145 559/873/136 558/865/138 +f 564/874/146 557/866/139 556/868/141 +f 567/875/134 589/876/147 580/877/148 +f 590/878/149 580/877/148 589/876/147 +f 591/879/150 579/880/151 590/878/149 +f 592/881/152 578/882/153 591/879/150 +f 592/881/152 584/883/154 577/884/155 +f 585/885/156 583/886/157 584/883/154 +f 566/887/145 589/876/147 567/875/134 +f 582/888/158 587/889/159 567/890/134 +f 567/890/134 587/889/159 568/891/144 +f 582/888/158 586/892/160 587/889/159 +f 568/891/144 586/892/160 569/893/131 +f 569/893/131 585/885/156 570/870/143 +f 570/870/143 592/881/152 563/867/140 +f 592/881/152 564/874/146 563/867/140 +f 564/874/146 590/878/149 565/894/137 +f 590/878/149 566/887/145 565/894/137 +f 579/895/151 574/896/161 580/897/148 +f 577/884/155 576/898/162 578/882/153 +f 577/884/155 571/899/163 588/900/40 +f 583/901/157 573/902/164 572/903/133 +f 579/895/151 576/898/162 575/904/139 +f 580/897/148 581/905/39 567/906/134 +f 583/901/157 571/899/163 584/883/154 +f 567/907/134 573/902/164 582/908/158 +f 618/909/165 612/910/166 603/911/167 +f 601/912/168 613/913/169 614/914/170 +f 618/915/165 611/916/171 604/917/39 +f 606/918/172 609/919/173 610/920/174 +f 602/921/175 612/910/166 613/913/169 +f 608/922/176 614/914/170 597/923/40 +f 608/922/176 609/919/173 607/924/177 +f 606/918/172 611/916/171 605/925/178 +f 596/926/179 620/927/180 595/928/181 +f 594/929/182 620/927/180 621/930/183 +f 593/931/184 621/930/183 622/932/185 +f 615/933/186 593/931/184 622/932/185 +f 599/934/187 615/933/186 616/935/188 +f 617/936/189 599/934/187 616/935/188 +f 603/937/167 599/934/187 598/938/190 +f 618/939/165 598/938/190 617/936/189 +f 603/937/167 598/938/190 618/939/165 +f 619/940/191 596/926/179 618/941/165 +f 600/942/192 602/943/175 601/912/168 +f 600/942/192 608/922/176 593/931/184 +f 593/931/184 607/924/177 594/929/182 +f 594/929/182 606/944/172 595/928/181 +f 596/926/179 606/944/172 605/945/178 +f 618/941/165 596/926/179 605/945/178 +f 621/930/183 628/946/174 629/947/193 +f 619/948/191 626/949/194 627/950/195 +f 617/951/189 624/952/169 625/953/196 +f 615/933/186 630/954/197 623/955/198 +f 622/932/185 629/947/193 630/954/197 +f 620/956/180 627/950/195 628/946/174 +f 618/957/165 625/953/196 626/958/194 +f 616/959/188 623/955/198 624/952/169 +f 749/960/199 760/961/200 748/962/200 +f 746/963/201 757/964/202 745/965/202 +f 743/966/203 754/967/204 742/968/204 +f 750/969/205 761/970/199 749/960/199 +f 740/971/206 751/972/207 739/973/207 +f 747/974/208 758/975/201 746/963/201 +f 743/966/203 756/976/209 755/977/203 +f 750/969/205 751/978/207 762/979/205 +f 741/980/210 752/981/206 740/971/206 +f 747/974/208 760/982/200 759/983/208 +f 745/984/202 756/985/209 744/986/209 +f 742/968/204 753/987/210 741/980/210 +f 266/613/43 278/634/43 279/614/65 +f 263/616/44 275/988/44 276/617/66 +f 260/619/41 272/637/41 273/620/67 +f 267/615/65 279/614/65 280/622/68 +f 258/624/69 257/631/45 269/625/45 +f 264/618/66 276/617/66 277/627/70 +f 261/621/67 273/620/67 274/629/71 +f 268/623/68 280/622/68 269/625/45 +f 258/624/69 270/626/69 271/632/72 +f 265/628/70 277/627/70 278/634/43 +f 262/630/71 274/629/71 275/635/44 +f 259/633/72 271/632/72 272/637/41 +f 313/638/39 314/656/48 322/639/48 +f 295/641/40 296/989/40 298/642/73 +f 294/644/40 293/651/73 317/645/73 +f 298/647/73 300/990/44 299/648/44 +f 311/650/44 319/991/44 317/645/73 +f 300/652/44 302/992/55 301/653/55 +f 315/655/45 323/674/45 322/639/48 +f 302/657/55 304/993/39 303/658/39 +f 294/644/40 318/646/40 324/660/74 +f 304/662/39 306/994/48 305/663/48 +f 312/665/55 320/675/55 319/666/44 +f 306/668/48 308/995/45 307/669/45 +f 308/671/45 310/996/74 309/672/74 +f 316/661/74 324/660/74 323/674/45 +f 313/638/39 321/640/39 320/675/55 +f 310/676/74 296/997/40 295/677/40 +f 348/679/68 360/998/68 349/680/45 +f 349/680/45 350/683/69 338/682/69 +f 350/683/69 351/685/72 339/684/72 +f 351/685/72 352/687/41 340/686/41 +f 352/687/41 353/689/67 341/688/67 +f 353/689/67 354/691/71 342/690/71 +f 354/691/71 355/999/44 343/692/44 +f 355/693/44 356/696/66 344/694/66 +f 356/696/66 357/698/70 345/697/70 +f 357/698/70 358/700/43 346/699/43 +f 358/700/43 359/702/65 347/701/65 +f 359/702/65 360/998/68 348/679/68 +f 425/703/39 433/1000/39 434/704/48 +f 409/706/73 410/1001/73 408/707/40 +f 406/709/40 430/1002/40 429/710/73 +f 411/712/44 412/1003/44 410/713/73 +f 429/710/73 431/1004/44 423/715/44 +f 413/716/55 414/1005/55 412/717/44 +f 434/704/48 435/737/45 427/719/45 +f 413/720/55 415/1006/39 416/721/39 +f 436/723/74 430/1002/40 406/709/40 +f 417/725/48 418/1007/48 416/726/39 +f 431/728/44 432/738/55 424/729/55 +f 419/731/45 420/1008/45 418/732/48 +f 421/734/74 422/1009/74 420/735/45 +f 435/737/45 436/723/74 428/724/74 +f 432/738/55 433/1000/39 425/703/39 +f 407/739/40 408/1010/40 422/740/74 +f 460/742/68 472/755/79 471/743/75 +f 457/745/72 469/757/80 468/746/76 +f 464/748/66 476/759/81 475/749/77 +f 454/751/71 466/761/82 465/752/78 +f 461/754/65 473/763/83 472/755/79 +f 458/756/69 470/764/84 469/757/80 +f 453/758/44 465/776/78 476/759/81 +f 455/760/67 467/765/85 466/761/82 +f 462/762/43 474/766/86 473/763/83 +f 459/744/45 471/743/75 470/764/84 +f 456/747/41 468/746/76 467/765/85 +f 463/750/70 475/749/77 474/766/86 +f 473/763/83 499/781/96 500/767/87 +f 500/768/87 489/783/88 471/743/75 +f 489/769/88 490/785/89 470/764/84 +f 490/770/89 491/1011/90 469/757/80 +f 491/771/90 492/789/102 468/746/76 +f 468/746/76 492/791/102 493/772/91 +f 467/765/85 493/794/91 494/773/92 +f 466/761/82 494/797/92 495/774/93 +f 495/775/93 496/800/94 476/759/81 +f 496/777/94 497/802/108 475/749/77 +f 475/749/77 497/804/108 498/778/95 +f 474/766/86 498/806/95 499/779/96 +f 485/780/97 484/1012/98 500/767/87 +f 484/782/98 483/1013/99 489/783/88 +f 483/784/99 482/1014/101 490/785/89 +f 481/786/100 491/1011/90 490/770/89 +f 481/788/100 480/1015/104 492/789/102 +f 479/790/103 493/772/91 492/791/102 +f 478/793/105 494/773/92 493/794/91 +f 477/796/106 495/774/93 494/797/92 +f 477/799/106 488/1016/107 496/800/94 +f 488/801/107 487/1017/109 497/802/108 +f 487/803/109 486/1018/110 498/778/95 +f 486/805/110 485/1019/97 499/779/96 +f 531/807/111 532/819/114 524/808/54 +f 529/810/55 530/820/115 522/811/47 +f 527/813/112 528/821/116 520/814/52 +f 525/816/113 526/823/117 518/817/53 +f 532/819/114 525/816/113 517/818/45 +f 530/820/115 531/807/111 523/809/43 +f 528/821/116 529/1020/55 521/822/44 +f 526/823/117 527/813/112 519/815/41 +f 551/825/118 552/829/122 541/827/120 +f 553/828/121 540/831/123 541/827/120 +f 554/830/74 539/833/125 540/831/123 +f 554/830/74 547/834/126 546/832/124 +f 547/834/126 548/841/130 545/835/127 +f 549/838/129 544/837/128 545/835/127 +f 549/838/129 548/841/130 531/842/111 +f 548/841/130 547/834/126 532/819/114 +f 532/819/114 547/834/126 554/830/74 +f 554/830/74 553/828/121 526/823/117 +f 526/823/117 553/828/121 552/829/122 +f 551/825/118 528/836/116 527/843/112 +f 541/844/120 537/852/41 536/845/61 +f 539/833/125 550/848/40 538/847/51 +f 546/832/124 533/855/56 550/848/40 +f 544/849/128 535/857/60 534/850/43 +f 540/831/123 538/847/51 537/852/41 +f 542/846/119 536/845/61 543/853/39 +f 545/851/127 534/850/43 533/855/56 +f 529/856/55 543/1021/39 535/857/60 +f 569/858/131 570/870/143 562/859/132 +f 567/861/134 568/871/144 560/862/135 +f 565/864/137 566/872/145 558/865/138 +f 563/867/140 564/874/146 556/868/141 +f 570/870/143 563/867/140 555/869/142 +f 568/871/144 569/858/131 561/860/133 +f 566/872/145 567/1022/134 559/873/136 +f 564/874/146 565/864/137 557/866/139 +f 590/878/149 579/880/151 580/877/148 +f 591/879/150 578/882/153 579/880/151 +f 592/881/152 577/884/155 578/882/153 +f 592/881/152 585/885/156 584/883/154 +f 585/885/156 586/892/160 583/886/157 +f 582/888/158 583/886/157 586/892/160 +f 568/891/144 587/889/159 586/892/160 +f 569/893/131 586/892/160 585/885/156 +f 570/870/143 585/885/156 592/881/152 +f 592/881/152 591/879/150 564/874/146 +f 564/874/146 591/879/150 590/878/149 +f 590/878/149 589/876/147 566/887/145 +f 579/895/151 575/904/139 574/896/161 +f 577/884/155 588/900/40 576/898/162 +f 577/884/155 584/883/154 571/899/163 +f 583/901/157 582/908/158 573/902/164 +f 579/895/151 578/882/153 576/898/162 +f 580/897/148 574/896/161 581/905/39 +f 583/901/157 572/903/133 571/899/163 +f 567/907/134 581/1023/39 573/902/164 +f 618/909/165 604/1024/39 612/910/166 +f 601/912/168 602/921/175 613/913/169 +f 618/915/165 605/925/178 611/916/171 +f 606/918/172 607/924/177 609/919/173 +f 602/921/175 603/911/167 612/910/166 +f 608/922/176 601/912/168 614/914/170 +f 608/922/176 597/923/40 609/919/173 +f 606/918/172 610/920/174 611/916/171 +f 596/926/179 619/940/191 620/927/180 +f 594/929/182 595/928/181 620/927/180 +f 593/931/184 594/929/182 621/930/183 +f 615/933/186 600/942/192 593/931/184 +f 599/934/187 600/942/192 615/933/186 +f 617/936/189 598/938/190 599/934/187 +f 603/937/167 602/943/175 599/934/187 +f 600/942/192 599/934/187 602/943/175 +f 600/942/192 601/912/168 608/922/176 +f 593/931/184 608/922/176 607/924/177 +f 594/929/182 607/924/177 606/944/172 +f 596/926/179 595/928/181 606/944/172 +f 621/930/183 620/956/180 628/946/174 +f 619/948/191 618/1025/165 626/949/194 +f 617/951/189 616/959/188 624/952/169 +f 615/933/186 622/932/185 630/954/197 +f 622/932/185 621/930/183 629/947/193 +f 620/956/180 619/948/191 627/950/195 +f 618/957/165 617/951/189 625/953/196 +f 616/959/188 615/933/186 623/955/198 +f 749/960/199 761/1026/199 760/961/200 +f 746/963/201 758/1027/201 757/964/202 +f 743/966/203 755/1028/203 754/967/204 +f 750/969/205 762/1029/205 761/970/199 +f 740/971/206 752/1030/206 751/972/207 +f 747/974/208 759/1031/208 758/975/201 +f 743/966/203 744/986/209 756/976/209 +f 750/969/205 739/973/207 751/978/207 +f 741/980/210 753/1032/210 752/981/206 +f 747/974/208 748/962/200 760/982/200 +f 745/984/202 757/1033/202 756/985/209 +f 742/968/204 754/1034/204 753/987/210 +o Barrel +v 0.000000 2.687500 -5.625000 +v -0.156250 2.729367 -5.625000 +v -0.270633 2.843750 -5.625000 +v -0.312500 3.000000 -5.625000 +v -0.270633 3.156250 -5.625000 +v -0.156250 3.270633 -5.625000 +v 0.000000 3.312500 -5.625000 +v 0.156250 3.270633 -5.625000 +v 0.270633 3.156250 -5.625000 +v 0.312500 3.000000 -5.625000 +v 0.270633 2.843750 -5.625000 +v 0.156250 2.729367 -5.625000 +v 0.000000 2.687500 -8.375000 +v -0.156250 2.729367 -8.375000 +v -0.270633 2.843750 -8.375000 +v -0.312500 3.000000 -8.375000 +v -0.270633 3.156250 -8.375000 +v -0.156250 3.270633 -8.375000 +v 0.000000 3.312500 -8.375000 +v 0.156250 3.270633 -8.375000 +v 0.270633 3.156250 -8.375000 +v 0.312500 3.000000 -8.375000 +v 0.270633 2.843750 -8.375000 +v 0.156250 2.729367 -8.375000 +v 0.000000 3.250000 -8.375000 +v -0.125000 3.216506 -8.375000 +v -0.216506 3.125000 -8.375000 +v -0.250000 3.000000 -8.375000 +v -0.216506 2.875000 -8.375000 +v -0.125000 2.783494 -8.375000 +v 0.000000 2.750000 -8.375000 +v 0.125000 2.783494 -8.375000 +v 0.216506 2.875000 -8.375000 +v 0.250000 3.000000 -8.375000 +v 0.216506 3.125000 -8.375000 +v 0.125000 3.216506 -8.375000 +v 0.000000 3.250000 -6.375000 +v -0.125000 3.216506 -6.375000 +v -0.216506 3.125000 -6.375000 +v -0.250000 3.000000 -6.375000 +v -0.216506 2.875000 -6.375000 +v -0.125000 2.783494 -6.375000 +v 0.000000 2.750000 -6.375000 +v 0.125000 2.783494 -6.375000 +v 0.216506 2.875000 -6.375000 +v 0.250000 3.000000 -6.375000 +v 0.216506 3.125000 -6.375000 +v 0.125000 3.216506 -6.375000 +v 0.000000 2.687500 -8.375000 +v -0.156250 2.729367 -8.375000 +v -0.270633 2.843750 -8.375000 +v -0.312500 3.000000 -8.375000 +v -0.270633 3.156250 -8.375000 +v -0.156250 3.270633 -8.375000 +v 0.000000 3.312500 -8.375000 +v 0.156250 3.270633 -8.375000 +v 0.270633 3.156250 -8.375000 +v 0.312500 3.000000 -8.375000 +v 0.270633 2.843750 -8.375000 +v 0.156250 2.729367 -8.375000 +v 0.000000 3.250000 -8.375000 +v -0.125000 3.216506 -8.375000 +v -0.216506 3.125000 -8.375000 +v -0.250000 3.000000 -8.375000 +v -0.216506 2.875000 -8.375000 +v -0.125000 2.783494 -8.375000 +v 0.000000 2.750000 -8.375000 +v 0.125000 2.783494 -8.375000 +v 0.216506 2.875000 -8.375000 +v 0.250000 3.000000 -8.375000 +v 0.216506 3.125000 -8.375000 +v 0.125000 3.216506 -8.375000 +v 0.000000 3.250000 -6.375000 +v -0.125000 3.216506 -6.375000 +v -0.216506 3.125000 -6.375000 +v -0.250000 3.000000 -6.375000 +v -0.216506 2.875000 -6.375000 +v -0.125000 2.783494 -6.375000 +v 0.000000 2.750000 -6.375000 +v 0.125000 2.783494 -6.375000 +v 0.216506 2.875000 -6.375000 +v 0.250000 3.000000 -6.375000 +v 0.216506 3.125000 -6.375000 +v 0.125000 3.216506 -6.375000 +vt 0.777388 0.929892 +vt 0.791667 0.900215 +vt 0.805945 0.929892 +vt 0.637500 0.790000 +vt 0.641667 0.805000 +vt 0.637500 0.805000 +vt 0.641667 0.820000 +vt 0.637500 0.820000 +vt 0.641667 0.835000 +vt 0.637500 0.835000 +vt 0.641667 0.850000 +vt 0.637500 0.850000 +vt 0.637500 0.865000 +vt 0.641667 0.865000 +vt 0.637500 0.880000 +vt 0.641667 0.880000 +vt 0.637500 0.895000 +vt 0.641667 0.895000 +vt 0.637500 0.910000 +vt 0.641667 0.925000 +vt 0.637500 0.925000 +vt 0.641667 0.940000 +vt 0.637500 0.940000 +vt 0.637500 0.760000 +vt 0.641667 0.775000 +vt 0.637500 0.775000 +vt 0.641667 0.790000 +vt 0.799910 0.937134 +vt 0.791667 0.939785 +vt 0.783423 0.937134 +vt 0.775179 0.920000 +vt 0.777388 0.910108 +vt 0.783423 0.902866 +vt 0.799910 0.902866 +vt 0.805945 0.910108 +vt 0.808154 0.920000 +vt 0.641667 0.910000 +vt 0.641667 0.760000 +vt 0.454167 0.850000 +vt 0.637500 0.865000 +vt 0.454167 0.865000 +vt 0.454167 0.895000 +vt 0.637500 0.910000 +vt 0.454167 0.910000 +vt 0.454167 0.790000 +vt 0.637500 0.805000 +vt 0.454167 0.805000 +vt 0.454167 0.835000 +vt 0.637500 0.850000 +vt 0.454167 0.880000 +vt 0.637500 0.895000 +vt 0.454167 0.775000 +vt 0.637500 0.790000 +vt 0.454167 0.925000 +vt 0.637500 0.940000 +vt 0.454167 0.940000 +vt 0.454167 0.820000 +vt 0.637500 0.835000 +vt 0.637500 0.880000 +vt 0.454167 0.760000 +vt 0.637500 0.775000 +vt 0.637500 0.925000 +vt 0.637500 0.820000 +vt 0.641667 0.895000 +vt 0.775000 0.910000 +vt 0.641667 0.910000 +vt 0.641667 0.820000 +vt 0.775000 0.835000 +vt 0.641667 0.835000 +vt 0.641667 0.850000 +vt 0.775000 0.865000 +vt 0.641667 0.865000 +vt 0.641667 0.775000 +vt 0.775000 0.790000 +vt 0.641667 0.790000 +vt 0.775000 0.925000 +vt 0.641667 0.925000 +vt 0.775000 0.850000 +vt 0.775000 0.880000 +vt 0.641667 0.880000 +vt 0.775000 0.805000 +vt 0.641667 0.805000 +vt 0.775000 0.940000 +vt 0.641667 0.940000 +vt 0.775000 0.895000 +vt 0.775000 0.820000 +vt 0.641667 0.760000 +vt 0.775000 0.775000 +vt 0.637500 0.760000 +vt 0.775000 0.760000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 845/1035/211 841/1036/211 837/1037/211 +f 821/1038/211 832/1039/211 820/1040/211 +f 820/1040/211 833/1041/211 819/1042/211 +f 819/1042/211 834/1043/211 818/1044/211 +f 818/1044/211 823/1045/211 817/1046/211 +f 823/1045/211 816/1047/211 817/1046/211 +f 824/1048/211 815/1049/211 816/1047/211 +f 825/1050/211 814/1051/211 815/1049/211 +f 826/1052/211 813/1053/211 814/1051/211 +f 813/1053/211 828/1054/211 812/1055/211 +f 812/1055/211 829/1056/211 811/1057/211 +f 811/1058/211 830/1059/211 822/1060/211 +f 822/1060/211 831/1061/211 821/1038/211 +f 837/1037/211 836/1062/211 845/1035/211 +f 836/1062/211 835/1063/211 845/1035/211 +f 835/1063/211 846/1064/211 845/1035/211 +f 845/1035/211 844/1065/211 843/1066/211 +f 843/1066/211 842/1067/211 841/1036/211 +f 841/1036/211 840/1068/211 837/1037/211 +f 840/1068/211 839/1069/211 837/1037/211 +f 839/1069/211 838/1070/211 837/1037/211 +f 845/1035/211 843/1066/211 841/1036/211 +f 821/1038/211 831/1061/211 832/1039/211 +f 820/1040/211 832/1039/211 833/1041/211 +f 819/1042/211 833/1041/211 834/1043/211 +f 818/1044/211 834/1043/211 823/1045/211 +f 823/1045/211 824/1048/211 816/1047/211 +f 824/1048/211 825/1050/211 815/1049/211 +f 825/1050/211 826/1052/211 814/1051/211 +f 826/1052/211 827/1071/211 813/1053/211 +f 813/1053/211 827/1071/211 828/1054/211 +f 812/1055/211 828/1054/211 829/1056/211 +f 811/1058/211 829/1072/211 830/1059/211 +f 822/1060/211 830/1059/211 831/1061/211 +s 1 +f 769/1073/212 780/1074/213 768/1075/213 +f 766/1076/214 777/1077/215 765/1078/215 +f 773/1079/216 784/1080/217 772/1081/217 +f 770/1082/218 781/1083/212 769/1073/212 +f 767/1084/219 778/1085/214 766/1076/214 +f 774/1086/220 785/1087/216 773/1079/216 +f 764/1088/221 775/1089/222 763/1090/222 +f 771/1091/223 782/1092/218 770/1082/218 +f 768/1075/213 779/1093/219 767/1084/219 +f 763/1094/222 786/1095/220 774/1086/220 +f 765/1078/215 776/1096/221 764/1088/221 +f 772/1081/217 783/1097/223 771/1091/223 +f 790/1098/217 803/1099/223 791/1100/223 +f 797/1101/215 810/1102/221 798/1103/221 +f 787/1104/222 800/1105/220 788/1106/220 +f 794/1107/213 807/1108/219 795/1109/219 +f 791/1100/223 804/1110/218 792/1111/218 +f 798/1103/221 799/1112/222 787/1104/222 +f 788/1106/220 801/1113/216 789/1114/216 +f 795/1109/219 808/1115/214 796/1116/214 +f 792/1111/218 805/1117/212 793/1118/212 +f 789/1114/216 802/1119/217 790/1098/217 +f 796/1116/214 809/1120/215 797/1101/215 +f 793/1121/212 806/1122/213 794/1107/213 +f 769/1073/212 781/1083/212 780/1074/213 +f 766/1076/214 778/1085/214 777/1077/215 +f 773/1079/216 785/1087/216 784/1080/217 +f 770/1082/218 782/1092/218 781/1083/212 +f 767/1084/219 779/1093/219 778/1085/214 +f 774/1086/220 786/1095/220 785/1087/216 +f 764/1088/221 776/1096/221 775/1089/222 +f 771/1091/223 783/1097/223 782/1092/218 +f 768/1075/213 780/1074/213 779/1093/219 +f 763/1094/222 775/1123/222 786/1095/220 +f 765/1078/215 777/1077/215 776/1096/221 +f 772/1081/217 784/1080/217 783/1097/223 +f 790/1098/217 802/1119/217 803/1099/223 +f 797/1101/215 809/1120/215 810/1102/221 +f 787/1104/222 799/1112/222 800/1105/220 +f 794/1107/213 806/1122/213 807/1108/219 +f 791/1100/223 803/1099/223 804/1110/218 +f 798/1103/221 810/1102/221 799/1112/222 +f 788/1106/220 800/1105/220 801/1113/216 +f 795/1109/219 807/1108/219 808/1115/214 +f 792/1111/218 804/1110/218 805/1117/212 +f 789/1114/216 801/1113/216 802/1119/217 +f 796/1116/214 808/1115/214 809/1120/215 +f 793/1121/212 805/1124/212 806/1122/213 +o Base +v 2.000000 0.000000 1.000000 +v 2.000000 0.000000 -1.000000 +v -2.000000 0.000000 1.000000 +v -2.000000 0.000000 -1.000000 +v 1.000000 0.000000 -2.000000 +v -1.000000 0.000000 -2.000000 +v 1.000000 0.000000 2.000000 +v -1.000000 0.000000 2.000000 +v -1.000000 1.500000 2.000000 +v 1.000000 1.500000 2.000000 +v 2.000000 1.500000 1.000000 +v 2.000000 1.500000 -1.000000 +v 1.000000 1.500000 -2.000000 +v -1.000000 1.500000 -2.000000 +v -2.000000 1.500000 -1.000000 +v -2.000000 1.500000 1.000000 +v 0.000000 1.500000 -1.750000 +v -0.669696 1.500000 -1.616789 +v -1.237437 1.500000 -1.237437 +v -1.616789 1.500000 -0.669696 +v -1.750000 1.500000 0.000000 +v -1.616789 1.500000 0.669696 +v -1.237437 1.500000 1.237437 +v -0.669696 1.500000 1.616789 +v -0.000000 1.500000 1.750000 +v 0.669696 1.500000 1.616789 +v 1.237436 1.500000 1.237437 +v 1.616789 1.500000 0.669696 +v 1.750000 1.500000 0.000000 +v 1.616789 1.500000 -0.669696 +v 1.237436 1.500000 -1.237437 +v 0.669695 1.500000 -1.616790 +v 0.000000 2.000000 -1.750000 +v -0.669696 2.000000 -1.616789 +v -1.237437 2.000000 -1.237437 +v -1.616789 2.000000 -0.669696 +v -1.750000 2.000000 0.000000 +v -1.616789 2.000000 0.669696 +v -1.237437 2.000000 1.237437 +v -0.669696 2.000000 1.616789 +v -0.000000 2.000000 1.750000 +v 0.669696 2.000000 1.616789 +v 1.237436 2.000000 1.237437 +v 1.616789 2.000000 0.669696 +v 1.750000 2.000000 0.000000 +v 1.616789 2.000000 -0.669696 +v 1.237436 2.000000 -1.237437 +v 0.669695 2.000000 -1.616790 +v -0.969670 1.500000 -1.323223 +v -1.323223 1.500000 -0.969670 +v -1.323224 1.500000 -1.676776 +v -1.676777 1.500000 -1.323223 +v -0.969670 1.750000 -1.323223 +v -1.323223 1.750000 -0.969670 +v -1.146447 1.750000 -1.500000 +v -1.500000 1.750000 -1.146446 +v -1.500000 1.875000 -1.853553 +v -1.323224 1.875000 -1.676776 +v -1.676777 1.875000 -1.323223 +v -1.853553 1.875000 -1.500000 +v -1.676777 0.000000 -2.030329 +v -2.030330 0.000000 -1.676776 +v -1.323224 0.000000 -1.676776 +v -1.676777 0.000000 -1.323223 +v 1.676777 0.000000 1.323223 +v 1.323224 0.000000 1.676776 +v 2.030331 0.000000 1.676776 +v 1.676777 0.000000 2.030329 +v 1.853553 1.875000 1.499999 +v 1.676777 1.875000 1.323223 +v 1.323224 1.875000 1.676776 +v 1.500000 1.875000 1.853553 +v 1.500000 1.750000 1.146446 +v 1.146447 1.750000 1.499999 +v 1.323223 1.750000 0.969669 +v 0.969670 1.750000 1.323223 +v 1.676777 1.500000 1.323223 +v 1.323224 1.500000 1.676776 +v 1.323223 1.500000 0.969669 +v 0.969670 1.500000 1.323223 +v -1.323223 1.500000 0.969670 +v -0.969669 1.500000 1.323223 +v -1.676776 1.500000 1.323224 +v -1.323223 1.500000 1.676777 +v -1.323223 1.750000 0.969670 +v -0.969669 1.750000 1.323223 +v -1.499999 1.750000 1.146447 +v -1.146446 1.750000 1.500000 +v -1.853553 1.875000 1.500000 +v -1.676776 1.875000 1.323224 +v -1.323223 1.875000 1.676777 +v -1.499999 1.875000 1.853553 +v -2.030329 0.000000 1.676777 +v -1.676776 0.000000 2.030331 +v -1.676776 0.000000 1.323224 +v -1.323223 0.000000 1.676777 +v 1.323223 0.000000 -1.676777 +v 1.676776 0.000000 -1.323224 +v 1.676776 0.000000 -2.030330 +v 2.030329 0.000000 -1.676777 +v 1.500000 1.875000 -1.853553 +v 1.323223 1.875000 -1.676777 +v 1.676776 1.875000 -1.323224 +v 1.853553 1.875000 -1.500000 +v 1.146446 1.750000 -1.500000 +v 1.500000 1.750000 -1.146447 +v 0.969670 1.750000 -1.323223 +v 1.323223 1.750000 -0.969670 +v 1.323223 1.500000 -1.676777 +v 1.676776 1.500000 -1.323224 +v 0.969670 1.500000 -1.323223 +v 1.323223 1.500000 -0.969670 +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v -0.875000 0.125000 -2.000000 +v 0.875000 0.125000 -2.000000 +v -0.875000 0.875000 -2.000000 +v 0.875000 0.875000 -2.000000 +v -0.875000 0.875000 -1.750000 +v -0.875000 0.125000 -1.750000 +v 0.875000 0.125000 -1.750000 +v 0.875000 0.875000 -1.750000 +v 0.875000 0.125000 2.000000 +v -0.875000 0.125000 2.000000 +v 0.875000 0.875000 2.000000 +v -0.875000 0.875000 2.000000 +v 0.875000 0.875000 1.750000 +v 0.875000 0.125000 1.750000 +v -0.875000 0.125000 1.750000 +v -0.875000 0.875000 1.750000 +v -2.000000 0.125000 0.875000 +v -2.000000 0.125000 -0.875000 +v -2.000000 0.875000 0.875000 +v -2.000000 0.875000 -0.875000 +v -1.750000 0.875000 0.875000 +v -1.750000 0.125000 0.875000 +v -1.750000 0.125000 -0.875000 +v -1.750000 0.875000 -0.875000 +v 2.000000 0.125000 -0.875000 +v 2.000000 0.125000 0.875000 +v 2.000000 0.875000 -0.875000 +v 2.000000 0.875000 0.875000 +v 1.750000 0.875000 -0.875000 +v 1.750000 0.125000 -0.875000 +v 1.750000 0.125000 0.875000 +v 1.750000 0.875000 0.875000 +v -0.875000 1.125000 -2.000000 +v -0.875000 1.375000 -2.000000 +v -0.625000 1.125000 -2.000000 +v -0.625000 1.375000 -2.000000 +v -0.625000 1.125000 -2.125000 +v -0.875000 1.125000 -2.125000 +v -0.875000 1.375000 -2.125000 +v -0.625000 1.375000 -2.125000 +v -0.624999 1.125000 2.000000 +v -0.624999 1.375000 2.000000 +v -0.875000 1.125000 2.000000 +v -0.875000 1.375000 2.000000 +v -0.874999 1.125000 2.125000 +v -0.624999 1.125000 2.125000 +v -0.624999 1.375000 2.125000 +v -0.874999 1.375000 2.125000 +v 2.000000 1.125000 0.625000 +v 2.000000 1.375000 0.625000 +v 2.000000 1.125000 0.875000 +v 2.000000 1.375000 0.875000 +v 2.125000 1.125000 0.875000 +v 2.125000 1.125000 0.625000 +v 2.125000 1.375000 0.625000 +v 2.125000 1.375000 0.875000 +v 0.625000 1.375000 2.125000 +v 0.875000 1.375000 2.125000 +v 0.875000 1.125000 2.125000 +v 0.625000 1.125000 2.125000 +v 0.625000 1.375000 2.000000 +v 0.625000 1.125000 2.000000 +v 0.875001 1.375000 2.000000 +v 0.875001 1.125000 2.000000 +v 0.875000 1.375000 -2.125000 +v 0.625000 1.375000 -2.125000 +v 0.625000 1.125000 -2.125000 +v 0.875000 1.125000 -2.125000 +v 0.875000 1.375000 -2.000000 +v 0.875000 1.125000 -2.000000 +v 0.625000 1.375000 -2.000000 +v 0.625000 1.125000 -2.000000 +v -2.000000 1.125000 0.875000 +v -2.000000 1.375000 0.875000 +v -2.000000 1.125000 0.625000 +v -2.000000 1.375000 0.625000 +v -2.125000 1.125000 0.625000 +v -2.125000 1.125000 0.875000 +v -2.125000 1.375000 0.875000 +v -2.125000 1.375000 0.625000 +v -2.125000 1.375000 -0.875000 +v -2.125000 1.375000 -0.625000 +v -2.125000 1.125000 -0.625000 +v -2.125000 1.125000 -0.875000 +v -2.000000 1.375000 -0.875000 +v -2.000000 1.125000 -0.875000 +v -2.000000 1.375000 -0.625000 +v -2.000000 1.125000 -0.625000 +v 2.125000 1.375000 -0.625000 +v 2.125000 1.375000 -0.875000 +v 2.125000 1.125000 -0.875000 +v 2.125000 1.125000 -0.625000 +v 2.000000 1.375000 -0.625000 +v 2.000000 1.125000 -0.625000 +v 2.000000 1.375000 -0.875000 +v 2.000000 1.125000 -0.875000 +v 0.000000 2.000000 -1.750000 +v -0.669696 2.000000 -1.616789 +v -1.237437 2.000000 -1.237437 +v -1.616789 2.000000 -0.669696 +v -1.750000 2.000000 0.000000 +v -1.616789 2.000000 0.669696 +v -1.237437 2.000000 1.237437 +v -0.669696 2.000000 1.616789 +v -0.000000 2.000000 1.750000 +v 0.669696 2.000000 1.616789 +v 1.237436 2.000000 1.237437 +v 1.616789 2.000000 0.669696 +v 1.750000 2.000000 0.000000 +v 1.616789 2.000000 -0.669696 +v 1.237436 2.000000 -1.237437 +v 0.669695 2.000000 -1.616790 +v 0.000000 2.000000 -1.625000 +v -0.621861 2.000000 -1.501304 +v -1.149048 2.000000 -1.149048 +v -1.501304 2.000000 -0.621861 +v -1.625000 2.000000 0.000000 +v -1.501304 2.000000 0.621861 +v -1.149048 2.000000 1.149048 +v -0.621861 2.000000 1.501304 +v -0.000000 2.000000 1.625000 +v 0.621860 2.000000 1.501305 +v 1.149048 2.000000 1.149049 +v 1.501304 2.000000 0.621861 +v 1.625000 2.000000 0.000000 +v 1.501304 2.000000 -0.621861 +v 1.149048 2.000000 -1.149049 +v 0.621860 2.000000 -1.501305 +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v 0.000000 2.000000 -1.625000 +v -0.621861 2.000000 -1.501304 +v -1.149048 2.000000 -1.149048 +v -1.501304 2.000000 -0.621861 +v -1.625000 2.000000 0.000000 +v -1.501304 2.000000 0.621861 +v -1.149048 2.000000 1.149048 +v -0.621861 2.000000 1.501304 +v -0.000000 2.000000 1.625000 +v 0.621860 2.000000 1.501305 +v 1.149048 2.000000 1.149049 +v 1.501304 2.000000 0.621861 +v 1.625000 2.000000 0.000000 +v 1.501304 2.000000 -0.621861 +v 1.149048 2.000000 -1.149049 +v 0.621860 2.000000 -1.501305 +vt 0.266667 0.080000 +vt 0.200000 0.320000 +vt 0.000000 0.240000 +vt 0.200000 0.440000 +vt 0.266667 0.680000 +vt 0.066667 0.760000 +vt 0.466667 0.320000 +vt 0.400000 0.440000 +vt 0.400000 0.320000 +vt 0.066667 0.320000 +vt -0.000000 0.440000 +vt -0.000000 0.320000 +vt 0.383333 0.320000 +vt 0.508333 0.300000 +vt 0.508333 0.320000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.666667 0.320000 +vt 0.600000 0.440000 +vt 0.600000 0.320000 +vt 0.266667 0.320000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.383333 0.240000 +vt 0.316667 0.190000 +vt 0.300000 0.190000 +vt 0.300000 0.160000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.283333 0.180000 +vt 0.333333 0.040000 +vt 0.366667 0.190000 +vt 0.333333 0.190000 +vt 0.366667 0.210000 +vt 0.333333 0.230000 +vt 0.333333 0.210000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 -0.000000 +vt 0.366667 -0.000000 +vt 0.366667 -0.000000 +vt 0.333333 0.040000 +vt 0.333333 -0.000000 +vt 0.333333 0.210000 +vt 0.366667 0.190000 +vt 0.366667 0.210000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.333333 0.190000 +vt 0.300000 0.160000 +vt 0.300000 0.190000 +vt 0.283333 0.180000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.316667 0.190000 +vt 0.316667 0.190000 +vt 0.300000 0.190000 +vt 0.300000 0.160000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.283333 0.180000 +vt 0.333333 0.040000 +vt 0.366667 0.190000 +vt 0.333333 0.190000 +vt 0.333333 0.210000 +vt 0.366667 0.230000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.366667 0.210000 +vt 0.366667 -0.000000 +vt 0.333333 -0.000000 +vt 0.366667 -0.000000 +vt 0.333333 0.040000 +vt 0.333333 -0.000000 +vt 0.333333 0.210000 +vt 0.366667 0.190000 +vt 0.366667 0.210000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.333333 0.190000 +vt 0.300000 0.160000 +vt 0.300000 0.190000 +vt 0.283333 0.180000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.316667 0.190000 +vt 0.625000 0.249809 +vt 0.525159 0.130000 +vt 0.625000 0.010191 +vt 0.508333 0.220000 +vt 0.383333 0.220000 +vt 0.508333 0.220000 +vt 0.383333 0.240000 +vt 0.383333 0.220000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.508333 0.300000 +vt 0.383333 0.320000 +vt 0.508333 0.320000 +vt 0.383333 0.320000 +vt 0.508333 0.300000 +vt 0.508333 0.320000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.383333 0.240000 +vt 0.508333 0.220000 +vt 0.383333 0.220000 +vt 0.508333 0.220000 +vt 0.383333 0.240000 +vt 0.383333 0.220000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.508333 0.300000 +vt 0.383333 0.320000 +vt 0.508333 0.320000 +vt 0.475000 0.330000 +vt 0.475000 0.390000 +vt 0.466667 0.440000 +vt 0.591667 0.390000 +vt 0.591667 0.330000 +vt 0.800000 0.320000 +vt 0.675000 0.330000 +vt 0.675000 0.390000 +vt 0.666667 0.440000 +vt 0.800000 0.440000 +vt 0.791667 0.390000 +vt 0.791667 0.330000 +vt 0.075000 0.330000 +vt 0.191667 0.390000 +vt 0.191667 0.330000 +vt 0.066667 0.440000 +vt 0.075000 0.390000 +vt 0.275000 0.330000 +vt 0.391667 0.390000 +vt 0.391667 0.330000 +vt 0.266667 0.440000 +vt 0.275000 0.390000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.550000 0.290000 +vt 0.533333 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.550000 0.290000 +vt 0.533333 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.290000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.250000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.290000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.541667 0.480000 +vt 0.495833 0.490000 +vt 0.495833 0.480000 +vt 0.587500 0.490000 +vt 0.541667 0.490000 +vt 0.633333 0.480000 +vt 0.587500 0.480000 +vt 0.679167 0.480000 +vt 0.633333 0.490000 +vt 0.725000 0.490000 +vt 0.679167 0.490000 +vt 0.725000 0.480000 +vt 0.770833 0.490000 +vt 0.770833 0.480000 +vt 0.816667 0.490000 +vt 0.816667 0.480000 +vt 0.862500 0.490000 +vt 0.862500 0.480000 +vt 0.908333 0.490000 +vt 0.908333 0.480000 +vt 0.954167 0.490000 +vt 0.954167 0.480000 +vt 1.000000 0.490000 +vt 0.266667 0.480000 +vt 0.312500 0.490000 +vt 0.266667 0.490000 +vt 0.358333 0.480000 +vt 0.312500 0.480000 +vt 0.404167 0.480000 +vt 0.358333 0.490000 +vt 0.450000 0.490000 +vt 0.404167 0.490000 +vt 0.450000 0.480000 +vt 0.000000 0.080000 +vt 0.066667 0.000000 +vt 0.200000 -0.000000 +vt 0.266667 0.240000 +vt 0.000000 0.680000 +vt -0.000000 0.520000 +vt 0.266667 0.520000 +vt 0.200000 0.760000 +vt 0.300000 0.040000 +vt 0.400000 0.040000 +vt 0.400000 0.190000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.366667 0.230000 +vt 0.400000 0.190000 +vt 0.366667 0.230000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.040000 +vt 0.300000 0.040000 +vt 0.300000 0.040000 +vt 0.400000 0.040000 +vt 0.400000 0.190000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.190000 +vt 0.366667 0.230000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.040000 +vt 0.300000 0.040000 +vt 0.586793 0.240689 +vt 0.554402 0.214718 +vt 0.532759 0.175849 +vt 0.532759 0.084151 +vt 0.554402 0.045282 +vt 0.586793 0.019311 +vt 0.663207 0.019311 +vt 0.695598 0.045282 +vt 0.717241 0.084151 +vt 0.724841 0.130000 +vt 0.717241 0.175849 +vt 0.695598 0.214718 +vt 0.663207 0.240689 +vt 0.533333 0.290000 +vt 0.533333 0.290000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 1.000000 0.480000 +vt 0.587500 0.440000 +vt 0.541667 0.480000 +vt 0.541667 0.440000 +vt 1.000000 0.440000 +vt 0.954167 0.480000 +vt 0.954167 0.440000 +vt 0.679167 0.440000 +vt 0.633333 0.480000 +vt 0.633333 0.440000 +vt 0.587500 0.480000 +vt 0.312500 0.440000 +vt 0.266667 0.480000 +vt 0.266667 0.440000 +vt 0.725000 0.440000 +vt 0.679167 0.480000 +vt 0.358333 0.440000 +vt 0.312500 0.480000 +vt 0.770833 0.440000 +vt 0.725000 0.480000 +vt 0.404167 0.440000 +vt 0.358333 0.480000 +vt 0.816667 0.440000 +vt 0.770833 0.480000 +vt 0.450000 0.440000 +vt 0.404167 0.480000 +vt 0.862500 0.440000 +vt 0.816667 0.480000 +vt 0.495833 0.440000 +vt 0.450000 0.480000 +vt 0.908333 0.440000 +vt 0.862500 0.480000 +vt 0.495833 0.480000 +vt 0.908333 0.480000 +vt 0.450000 0.490000 +vt 0.495833 0.500000 +vt 0.450000 0.500000 +vt 0.404167 0.500000 +vt 0.358333 0.500000 +vt 0.404167 0.490000 +vt 0.312500 0.500000 +vt 0.358333 0.490000 +vt 0.266667 0.500000 +vt 0.312500 0.490000 +vt 0.954167 0.500000 +vt 1.000000 0.490000 +vt 1.000000 0.500000 +vt 0.908333 0.500000 +vt 0.954167 0.490000 +vt 0.862500 0.500000 +vt 0.908333 0.490000 +vt 0.816667 0.500000 +vt 0.862500 0.490000 +vt 0.770833 0.490000 +vt 0.770833 0.500000 +vt 0.725000 0.490000 +vt 0.725000 0.500000 +vt 0.679167 0.490000 +vt 0.679167 0.500000 +vt 0.633333 0.500000 +vt 0.587500 0.500000 +vt 0.633333 0.490000 +vt 0.541667 0.490000 +vt 0.541667 0.500000 +vt 0.495833 0.490000 +vt 1.000000 0.480000 +vt 0.266667 0.490000 +vt 0.816667 0.490000 +vt 0.587500 0.490000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7009 0.1322 -0.7009 +vn 0.3162 0.8944 0.3162 +vn -0.3162 0.8944 -0.3162 +vn 0.7009 0.1322 0.7009 +vn -0.7009 0.1322 0.7009 +vn 0.3162 0.8944 -0.3162 +vn -0.3162 0.8944 0.3162 +vn 0.7009 0.1322 -0.7009 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.7071 0.0000 +vn -0.6533 0.7071 0.2706 +vn -0.6533 0.7071 -0.2706 +vn -0.5000 0.7071 -0.5000 +vn -0.2706 0.7071 -0.6533 +vn 0.0000 0.7071 -0.7071 +vn 0.2706 0.7071 -0.6533 +vn 0.5000 0.7071 -0.5000 +vn 0.6533 0.7071 -0.2706 +vn 0.7071 0.7071 0.0000 +vn 0.6533 0.7071 0.2706 +vn 0.5000 0.7071 0.5000 +vn 0.2706 0.7071 0.6533 +vn 0.0000 0.7071 0.7071 +vn -0.2706 0.7071 0.6533 +vn -0.5000 0.7071 0.5000 +s off +f 852/1125/224 848/1126/224 853/1127/224 +f 858/1128/225 860/1129/225 862/1130/225 +f 850/1131/226 860/1132/226 852/1133/226 +f 847/1134/227 856/1135/227 853/1136/227 +f 978/1137/224 979/1138/224 977/1139/224 +f 977/1140/228 980/1141/228 975/1142/228 +f 854/1143/229 862/1144/229 849/1145/229 +f 851/1146/230 858/1128/230 848/1126/230 +f 976/1147/231 982/1148/231 978/1149/231 +f 979/1138/232 981/1150/232 980/1141/232 +f 903/1151/230 904/1152/230 897/1153/230 +f 898/1154/229 906/1155/229 908/1156/229 +f 897/1153/230 904/1152/230 901/1157/230 +f 907/1158/233 906/1159/233 903/1160/233 +f 905/1161/234 901/1162/234 904/1163/234 +f 901/1162/225 900/1164/225 899/1165/225 +f 896/1166/229 900/1167/229 902/1168/229 +f 904/1163/225 906/1159/225 905/1161/225 +f 908/1156/224 909/1169/224 910/1170/224 +f 911/1171/224 914/1172/224 912/1173/224 +f 917/1174/225 915/1175/225 916/1176/225 +f 925/1177/230 921/1178/230 919/1179/230 +f 920/1180/225 921/1181/225 922/1182/225 +f 916/1176/235 920/1180/235 917/1174/235 +f 914/1172/236 915/1175/236 918/1183/236 +f 924/1184/229 917/1185/229 920/1186/229 +f 923/1187/230 915/1188/230 913/1189/230 +f 918/1190/229 917/1185/229 924/1184/229 +f 935/1191/226 936/1192/226 929/1193/226 +f 930/1194/227 938/1195/227 940/1196/227 +f 929/1193/226 936/1192/226 933/1197/226 +f 939/1198/237 938/1199/237 935/1200/237 +f 936/1201/238 934/1202/238 933/1203/238 +f 933/1203/225 932/1204/225 931/1205/225 +f 928/1206/227 932/1207/227 934/1208/227 +f 936/1201/225 938/1199/225 937/1209/225 +f 942/1210/224 939/1198/224 941/1211/224 +f 943/1212/224 946/1213/224 944/1214/224 +f 949/1215/225 947/1216/225 948/1217/225 +f 957/1218/226 953/1219/226 951/1220/226 +f 952/1221/225 953/1222/225 954/1223/225 +f 948/1217/239 952/1221/239 949/1215/239 +f 946/1213/240 947/1216/240 950/1224/240 +f 956/1225/227 949/1226/227 952/1227/227 +f 955/1228/226 947/1229/226 945/1230/226 +f 950/1231/227 949/1226/227 956/1225/227 +f 959/1232/225 963/1233/225 967/1234/225 +f 975/1235/225 981/1150/225 976/1236/225 +f 986/1237/224 987/1238/224 985/1239/224 +f 985/1240/231 988/1241/231 983/1242/231 +f 984/1243/228 990/1244/228 986/1245/228 +f 987/1238/241 989/1246/241 988/1241/241 +f 983/1247/225 989/1246/225 984/1248/225 +f 994/1249/224 995/1250/224 993/1251/224 +f 993/1252/232 996/1253/232 991/1254/232 +f 992/1255/241 998/1256/241 994/1257/241 +f 995/1250/231 997/1258/231 996/1253/231 +f 991/1259/225 997/1258/225 992/1260/225 +f 1002/1261/224 1003/1262/224 1001/1263/224 +f 1001/1264/241 1004/1265/241 999/1266/241 +f 1000/1267/232 1006/1268/232 1002/1269/232 +f 1003/1262/228 1005/1270/228 1004/1265/228 +f 999/1271/225 1005/1270/225 1000/1272/225 +f 849/1145/231 992/1273/231 850/1131/231 +f 850/1131/231 994/1274/231 861/1275/231 +f 861/1275/231 993/1276/231 862/1144/231 +f 849/1145/231 993/1276/231 991/1277/231 +f 853/1278/241 984/1279/241 854/1143/241 +f 854/1143/241 986/1280/241 855/1281/241 +f 856/1282/241 986/1280/241 985/1283/241 +f 853/1278/241 985/1283/241 983/1284/241 +f 848/1126/228 1000/1285/228 847/1134/228 +f 848/1126/228 1001/1286/228 999/1287/228 +f 857/1288/228 1001/1286/228 858/1128/228 +f 847/1134/228 1002/1289/228 857/1288/228 +f 852/1133/232 976/1290/232 851/1146/232 +f 852/1133/232 977/1291/232 975/1292/232 +f 859/1293/232 977/1291/232 860/1132/232 +f 851/1146/232 978/1294/232 859/1293/232 +f 1013/1295/232 1011/1296/232 1012/1297/232 +f 1008/1298/225 1014/1299/225 1013/1295/225 +f 1007/1300/224 1011/1296/224 1009/1301/224 +f 1009/1302/228 1014/1299/228 1010/1303/228 +f 1008/1304/231 1012/1297/231 1007/1305/231 +f 1021/1306/241 1019/1307/241 1020/1308/241 +f 1016/1309/225 1022/1310/225 1021/1306/225 +f 1015/1311/224 1019/1307/224 1017/1312/224 +f 1017/1313/231 1022/1310/231 1018/1314/231 +f 1016/1315/228 1020/1308/228 1015/1316/228 +f 1037/1317/228 1033/1318/228 1038/1319/228 +f 1029/1320/228 1027/1321/228 1028/1322/228 +f 1026/1323/225 1029/1320/225 1024/1324/225 +f 1025/1325/224 1028/1322/224 1027/1321/224 +f 1025/1326/241 1030/1327/241 1026/1328/241 +f 1024/1329/232 1028/1322/232 1023/1330/232 +f 1036/1331/231 1031/1332/231 1035/1333/231 +f 1036/1334/224 1033/1318/224 1034/1335/224 +f 1035/1336/225 1032/1337/225 1037/1338/225 +f 1032/1337/241 1034/1335/241 1033/1318/241 +f 1045/1339/231 1041/1340/231 1046/1341/231 +f 1044/1342/228 1039/1343/228 1043/1344/228 +f 1046/1345/224 1042/1346/224 1044/1347/224 +f 1043/1348/225 1040/1349/225 1045/1350/225 +f 1040/1349/232 1042/1346/232 1041/1340/232 +f 1053/1351/231 1051/1352/231 1052/1353/231 +f 1050/1354/225 1053/1351/225 1048/1355/225 +f 1049/1356/224 1052/1353/224 1051/1352/224 +f 1049/1357/232 1054/1358/232 1050/1359/232 +f 1048/1360/241 1052/1353/241 1047/1361/241 +f 1061/1362/241 1057/1363/241 1062/1364/241 +f 1060/1365/232 1055/1366/232 1059/1367/232 +f 1060/1368/224 1057/1363/224 1058/1369/224 +f 1059/1370/225 1056/1371/225 1061/1372/225 +f 1056/1371/231 1058/1369/231 1057/1363/231 +f 1069/1373/232 1065/1374/232 1070/1375/232 +f 1068/1376/241 1063/1377/241 1067/1378/241 +f 1068/1379/224 1065/1374/224 1066/1380/224 +f 1067/1381/225 1064/1382/225 1069/1383/225 +f 1064/1382/228 1066/1380/228 1065/1374/228 +f 1085/1384/225 1100/1385/225 1084/1386/225 +f 1085/1384/225 1102/1387/225 1101/1388/225 +f 1071/1389/225 1102/1387/225 1086/1390/225 +f 1072/1391/225 1087/1392/225 1071/1389/225 +f 1072/1391/225 1089/1393/225 1088/1394/225 +f 1073/1395/225 1090/1396/225 1089/1393/225 +f 1074/1397/225 1091/1398/225 1090/1396/225 +f 1075/1399/225 1092/1400/225 1091/1398/225 +f 1076/1401/225 1093/1402/225 1092/1400/225 +f 1077/1403/225 1094/1404/225 1093/1402/225 +f 1078/1405/225 1095/1406/225 1094/1404/225 +f 1079/1407/225 1096/1408/225 1095/1409/225 +f 1081/1410/225 1096/1408/225 1080/1411/225 +f 1082/1412/225 1097/1413/225 1081/1410/225 +f 1082/1412/225 1099/1414/225 1098/1415/225 +f 1084/1386/225 1099/1414/225 1083/1416/225 +f 853/1127/224 854/1417/224 849/1418/224 +f 849/1418/224 850/1419/224 852/1125/224 +f 852/1125/224 851/1420/224 848/1126/224 +f 848/1126/224 847/1134/224 853/1127/224 +f 853/1127/224 849/1418/224 852/1125/224 +f 862/1130/225 855/1421/225 856/1422/225 +f 856/1422/225 857/1288/225 858/1128/225 +f 858/1128/225 859/1423/225 860/1129/225 +f 860/1129/225 861/1424/225 862/1130/225 +f 862/1130/225 856/1422/225 858/1128/225 +f 850/1131/226 861/1275/226 860/1132/226 +f 847/1134/227 857/1288/227 856/1135/227 +f 978/1137/224 982/1148/224 979/1138/224 +f 977/1140/228 979/1138/228 980/1141/228 +f 854/1143/229 855/1281/229 862/1144/229 +f 851/1146/230 859/1293/230 858/1128/230 +f 976/1147/231 981/1150/231 982/1148/231 +f 979/1138/232 982/1148/232 981/1150/232 +f 909/1425/230 907/1158/230 897/1153/230 +f 907/1158/230 903/1151/230 897/1153/230 +f 908/1156/229 910/1426/229 898/1154/229 +f 898/1154/229 905/1427/229 906/1155/229 +f 899/1428/230 895/1429/230 901/1157/230 +f 895/1429/230 897/1153/230 901/1157/230 +f 907/1158/233 908/1156/233 906/1159/233 +f 905/1161/234 902/1430/234 901/1162/234 +f 901/1162/225 902/1430/225 900/1164/225 +f 905/1427/229 898/1154/229 902/1168/229 +f 898/1154/229 896/1166/229 902/1168/229 +f 904/1163/225 903/1160/225 906/1159/225 +f 908/1156/224 907/1158/224 909/1169/224 +f 911/1171/224 913/1189/224 914/1172/224 +f 917/1174/225 918/1183/225 915/1175/225 +f 916/1431/230 923/1187/230 919/1179/230 +f 923/1187/230 925/1177/230 919/1179/230 +f 920/1180/225 919/1432/225 921/1181/225 +f 916/1176/235 919/1432/235 920/1180/235 +f 914/1172/236 913/1189/236 915/1175/236 +f 922/1433/229 926/1434/229 920/1186/229 +f 926/1434/229 924/1184/229 920/1186/229 +f 913/1189/230 911/1435/230 923/1187/230 +f 923/1187/230 916/1431/230 915/1188/230 +f 912/1436/229 914/1172/229 924/1184/229 +f 914/1172/229 918/1190/229 924/1184/229 +f 941/1437/226 939/1198/226 929/1193/226 +f 939/1198/226 935/1191/226 929/1193/226 +f 940/1196/227 942/1438/227 930/1194/227 +f 930/1194/227 937/1439/227 938/1195/227 +f 931/1440/226 927/1441/226 933/1197/226 +f 927/1441/226 929/1193/226 933/1197/226 +f 939/1198/237 940/1196/237 938/1199/237 +f 936/1201/238 937/1209/238 934/1202/238 +f 933/1203/225 934/1202/225 932/1204/225 +f 937/1439/227 930/1194/227 934/1208/227 +f 930/1194/227 928/1206/227 934/1208/227 +f 936/1201/225 935/1200/225 938/1199/225 +f 942/1210/224 940/1196/224 939/1198/224 +f 943/1212/224 945/1230/224 946/1213/224 +f 949/1215/225 950/1224/225 947/1216/225 +f 948/1442/226 955/1228/226 951/1220/226 +f 955/1228/226 957/1218/226 951/1220/226 +f 952/1221/225 951/1443/225 953/1222/225 +f 948/1217/239 951/1443/239 952/1221/239 +f 946/1213/240 945/1230/240 947/1216/240 +f 954/1444/227 958/1445/227 952/1227/227 +f 958/1445/227 956/1225/227 952/1227/227 +f 945/1230/226 943/1446/226 955/1228/226 +f 955/1228/226 948/1442/226 947/1229/226 +f 944/1447/227 946/1213/227 956/1225/227 +f 946/1213/227 950/1231/227 956/1225/227 +f 959/1232/225 960/1448/225 963/1233/225 +f 960/1448/225 961/1449/225 963/1233/225 +f 961/1449/225 962/1450/225 963/1233/225 +f 963/1233/225 964/1451/225 967/1234/225 +f 964/1451/225 965/1452/225 967/1234/225 +f 965/1452/225 966/1453/225 967/1234/225 +f 967/1234/225 968/1454/225 969/1455/225 +f 969/1455/225 970/1456/225 971/1457/225 +f 971/1457/225 972/1458/225 973/1459/225 +f 973/1459/225 974/1460/225 959/1232/225 +f 967/1234/225 969/1455/225 971/1457/225 +f 971/1457/225 973/1459/225 967/1234/225 +f 973/1459/225 959/1232/225 967/1234/225 +f 975/1235/225 980/1141/225 981/1150/225 +f 986/1237/224 990/1244/224 987/1238/224 +f 985/1240/231 987/1238/231 988/1241/231 +f 984/1243/228 989/1246/228 990/1244/228 +f 987/1238/241 990/1244/241 989/1246/241 +f 983/1247/225 988/1241/225 989/1246/225 +f 994/1249/224 998/1256/224 995/1250/224 +f 993/1252/232 995/1250/232 996/1253/232 +f 992/1255/241 997/1258/241 998/1256/241 +f 995/1250/231 998/1256/231 997/1258/231 +f 991/1259/225 996/1253/225 997/1258/225 +f 1002/1261/224 1006/1268/224 1003/1262/224 +f 1001/1264/241 1003/1262/241 1004/1265/241 +f 1000/1267/232 1005/1270/232 1006/1268/232 +f 1003/1262/228 1006/1268/228 1005/1270/228 +f 999/1271/225 1004/1265/225 1005/1270/225 +f 849/1145/231 991/1277/231 992/1273/231 +f 850/1131/231 992/1273/231 994/1274/231 +f 861/1275/231 994/1274/231 993/1276/231 +f 849/1145/231 862/1144/231 993/1276/231 +f 853/1278/241 983/1284/241 984/1279/241 +f 854/1143/241 984/1279/241 986/1280/241 +f 856/1282/241 855/1281/241 986/1280/241 +f 853/1278/241 856/1282/241 985/1283/241 +f 848/1126/228 999/1287/228 1000/1285/228 +f 848/1126/228 858/1128/228 1001/1286/228 +f 857/1288/228 1002/1289/228 1001/1286/228 +f 847/1134/228 1000/1285/228 1002/1289/228 +f 852/1133/232 975/1292/232 976/1290/232 +f 852/1133/232 860/1132/232 977/1291/232 +f 859/1293/232 978/1294/232 977/1291/232 +f 851/1146/232 976/1290/232 978/1294/232 +f 1013/1295/232 1014/1299/232 1011/1296/232 +f 1008/1298/225 1010/1461/225 1014/1299/225 +f 1007/1300/224 1012/1297/224 1011/1296/224 +f 1009/1302/228 1011/1296/228 1014/1299/228 +f 1008/1304/231 1013/1295/231 1012/1297/231 +f 1021/1306/241 1022/1310/241 1019/1307/241 +f 1016/1309/225 1018/1462/225 1022/1310/225 +f 1015/1311/224 1020/1308/224 1019/1307/224 +f 1017/1313/231 1019/1307/231 1022/1310/231 +f 1016/1315/228 1021/1306/228 1020/1308/228 +f 1037/1317/228 1032/1337/228 1033/1318/228 +f 1029/1320/228 1030/1327/228 1027/1321/228 +f 1026/1323/225 1030/1327/225 1029/1320/225 +f 1025/1325/224 1023/1463/224 1028/1322/224 +f 1025/1326/241 1027/1321/241 1030/1327/241 +f 1024/1329/232 1029/1320/232 1028/1322/232 +f 1036/1331/231 1034/1335/231 1031/1332/231 +f 1036/1334/224 1038/1464/224 1033/1318/224 +f 1035/1336/225 1031/1332/225 1032/1337/225 +f 1032/1337/241 1031/1332/241 1034/1335/241 +f 1045/1339/231 1040/1349/231 1041/1340/231 +f 1044/1342/228 1042/1346/228 1039/1343/228 +f 1046/1345/224 1041/1340/224 1042/1346/224 +f 1043/1348/225 1039/1343/225 1040/1349/225 +f 1040/1349/232 1039/1343/232 1042/1346/232 +f 1053/1351/231 1054/1358/231 1051/1352/231 +f 1050/1354/225 1054/1358/225 1053/1351/225 +f 1049/1356/224 1047/1465/224 1052/1353/224 +f 1049/1357/232 1051/1352/232 1054/1358/232 +f 1048/1360/241 1053/1351/241 1052/1353/241 +f 1061/1362/241 1056/1371/241 1057/1363/241 +f 1060/1365/232 1058/1369/232 1055/1366/232 +f 1060/1368/224 1062/1466/224 1057/1363/224 +f 1059/1370/225 1055/1366/225 1056/1371/225 +f 1056/1371/231 1055/1366/231 1058/1369/231 +f 1069/1373/232 1064/1382/232 1065/1374/232 +f 1068/1376/241 1066/1380/241 1063/1377/241 +f 1068/1379/224 1070/1467/224 1065/1374/224 +f 1067/1381/225 1063/1377/225 1064/1382/225 +f 1064/1382/228 1063/1377/228 1066/1380/228 +f 1085/1384/225 1101/1388/225 1100/1385/225 +f 1085/1384/225 1086/1390/225 1102/1387/225 +f 1071/1389/225 1087/1392/225 1102/1387/225 +f 1072/1391/225 1088/1394/225 1087/1392/225 +f 1072/1391/225 1073/1395/225 1089/1393/225 +f 1073/1395/225 1074/1397/225 1090/1396/225 +f 1074/1397/225 1075/1399/225 1091/1398/225 +f 1075/1399/225 1076/1401/225 1092/1400/225 +f 1076/1401/225 1077/1403/225 1093/1402/225 +f 1077/1403/225 1078/1405/225 1094/1404/225 +f 1078/1405/225 1079/1468/225 1095/1406/225 +f 1079/1407/225 1080/1411/225 1096/1408/225 +f 1081/1410/225 1097/1413/225 1096/1408/225 +f 1082/1412/225 1098/1415/225 1097/1413/225 +f 1082/1412/225 1083/1416/225 1099/1414/225 +f 1084/1386/225 1100/1385/225 1099/1414/225 +s 1 +f 878/1469/242 893/1470/230 877/1471/230 +f 871/1472/241 886/1473/243 870/1474/243 +f 864/1475/244 879/1476/232 863/1477/232 +f 863/1477/232 894/1478/242 878/1469/242 +f 872/1479/245 887/1480/241 871/1481/241 +f 865/1482/226 880/1483/244 864/1475/244 +f 873/1484/227 888/1485/245 872/1479/245 +f 866/1486/246 881/1487/226 865/1482/226 +f 874/1488/247 889/1489/227 873/1484/227 +f 867/1490/231 882/1491/246 866/1486/246 +f 875/1492/228 890/1493/247 874/1488/247 +f 868/1494/248 883/1495/231 867/1490/231 +f 876/1496/249 891/1497/228 875/1492/228 +f 869/1498/229 884/1499/248 868/1494/248 +f 877/1471/230 892/1500/249 876/1496/249 +f 870/1474/243 885/1501/229 869/1498/229 +f 1131/1502/250 1116/1503/251 1115/1504/250 +f 1114/1505/252 1131/1502/250 1115/1504/250 +f 1113/1506/253 1130/1507/252 1114/1505/252 +f 1112/1508/254 1129/1509/253 1113/1506/253 +f 1111/1510/255 1128/1511/254 1112/1508/254 +f 1110/1512/256 1127/1513/255 1111/1514/255 +f 1109/1515/257 1126/1516/256 1110/1512/256 +f 1108/1517/258 1125/1518/257 1109/1515/257 +f 1107/1519/259 1124/1520/258 1108/1517/258 +f 1122/1521/260 1107/1519/259 1106/1522/260 +f 1121/1523/261 1106/1522/260 1105/1524/261 +f 1120/1525/262 1105/1524/261 1104/1526/262 +f 1103/1527/263 1120/1525/262 1104/1526/262 +f 1118/1528/264 1119/1529/263 1103/1527/263 +f 1133/1530/265 1118/1528/264 1117/1531/265 +f 1132/1532/251 1117/1531/265 1116/1503/251 +f 878/1469/242 894/1478/242 893/1470/230 +f 871/1472/241 887/1533/241 886/1473/243 +f 864/1475/244 880/1483/244 879/1476/232 +f 863/1477/232 879/1476/232 894/1478/242 +f 872/1479/245 888/1485/245 887/1480/241 +f 865/1482/226 881/1487/226 880/1483/244 +f 873/1484/227 889/1489/227 888/1485/245 +f 866/1486/246 882/1491/246 881/1487/226 +f 874/1488/247 890/1493/247 889/1489/227 +f 867/1490/231 883/1495/231 882/1491/246 +f 875/1492/228 891/1497/228 890/1493/247 +f 868/1494/248 884/1499/248 883/1495/231 +f 876/1496/249 892/1500/249 891/1497/228 +f 869/1498/229 885/1501/229 884/1499/248 +f 877/1471/230 893/1470/230 892/1500/249 +f 870/1474/243 886/1473/243 885/1501/229 +f 1131/1502/250 1132/1532/251 1116/1503/251 +f 1114/1505/252 1130/1507/252 1131/1502/250 +f 1113/1506/253 1129/1509/253 1130/1507/252 +f 1112/1508/254 1128/1511/254 1129/1509/253 +f 1111/1510/255 1127/1534/255 1128/1511/254 +f 1110/1512/256 1126/1516/256 1127/1513/255 +f 1109/1515/257 1125/1518/257 1126/1516/256 +f 1108/1517/258 1124/1520/258 1125/1518/257 +f 1107/1519/259 1123/1535/259 1124/1520/258 +f 1122/1521/260 1123/1535/259 1107/1519/259 +f 1121/1523/261 1122/1521/260 1106/1522/260 +f 1120/1525/262 1121/1523/261 1105/1524/261 +f 1103/1527/263 1119/1529/263 1120/1525/262 +f 1118/1528/264 1134/1536/264 1119/1529/263 +f 1133/1530/265 1134/1536/264 1118/1528/264 +f 1132/1532/251 1133/1530/265 1117/1531/265 diff --git a/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj new file mode 100644 index 000000000..412f4d25d --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj @@ -0,0 +1,266 @@ +# Blender v2.79 (sub 0) OBJ File: 'cart_powder.blend' +# www.blender.org +o Powder +v -0.500000 0.812500 0.562500 +v 0.500000 0.812500 0.562500 +v -0.500000 0.812500 -0.562500 +v 0.500000 0.812500 -0.562500 +v -0.250000 0.812500 0.562500 +v 0.000000 0.875000 0.562500 +v 0.250000 0.875000 0.562500 +v 0.250000 0.875000 -0.562500 +v 0.000000 0.937500 -0.562500 +v -0.250000 0.875000 -0.562500 +v -0.500000 0.812500 -0.281250 +v -0.500000 0.812500 0.000000 +v -0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.000000 +v 0.500000 0.812500 -0.281250 +v -0.250000 0.875000 0.281250 +v -0.250000 0.937500 0.000000 +v -0.250000 0.875000 -0.281250 +v 0.000000 0.937500 0.281250 +v 0.000000 1.000000 0.000000 +v 0.000000 0.937500 -0.281250 +v 0.250000 0.875000 0.281250 +v 0.250000 0.937500 0.000000 +v 0.250000 0.875000 -0.281250 +vt 0.250000 0.250000 +vt 0.000000 0.250000 +vt 0.250000 -0.000000 +vt 1.000000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.500000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.000000 -0.000000 +vn 0.2425 0.9701 0.0000 +vn -0.2425 0.9701 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.2371 0.9484 0.2107 +vn 0.2371 0.9484 -0.2107 +vn -0.2371 0.9484 0.2107 +vn -0.2371 0.9484 -0.2107 +vn 0.4386 0.8773 -0.1949 +vn -0.4386 0.8773 0.1949 +vn -0.4386 0.8773 -0.1949 +vn 0.4386 0.8773 0.1949 +s off +f 25/1/1 16/2/1 8/3/1 +f 11/4/2 10/5/2 3/6/2 +f 19/7/2 22/8/2 9/9/2 +f 22/8/1 25/1/1 9/9/1 +f 6/10/3 7/11/3 23/12/3 +f 20/13/4 23/12/4 24/14/4 +f 21/15/5 24/14/5 22/8/5 +f 5/16/6 6/10/6 17/17/6 +f 17/17/6 20/13/6 18/18/6 +f 18/18/7 21/15/7 22/8/7 +f 1/19/3 5/16/3 13/20/3 +f 13/20/2 17/17/2 12/21/2 +f 12/21/2 19/7/2 11/4/2 +f 7/11/1 2/22/1 14/23/1 +f 23/12/1 14/23/1 15/24/1 +f 24/14/8 15/24/8 25/1/8 +f 18/18/6 20/13/6 21/15/6 +f 24/14/4 21/15/4 20/13/4 +f 22/8/7 19/7/7 18/18/7 +f 22/8/5 24/14/5 25/1/5 +f 12/21/9 17/17/9 18/18/9 +f 25/1/1 15/24/1 16/2/1 +f 19/7/10 12/21/10 18/18/10 +f 9/9/2 10/5/2 19/7/2 +f 9/9/1 25/1/1 8/3/1 +f 17/17/6 6/10/6 20/13/6 +f 15/24/11 24/14/11 23/12/11 +f 23/12/4 20/13/4 6/10/4 +f 14/23/1 23/12/1 7/11/1 +f 13/20/6 5/16/6 17/17/6 +f 10/5/2 11/4/2 19/7/2 +f 8/3/1 16/2/1 4/25/1 +o SemtexTop +v -0.531250 1.250000 0.531250 +v -0.531250 1.250000 0.031250 +v -0.031250 1.250000 0.531250 +v -0.031250 1.250000 0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 1.250000 -0.531250 +v -0.031250 1.250000 -0.031250 +v -0.031250 1.250000 -0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 1.250000 0.031250 +v 0.531250 1.250000 0.531250 +v 0.531250 1.250000 0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 1.250000 -0.531250 +v 0.531250 1.250000 -0.031250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.500000 -0.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vn 0.0000 1.0000 0.0000 +s off +f 27/26/12 28/27/12 29/28/12 +f 31/29/12 32/30/12 33/31/12 +f 35/32/12 36/33/12 37/34/12 +f 39/35/12 40/36/12 41/37/12 +f 27/26/12 26/38/12 28/27/12 +f 31/29/12 30/39/12 32/30/12 +f 35/32/12 34/40/12 36/33/12 +f 39/35/12 38/41/12 40/36/12 +o SemtexSide +v -0.531250 0.875000 0.531250 +v -0.531250 1.250000 0.531250 +v -0.531250 0.875000 0.031250 +v -0.531250 1.250000 0.031250 +v -0.031250 0.312500 0.531250 +v -0.031250 1.250000 0.531250 +v -0.031250 0.312500 0.031250 +v -0.031250 1.250000 0.031250 +v -0.531250 0.875000 -0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 0.875000 -0.531250 +v -0.531250 1.250000 -0.531250 +v -0.031250 0.312500 -0.031250 +v -0.031250 1.250000 -0.031250 +v -0.031250 0.312500 -0.531250 +v -0.031250 1.250000 -0.531250 +v 0.031250 0.312500 0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 0.312500 0.031250 +v 0.031250 1.250000 0.031250 +v 0.531250 0.875000 0.531250 +v 0.531250 1.250000 0.531250 +v 0.531250 0.875000 0.031250 +v 0.531250 1.250000 0.031250 +v 0.031250 0.312500 -0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 0.312500 -0.531250 +v 0.031250 1.250000 -0.531250 +v 0.531250 0.875000 -0.031250 +v 0.531250 1.250000 -0.031250 +v 0.531250 0.875000 -0.531250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.062500 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 43/42/13 44/43/13 42/44/13 +f 44/45/14 49/46/14 48/47/14 +f 49/46/15 46/48/15 48/47/15 +f 47/49/16 42/50/16 46/51/16 +f 51/52/13 52/53/13 50/54/13 +f 52/55/14 57/56/14 56/57/14 +f 57/58/15 54/59/15 56/60/15 +f 55/61/16 50/62/16 54/59/16 +f 59/63/13 60/64/13 58/65/13 +f 61/66/14 64/67/14 60/64/14 +f 65/68/15 62/69/15 64/70/15 +f 62/71/16 59/72/16 58/73/16 +f 67/74/13 68/75/13 66/76/13 +f 69/77/14 72/78/14 68/79/14 +f 73/80/15 70/81/15 72/82/15 +f 70/83/16 67/74/16 66/76/16 +f 43/42/13 45/84/13 44/43/13 +f 44/45/14 45/85/14 49/46/14 +f 49/46/15 47/86/15 46/48/15 +f 47/49/16 43/87/16 42/50/16 +f 51/52/13 53/88/13 52/53/13 +f 52/55/14 53/89/14 57/56/14 +f 57/58/15 55/61/15 54/59/15 +f 55/61/16 51/90/16 50/62/16 +f 59/63/13 61/66/13 60/64/13 +f 61/66/14 65/91/14 64/67/14 +f 65/68/15 63/92/15 62/69/15 +f 62/71/16 63/93/16 59/72/16 +f 67/74/13 69/94/13 68/75/13 +f 69/77/14 73/95/14 72/78/14 +f 73/80/15 71/96/15 70/81/15 +f 70/83/16 71/97/16 67/74/16 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index a7f613399..26f12b89f 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -38,6 +38,10 @@ "block.rbmk_az5_cover": {"category": "block", "sounds": [{"name": "block/rbmk_az5_cover", "stream": false}]}, "block.chungusLever": {"category": "block", "sounds": [{"name": "block/chungusLever", "stream": false}]}, "block.bobble": {"category": "block", "sounds": [{"name": "block/bobble", "stream": false}]}, + "block.crateOpen": {"category": "block", "sounds": [{"name": "block/crateOpen", "stream": false}]}, + "block.crateClose": {"category": "block", "sounds": [{"name": "block/crateClose", "stream": false}]}, + "block.storageOpen": {"category": "block", "sounds": [{"name": "block/storageOpen", "stream": false}]}, + "block.storageClose": {"category": "block", "sounds": [{"name": "block/storageClose", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, @@ -166,6 +170,7 @@ "turret.richard_fire": {"category": "block", "sounds": [{"name": "turret/richard_fire", "stream": false}]}, "turret.howard_fire": {"category": "block", "sounds": [{"name": "turret/howard_fire", "stream": false}]}, "turret.howard_reload": {"category": "block", "sounds": [{"name": "turret/howard_reload", "stream": false}]}, + "turret.mortarWhistle": {"category": "block", "sounds": [{"name": "weapon/mortarWhistle", "stream": false}]}, "entity.chopperFlyingLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperFlyingLoop", "stream": true}]}, "entity.chopperDrop": {"category": "hostile", "sounds": [{"name": "entity/chopperDrop", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/crateClose.ogg b/src/main/resources/assets/hbm/sounds/block/crateClose.ogg new file mode 100644 index 000000000..b1466e5ee Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/crateClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/crateOpen.ogg b/src/main/resources/assets/hbm/sounds/block/crateOpen.ogg new file mode 100644 index 000000000..36ab333ba Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/crateOpen.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/storageClose.ogg b/src/main/resources/assets/hbm/sounds/block/storageClose.ogg new file mode 100644 index 000000000..c157dbe7c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/storageClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/storageOpen.ogg b/src/main/resources/assets/hbm/sounds/block/storageOpen.ogg new file mode 100644 index 000000000..cee45c008 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/storageOpen.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/mortarWhistle.ogg b/src/main/resources/assets/hbm/sounds/weapon/mortarWhistle.ogg new file mode 100644 index 000000000..0cd4f1bed Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/mortarWhistle.ogg differ diff --git a/src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png b/src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png new file mode 100644 index 000000000..5437bfd55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/bnuuy_chest.png b/src/main/resources/assets/hbm/textures/armor/bnuuy_chest.png new file mode 100644 index 000000000..cfec91aff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/bnuuy_chest.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/bnuuy_helmet.png b/src/main/resources/assets/hbm/textures/armor/bnuuy_helmet.png new file mode 100644 index 000000000..89ebdcbba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/bnuuy_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/bnuuy_leg.png b/src/main/resources/assets/hbm/textures/armor/bnuuy_leg.png new file mode 100644 index 000000000..ae68ba599 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/bnuuy_leg.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png new file mode 100644 index 000000000..4b8ccb039 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png new file mode 100644 index 000000000..470e68345 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png new file mode 100644 index 000000000..8edc93579 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_in.png index af0ea0d69..8eb25f502 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_in.png and b/src/main/resources/assets/hbm/textures/blocks/crane_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png new file mode 100644 index 000000000..9057604d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png new file mode 100644 index 000000000..c202cd8fa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_top.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_top.png new file mode 100644 index 000000000..91739043d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_out.png index 157c24e4a..98f5652c1 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_out.png and b/src/main/resources/assets/hbm/textures/blocks/crane_out.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png new file mode 100644 index 000000000..c0fef9e9b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png new file mode 100644 index 000000000..2bb2214e1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top.png new file mode 100644 index 000000000..6b739e930 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side.png b/src/main/resources/assets/hbm/textures/blocks/crane_side.png index 7114de091..d2c2e0041 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_side.png and b/src/main/resources/assets/hbm/textures/blocks/crane_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png new file mode 100644 index 000000000..ead7f5c56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png new file mode 100644 index 000000000..47f4406f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_top.png b/src/main/resources/assets/hbm/textures/blocks/crane_top.png index de1c3261a..24a8ab83c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_top.png and b/src/main/resources/assets/hbm/textures/blocks/crane_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png b/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png new file mode 100644 index 000000000..afc8755f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png b/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png new file mode 100644 index 000000000..5a223c2ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png new file mode 100644 index 000000000..d737646cf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png new file mode 100644 index 000000000..5f88cdcb8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png new file mode 100644 index 000000000..f22794800 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png b/src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png new file mode 100644 index 000000000..a90990955 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/mass_storage_top.png b/src/main/resources/assets/hbm/textures/blocks/mass_storage_top.png new file mode 100644 index 000000000..bb27102bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/mass_storage_top.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png b/src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png deleted file mode 100644 index 1300c56f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png new file mode 100644 index 000000000..69e2c398b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png new file mode 100644 index 000000000..b291ba662 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png new file mode 100644 index 000000000..31ee96577 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_centrifuge_gas.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_centrifuge_gas.png new file mode 100644 index 000000000..418254967 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_centrifuge_gas.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_iron.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_iron.png new file mode 100644 index 000000000..23f53f720 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png index 5046aa3af..3e69c565f 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png new file mode 100644 index 000000000..fccf0e790 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png new file mode 100644 index 000000000..a80472273 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png new file mode 100644 index 000000000..ba84eb214 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_iron.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_iron.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_iron.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_iron.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_steel.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_steel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_steel.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_steel.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten_hot.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten_hot.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten_hot.png diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png new file mode 100644 index 000000000..e5f502989 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_safe.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_safe.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png index 8eb62ae2e..631b0cd71 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png new file mode 100644 index 000000000..8957e7333 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty.png b/src/main/resources/assets/hbm/textures/items/ammo_arty.png new file mode 100644 index 000000000..687e95b3b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_classic.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_classic.png new file mode 100644 index 000000000..28eb6c3fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty_classic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_he.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_he.png new file mode 100644 index 000000000..b9ffd9619 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty_he.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png new file mode 100644 index 000000000..5c0bc91c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png new file mode 100644 index 000000000..e6165872c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png differ diff --git a/src/main/resources/assets/hbm/textures/items/cart.wood.png b/src/main/resources/assets/hbm/textures/items/cart.wood.png index 170b3718b..83504bdec 100644 Binary files a/src/main/resources/assets/hbm/textures/items/cart.wood.png and b/src/main/resources/assets/hbm/textures/items/cart.wood.png differ diff --git a/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png b/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png new file mode 100644 index 000000000..bf1a1364d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png index cf34db6b7..9579bd9dd 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png and b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_copper.png index 9a92c0289..67442c881 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_copper.png and b/src/main/resources/assets/hbm/textures/items/circuit_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo.png b/src/main/resources/assets/hbm/textures/items/circuit_demo.png new file mode 100644 index 000000000..bf2fda53f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo2.png b/src/main/resources/assets/hbm/textures/items/circuit_demo2.png new file mode 100644 index 000000000..bb8dc5ab3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo3.png b/src/main/resources/assets/hbm/textures/items/circuit_demo3.png new file mode 100644 index 000000000..31d0830ff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo4.png b/src/main/resources/assets/hbm/textures/items/circuit_demo4.png new file mode 100644 index 000000000..96d055865 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo4.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo5.png b/src/main/resources/assets/hbm/textures/items/circuit_demo5.png new file mode 100644 index 000000000..b2e7c5b4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo5.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo6.png b/src/main/resources/assets/hbm/textures/items/circuit_demo6.png new file mode 100644 index 000000000..2665167a3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_demo6.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png index 113bb0a15..1ea35bc0d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_gold.png and b/src/main/resources/assets/hbm/textures/items/circuit_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_raw.png index ba729313a..88234e2e3 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_raw.png and b/src/main/resources/assets/hbm/textures/items/circuit_raw.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png index 1135886d2..8a892099c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png and b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png index f3cae51ae..27c3cbcf9 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png and b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png new file mode 100644 index 000000000..799f5d83d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_arty.png b/src/main/resources/assets/hbm/textures/items/designator_arty.png new file mode 100644 index 000000000..29d948242 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/designator_arty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_arty_range.png b/src/main/resources/assets/hbm/textures/items/designator_arty_range.png new file mode 100644 index 000000000..a8d806541 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/designator_arty_range.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png new file mode 100644 index 000000000..459de0813 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_helmet.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_helmet.png new file mode 100644 index 000000000..13dc839b1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/dieselsuit_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_legs.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_legs.png new file mode 100644 index 000000000..800f9058a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/dieselsuit_legs.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png new file mode 100644 index 000000000..3afe18e98 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png deleted file mode 100644 index 02934aa44..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png deleted file mode 100644 index 28a7dd962..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png deleted file mode 100644 index af6b5dbf8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png deleted file mode 100644 index 23ccbd54a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png deleted file mode 100644 index 4f8e2e4c5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png deleted file mode 100644 index 193c51cff..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_wither.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_wither.png deleted file mode 100644 index d45ee0f56..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_buckshot_wither.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png deleted file mode 100644 index cc26b5bab..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png deleted file mode 100644 index d12fd606f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png deleted file mode 100644 index 8a55130cb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png deleted file mode 100644 index 114d8367f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo_alt.png deleted file mode 100644 index 56afc548b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png deleted file mode 100644 index 8a99d897a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png deleted file mode 100644 index 593603884..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo_alt.png deleted file mode 100644 index 6c4ae2d18..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png deleted file mode 100644 index 1d741d30a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png deleted file mode 100644 index 7e061d457..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo.png deleted file mode 100644 index b0b384f74..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png deleted file mode 100644 index e204667a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png deleted file mode 100644 index 1316d10a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png deleted file mode 100644 index 21192e91d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png deleted file mode 100644 index 188aa1311..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_stinger_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_stinger_ammo.png deleted file mode 100644 index 132e23ffe..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_stinger_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png deleted file mode 100644 index 5f3e67b68..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png deleted file mode 100644 index 085ae1ba4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png deleted file mode 100644 index d6444f096..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/piston_electric.png b/src/main/resources/assets/hbm/textures/items/piston_electric.png new file mode 100644 index 000000000..3d8285ff9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/piston_electric.png differ diff --git a/src/main/resources/assets/hbm/textures/items/piston_hydraulic.png b/src/main/resources/assets/hbm/textures/items/piston_hydraulic.png new file mode 100644 index 000000000..1d069ab70 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/piston_hydraulic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/piston_pneumatic.png b/src/main/resources/assets/hbm/textures/items/piston_pneumatic.png new file mode 100644 index 000000000..ac86c2744 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/piston_pneumatic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plastic.png b/src/main/resources/assets/hbm/textures/items/plastic.png new file mode 100644 index 000000000..78163effa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plastic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_chip.png b/src/main/resources/assets/hbm/textures/items/turret_chip.png index 29034d31e..cd3eef9c7 100644 Binary files a/src/main/resources/assets/hbm/textures/items/turret_chip.png and b/src/main/resources/assets/hbm/textures/items/turret_chip.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_ejector_1.png b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_1.png new file mode 100644 index 000000000..6395bf3ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_ejector_2.png b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_2.png new file mode 100644 index 000000000..60a957235 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png new file mode 100644 index 000000000..f79171126 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png new file mode 100644 index 000000000..a478d4b05 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png new file mode 100644 index 000000000..b2bcf0eeb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png new file mode 100644 index 000000000..705d1dbde Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/cyclotronTexture.png b/src/main/resources/assets/hbm/textures/models/cyclotronTexture.png deleted file mode 100755 index e66b26b80..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/cyclotronTexture.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png b/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png new file mode 100644 index 000000000..286a4aecc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png b/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png new file mode 100644 index 000000000..bd6a019b8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan.png new file mode 100644 index 000000000..2060b79eb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/turbofan.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png new file mode 100644 index 000000000..a2be9657e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png new file mode 100644 index 000000000..1c9313b64 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png differ diff --git a/src/main/resources/assets/hbm/textures/models/mining_drill.png b/src/main/resources/assets/hbm/textures/models/mining_drill.png index 78f6b2b18..c4c2f2c65 100755 Binary files a/src/main/resources/assets/hbm/textures/models/mining_drill.png and b/src/main/resources/assets/hbm/textures/models/mining_drill.png differ diff --git a/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png b/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png new file mode 100644 index 000000000..591134e84 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png differ diff --git a/src/main/resources/assets/hbm/textures/models/oilFlareTexture.png b/src/main/resources/assets/hbm/textures/models/oilFlareTexture.png deleted file mode 100644 index 3d64d3c18..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/oilFlareTexture.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/textureIGen.png b/src/main/resources/assets/hbm/textures/models/textureIGen.png deleted file mode 100755 index a6d23163d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/textureIGen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turbofan_body.png b/src/main/resources/assets/hbm/textures/models/turbofan_body.png deleted file mode 100755 index af0954f67..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turbofan_body.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/arty.png b/src/main/resources/assets/hbm/textures/models/turrets/arty.png new file mode 100644 index 000000000..9f87d6862 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/turrets/arty.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index b4773b2a4..b5f55c1d5 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4228", + "version":"1.0.27_X4263H1", "mcversion": "1.7.10", "url": "", "updateUrl": "",